From 41af2e759ce10439448916cbdedff2d68f5eef3d Mon Sep 17 00:00:00 2001 From: Jonathan Griffin Date: Fri, 14 Aug 2009 15:02:39 -0700 Subject: [PATCH] Add html5 parser tests: tree construction, tokenizer, and comparison beteween Gecko and JS parsers. bug 373864; r=sayrer --- parser/htmlparser/tests/mochitest/Makefile.in | 28 + .../html5_tree_construction_exceptions.js | 106 +- .../html5lib_tokenizer_entities.test | 2339 +++++++ .../html5lib_tokenizer_numeric_entities.test | 1311 ++++ .../mochitest/html5lib_tokenizer_test1.test | 196 + .../mochitest/html5lib_tokenizer_test2.test | 163 + .../mochitest/html5lib_tokenizer_test3.test | 6055 +++++++++++++++++ .../mochitest/html5lib_tokenizer_test4.test | 305 + .../mochitest/html5lib_tokenizer_test5.test | 132 + .../html5lib_tokenizer_unicode_chars.test | 1295 ++++ .../tests/mochitest/html5lib_tree_dat1.txt | 1097 +-- .../tests/mochitest/html5lib_tree_dat10.txt | 430 ++ .../tests/mochitest/html5lib_tree_dat11.txt | 482 ++ .../tests/mochitest/html5lib_tree_dat12.txt | 62 + .../tests/mochitest/html5lib_tree_dat14.txt | 32 + .../tests/mochitest/html5lib_tree_dat2.txt | 414 +- .../tests/mochitest/html5lib_tree_dat3.txt | 201 +- .../tests/mochitest/html5lib_tree_dat5.txt | 175 + .../tests/mochitest/html5lib_tree_dat6.txt | 611 ++ .../tests/mochitest/html5lib_tree_dat7.txt | 390 ++ .../tests/mochitest/html5lib_tree_dat8.txt | 148 + .../tests/mochitest/html5lib_tree_dat9.txt | 430 ++ ...validator.htmlparser.HtmlParser.nocache.js | 502 ++ .../tests/mochitest/parser_datreader.js | 311 +- .../tests/mochitest/parser_web_testrunner.js | 411 +- .../tests/mochitest/regressions.txt | 55 +- .../test_html5_tokenizer_entities.html | 40 + ...test_html5_tokenizer_numeric_entities.html | 40 + .../mochitest/test_html5_tokenizer_test1.html | 40 + .../mochitest/test_html5_tokenizer_test2.html | 40 + .../mochitest/test_html5_tokenizer_test3.html | 40 + .../mochitest/test_html5_tokenizer_test4.html | 40 + .../mochitest/test_html5_tokenizer_test5.html | 40 + .../test_html5_tokenizer_unicode_chars.html | 40 + .../test_html5_tree_construction.html | 19 +- ...st_html5_tree_construction_js_compare.html | 54 + .../tests/mochitest/tokenizer_file_server.sjs | 110 + 37 files changed, 17136 insertions(+), 1048 deletions(-) create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tokenizer_entities.test create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tokenizer_numeric_entities.test create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tokenizer_test1.test create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tokenizer_test2.test create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tokenizer_test3.test create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tokenizer_test4.test create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tokenizer_test5.test create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tokenizer_unicode_chars.test create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tree_dat10.txt create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tree_dat11.txt create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tree_dat12.txt create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tree_dat14.txt create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tree_dat5.txt create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tree_dat6.txt create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tree_dat7.txt create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tree_dat8.txt create mode 100644 parser/htmlparser/tests/mochitest/html5lib_tree_dat9.txt create mode 100644 parser/htmlparser/tests/mochitest/nu.validator.htmlparser.HtmlParser.nocache.js create mode 100644 parser/htmlparser/tests/mochitest/test_html5_tokenizer_entities.html create mode 100644 parser/htmlparser/tests/mochitest/test_html5_tokenizer_numeric_entities.html create mode 100644 parser/htmlparser/tests/mochitest/test_html5_tokenizer_test1.html create mode 100644 parser/htmlparser/tests/mochitest/test_html5_tokenizer_test2.html create mode 100644 parser/htmlparser/tests/mochitest/test_html5_tokenizer_test3.html create mode 100644 parser/htmlparser/tests/mochitest/test_html5_tokenizer_test4.html create mode 100644 parser/htmlparser/tests/mochitest/test_html5_tokenizer_test5.html create mode 100644 parser/htmlparser/tests/mochitest/test_html5_tokenizer_unicode_chars.html create mode 100644 parser/htmlparser/tests/mochitest/test_html5_tree_construction_js_compare.html create mode 100644 parser/htmlparser/tests/mochitest/tokenizer_file_server.sjs diff --git a/parser/htmlparser/tests/mochitest/Makefile.in b/parser/htmlparser/tests/mochitest/Makefile.in index dcddf627295..22082b41ae7 100644 --- a/parser/htmlparser/tests/mochitest/Makefile.in +++ b/parser/htmlparser/tests/mochitest/Makefile.in @@ -46,11 +46,39 @@ include $(topsrcdir)/config/rules.mk _TEST_FILES = parser_datreader.js \ parser_web_testrunner.js \ + tokenizer_file_server.sjs \ + html5lib_tokenizer_entities.test \ + html5lib_tokenizer_numeric_entities.test \ + html5lib_tokenizer_unicode_chars.test \ + html5lib_tokenizer_test1.test \ + html5lib_tokenizer_test2.test \ + html5lib_tokenizer_test3.test \ + html5lib_tokenizer_test4.test \ + html5lib_tokenizer_test5.test \ html5lib_tree_dat1.txt \ html5lib_tree_dat2.txt \ html5lib_tree_dat3.txt \ + html5lib_tree_dat5.txt \ + html5lib_tree_dat6.txt \ + html5lib_tree_dat7.txt \ + html5lib_tree_dat8.txt \ + html5lib_tree_dat9.txt \ + html5lib_tree_dat10.txt \ + html5lib_tree_dat11.txt \ + html5lib_tree_dat12.txt \ + html5lib_tree_dat14.txt \ html5_tree_construction_exceptions.js \ + nu.validator.htmlparser.HtmlParser.nocache.js \ + test_html5_tokenizer_entities.html \ + test_html5_tokenizer_numeric_entities.html \ + test_html5_tokenizer_test1.html \ + test_html5_tokenizer_test2.html \ + test_html5_tokenizer_test3.html \ + test_html5_tokenizer_test4.html \ + test_html5_tokenizer_test5.html \ + test_html5_tokenizer_unicode_chars.html \ test_html5_tree_construction.html \ + test_html5_tree_construction_js_compare.html \ test_bug174351.html \ test_bug339350.xhtml \ test_bug358797.html \ diff --git a/parser/htmlparser/tests/mochitest/html5_tree_construction_exceptions.js b/parser/htmlparser/tests/mochitest/html5_tree_construction_exceptions.js index a79f09d650c..dd465ce95c2 100644 --- a/parser/htmlparser/tests/mochitest/html5_tree_construction_exceptions.js +++ b/parser/htmlparser/tests/mochitest/html5_tree_construction_exceptions.js @@ -1,71 +1,43 @@ /* these are the tests we don't pass */ -var html5Exceptions = { -"
": true, - "
X": true, - "

X": true, - "
": true, - "
": true, - "": true, - "x": true, - "<p>

": true, - "X": true, + "": true, + "": true, + "": true, + "": true, + "bar": true, + "": true, + "": true, + "": true, + "bar": true, + "<p>

#": true, + "X": true, + "
": true, + "

": true, + "
": true, + "
": true, + "
Hi!
": true, } +var html5TokenizerExceptions = { + " &amp; <!-- &amp; --> &amp; ": true, + "a\uFFFFb": true, + "a\u000cb": true, + "": true, +} + +var html5JSCompareExceptions = { + "

": true, + "": true, + "": true, + "": true, + "": true, + "bar": true, + "": true, + "": true, + "": true, + "bar": true, + "": true, + "": true, + "": true, +} diff --git a/parser/htmlparser/tests/mochitest/html5lib_tokenizer_entities.test b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_entities.test new file mode 100644 index 00000000000..3c961fbeaae --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_entities.test @@ -0,0 +1,2339 @@ +var tokenizerTests = {"tests": [ + +{"description": "Undefined named entity in attribute value ending in semicolon and whose name starts with a known entity name.", +"input":"", +"output": ["ParseError", ["StartTag", "h", {"a": "¬i;"}]]}, + +{"description": "Named entity: AElig with a semi-colon.", +"input":"Æ", +"output": [["Character", "\u00C6"]]}, + +{"description": "Named entity: AElig without a semi-colon.", +"input":"Æ", +"output": ["ParseError", ["Character", "\u00C6"]]}, + +{"description": "Named entity: AMP with a semi-colon.", +"input":"&", +"output": [["Character", "\u0026"]]}, + +{"description": "Named entity: AMP without a semi-colon.", +"input":"&", +"output": ["ParseError", ["Character", "\u0026"]]}, + +{"description": "Named entity: Aacute with a semi-colon.", +"input":"Á", +"output": [["Character", "\u00C1"]]}, + +{"description": "Named entity: Aacute without a semi-colon.", +"input":"Á", +"output": ["ParseError", ["Character", "\u00C1"]]}, + +{"description": "Named entity: Acirc with a semi-colon.", +"input":"Â", +"output": [["Character", "\u00C2"]]}, + +{"description": "Named entity: Acirc without a semi-colon.", +"input":"Â", +"output": ["ParseError", ["Character", "\u00C2"]]}, + +{"description": "Named entity: Agrave with a semi-colon.", +"input":"À", +"output": [["Character", "\u00C0"]]}, + +{"description": "Named entity: Agrave without a semi-colon.", +"input":"À", +"output": ["ParseError", ["Character", "\u00C0"]]}, + +{"description": "Named entity: Alpha with a semi-colon.", +"input":"Α", +"output": [["Character", "\u0391"]]}, + +{"description": "Named entity: Aring with a semi-colon.", +"input":"Å", +"output": [["Character", "\u00C5"]]}, + +{"description": "Named entity: Aring without a semi-colon.", +"input":"Å", +"output": ["ParseError", ["Character", "\u00C5"]]}, + +{"description": "Named entity: Atilde with a semi-colon.", +"input":"Ã", +"output": [["Character", "\u00C3"]]}, + +{"description": "Named entity: Atilde without a semi-colon.", +"input":"Ã", +"output": ["ParseError", ["Character", "\u00C3"]]}, + +{"description": "Named entity: Auml with a semi-colon.", +"input":"Ä", +"output": [["Character", "\u00C4"]]}, + +{"description": "Named entity: Auml without a semi-colon.", +"input":"Ä", +"output": ["ParseError", ["Character", "\u00C4"]]}, + +{"description": "Named entity: Beta with a semi-colon.", +"input":"Β", +"output": [["Character", "\u0392"]]}, + +{"description": "Named entity: COPY with a semi-colon.", +"input":"©", +"output": [["Character", "\u00A9"]]}, + +{"description": "Named entity: COPY without a semi-colon.", +"input":"©", +"output": ["ParseError", ["Character", "\u00A9"]]}, + +{"description": "Named entity: Ccedil with a semi-colon.", +"input":"Ç", +"output": [["Character", "\u00C7"]]}, + +{"description": "Named entity: Ccedil without a semi-colon.", +"input":"Ç", +"output": ["ParseError", ["Character", "\u00C7"]]}, + +{"description": "Named entity: Chi with a semi-colon.", +"input":"Χ", +"output": [["Character", "\u03A7"]]}, + +{"description": "Named entity: Dagger with a semi-colon.", +"input":"‡", +"output": [["Character", "\u2021"]]}, + +{"description": "Named entity: Delta with a semi-colon.", +"input":"Δ", +"output": [["Character", "\u0394"]]}, + +{"description": "Named entity: ETH with a semi-colon.", +"input":"Ð", +"output": [["Character", "\u00D0"]]}, + +{"description": "Named entity: ETH without a semi-colon.", +"input":"Ð", +"output": ["ParseError", ["Character", "\u00D0"]]}, + +{"description": "Named entity: Eacute with a semi-colon.", +"input":"É", +"output": [["Character", "\u00C9"]]}, + +{"description": "Named entity: Eacute without a semi-colon.", +"input":"É", +"output": ["ParseError", ["Character", "\u00C9"]]}, + +{"description": "Named entity: Ecirc with a semi-colon.", +"input":"Ê", +"output": [["Character", "\u00CA"]]}, + +{"description": "Named entity: Ecirc without a semi-colon.", +"input":"Ê", +"output": ["ParseError", ["Character", "\u00CA"]]}, + +{"description": "Named entity: Egrave with a semi-colon.", +"input":"È", +"output": [["Character", "\u00C8"]]}, + +{"description": "Named entity: Egrave without a semi-colon.", +"input":"È", +"output": ["ParseError", ["Character", "\u00C8"]]}, + +{"description": "Named entity: Epsilon with a semi-colon.", +"input":"Ε", +"output": [["Character", "\u0395"]]}, + +{"description": "Named entity: Eta with a semi-colon.", +"input":"Η", +"output": [["Character", "\u0397"]]}, + +{"description": "Named entity: Euml with a semi-colon.", +"input":"Ë", +"output": [["Character", "\u00CB"]]}, + +{"description": "Named entity: Euml without a semi-colon.", +"input":"Ë", +"output": ["ParseError", ["Character", "\u00CB"]]}, + +{"description": "Named entity: GT with a semi-colon.", +"input":">", +"output": [["Character", "\u003E"]]}, + +{"description": "Named entity: GT without a semi-colon.", +"input":">", +"output": ["ParseError", ["Character", "\u003E"]]}, + +{"description": "Named entity: Gamma with a semi-colon.", +"input":"Γ", +"output": [["Character", "\u0393"]]}, + +{"description": "Named entity: Iacute with a semi-colon.", +"input":"Í", +"output": [["Character", "\u00CD"]]}, + +{"description": "Named entity: Iacute without a semi-colon.", +"input":"Í", +"output": ["ParseError", ["Character", "\u00CD"]]}, + +{"description": "Named entity: Icirc with a semi-colon.", +"input":"Î", +"output": [["Character", "\u00CE"]]}, + +{"description": "Named entity: Icirc without a semi-colon.", +"input":"Î", +"output": ["ParseError", ["Character", "\u00CE"]]}, + +{"description": "Named entity: Igrave with a semi-colon.", +"input":"Ì", +"output": [["Character", "\u00CC"]]}, + +{"description": "Named entity: Igrave without a semi-colon.", +"input":"Ì", +"output": ["ParseError", ["Character", "\u00CC"]]}, + +{"description": "Named entity: Iota with a semi-colon.", +"input":"Ι", +"output": [["Character", "\u0399"]]}, + +{"description": "Named entity: Iuml with a semi-colon.", +"input":"Ï", +"output": [["Character", "\u00CF"]]}, + +{"description": "Named entity: Iuml without a semi-colon.", +"input":"Ï", +"output": ["ParseError", ["Character", "\u00CF"]]}, + +{"description": "Named entity: Kappa with a semi-colon.", +"input":"Κ", +"output": [["Character", "\u039A"]]}, + +{"description": "Named entity: LT with a semi-colon.", +"input":"<", +"output": [["Character", "\u003C"]]}, + +{"description": "Named entity: LT without a semi-colon.", +"input":"<", +"output": ["ParseError", ["Character", "\u003C"]]}, + +{"description": "Named entity: Lambda with a semi-colon.", +"input":"Λ", +"output": [["Character", "\u039B"]]}, + +{"description": "Named entity: Mu with a semi-colon.", +"input":"Μ", +"output": [["Character", "\u039C"]]}, + +{"description": "Named entity: Ntilde with a semi-colon.", +"input":"Ñ", +"output": [["Character", "\u00D1"]]}, + +{"description": "Named entity: Ntilde without a semi-colon.", +"input":"Ñ", +"output": ["ParseError", ["Character", "\u00D1"]]}, + +{"description": "Named entity: Nu with a semi-colon.", +"input":"Ν", +"output": [["Character", "\u039D"]]}, + +{"description": "Named entity: OElig with a semi-colon.", +"input":"Œ", +"output": [["Character", "\u0152"]]}, + +{"description": "Named entity: Oacute with a semi-colon.", +"input":"Ó", +"output": [["Character", "\u00D3"]]}, + +{"description": "Named entity: Oacute without a semi-colon.", +"input":"Ó", +"output": ["ParseError", ["Character", "\u00D3"]]}, + +{"description": "Named entity: Ocirc with a semi-colon.", +"input":"Ô", +"output": [["Character", "\u00D4"]]}, + +{"description": "Named entity: Ocirc without a semi-colon.", +"input":"Ô", +"output": ["ParseError", ["Character", "\u00D4"]]}, + +{"description": "Named entity: Ograve with a semi-colon.", +"input":"Ò", +"output": [["Character", "\u00D2"]]}, + +{"description": "Named entity: Ograve without a semi-colon.", +"input":"Ò", +"output": ["ParseError", ["Character", "\u00D2"]]}, + +{"description": "Named entity: Omega with a semi-colon.", +"input":"Ω", +"output": [["Character", "\u03A9"]]}, + +{"description": "Named entity: Omicron with a semi-colon.", +"input":"Ο", +"output": [["Character", "\u039F"]]}, + +{"description": "Named entity: Oslash with a semi-colon.", +"input":"Ø", +"output": [["Character", "\u00D8"]]}, + +{"description": "Named entity: Oslash without a semi-colon.", +"input":"Ø", +"output": ["ParseError", ["Character", "\u00D8"]]}, + +{"description": "Named entity: Otilde with a semi-colon.", +"input":"Õ", +"output": [["Character", "\u00D5"]]}, + +{"description": "Named entity: Otilde without a semi-colon.", +"input":"Õ", +"output": ["ParseError", ["Character", "\u00D5"]]}, + +{"description": "Named entity: Ouml with a semi-colon.", +"input":"Ö", +"output": [["Character", "\u00D6"]]}, + +{"description": "Named entity: Ouml without a semi-colon.", +"input":"Ö", +"output": ["ParseError", ["Character", "\u00D6"]]}, + +{"description": "Named entity: Phi with a semi-colon.", +"input":"Φ", +"output": [["Character", "\u03A6"]]}, + +{"description": "Named entity: Pi with a semi-colon.", +"input":"Π", +"output": [["Character", "\u03A0"]]}, + +{"description": "Named entity: Prime with a semi-colon.", +"input":"″", +"output": [["Character", "\u2033"]]}, + +{"description": "Named entity: Psi with a semi-colon.", +"input":"Ψ", +"output": [["Character", "\u03A8"]]}, + +{"description": "Named entity: QUOT with a semi-colon.", +"input":""", +"output": [["Character", "\u0022"]]}, + +{"description": "Named entity: QUOT without a semi-colon.", +"input":""", +"output": ["ParseError", ["Character", "\u0022"]]}, + +{"description": "Named entity: REG with a semi-colon.", +"input":"®", +"output": [["Character", "\u00AE"]]}, + +{"description": "Named entity: REG without a semi-colon.", +"input":"®", +"output": ["ParseError", ["Character", "\u00AE"]]}, + +{"description": "Named entity: Rho with a semi-colon.", +"input":"Ρ", +"output": [["Character", "\u03A1"]]}, + +{"description": "Named entity: Scaron with a semi-colon.", +"input":"Š", +"output": [["Character", "\u0160"]]}, + +{"description": "Named entity: Sigma with a semi-colon.", +"input":"Σ", +"output": [["Character", "\u03A3"]]}, + +{"description": "Named entity: THORN with a semi-colon.", +"input":"Þ", +"output": [["Character", "\u00DE"]]}, + +{"description": "Named entity: THORN without a semi-colon.", +"input":"Þ", +"output": ["ParseError", ["Character", "\u00DE"]]}, + +{"description": "Named entity: TRADE with a semi-colon.", +"input":"™", +"output": [["Character", "\u2122"]]}, + +{"description": "Named entity: Tau with a semi-colon.", +"input":"Τ", +"output": [["Character", "\u03A4"]]}, + +{"description": "Named entity: Theta with a semi-colon.", +"input":"Θ", +"output": [["Character", "\u0398"]]}, + +{"description": "Named entity: Uacute with a semi-colon.", +"input":"Ú", +"output": [["Character", "\u00DA"]]}, + +{"description": "Named entity: Uacute without a semi-colon.", +"input":"Ú", +"output": ["ParseError", ["Character", "\u00DA"]]}, + +{"description": "Named entity: Ucirc with a semi-colon.", +"input":"Û", +"output": [["Character", "\u00DB"]]}, + +{"description": "Named entity: Ucirc without a semi-colon.", +"input":"Û", +"output": ["ParseError", ["Character", "\u00DB"]]}, + +{"description": "Named entity: Ugrave with a semi-colon.", +"input":"Ù", +"output": [["Character", "\u00D9"]]}, + +{"description": "Named entity: Ugrave without a semi-colon.", +"input":"Ù", +"output": ["ParseError", ["Character", "\u00D9"]]}, + +{"description": "Named entity: Upsilon with a semi-colon.", +"input":"Υ", +"output": [["Character", "\u03A5"]]}, + +{"description": "Named entity: Uuml with a semi-colon.", +"input":"Ü", +"output": [["Character", "\u00DC"]]}, + +{"description": "Named entity: Uuml without a semi-colon.", +"input":"Ü", +"output": ["ParseError", ["Character", "\u00DC"]]}, + +{"description": "Named entity: Xi with a semi-colon.", +"input":"Ξ", +"output": [["Character", "\u039E"]]}, + +{"description": "Named entity: Yacute with a semi-colon.", +"input":"Ý", +"output": [["Character", "\u00DD"]]}, + +{"description": "Named entity: Yacute without a semi-colon.", +"input":"Ý", +"output": ["ParseError", ["Character", "\u00DD"]]}, + +{"description": "Named entity: Yuml with a semi-colon.", +"input":"Ÿ", +"output": [["Character", "\u0178"]]}, + +{"description": "Named entity: Zeta with a semi-colon.", +"input":"Ζ", +"output": [["Character", "\u0396"]]}, + +{"description": "Named entity: aacute with a semi-colon.", +"input":"á", +"output": [["Character", "\u00E1"]]}, + +{"description": "Named entity: aacute without a semi-colon.", +"input":"á", +"output": ["ParseError", ["Character", "\u00E1"]]}, + +{"description": "Named entity: acirc with a semi-colon.", +"input":"â", +"output": [["Character", "\u00E2"]]}, + +{"description": "Named entity: acirc without a semi-colon.", +"input":"â", +"output": ["ParseError", ["Character", "\u00E2"]]}, + +{"description": "Named entity: acute with a semi-colon.", +"input":"´", +"output": [["Character", "\u00B4"]]}, + +{"description": "Named entity: acute without a semi-colon.", +"input":"´", +"output": ["ParseError", ["Character", "\u00B4"]]}, + +{"description": "Named entity: aelig with a semi-colon.", +"input":"æ", +"output": [["Character", "\u00E6"]]}, + +{"description": "Named entity: aelig without a semi-colon.", +"input":"æ", +"output": ["ParseError", ["Character", "\u00E6"]]}, + +{"description": "Named entity: agrave with a semi-colon.", +"input":"à", +"output": [["Character", "\u00E0"]]}, + +{"description": "Named entity: agrave without a semi-colon.", +"input":"à", +"output": ["ParseError", ["Character", "\u00E0"]]}, + +{"description": "Named entity: alefsym with a semi-colon.", +"input":"ℵ", +"output": [["Character", "\u2135"]]}, + +{"description": "Named entity: alpha with a semi-colon.", +"input":"α", +"output": [["Character", "\u03B1"]]}, + +{"description": "Named entity: amp with a semi-colon.", +"input":"&", +"output": [["Character", "\u0026"]]}, + +{"description": "Named entity: amp without a semi-colon.", +"input":"&", +"output": ["ParseError", ["Character", "\u0026"]]}, + +{"description": "Named entity: and with a semi-colon.", +"input":"∧", +"output": [["Character", "\u2227"]]}, + +{"description": "Named entity: ang with a semi-colon.", +"input":"∠", +"output": [["Character", "\u2220"]]}, + +{"description": "Named entity: apos with a semi-colon.", +"input":"'", +"output": [["Character", "\u0027"]]}, + +{"description": "Named entity: aring with a semi-colon.", +"input":"å", +"output": [["Character", "\u00E5"]]}, + +{"description": "Named entity: aring without a semi-colon.", +"input":"å", +"output": ["ParseError", ["Character", "\u00E5"]]}, + +{"description": "Named entity: asymp with a semi-colon.", +"input":"≈", +"output": [["Character", "\u2248"]]}, + +{"description": "Named entity: atilde with a semi-colon.", +"input":"ã", +"output": [["Character", "\u00E3"]]}, + +{"description": "Named entity: atilde without a semi-colon.", +"input":"ã", +"output": ["ParseError", ["Character", "\u00E3"]]}, + +{"description": "Named entity: auml with a semi-colon.", +"input":"ä", +"output": [["Character", "\u00E4"]]}, + +{"description": "Named entity: auml without a semi-colon.", +"input":"ä", +"output": ["ParseError", ["Character", "\u00E4"]]}, + +{"description": "Named entity: bdquo with a semi-colon.", +"input":"„", +"output": [["Character", "\u201E"]]}, + +{"description": "Named entity: beta with a semi-colon.", +"input":"β", +"output": [["Character", "\u03B2"]]}, + +{"description": "Named entity: brvbar with a semi-colon.", +"input":"¦", +"output": [["Character", "\u00A6"]]}, + +{"description": "Named entity: brvbar without a semi-colon.", +"input":"¦", +"output": ["ParseError", ["Character", "\u00A6"]]}, + +{"description": "Named entity: bull with a semi-colon.", +"input":"•", +"output": [["Character", "\u2022"]]}, + +{"description": "Named entity: cap with a semi-colon.", +"input":"∩", +"output": [["Character", "\u2229"]]}, + +{"description": "Named entity: ccedil with a semi-colon.", +"input":"ç", +"output": [["Character", "\u00E7"]]}, + +{"description": "Named entity: ccedil without a semi-colon.", +"input":"ç", +"output": ["ParseError", ["Character", "\u00E7"]]}, + +{"description": "Named entity: cedil with a semi-colon.", +"input":"¸", +"output": [["Character", "\u00B8"]]}, + +{"description": "Named entity: cedil without a semi-colon.", +"input":"¸", +"output": ["ParseError", ["Character", "\u00B8"]]}, + +{"description": "Named entity: cent with a semi-colon.", +"input":"¢", +"output": [["Character", "\u00A2"]]}, + +{"description": "Named entity: cent without a semi-colon.", +"input":"¢", +"output": ["ParseError", ["Character", "\u00A2"]]}, + +{"description": "Named entity: chi with a semi-colon.", +"input":"χ", +"output": [["Character", "\u03C7"]]}, + +{"description": "Named entity: circ with a semi-colon.", +"input":"ˆ", +"output": [["Character", "\u02C6"]]}, + +{"description": "Named entity: clubs with a semi-colon.", +"input":"♣", +"output": [["Character", "\u2663"]]}, + +{"description": "Named entity: cong with a semi-colon.", +"input":"≅", +"output": [["Character", "\u2245"]]}, + +{"description": "Named entity: copy with a semi-colon.", +"input":"©", +"output": [["Character", "\u00A9"]]}, + +{"description": "Named entity: copy without a semi-colon.", +"input":"©", +"output": ["ParseError", ["Character", "\u00A9"]]}, + +{"description": "Named entity: crarr with a semi-colon.", +"input":"↵", +"output": [["Character", "\u21B5"]]}, + +{"description": "Named entity: cup with a semi-colon.", +"input":"∪", +"output": [["Character", "\u222A"]]}, + +{"description": "Named entity: curren with a semi-colon.", +"input":"¤", +"output": [["Character", "\u00A4"]]}, + +{"description": "Named entity: curren without a semi-colon.", +"input":"¤", +"output": ["ParseError", ["Character", "\u00A4"]]}, + +{"description": "Named entity: dArr with a semi-colon.", +"input":"⇓", +"output": [["Character", "\u21D3"]]}, + +{"description": "Named entity: dagger with a semi-colon.", +"input":"†", +"output": [["Character", "\u2020"]]}, + +{"description": "Named entity: darr with a semi-colon.", +"input":"↓", +"output": [["Character", "\u2193"]]}, + +{"description": "Named entity: deg with a semi-colon.", +"input":"°", +"output": [["Character", "\u00B0"]]}, + +{"description": "Named entity: deg without a semi-colon.", +"input":"°", +"output": ["ParseError", ["Character", "\u00B0"]]}, + +{"description": "Named entity: delta with a semi-colon.", +"input":"δ", +"output": [["Character", "\u03B4"]]}, + +{"description": "Named entity: diams with a semi-colon.", +"input":"♦", +"output": [["Character", "\u2666"]]}, + +{"description": "Named entity: divide with a semi-colon.", +"input":"÷", +"output": [["Character", "\u00F7"]]}, + +{"description": "Named entity: divide without a semi-colon.", +"input":"÷", +"output": ["ParseError", ["Character", "\u00F7"]]}, + +{"description": "Named entity: eacute with a semi-colon.", +"input":"é", +"output": [["Character", "\u00E9"]]}, + +{"description": "Named entity: eacute without a semi-colon.", +"input":"é", +"output": ["ParseError", ["Character", "\u00E9"]]}, + +{"description": "Named entity: ecirc with a semi-colon.", +"input":"ê", +"output": [["Character", "\u00EA"]]}, + +{"description": "Named entity: ecirc without a semi-colon.", +"input":"ê", +"output": ["ParseError", ["Character", "\u00EA"]]}, + +{"description": "Named entity: egrave with a semi-colon.", +"input":"è", +"output": [["Character", "\u00E8"]]}, + +{"description": "Named entity: egrave without a semi-colon.", +"input":"è", +"output": ["ParseError", ["Character", "\u00E8"]]}, + +{"description": "Named entity: empty with a semi-colon.", +"input":"∅", +"output": [["Character", "\u2205"]]}, + +{"description": "Named entity: emsp with a semi-colon.", +"input":" ", +"output": [["Character", "\u2003"]]}, + +{"description": "Named entity: ensp with a semi-colon.", +"input":" ", +"output": [["Character", "\u2002"]]}, + +{"description": "Named entity: epsilon with a semi-colon.", +"input":"ε", +"output": [["Character", "\u03B5"]]}, + +{"description": "Named entity: equiv with a semi-colon.", +"input":"≡", +"output": [["Character", "\u2261"]]}, + +{"description": "Named entity: eta with a semi-colon.", +"input":"η", +"output": [["Character", "\u03B7"]]}, + +{"description": "Named entity: eth with a semi-colon.", +"input":"ð", +"output": [["Character", "\u00F0"]]}, + +{"description": "Named entity: eth without a semi-colon.", +"input":"ð", +"output": ["ParseError", ["Character", "\u00F0"]]}, + +{"description": "Named entity: euml with a semi-colon.", +"input":"ë", +"output": [["Character", "\u00EB"]]}, + +{"description": "Named entity: euml without a semi-colon.", +"input":"ë", +"output": ["ParseError", ["Character", "\u00EB"]]}, + +{"description": "Named entity: euro with a semi-colon.", +"input":"€", +"output": [["Character", "\u20AC"]]}, + +{"description": "Named entity: exist with a semi-colon.", +"input":"∃", +"output": [["Character", "\u2203"]]}, + +{"description": "Named entity: fnof with a semi-colon.", +"input":"ƒ", +"output": [["Character", "\u0192"]]}, + +{"description": "Named entity: forall with a semi-colon.", +"input":"∀", +"output": [["Character", "\u2200"]]}, + +{"description": "Named entity: frac12 with a semi-colon.", +"input":"½", +"output": [["Character", "\u00BD"]]}, + +{"description": "Named entity: frac12 without a semi-colon.", +"input":"½", +"output": ["ParseError", ["Character", "\u00BD"]]}, + +{"description": "Named entity: frac14 with a semi-colon.", +"input":"¼", +"output": [["Character", "\u00BC"]]}, + +{"description": "Named entity: frac14 without a semi-colon.", +"input":"¼", +"output": ["ParseError", ["Character", "\u00BC"]]}, + +{"description": "Named entity: frac34 with a semi-colon.", +"input":"¾", +"output": [["Character", "\u00BE"]]}, + +{"description": "Named entity: frac34 without a semi-colon.", +"input":"¾", +"output": ["ParseError", ["Character", "\u00BE"]]}, + +{"description": "Named entity: frasl with a semi-colon.", +"input":"⁄", +"output": [["Character", "\u2044"]]}, + +{"description": "Named entity: gamma with a semi-colon.", +"input":"γ", +"output": [["Character", "\u03B3"]]}, + +{"description": "Named entity: ge with a semi-colon.", +"input":"≥", +"output": [["Character", "\u2265"]]}, + +{"description": "Named entity: gt with a semi-colon.", +"input":">", +"output": [["Character", "\u003E"]]}, + +{"description": "Named entity: gt without a semi-colon.", +"input":">", +"output": ["ParseError", ["Character", "\u003E"]]}, + +{"description": "Named entity: hArr with a semi-colon.", +"input":"⇔", +"output": [["Character", "\u21D4"]]}, + +{"description": "Named entity: harr with a semi-colon.", +"input":"↔", +"output": [["Character", "\u2194"]]}, + +{"description": "Named entity: hearts with a semi-colon.", +"input":"♥", +"output": [["Character", "\u2665"]]}, + +{"description": "Named entity: hellip with a semi-colon.", +"input":"…", +"output": [["Character", "\u2026"]]}, + +{"description": "Named entity: iacute with a semi-colon.", +"input":"í", +"output": [["Character", "\u00ED"]]}, + +{"description": "Named entity: iacute without a semi-colon.", +"input":"í", +"output": ["ParseError", ["Character", "\u00ED"]]}, + +{"description": "Named entity: icirc with a semi-colon.", +"input":"î", +"output": [["Character", "\u00EE"]]}, + +{"description": "Named entity: icirc without a semi-colon.", +"input":"î", +"output": ["ParseError", ["Character", "\u00EE"]]}, + +{"description": "Named entity: iexcl with a semi-colon.", +"input":"¡", +"output": [["Character", "\u00A1"]]}, + +{"description": "Named entity: iexcl without a semi-colon.", +"input":"¡", +"output": ["ParseError", ["Character", "\u00A1"]]}, + +{"description": "Named entity: igrave with a semi-colon.", +"input":"ì", +"output": [["Character", "\u00EC"]]}, + +{"description": "Named entity: igrave without a semi-colon.", +"input":"ì", +"output": ["ParseError", ["Character", "\u00EC"]]}, + +{"description": "Named entity: image with a semi-colon.", +"input":"ℑ", +"output": [["Character", "\u2111"]]}, + +{"description": "Named entity: infin with a semi-colon.", +"input":"∞", +"output": [["Character", "\u221E"]]}, + +{"description": "Named entity: int with a semi-colon.", +"input":"∫", +"output": [["Character", "\u222B"]]}, + +{"description": "Named entity: iota with a semi-colon.", +"input":"ι", +"output": [["Character", "\u03B9"]]}, + +{"description": "Named entity: iquest with a semi-colon.", +"input":"¿", +"output": [["Character", "\u00BF"]]}, + +{"description": "Named entity: iquest without a semi-colon.", +"input":"¿", +"output": ["ParseError", ["Character", "\u00BF"]]}, + +{"description": "Named entity: isin with a semi-colon.", +"input":"∈", +"output": [["Character", "\u2208"]]}, + +{"description": "Named entity: iuml with a semi-colon.", +"input":"ï", +"output": [["Character", "\u00EF"]]}, + +{"description": "Named entity: iuml without a semi-colon.", +"input":"ï", +"output": ["ParseError", ["Character", "\u00EF"]]}, + +{"description": "Named entity: kappa with a semi-colon.", +"input":"κ", +"output": [["Character", "\u03BA"]]}, + +{"description": "Named entity: lArr with a semi-colon.", +"input":"⇐", +"output": [["Character", "\u21D0"]]}, + +{"description": "Named entity: lambda with a semi-colon.", +"input":"λ", +"output": [["Character", "\u03BB"]]}, + +{"description": "Named entity: lang with a semi-colon.", +"input":"⟨", +"output": [["Character", "\u27E8"]]}, + +{"description": "Named entity: laquo with a semi-colon.", +"input":"«", +"output": [["Character", "\u00AB"]]}, + +{"description": "Named entity: laquo without a semi-colon.", +"input":"«", +"output": ["ParseError", ["Character", "\u00AB"]]}, + +{"description": "Named entity: larr with a semi-colon.", +"input":"←", +"output": [["Character", "\u2190"]]}, + +{"description": "Named entity: lceil with a semi-colon.", +"input":"⌈", +"output": [["Character", "\u2308"]]}, + +{"description": "Named entity: ldquo with a semi-colon.", +"input":"“", +"output": [["Character", "\u201C"]]}, + +{"description": "Named entity: le with a semi-colon.", +"input":"≤", +"output": [["Character", "\u2264"]]}, + +{"description": "Named entity: lfloor with a semi-colon.", +"input":"⌊", +"output": [["Character", "\u230A"]]}, + +{"description": "Named entity: lowast with a semi-colon.", +"input":"∗", +"output": [["Character", "\u2217"]]}, + +{"description": "Named entity: loz with a semi-colon.", +"input":"◊", +"output": [["Character", "\u25CA"]]}, + +{"description": "Named entity: lrm with a semi-colon.", +"input":"‎", +"output": [["Character", "\u200E"]]}, + +{"description": "Named entity: lsaquo with a semi-colon.", +"input":"‹", +"output": [["Character", "\u2039"]]}, + +{"description": "Named entity: lsquo with a semi-colon.", +"input":"‘", +"output": [["Character", "\u2018"]]}, + +{"description": "Named entity: lt with a semi-colon.", +"input":"<", +"output": [["Character", "\u003C"]]}, + +{"description": "Named entity: lt without a semi-colon.", +"input":"<", +"output": ["ParseError", ["Character", "\u003C"]]}, + +{"description": "Named entity: macr with a semi-colon.", +"input":"¯", +"output": [["Character", "\u00AF"]]}, + +{"description": "Named entity: macr without a semi-colon.", +"input":"¯", +"output": ["ParseError", ["Character", "\u00AF"]]}, + +{"description": "Named entity: mdash with a semi-colon.", +"input":"—", +"output": [["Character", "\u2014"]]}, + +{"description": "Named entity: micro with a semi-colon.", +"input":"µ", +"output": [["Character", "\u00B5"]]}, + +{"description": "Named entity: micro without a semi-colon.", +"input":"µ", +"output": ["ParseError", ["Character", "\u00B5"]]}, + +{"description": "Named entity: middot with a semi-colon.", +"input":"·", +"output": [["Character", "\u00B7"]]}, + +{"description": "Named entity: middot without a semi-colon.", +"input":"·", +"output": ["ParseError", ["Character", "\u00B7"]]}, + +{"description": "Named entity: minus with a semi-colon.", +"input":"−", +"output": [["Character", "\u2212"]]}, + +{"description": "Named entity: mu with a semi-colon.", +"input":"μ", +"output": [["Character", "\u03BC"]]}, + +{"description": "Named entity: nabla with a semi-colon.", +"input":"∇", +"output": [["Character", "\u2207"]]}, + +{"description": "Named entity: nbsp with a semi-colon.", +"input":" ", +"output": [["Character", "\u00A0"]]}, + +{"description": "Named entity: nbsp without a semi-colon.", +"input":" ", +"output": ["ParseError", ["Character", "\u00A0"]]}, + +{"description": "Named entity: ndash with a semi-colon.", +"input":"–", +"output": [["Character", "\u2013"]]}, + +{"description": "Named entity: ne with a semi-colon.", +"input":"≠", +"output": [["Character", "\u2260"]]}, + +{"description": "Named entity: ni with a semi-colon.", +"input":"∋", +"output": [["Character", "\u220B"]]}, + +{"description": "Named entity: not with a semi-colon.", +"input":"¬", +"output": [["Character", "\u00AC"]]}, + +{"description": "Named entity: not without a semi-colon.", +"input":"¬", +"output": ["ParseError", ["Character", "\u00AC"]]}, + +{"description": "Named entity: notin with a semi-colon.", +"input":"∉", +"output": [["Character", "\u2209"]]}, + +{"description": "Named entity: nsub with a semi-colon.", +"input":"⊄", +"output": [["Character", "\u2284"]]}, + +{"description": "Named entity: ntilde with a semi-colon.", +"input":"ñ", +"output": [["Character", "\u00F1"]]}, + +{"description": "Named entity: ntilde without a semi-colon.", +"input":"ñ", +"output": ["ParseError", ["Character", "\u00F1"]]}, + +{"description": "Named entity: nu with a semi-colon.", +"input":"ν", +"output": [["Character", "\u03BD"]]}, + +{"description": "Named entity: oacute with a semi-colon.", +"input":"ó", +"output": [["Character", "\u00F3"]]}, + +{"description": "Named entity: oacute without a semi-colon.", +"input":"ó", +"output": ["ParseError", ["Character", "\u00F3"]]}, + +{"description": "Named entity: ocirc with a semi-colon.", +"input":"ô", +"output": [["Character", "\u00F4"]]}, + +{"description": "Named entity: ocirc without a semi-colon.", +"input":"ô", +"output": ["ParseError", ["Character", "\u00F4"]]}, + +{"description": "Named entity: oelig with a semi-colon.", +"input":"œ", +"output": [["Character", "\u0153"]]}, + +{"description": "Named entity: ograve with a semi-colon.", +"input":"ò", +"output": [["Character", "\u00F2"]]}, + +{"description": "Named entity: ograve without a semi-colon.", +"input":"ò", +"output": ["ParseError", ["Character", "\u00F2"]]}, + +{"description": "Named entity: oline with a semi-colon.", +"input":"‾", +"output": [["Character", "\u203E"]]}, + +{"description": "Named entity: omega with a semi-colon.", +"input":"ω", +"output": [["Character", "\u03C9"]]}, + +{"description": "Named entity: omicron with a semi-colon.", +"input":"ο", +"output": [["Character", "\u03BF"]]}, + +{"description": "Named entity: oplus with a semi-colon.", +"input":"⊕", +"output": [["Character", "\u2295"]]}, + +{"description": "Named entity: or with a semi-colon.", +"input":"∨", +"output": [["Character", "\u2228"]]}, + +{"description": "Named entity: ordf with a semi-colon.", +"input":"ª", +"output": [["Character", "\u00AA"]]}, + +{"description": "Named entity: ordf without a semi-colon.", +"input":"ª", +"output": ["ParseError", ["Character", "\u00AA"]]}, + +{"description": "Named entity: ordm with a semi-colon.", +"input":"º", +"output": [["Character", "\u00BA"]]}, + +{"description": "Named entity: ordm without a semi-colon.", +"input":"º", +"output": ["ParseError", ["Character", "\u00BA"]]}, + +{"description": "Named entity: oslash with a semi-colon.", +"input":"ø", +"output": [["Character", "\u00F8"]]}, + +{"description": "Named entity: oslash without a semi-colon.", +"input":"ø", +"output": ["ParseError", ["Character", "\u00F8"]]}, + +{"description": "Named entity: otilde with a semi-colon.", +"input":"õ", +"output": [["Character", "\u00F5"]]}, + +{"description": "Named entity: otilde without a semi-colon.", +"input":"õ", +"output": ["ParseError", ["Character", "\u00F5"]]}, + +{"description": "Named entity: otimes with a semi-colon.", +"input":"⊗", +"output": [["Character", "\u2297"]]}, + +{"description": "Named entity: ouml with a semi-colon.", +"input":"ö", +"output": [["Character", "\u00F6"]]}, + +{"description": "Named entity: ouml without a semi-colon.", +"input":"ö", +"output": ["ParseError", ["Character", "\u00F6"]]}, + +{"description": "Named entity: para with a semi-colon.", +"input":"¶", +"output": [["Character", "\u00B6"]]}, + +{"description": "Named entity: para without a semi-colon.", +"input":"¶", +"output": ["ParseError", ["Character", "\u00B6"]]}, + +{"description": "Named entity: part with a semi-colon.", +"input":"∂", +"output": [["Character", "\u2202"]]}, + +{"description": "Named entity: permil with a semi-colon.", +"input":"‰", +"output": [["Character", "\u2030"]]}, + +{"description": "Named entity: perp with a semi-colon.", +"input":"⊥", +"output": [["Character", "\u22A5"]]}, + +{"description": "Named entity: phi with a semi-colon.", +"input":"φ", +"output": [["Character", "\u03C6"]]}, + +{"description": "Named entity: pi with a semi-colon.", +"input":"π", +"output": [["Character", "\u03C0"]]}, + +{"description": "Named entity: piv with a semi-colon.", +"input":"ϖ", +"output": [["Character", "\u03D6"]]}, + +{"description": "Named entity: plusmn with a semi-colon.", +"input":"±", +"output": [["Character", "\u00B1"]]}, + +{"description": "Named entity: plusmn without a semi-colon.", +"input":"±", +"output": ["ParseError", ["Character", "\u00B1"]]}, + +{"description": "Named entity: pound with a semi-colon.", +"input":"£", +"output": [["Character", "\u00A3"]]}, + +{"description": "Named entity: pound without a semi-colon.", +"input":"£", +"output": ["ParseError", ["Character", "\u00A3"]]}, + +{"description": "Named entity: prime with a semi-colon.", +"input":"′", +"output": [["Character", "\u2032"]]}, + +{"description": "Named entity: prod with a semi-colon.", +"input":"∏", +"output": [["Character", "\u220F"]]}, + +{"description": "Named entity: prop with a semi-colon.", +"input":"∝", +"output": [["Character", "\u221D"]]}, + +{"description": "Named entity: psi with a semi-colon.", +"input":"ψ", +"output": [["Character", "\u03C8"]]}, + +{"description": "Named entity: quot with a semi-colon.", +"input":""", +"output": [["Character", "\u0022"]]}, + +{"description": "Named entity: quot without a semi-colon.", +"input":""", +"output": ["ParseError", ["Character", "\u0022"]]}, + +{"description": "Named entity: rArr with a semi-colon.", +"input":"⇒", +"output": [["Character", "\u21D2"]]}, + +{"description": "Named entity: radic with a semi-colon.", +"input":"√", +"output": [["Character", "\u221A"]]}, + +{"description": "Named entity: rang with a semi-colon.", +"input":"⟩", +"output": [["Character", "\u27E9"]]}, + +{"description": "Named entity: raquo with a semi-colon.", +"input":"»", +"output": [["Character", "\u00BB"]]}, + +{"description": "Named entity: raquo without a semi-colon.", +"input":"»", +"output": ["ParseError", ["Character", "\u00BB"]]}, + +{"description": "Named entity: rarr with a semi-colon.", +"input":"→", +"output": [["Character", "\u2192"]]}, + +{"description": "Named entity: rceil with a semi-colon.", +"input":"⌉", +"output": [["Character", "\u2309"]]}, + +{"description": "Named entity: rdquo with a semi-colon.", +"input":"”", +"output": [["Character", "\u201D"]]}, + +{"description": "Named entity: real with a semi-colon.", +"input":"ℜ", +"output": [["Character", "\u211C"]]}, + +{"description": "Named entity: reg with a semi-colon.", +"input":"®", +"output": [["Character", "\u00AE"]]}, + +{"description": "Named entity: reg without a semi-colon.", +"input":"®", +"output": ["ParseError", ["Character", "\u00AE"]]}, + +{"description": "Named entity: rfloor with a semi-colon.", +"input":"⌋", +"output": [["Character", "\u230B"]]}, + +{"description": "Named entity: rho with a semi-colon.", +"input":"ρ", +"output": [["Character", "\u03C1"]]}, + +{"description": "Named entity: rlm with a semi-colon.", +"input":"‏", +"output": [["Character", "\u200F"]]}, + +{"description": "Named entity: rsaquo with a semi-colon.", +"input":"›", +"output": [["Character", "\u203A"]]}, + +{"description": "Named entity: rsquo with a semi-colon.", +"input":"’", +"output": [["Character", "\u2019"]]}, + +{"description": "Named entity: sbquo with a semi-colon.", +"input":"‚", +"output": [["Character", "\u201A"]]}, + +{"description": "Named entity: scaron with a semi-colon.", +"input":"š", +"output": [["Character", "\u0161"]]}, + +{"description": "Named entity: sdot with a semi-colon.", +"input":"⋅", +"output": [["Character", "\u22C5"]]}, + +{"description": "Named entity: sect with a semi-colon.", +"input":"§", +"output": [["Character", "\u00A7"]]}, + +{"description": "Named entity: sect without a semi-colon.", +"input":"§", +"output": ["ParseError", ["Character", "\u00A7"]]}, + +{"description": "Named entity: shy with a semi-colon.", +"input":"­", +"output": [["Character", "\u00AD"]]}, + +{"description": "Named entity: shy without a semi-colon.", +"input":"­", +"output": ["ParseError", ["Character", "\u00AD"]]}, + +{"description": "Named entity: sigma with a semi-colon.", +"input":"σ", +"output": [["Character", "\u03C3"]]}, + +{"description": "Named entity: sigmaf with a semi-colon.", +"input":"ς", +"output": [["Character", "\u03C2"]]}, + +{"description": "Named entity: sim with a semi-colon.", +"input":"∼", +"output": [["Character", "\u223C"]]}, + +{"description": "Named entity: spades with a semi-colon.", +"input":"♠", +"output": [["Character", "\u2660"]]}, + +{"description": "Named entity: sub with a semi-colon.", +"input":"⊂", +"output": [["Character", "\u2282"]]}, + +{"description": "Named entity: sube with a semi-colon.", +"input":"⊆", +"output": [["Character", "\u2286"]]}, + +{"description": "Named entity: sum with a semi-colon.", +"input":"∑", +"output": [["Character", "\u2211"]]}, + +{"description": "Named entity: sup1 with a semi-colon.", +"input":"¹", +"output": [["Character", "\u00B9"]]}, + +{"description": "Named entity: sup1 without a semi-colon.", +"input":"¹", +"output": ["ParseError", ["Character", "\u00B9"]]}, + +{"description": "Named entity: sup2 with a semi-colon.", +"input":"²", +"output": [["Character", "\u00B2"]]}, + +{"description": "Named entity: sup2 without a semi-colon.", +"input":"²", +"output": ["ParseError", ["Character", "\u00B2"]]}, + +{"description": "Named entity: sup3 with a semi-colon.", +"input":"³", +"output": [["Character", "\u00B3"]]}, + +{"description": "Named entity: sup3 without a semi-colon.", +"input":"³", +"output": ["ParseError", ["Character", "\u00B3"]]}, + +{"description": "Named entity: sup with a semi-colon.", +"input":"⊃", +"output": [["Character", "\u2283"]]}, + +{"description": "Named entity: supe with a semi-colon.", +"input":"⊇", +"output": [["Character", "\u2287"]]}, + +{"description": "Named entity: szlig with a semi-colon.", +"input":"ß", +"output": [["Character", "\u00DF"]]}, + +{"description": "Named entity: szlig without a semi-colon.", +"input":"ß", +"output": ["ParseError", ["Character", "\u00DF"]]}, + +{"description": "Named entity: tau with a semi-colon.", +"input":"τ", +"output": [["Character", "\u03C4"]]}, + +{"description": "Named entity: there4 with a semi-colon.", +"input":"∴", +"output": [["Character", "\u2234"]]}, + +{"description": "Named entity: theta with a semi-colon.", +"input":"θ", +"output": [["Character", "\u03B8"]]}, + +{"description": "Named entity: thetasym with a semi-colon.", +"input":"ϑ", +"output": [["Character", "\u03D1"]]}, + +{"description": "Named entity: thinsp with a semi-colon.", +"input":" ", +"output": [["Character", "\u2009"]]}, + +{"description": "Named entity: thorn with a semi-colon.", +"input":"þ", +"output": [["Character", "\u00FE"]]}, + +{"description": "Named entity: thorn without a semi-colon.", +"input":"þ", +"output": ["ParseError", ["Character", "\u00FE"]]}, + +{"description": "Named entity: tilde with a semi-colon.", +"input":"˜", +"output": [["Character", "\u02DC"]]}, + +{"description": "Named entity: times with a semi-colon.", +"input":"×", +"output": [["Character", "\u00D7"]]}, + +{"description": "Named entity: times without a semi-colon.", +"input":"×", +"output": ["ParseError", ["Character", "\u00D7"]]}, + +{"description": "Named entity: trade with a semi-colon.", +"input":"™", +"output": [["Character", "\u2122"]]}, + +{"description": "Named entity: uArr with a semi-colon.", +"input":"⇑", +"output": [["Character", "\u21D1"]]}, + +{"description": "Named entity: uacute with a semi-colon.", +"input":"ú", +"output": [["Character", "\u00FA"]]}, + +{"description": "Named entity: uacute without a semi-colon.", +"input":"ú", +"output": ["ParseError", ["Character", "\u00FA"]]}, + +{"description": "Named entity: uarr with a semi-colon.", +"input":"↑", +"output": [["Character", "\u2191"]]}, + +{"description": "Named entity: ucirc with a semi-colon.", +"input":"û", +"output": [["Character", "\u00FB"]]}, + +{"description": "Named entity: ucirc without a semi-colon.", +"input":"û", +"output": ["ParseError", ["Character", "\u00FB"]]}, + +{"description": "Named entity: ugrave with a semi-colon.", +"input":"ù", +"output": [["Character", "\u00F9"]]}, + +{"description": "Named entity: ugrave without a semi-colon.", +"input":"ù", +"output": ["ParseError", ["Character", "\u00F9"]]}, + +{"description": "Named entity: uml with a semi-colon.", +"input":"¨", +"output": [["Character", "\u00A8"]]}, + +{"description": "Named entity: uml without a semi-colon.", +"input":"¨", +"output": ["ParseError", ["Character", "\u00A8"]]}, + +{"description": "Named entity: upsih with a semi-colon.", +"input":"ϒ", +"output": [["Character", "\u03D2"]]}, + +{"description": "Named entity: upsilon with a semi-colon.", +"input":"υ", +"output": [["Character", "\u03C5"]]}, + +{"description": "Named entity: uuml with a semi-colon.", +"input":"ü", +"output": [["Character", "\u00FC"]]}, + +{"description": "Named entity: uuml without a semi-colon.", +"input":"ü", +"output": ["ParseError", ["Character", "\u00FC"]]}, + +{"description": "Named entity: weierp with a semi-colon.", +"input":"℘", +"output": [["Character", "\u2118"]]}, + +{"description": "Named entity: xi with a semi-colon.", +"input":"ξ", +"output": [["Character", "\u03BE"]]}, + +{"description": "Named entity: yacute with a semi-colon.", +"input":"ý", +"output": [["Character", "\u00FD"]]}, + +{"description": "Named entity: yacute without a semi-colon.", +"input":"ý", +"output": ["ParseError", ["Character", "\u00FD"]]}, + +{"description": "Named entity: yen with a semi-colon.", +"input":"¥", +"output": [["Character", "\u00A5"]]}, + +{"description": "Named entity: yen without a semi-colon.", +"input":"¥", +"output": ["ParseError", ["Character", "\u00A5"]]}, + +{"description": "Named entity: yuml with a semi-colon.", +"input":"ÿ", +"output": [["Character", "\u00FF"]]}, + +{"description": "Named entity: yuml without a semi-colon.", +"input":"ÿ", +"output": ["ParseError", ["Character", "\u00FF"]]}, + +{"description": "Named entity: zeta with a semi-colon.", +"input":"ζ", +"output": [["Character", "\u03B6"]]}, + +{"description": "Named entity: zwj with a semi-colon.", +"input":"‍", +"output": [["Character", "\u200D"]]}, + +{"description": "Named entity: zwnj with a semi-colon.", +"input":"‌", +"output": [["Character", "\u200C"]]}, + +{"description": "Bad named entity: Alpha without a semi-colon.", +"input":"&Alpha", +"output": ["ParseError", ["Character", "&Alpha"]]}, + +{"description": "Bad named entity: alpha without a semi-colon.", +"input":"&alpha", +"output": ["ParseError", ["Character", "&alpha"]]}, + +{"description": "Bad named entity: and without a semi-colon.", +"input":"&and", +"output": ["ParseError", ["Character", "&and"]]}, + +{"description": "Bad named entity: ang without a semi-colon.", +"input":"&ang", +"output": ["ParseError", ["Character", "&ang"]]}, + +{"description": "Bad named entity: apos without a semi-colon.", +"input":"&apos", +"output": ["ParseError", ["Character", "&apos"]]}, + +{"description": "Bad named entity: asymp without a semi-colon.", +"input":"&asymp", +"output": ["ParseError", ["Character", "&asymp"]]}, + +{"description": "Bad named entity: bdquo without a semi-colon.", +"input":"&bdquo", +"output": ["ParseError", ["Character", "&bdquo"]]}, + +{"description": "Bad named entity: Beta without a semi-colon.", +"input":"&Beta", +"output": ["ParseError", ["Character", "&Beta"]]}, + +{"description": "Bad named entity: beta without a semi-colon.", +"input":"&beta", +"output": ["ParseError", ["Character", "&beta"]]}, + +{"description": "Bad named entity: bull without a semi-colon.", +"input":"&bull", +"output": ["ParseError", ["Character", "&bull"]]}, + +{"description": "Bad named entity: cap without a semi-colon.", +"input":"&cap", +"output": ["ParseError", ["Character", "&cap"]]}, + +{"description": "Bad named entity: Chi without a semi-colon.", +"input":"&Chi", +"output": ["ParseError", ["Character", "&Chi"]]}, + +{"description": "Bad named entity: chi without a semi-colon.", +"input":"&chi", +"output": ["ParseError", ["Character", "&chi"]]}, + +{"description": "Bad named entity: circ without a semi-colon.", +"input":"&circ", +"output": ["ParseError", ["Character", "&circ"]]}, + +{"description": "Bad named entity: clubs without a semi-colon.", +"input":"&clubs", +"output": ["ParseError", ["Character", "&clubs"]]}, + +{"description": "Bad named entity: cong without a semi-colon.", +"input":"&cong", +"output": ["ParseError", ["Character", "&cong"]]}, + +{"description": "Bad named entity: crarr without a semi-colon.", +"input":"&crarr", +"output": ["ParseError", ["Character", "&crarr"]]}, + +{"description": "Bad named entity: cup without a semi-colon.", +"input":"&cup", +"output": ["ParseError", ["Character", "&cup"]]}, + +{"description": "Bad named entity: dagger without a semi-colon.", +"input":"&dagger", +"output": ["ParseError", ["Character", "&dagger"]]}, + +{"description": "Bad named entity: dagger without a semi-colon.", +"input":"&dagger", +"output": ["ParseError", ["Character", "&dagger"]]}, + +{"description": "Bad named entity: darr without a semi-colon.", +"input":"&darr", +"output": ["ParseError", ["Character", "&darr"]]}, + +{"description": "Bad named entity: darr without a semi-colon.", +"input":"&darr", +"output": ["ParseError", ["Character", "&darr"]]}, + +{"description": "Bad named entity: Delta without a semi-colon.", +"input":"&Delta", +"output": ["ParseError", ["Character", "&Delta"]]}, + +{"description": "Bad named entity: delta without a semi-colon.", +"input":"&delta", +"output": ["ParseError", ["Character", "&delta"]]}, + +{"description": "Bad named entity: diams without a semi-colon.", +"input":"&diams", +"output": ["ParseError", ["Character", "&diams"]]}, + +{"description": "Bad named entity: empty without a semi-colon.", +"input":"&empty", +"output": ["ParseError", ["Character", "&empty"]]}, + +{"description": "Bad named entity: emsp without a semi-colon.", +"input":"&emsp", +"output": ["ParseError", ["Character", "&emsp"]]}, + +{"description": "Bad named entity: ensp without a semi-colon.", +"input":"&ensp", +"output": ["ParseError", ["Character", "&ensp"]]}, + +{"description": "Bad named entity: Epsilon without a semi-colon.", +"input":"&Epsilon", +"output": ["ParseError", ["Character", "&Epsilon"]]}, + +{"description": "Bad named entity: epsilon without a semi-colon.", +"input":"&epsilon", +"output": ["ParseError", ["Character", "&epsilon"]]}, + +{"description": "Bad named entity: equiv without a semi-colon.", +"input":"&equiv", +"output": ["ParseError", ["Character", "&equiv"]]}, + +{"description": "Bad named entity: Eta without a semi-colon.", +"input":"&Eta", +"output": ["ParseError", ["Character", "&Eta"]]}, + +{"description": "Bad named entity: eta without a semi-colon.", +"input":"&eta", +"output": ["ParseError", ["Character", "&eta"]]}, + +{"description": "Bad named entity: euro without a semi-colon.", +"input":"&euro", +"output": ["ParseError", ["Character", "&euro"]]}, + +{"description": "Bad named entity: exist without a semi-colon.", +"input":"&exist", +"output": ["ParseError", ["Character", "&exist"]]}, + +{"description": "Bad named entity: fnof without a semi-colon.", +"input":"&fnof", +"output": ["ParseError", ["Character", "&fnof"]]}, + +{"description": "Bad named entity: forall without a semi-colon.", +"input":"&forall", +"output": ["ParseError", ["Character", "&forall"]]}, + +{"description": "Bad named entity: frasl without a semi-colon.", +"input":"&frasl", +"output": ["ParseError", ["Character", "&frasl"]]}, + +{"description": "Bad named entity: Gamma without a semi-colon.", +"input":"&Gamma", +"output": ["ParseError", ["Character", "&Gamma"]]}, + +{"description": "Bad named entity: gamma without a semi-colon.", +"input":"&gamma", +"output": ["ParseError", ["Character", "&gamma"]]}, + +{"description": "Bad named entity: ge without a semi-colon.", +"input":"&ge", +"output": ["ParseError", ["Character", "&ge"]]}, + +{"description": "Bad named entity: harr without a semi-colon.", +"input":"&harr", +"output": ["ParseError", ["Character", "&harr"]]}, + +{"description": "Bad named entity: harr without a semi-colon.", +"input":"&harr", +"output": ["ParseError", ["Character", "&harr"]]}, + +{"description": "Bad named entity: hearts without a semi-colon.", +"input":"&hearts", +"output": ["ParseError", ["Character", "&hearts"]]}, + +{"description": "Bad named entity: hellip without a semi-colon.", +"input":"&hellip", +"output": ["ParseError", ["Character", "&hellip"]]}, + +{"description": "Bad named entity: image without a semi-colon.", +"input":"&image", +"output": ["ParseError", ["Character", "&image"]]}, + +{"description": "Bad named entity: infin without a semi-colon.", +"input":"&infin", +"output": ["ParseError", ["Character", "&infin"]]}, + +{"description": "Bad named entity: int without a semi-colon.", +"input":"&int", +"output": ["ParseError", ["Character", "&int"]]}, + +{"description": "Bad named entity: Iota without a semi-colon.", +"input":"&Iota", +"output": ["ParseError", ["Character", "&Iota"]]}, + +{"description": "Bad named entity: iota without a semi-colon.", +"input":"&iota", +"output": ["ParseError", ["Character", "&iota"]]}, + +{"description": "Bad named entity: isin without a semi-colon.", +"input":"&isin", +"output": ["ParseError", ["Character", "&isin"]]}, + +{"description": "Bad named entity: Kappa without a semi-colon.", +"input":"&Kappa", +"output": ["ParseError", ["Character", "&Kappa"]]}, + +{"description": "Bad named entity: kappa without a semi-colon.", +"input":"&kappa", +"output": ["ParseError", ["Character", "&kappa"]]}, + +{"description": "Bad named entity: Lambda without a semi-colon.", +"input":"&Lambda", +"output": ["ParseError", ["Character", "&Lambda"]]}, + +{"description": "Bad named entity: lambda without a semi-colon.", +"input":"&lambda", +"output": ["ParseError", ["Character", "&lambda"]]}, + +{"description": "Bad named entity: lang without a semi-colon.", +"input":"&lang", +"output": ["ParseError", ["Character", "&lang"]]}, + +{"description": "Bad named entity: larr without a semi-colon.", +"input":"&larr", +"output": ["ParseError", ["Character", "&larr"]]}, + +{"description": "Bad named entity: larr without a semi-colon.", +"input":"&larr", +"output": ["ParseError", ["Character", "&larr"]]}, + +{"description": "Bad named entity: lceil without a semi-colon.", +"input":"&lceil", +"output": ["ParseError", ["Character", "&lceil"]]}, + +{"description": "Bad named entity: ldquo without a semi-colon.", +"input":"&ldquo", +"output": ["ParseError", ["Character", "&ldquo"]]}, + +{"description": "Bad named entity: le without a semi-colon.", +"input":"&le", +"output": ["ParseError", ["Character", "&le"]]}, + +{"description": "Bad named entity: lfloor without a semi-colon.", +"input":"&lfloor", +"output": ["ParseError", ["Character", "&lfloor"]]}, + +{"description": "Bad named entity: lowast without a semi-colon.", +"input":"&lowast", +"output": ["ParseError", ["Character", "&lowast"]]}, + +{"description": "Bad named entity: loz without a semi-colon.", +"input":"&loz", +"output": ["ParseError", ["Character", "&loz"]]}, + +{"description": "Bad named entity: lrm without a semi-colon.", +"input":"&lrm", +"output": ["ParseError", ["Character", "&lrm"]]}, + +{"description": "Bad named entity: lsaquo without a semi-colon.", +"input":"&lsaquo", +"output": ["ParseError", ["Character", "&lsaquo"]]}, + +{"description": "Bad named entity: lsquo without a semi-colon.", +"input":"&lsquo", +"output": ["ParseError", ["Character", "&lsquo"]]}, + +{"description": "Bad named entity: mdash without a semi-colon.", +"input":"&mdash", +"output": ["ParseError", ["Character", "&mdash"]]}, + +{"description": "Bad named entity: minus without a semi-colon.", +"input":"&minus", +"output": ["ParseError", ["Character", "&minus"]]}, + +{"description": "Bad named entity: Mu without a semi-colon.", +"input":"&Mu", +"output": ["ParseError", ["Character", "&Mu"]]}, + +{"description": "Bad named entity: mu without a semi-colon.", +"input":"&mu", +"output": ["ParseError", ["Character", "&mu"]]}, + +{"description": "Bad named entity: nabla without a semi-colon.", +"input":"&nabla", +"output": ["ParseError", ["Character", "&nabla"]]}, + +{"description": "Bad named entity: ndash without a semi-colon.", +"input":"&ndash", +"output": ["ParseError", ["Character", "&ndash"]]}, + +{"description": "Bad named entity: ne without a semi-colon.", +"input":"&ne", +"output": ["ParseError", ["Character", "&ne"]]}, + +{"description": "Bad named entity: ni without a semi-colon.", +"input":"&ni", +"output": ["ParseError", ["Character", "&ni"]]}, + +{"description": "Bad named entity: notin without a semi-colon.", +"input":"¬in", +"output": ["ParseError", ["Character", "\u00ACin"]]}, + +{"description": "Bad named entity: nsub without a semi-colon.", +"input":"&nsub", +"output": ["ParseError", ["Character", "&nsub"]]}, + +{"description": "Bad named entity: Nu without a semi-colon.", +"input":"&Nu", +"output": ["ParseError", ["Character", "&Nu"]]}, + +{"description": "Bad named entity: nu without a semi-colon.", +"input":"&nu", +"output": ["ParseError", ["Character", "&nu"]]}, + +{"description": "Bad named entity: OElig without a semi-colon.", +"input":"&OElig", +"output": ["ParseError", ["Character", "&OElig"]]}, + +{"description": "Bad named entity: oelig without a semi-colon.", +"input":"&oelig", +"output": ["ParseError", ["Character", "&oelig"]]}, + +{"description": "Bad named entity: oline without a semi-colon.", +"input":"&oline", +"output": ["ParseError", ["Character", "&oline"]]}, + +{"description": "Bad named entity: Omega without a semi-colon.", +"input":"&Omega", +"output": ["ParseError", ["Character", "&Omega"]]}, + +{"description": "Bad named entity: omega without a semi-colon.", +"input":"&omega", +"output": ["ParseError", ["Character", "&omega"]]}, + +{"description": "Bad named entity: Omicron without a semi-colon.", +"input":"&Omicron", +"output": ["ParseError", ["Character", "&Omicron"]]}, + +{"description": "Bad named entity: omicron without a semi-colon.", +"input":"&omicron", +"output": ["ParseError", ["Character", "&omicron"]]}, + +{"description": "Bad named entity: oplus without a semi-colon.", +"input":"&oplus", +"output": ["ParseError", ["Character", "&oplus"]]}, + +{"description": "Bad named entity: or without a semi-colon.", +"input":"&or", +"output": ["ParseError", ["Character", "&or"]]}, + +{"description": "Bad named entity: otimes without a semi-colon.", +"input":"&otimes", +"output": ["ParseError", ["Character", "&otimes"]]}, + +{"description": "Bad named entity: part without a semi-colon.", +"input":"&part", +"output": ["ParseError", ["Character", "&part"]]}, + +{"description": "Bad named entity: permil without a semi-colon.", +"input":"&permil", +"output": ["ParseError", ["Character", "&permil"]]}, + +{"description": "Bad named entity: perp without a semi-colon.", +"input":"&perp", +"output": ["ParseError", ["Character", "&perp"]]}, + +{"description": "Bad named entity: Phi without a semi-colon.", +"input":"&Phi", +"output": ["ParseError", ["Character", "&Phi"]]}, + +{"description": "Bad named entity: phi without a semi-colon.", +"input":"&phi", +"output": ["ParseError", ["Character", "&phi"]]}, + +{"description": "Bad named entity: Pi without a semi-colon.", +"input":"&Pi", +"output": ["ParseError", ["Character", "&Pi"]]}, + +{"description": "Bad named entity: pi without a semi-colon.", +"input":"&pi", +"output": ["ParseError", ["Character", "&pi"]]}, + +{"description": "Bad named entity: piv without a semi-colon.", +"input":"&piv", +"output": ["ParseError", ["Character", "&piv"]]}, + +{"description": "Bad named entity: prime without a semi-colon.", +"input":"&prime", +"output": ["ParseError", ["Character", "&prime"]]}, + +{"description": "Bad named entity: prime without a semi-colon.", +"input":"&prime", +"output": ["ParseError", ["Character", "&prime"]]}, + +{"description": "Bad named entity: prod without a semi-colon.", +"input":"&prod", +"output": ["ParseError", ["Character", "&prod"]]}, + +{"description": "Bad named entity: prop without a semi-colon.", +"input":"&prop", +"output": ["ParseError", ["Character", "&prop"]]}, + +{"description": "Bad named entity: Psi without a semi-colon.", +"input":"&Psi", +"output": ["ParseError", ["Character", "&Psi"]]}, + +{"description": "Bad named entity: psi without a semi-colon.", +"input":"&psi", +"output": ["ParseError", ["Character", "&psi"]]}, + +{"description": "Bad named entity: radic without a semi-colon.", +"input":"&radic", +"output": ["ParseError", ["Character", "&radic"]]}, + +{"description": "Bad named entity: rang without a semi-colon.", +"input":"&rang", +"output": ["ParseError", ["Character", "&rang"]]}, + +{"description": "Bad named entity: rarr without a semi-colon.", +"input":"&rarr", +"output": ["ParseError", ["Character", "&rarr"]]}, + +{"description": "Bad named entity: rarr without a semi-colon.", +"input":"&rarr", +"output": ["ParseError", ["Character", "&rarr"]]}, + +{"description": "Bad named entity: rceil without a semi-colon.", +"input":"&rceil", +"output": ["ParseError", ["Character", "&rceil"]]}, + +{"description": "Bad named entity: rdquo without a semi-colon.", +"input":"&rdquo", +"output": ["ParseError", ["Character", "&rdquo"]]}, + +{"description": "Bad named entity: real without a semi-colon.", +"input":"&real", +"output": ["ParseError", ["Character", "&real"]]}, + +{"description": "Bad named entity: rfloor without a semi-colon.", +"input":"&rfloor", +"output": ["ParseError", ["Character", "&rfloor"]]}, + +{"description": "Bad named entity: Rho without a semi-colon.", +"input":"&Rho", +"output": ["ParseError", ["Character", "&Rho"]]}, + +{"description": "Bad named entity: rho without a semi-colon.", +"input":"&rho", +"output": ["ParseError", ["Character", "&rho"]]}, + +{"description": "Bad named entity: rlm without a semi-colon.", +"input":"&rlm", +"output": ["ParseError", ["Character", "&rlm"]]}, + +{"description": "Bad named entity: rsaquo without a semi-colon.", +"input":"&rsaquo", +"output": ["ParseError", ["Character", "&rsaquo"]]}, + +{"description": "Bad named entity: rsquo without a semi-colon.", +"input":"&rsquo", +"output": ["ParseError", ["Character", "&rsquo"]]}, + +{"description": "Bad named entity: sbquo without a semi-colon.", +"input":"&sbquo", +"output": ["ParseError", ["Character", "&sbquo"]]}, + +{"description": "Bad named entity: Scaron without a semi-colon.", +"input":"&Scaron", +"output": ["ParseError", ["Character", "&Scaron"]]}, + +{"description": "Bad named entity: scaron without a semi-colon.", +"input":"&scaron", +"output": ["ParseError", ["Character", "&scaron"]]}, + +{"description": "Bad named entity: sdot without a semi-colon.", +"input":"&sdot", +"output": ["ParseError", ["Character", "&sdot"]]}, + +{"description": "Bad named entity: Sigma without a semi-colon.", +"input":"&Sigma", +"output": ["ParseError", ["Character", "&Sigma"]]}, + +{"description": "Bad named entity: sigma without a semi-colon.", +"input":"&sigma", +"output": ["ParseError", ["Character", "&sigma"]]}, + +{"description": "Bad named entity: sigmaf without a semi-colon.", +"input":"&sigmaf", +"output": ["ParseError", ["Character", "&sigmaf"]]}, + +{"description": "Bad named entity: sim without a semi-colon.", +"input":"&sim", +"output": ["ParseError", ["Character", "&sim"]]}, + +{"description": "Bad named entity: spades without a semi-colon.", +"input":"&spades", +"output": ["ParseError", ["Character", "&spades"]]}, + +{"description": "Bad named entity: sub without a semi-colon.", +"input":"&sub", +"output": ["ParseError", ["Character", "&sub"]]}, + +{"description": "Bad named entity: sube without a semi-colon.", +"input":"&sube", +"output": ["ParseError", ["Character", "&sube"]]}, + +{"description": "Bad named entity: sum without a semi-colon.", +"input":"&sum", +"output": ["ParseError", ["Character", "&sum"]]}, + +{"description": "Bad named entity: sup without a semi-colon.", +"input":"&sup", +"output": ["ParseError", ["Character", "&sup"]]}, + +{"description": "Bad named entity: supe without a semi-colon.", +"input":"&supe", +"output": ["ParseError", ["Character", "&supe"]]}, + +{"description": "Bad named entity: Tau without a semi-colon.", +"input":"&Tau", +"output": ["ParseError", ["Character", "&Tau"]]}, + +{"description": "Bad named entity: tau without a semi-colon.", +"input":"&tau", +"output": ["ParseError", ["Character", "&tau"]]}, + +{"description": "Bad named entity: there4 without a semi-colon.", +"input":"&there4", +"output": ["ParseError", ["Character", "&there4"]]}, + +{"description": "Bad named entity: Theta without a semi-colon.", +"input":"&Theta", +"output": ["ParseError", ["Character", "&Theta"]]}, + +{"description": "Bad named entity: theta without a semi-colon.", +"input":"&theta", +"output": ["ParseError", ["Character", "&theta"]]}, + +{"description": "Bad named entity: thetasym without a semi-colon.", +"input":"&thetasym", +"output": ["ParseError", ["Character", "&thetasym"]]}, + +{"description": "Bad named entity: thinsp without a semi-colon.", +"input":"&thinsp", +"output": ["ParseError", ["Character", "&thinsp"]]}, + +{"description": "Bad named entity: tilde without a semi-colon.", +"input":"&tilde", +"output": ["ParseError", ["Character", "&tilde"]]}, + +{"description": "Bad named entity: trade without a semi-colon.", +"input":"&trade", +"output": ["ParseError", ["Character", "&trade"]]}, + +{"description": "Bad named entity: uarr without a semi-colon.", +"input":"&uarr", +"output": ["ParseError", ["Character", "&uarr"]]}, + +{"description": "Bad named entity: uarr without a semi-colon.", +"input":"&uarr", +"output": ["ParseError", ["Character", "&uarr"]]}, + +{"description": "Bad named entity: upsih without a semi-colon.", +"input":"&upsih", +"output": ["ParseError", ["Character", "&upsih"]]}, + +{"description": "Bad named entity: Upsilon without a semi-colon.", +"input":"&Upsilon", +"output": ["ParseError", ["Character", "&Upsilon"]]}, + +{"description": "Bad named entity: upsilon without a semi-colon.", +"input":"&upsilon", +"output": ["ParseError", ["Character", "&upsilon"]]}, + +{"description": "Bad named entity: weierp without a semi-colon.", +"input":"&weierp", +"output": ["ParseError", ["Character", "&weierp"]]}, + +{"description": "Bad named entity: Xi without a semi-colon.", +"input":"&Xi", +"output": ["ParseError", ["Character", "&Xi"]]}, + +{"description": "Bad named entity: xi without a semi-colon.", +"input":"&xi", +"output": ["ParseError", ["Character", "&xi"]]}, + +{"description": "Bad named entity: Yuml without a semi-colon.", +"input":"&Yuml", +"output": ["ParseError", ["Character", "&Yuml"]]}, + +{"description": "Bad named entity: Zeta without a semi-colon.", +"input":"&Zeta", +"output": ["ParseError", ["Character", "&Zeta"]]}, + +{"description": "Bad named entity: zeta without a semi-colon.", +"input":"&zeta", +"output": ["ParseError", ["Character", "&zeta"]]}, + +{"description": "Bad named entity: zwj without a semi-colon.", +"input":"&zwj", +"output": ["ParseError", ["Character", "&zwj"]]}, + +{"description": "Bad named entity: zwnj without a semi-colon.", +"input":"&zwnj", +"output": ["ParseError", ["Character", "&zwnj"]]}, + +{"description": "Bad named entity: zwnj without a semi-colon.", +"input":"&zwnj", +"output": ["ParseError", ["Character", "&zwnj"]]}, + +{"description": "CR as numeric entity", +"input":" ", +"output": ["ParseError", ["Character", "\n"]]}, + +{"description": "CR as hexadecimal numeric entity", +"input":" ", +"output": ["ParseError", ["Character", "\n"]]}, + +{"description": "Windows-1252 EURO SIGN numeric entity.", +"input":"€", +"output": ["ParseError", ["Character", "\u20AC"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK numeric entity.", +"input":"‚", +"output": ["ParseError", ["Character", "\u201A"]]}, + +{"description": "Windows-1252 LATIN SMALL LETTER F WITH HOOK numeric entity.", +"input":"ƒ", +"output": ["ParseError", ["Character", "\u0192"]]}, + +{"description": "Windows-1252 DOUBLE LOW-9 QUOTATION MARK numeric entity.", +"input":"„", +"output": ["ParseError", ["Character", "\u201E"]]}, + +{"description": "Windows-1252 HORIZONTAL ELLIPSIS numeric entity.", +"input":"…", +"output": ["ParseError", ["Character", "\u2026"]]}, + +{"description": "Windows-1252 DAGGER numeric entity.", +"input":"†", +"output": ["ParseError", ["Character", "\u2020"]]}, + +{"description": "Windows-1252 DOUBLE DAGGER numeric entity.", +"input":"‡", +"output": ["ParseError", ["Character", "\u2021"]]}, + +{"description": "Windows-1252 MODIFIER LETTER CIRCUMFLEX ACCENT numeric entity.", +"input":"ˆ", +"output": ["ParseError", ["Character", "\u02C6"]]}, + +{"description": "Windows-1252 PER MILLE SIGN numeric entity.", +"input":"‰", +"output": ["ParseError", ["Character", "\u2030"]]}, + +{"description": "Windows-1252 LATIN CAPITAL LETTER S WITH CARON numeric entity.", +"input":"Š", +"output": ["ParseError", ["Character", "\u0160"]]}, + +{"description": "Windows-1252 SINGLE LEFT-POINTING ANGLE QUOTATION MARK numeric entity.", +"input":"‹", +"output": ["ParseError", ["Character", "\u2039"]]}, + +{"description": "Windows-1252 LATIN CAPITAL LIGATURE OE numeric entity.", +"input":"Œ", +"output": ["ParseError", ["Character", "\u0152"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON numeric entity.", +"input":"Ž", +"output": ["ParseError", ["Character", "\u017D"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 LEFT SINGLE QUOTATION MARK numeric entity.", +"input":"‘", +"output": ["ParseError", ["Character", "\u2018"]]}, + +{"description": "Windows-1252 RIGHT SINGLE QUOTATION MARK numeric entity.", +"input":"’", +"output": ["ParseError", ["Character", "\u2019"]]}, + +{"description": "Windows-1252 LEFT DOUBLE QUOTATION MARK numeric entity.", +"input":"“", +"output": ["ParseError", ["Character", "\u201C"]]}, + +{"description": "Windows-1252 RIGHT DOUBLE QUOTATION MARK numeric entity.", +"input":"”", +"output": ["ParseError", ["Character", "\u201D"]]}, + +{"description": "Windows-1252 BULLET numeric entity.", +"input":"•", +"output": ["ParseError", ["Character", "\u2022"]]}, + +{"description": "Windows-1252 EN DASH numeric entity.", +"input":"–", +"output": ["ParseError", ["Character", "\u2013"]]}, + +{"description": "Windows-1252 EM DASH numeric entity.", +"input":"—", +"output": ["ParseError", ["Character", "\u2014"]]}, + +{"description": "Windows-1252 SMALL TILDE numeric entity.", +"input":"˜", +"output": ["ParseError", ["Character", "\u02DC"]]}, + +{"description": "Windows-1252 TRADE MARK SIGN numeric entity.", +"input":"™", +"output": ["ParseError", ["Character", "\u2122"]]}, + +{"description": "Windows-1252 LATIN SMALL LETTER S WITH CARON numeric entity.", +"input":"š", +"output": ["ParseError", ["Character", "\u0161"]]}, + +{"description": "Windows-1252 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK numeric entity.", +"input":"›", +"output": ["ParseError", ["Character", "\u203A"]]}, + +{"description": "Windows-1252 LATIN SMALL LIGATURE OE numeric entity.", +"input":"œ", +"output": ["ParseError", ["Character", "\u0153"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 EURO SIGN hexadecimal numeric entity.", +"input":"€", +"output": ["ParseError", ["Character", "\u20AC"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK hexadecimal numeric entity.", +"input":"‚", +"output": ["ParseError", ["Character", "\u201A"]]}, + +{"description": "Windows-1252 LATIN SMALL LETTER F WITH HOOK hexadecimal numeric entity.", +"input":"ƒ", +"output": ["ParseError", ["Character", "\u0192"]]}, + +{"description": "Windows-1252 DOUBLE LOW-9 QUOTATION MARK hexadecimal numeric entity.", +"input":"„", +"output": ["ParseError", ["Character", "\u201E"]]}, + +{"description": "Windows-1252 HORIZONTAL ELLIPSIS hexadecimal numeric entity.", +"input":"…", +"output": ["ParseError", ["Character", "\u2026"]]}, + +{"description": "Windows-1252 DAGGER hexadecimal numeric entity.", +"input":"†", +"output": ["ParseError", ["Character", "\u2020"]]}, + +{"description": "Windows-1252 DOUBLE DAGGER hexadecimal numeric entity.", +"input":"‡", +"output": ["ParseError", ["Character", "\u2021"]]}, + +{"description": "Windows-1252 MODIFIER LETTER CIRCUMFLEX ACCENT hexadecimal numeric entity.", +"input":"ˆ", +"output": ["ParseError", ["Character", "\u02C6"]]}, + +{"description": "Windows-1252 PER MILLE SIGN hexadecimal numeric entity.", +"input":"‰", +"output": ["ParseError", ["Character", "\u2030"]]}, + +{"description": "Windows-1252 LATIN CAPITAL LETTER S WITH CARON hexadecimal numeric entity.", +"input":"Š", +"output": ["ParseError", ["Character", "\u0160"]]}, + +{"description": "Windows-1252 SINGLE LEFT-POINTING ANGLE QUOTATION MARK hexadecimal numeric entity.", +"input":"‹", +"output": ["ParseError", ["Character", "\u2039"]]}, + +{"description": "Windows-1252 LATIN CAPITAL LIGATURE OE hexadecimal numeric entity.", +"input":"Œ", +"output": ["ParseError", ["Character", "\u0152"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON hexadecimal numeric entity.", +"input":"Ž", +"output": ["ParseError", ["Character", "\u017D"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 LEFT SINGLE QUOTATION MARK hexadecimal numeric entity.", +"input":"‘", +"output": ["ParseError", ["Character", "\u2018"]]}, + +{"description": "Windows-1252 RIGHT SINGLE QUOTATION MARK hexadecimal numeric entity.", +"input":"’", +"output": ["ParseError", ["Character", "\u2019"]]}, + +{"description": "Windows-1252 LEFT DOUBLE QUOTATION MARK hexadecimal numeric entity.", +"input":"“", +"output": ["ParseError", ["Character", "\u201C"]]}, + +{"description": "Windows-1252 RIGHT DOUBLE QUOTATION MARK hexadecimal numeric entity.", +"input":"”", +"output": ["ParseError", ["Character", "\u201D"]]}, + +{"description": "Windows-1252 BULLET hexadecimal numeric entity.", +"input":"•", +"output": ["ParseError", ["Character", "\u2022"]]}, + +{"description": "Windows-1252 EN DASH hexadecimal numeric entity.", +"input":"–", +"output": ["ParseError", ["Character", "\u2013"]]}, + +{"description": "Windows-1252 EM DASH hexadecimal numeric entity.", +"input":"—", +"output": ["ParseError", ["Character", "\u2014"]]}, + +{"description": "Windows-1252 SMALL TILDE hexadecimal numeric entity.", +"input":"˜", +"output": ["ParseError", ["Character", "\u02DC"]]}, + +{"description": "Windows-1252 TRADE MARK SIGN hexadecimal numeric entity.", +"input":"™", +"output": ["ParseError", ["Character", "\u2122"]]}, + +{"description": "Windows-1252 LATIN SMALL LETTER S WITH CARON hexadecimal numeric entity.", +"input":"š", +"output": ["ParseError", ["Character", "\u0161"]]}, + +{"description": "Windows-1252 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK hexadecimal numeric entity.", +"input":"›", +"output": ["ParseError", ["Character", "\u203A"]]}, + +{"description": "Windows-1252 LATIN SMALL LIGATURE OE hexadecimal numeric entity.", +"input":"œ", +"output": ["ParseError", ["Character", "\u0153"]]}, + +{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", +"input":"", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Windows-1252 LATIN SMALL LETTER Z WITH CARON hexadecimal numeric entity.", +"input":"ž", +"output": ["ParseError", ["Character", "\u017E"]]}, + +{"description": "Windows-1252 LATIN CAPITAL LETTER Y WITH DIAERESIS hexadecimal numeric entity.", +"input":"Ÿ", +"output": ["ParseError", ["Character", "\u0178"]]} + +]} diff --git a/parser/htmlparser/tests/mochitest/html5lib_tokenizer_numeric_entities.test b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_numeric_entities.test new file mode 100644 index 00000000000..e0ac9e81004 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_numeric_entities.test @@ -0,0 +1,1311 @@ +var tokenizerTests = {"tests": [ + +{"description": "Invalid numeric entity character U+0000", +"input": "�", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0001", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0002", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0003", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0004", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0005", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0006", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0007", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0008", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+000B", +"input": " ", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+000E", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+000F", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0010", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0011", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0012", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0013", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0014", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0015", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0016", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0017", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0018", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+0019", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+001A", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+001B", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+001C", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+001D", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+001E", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+001F", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+007F", +"input": "", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+D800", +"input": "�", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+DFFF", +"input": "�", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD0", +"input": "﷐", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD1", +"input": "﷑", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD2", +"input": "﷒", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD3", +"input": "﷓", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD4", +"input": "﷔", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD5", +"input": "﷕", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD6", +"input": "﷖", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD7", +"input": "﷗", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD8", +"input": "﷘", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDD9", +"input": "﷙", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDDA", +"input": "﷚", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDDB", +"input": "﷛", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDDC", +"input": "﷜", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDDD", +"input": "﷝", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDDE", +"input": "﷞", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDDF", +"input": "﷟", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE0", +"input": "﷠", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE1", +"input": "﷡", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE2", +"input": "﷢", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE3", +"input": "﷣", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE4", +"input": "﷤", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE5", +"input": "﷥", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE6", +"input": "﷦", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE7", +"input": "﷧", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE8", +"input": "﷨", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDE9", +"input": "﷩", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDEA", +"input": "﷪", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDEB", +"input": "﷫", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDEC", +"input": "﷬", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDED", +"input": "﷭", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDEE", +"input": "﷮", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FDEF", +"input": "﷯", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FFFE", +"input": "￾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FFFF", +"input": "￿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+1FFFE", +"input": "🿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+1FFFF", +"input": "🿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+2FFFE", +"input": "𯿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+2FFFF", +"input": "𯿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+3FFFE", +"input": "𿿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+3FFFF", +"input": "𿿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+4FFFE", +"input": "񏿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+4FFFF", +"input": "񏿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+5FFFE", +"input": "񟿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+5FFFF", +"input": "񟿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+6FFFE", +"input": "񯿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+6FFFF", +"input": "񯿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+7FFFE", +"input": "񿿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+7FFFF", +"input": "񿿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+8FFFE", +"input": "򏿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+8FFFF", +"input": "򏿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+9FFFE", +"input": "򟿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+9FFFF", +"input": "򟿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+AFFFE", +"input": "򯿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+AFFFF", +"input": "򯿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+BFFFE", +"input": "򿿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+BFFFF", +"input": "򿿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+CFFFE", +"input": "󏿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+CFFFF", +"input": "󏿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+DFFFE", +"input": "󟿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+DFFFF", +"input": "󟿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+EFFFE", +"input": "󯿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+EFFFF", +"input": "󯿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FFFFE", +"input": "󿿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+FFFFF", +"input": "󿿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+10FFFE", +"input": "􏿾", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Invalid numeric entity character U+10FFFF", +"input": "􏿿", +"output": ["ParseError", ["Character", "\uFFFD"]]}, + +{"description": "Valid numeric entity character U+0009", +"input": " ", +"output": [["Character", "\u0009"]]}, + +{"description": "Valid numeric entity character U+000A", +"input": " ", +"output": [["Character", "\u000A"]]}, + +{"description": "Valid numeric entity character U+0020", +"input": " ", +"output": [["Character", "\u0020"]]}, + +{"description": "Valid numeric entity character U+0021", +"input": "!", +"output": [["Character", "\u0021"]]}, + +{"description": "Valid numeric entity character U+0022", +"input": """, +"output": [["Character", "\u0022"]]}, + +{"description": "Valid numeric entity character U+0023", +"input": "#", +"output": [["Character", "\u0023"]]}, + +{"description": "Valid numeric entity character U+0024", +"input": "$", +"output": [["Character", "\u0024"]]}, + +{"description": "Valid numeric entity character U+0025", +"input": "%", +"output": [["Character", "\u0025"]]}, + +{"description": "Valid numeric entity character U+0026", +"input": "&", +"output": [["Character", "\u0026"]]}, + +{"description": "Valid numeric entity character U+0027", +"input": "'", +"output": [["Character", "\u0027"]]}, + +{"description": "Valid numeric entity character U+0028", +"input": "(", +"output": [["Character", "\u0028"]]}, + +{"description": "Valid numeric entity character U+0029", +"input": ")", +"output": [["Character", "\u0029"]]}, + +{"description": "Valid numeric entity character U+002A", +"input": "*", +"output": [["Character", "\u002A"]]}, + +{"description": "Valid numeric entity character U+002B", +"input": "+", +"output": [["Character", "\u002B"]]}, + +{"description": "Valid numeric entity character U+002C", +"input": ",", +"output": [["Character", "\u002C"]]}, + +{"description": "Valid numeric entity character U+002D", +"input": "-", +"output": [["Character", "\u002D"]]}, + +{"description": "Valid numeric entity character U+002E", +"input": ".", +"output": [["Character", "\u002E"]]}, + +{"description": "Valid numeric entity character U+002F", +"input": "/", +"output": [["Character", "\u002F"]]}, + +{"description": "Valid numeric entity character U+0030", +"input": "0", +"output": [["Character", "\u0030"]]}, + +{"description": "Valid numeric entity character U+0031", +"input": "1", +"output": [["Character", "\u0031"]]}, + +{"description": "Valid numeric entity character U+0032", +"input": "2", +"output": [["Character", "\u0032"]]}, + +{"description": "Valid numeric entity character U+0033", +"input": "3", +"output": [["Character", "\u0033"]]}, + +{"description": "Valid numeric entity character U+0034", +"input": "4", +"output": [["Character", "\u0034"]]}, + +{"description": "Valid numeric entity character U+0035", +"input": "5", +"output": [["Character", "\u0035"]]}, + +{"description": "Valid numeric entity character U+0036", +"input": "6", +"output": [["Character", "\u0036"]]}, + +{"description": "Valid numeric entity character U+0037", +"input": "7", +"output": [["Character", "\u0037"]]}, + +{"description": "Valid numeric entity character U+0038", +"input": "8", +"output": [["Character", "\u0038"]]}, + +{"description": "Valid numeric entity character U+0039", +"input": "9", +"output": [["Character", "\u0039"]]}, + +{"description": "Valid numeric entity character U+003A", +"input": ":", +"output": [["Character", "\u003A"]]}, + +{"description": "Valid numeric entity character U+003B", +"input": ";", +"output": [["Character", "\u003B"]]}, + +{"description": "Valid numeric entity character U+003C", +"input": "<", +"output": [["Character", "\u003C"]]}, + +{"description": "Valid numeric entity character U+003D", +"input": "=", +"output": [["Character", "\u003D"]]}, + +{"description": "Valid numeric entity character U+003E", +"input": ">", +"output": [["Character", "\u003E"]]}, + +{"description": "Valid numeric entity character U+003F", +"input": "?", +"output": [["Character", "\u003F"]]}, + +{"description": "Valid numeric entity character U+0040", +"input": "@", +"output": [["Character", "\u0040"]]}, + +{"description": "Valid numeric entity character U+0041", +"input": "A", +"output": [["Character", "\u0041"]]}, + +{"description": "Valid numeric entity character U+0042", +"input": "B", +"output": [["Character", "\u0042"]]}, + +{"description": "Valid numeric entity character U+0043", +"input": "C", +"output": [["Character", "\u0043"]]}, + +{"description": "Valid numeric entity character U+0044", +"input": "D", +"output": [["Character", "\u0044"]]}, + +{"description": "Valid numeric entity character U+0045", +"input": "E", +"output": [["Character", "\u0045"]]}, + +{"description": "Valid numeric entity character U+0046", +"input": "F", +"output": [["Character", "\u0046"]]}, + +{"description": "Valid numeric entity character U+0047", +"input": "G", +"output": [["Character", "\u0047"]]}, + +{"description": "Valid numeric entity character U+0048", +"input": "H", +"output": [["Character", "\u0048"]]}, + +{"description": "Valid numeric entity character U+0049", +"input": "I", +"output": [["Character", "\u0049"]]}, + +{"description": "Valid numeric entity character U+004A", +"input": "J", +"output": [["Character", "\u004A"]]}, + +{"description": "Valid numeric entity character U+004B", +"input": "K", +"output": [["Character", "\u004B"]]}, + +{"description": "Valid numeric entity character U+004C", +"input": "L", +"output": [["Character", "\u004C"]]}, + +{"description": "Valid numeric entity character U+004D", +"input": "M", +"output": [["Character", "\u004D"]]}, + +{"description": "Valid numeric entity character U+004E", +"input": "N", +"output": [["Character", "\u004E"]]}, + +{"description": "Valid numeric entity character U+004F", +"input": "O", +"output": [["Character", "\u004F"]]}, + +{"description": "Valid numeric entity character U+0050", +"input": "P", +"output": [["Character", "\u0050"]]}, + +{"description": "Valid numeric entity character U+0051", +"input": "Q", +"output": [["Character", "\u0051"]]}, + +{"description": "Valid numeric entity character U+0052", +"input": "R", +"output": [["Character", "\u0052"]]}, + +{"description": "Valid numeric entity character U+0053", +"input": "S", +"output": [["Character", "\u0053"]]}, + +{"description": "Valid numeric entity character U+0054", +"input": "T", +"output": [["Character", "\u0054"]]}, + +{"description": "Valid numeric entity character U+0055", +"input": "U", +"output": [["Character", "\u0055"]]}, + +{"description": "Valid numeric entity character U+0056", +"input": "V", +"output": [["Character", "\u0056"]]}, + +{"description": "Valid numeric entity character U+0057", +"input": "W", +"output": [["Character", "\u0057"]]}, + +{"description": "Valid numeric entity character U+0058", +"input": "X", +"output": [["Character", "\u0058"]]}, + +{"description": "Valid numeric entity character U+0059", +"input": "Y", +"output": [["Character", "\u0059"]]}, + +{"description": "Valid numeric entity character U+005A", +"input": "Z", +"output": [["Character", "\u005A"]]}, + +{"description": "Valid numeric entity character U+005B", +"input": "[", +"output": [["Character", "\u005B"]]}, + +{"description": "Valid numeric entity character U+005C", +"input": "\", +"output": [["Character", "\u005C"]]}, + +{"description": "Valid numeric entity character U+005D", +"input": "]", +"output": [["Character", "\u005D"]]}, + +{"description": "Valid numeric entity character U+005E", +"input": "^", +"output": [["Character", "\u005E"]]}, + +{"description": "Valid numeric entity character U+005F", +"input": "_", +"output": [["Character", "\u005F"]]}, + +{"description": "Valid numeric entity character U+0060", +"input": "`", +"output": [["Character", "\u0060"]]}, + +{"description": "Valid numeric entity character U+0061", +"input": "a", +"output": [["Character", "\u0061"]]}, + +{"description": "Valid numeric entity character U+0062", +"input": "b", +"output": [["Character", "\u0062"]]}, + +{"description": "Valid numeric entity character U+0063", +"input": "c", +"output": [["Character", "\u0063"]]}, + +{"description": "Valid numeric entity character U+0064", +"input": "d", +"output": [["Character", "\u0064"]]}, + +{"description": "Valid numeric entity character U+0065", +"input": "e", +"output": [["Character", "\u0065"]]}, + +{"description": "Valid numeric entity character U+0066", +"input": "f", +"output": [["Character", "\u0066"]]}, + +{"description": "Valid numeric entity character U+0067", +"input": "g", +"output": [["Character", "\u0067"]]}, + +{"description": "Valid numeric entity character U+0068", +"input": "h", +"output": [["Character", "\u0068"]]}, + +{"description": "Valid numeric entity character U+0069", +"input": "i", +"output": [["Character", "\u0069"]]}, + +{"description": "Valid numeric entity character U+006A", +"input": "j", +"output": [["Character", "\u006A"]]}, + +{"description": "Valid numeric entity character U+006B", +"input": "k", +"output": [["Character", "\u006B"]]}, + +{"description": "Valid numeric entity character U+006C", +"input": "l", +"output": [["Character", "\u006C"]]}, + +{"description": "Valid numeric entity character U+006D", +"input": "m", +"output": [["Character", "\u006D"]]}, + +{"description": "Valid numeric entity character U+006E", +"input": "n", +"output": [["Character", "\u006E"]]}, + +{"description": "Valid numeric entity character U+006F", +"input": "o", +"output": [["Character", "\u006F"]]}, + +{"description": "Valid numeric entity character U+0070", +"input": "p", +"output": [["Character", "\u0070"]]}, + +{"description": "Valid numeric entity character U+0071", +"input": "q", +"output": [["Character", "\u0071"]]}, + +{"description": "Valid numeric entity character U+0072", +"input": "r", +"output": [["Character", "\u0072"]]}, + +{"description": "Valid numeric entity character U+0073", +"input": "s", +"output": [["Character", "\u0073"]]}, + +{"description": "Valid numeric entity character U+0074", +"input": "t", +"output": [["Character", "\u0074"]]}, + +{"description": "Valid numeric entity character U+0075", +"input": "u", +"output": [["Character", "\u0075"]]}, + +{"description": "Valid numeric entity character U+0076", +"input": "v", +"output": [["Character", "\u0076"]]}, + +{"description": "Valid numeric entity character U+0077", +"input": "w", +"output": [["Character", "\u0077"]]}, + +{"description": "Valid numeric entity character U+0078", +"input": "x", +"output": [["Character", "\u0078"]]}, + +{"description": "Valid numeric entity character U+0079", +"input": "y", +"output": [["Character", "\u0079"]]}, + +{"description": "Valid numeric entity character U+007A", +"input": "z", +"output": [["Character", "\u007A"]]}, + +{"description": "Valid numeric entity character U+007B", +"input": "{", +"output": [["Character", "\u007B"]]}, + +{"description": "Valid numeric entity character U+007C", +"input": "|", +"output": [["Character", "\u007C"]]}, + +{"description": "Valid numeric entity character U+007D", +"input": "}", +"output": [["Character", "\u007D"]]}, + +{"description": "Valid numeric entity character U+007E", +"input": "~", +"output": [["Character", "\u007E"]]}, + +{"description": "Valid numeric entity character U+00A0", +"input": " ", +"output": [["Character", "\u00A0"]]}, + +{"description": "Valid numeric entity character U+00A1", +"input": "¡", +"output": [["Character", "\u00A1"]]}, + +{"description": "Valid numeric entity character U+00A2", +"input": "¢", +"output": [["Character", "\u00A2"]]}, + +{"description": "Valid numeric entity character U+00A3", +"input": "£", +"output": [["Character", "\u00A3"]]}, + +{"description": "Valid numeric entity character U+00A4", +"input": "¤", +"output": [["Character", "\u00A4"]]}, + +{"description": "Valid numeric entity character U+00A5", +"input": "¥", +"output": [["Character", "\u00A5"]]}, + +{"description": "Valid numeric entity character U+00A6", +"input": "¦", +"output": [["Character", "\u00A6"]]}, + +{"description": "Valid numeric entity character U+00A7", +"input": "§", +"output": [["Character", "\u00A7"]]}, + +{"description": "Valid numeric entity character U+00A8", +"input": "¨", +"output": [["Character", "\u00A8"]]}, + +{"description": "Valid numeric entity character U+00A9", +"input": "©", +"output": [["Character", "\u00A9"]]}, + +{"description": "Valid numeric entity character U+00AA", +"input": "ª", +"output": [["Character", "\u00AA"]]}, + +{"description": "Valid numeric entity character U+00AB", +"input": "«", +"output": [["Character", "\u00AB"]]}, + +{"description": "Valid numeric entity character U+00AC", +"input": "¬", +"output": [["Character", "\u00AC"]]}, + +{"description": "Valid numeric entity character U+00AD", +"input": "­", +"output": [["Character", "\u00AD"]]}, + +{"description": "Valid numeric entity character U+00AE", +"input": "®", +"output": [["Character", "\u00AE"]]}, + +{"description": "Valid numeric entity character U+00AF", +"input": "¯", +"output": [["Character", "\u00AF"]]}, + +{"description": "Valid numeric entity character U+00B0", +"input": "°", +"output": [["Character", "\u00B0"]]}, + +{"description": "Valid numeric entity character U+00B1", +"input": "±", +"output": [["Character", "\u00B1"]]}, + +{"description": "Valid numeric entity character U+00B2", +"input": "²", +"output": [["Character", "\u00B2"]]}, + +{"description": "Valid numeric entity character U+00B3", +"input": "³", +"output": [["Character", "\u00B3"]]}, + +{"description": "Valid numeric entity character U+00B4", +"input": "´", +"output": [["Character", "\u00B4"]]}, + +{"description": "Valid numeric entity character U+00B5", +"input": "µ", +"output": [["Character", "\u00B5"]]}, + +{"description": "Valid numeric entity character U+00B6", +"input": "¶", +"output": [["Character", "\u00B6"]]}, + +{"description": "Valid numeric entity character U+00B7", +"input": "·", +"output": [["Character", "\u00B7"]]}, + +{"description": "Valid numeric entity character U+00B8", +"input": "¸", +"output": [["Character", "\u00B8"]]}, + +{"description": "Valid numeric entity character U+00B9", +"input": "¹", +"output": [["Character", "\u00B9"]]}, + +{"description": "Valid numeric entity character U+00BA", +"input": "º", +"output": [["Character", "\u00BA"]]}, + +{"description": "Valid numeric entity character U+00BB", +"input": "»", +"output": [["Character", "\u00BB"]]}, + +{"description": "Valid numeric entity character U+00BC", +"input": "¼", +"output": [["Character", "\u00BC"]]}, + +{"description": "Valid numeric entity character U+00BD", +"input": "½", +"output": [["Character", "\u00BD"]]}, + +{"description": "Valid numeric entity character U+00BE", +"input": "¾", +"output": [["Character", "\u00BE"]]}, + +{"description": "Valid numeric entity character U+00BF", +"input": "¿", +"output": [["Character", "\u00BF"]]}, + +{"description": "Valid numeric entity character U+00C0", +"input": "À", +"output": [["Character", "\u00C0"]]}, + +{"description": "Valid numeric entity character U+00C1", +"input": "Á", +"output": [["Character", "\u00C1"]]}, + +{"description": "Valid numeric entity character U+00C2", +"input": "Â", +"output": [["Character", "\u00C2"]]}, + +{"description": "Valid numeric entity character U+00C3", +"input": "Ã", +"output": [["Character", "\u00C3"]]}, + +{"description": "Valid numeric entity character U+00C4", +"input": "Ä", +"output": [["Character", "\u00C4"]]}, + +{"description": "Valid numeric entity character U+00C5", +"input": "Å", +"output": [["Character", "\u00C5"]]}, + +{"description": "Valid numeric entity character U+00C6", +"input": "Æ", +"output": [["Character", "\u00C6"]]}, + +{"description": "Valid numeric entity character U+00C7", +"input": "Ç", +"output": [["Character", "\u00C7"]]}, + +{"description": "Valid numeric entity character U+00C8", +"input": "È", +"output": [["Character", "\u00C8"]]}, + +{"description": "Valid numeric entity character U+00C9", +"input": "É", +"output": [["Character", "\u00C9"]]}, + +{"description": "Valid numeric entity character U+00CA", +"input": "Ê", +"output": [["Character", "\u00CA"]]}, + +{"description": "Valid numeric entity character U+00CB", +"input": "Ë", +"output": [["Character", "\u00CB"]]}, + +{"description": "Valid numeric entity character U+00CC", +"input": "Ì", +"output": [["Character", "\u00CC"]]}, + +{"description": "Valid numeric entity character U+00CD", +"input": "Í", +"output": [["Character", "\u00CD"]]}, + +{"description": "Valid numeric entity character U+00CE", +"input": "Î", +"output": [["Character", "\u00CE"]]}, + +{"description": "Valid numeric entity character U+00CF", +"input": "Ï", +"output": [["Character", "\u00CF"]]}, + +{"description": "Valid numeric entity character U+00D0", +"input": "Ð", +"output": [["Character", "\u00D0"]]}, + +{"description": "Valid numeric entity character U+00D1", +"input": "Ñ", +"output": [["Character", "\u00D1"]]}, + +{"description": "Valid numeric entity character U+00D2", +"input": "Ò", +"output": [["Character", "\u00D2"]]}, + +{"description": "Valid numeric entity character U+00D3", +"input": "Ó", +"output": [["Character", "\u00D3"]]}, + +{"description": "Valid numeric entity character U+00D4", +"input": "Ô", +"output": [["Character", "\u00D4"]]}, + +{"description": "Valid numeric entity character U+00D5", +"input": "Õ", +"output": [["Character", "\u00D5"]]}, + +{"description": "Valid numeric entity character U+00D6", +"input": "Ö", +"output": [["Character", "\u00D6"]]}, + +{"description": "Valid numeric entity character U+00D7", +"input": "×", +"output": [["Character", "\u00D7"]]}, + +{"description": "Valid numeric entity character U+00D8", +"input": "Ø", +"output": [["Character", "\u00D8"]]}, + +{"description": "Valid numeric entity character U+00D9", +"input": "Ù", +"output": [["Character", "\u00D9"]]}, + +{"description": "Valid numeric entity character U+00DA", +"input": "Ú", +"output": [["Character", "\u00DA"]]}, + +{"description": "Valid numeric entity character U+00DB", +"input": "Û", +"output": [["Character", "\u00DB"]]}, + +{"description": "Valid numeric entity character U+00DC", +"input": "Ü", +"output": [["Character", "\u00DC"]]}, + +{"description": "Valid numeric entity character U+00DD", +"input": "Ý", +"output": [["Character", "\u00DD"]]}, + +{"description": "Valid numeric entity character U+00DE", +"input": "Þ", +"output": [["Character", "\u00DE"]]}, + +{"description": "Valid numeric entity character U+00DF", +"input": "ß", +"output": [["Character", "\u00DF"]]}, + +{"description": "Valid numeric entity character U+00E0", +"input": "à", +"output": [["Character", "\u00E0"]]}, + +{"description": "Valid numeric entity character U+00E1", +"input": "á", +"output": [["Character", "\u00E1"]]}, + +{"description": "Valid numeric entity character U+00E2", +"input": "â", +"output": [["Character", "\u00E2"]]}, + +{"description": "Valid numeric entity character U+00E3", +"input": "ã", +"output": [["Character", "\u00E3"]]}, + +{"description": "Valid numeric entity character U+00E4", +"input": "ä", +"output": [["Character", "\u00E4"]]}, + +{"description": "Valid numeric entity character U+00E5", +"input": "å", +"output": [["Character", "\u00E5"]]}, + +{"description": "Valid numeric entity character U+00E6", +"input": "æ", +"output": [["Character", "\u00E6"]]}, + +{"description": "Valid numeric entity character U+00E7", +"input": "ç", +"output": [["Character", "\u00E7"]]}, + +{"description": "Valid numeric entity character U+00E8", +"input": "è", +"output": [["Character", "\u00E8"]]}, + +{"description": "Valid numeric entity character U+00E9", +"input": "é", +"output": [["Character", "\u00E9"]]}, + +{"description": "Valid numeric entity character U+00EA", +"input": "ê", +"output": [["Character", "\u00EA"]]}, + +{"description": "Valid numeric entity character U+00EB", +"input": "ë", +"output": [["Character", "\u00EB"]]}, + +{"description": "Valid numeric entity character U+00EC", +"input": "ì", +"output": [["Character", "\u00EC"]]}, + +{"description": "Valid numeric entity character U+00ED", +"input": "í", +"output": [["Character", "\u00ED"]]}, + +{"description": "Valid numeric entity character U+00EE", +"input": "î", +"output": [["Character", "\u00EE"]]}, + +{"description": "Valid numeric entity character U+00EF", +"input": "ï", +"output": [["Character", "\u00EF"]]}, + +{"description": "Valid numeric entity character U+00F0", +"input": "ð", +"output": [["Character", "\u00F0"]]}, + +{"description": "Valid numeric entity character U+00F1", +"input": "ñ", +"output": [["Character", "\u00F1"]]}, + +{"description": "Valid numeric entity character U+00F2", +"input": "ò", +"output": [["Character", "\u00F2"]]}, + +{"description": "Valid numeric entity character U+00F3", +"input": "ó", +"output": [["Character", "\u00F3"]]}, + +{"description": "Valid numeric entity character U+00F4", +"input": "ô", +"output": [["Character", "\u00F4"]]}, + +{"description": "Valid numeric entity character U+00F5", +"input": "õ", +"output": [["Character", "\u00F5"]]}, + +{"description": "Valid numeric entity character U+00F6", +"input": "ö", +"output": [["Character", "\u00F6"]]}, + +{"description": "Valid numeric entity character U+00F7", +"input": "÷", +"output": [["Character", "\u00F7"]]}, + +{"description": "Valid numeric entity character U+00F8", +"input": "ø", +"output": [["Character", "\u00F8"]]}, + +{"description": "Valid numeric entity character U+00F9", +"input": "ù", +"output": [["Character", "\u00F9"]]}, + +{"description": "Valid numeric entity character U+00FA", +"input": "ú", +"output": [["Character", "\u00FA"]]}, + +{"description": "Valid numeric entity character U+00FB", +"input": "û", +"output": [["Character", "\u00FB"]]}, + +{"description": "Valid numeric entity character U+00FC", +"input": "ü", +"output": [["Character", "\u00FC"]]}, + +{"description": "Valid numeric entity character U+00FD", +"input": "ý", +"output": [["Character", "\u00FD"]]}, + +{"description": "Valid numeric entity character U+00FE", +"input": "þ", +"output": [["Character", "\u00FE"]]}, + +{"description": "Valid numeric entity character U+00FF", +"input": "ÿ", +"output": [["Character", "\u00FF"]]}, + +{"description": "Valid numeric entity character U+D7FF", +"input": "퟿", +"output": [["Character", "\uD7FF"]]}, + +{"description": "Valid numeric entity character U+E000", +"input": "", +"output": [["Character", "\uE000"]]}, + +{"description": "Valid numeric entity character U+FDCF", +"input": "﷏", +"output": [["Character", "\uFDCF"]]}, + +{"description": "Valid numeric entity character U+FDF0", +"input": "ﷰ", +"output": [["Character", "\uFDF0"]]}, + +{"description": "Valid numeric entity character U+FFFD", +"input": "�", +"output": [["Character", "\uFFFD"]]}, + +{"description": "Valid numeric entity character U+10000", +"input": "𐀀", +"output": [["Character", "\uD800\uDC00"]]}, + +{"description": "Valid numeric entity character U+1FFFD", +"input": "🿽", +"output": [["Character", "\uD83F\uDFFD"]]}, + +{"description": "Valid numeric entity character U+20000", +"input": "𠀀", +"output": [["Character", "\uD840\uDC00"]]}, + +{"description": "Valid numeric entity character U+2FFFD", +"input": "𯿽", +"output": [["Character", "\uD87F\uDFFD"]]}, + +{"description": "Valid numeric entity character U+30000", +"input": "𰀀", +"output": [["Character", "\uD880\uDC00"]]}, + +{"description": "Valid numeric entity character U+3FFFD", +"input": "𿿽", +"output": [["Character", "\uD8BF\uDFFD"]]}, + +{"description": "Valid numeric entity character U+40000", +"input": "񀀀", +"output": [["Character", "\uD8C0\uDC00"]]}, + +{"description": "Valid numeric entity character U+4FFFD", +"input": "񏿽", +"output": [["Character", "\uD8FF\uDFFD"]]}, + +{"description": "Valid numeric entity character U+50000", +"input": "񐀀", +"output": [["Character", "\uD900\uDC00"]]}, + +{"description": "Valid numeric entity character U+5FFFD", +"input": "񟿽", +"output": [["Character", "\uD93F\uDFFD"]]}, + +{"description": "Valid numeric entity character U+60000", +"input": "񠀀", +"output": [["Character", "\uD940\uDC00"]]}, + +{"description": "Valid numeric entity character U+6FFFD", +"input": "񯿽", +"output": [["Character", "\uD97F\uDFFD"]]}, + +{"description": "Valid numeric entity character U+70000", +"input": "񰀀", +"output": [["Character", "\uD980\uDC00"]]}, + +{"description": "Valid numeric entity character U+7FFFD", +"input": "񿿽", +"output": [["Character", "\uD9BF\uDFFD"]]}, + +{"description": "Valid numeric entity character U+80000", +"input": "򀀀", +"output": [["Character", "\uD9C0\uDC00"]]}, + +{"description": "Valid numeric entity character U+8FFFD", +"input": "򏿽", +"output": [["Character", "\uD9FF\uDFFD"]]}, + +{"description": "Valid numeric entity character U+90000", +"input": "򐀀", +"output": [["Character", "\uDA00\uDC00"]]}, + +{"description": "Valid numeric entity character U+9FFFD", +"input": "򟿽", +"output": [["Character", "\uDA3F\uDFFD"]]}, + +{"description": "Valid numeric entity character U+A0000", +"input": "򠀀", +"output": [["Character", "\uDA40\uDC00"]]}, + +{"description": "Valid numeric entity character U+AFFFD", +"input": "򯿽", +"output": [["Character", "\uDA7F\uDFFD"]]}, + +{"description": "Valid numeric entity character U+B0000", +"input": "򰀀", +"output": [["Character", "\uDA80\uDC00"]]}, + +{"description": "Valid numeric entity character U+BFFFD", +"input": "򿿽", +"output": [["Character", "\uDABF\uDFFD"]]}, + +{"description": "Valid numeric entity character U+C0000", +"input": "󀀀", +"output": [["Character", "\uDAC0\uDC00"]]}, + +{"description": "Valid numeric entity character U+CFFFD", +"input": "󏿽", +"output": [["Character", "\uDAFF\uDFFD"]]}, + +{"description": "Valid numeric entity character U+D0000", +"input": "󐀀", +"output": [["Character", "\uDB00\uDC00"]]}, + +{"description": "Valid numeric entity character U+DFFFD", +"input": "󟿽", +"output": [["Character", "\uDB3F\uDFFD"]]}, + +{"description": "Valid numeric entity character U+E0000", +"input": "󠀀", +"output": [["Character", "\uDB40\uDC00"]]}, + +{"description": "Valid numeric entity character U+EFFFD", +"input": "󯿽", +"output": [["Character", "\uDB7F\uDFFD"]]}, + +{"description": "Valid numeric entity character U+F0000", +"input": "󰀀", +"output": [["Character", "\uDB80\uDC00"]]}, + +{"description": "Valid numeric entity character U+FFFFD", +"input": "󿿽", +"output": [["Character", "\uDBBF\uDFFD"]]}, + +{"description": "Valid numeric entity character U+100000", +"input": "􀀀", +"output": [["Character", "\uDBC0\uDC00"]]}, + +{"description": "Valid numeric entity character U+10FFFD", +"input": "􏿽", +"output": [["Character", "\uDBFF\uDFFD"]]} + +]} diff --git a/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test1.test b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test1.test new file mode 100644 index 00000000000..31777692ac2 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test1.test @@ -0,0 +1,196 @@ +var tokenizerTests = {"tests": [ + +{"description":"Correct Doctype lowercase", +"input":"", +"output":[["DOCTYPE", "html", null, null, true]]}, + +{"description":"Correct Doctype uppercase", +"input":"", +"output":[["DOCTYPE", "html", null, null, true]]}, + +{"description":"Correct Doctype mixed case", +"input":"", +"output":[["DOCTYPE", "html", null, null, true]]}, + +{"description":"Correct Doctype case with EOF", +"input":"", +"output":["ParseError", ["Comment", "DOC"]]}, + +{"description":"Doctype in error", +"input":"", +"output":[["DOCTYPE", "foo", null, null, true]]}, + +{"description":"Single Start Tag", +"input":"", +"output":[["StartTag", "h", {}]]}, + +{"description":"Empty end tag", +"input":"", +"output":["ParseError"]}, + +{"description":"Empty start tag", +"input":"<>", +"output":["ParseError", ["Character", "<>"]]}, + +{"description":"Start Tag w/attribute", +"input":"", +"output":[["StartTag", "h", {"a":"b"}]]}, + +{"description":"Start Tag w/attribute no quotes", +"input":"", +"output":[["StartTag", "h", {"a":"b"}]]}, + +{"description":"Start/End Tag", +"input":"", +"output":[["StartTag", "h", {}], ["EndTag", "h"]]}, + +{"description":"Two unclosed start tags", +"input":"

One

Two", +"output":[["StartTag", "p", {}], ["Character", "One"], ["EndTag", "p"], ["StartTag", "p", {}], ["Character", "Two"]]}, + +{"description":"End Tag w/attribute", +"input":"", +"output":[["StartTag", "h", {}], "ParseError", ["EndTag", "h"]]}, + +{"description":"Multiple atts", +"input":"", +"output":[["StartTag", "h", {"a":"b", "c":"d"}]]}, + +{"description":"Multiple atts no space", +"input":"", +"output":["ParseError", ["StartTag", "h", {"a":"b", "c":"d"}]]}, + +{"description":"Repeated attr", + "input":"", + "output":["ParseError", ["StartTag", "h", {"a":"b"}]]}, + +{"description":"Simple comment", + "input":"", + "output":[["Comment", "comment"]]}, + +{"description":"Comment, Central dash no space", + "input":"", + "output":["ParseError", ["Comment", "-"]]}, + +{"description":"Comment, two central dashes", +"input":"", +"output":["ParseError", ["Comment", " --comment "]]}, + +{"description":"Unfinished comment", +"input":"", + "output":["ParseError", ["Comment", ""]]}, + +{"description":"Short comment two", + "input":"", + "output":["ParseError", ["Comment", ""]]}, + +{"description":"Short comment three", + "input":"", + "output":[["Comment", ""]]}, + + +{"description":"Ampersand EOF", +"input":"&", +"output":[["Character", "&"]]}, + +{"description":"Ampersand ampersand EOF", +"input":"&&", +"output":[["Character", "&&"]]}, + +{"description":"Ampersand space EOF", +"input":"& ", +"output":[["Character", "& "]]}, + +{"description":"Unfinished entity", +"input":"&f", +"output":["ParseError", ["Character", "&f"]]}, + +{"description":"Ampersand, number sign", +"input":"&#", +"output":["ParseError", ["Character", "&#"]]}, + +{"description":"Unfinished numeric entity", +"input":"&#x", +"output":["ParseError", ["Character", "&#x"]]}, + +{"description":"Entity with trailing semicolon (1)", +"input":"I'm ¬it", +"output":[["Character","I'm \u00ACit"]]}, + +{"description":"Entity with trailing semicolon (2)", +"input":"I'm ∉", +"output":[["Character","I'm \u2209"]]}, + +{"description":"Entity without trailing semicolon (1)", +"input":"I'm ¬it", +"output":[["Character","I'm "], "ParseError", ["Character", "\u00ACit"]]}, + +{"description":"Entity without trailing semicolon (2)", +"input":"I'm ¬in", +"output":[["Character","I'm "], "ParseError", ["Character", "\u00ACin"]]}, + +{"description":"Partial entity match at end of file", +"input":"I'm &no", +"output":[["Character","I'm "], "ParseError", ["Character", "&no"]]}, + +{"description":"Non-ASCII character reference name", +"input":"&\u00AC;", +"output":["ParseError", ["Character", "&\u00AC;"]]}, + +{"description":"ASCII decimal entity", +"input":"$", +"output":[["Character","$"]]}, + +{"description":"ASCII hexadecimal entity", +"input":"?", +"output":[["Character","?"]]}, + +{"description":"Hexadecimal entity in attribute", +"input":"", +"output":[["StartTag", "h", {"a":"?"}], ["EndTag", "h"]]}, + +{"description":"Entity in attribute without semicolon ending in x", +"input":"", +"output":["ParseError", ["StartTag", "h", {"a":"¬x"}]]}, + +{"description":"Entity in attribute without semicolon ending in 1", +"input":"", +"output":["ParseError", ["StartTag", "h", {"a":"¬1"}]]}, + +{"description":"Entity in attribute without semicolon ending in i", +"input":"", +"output":["ParseError", ["StartTag", "h", {"a":"¬i"}]]}, + +{"description":"Entity in attribute without semicolon", +"input":"", +"output":["ParseError", ["StartTag", "h", {"a":"\u00A9"}]]}, + +{"description":"Unquoted attribute ending in ampersand", +"input":"", +"output":[["StartTag","s",{"o":"&","t":""}]]}, + +{"description":"Unquoted attribute at end of tag with final character of &, with tag followed by characters", +"input":"foo", +"output":["ParseError", ["StartTag", "a", {"a":"a&"}], ["Character", "foo"]]}, + +{"description":"plaintext element", + "input":"

foobar", + "output":[["StartTag","plaintext",{}], ["Character","foobar"]]}, + +{"description":"Open angled bracket in unquoted attribute value state", + "input":"<a a=f<>", + "output":["ParseError", ["StartTag", "a", {"a":"f<"}]]} + +]} diff --git a/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test2.test b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test2.test new file mode 100644 index 00000000000..9a691da8199 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test2.test @@ -0,0 +1,163 @@ +var tokenizerTests = {"tests": [ + +{"description":"DOCTYPE without name", +"input":"<!DOCTYPE>", +"output":["ParseError", "ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"DOCTYPE without space before name", +"input":"<!DOCTYPEhtml>", +"output":["ParseError", ["DOCTYPE", "html", null, null, true]]}, + +{"description":"Incorrect DOCTYPE without a space before name", +"input":"<!DOCTYPEfoo>", +"output":["ParseError", ["DOCTYPE", "foo", null, null, true]]}, + +{"description":"DOCTYPE with publicId", +"input":"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML Transitional 4.01//EN\">", +"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", null, true]]}, + +{"description":"DOCTYPE with EOF after PUBLIC", +"input":"<!DOCTYPE html PUBLIC", +"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, + +{"description":"DOCTYPE with EOF after PUBLIC '", +"input":"<!DOCTYPE html PUBLIC '", +"output":["ParseError", ["DOCTYPE", "html", "", null, false]]}, + +{"description":"DOCTYPE with EOF after PUBLIC 'x", +"input":"<!DOCTYPE html PUBLIC 'x", +"output":["ParseError", ["DOCTYPE", "html", "x", null, false]]}, + +{"description":"DOCTYPE with systemId", +"input":"<!DOCTYPE html SYSTEM \"-//W3C//DTD HTML Transitional 4.01//EN\">", +"output":[["DOCTYPE", "html", null, "-//W3C//DTD HTML Transitional 4.01//EN", true]]}, + +{"description":"DOCTYPE with publicId and systemId", +"input":"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML Transitional 4.01//EN\" \"-//W3C//DTD HTML Transitional 4.01//EN\">", +"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", "-//W3C//DTD HTML Transitional 4.01//EN", true]]}, + +{"description":"DOCTYPE with > in double-quoted publicId", +"input":"<!DOCTYPE html PUBLIC \">x", +"output":["ParseError", ["DOCTYPE", "html", "", null, false], ["Character", "x"]]}, + +{"description":"DOCTYPE with > in single-quoted publicId", +"input":"<!DOCTYPE html PUBLIC '>x", +"output":["ParseError", ["DOCTYPE", "html", "", null, false], ["Character", "x"]]}, + +{"description":"DOCTYPE with > in double-quoted systemId", +"input":"<!DOCTYPE html PUBLIC \"foo\" \">x", +"output":["ParseError", ["DOCTYPE", "html", "foo", "", false], ["Character", "x"]]}, + +{"description":"DOCTYPE with > in single-quoted systemId", +"input":"<!DOCTYPE html PUBLIC 'foo' '>x", +"output":["ParseError", ["DOCTYPE", "html", "foo", "", false], ["Character", "x"]]}, + +{"description":"Incomplete doctype", +"input":"<!DOCTYPE html ", +"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, + +{"description":"Numeric entity representing the NUL character", +"input":"&#0000;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"Hexadecimal entity representing the NUL character", +"input":"&#x0000;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"Numeric entity representing a codepoint after 1114111 (U+10FFFF)", +"input":"&#2225222;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"Hexadecimal entity representing a codepoint after 1114111 (U+10FFFF)", +"input":"&#x1010FFFF;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"Hexadecimal entity pair representing a surrogate pair", +"input":"&#xD869;&#xDED6;", +"output":["ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"]]}, + +{"description":"Hexadecimal entity with mixed uppercase and lowercase", +"input":"&#xaBcD;", +"output":[["Character", "\uABCD"]]}, + +{"description":"Entity without a name", +"input":"&;", +"output":["ParseError", ["Character", "&;"]]}, + +{"description":"Unescaped ampersand in attribute value", +"input":"<h a='&'>", +"output":[["StartTag", "h", { "a":"&" }]]}, + +{"description":"StartTag containing <", +"input":"<a<b>", +"output":[["StartTag", "a<b", { }]]}, + +{"description":"Non-void element containing trailing /", +"input":"<h/>", +"output":[["StartTag","h",{},true]]}, + +{"description":"Void element with permitted slash", +"input":"<br/>", +"output":[["StartTag","br",{},true]]}, + +{"description":"Void element with permitted slash (with attribute)", +"input":"<br foo='bar'/>", +"output":[["StartTag","br",{"foo":"bar"},true]]}, + +{"description":"StartTag containing /", +"input":"<h/a='b'>", +"output":["ParseError", ["StartTag", "h", { "a":"b" }]]}, + +{"description":"Double-quoted attribute value", +"input":"<h a=\"b\">", +"output":[["StartTag", "h", { "a":"b" }]]}, + +{"description":"Unescaped </", +"input":"</", +"output":["ParseError", ["Character", "</"]]}, + +{"description":"Illegal end tag name", +"input":"</1>", +"output":["ParseError", ["Comment", "1"]]}, + +{"description":"Simili processing instruction", +"input":"<?namespace>", +"output":["ParseError", ["Comment", "?namespace"]]}, + +{"description":"A bogus comment stops at >, even if preceeded by two dashes", +"input":"<?foo-->", +"output":["ParseError", ["Comment", "?foo--"]]}, + +{"description":"Unescaped <", +"input":"foo < bar", +"output":[["Character", "foo "], "ParseError", ["Character", "< bar"]]}, + +{"description":"Null Byte Replacement", +"input":"\u0000", +"output":["ParseError", ["Character", "\ufffd"]]}, + +{"description":"Comment with dash", +"input":"<!---x", +"output":["ParseError", ["Comment", "-x"]]}, + +{"description":"Entity + newline", +"input":"\nx\n&gt;\n", +"output":[["Character","\nx\n>\n"]]}, + +{"description":"Start tag with no attributes but space before the greater-than sign", +"input":"<h >", +"output":[["StartTag", "h", {}]]}, + +{"description":"Empty attribute followed by uppercase attribute", +"input":"<h a B=''>", +"output":[["StartTag", "h", {"a":"", "b":""}]]}, + +{"description":"Double-quote after attribute name", +"input":"<h a \">", +"output":["ParseError", ["StartTag", "h", {"a":"", "\"":""}]]}, + +{"description":"Single-quote after attribute name", +"input":"<h a '>", +"output":["ParseError", ["StartTag", "h", {"a":"", "'":""}]]} + +]} diff --git a/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test3.test b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test3.test new file mode 100644 index 00000000000..9ee4d56dc3a --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test3.test @@ -0,0 +1,6055 @@ +var tokenizerTests = {"tests": [ + +{"description":"", +"input":"", +"output":[]}, + +{"description":"\\u0000", +"input":"\u0000", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"\\u0009", +"input":"\u0009", +"output":[["Character", "\u0009"]]}, + +{"description":"\\u000A", +"input":"\u000A", +"output":[["Character", "\u000A"]]}, + +{"description":"\\u000B", +"input":"\u000B", +"output":["ParseError", ["Character", "\u000B"]]}, + +{"description":"\\u000C", +"input":"\u000C", +"output":[["Character", "\u000C"]]}, + +{"description":" ", +"input":" ", +"output":[["Character", " "]]}, + +{"description":"!", +"input":"!", +"output":[["Character", "!"]]}, + +{"description":"\"", +"input":"\"", +"output":[["Character", "\""]]}, + +{"description":"%", +"input":"%", +"output":[["Character", "%"]]}, + +{"description":"&", +"input":"&", +"output":[["Character", "&"]]}, + +{"description":"'", +"input":"'", +"output":[["Character", "'"]]}, + +{"description":",", +"input":",", +"output":[["Character", ","]]}, + +{"description":"-", +"input":"-", +"output":[["Character", "-"]]}, + +{"description":".", +"input":".", +"output":[["Character", "."]]}, + +{"description":"/", +"input":"/", +"output":[["Character", "/"]]}, + +{"description":"0", +"input":"0", +"output":[["Character", "0"]]}, + +{"description":"1", +"input":"1", +"output":[["Character", "1"]]}, + +{"description":"9", +"input":"9", +"output":[["Character", "9"]]}, + +{"description":";", +"input":";", +"output":[["Character", ";"]]}, + +{"description":"<", +"input":"<", +"output":["ParseError", ["Character", "<"]]}, + +{"description":"<\\u0000", +"input":"<\u0000", +"output":["ParseError", "ParseError", ["Character", "<\uFFFD"]]}, + +{"description":"<\\u0009", +"input":"<\u0009", +"output":["ParseError", ["Character", "<\u0009"]]}, + +{"description":"<\\u000A", +"input":"<\u000A", +"output":["ParseError", ["Character", "<\u000A"]]}, + +{"description":"<\\u000B", +"input":"<\u000B", +"output":["ParseError", "ParseError", ["Character", "<\u000B"]]}, + +{"description":"<\\u000C", +"input":"<\u000C", +"output":["ParseError", ["Character", "<\u000C"]]}, + +{"description":"< ", +"input":"< ", +"output":["ParseError", ["Character", "< "]]}, + +{"description":"<!", +"input":"<!", +"output":["ParseError", ["Comment", ""]]}, + +{"description":"<!\\u0000", +"input":"<!\u0000", +"output":["ParseError", "ParseError", ["Comment", "\uFFFD"]]}, + +{"description":"<!\\u0009", +"input":"<!\u0009", +"output":["ParseError", ["Comment", "\u0009"]]}, + +{"description":"<!\\u000A", +"input":"<!\u000A", +"output":["ParseError", ["Comment", "\u000A"]]}, + +{"description":"<!\\u000B", +"input":"<!\u000B", +"output":["ParseError", "ParseError", ["Comment", "\u000B"]]}, + +{"description":"<!\\u000C", +"input":"<!\u000C", +"output":["ParseError", ["Comment", "\u000C"]]}, + +{"description":"<! ", +"input":"<! ", +"output":["ParseError", ["Comment", " "]]}, + +{"description":"<!!", +"input":"<!!", +"output":["ParseError", ["Comment", "!"]]}, + +{"description":"<!\"", +"input":"<!\"", +"output":["ParseError", ["Comment", "\""]]}, + +{"description":"<!&", +"input":"<!&", +"output":["ParseError", ["Comment", "&"]]}, + +{"description":"<!'", +"input":"<!'", +"output":["ParseError", ["Comment", "'"]]}, + +{"description":"<!-", +"input":"<!-", +"output":["ParseError", ["Comment", "-"]]}, + +{"description":"<!--", +"input":"<!--", +"output":["ParseError", ["Comment", ""]]}, + +{"description":"<!--\\u0000", +"input":"<!--\u0000", +"output":["ParseError", "ParseError", ["Comment", "\uFFFD"]]}, + +{"description":"<!--\\u0009", +"input":"<!--\u0009", +"output":["ParseError", ["Comment", "\u0009"]]}, + +{"description":"<!--\\u000A", +"input":"<!--\u000A", +"output":["ParseError", ["Comment", "\u000A"]]}, + +{"description":"<!--\\u000B", +"input":"<!--\u000B", +"output":["ParseError", "ParseError", ["Comment", "\u000B"]]}, + +{"description":"<!--\\u000C", +"input":"<!--\u000C", +"output":["ParseError", ["Comment", "\u000C"]]}, + +{"description":"<!-- ", +"input":"<!-- ", +"output":["ParseError", ["Comment", " "]]}, + +{"description":"<!-- \\u0000", +"input":"<!-- \u0000", +"output":["ParseError", "ParseError", ["Comment", " \uFFFD"]]}, + +{"description":"<!-- \\u0009", +"input":"<!-- \u0009", +"output":["ParseError", ["Comment", " \u0009"]]}, + +{"description":"<!-- \\u000A", +"input":"<!-- \u000A", +"output":["ParseError", ["Comment", " \u000A"]]}, + +{"description":"<!-- \\u000B", +"input":"<!-- \u000B", +"output":["ParseError", "ParseError", ["Comment", " \u000B"]]}, + +{"description":"<!-- \\u000C", +"input":"<!-- \u000C", +"output":["ParseError", ["Comment", " \u000C"]]}, + +{"description":"<!-- ", +"input":"<!-- ", +"output":["ParseError", ["Comment", " "]]}, + +{"description":"<!-- !", +"input":"<!-- !", +"output":["ParseError", ["Comment", " !"]]}, + +{"description":"<!-- \"", +"input":"<!-- \"", +"output":["ParseError", ["Comment", " \""]]}, + +{"description":"<!-- &", +"input":"<!-- &", +"output":["ParseError", ["Comment", " &"]]}, + +{"description":"<!-- '", +"input":"<!-- '", +"output":["ParseError", ["Comment", " '"]]}, + +{"description":"<!-- ,", +"input":"<!-- ,", +"output":["ParseError", ["Comment", " ,"]]}, + +{"description":"<!-- -", +"input":"<!-- -", +"output":["ParseError", ["Comment", " "]]}, + +{"description":"<!-- -\\u0000", +"input":"<!-- -\u0000", +"output":["ParseError", "ParseError", ["Comment", " -\uFFFD"]]}, + +{"description":"<!-- -\\u0009", +"input":"<!-- -\u0009", +"output":["ParseError", ["Comment", " -\u0009"]]}, + +{"description":"<!-- -\\u000A", +"input":"<!-- -\u000A", +"output":["ParseError", ["Comment", " -\u000A"]]}, + +{"description":"<!-- -\\u000B", +"input":"<!-- -\u000B", +"output":["ParseError", "ParseError", ["Comment", " -\u000B"]]}, + +{"description":"<!-- -\\u000C", +"input":"<!-- -\u000C", +"output":["ParseError", ["Comment", " -\u000C"]]}, + +{"description":"<!-- - ", +"input":"<!-- - ", +"output":["ParseError", ["Comment", " - "]]}, + +{"description":"<!-- -!", +"input":"<!-- -!", +"output":["ParseError", ["Comment", " -!"]]}, + +{"description":"<!-- -\"", +"input":"<!-- -\"", +"output":["ParseError", ["Comment", " -\""]]}, + +{"description":"<!-- -&", +"input":"<!-- -&", +"output":["ParseError", ["Comment", " -&"]]}, + +{"description":"<!-- -'", +"input":"<!-- -'", +"output":["ParseError", ["Comment", " -'"]]}, + +{"description":"<!-- -,", +"input":"<!-- -,", +"output":["ParseError", ["Comment", " -,"]]}, + +{"description":"<!-- --", +"input":"<!-- --", +"output":["ParseError", ["Comment", " "]]}, + +{"description":"<!-- -.", +"input":"<!-- -.", +"output":["ParseError", ["Comment", " -."]]}, + +{"description":"<!-- -/", +"input":"<!-- -/", +"output":["ParseError", ["Comment", " -/"]]}, + +{"description":"<!-- -0", +"input":"<!-- -0", +"output":["ParseError", ["Comment", " -0"]]}, + +{"description":"<!-- -1", +"input":"<!-- -1", +"output":["ParseError", ["Comment", " -1"]]}, + +{"description":"<!-- -9", +"input":"<!-- -9", +"output":["ParseError", ["Comment", " -9"]]}, + +{"description":"<!-- -<", +"input":"<!-- -<", +"output":["ParseError", ["Comment", " -<"]]}, + +{"description":"<!-- -=", +"input":"<!-- -=", +"output":["ParseError", ["Comment", " -="]]}, + +{"description":"<!-- ->", +"input":"<!-- ->", +"output":["ParseError", ["Comment", " ->"]]}, + +{"description":"<!-- -?", +"input":"<!-- -?", +"output":["ParseError", ["Comment", " -?"]]}, + +{"description":"<!-- -@", +"input":"<!-- -@", +"output":["ParseError", ["Comment", " -@"]]}, + +{"description":"<!-- -A", +"input":"<!-- -A", +"output":["ParseError", ["Comment", " -A"]]}, + +{"description":"<!-- -B", +"input":"<!-- -B", +"output":["ParseError", ["Comment", " -B"]]}, + +{"description":"<!-- -Y", +"input":"<!-- -Y", +"output":["ParseError", ["Comment", " -Y"]]}, + +{"description":"<!-- -Z", +"input":"<!-- -Z", +"output":["ParseError", ["Comment", " -Z"]]}, + +{"description":"<!-- -`", +"input":"<!-- -`", +"output":["ParseError", ["Comment", " -`"]]}, + +{"description":"<!-- -a", +"input":"<!-- -a", +"output":["ParseError", ["Comment", " -a"]]}, + +{"description":"<!-- -b", +"input":"<!-- -b", +"output":["ParseError", ["Comment", " -b"]]}, + +{"description":"<!-- -y", +"input":"<!-- -y", +"output":["ParseError", ["Comment", " -y"]]}, + +{"description":"<!-- -z", +"input":"<!-- -z", +"output":["ParseError", ["Comment", " -z"]]}, + +{"description":"<!-- -{", +"input":"<!-- -{", +"output":["ParseError", ["Comment", " -{"]]}, + +{"description":"<!-- -\\uDBC0\\uDC00", +"input":"<!-- -\uDBC0\uDC00", +"output":["ParseError", ["Comment", " -\uDBC0\uDC00"]]}, + +{"description":"<!-- .", +"input":"<!-- .", +"output":["ParseError", ["Comment", " ."]]}, + +{"description":"<!-- /", +"input":"<!-- /", +"output":["ParseError", ["Comment", " /"]]}, + +{"description":"<!-- 0", +"input":"<!-- 0", +"output":["ParseError", ["Comment", " 0"]]}, + +{"description":"<!-- 1", +"input":"<!-- 1", +"output":["ParseError", ["Comment", " 1"]]}, + +{"description":"<!-- 9", +"input":"<!-- 9", +"output":["ParseError", ["Comment", " 9"]]}, + +{"description":"<!-- <", +"input":"<!-- <", +"output":["ParseError", ["Comment", " <"]]}, + +{"description":"<!-- =", +"input":"<!-- =", +"output":["ParseError", ["Comment", " ="]]}, + +{"description":"<!-- >", +"input":"<!-- >", +"output":["ParseError", ["Comment", " >"]]}, + +{"description":"<!-- ?", +"input":"<!-- ?", +"output":["ParseError", ["Comment", " ?"]]}, + +{"description":"<!-- @", +"input":"<!-- @", +"output":["ParseError", ["Comment", " @"]]}, + +{"description":"<!-- A", +"input":"<!-- A", +"output":["ParseError", ["Comment", " A"]]}, + +{"description":"<!-- B", +"input":"<!-- B", +"output":["ParseError", ["Comment", " B"]]}, + +{"description":"<!-- Y", +"input":"<!-- Y", +"output":["ParseError", ["Comment", " Y"]]}, + +{"description":"<!-- Z", +"input":"<!-- Z", +"output":["ParseError", ["Comment", " Z"]]}, + +{"description":"<!-- `", +"input":"<!-- `", +"output":["ParseError", ["Comment", " `"]]}, + +{"description":"<!-- a", +"input":"<!-- a", +"output":["ParseError", ["Comment", " a"]]}, + +{"description":"<!-- b", +"input":"<!-- b", +"output":["ParseError", ["Comment", " b"]]}, + +{"description":"<!-- y", +"input":"<!-- y", +"output":["ParseError", ["Comment", " y"]]}, + +{"description":"<!-- z", +"input":"<!-- z", +"output":["ParseError", ["Comment", " z"]]}, + +{"description":"<!-- {", +"input":"<!-- {", +"output":["ParseError", ["Comment", " {"]]}, + +{"description":"<!-- \\uDBC0\\uDC00", +"input":"<!-- \uDBC0\uDC00", +"output":["ParseError", ["Comment", " \uDBC0\uDC00"]]}, + +{"description":"<!--!", +"input":"<!--!", +"output":["ParseError", ["Comment", "!"]]}, + +{"description":"<!--\"", +"input":"<!--\"", +"output":["ParseError", ["Comment", "\""]]}, + +{"description":"<!--&", +"input":"<!--&", +"output":["ParseError", ["Comment", "&"]]}, + +{"description":"<!--'", +"input":"<!--'", +"output":["ParseError", ["Comment", "'"]]}, + +{"description":"<!--,", +"input":"<!--,", +"output":["ParseError", ["Comment", ","]]}, + +{"description":"<!---", +"input":"<!---", +"output":["ParseError", ["Comment", ""]]}, + +{"description":"<!---\\u0000", +"input":"<!---\u0000", +"output":["ParseError", "ParseError", ["Comment", "-\uFFFD"]]}, + +{"description":"<!---\\u0009", +"input":"<!---\u0009", +"output":["ParseError", ["Comment", "-\u0009"]]}, + +{"description":"<!---\\u000A", +"input":"<!---\u000A", +"output":["ParseError", ["Comment", "-\u000A"]]}, + +{"description":"<!---\\u000B", +"input":"<!---\u000B", +"output":["ParseError", "ParseError", ["Comment", "-\u000B"]]}, + +{"description":"<!---\\u000C", +"input":"<!---\u000C", +"output":["ParseError", ["Comment", "-\u000C"]]}, + +{"description":"<!--- ", +"input":"<!--- ", +"output":["ParseError", ["Comment", "- "]]}, + +{"description":"<!---!", +"input":"<!---!", +"output":["ParseError", ["Comment", "-!"]]}, + +{"description":"<!---\"", +"input":"<!---\"", +"output":["ParseError", ["Comment", "-\""]]}, + +{"description":"<!---&", +"input":"<!---&", +"output":["ParseError", ["Comment", "-&"]]}, + +{"description":"<!---'", +"input":"<!---'", +"output":["ParseError", ["Comment", "-'"]]}, + +{"description":"<!---,", +"input":"<!---,", +"output":["ParseError", ["Comment", "-,"]]}, + +{"description":"<!----", +"input":"<!----", +"output":["ParseError", ["Comment", ""]]}, + +{"description":"<!----\\u0000", +"input":"<!----\u0000", +"output":["ParseError", "ParseError", "ParseError", ["Comment", "--\uFFFD"]]}, + +{"description":"<!----\\u0009", +"input":"<!----\u0009", +"output":["ParseError", "ParseError", ["Comment", "--\u0009"]]}, + +{"description":"<!----\\u000A", +"input":"<!----\u000A", +"output":["ParseError", "ParseError", ["Comment", "--\u000A"]]}, + +{"description":"<!----\\u000B", +"input":"<!----\u000B", +"output":["ParseError", "ParseError", "ParseError", ["Comment", "--\u000B"]]}, + +{"description":"<!----\\u000C", +"input":"<!----\u000C", +"output":["ParseError", "ParseError", ["Comment", "--\u000C"]]}, + +{"description":"<!---- ", +"input":"<!---- ", +"output":["ParseError", "ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- >", +"input":"<!---- >", +"output":["ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- -", +"input":"<!---- -", +"output":["ParseError", "ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- --", +"input":"<!---- --", +"output":["ParseError", "ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- -->", +"input":"<!---- -->", +"output":["ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- -->", +"input":"<!---- -->", +"output":["ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- a-->", +"input":"<!---- a-->", +"output":["ParseError", ["Comment", "-- a"]]}, + +{"description":"<!----!", +"input":"<!----!", +"output":["ParseError", "ParseError", ["Comment", ""]]}, + +{"description":"<!----!>", +"input":"<!----!>", +"output":["ParseError", ["Comment", ""]]}, + +{"description":"<!----!a", +"input":"<!----!a", +"output":["ParseError", "ParseError", ["Comment", "--!a"]]}, + +{"description":"<!----!a-", +"input":"<!----!a-", +"output":["ParseError", "ParseError", ["Comment", "--!a"]]}, + +{"description":"<!----!a--", +"input":"<!----!a--", +"output":["ParseError", "ParseError", ["Comment", "--!a"]]}, + +{"description":"<!----!a-->", +"input":"<!----!a-->", +"output":["ParseError", ["Comment", "--!a"]]}, + +{"description":"<!----!-", +"input":"<!----!-", +"output":["ParseError", "ParseError", ["Comment", "--!"]]}, + +{"description":"<!----!--", +"input":"<!----!--", +"output":["ParseError", "ParseError", ["Comment", "--!"]]}, + +{"description":"<!----!-->", +"input":"<!----!-->", +"output":["ParseError", ["Comment", "--!"]]}, + +{"description":"<!----\"", +"input":"<!----\"", +"output":["ParseError", "ParseError", ["Comment", "--\""]]}, + +{"description":"<!----&", +"input":"<!----&", +"output":["ParseError", "ParseError", ["Comment", "--&"]]}, + +{"description":"<!----'", +"input":"<!----'", +"output":["ParseError", "ParseError", ["Comment", "--'"]]}, + +{"description":"<!----,", +"input":"<!----,", +"output":["ParseError", "ParseError", ["Comment", "--,"]]}, + +{"description":"<!-----", +"input":"<!-----", +"output":["ParseError", "ParseError", ["Comment", "-"]]}, + +{"description":"<!----.", +"input":"<!----.", +"output":["ParseError", "ParseError", ["Comment", "--."]]}, + +{"description":"<!----/", +"input":"<!----/", +"output":["ParseError", "ParseError", ["Comment", "--/"]]}, + +{"description":"<!----0", +"input":"<!----0", +"output":["ParseError", "ParseError", ["Comment", "--0"]]}, + +{"description":"<!----1", +"input":"<!----1", +"output":["ParseError", "ParseError", ["Comment", "--1"]]}, + +{"description":"<!----9", +"input":"<!----9", +"output":["ParseError", "ParseError", ["Comment", "--9"]]}, + +{"description":"<!----<", +"input":"<!----<", +"output":["ParseError", "ParseError", ["Comment", "--<"]]}, + +{"description":"<!----=", +"input":"<!----=", +"output":["ParseError", "ParseError", ["Comment", "--="]]}, + +{"description":"<!---->", +"input":"<!---->", +"output":[["Comment", ""]]}, + +{"description":"<!----?", +"input":"<!----?", +"output":["ParseError", "ParseError", ["Comment", "--?"]]}, + +{"description":"<!----@", +"input":"<!----@", +"output":["ParseError", "ParseError", ["Comment", "--@"]]}, + +{"description":"<!----A", +"input":"<!----A", +"output":["ParseError", "ParseError", ["Comment", "--A"]]}, + +{"description":"<!----B", +"input":"<!----B", +"output":["ParseError", "ParseError", ["Comment", "--B"]]}, + +{"description":"<!----Y", +"input":"<!----Y", +"output":["ParseError", "ParseError", ["Comment", "--Y"]]}, + +{"description":"<!----Z", +"input":"<!----Z", +"output":["ParseError", "ParseError", ["Comment", "--Z"]]}, + +{"description":"<!----`", +"input":"<!----`", +"output":["ParseError", "ParseError", ["Comment", "--`"]]}, + +{"description":"<!----a", +"input":"<!----a", +"output":["ParseError", "ParseError", ["Comment", "--a"]]}, + +{"description":"<!----b", +"input":"<!----b", +"output":["ParseError", "ParseError", ["Comment", "--b"]]}, + +{"description":"<!----y", +"input":"<!----y", +"output":["ParseError", "ParseError", ["Comment", "--y"]]}, + +{"description":"<!----z", +"input":"<!----z", +"output":["ParseError", "ParseError", ["Comment", "--z"]]}, + +{"description":"<!----{", +"input":"<!----{", +"output":["ParseError", "ParseError", ["Comment", "--{"]]}, + +{"description":"<!----\\uDBC0\\uDC00", +"input":"<!----\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["Comment", "--\uDBC0\uDC00"]]}, + +{"description":"<!---.", +"input":"<!---.", +"output":["ParseError", ["Comment", "-."]]}, + +{"description":"<!---/", +"input":"<!---/", +"output":["ParseError", ["Comment", "-/"]]}, + +{"description":"<!---0", +"input":"<!---0", +"output":["ParseError", ["Comment", "-0"]]}, + +{"description":"<!---1", +"input":"<!---1", +"output":["ParseError", ["Comment", "-1"]]}, + +{"description":"<!---9", +"input":"<!---9", +"output":["ParseError", ["Comment", "-9"]]}, + +{"description":"<!---<", +"input":"<!---<", +"output":["ParseError", ["Comment", "-<"]]}, + +{"description":"<!---=", +"input":"<!---=", +"output":["ParseError", ["Comment", "-="]]}, + +{"description":"<!--->", +"input":"<!--->", +"output":["ParseError", ["Comment", ""]]}, + +{"description":"<!---?", +"input":"<!---?", +"output":["ParseError", ["Comment", "-?"]]}, + +{"description":"<!---@", +"input":"<!---@", +"output":["ParseError", ["Comment", "-@"]]}, + +{"description":"<!---A", +"input":"<!---A", +"output":["ParseError", ["Comment", "-A"]]}, + +{"description":"<!---B", +"input":"<!---B", +"output":["ParseError", ["Comment", "-B"]]}, + +{"description":"<!---Y", +"input":"<!---Y", +"output":["ParseError", ["Comment", "-Y"]]}, + +{"description":"<!---Z", +"input":"<!---Z", +"output":["ParseError", ["Comment", "-Z"]]}, + +{"description":"<!---`", +"input":"<!---`", +"output":["ParseError", ["Comment", "-`"]]}, + +{"description":"<!---a", +"input":"<!---a", +"output":["ParseError", ["Comment", "-a"]]}, + +{"description":"<!---b", +"input":"<!---b", +"output":["ParseError", ["Comment", "-b"]]}, + +{"description":"<!---y", +"input":"<!---y", +"output":["ParseError", ["Comment", "-y"]]}, + +{"description":"<!---z", +"input":"<!---z", +"output":["ParseError", ["Comment", "-z"]]}, + +{"description":"<!---{", +"input":"<!---{", +"output":["ParseError", ["Comment", "-{"]]}, + +{"description":"<!---\\uDBC0\\uDC00", +"input":"<!---\uDBC0\uDC00", +"output":["ParseError", ["Comment", "-\uDBC0\uDC00"]]}, + +{"description":"<!--.", +"input":"<!--.", +"output":["ParseError", ["Comment", "."]]}, + +{"description":"<!--/", +"input":"<!--/", +"output":["ParseError", ["Comment", "/"]]}, + +{"description":"<!--0", +"input":"<!--0", +"output":["ParseError", ["Comment", "0"]]}, + +{"description":"<!--1", +"input":"<!--1", +"output":["ParseError", ["Comment", "1"]]}, + +{"description":"<!--9", +"input":"<!--9", +"output":["ParseError", ["Comment", "9"]]}, + +{"description":"<!--<", +"input":"<!--<", +"output":["ParseError", ["Comment", "<"]]}, + +{"description":"<!--=", +"input":"<!--=", +"output":["ParseError", ["Comment", "="]]}, + +{"description":"<!-->", +"input":"<!-->", +"output":["ParseError", ["Comment", ""]]}, + +{"description":"<!--?", +"input":"<!--?", +"output":["ParseError", ["Comment", "?"]]}, + +{"description":"<!--@", +"input":"<!--@", +"output":["ParseError", ["Comment", "@"]]}, + +{"description":"<!--A", +"input":"<!--A", +"output":["ParseError", ["Comment", "A"]]}, + +{"description":"<!--B", +"input":"<!--B", +"output":["ParseError", ["Comment", "B"]]}, + +{"description":"<!--Y", +"input":"<!--Y", +"output":["ParseError", ["Comment", "Y"]]}, + +{"description":"<!--Z", +"input":"<!--Z", +"output":["ParseError", ["Comment", "Z"]]}, + +{"description":"<!--`", +"input":"<!--`", +"output":["ParseError", ["Comment", "`"]]}, + +{"description":"<!--a", +"input":"<!--a", +"output":["ParseError", ["Comment", "a"]]}, + +{"description":"<!--b", +"input":"<!--b", +"output":["ParseError", ["Comment", "b"]]}, + +{"description":"<!--y", +"input":"<!--y", +"output":["ParseError", ["Comment", "y"]]}, + +{"description":"<!--z", +"input":"<!--z", +"output":["ParseError", ["Comment", "z"]]}, + +{"description":"<!--{", +"input":"<!--{", +"output":["ParseError", ["Comment", "{"]]}, + +{"description":"<!--\\uDBC0\\uDC00", +"input":"<!--\uDBC0\uDC00", +"output":["ParseError", ["Comment", "\uDBC0\uDC00"]]}, + +{"description":"<!/", +"input":"<!/", +"output":["ParseError", ["Comment", "/"]]}, + +{"description":"<!0", +"input":"<!0", +"output":["ParseError", ["Comment", "0"]]}, + +{"description":"<!1", +"input":"<!1", +"output":["ParseError", ["Comment", "1"]]}, + +{"description":"<!9", +"input":"<!9", +"output":["ParseError", ["Comment", "9"]]}, + +{"description":"<!<", +"input":"<!<", +"output":["ParseError", ["Comment", "<"]]}, + +{"description":"<!=", +"input":"<!=", +"output":["ParseError", ["Comment", "="]]}, + +{"description":"<!>", +"input":"<!>", +"output":["ParseError", ["Comment", ""]]}, + +{"description":"<!?", +"input":"<!?", +"output":["ParseError", ["Comment", "?"]]}, + +{"description":"<!@", +"input":"<!@", +"output":["ParseError", ["Comment", "@"]]}, + +{"description":"<!A", +"input":"<!A", +"output":["ParseError", ["Comment", "A"]]}, + +{"description":"<!B", +"input":"<!B", +"output":["ParseError", ["Comment", "B"]]}, + +{"description":"<!DOCTYPE", +"input":"<!DOCTYPE", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE\\u0000", +"input":"<!DOCTYPE\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\uFFFD", null, null, false]]}, + +{"description":"<!DOCTYPE\\u0008", +"input":"<!DOCTYPE\u0008", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\u0008", null, null, false]]}, + +{"description":"<!DOCTYPE\\u0009", +"input":"<!DOCTYPE\u0009", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE\\u000A", +"input":"<!DOCTYPE\u000A", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE\\u000B", +"input":"<!DOCTYPE\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\u000B", null, null, false]]}, + +{"description":"<!DOCTYPE\\u000C", +"input":"<!DOCTYPE\u000C", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE\\u000D", +"input":"<!DOCTYPE\u000D", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE\\u001F", +"input":"<!DOCTYPE\u001F", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\u001F", null, null, false]]}, + +{"description":"<!DOCTYPE ", +"input":"<!DOCTYPE ", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE \\u0000", +"input":"<!DOCTYPE \u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "\uFFFD", null, null, false]]}, + +{"description":"<!DOCTYPE \\u0008", +"input":"<!DOCTYPE \u0008", +"output":["ParseError", "ParseError", ["DOCTYPE", "\u0008", null, null, false]]}, + +{"description":"<!DOCTYPE \\u0009", +"input":"<!DOCTYPE \u0009", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE \\u000A", +"input":"<!DOCTYPE \u000A", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE \\u000B", +"input":"<!DOCTYPE \u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "\u000B", null, null, false]]}, + +{"description":"<!DOCTYPE \\u000C", +"input":"<!DOCTYPE \u000C", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE \\u000D", +"input":"<!DOCTYPE \u000D", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE \\u001F", +"input":"<!DOCTYPE \u001F", +"output":["ParseError", "ParseError", ["DOCTYPE", "\u001F", null, null, false]]}, + +{"description":"<!DOCTYPE ", +"input":"<!DOCTYPE ", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE !", +"input":"<!DOCTYPE !", +"output":["ParseError", ["DOCTYPE", "!", null, null, false]]}, + +{"description":"<!DOCTYPE \"", +"input":"<!DOCTYPE \"", +"output":["ParseError", ["DOCTYPE", "\"", null, null, false]]}, + +{"description":"<!DOCTYPE &", +"input":"<!DOCTYPE &", +"output":["ParseError", ["DOCTYPE", "&", null, null, false]]}, + +{"description":"<!DOCTYPE '", +"input":"<!DOCTYPE '", +"output":["ParseError", ["DOCTYPE", "'", null, null, false]]}, + +{"description":"<!DOCTYPE -", +"input":"<!DOCTYPE -", +"output":["ParseError", ["DOCTYPE", "-", null, null, false]]}, + +{"description":"<!DOCTYPE /", +"input":"<!DOCTYPE /", +"output":["ParseError", ["DOCTYPE", "/", null, null, false]]}, + +{"description":"<!DOCTYPE 0", +"input":"<!DOCTYPE 0", +"output":["ParseError", ["DOCTYPE", "0", null, null, false]]}, + +{"description":"<!DOCTYPE 1", +"input":"<!DOCTYPE 1", +"output":["ParseError", ["DOCTYPE", "1", null, null, false]]}, + +{"description":"<!DOCTYPE 9", +"input":"<!DOCTYPE 9", +"output":["ParseError", ["DOCTYPE", "9", null, null, false]]}, + +{"description":"<!DOCTYPE <", +"input":"<!DOCTYPE <", +"output":["ParseError", ["DOCTYPE", "<", null, null, false]]}, + +{"description":"<!DOCTYPE =", +"input":"<!DOCTYPE =", +"output":["ParseError", ["DOCTYPE", "=", null, null, false]]}, + +{"description":"<!DOCTYPE >", +"input":"<!DOCTYPE >", +"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE ?", +"input":"<!DOCTYPE ?", +"output":["ParseError", ["DOCTYPE", "?", null, null, false]]}, + +{"description":"<!DOCTYPE @", +"input":"<!DOCTYPE @", +"output":["ParseError", ["DOCTYPE", "@", null, null, false]]}, + +{"description":"<!DOCTYPE A", +"input":"<!DOCTYPE A", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE B", +"input":"<!DOCTYPE B", +"output":["ParseError", ["DOCTYPE", "b", null, null, false]]}, + +{"description":"<!DOCTYPE Y", +"input":"<!DOCTYPE Y", +"output":["ParseError", ["DOCTYPE", "y", null, null, false]]}, + +{"description":"<!DOCTYPE Z", +"input":"<!DOCTYPE Z", +"output":["ParseError", ["DOCTYPE", "z", null, null, false]]}, + +{"description":"<!DOCTYPE [", +"input":"<!DOCTYPE [", +"output":["ParseError", ["DOCTYPE", "[", null, null, false]]}, + +{"description":"<!DOCTYPE `", +"input":"<!DOCTYPE `", +"output":["ParseError", ["DOCTYPE", "`", null, null, false]]}, + +{"description":"<!DOCTYPE a", +"input":"<!DOCTYPE a", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a\\u0000", +"input":"<!DOCTYPE a\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a\uFFFD", null, null, false]]}, + +{"description":"<!DOCTYPE a\\u0008", +"input":"<!DOCTYPE a\u0008", +"output":["ParseError", "ParseError", ["DOCTYPE", "a\u0008", null, null, false]]}, + +{"description":"<!DOCTYPE a\\u0009", +"input":"<!DOCTYPE a\u0009", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a\\u000A", +"input":"<!DOCTYPE a\u000A", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a\\u000B", +"input":"<!DOCTYPE a\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a\u000B", null, null, false]]}, + +{"description":"<!DOCTYPE a\\u000C", +"input":"<!DOCTYPE a\u000C", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a\\u000D", +"input":"<!DOCTYPE a\u000D", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a\\u001F", +"input":"<!DOCTYPE a\u001F", +"output":["ParseError", "ParseError", ["DOCTYPE", "a\u001F", null, null, false]]}, + +{"description":"<!DOCTYPE a ", +"input":"<!DOCTYPE a ", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \\u0000", +"input":"<!DOCTYPE a \u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \\u0008", +"input":"<!DOCTYPE a \u0008", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \\u0009", +"input":"<!DOCTYPE a \u0009", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \\u000A", +"input":"<!DOCTYPE a \u000A", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \\u000B", +"input":"<!DOCTYPE a \u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \\u000C", +"input":"<!DOCTYPE a \u000C", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \\u000D", +"input":"<!DOCTYPE a \u000D", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \\u001F", +"input":"<!DOCTYPE a \u001F", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a ", +"input":"<!DOCTYPE a ", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a !", +"input":"<!DOCTYPE a !", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \"", +"input":"<!DOCTYPE a \"", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a &", +"input":"<!DOCTYPE a &", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a '", +"input":"<!DOCTYPE a '", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a -", +"input":"<!DOCTYPE a -", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a /", +"input":"<!DOCTYPE a /", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a 0", +"input":"<!DOCTYPE a 0", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a 1", +"input":"<!DOCTYPE a 1", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a 9", +"input":"<!DOCTYPE a 9", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a <", +"input":"<!DOCTYPE a <", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a =", +"input":"<!DOCTYPE a =", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a >", +"input":"<!DOCTYPE a >", +"output":[["DOCTYPE", "a", null, null, true]]}, + +{"description":"<!DOCTYPE a ?", +"input":"<!DOCTYPE a ?", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a @", +"input":"<!DOCTYPE a @", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a A", +"input":"<!DOCTYPE a A", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a B", +"input":"<!DOCTYPE a B", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC", +"input":"<!DOCTYPE a PUBLIC", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\\u0000", +"input":"<!DOCTYPE a PUBLIC\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\\u0008", +"input":"<!DOCTYPE a PUBLIC\u0008", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\\u0009", +"input":"<!DOCTYPE a PUBLIC\u0009", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\\u000A", +"input":"<!DOCTYPE a PUBLIC\u000A", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\\u000B", +"input":"<!DOCTYPE a PUBLIC\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\\u000C", +"input":"<!DOCTYPE a PUBLIC\u000C", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\\u000D", +"input":"<!DOCTYPE a PUBLIC\u000D", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\\u001F", +"input":"<!DOCTYPE a PUBLIC\u001F", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC ", +"input":"<!DOCTYPE a PUBLIC ", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC!", +"input":"<!DOCTYPE a PUBLIC!", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"", +"input":"<!DOCTYPE a PUBLIC\"", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"\\u0000", +"input":"<!DOCTYPE a PUBLIC\"\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"\\u0009", +"input":"<!DOCTYPE a PUBLIC\"\u0009", +"output":["ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"\\u000A", +"input":"<!DOCTYPE a PUBLIC\"\u000A", +"output":["ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"\\u000B", +"input":"<!DOCTYPE a PUBLIC\"\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"\\u000C", +"input":"<!DOCTYPE a PUBLIC\"\u000C", +"output":["ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\" ", +"input":"<!DOCTYPE a PUBLIC\" ", +"output":["ParseError", ["DOCTYPE", "a", " ", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"!", +"input":"<!DOCTYPE a PUBLIC\"!", +"output":["ParseError", ["DOCTYPE", "a", "!", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"\"", +"input":"<!DOCTYPE a PUBLIC\"\"", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"#", +"input":"<!DOCTYPE a PUBLIC\"#", +"output":["ParseError", ["DOCTYPE", "a", "#", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"&", +"input":"<!DOCTYPE a PUBLIC\"&", +"output":["ParseError", ["DOCTYPE", "a", "&", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"'", +"input":"<!DOCTYPE a PUBLIC\"'", +"output":["ParseError", ["DOCTYPE", "a", "'", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"-", +"input":"<!DOCTYPE a PUBLIC\"-", +"output":["ParseError", ["DOCTYPE", "a", "-", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"/", +"input":"<!DOCTYPE a PUBLIC\"/", +"output":["ParseError", ["DOCTYPE", "a", "/", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"0", +"input":"<!DOCTYPE a PUBLIC\"0", +"output":["ParseError", ["DOCTYPE", "a", "0", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"1", +"input":"<!DOCTYPE a PUBLIC\"1", +"output":["ParseError", ["DOCTYPE", "a", "1", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"9", +"input":"<!DOCTYPE a PUBLIC\"9", +"output":["ParseError", ["DOCTYPE", "a", "9", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"<", +"input":"<!DOCTYPE a PUBLIC\"<", +"output":["ParseError", ["DOCTYPE", "a", "<", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"=", +"input":"<!DOCTYPE a PUBLIC\"=", +"output":["ParseError", ["DOCTYPE", "a", "=", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\">", +"input":"<!DOCTYPE a PUBLIC\">", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"?", +"input":"<!DOCTYPE a PUBLIC\"?", +"output":["ParseError", ["DOCTYPE", "a", "?", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"@", +"input":"<!DOCTYPE a PUBLIC\"@", +"output":["ParseError", ["DOCTYPE", "a", "@", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"A", +"input":"<!DOCTYPE a PUBLIC\"A", +"output":["ParseError", ["DOCTYPE", "a", "A", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"B", +"input":"<!DOCTYPE a PUBLIC\"B", +"output":["ParseError", ["DOCTYPE", "a", "B", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"Y", +"input":"<!DOCTYPE a PUBLIC\"Y", +"output":["ParseError", ["DOCTYPE", "a", "Y", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"Z", +"input":"<!DOCTYPE a PUBLIC\"Z", +"output":["ParseError", ["DOCTYPE", "a", "Z", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"`", +"input":"<!DOCTYPE a PUBLIC\"`", +"output":["ParseError", ["DOCTYPE", "a", "`", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"a", +"input":"<!DOCTYPE a PUBLIC\"a", +"output":["ParseError", ["DOCTYPE", "a", "a", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"b", +"input":"<!DOCTYPE a PUBLIC\"b", +"output":["ParseError", ["DOCTYPE", "a", "b", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"y", +"input":"<!DOCTYPE a PUBLIC\"y", +"output":["ParseError", ["DOCTYPE", "a", "y", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"z", +"input":"<!DOCTYPE a PUBLIC\"z", +"output":["ParseError", ["DOCTYPE", "a", "z", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"{", +"input":"<!DOCTYPE a PUBLIC\"{", +"output":["ParseError", ["DOCTYPE", "a", "{", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\"\\uDBC0\\uDC00", +"input":"<!DOCTYPE a PUBLIC\"\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC#", +"input":"<!DOCTYPE a PUBLIC#", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC&", +"input":"<!DOCTYPE a PUBLIC&", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'", +"input":"<!DOCTYPE a PUBLIC'", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'\\u0000", +"input":"<!DOCTYPE a PUBLIC'\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'\\u0009", +"input":"<!DOCTYPE a PUBLIC'\u0009", +"output":["ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'\\u000A", +"input":"<!DOCTYPE a PUBLIC'\u000A", +"output":["ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'\\u000B", +"input":"<!DOCTYPE a PUBLIC'\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'\\u000C", +"input":"<!DOCTYPE a PUBLIC'\u000C", +"output":["ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC' ", +"input":"<!DOCTYPE a PUBLIC' ", +"output":["ParseError", ["DOCTYPE", "a", " ", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'!", +"input":"<!DOCTYPE a PUBLIC'!", +"output":["ParseError", ["DOCTYPE", "a", "!", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'\"", +"input":"<!DOCTYPE a PUBLIC'\"", +"output":["ParseError", ["DOCTYPE", "a", "\"", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'&", +"input":"<!DOCTYPE a PUBLIC'&", +"output":["ParseError", ["DOCTYPE", "a", "&", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''", +"input":"<!DOCTYPE a PUBLIC''", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\\u0000", +"input":"<!DOCTYPE a PUBLIC''\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\\u0008", +"input":"<!DOCTYPE a PUBLIC''\u0008", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\\u0009", +"input":"<!DOCTYPE a PUBLIC''\u0009", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\\u000A", +"input":"<!DOCTYPE a PUBLIC''\u000A", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\\u000B", +"input":"<!DOCTYPE a PUBLIC''\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\\u000C", +"input":"<!DOCTYPE a PUBLIC''\u000C", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\\u000D", +"input":"<!DOCTYPE a PUBLIC''\u000D", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\\u001F", +"input":"<!DOCTYPE a PUBLIC''\u001F", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'' ", +"input":"<!DOCTYPE a PUBLIC'' ", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''!", +"input":"<!DOCTYPE a PUBLIC''!", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\"", +"input":"<!DOCTYPE a PUBLIC''\"", +"output":["ParseError", ["DOCTYPE", "a", "", "", false]]}, + +{"description":"<!DOCTYPE a PUBLIC''#", +"input":"<!DOCTYPE a PUBLIC''#", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''&", +"input":"<!DOCTYPE a PUBLIC''&", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'''", +"input":"<!DOCTYPE a PUBLIC'''", +"output":["ParseError", ["DOCTYPE", "a", "", "", false]]}, + +{"description":"<!DOCTYPE a PUBLIC''(", +"input":"<!DOCTYPE a PUBLIC''(", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''-", +"input":"<!DOCTYPE a PUBLIC''-", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''/", +"input":"<!DOCTYPE a PUBLIC''/", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''0", +"input":"<!DOCTYPE a PUBLIC''0", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''1", +"input":"<!DOCTYPE a PUBLIC''1", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''9", +"input":"<!DOCTYPE a PUBLIC''9", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''<", +"input":"<!DOCTYPE a PUBLIC''<", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''=", +"input":"<!DOCTYPE a PUBLIC''=", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''>", +"input":"<!DOCTYPE a PUBLIC''>", +"output":[["DOCTYPE", "a", "", null, true]]}, + +{"description":"<!DOCTYPE a PUBLIC''?", +"input":"<!DOCTYPE a PUBLIC''?", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''@", +"input":"<!DOCTYPE a PUBLIC''@", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''A", +"input":"<!DOCTYPE a PUBLIC''A", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''B", +"input":"<!DOCTYPE a PUBLIC''B", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''Y", +"input":"<!DOCTYPE a PUBLIC''Y", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''Z", +"input":"<!DOCTYPE a PUBLIC''Z", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''`", +"input":"<!DOCTYPE a PUBLIC''`", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''a", +"input":"<!DOCTYPE a PUBLIC''a", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''b", +"input":"<!DOCTYPE a PUBLIC''b", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''y", +"input":"<!DOCTYPE a PUBLIC''y", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''z", +"input":"<!DOCTYPE a PUBLIC''z", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''{", +"input":"<!DOCTYPE a PUBLIC''{", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC''\\uDBC0\\uDC00", +"input":"<!DOCTYPE a PUBLIC''\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'(", +"input":"<!DOCTYPE a PUBLIC'(", +"output":["ParseError", ["DOCTYPE", "a", "(", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'-", +"input":"<!DOCTYPE a PUBLIC'-", +"output":["ParseError", ["DOCTYPE", "a", "-", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'/", +"input":"<!DOCTYPE a PUBLIC'/", +"output":["ParseError", ["DOCTYPE", "a", "/", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'0", +"input":"<!DOCTYPE a PUBLIC'0", +"output":["ParseError", ["DOCTYPE", "a", "0", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'1", +"input":"<!DOCTYPE a PUBLIC'1", +"output":["ParseError", ["DOCTYPE", "a", "1", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'9", +"input":"<!DOCTYPE a PUBLIC'9", +"output":["ParseError", ["DOCTYPE", "a", "9", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'<", +"input":"<!DOCTYPE a PUBLIC'<", +"output":["ParseError", ["DOCTYPE", "a", "<", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'=", +"input":"<!DOCTYPE a PUBLIC'=", +"output":["ParseError", ["DOCTYPE", "a", "=", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'>", +"input":"<!DOCTYPE a PUBLIC'>", +"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'?", +"input":"<!DOCTYPE a PUBLIC'?", +"output":["ParseError", ["DOCTYPE", "a", "?", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'@", +"input":"<!DOCTYPE a PUBLIC'@", +"output":["ParseError", ["DOCTYPE", "a", "@", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'A", +"input":"<!DOCTYPE a PUBLIC'A", +"output":["ParseError", ["DOCTYPE", "a", "A", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'B", +"input":"<!DOCTYPE a PUBLIC'B", +"output":["ParseError", ["DOCTYPE", "a", "B", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'Y", +"input":"<!DOCTYPE a PUBLIC'Y", +"output":["ParseError", ["DOCTYPE", "a", "Y", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'Z", +"input":"<!DOCTYPE a PUBLIC'Z", +"output":["ParseError", ["DOCTYPE", "a", "Z", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'`", +"input":"<!DOCTYPE a PUBLIC'`", +"output":["ParseError", ["DOCTYPE", "a", "`", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'a", +"input":"<!DOCTYPE a PUBLIC'a", +"output":["ParseError", ["DOCTYPE", "a", "a", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'b", +"input":"<!DOCTYPE a PUBLIC'b", +"output":["ParseError", ["DOCTYPE", "a", "b", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'y", +"input":"<!DOCTYPE a PUBLIC'y", +"output":["ParseError", ["DOCTYPE", "a", "y", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'z", +"input":"<!DOCTYPE a PUBLIC'z", +"output":["ParseError", ["DOCTYPE", "a", "z", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'{", +"input":"<!DOCTYPE a PUBLIC'{", +"output":["ParseError", ["DOCTYPE", "a", "{", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC'\\uDBC0\\uDC00", +"input":"<!DOCTYPE a PUBLIC'\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC(", +"input":"<!DOCTYPE a PUBLIC(", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC-", +"input":"<!DOCTYPE a PUBLIC-", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC/", +"input":"<!DOCTYPE a PUBLIC/", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC0", +"input":"<!DOCTYPE a PUBLIC0", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC1", +"input":"<!DOCTYPE a PUBLIC1", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC9", +"input":"<!DOCTYPE a PUBLIC9", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC<", +"input":"<!DOCTYPE a PUBLIC<", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC=", +"input":"<!DOCTYPE a PUBLIC=", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC>", +"input":"<!DOCTYPE a PUBLIC>", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC?", +"input":"<!DOCTYPE a PUBLIC?", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC@", +"input":"<!DOCTYPE a PUBLIC@", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLICA", +"input":"<!DOCTYPE a PUBLICA", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLICB", +"input":"<!DOCTYPE a PUBLICB", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLICY", +"input":"<!DOCTYPE a PUBLICY", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLICZ", +"input":"<!DOCTYPE a PUBLICZ", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC`", +"input":"<!DOCTYPE a PUBLIC`", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLICa", +"input":"<!DOCTYPE a PUBLICa", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLICb", +"input":"<!DOCTYPE a PUBLICb", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLICy", +"input":"<!DOCTYPE a PUBLICy", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLICz", +"input":"<!DOCTYPE a PUBLICz", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC{", +"input":"<!DOCTYPE a PUBLIC{", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a PUBLIC\\uDBC0\\uDC00", +"input":"<!DOCTYPE a PUBLIC\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM", +"input":"<!DOCTYPE a SYSTEM", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\\u0000", +"input":"<!DOCTYPE a SYSTEM\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\\u0008", +"input":"<!DOCTYPE a SYSTEM\u0008", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\\u0009", +"input":"<!DOCTYPE a SYSTEM\u0009", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\\u000A", +"input":"<!DOCTYPE a SYSTEM\u000A", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\\u000B", +"input":"<!DOCTYPE a SYSTEM\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\\u000C", +"input":"<!DOCTYPE a SYSTEM\u000C", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\\u000D", +"input":"<!DOCTYPE a SYSTEM\u000D", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\\u001F", +"input":"<!DOCTYPE a SYSTEM\u001F", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM ", +"input":"<!DOCTYPE a SYSTEM ", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM!", +"input":"<!DOCTYPE a SYSTEM!", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"", +"input":"<!DOCTYPE a SYSTEM\"", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"\\u0000", +"input":"<!DOCTYPE a SYSTEM\"\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"\\u0009", +"input":"<!DOCTYPE a SYSTEM\"\u0009", +"output":["ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"\\u000A", +"input":"<!DOCTYPE a SYSTEM\"\u000A", +"output":["ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"\\u000B", +"input":"<!DOCTYPE a SYSTEM\"\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"\\u000C", +"input":"<!DOCTYPE a SYSTEM\"\u000C", +"output":["ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\" ", +"input":"<!DOCTYPE a SYSTEM\" ", +"output":["ParseError", ["DOCTYPE", "a", null, " ", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"!", +"input":"<!DOCTYPE a SYSTEM\"!", +"output":["ParseError", ["DOCTYPE", "a", null, "!", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"\"", +"input":"<!DOCTYPE a SYSTEM\"\"", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"#", +"input":"<!DOCTYPE a SYSTEM\"#", +"output":["ParseError", ["DOCTYPE", "a", null, "#", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"&", +"input":"<!DOCTYPE a SYSTEM\"&", +"output":["ParseError", ["DOCTYPE", "a", null, "&", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"'", +"input":"<!DOCTYPE a SYSTEM\"'", +"output":["ParseError", ["DOCTYPE", "a", null, "'", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"-", +"input":"<!DOCTYPE a SYSTEM\"-", +"output":["ParseError", ["DOCTYPE", "a", null, "-", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"/", +"input":"<!DOCTYPE a SYSTEM\"/", +"output":["ParseError", ["DOCTYPE", "a", null, "/", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"0", +"input":"<!DOCTYPE a SYSTEM\"0", +"output":["ParseError", ["DOCTYPE", "a", null, "0", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"1", +"input":"<!DOCTYPE a SYSTEM\"1", +"output":["ParseError", ["DOCTYPE", "a", null, "1", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"9", +"input":"<!DOCTYPE a SYSTEM\"9", +"output":["ParseError", ["DOCTYPE", "a", null, "9", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"<", +"input":"<!DOCTYPE a SYSTEM\"<", +"output":["ParseError", ["DOCTYPE", "a", null, "<", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"=", +"input":"<!DOCTYPE a SYSTEM\"=", +"output":["ParseError", ["DOCTYPE", "a", null, "=", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\">", +"input":"<!DOCTYPE a SYSTEM\">", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"?", +"input":"<!DOCTYPE a SYSTEM\"?", +"output":["ParseError", ["DOCTYPE", "a", null, "?", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"@", +"input":"<!DOCTYPE a SYSTEM\"@", +"output":["ParseError", ["DOCTYPE", "a", null, "@", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"A", +"input":"<!DOCTYPE a SYSTEM\"A", +"output":["ParseError", ["DOCTYPE", "a", null, "A", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"B", +"input":"<!DOCTYPE a SYSTEM\"B", +"output":["ParseError", ["DOCTYPE", "a", null, "B", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"Y", +"input":"<!DOCTYPE a SYSTEM\"Y", +"output":["ParseError", ["DOCTYPE", "a", null, "Y", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"Z", +"input":"<!DOCTYPE a SYSTEM\"Z", +"output":["ParseError", ["DOCTYPE", "a", null, "Z", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"`", +"input":"<!DOCTYPE a SYSTEM\"`", +"output":["ParseError", ["DOCTYPE", "a", null, "`", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"a", +"input":"<!DOCTYPE a SYSTEM\"a", +"output":["ParseError", ["DOCTYPE", "a", null, "a", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"b", +"input":"<!DOCTYPE a SYSTEM\"b", +"output":["ParseError", ["DOCTYPE", "a", null, "b", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"y", +"input":"<!DOCTYPE a SYSTEM\"y", +"output":["ParseError", ["DOCTYPE", "a", null, "y", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"z", +"input":"<!DOCTYPE a SYSTEM\"z", +"output":["ParseError", ["DOCTYPE", "a", null, "z", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"{", +"input":"<!DOCTYPE a SYSTEM\"{", +"output":["ParseError", ["DOCTYPE", "a", null, "{", false]]}, + +{"description":"<!DOCTYPE a SYSTEM\"\\uDBC0\\uDC00", +"input":"<!DOCTYPE a SYSTEM\"\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, + +{"description":"<!DOCTYPE a SYSTEM#", +"input":"<!DOCTYPE a SYSTEM#", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM&", +"input":"<!DOCTYPE a SYSTEM&", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM'", +"input":"<!DOCTYPE a SYSTEM'", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'\\u0000", +"input":"<!DOCTYPE a SYSTEM'\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'\\u0009", +"input":"<!DOCTYPE a SYSTEM'\u0009", +"output":["ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'\\u000A", +"input":"<!DOCTYPE a SYSTEM'\u000A", +"output":["ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'\\u000B", +"input":"<!DOCTYPE a SYSTEM'\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'\\u000C", +"input":"<!DOCTYPE a SYSTEM'\u000C", +"output":["ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, + +{"description":"<!DOCTYPE a SYSTEM' ", +"input":"<!DOCTYPE a SYSTEM' ", +"output":["ParseError", ["DOCTYPE", "a", null, " ", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'!", +"input":"<!DOCTYPE a SYSTEM'!", +"output":["ParseError", ["DOCTYPE", "a", null, "!", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'\"", +"input":"<!DOCTYPE a SYSTEM'\"", +"output":["ParseError", ["DOCTYPE", "a", null, "\"", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'&", +"input":"<!DOCTYPE a SYSTEM'&", +"output":["ParseError", ["DOCTYPE", "a", null, "&", false]]}, + +{"description":"<!DOCTYPE a SYSTEM''", +"input":"<!DOCTYPE a SYSTEM''", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM''\\u0000", +"input":"<!DOCTYPE a SYSTEM''\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''\\u0008", +"input":"<!DOCTYPE a SYSTEM''\u0008", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''\\u0009", +"input":"<!DOCTYPE a SYSTEM''\u0009", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM''\\u000A", +"input":"<!DOCTYPE a SYSTEM''\u000A", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM''\\u000B", +"input":"<!DOCTYPE a SYSTEM''\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''\\u000C", +"input":"<!DOCTYPE a SYSTEM''\u000C", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM''\\u000D", +"input":"<!DOCTYPE a SYSTEM''\u000D", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM''\\u001F", +"input":"<!DOCTYPE a SYSTEM''\u001F", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM'' ", +"input":"<!DOCTYPE a SYSTEM'' ", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM''!", +"input":"<!DOCTYPE a SYSTEM''!", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''\"", +"input":"<!DOCTYPE a SYSTEM''\"", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''&", +"input":"<!DOCTYPE a SYSTEM''&", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM'''", +"input":"<!DOCTYPE a SYSTEM'''", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''-", +"input":"<!DOCTYPE a SYSTEM''-", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''/", +"input":"<!DOCTYPE a SYSTEM''/", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''0", +"input":"<!DOCTYPE a SYSTEM''0", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''1", +"input":"<!DOCTYPE a SYSTEM''1", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''9", +"input":"<!DOCTYPE a SYSTEM''9", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''<", +"input":"<!DOCTYPE a SYSTEM''<", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''=", +"input":"<!DOCTYPE a SYSTEM''=", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''>", +"input":"<!DOCTYPE a SYSTEM''>", +"output":[["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''?", +"input":"<!DOCTYPE a SYSTEM''?", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''@", +"input":"<!DOCTYPE a SYSTEM''@", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''A", +"input":"<!DOCTYPE a SYSTEM''A", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''B", +"input":"<!DOCTYPE a SYSTEM''B", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''Y", +"input":"<!DOCTYPE a SYSTEM''Y", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''Z", +"input":"<!DOCTYPE a SYSTEM''Z", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''`", +"input":"<!DOCTYPE a SYSTEM''`", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''a", +"input":"<!DOCTYPE a SYSTEM''a", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''b", +"input":"<!DOCTYPE a SYSTEM''b", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''y", +"input":"<!DOCTYPE a SYSTEM''y", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''z", +"input":"<!DOCTYPE a SYSTEM''z", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''{", +"input":"<!DOCTYPE a SYSTEM''{", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM''\\uDBC0\\uDC00", +"input":"<!DOCTYPE a SYSTEM''\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPE a SYSTEM'(", +"input":"<!DOCTYPE a SYSTEM'(", +"output":["ParseError", ["DOCTYPE", "a", null, "(", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'-", +"input":"<!DOCTYPE a SYSTEM'-", +"output":["ParseError", ["DOCTYPE", "a", null, "-", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'/", +"input":"<!DOCTYPE a SYSTEM'/", +"output":["ParseError", ["DOCTYPE", "a", null, "/", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'0", +"input":"<!DOCTYPE a SYSTEM'0", +"output":["ParseError", ["DOCTYPE", "a", null, "0", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'1", +"input":"<!DOCTYPE a SYSTEM'1", +"output":["ParseError", ["DOCTYPE", "a", null, "1", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'9", +"input":"<!DOCTYPE a SYSTEM'9", +"output":["ParseError", ["DOCTYPE", "a", null, "9", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'<", +"input":"<!DOCTYPE a SYSTEM'<", +"output":["ParseError", ["DOCTYPE", "a", null, "<", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'=", +"input":"<!DOCTYPE a SYSTEM'=", +"output":["ParseError", ["DOCTYPE", "a", null, "=", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'>", +"input":"<!DOCTYPE a SYSTEM'>", +"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'?", +"input":"<!DOCTYPE a SYSTEM'?", +"output":["ParseError", ["DOCTYPE", "a", null, "?", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'@", +"input":"<!DOCTYPE a SYSTEM'@", +"output":["ParseError", ["DOCTYPE", "a", null, "@", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'A", +"input":"<!DOCTYPE a SYSTEM'A", +"output":["ParseError", ["DOCTYPE", "a", null, "A", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'B", +"input":"<!DOCTYPE a SYSTEM'B", +"output":["ParseError", ["DOCTYPE", "a", null, "B", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'Y", +"input":"<!DOCTYPE a SYSTEM'Y", +"output":["ParseError", ["DOCTYPE", "a", null, "Y", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'Z", +"input":"<!DOCTYPE a SYSTEM'Z", +"output":["ParseError", ["DOCTYPE", "a", null, "Z", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'`", +"input":"<!DOCTYPE a SYSTEM'`", +"output":["ParseError", ["DOCTYPE", "a", null, "`", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'a", +"input":"<!DOCTYPE a SYSTEM'a", +"output":["ParseError", ["DOCTYPE", "a", null, "a", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'b", +"input":"<!DOCTYPE a SYSTEM'b", +"output":["ParseError", ["DOCTYPE", "a", null, "b", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'y", +"input":"<!DOCTYPE a SYSTEM'y", +"output":["ParseError", ["DOCTYPE", "a", null, "y", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'z", +"input":"<!DOCTYPE a SYSTEM'z", +"output":["ParseError", ["DOCTYPE", "a", null, "z", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'{", +"input":"<!DOCTYPE a SYSTEM'{", +"output":["ParseError", ["DOCTYPE", "a", null, "{", false]]}, + +{"description":"<!DOCTYPE a SYSTEM'\\uDBC0\\uDC00", +"input":"<!DOCTYPE a SYSTEM'\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, + +{"description":"<!DOCTYPE a SYSTEM(", +"input":"<!DOCTYPE a SYSTEM(", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM-", +"input":"<!DOCTYPE a SYSTEM-", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM/", +"input":"<!DOCTYPE a SYSTEM/", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM0", +"input":"<!DOCTYPE a SYSTEM0", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM1", +"input":"<!DOCTYPE a SYSTEM1", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM9", +"input":"<!DOCTYPE a SYSTEM9", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM<", +"input":"<!DOCTYPE a SYSTEM<", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM=", +"input":"<!DOCTYPE a SYSTEM=", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM>", +"input":"<!DOCTYPE a SYSTEM>", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM?", +"input":"<!DOCTYPE a SYSTEM?", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM@", +"input":"<!DOCTYPE a SYSTEM@", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEMA", +"input":"<!DOCTYPE a SYSTEMA", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEMB", +"input":"<!DOCTYPE a SYSTEMB", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEMY", +"input":"<!DOCTYPE a SYSTEMY", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEMZ", +"input":"<!DOCTYPE a SYSTEMZ", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM`", +"input":"<!DOCTYPE a SYSTEM`", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEMa", +"input":"<!DOCTYPE a SYSTEMa", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEMb", +"input":"<!DOCTYPE a SYSTEMb", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEMy", +"input":"<!DOCTYPE a SYSTEMy", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEMz", +"input":"<!DOCTYPE a SYSTEMz", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM{", +"input":"<!DOCTYPE a SYSTEM{", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a SYSTEM\\uDBC0\\uDC00", +"input":"<!DOCTYPE a SYSTEM\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a Y", +"input":"<!DOCTYPE a Y", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a Z", +"input":"<!DOCTYPE a Z", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a `", +"input":"<!DOCTYPE a `", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a", +"input":"<!DOCTYPE a a", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a\\u0000", +"input":"<!DOCTYPE a a\u0000", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a\\u0009", +"input":"<!DOCTYPE a a\u0009", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a\\u000A", +"input":"<!DOCTYPE a a\u000A", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a\\u000B", +"input":"<!DOCTYPE a a\u000B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a\\u000C", +"input":"<!DOCTYPE a a\u000C", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a ", +"input":"<!DOCTYPE a a ", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a!", +"input":"<!DOCTYPE a a!", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a\"", +"input":"<!DOCTYPE a a\"", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a&", +"input":"<!DOCTYPE a a&", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a'", +"input":"<!DOCTYPE a a'", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a-", +"input":"<!DOCTYPE a a-", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a/", +"input":"<!DOCTYPE a a/", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a0", +"input":"<!DOCTYPE a a0", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a1", +"input":"<!DOCTYPE a a1", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a9", +"input":"<!DOCTYPE a a9", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a<", +"input":"<!DOCTYPE a a<", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a=", +"input":"<!DOCTYPE a a=", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a>", +"input":"<!DOCTYPE a a>", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a?", +"input":"<!DOCTYPE a a?", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a@", +"input":"<!DOCTYPE a a@", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a aA", +"input":"<!DOCTYPE a aA", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a aB", +"input":"<!DOCTYPE a aB", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a aY", +"input":"<!DOCTYPE a aY", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a aZ", +"input":"<!DOCTYPE a aZ", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a`", +"input":"<!DOCTYPE a a`", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a aa", +"input":"<!DOCTYPE a aa", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a ab", +"input":"<!DOCTYPE a ab", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a ay", +"input":"<!DOCTYPE a ay", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a az", +"input":"<!DOCTYPE a az", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a{", +"input":"<!DOCTYPE a a{", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a a\\uDBC0\\uDC00", +"input":"<!DOCTYPE a a\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a b", +"input":"<!DOCTYPE a b", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a y", +"input":"<!DOCTYPE a y", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a z", +"input":"<!DOCTYPE a z", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a {", +"input":"<!DOCTYPE a {", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a \\uDBC0\\uDC00", +"input":"<!DOCTYPE a \uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPE a!", +"input":"<!DOCTYPE a!", +"output":["ParseError", ["DOCTYPE", "a!", null, null, false]]}, + +{"description":"<!DOCTYPE a\"", +"input":"<!DOCTYPE a\"", +"output":["ParseError", ["DOCTYPE", "a\"", null, null, false]]}, + +{"description":"<!DOCTYPE a&", +"input":"<!DOCTYPE a&", +"output":["ParseError", ["DOCTYPE", "a&", null, null, false]]}, + +{"description":"<!DOCTYPE a'", +"input":"<!DOCTYPE a'", +"output":["ParseError", ["DOCTYPE", "a'", null, null, false]]}, + +{"description":"<!DOCTYPE a-", +"input":"<!DOCTYPE a-", +"output":["ParseError", ["DOCTYPE", "a-", null, null, false]]}, + +{"description":"<!DOCTYPE a/", +"input":"<!DOCTYPE a/", +"output":["ParseError", ["DOCTYPE", "a/", null, null, false]]}, + +{"description":"<!DOCTYPE a0", +"input":"<!DOCTYPE a0", +"output":["ParseError", ["DOCTYPE", "a0", null, null, false]]}, + +{"description":"<!DOCTYPE a1", +"input":"<!DOCTYPE a1", +"output":["ParseError", ["DOCTYPE", "a1", null, null, false]]}, + +{"description":"<!DOCTYPE a9", +"input":"<!DOCTYPE a9", +"output":["ParseError", ["DOCTYPE", "a9", null, null, false]]}, + +{"description":"<!DOCTYPE a<", +"input":"<!DOCTYPE a<", +"output":["ParseError", ["DOCTYPE", "a<", null, null, false]]}, + +{"description":"<!DOCTYPE a=", +"input":"<!DOCTYPE a=", +"output":["ParseError", ["DOCTYPE", "a=", null, null, false]]}, + +{"description":"<!DOCTYPE a>", +"input":"<!DOCTYPE a>", +"output":[["DOCTYPE", "a", null, null, true]]}, + +{"description":"<!DOCTYPE a?", +"input":"<!DOCTYPE a?", +"output":["ParseError", ["DOCTYPE", "a?", null, null, false]]}, + +{"description":"<!DOCTYPE a@", +"input":"<!DOCTYPE a@", +"output":["ParseError", ["DOCTYPE", "a@", null, null, false]]}, + +{"description":"<!DOCTYPE aA", +"input":"<!DOCTYPE aA", +"output":["ParseError", ["DOCTYPE", "aa", null, null, false]]}, + +{"description":"<!DOCTYPE aB", +"input":"<!DOCTYPE aB", +"output":["ParseError", ["DOCTYPE", "ab", null, null, false]]}, + +{"description":"<!DOCTYPE aY", +"input":"<!DOCTYPE aY", +"output":["ParseError", ["DOCTYPE", "ay", null, null, false]]}, + +{"description":"<!DOCTYPE aZ", +"input":"<!DOCTYPE aZ", +"output":["ParseError", ["DOCTYPE", "az", null, null, false]]}, + +{"description":"<!DOCTYPE a[", +"input":"<!DOCTYPE a[", +"output":["ParseError", ["DOCTYPE", "a[", null, null, false]]}, + +{"description":"<!DOCTYPE a`", +"input":"<!DOCTYPE a`", +"output":["ParseError", ["DOCTYPE", "a`", null, null, false]]}, + +{"description":"<!DOCTYPE aa", +"input":"<!DOCTYPE aa", +"output":["ParseError", ["DOCTYPE", "aa", null, null, false]]}, + +{"description":"<!DOCTYPE ab", +"input":"<!DOCTYPE ab", +"output":["ParseError", ["DOCTYPE", "ab", null, null, false]]}, + +{"description":"<!DOCTYPE ay", +"input":"<!DOCTYPE ay", +"output":["ParseError", ["DOCTYPE", "ay", null, null, false]]}, + +{"description":"<!DOCTYPE az", +"input":"<!DOCTYPE az", +"output":["ParseError", ["DOCTYPE", "az", null, null, false]]}, + +{"description":"<!DOCTYPE a{", +"input":"<!DOCTYPE a{", +"output":["ParseError", ["DOCTYPE", "a{", null, null, false]]}, + +{"description":"<!DOCTYPE a\\uDBC0\\uDC00", +"input":"<!DOCTYPE a\uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "a\uDBC0\uDC00", null, null, false]]}, + +{"description":"<!DOCTYPE b", +"input":"<!DOCTYPE b", +"output":["ParseError", ["DOCTYPE", "b", null, null, false]]}, + +{"description":"<!DOCTYPE y", +"input":"<!DOCTYPE y", +"output":["ParseError", ["DOCTYPE", "y", null, null, false]]}, + +{"description":"<!DOCTYPE z", +"input":"<!DOCTYPE z", +"output":["ParseError", ["DOCTYPE", "z", null, null, false]]}, + +{"description":"<!DOCTYPE {", +"input":"<!DOCTYPE {", +"output":["ParseError", ["DOCTYPE", "{", null, null, false]]}, + +{"description":"<!DOCTYPE \\uDBC0\\uDC00", +"input":"<!DOCTYPE \uDBC0\uDC00", +"output":["ParseError", ["DOCTYPE", "\uDBC0\uDC00", null, null, false]]}, + +{"description":"<!DOCTYPE!", +"input":"<!DOCTYPE!", +"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]}, + +{"description":"<!DOCTYPE\"", +"input":"<!DOCTYPE\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "\"", null, null, false]]}, + +{"description":"<!DOCTYPE&", +"input":"<!DOCTYPE&", +"output":["ParseError", "ParseError", ["DOCTYPE", "&", null, null, false]]}, + +{"description":"<!DOCTYPE'", +"input":"<!DOCTYPE'", +"output":["ParseError", "ParseError", ["DOCTYPE", "'", null, null, false]]}, + +{"description":"<!DOCTYPE-", +"input":"<!DOCTYPE-", +"output":["ParseError", "ParseError", ["DOCTYPE", "-", null, null, false]]}, + +{"description":"<!DOCTYPE/", +"input":"<!DOCTYPE/", +"output":["ParseError", "ParseError", ["DOCTYPE", "/", null, null, false]]}, + +{"description":"<!DOCTYPE0", +"input":"<!DOCTYPE0", +"output":["ParseError", "ParseError", ["DOCTYPE", "0", null, null, false]]}, + +{"description":"<!DOCTYPE1", +"input":"<!DOCTYPE1", +"output":["ParseError", "ParseError", ["DOCTYPE", "1", null, null, false]]}, + +{"description":"<!DOCTYPE9", +"input":"<!DOCTYPE9", +"output":["ParseError", "ParseError", ["DOCTYPE", "9", null, null, false]]}, + +{"description":"<!DOCTYPE<", +"input":"<!DOCTYPE<", +"output":["ParseError", "ParseError", ["DOCTYPE", "<", null, null, false]]}, + +{"description":"<!DOCTYPE=", +"input":"<!DOCTYPE=", +"output":["ParseError", "ParseError", ["DOCTYPE", "=", null, null, false]]}, + +{"description":"<!DOCTYPE>", +"input":"<!DOCTYPE>", +"output":["ParseError", "ParseError", ["DOCTYPE", "", null, null, false]]}, + +{"description":"<!DOCTYPE?", +"input":"<!DOCTYPE?", +"output":["ParseError", "ParseError", ["DOCTYPE", "?", null, null, false]]}, + +{"description":"<!DOCTYPE@", +"input":"<!DOCTYPE@", +"output":["ParseError", "ParseError", ["DOCTYPE", "@", null, null, false]]}, + +{"description":"<!DOCTYPEA", +"input":"<!DOCTYPEA", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEB", +"input":"<!DOCTYPEB", +"output":["ParseError", "ParseError", ["DOCTYPE", "b", null, null, false]]}, + +{"description":"<!DOCTYPEY", +"input":"<!DOCTYPEY", +"output":["ParseError", "ParseError", ["DOCTYPE", "y", null, null, false]]}, + +{"description":"<!DOCTYPEZ", +"input":"<!DOCTYPEZ", +"output":["ParseError", "ParseError", ["DOCTYPE", "z", null, null, false]]}, + +{"description":"<!DOCTYPE`", +"input":"<!DOCTYPE`", +"output":["ParseError", "ParseError", ["DOCTYPE", "`", null, null, false]]}, + +{"description":"<!DOCTYPEa", +"input":"<!DOCTYPEa", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa\\u0000", +"input":"<!DOCTYPEa\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\uFFFD", null, null, false]]}, + +{"description":"<!DOCTYPEa\\u0008", +"input":"<!DOCTYPEa\u0008", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\u0008", null, null, false]]}, + +{"description":"<!DOCTYPEa\\u0009", +"input":"<!DOCTYPEa\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa\\u000A", +"input":"<!DOCTYPEa\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa\\u000B", +"input":"<!DOCTYPEa\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\u000B", null, null, false]]}, + +{"description":"<!DOCTYPEa\\u000C", +"input":"<!DOCTYPEa\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa\\u000D", +"input":"<!DOCTYPEa\u000D", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa\\u001F", +"input":"<!DOCTYPEa\u001F", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\u001F", null, null, false]]}, + +{"description":"<!DOCTYPEa ", +"input":"<!DOCTYPEa ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \\u0000", +"input":"<!DOCTYPEa \u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \\u0008", +"input":"<!DOCTYPEa \u0008", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \\u0009", +"input":"<!DOCTYPEa \u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \\u000A", +"input":"<!DOCTYPEa \u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \\u000B", +"input":"<!DOCTYPEa \u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \\u000C", +"input":"<!DOCTYPEa \u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \\u000D", +"input":"<!DOCTYPEa \u000D", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \\u001F", +"input":"<!DOCTYPEa \u001F", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa ", +"input":"<!DOCTYPEa ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa !", +"input":"<!DOCTYPEa !", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \"", +"input":"<!DOCTYPEa \"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa &", +"input":"<!DOCTYPEa &", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa '", +"input":"<!DOCTYPEa '", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa -", +"input":"<!DOCTYPEa -", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa /", +"input":"<!DOCTYPEa /", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa 0", +"input":"<!DOCTYPEa 0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa 1", +"input":"<!DOCTYPEa 1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa 9", +"input":"<!DOCTYPEa 9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa <", +"input":"<!DOCTYPEa <", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa =", +"input":"<!DOCTYPEa =", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa >", +"input":"<!DOCTYPEa >", +"output":["ParseError", ["DOCTYPE", "a", null, null, true]]}, + +{"description":"<!DOCTYPEa ?", +"input":"<!DOCTYPEa ?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa @", +"input":"<!DOCTYPEa @", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa A", +"input":"<!DOCTYPEa A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa B", +"input":"<!DOCTYPEa B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC", +"input":"<!DOCTYPEa PUBLIC", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\\u0000", +"input":"<!DOCTYPEa PUBLIC\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\\u0008", +"input":"<!DOCTYPEa PUBLIC\u0008", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\\u0009", +"input":"<!DOCTYPEa PUBLIC\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\\u000A", +"input":"<!DOCTYPEa PUBLIC\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\\u000B", +"input":"<!DOCTYPEa PUBLIC\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\\u000C", +"input":"<!DOCTYPEa PUBLIC\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\\u000D", +"input":"<!DOCTYPEa PUBLIC\u000D", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\\u001F", +"input":"<!DOCTYPEa PUBLIC\u001F", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC ", +"input":"<!DOCTYPEa PUBLIC ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC!", +"input":"<!DOCTYPEa PUBLIC!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"", +"input":"<!DOCTYPEa PUBLIC\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"\\u0000", +"input":"<!DOCTYPEa PUBLIC\"\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"\\u0009", +"input":"<!DOCTYPEa PUBLIC\"\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"\\u000A", +"input":"<!DOCTYPEa PUBLIC\"\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"\\u000B", +"input":"<!DOCTYPEa PUBLIC\"\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"\\u000C", +"input":"<!DOCTYPEa PUBLIC\"\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\" ", +"input":"<!DOCTYPEa PUBLIC\" ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"!", +"input":"<!DOCTYPEa PUBLIC\"!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"\"", +"input":"<!DOCTYPEa PUBLIC\"\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"#", +"input":"<!DOCTYPEa PUBLIC\"#", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "#", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"&", +"input":"<!DOCTYPEa PUBLIC\"&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"'", +"input":"<!DOCTYPEa PUBLIC\"'", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "'", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"-", +"input":"<!DOCTYPEa PUBLIC\"-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"/", +"input":"<!DOCTYPEa PUBLIC\"/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"0", +"input":"<!DOCTYPEa PUBLIC\"0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"1", +"input":"<!DOCTYPEa PUBLIC\"1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"9", +"input":"<!DOCTYPEa PUBLIC\"9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"<", +"input":"<!DOCTYPEa PUBLIC\"<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"=", +"input":"<!DOCTYPEa PUBLIC\"=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\">", +"input":"<!DOCTYPEa PUBLIC\">", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"?", +"input":"<!DOCTYPEa PUBLIC\"?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"@", +"input":"<!DOCTYPEa PUBLIC\"@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"A", +"input":"<!DOCTYPEa PUBLIC\"A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"B", +"input":"<!DOCTYPEa PUBLIC\"B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"Y", +"input":"<!DOCTYPEa PUBLIC\"Y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"Z", +"input":"<!DOCTYPEa PUBLIC\"Z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"`", +"input":"<!DOCTYPEa PUBLIC\"`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"a", +"input":"<!DOCTYPEa PUBLIC\"a", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"b", +"input":"<!DOCTYPEa PUBLIC\"b", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"y", +"input":"<!DOCTYPEa PUBLIC\"y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"z", +"input":"<!DOCTYPEa PUBLIC\"z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"{", +"input":"<!DOCTYPEa PUBLIC\"{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\"\\uDBC0\\uDC00", +"input":"<!DOCTYPEa PUBLIC\"\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC#", +"input":"<!DOCTYPEa PUBLIC#", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC&", +"input":"<!DOCTYPEa PUBLIC&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'", +"input":"<!DOCTYPEa PUBLIC'", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'\\u0000", +"input":"<!DOCTYPEa PUBLIC'\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'\\u0009", +"input":"<!DOCTYPEa PUBLIC'\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'\\u000A", +"input":"<!DOCTYPEa PUBLIC'\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'\\u000B", +"input":"<!DOCTYPEa PUBLIC'\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'\\u000C", +"input":"<!DOCTYPEa PUBLIC'\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC' ", +"input":"<!DOCTYPEa PUBLIC' ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'!", +"input":"<!DOCTYPEa PUBLIC'!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'\"", +"input":"<!DOCTYPEa PUBLIC'\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\"", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'&", +"input":"<!DOCTYPEa PUBLIC'&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''", +"input":"<!DOCTYPEa PUBLIC''", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\\u0000", +"input":"<!DOCTYPEa PUBLIC''\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\\u0008", +"input":"<!DOCTYPEa PUBLIC''\u0008", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\\u0009", +"input":"<!DOCTYPEa PUBLIC''\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\\u000A", +"input":"<!DOCTYPEa PUBLIC''\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\\u000B", +"input":"<!DOCTYPEa PUBLIC''\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\\u000C", +"input":"<!DOCTYPEa PUBLIC''\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\\u000D", +"input":"<!DOCTYPEa PUBLIC''\u000D", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\\u001F", +"input":"<!DOCTYPEa PUBLIC''\u001F", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'' ", +"input":"<!DOCTYPEa PUBLIC'' ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''!", +"input":"<!DOCTYPEa PUBLIC''!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\"", +"input":"<!DOCTYPEa PUBLIC''\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, + +{"description":"<!DOCTYPEa PUBLIC''#", +"input":"<!DOCTYPEa PUBLIC''#", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''&", +"input":"<!DOCTYPEa PUBLIC''&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'''", +"input":"<!DOCTYPEa PUBLIC'''", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, + +{"description":"<!DOCTYPEa PUBLIC''(", +"input":"<!DOCTYPEa PUBLIC''(", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''-", +"input":"<!DOCTYPEa PUBLIC''-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''/", +"input":"<!DOCTYPEa PUBLIC''/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''0", +"input":"<!DOCTYPEa PUBLIC''0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''1", +"input":"<!DOCTYPEa PUBLIC''1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''9", +"input":"<!DOCTYPEa PUBLIC''9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''<", +"input":"<!DOCTYPEa PUBLIC''<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''=", +"input":"<!DOCTYPEa PUBLIC''=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''>", +"input":"<!DOCTYPEa PUBLIC''>", +"output":["ParseError", ["DOCTYPE", "a", "", null, true]]}, + +{"description":"<!DOCTYPEa PUBLIC''?", +"input":"<!DOCTYPEa PUBLIC''?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''@", +"input":"<!DOCTYPEa PUBLIC''@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''A", +"input":"<!DOCTYPEa PUBLIC''A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''B", +"input":"<!DOCTYPEa PUBLIC''B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''Y", +"input":"<!DOCTYPEa PUBLIC''Y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''Z", +"input":"<!DOCTYPEa PUBLIC''Z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''`", +"input":"<!DOCTYPEa PUBLIC''`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''a", +"input":"<!DOCTYPEa PUBLIC''a", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''b", +"input":"<!DOCTYPEa PUBLIC''b", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''y", +"input":"<!DOCTYPEa PUBLIC''y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''z", +"input":"<!DOCTYPEa PUBLIC''z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''{", +"input":"<!DOCTYPEa PUBLIC''{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC''\\uDBC0\\uDC00", +"input":"<!DOCTYPEa PUBLIC''\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'(", +"input":"<!DOCTYPEa PUBLIC'(", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "(", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'-", +"input":"<!DOCTYPEa PUBLIC'-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'/", +"input":"<!DOCTYPEa PUBLIC'/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'0", +"input":"<!DOCTYPEa PUBLIC'0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'1", +"input":"<!DOCTYPEa PUBLIC'1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'9", +"input":"<!DOCTYPEa PUBLIC'9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'<", +"input":"<!DOCTYPEa PUBLIC'<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'=", +"input":"<!DOCTYPEa PUBLIC'=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'>", +"input":"<!DOCTYPEa PUBLIC'>", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'?", +"input":"<!DOCTYPEa PUBLIC'?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'@", +"input":"<!DOCTYPEa PUBLIC'@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'A", +"input":"<!DOCTYPEa PUBLIC'A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'B", +"input":"<!DOCTYPEa PUBLIC'B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'Y", +"input":"<!DOCTYPEa PUBLIC'Y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'Z", +"input":"<!DOCTYPEa PUBLIC'Z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'`", +"input":"<!DOCTYPEa PUBLIC'`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'a", +"input":"<!DOCTYPEa PUBLIC'a", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'b", +"input":"<!DOCTYPEa PUBLIC'b", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'y", +"input":"<!DOCTYPEa PUBLIC'y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'z", +"input":"<!DOCTYPEa PUBLIC'z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'{", +"input":"<!DOCTYPEa PUBLIC'{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC'\\uDBC0\\uDC00", +"input":"<!DOCTYPEa PUBLIC'\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC(", +"input":"<!DOCTYPEa PUBLIC(", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC-", +"input":"<!DOCTYPEa PUBLIC-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC/", +"input":"<!DOCTYPEa PUBLIC/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC0", +"input":"<!DOCTYPEa PUBLIC0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC1", +"input":"<!DOCTYPEa PUBLIC1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC9", +"input":"<!DOCTYPEa PUBLIC9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC<", +"input":"<!DOCTYPEa PUBLIC<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC=", +"input":"<!DOCTYPEa PUBLIC=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC>", +"input":"<!DOCTYPEa PUBLIC>", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC?", +"input":"<!DOCTYPEa PUBLIC?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC@", +"input":"<!DOCTYPEa PUBLIC@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLICA", +"input":"<!DOCTYPEa PUBLICA", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLICB", +"input":"<!DOCTYPEa PUBLICB", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLICY", +"input":"<!DOCTYPEa PUBLICY", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLICZ", +"input":"<!DOCTYPEa PUBLICZ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC`", +"input":"<!DOCTYPEa PUBLIC`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLICa", +"input":"<!DOCTYPEa PUBLICa", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLICb", +"input":"<!DOCTYPEa PUBLICb", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLICy", +"input":"<!DOCTYPEa PUBLICy", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLICz", +"input":"<!DOCTYPEa PUBLICz", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC{", +"input":"<!DOCTYPEa PUBLIC{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa PUBLIC\\uDBC0\\uDC00", +"input":"<!DOCTYPEa PUBLIC\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM", +"input":"<!DOCTYPEa SYSTEM", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\\u0000", +"input":"<!DOCTYPEa SYSTEM\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\\u0008", +"input":"<!DOCTYPEa SYSTEM\u0008", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\\u0009", +"input":"<!DOCTYPEa SYSTEM\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\\u000A", +"input":"<!DOCTYPEa SYSTEM\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\\u000B", +"input":"<!DOCTYPEa SYSTEM\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\\u000C", +"input":"<!DOCTYPEa SYSTEM\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\\u000D", +"input":"<!DOCTYPEa SYSTEM\u000D", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\\u001F", +"input":"<!DOCTYPEa SYSTEM\u001F", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM ", +"input":"<!DOCTYPEa SYSTEM ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM!", +"input":"<!DOCTYPEa SYSTEM!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"", +"input":"<!DOCTYPEa SYSTEM\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"\\u0000", +"input":"<!DOCTYPEa SYSTEM\"\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"\\u0009", +"input":"<!DOCTYPEa SYSTEM\"\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"\\u000A", +"input":"<!DOCTYPEa SYSTEM\"\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"\\u000B", +"input":"<!DOCTYPEa SYSTEM\"\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"\\u000C", +"input":"<!DOCTYPEa SYSTEM\"\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\" ", +"input":"<!DOCTYPEa SYSTEM\" ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"!", +"input":"<!DOCTYPEa SYSTEM\"!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"\"", +"input":"<!DOCTYPEa SYSTEM\"\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"#", +"input":"<!DOCTYPEa SYSTEM\"#", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "#", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"&", +"input":"<!DOCTYPEa SYSTEM\"&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"'", +"input":"<!DOCTYPEa SYSTEM\"'", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "'", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"-", +"input":"<!DOCTYPEa SYSTEM\"-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"/", +"input":"<!DOCTYPEa SYSTEM\"/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"0", +"input":"<!DOCTYPEa SYSTEM\"0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"1", +"input":"<!DOCTYPEa SYSTEM\"1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"9", +"input":"<!DOCTYPEa SYSTEM\"9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"<", +"input":"<!DOCTYPEa SYSTEM\"<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"=", +"input":"<!DOCTYPEa SYSTEM\"=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\">", +"input":"<!DOCTYPEa SYSTEM\">", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"?", +"input":"<!DOCTYPEa SYSTEM\"?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"@", +"input":"<!DOCTYPEa SYSTEM\"@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"A", +"input":"<!DOCTYPEa SYSTEM\"A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"B", +"input":"<!DOCTYPEa SYSTEM\"B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"Y", +"input":"<!DOCTYPEa SYSTEM\"Y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"Z", +"input":"<!DOCTYPEa SYSTEM\"Z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"`", +"input":"<!DOCTYPEa SYSTEM\"`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"a", +"input":"<!DOCTYPEa SYSTEM\"a", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"b", +"input":"<!DOCTYPEa SYSTEM\"b", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"y", +"input":"<!DOCTYPEa SYSTEM\"y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"z", +"input":"<!DOCTYPEa SYSTEM\"z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"{", +"input":"<!DOCTYPEa SYSTEM\"{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, + +{"description":"<!DOCTYPEa SYSTEM\"\\uDBC0\\uDC00", +"input":"<!DOCTYPEa SYSTEM\"\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, + +{"description":"<!DOCTYPEa SYSTEM#", +"input":"<!DOCTYPEa SYSTEM#", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM&", +"input":"<!DOCTYPEa SYSTEM&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM'", +"input":"<!DOCTYPEa SYSTEM'", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'\\u0000", +"input":"<!DOCTYPEa SYSTEM'\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'\\u0009", +"input":"<!DOCTYPEa SYSTEM'\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'\\u000A", +"input":"<!DOCTYPEa SYSTEM'\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'\\u000B", +"input":"<!DOCTYPEa SYSTEM'\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'\\u000C", +"input":"<!DOCTYPEa SYSTEM'\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, + +{"description":"<!DOCTYPEa SYSTEM' ", +"input":"<!DOCTYPEa SYSTEM' ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'!", +"input":"<!DOCTYPEa SYSTEM'!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'\"", +"input":"<!DOCTYPEa SYSTEM'\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\"", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'&", +"input":"<!DOCTYPEa SYSTEM'&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, + +{"description":"<!DOCTYPEa SYSTEM''", +"input":"<!DOCTYPEa SYSTEM''", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM''\\u0000", +"input":"<!DOCTYPEa SYSTEM''\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''\\u0008", +"input":"<!DOCTYPEa SYSTEM''\u0008", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''\\u0009", +"input":"<!DOCTYPEa SYSTEM''\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM''\\u000A", +"input":"<!DOCTYPEa SYSTEM''\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM''\\u000B", +"input":"<!DOCTYPEa SYSTEM''\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''\\u000C", +"input":"<!DOCTYPEa SYSTEM''\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM''\\u000D", +"input":"<!DOCTYPEa SYSTEM''\u000D", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM''\\u001F", +"input":"<!DOCTYPEa SYSTEM''\u001F", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM'' ", +"input":"<!DOCTYPEa SYSTEM'' ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM''!", +"input":"<!DOCTYPEa SYSTEM''!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''\"", +"input":"<!DOCTYPEa SYSTEM''\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''&", +"input":"<!DOCTYPEa SYSTEM''&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM'''", +"input":"<!DOCTYPEa SYSTEM'''", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''-", +"input":"<!DOCTYPEa SYSTEM''-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''/", +"input":"<!DOCTYPEa SYSTEM''/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''0", +"input":"<!DOCTYPEa SYSTEM''0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''1", +"input":"<!DOCTYPEa SYSTEM''1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''9", +"input":"<!DOCTYPEa SYSTEM''9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''<", +"input":"<!DOCTYPEa SYSTEM''<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''=", +"input":"<!DOCTYPEa SYSTEM''=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''>", +"input":"<!DOCTYPEa SYSTEM''>", +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''?", +"input":"<!DOCTYPEa SYSTEM''?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''@", +"input":"<!DOCTYPEa SYSTEM''@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''A", +"input":"<!DOCTYPEa SYSTEM''A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''B", +"input":"<!DOCTYPEa SYSTEM''B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''Y", +"input":"<!DOCTYPEa SYSTEM''Y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''Z", +"input":"<!DOCTYPEa SYSTEM''Z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''`", +"input":"<!DOCTYPEa SYSTEM''`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''a", +"input":"<!DOCTYPEa SYSTEM''a", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''b", +"input":"<!DOCTYPEa SYSTEM''b", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''y", +"input":"<!DOCTYPEa SYSTEM''y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''z", +"input":"<!DOCTYPEa SYSTEM''z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''{", +"input":"<!DOCTYPEa SYSTEM''{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM''\\uDBC0\\uDC00", +"input":"<!DOCTYPEa SYSTEM''\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, + +{"description":"<!DOCTYPEa SYSTEM'(", +"input":"<!DOCTYPEa SYSTEM'(", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "(", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'-", +"input":"<!DOCTYPEa SYSTEM'-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'/", +"input":"<!DOCTYPEa SYSTEM'/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'0", +"input":"<!DOCTYPEa SYSTEM'0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'1", +"input":"<!DOCTYPEa SYSTEM'1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'9", +"input":"<!DOCTYPEa SYSTEM'9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'<", +"input":"<!DOCTYPEa SYSTEM'<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'=", +"input":"<!DOCTYPEa SYSTEM'=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'>", +"input":"<!DOCTYPEa SYSTEM'>", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'?", +"input":"<!DOCTYPEa SYSTEM'?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'@", +"input":"<!DOCTYPEa SYSTEM'@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'A", +"input":"<!DOCTYPEa SYSTEM'A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'B", +"input":"<!DOCTYPEa SYSTEM'B", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'Y", +"input":"<!DOCTYPEa SYSTEM'Y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'Z", +"input":"<!DOCTYPEa SYSTEM'Z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'`", +"input":"<!DOCTYPEa SYSTEM'`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'a", +"input":"<!DOCTYPEa SYSTEM'a", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'b", +"input":"<!DOCTYPEa SYSTEM'b", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'y", +"input":"<!DOCTYPEa SYSTEM'y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'z", +"input":"<!DOCTYPEa SYSTEM'z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'{", +"input":"<!DOCTYPEa SYSTEM'{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, + +{"description":"<!DOCTYPEa SYSTEM'\\uDBC0\\uDC00", +"input":"<!DOCTYPEa SYSTEM'\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, + +{"description":"<!DOCTYPEa SYSTEM(", +"input":"<!DOCTYPEa SYSTEM(", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM-", +"input":"<!DOCTYPEa SYSTEM-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM/", +"input":"<!DOCTYPEa SYSTEM/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM0", +"input":"<!DOCTYPEa SYSTEM0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM1", +"input":"<!DOCTYPEa SYSTEM1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM9", +"input":"<!DOCTYPEa SYSTEM9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM<", +"input":"<!DOCTYPEa SYSTEM<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM=", +"input":"<!DOCTYPEa SYSTEM=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM>", +"input":"<!DOCTYPEa SYSTEM>", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM?", +"input":"<!DOCTYPEa SYSTEM?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM@", +"input":"<!DOCTYPEa SYSTEM@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEMA", +"input":"<!DOCTYPEa SYSTEMA", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEMB", +"input":"<!DOCTYPEa SYSTEMB", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEMY", +"input":"<!DOCTYPEa SYSTEMY", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEMZ", +"input":"<!DOCTYPEa SYSTEMZ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM`", +"input":"<!DOCTYPEa SYSTEM`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEMa", +"input":"<!DOCTYPEa SYSTEMa", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEMb", +"input":"<!DOCTYPEa SYSTEMb", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEMy", +"input":"<!DOCTYPEa SYSTEMy", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEMz", +"input":"<!DOCTYPEa SYSTEMz", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM{", +"input":"<!DOCTYPEa SYSTEM{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa SYSTEM\\uDBC0\\uDC00", +"input":"<!DOCTYPEa SYSTEM\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa Y", +"input":"<!DOCTYPEa Y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa Z", +"input":"<!DOCTYPEa Z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa `", +"input":"<!DOCTYPEa `", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a", +"input":"<!DOCTYPEa a", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a\\u0000", +"input":"<!DOCTYPEa a\u0000", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a\\u0009", +"input":"<!DOCTYPEa a\u0009", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a\\u000A", +"input":"<!DOCTYPEa a\u000A", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a\\u000B", +"input":"<!DOCTYPEa a\u000B", +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a\\u000C", +"input":"<!DOCTYPEa a\u000C", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a ", +"input":"<!DOCTYPEa a ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a!", +"input":"<!DOCTYPEa a!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a\"", +"input":"<!DOCTYPEa a\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a&", +"input":"<!DOCTYPEa a&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a'", +"input":"<!DOCTYPEa a'", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a-", +"input":"<!DOCTYPEa a-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a/", +"input":"<!DOCTYPEa a/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a0", +"input":"<!DOCTYPEa a0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a1", +"input":"<!DOCTYPEa a1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a9", +"input":"<!DOCTYPEa a9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a<", +"input":"<!DOCTYPEa a<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a=", +"input":"<!DOCTYPEa a=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a>", +"input":"<!DOCTYPEa a>", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a?", +"input":"<!DOCTYPEa a?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a@", +"input":"<!DOCTYPEa a@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa aA", +"input":"<!DOCTYPEa aA", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa aB", +"input":"<!DOCTYPEa aB", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa aY", +"input":"<!DOCTYPEa aY", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa aZ", +"input":"<!DOCTYPEa aZ", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a`", +"input":"<!DOCTYPEa a`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa aa", +"input":"<!DOCTYPEa aa", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa ab", +"input":"<!DOCTYPEa ab", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa ay", +"input":"<!DOCTYPEa ay", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa az", +"input":"<!DOCTYPEa az", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a{", +"input":"<!DOCTYPEa a{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa a\\uDBC0\\uDC00", +"input":"<!DOCTYPEa a\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa b", +"input":"<!DOCTYPEa b", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa y", +"input":"<!DOCTYPEa y", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa z", +"input":"<!DOCTYPEa z", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa {", +"input":"<!DOCTYPEa {", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa \\uDBC0\\uDC00", +"input":"<!DOCTYPEa \uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, + +{"description":"<!DOCTYPEa!", +"input":"<!DOCTYPEa!", +"output":["ParseError", "ParseError", ["DOCTYPE", "a!", null, null, false]]}, + +{"description":"<!DOCTYPEa\"", +"input":"<!DOCTYPEa\"", +"output":["ParseError", "ParseError", ["DOCTYPE", "a\"", null, null, false]]}, + +{"description":"<!DOCTYPEa&", +"input":"<!DOCTYPEa&", +"output":["ParseError", "ParseError", ["DOCTYPE", "a&", null, null, false]]}, + +{"description":"<!DOCTYPEa'", +"input":"<!DOCTYPEa'", +"output":["ParseError", "ParseError", ["DOCTYPE", "a'", null, null, false]]}, + +{"description":"<!DOCTYPEa-", +"input":"<!DOCTYPEa-", +"output":["ParseError", "ParseError", ["DOCTYPE", "a-", null, null, false]]}, + +{"description":"<!DOCTYPEa/", +"input":"<!DOCTYPEa/", +"output":["ParseError", "ParseError", ["DOCTYPE", "a/", null, null, false]]}, + +{"description":"<!DOCTYPEa0", +"input":"<!DOCTYPEa0", +"output":["ParseError", "ParseError", ["DOCTYPE", "a0", null, null, false]]}, + +{"description":"<!DOCTYPEa1", +"input":"<!DOCTYPEa1", +"output":["ParseError", "ParseError", ["DOCTYPE", "a1", null, null, false]]}, + +{"description":"<!DOCTYPEa9", +"input":"<!DOCTYPEa9", +"output":["ParseError", "ParseError", ["DOCTYPE", "a9", null, null, false]]}, + +{"description":"<!DOCTYPEa<", +"input":"<!DOCTYPEa<", +"output":["ParseError", "ParseError", ["DOCTYPE", "a<", null, null, false]]}, + +{"description":"<!DOCTYPEa=", +"input":"<!DOCTYPEa=", +"output":["ParseError", "ParseError", ["DOCTYPE", "a=", null, null, false]]}, + +{"description":"<!DOCTYPEa>", +"input":"<!DOCTYPEa>", +"output":["ParseError", ["DOCTYPE", "a", null, null, true]]}, + +{"description":"<!DOCTYPEa?", +"input":"<!DOCTYPEa?", +"output":["ParseError", "ParseError", ["DOCTYPE", "a?", null, null, false]]}, + +{"description":"<!DOCTYPEa@", +"input":"<!DOCTYPEa@", +"output":["ParseError", "ParseError", ["DOCTYPE", "a@", null, null, false]]}, + +{"description":"<!DOCTYPEaA", +"input":"<!DOCTYPEaA", +"output":["ParseError", "ParseError", ["DOCTYPE", "aa", null, null, false]]}, + +{"description":"<!DOCTYPEaB", +"input":"<!DOCTYPEaB", +"output":["ParseError", "ParseError", ["DOCTYPE", "ab", null, null, false]]}, + +{"description":"<!DOCTYPEaY", +"input":"<!DOCTYPEaY", +"output":["ParseError", "ParseError", ["DOCTYPE", "ay", null, null, false]]}, + +{"description":"<!DOCTYPEaZ", +"input":"<!DOCTYPEaZ", +"output":["ParseError", "ParseError", ["DOCTYPE", "az", null, null, false]]}, + +{"description":"<!DOCTYPEa[", +"input":"<!DOCTYPEa[", +"output":["ParseError", "ParseError", ["DOCTYPE", "a[", null, null, false]]}, + +{"description":"<!DOCTYPEa`", +"input":"<!DOCTYPEa`", +"output":["ParseError", "ParseError", ["DOCTYPE", "a`", null, null, false]]}, + +{"description":"<!DOCTYPEaa", +"input":"<!DOCTYPEaa", +"output":["ParseError", "ParseError", ["DOCTYPE", "aa", null, null, false]]}, + +{"description":"<!DOCTYPEab", +"input":"<!DOCTYPEab", +"output":["ParseError", "ParseError", ["DOCTYPE", "ab", null, null, false]]}, + +{"description":"<!DOCTYPEay", +"input":"<!DOCTYPEay", +"output":["ParseError", "ParseError", ["DOCTYPE", "ay", null, null, false]]}, + +{"description":"<!DOCTYPEaz", +"input":"<!DOCTYPEaz", +"output":["ParseError", "ParseError", ["DOCTYPE", "az", null, null, false]]}, + +{"description":"<!DOCTYPEa{", +"input":"<!DOCTYPEa{", +"output":["ParseError", "ParseError", ["DOCTYPE", "a{", null, null, false]]}, + +{"description":"<!DOCTYPEa\\uDBC0\\uDC00", +"input":"<!DOCTYPEa\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "a\uDBC0\uDC00", null, null, false]]}, + +{"description":"<!DOCTYPEb", +"input":"<!DOCTYPEb", +"output":["ParseError", "ParseError", ["DOCTYPE", "b", null, null, false]]}, + +{"description":"<!DOCTYPEy", +"input":"<!DOCTYPEy", +"output":["ParseError", "ParseError", ["DOCTYPE", "y", null, null, false]]}, + +{"description":"<!DOCTYPEz", +"input":"<!DOCTYPEz", +"output":["ParseError", "ParseError", ["DOCTYPE", "z", null, null, false]]}, + +{"description":"<!DOCTYPE{", +"input":"<!DOCTYPE{", +"output":["ParseError", "ParseError", ["DOCTYPE", "{", null, null, false]]}, + +{"description":"<!DOCTYPE\\uDBC0\\uDC00", +"input":"<!DOCTYPE\uDBC0\uDC00", +"output":["ParseError", "ParseError", ["DOCTYPE", "\uDBC0\uDC00", null, null, false]]}, + +{"description":"<!Y", +"input":"<!Y", +"output":["ParseError", ["Comment", "Y"]]}, + +{"description":"<!Z", +"input":"<!Z", +"output":["ParseError", ["Comment", "Z"]]}, + +{"description":"<!`", +"input":"<!`", +"output":["ParseError", ["Comment", "`"]]}, + +{"description":"<!a", +"input":"<!a", +"output":["ParseError", ["Comment", "a"]]}, + +{"description":"<!b", +"input":"<!b", +"output":["ParseError", ["Comment", "b"]]}, + +{"description":"<!y", +"input":"<!y", +"output":["ParseError", ["Comment", "y"]]}, + +{"description":"<!z", +"input":"<!z", +"output":["ParseError", ["Comment", "z"]]}, + +{"description":"<!{", +"input":"<!{", +"output":["ParseError", ["Comment", "{"]]}, + +{"description":"<!\\uDBC0\\uDC00", +"input":"<!\uDBC0\uDC00", +"output":["ParseError", ["Comment", "\uDBC0\uDC00"]]}, + +{"description":"<\"", +"input":"<\"", +"output":["ParseError", ["Character", "<\""]]}, + +{"description":"<&", +"input":"<&", +"output":["ParseError", ["Character", "<&"]]}, + +{"description":"<'", +"input":"<'", +"output":["ParseError", ["Character", "<'"]]}, + +{"description":"<-", +"input":"<-", +"output":["ParseError", ["Character", "<-"]]}, + +{"description":"<.", +"input":"<.", +"output":["ParseError", ["Character", "<."]]}, + +{"description":"</", +"input":"</", +"output":["ParseError", ["Character", "</"]]}, + +{"description":"</\\u0000", +"input":"</\u0000", +"output":["ParseError", "ParseError", ["Comment", "\uFFFD"]]}, + +{"description":"</\\u0009", +"input":"</\u0009", +"output":["ParseError", ["Comment", "\u0009"]]}, + +{"description":"</\\u000A", +"input":"</\u000A", +"output":["ParseError", ["Comment", "\u000A"]]}, + +{"description":"</\\u000B", +"input":"</\u000B", +"output":["ParseError", "ParseError", ["Comment", "\u000B"]]}, + +{"description":"</\\u000C", +"input":"</\u000C", +"output":["ParseError", ["Comment", "\u000C"]]}, + +{"description":"</ ", +"input":"</ ", +"output":["ParseError", ["Comment", " "]]}, + +{"description":"</!", +"input":"</!", +"output":["ParseError", ["Comment", "!"]]}, + +{"description":"</\"", +"input":"</\"", +"output":["ParseError", ["Comment", "\""]]}, + +{"description":"</&", +"input":"</&", +"output":["ParseError", ["Comment", "&"]]}, + +{"description":"</'", +"input":"</'", +"output":["ParseError", ["Comment", "'"]]}, + +{"description":"</-", +"input":"</-", +"output":["ParseError", ["Comment", "-"]]}, + +{"description":"<//", +"input":"<//", +"output":["ParseError", ["Comment", "/"]]}, + +{"description":"</0", +"input":"</0", +"output":["ParseError", ["Comment", "0"]]}, + +{"description":"</1", +"input":"</1", +"output":["ParseError", ["Comment", "1"]]}, + +{"description":"</9", +"input":"</9", +"output":["ParseError", ["Comment", "9"]]}, + +{"description":"</<", +"input":"</<", +"output":["ParseError", ["Comment", "<"]]}, + +{"description":"</=", +"input":"</=", +"output":["ParseError", ["Comment", "="]]}, + +{"description":"</>", +"input":"</>", +"output":["ParseError"]}, + +{"description":"</?", +"input":"</?", +"output":["ParseError", ["Comment", "?"]]}, + +{"description":"</@", +"input":"</@", +"output":["ParseError", ["Comment", "@"]]}, + +{"description":"</A>", +"input":"</A>", +"output":[["EndTag", "a"]]}, + +{"description":"</B>", +"input":"</B>", +"output":[["EndTag", "b"]]}, + +{"description":"</Y>", +"input":"</Y>", +"output":[["EndTag", "y"]]}, + +{"description":"</Z>", +"input":"</Z>", +"output":[["EndTag", "z"]]}, + +{"description":"</[", +"input":"</[", +"output":["ParseError", ["Comment", "["]]}, + +{"description":"</`", +"input":"</`", +"output":["ParseError", ["Comment", "`"]]}, + +{"description":"</a>", +"input":"</a>", +"output":[["EndTag", "a"]]}, + +{"description":"</b>", +"input":"</b>", +"output":[["EndTag", "b"]]}, + +{"description":"</y>", +"input":"</y>", +"output":[["EndTag", "y"]]}, + +{"description":"</z>", +"input":"</z>", +"output":[["EndTag", "z"]]}, + +{"description":"</{", +"input":"</{", +"output":["ParseError", ["Comment", "{"]]}, + +{"description":"</\\uDBC0\\uDC00", +"input":"</\uDBC0\uDC00", +"output":["ParseError", ["Comment", "\uDBC0\uDC00"]]}, + +{"description":"<0", +"input":"<0", +"output":["ParseError", ["Character", "<0"]]}, + +{"description":"<1", +"input":"<1", +"output":["ParseError", ["Character", "<1"]]}, + +{"description":"<9", +"input":"<9", +"output":["ParseError", ["Character", "<9"]]}, + +{"description":"<<", +"input":"<<", +"output":["ParseError", ["Character", "<"], "ParseError", ["Character", "<"]]}, + +{"description":"<=", +"input":"<=", +"output":["ParseError", ["Character", "<="]]}, + +{"description":"<>", +"input":"<>", +"output":["ParseError", ["Character", "<>"]]}, + +{"description":"<?", +"input":"<?", +"output":["ParseError", ["Comment", "?"]]}, + +{"description":"<?\\u0000", +"input":"<?\u0000", +"output":["ParseError", "ParseError", ["Comment", "?\uFFFD"]]}, + +{"description":"<?\\u0009", +"input":"<?\u0009", +"output":["ParseError", ["Comment", "?\u0009"]]}, + +{"description":"<?\\u000A", +"input":"<?\u000A", +"output":["ParseError", ["Comment", "?\u000A"]]}, + +{"description":"<?\\u000B", +"input":"<?\u000B", +"output":["ParseError", "ParseError", ["Comment", "?\u000B"]]}, + +{"description":"<?\\u000C", +"input":"<?\u000C", +"output":["ParseError", ["Comment", "?\u000C"]]}, + +{"description":"<? ", +"input":"<? ", +"output":["ParseError", ["Comment", "? "]]}, + +{"description":"<?!", +"input":"<?!", +"output":["ParseError", ["Comment", "?!"]]}, + +{"description":"<?\"", +"input":"<?\"", +"output":["ParseError", ["Comment", "?\""]]}, + +{"description":"<?&", +"input":"<?&", +"output":["ParseError", ["Comment", "?&"]]}, + +{"description":"<?'", +"input":"<?'", +"output":["ParseError", ["Comment", "?'"]]}, + +{"description":"<?-", +"input":"<?-", +"output":["ParseError", ["Comment", "?-"]]}, + +{"description":"<?/", +"input":"<?/", +"output":["ParseError", ["Comment", "?/"]]}, + +{"description":"<?0", +"input":"<?0", +"output":["ParseError", ["Comment", "?0"]]}, + +{"description":"<?1", +"input":"<?1", +"output":["ParseError", ["Comment", "?1"]]}, + +{"description":"<?9", +"input":"<?9", +"output":["ParseError", ["Comment", "?9"]]}, + +{"description":"<?<", +"input":"<?<", +"output":["ParseError", ["Comment", "?<"]]}, + +{"description":"<?=", +"input":"<?=", +"output":["ParseError", ["Comment", "?="]]}, + +{"description":"<?>", +"input":"<?>", +"output":["ParseError", ["Comment", "?"]]}, + +{"description":"<??", +"input":"<??", +"output":["ParseError", ["Comment", "??"]]}, + +{"description":"<?@", +"input":"<?@", +"output":["ParseError", ["Comment", "?@"]]}, + +{"description":"<?A", +"input":"<?A", +"output":["ParseError", ["Comment", "?A"]]}, + +{"description":"<?B", +"input":"<?B", +"output":["ParseError", ["Comment", "?B"]]}, + +{"description":"<?Y", +"input":"<?Y", +"output":["ParseError", ["Comment", "?Y"]]}, + +{"description":"<?Z", +"input":"<?Z", +"output":["ParseError", ["Comment", "?Z"]]}, + +{"description":"<?`", +"input":"<?`", +"output":["ParseError", ["Comment", "?`"]]}, + +{"description":"<?a", +"input":"<?a", +"output":["ParseError", ["Comment", "?a"]]}, + +{"description":"<?b", +"input":"<?b", +"output":["ParseError", ["Comment", "?b"]]}, + +{"description":"<?y", +"input":"<?y", +"output":["ParseError", ["Comment", "?y"]]}, + +{"description":"<?z", +"input":"<?z", +"output":["ParseError", ["Comment", "?z"]]}, + +{"description":"<?{", +"input":"<?{", +"output":["ParseError", ["Comment", "?{"]]}, + +{"description":"<?\\uDBC0\\uDC00", +"input":"<?\uDBC0\uDC00", +"output":["ParseError", ["Comment", "?\uDBC0\uDC00"]]}, + +{"description":"<@", +"input":"<@", +"output":["ParseError", ["Character", "<@"]]}, + +{"description":"<A>", +"input":"<A>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<B>", +"input":"<B>", +"output":[["StartTag", "b", {}]]}, + +{"description":"<Y>", +"input":"<Y>", +"output":[["StartTag", "y", {}]]}, + +{"description":"<Z>", +"input":"<Z>", +"output":[["StartTag", "z", {}]]}, + +{"description":"<[", +"input":"<[", +"output":["ParseError", ["Character", "<["]]}, + +{"description":"<`", +"input":"<`", +"output":["ParseError", ["Character", "<`"]]}, + +{"description":"<a>", +"input":"<a>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a\\u0000>", +"input":"<a\u0000>", +"output":["ParseError", ["StartTag", "a\uFFFD", {}]]}, + +{"description":"<a\\u0008>", +"input":"<a\u0008>", +"output":["ParseError", ["StartTag", "a\u0008", {}]]}, + +{"description":"<a\\u0009>", +"input":"<a\u0009>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a\\u000A>", +"input":"<a\u000A>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a\\u000B>", +"input":"<a\u000B>", +"output":["ParseError", ["StartTag", "a\u000B", {}]]}, + +{"description":"<a\\u000C>", +"input":"<a\u000C>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a\\u000D>", +"input":"<a\u000D>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a\\u001F>", +"input":"<a\u001F>", +"output":["ParseError", ["StartTag", "a\u001F", {}]]}, + +{"description":"<a >", +"input":"<a >", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a \\u0000>", +"input":"<a \u0000>", +"output":["ParseError", ["StartTag", "a", {"\uFFFD":""}]]}, + +{"description":"<a \\u0008>", +"input":"<a \u0008>", +"output":["ParseError", ["StartTag", "a", {"\u0008":""}]]}, + +{"description":"<a \\u0009>", +"input":"<a \u0009>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a \\u000A>", +"input":"<a \u000A>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a \\u000B>", +"input":"<a \u000B>", +"output":["ParseError", ["StartTag", "a", {"\u000B":""}]]}, + +{"description":"<a \\u000C>", +"input":"<a \u000C>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a \\u000D>", +"input":"<a \u000D>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a \\u001F>", +"input":"<a \u001F>", +"output":["ParseError", ["StartTag", "a", {"\u001F":""}]]}, + +{"description":"<a >", +"input":"<a >", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a !>", +"input":"<a !>", +"output":[["StartTag", "a", {"!":""}]]}, + +{"description":"<a \">", +"input":"<a \">", +"output":["ParseError", ["StartTag", "a", {"\"":""}]]}, + +{"description":"<a #>", +"input":"<a #>", +"output":[["StartTag", "a", {"#":""}]]}, + +{"description":"<a &>", +"input":"<a &>", +"output":[["StartTag", "a", {"&":""}]]}, + +{"description":"<a '>", +"input":"<a '>", +"output":["ParseError", ["StartTag", "a", {"'":""}]]}, + +{"description":"<a (>", +"input":"<a (>", +"output":[["StartTag", "a", {"(":""}]]}, + +{"description":"<a ->", +"input":"<a ->", +"output":[["StartTag", "a", {"-":""}]]}, + +{"description":"<a .>", +"input":"<a .>", +"output":[["StartTag", "a", {".":""}]]}, + +{"description":"<a />", +"input":"<a />", +"output":[["StartTag", "a", {}, true]]}, + +{"description":"<a 0>", +"input":"<a 0>", +"output":[["StartTag", "a", {"0":""}]]}, + +{"description":"<a 1>", +"input":"<a 1>", +"output":[["StartTag", "a", {"1":""}]]}, + +{"description":"<a 9>", +"input":"<a 9>", +"output":[["StartTag", "a", {"9":""}]]}, + +{"description":"<a <>", +"input":"<a <>", +"output":["ParseError", ["StartTag", "a", {"<":""}]]}, + +{"description":"<a =>", +"input":"<a =>", +"output":["ParseError", ["StartTag", "a", {"=":""}]]}, + +{"description":"<a >", +"input":"<a >", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a ?>", +"input":"<a ?>", +"output":[["StartTag", "a", {"?":""}]]}, + +{"description":"<a @>", +"input":"<a @>", +"output":[["StartTag", "a", {"@":""}]]}, + +{"description":"<a A>", +"input":"<a A>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a B>", +"input":"<a B>", +"output":[["StartTag", "a", {"b":""}]]}, + +{"description":"<a Y>", +"input":"<a Y>", +"output":[["StartTag", "a", {"y":""}]]}, + +{"description":"<a Z>", +"input":"<a Z>", +"output":[["StartTag", "a", {"z":""}]]}, + +{"description":"<a [>", +"input":"<a [>", +"output":[["StartTag", "a", {"[":""}]]}, + +{"description":"<a `>", +"input":"<a `>", +"output":[["StartTag", "a", {"`":""}]]}, + +{"description":"<a a>", +"input":"<a a>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a\\u0000>", +"input":"<a a\u0000>", +"output":["ParseError", ["StartTag", "a", {"a\uFFFD":""}]]}, + +{"description":"<a a\\u0008>", +"input":"<a a\u0008>", +"output":["ParseError", ["StartTag", "a", {"a\u0008":""}]]}, + +{"description":"<a a\\u0009>", +"input":"<a a\u0009>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a\\u000A>", +"input":"<a a\u000A>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a\\u000B>", +"input":"<a a\u000B>", +"output":["ParseError", ["StartTag", "a", {"a\u000B":""}]]}, + +{"description":"<a a\\u000C>", +"input":"<a a\u000C>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a\\u000D>", +"input":"<a a\u000D>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a\\u001F>", +"input":"<a a\u001F>", +"output":["ParseError", ["StartTag", "a", {"a\u001F":""}]]}, + +{"description":"<a a >", +"input":"<a a >", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a \\u0000>", +"input":"<a a \u0000>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]}, + +{"description":"<a a \\u0008>", +"input":"<a a \u0008>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]}, + +{"description":"<a a \\u0009>", +"input":"<a a \u0009>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a \\u000A>", +"input":"<a a \u000A>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a \\u000B>", +"input":"<a a \u000B>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]}, + +{"description":"<a a \\u000C>", +"input":"<a a \u000C>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a \\u000D>", +"input":"<a a \u000D>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a \\u001F>", +"input":"<a a \u001F>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]}, + +{"description":"<a a >", +"input":"<a a >", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a !>", +"input":"<a a !>", +"output":[["StartTag", "a", {"a":"", "!":""}]]}, + +{"description":"<a a \">", +"input":"<a a \">", +"output":["ParseError", ["StartTag", "a", {"a":"", "\"":""}]]}, + +{"description":"<a a #>", +"input":"<a a #>", +"output":[["StartTag", "a", {"a":"", "#":""}]]}, + +{"description":"<a a &>", +"input":"<a a &>", +"output":[["StartTag", "a", {"a":"", "&":""}]]}, + +{"description":"<a a '>", +"input":"<a a '>", +"output":["ParseError", ["StartTag", "a", {"a":"", "'":""}]]}, + +{"description":"<a a (>", +"input":"<a a (>", +"output":[["StartTag", "a", {"a":"", "(":""}]]}, + +{"description":"<a a ->", +"input":"<a a ->", +"output":[["StartTag", "a", {"a":"", "-":""}]]}, + +{"description":"<a a .>", +"input":"<a a .>", +"output":[["StartTag", "a", {"a":"", ".":""}]]}, + +{"description":"<a a />", +"input":"<a a />", +"output":[["StartTag", "a", {"a":""}, true]]}, + +{"description":"<a a 0>", +"input":"<a a 0>", +"output":[["StartTag", "a", {"a":"", "0":""}]]}, + +{"description":"<a a 1>", +"input":"<a a 1>", +"output":[["StartTag", "a", {"a":"", "1":""}]]}, + +{"description":"<a a 9>", +"input":"<a a 9>", +"output":[["StartTag", "a", {"a":"", "9":""}]]}, + +{"description":"<a a <>", +"input":"<a a <>", +"output":["ParseError", ["StartTag", "a", {"a":"", "<":""}]]}, + +{"description":"<a a =>", +"input":"<a a =>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a >", +"input":"<a a >", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a ?>", +"input":"<a a ?>", +"output":[["StartTag", "a", {"a":"", "?":""}]]}, + +{"description":"<a a @>", +"input":"<a a @>", +"output":[["StartTag", "a", {"a":"", "@":""}]]}, + +{"description":"<a a A>", +"input":"<a a A>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a B>", +"input":"<a a B>", +"output":[["StartTag", "a", {"a":"", "b":""}]]}, + +{"description":"<a a Y>", +"input":"<a a Y>", +"output":[["StartTag", "a", {"a":"", "y":""}]]}, + +{"description":"<a a Z>", +"input":"<a a Z>", +"output":[["StartTag", "a", {"a":"", "z":""}]]}, + +{"description":"<a a [>", +"input":"<a a [>", +"output":[["StartTag", "a", {"a":"", "[":""}]]}, + +{"description":"<a a `>", +"input":"<a a `>", +"output":[["StartTag", "a", {"a":"", "`":""}]]}, + +{"description":"<a a a>", +"input":"<a a a>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a b>", +"input":"<a a b>", +"output":[["StartTag", "a", {"a":"", "b":""}]]}, + +{"description":"<a a y>", +"input":"<a a y>", +"output":[["StartTag", "a", {"a":"", "y":""}]]}, + +{"description":"<a a z>", +"input":"<a a z>", +"output":[["StartTag", "a", {"a":"", "z":""}]]}, + +{"description":"<a a {>", +"input":"<a a {>", +"output":[["StartTag", "a", {"a":"", "{":""}]]}, + +{"description":"<a a \\uDBC0\\uDC00>", +"input":"<a a \uDBC0\uDC00>", +"output":[["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]}, + +{"description":"<a a!>", +"input":"<a a!>", +"output":[["StartTag", "a", {"a!":""}]]}, + +{"description":"<a a\">", +"input":"<a a\">", +"output":["ParseError", ["StartTag", "a", {"a\"":""}]]}, + +{"description":"<a a#>", +"input":"<a a#>", +"output":[["StartTag", "a", {"a#":""}]]}, + +{"description":"<a a&>", +"input":"<a a&>", +"output":[["StartTag", "a", {"a&":""}]]}, + +{"description":"<a a'>", +"input":"<a a'>", +"output":["ParseError", ["StartTag", "a", {"a'":""}]]}, + +{"description":"<a a(>", +"input":"<a a(>", +"output":[["StartTag", "a", {"a(":""}]]}, + +{"description":"<a a->", +"input":"<a a->", +"output":[["StartTag", "a", {"a-":""}]]}, + +{"description":"<a a.>", +"input":"<a a.>", +"output":[["StartTag", "a", {"a.":""}]]}, + +{"description":"<a a/>", +"input":"<a a/>", +"output":[["StartTag", "a", {"a":""}, true]]}, + +{"description":"<a a0>", +"input":"<a a0>", +"output":[["StartTag", "a", {"a0":""}]]}, + +{"description":"<a a1>", +"input":"<a a1>", +"output":[["StartTag", "a", {"a1":""}]]}, + +{"description":"<a a9>", +"input":"<a a9>", +"output":[["StartTag", "a", {"a9":""}]]}, + +{"description":"<a a<>", +"input":"<a a<>", +"output":["ParseError", ["StartTag", "a", {"a<":""}]]}, + +{"description":"<a a=>", +"input":"<a a=>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=\\u0000>", +"input":"<a a=\u0000>", +"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, + +{"description":"<a a=\\u0008>", +"input":"<a a=\u0008>", +"output":["ParseError", ["StartTag", "a", {"a":"\u0008"}]]}, + +{"description":"<a a=\\u0009>", +"input":"<a a=\u0009>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=\\u000A>", +"input":"<a a=\u000A>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=\\u000B>", +"input":"<a a=\u000B>", +"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, + +{"description":"<a a=\\u000C>", +"input":"<a a=\u000C>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=\\u000D>", +"input":"<a a=\u000D>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=\\u001F>", +"input":"<a a=\u001F>", +"output":["ParseError", ["StartTag", "a", {"a":"\u001F"}]]}, + +{"description":"<a a= >", +"input":"<a a= >", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=!>", +"input":"<a a=!>", +"output":[["StartTag", "a", {"a":"!"}]]}, + +{"description":"<a a=\"\">", +"input":"<a a=\"\">", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=\"\\u0000\">", +"input":"<a a=\"\u0000\">", +"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, + +{"description":"<a a=\"\\u0009\">", +"input":"<a a=\"\u0009\">", +"output":[["StartTag", "a", {"a":"\u0009"}]]}, + +{"description":"<a a=\"\\u000A\">", +"input":"<a a=\"\u000A\">", +"output":[["StartTag", "a", {"a":"\u000A"}]]}, + +{"description":"<a a=\"\\u000B\">", +"input":"<a a=\"\u000B\">", +"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, + +{"description":"<a a=\"\\u000C\">", +"input":"<a a=\"\u000C\">", +"output":[["StartTag", "a", {"a":"\u000C"}]]}, + +{"description":"<a a=\" \">", +"input":"<a a=\" \">", +"output":[["StartTag", "a", {"a":" "}]]}, + +{"description":"<a a=\"!\">", +"input":"<a a=\"!\">", +"output":[["StartTag", "a", {"a":"!"}]]}, + +{"description":"<a a=\"\">", +"input":"<a a=\"\">", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=\"#\">", +"input":"<a a=\"#\">", +"output":[["StartTag", "a", {"a":"#"}]]}, + +{"description":"<a a=\"%\">", +"input":"<a a=\"%\">", +"output":[["StartTag", "a", {"a":"%"}]]}, + +{"description":"<a a=\"&\">", +"input":"<a a=\"&\">", +"output":[["StartTag", "a", {"a":"&"}]]}, + +{"description":"<a a=\"'\">", +"input":"<a a=\"'\">", +"output":[["StartTag", "a", {"a":"'"}]]}, + +{"description":"<a a=\"-\">", +"input":"<a a=\"-\">", +"output":[["StartTag", "a", {"a":"-"}]]}, + +{"description":"<a a=\"/\">", +"input":"<a a=\"/\">", +"output":[["StartTag", "a", {"a":"/"}]]}, + +{"description":"<a a=\"0\">", +"input":"<a a=\"0\">", +"output":[["StartTag", "a", {"a":"0"}]]}, + +{"description":"<a a=\"1\">", +"input":"<a a=\"1\">", +"output":[["StartTag", "a", {"a":"1"}]]}, + +{"description":"<a a=\"9\">", +"input":"<a a=\"9\">", +"output":[["StartTag", "a", {"a":"9"}]]}, + +{"description":"<a a=\"<\">", +"input":"<a a=\"<\">", +"output":[["StartTag", "a", {"a":"<"}]]}, + +{"description":"<a a=\"=\">", +"input":"<a a=\"=\">", +"output":[["StartTag", "a", {"a":"="}]]}, + +{"description":"<a a=\">\">", +"input":"<a a=\">\">", +"output":[["StartTag", "a", {"a":">"}]]}, + +{"description":"<a a=\"?\">", +"input":"<a a=\"?\">", +"output":[["StartTag", "a", {"a":"?"}]]}, + +{"description":"<a a=\"@\">", +"input":"<a a=\"@\">", +"output":[["StartTag", "a", {"a":"@"}]]}, + +{"description":"<a a=\"A\">", +"input":"<a a=\"A\">", +"output":[["StartTag", "a", {"a":"A"}]]}, + +{"description":"<a a=\"B\">", +"input":"<a a=\"B\">", +"output":[["StartTag", "a", {"a":"B"}]]}, + +{"description":"<a a=\"Y\">", +"input":"<a a=\"Y\">", +"output":[["StartTag", "a", {"a":"Y"}]]}, + +{"description":"<a a=\"Z\">", +"input":"<a a=\"Z\">", +"output":[["StartTag", "a", {"a":"Z"}]]}, + +{"description":"<a a=\"`\">", +"input":"<a a=\"`\">", +"output":[["StartTag", "a", {"a":"`"}]]}, + +{"description":"<a a=\"a\">", +"input":"<a a=\"a\">", +"output":[["StartTag", "a", {"a":"a"}]]}, + +{"description":"<a a=\"b\">", +"input":"<a a=\"b\">", +"output":[["StartTag", "a", {"a":"b"}]]}, + +{"description":"<a a=\"y\">", +"input":"<a a=\"y\">", +"output":[["StartTag", "a", {"a":"y"}]]}, + +{"description":"<a a=\"z\">", +"input":"<a a=\"z\">", +"output":[["StartTag", "a", {"a":"z"}]]}, + +{"description":"<a a=\"{\">", +"input":"<a a=\"{\">", +"output":[["StartTag", "a", {"a":"{"}]]}, + +{"description":"<a a=\"\\uDBC0\\uDC00\">", +"input":"<a a=\"\uDBC0\uDC00\">", +"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, + +{"description":"<a a=#>", +"input":"<a a=#>", +"output":[["StartTag", "a", {"a":"#"}]]}, + +{"description":"<a a=%>", +"input":"<a a=%>", +"output":[["StartTag", "a", {"a":"%"}]]}, + +{"description":"<a a=&>", +"input":"<a a=&>", +"output":["ParseError", ["StartTag", "a", {"a":"&"}]]}, + +{"description":"<a a=''>", +"input":"<a a=''>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a='\\u0000'>", +"input":"<a a='\u0000'>", +"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, + +{"description":"<a a='\\u0009'>", +"input":"<a a='\u0009'>", +"output":[["StartTag", "a", {"a":"\u0009"}]]}, + +{"description":"<a a='\\u000A'>", +"input":"<a a='\u000A'>", +"output":[["StartTag", "a", {"a":"\u000A"}]]}, + +{"description":"<a a='\\u000B'>", +"input":"<a a='\u000B'>", +"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, + +{"description":"<a a='\\u000C'>", +"input":"<a a='\u000C'>", +"output":[["StartTag", "a", {"a":"\u000C"}]]}, + +{"description":"<a a=' '>", +"input":"<a a=' '>", +"output":[["StartTag", "a", {"a":" "}]]}, + +{"description":"<a a='!'>", +"input":"<a a='!'>", +"output":[["StartTag", "a", {"a":"!"}]]}, + +{"description":"<a a='\"'>", +"input":"<a a='\"'>", +"output":[["StartTag", "a", {"a":"\""}]]}, + +{"description":"<a a='%'>", +"input":"<a a='%'>", +"output":[["StartTag", "a", {"a":"%"}]]}, + +{"description":"<a a='&'>", +"input":"<a a='&'>", +"output":[["StartTag", "a", {"a":"&"}]]}, + +{"description":"<a a=''>", +"input":"<a a=''>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=''\\u0000>", +"input":"<a a=''\u0000>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]}, + +{"description":"<a a=''\\u0008>", +"input":"<a a=''\u0008>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]}, + +{"description":"<a a=''\\u0009>", +"input":"<a a=''\u0009>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=''\\u000A>", +"input":"<a a=''\u000A>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=''\\u000B>", +"input":"<a a=''\u000B>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]}, + +{"description":"<a a=''\\u000C>", +"input":"<a a=''\u000C>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=''\\u000D>", +"input":"<a a=''\u000D>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=''\\u001F>", +"input":"<a a=''\u001F>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]}, + +{"description":"<a a='' >", +"input":"<a a='' >", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=''!>", +"input":"<a a=''!>", +"output":["ParseError", ["StartTag", "a", {"a":"", "!":""}]]}, + +{"description":"<a a=''\">", +"input":"<a a=''\">", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\"":""}]]}, + +{"description":"<a a=''&>", +"input":"<a a=''&>", +"output":["ParseError", ["StartTag", "a", {"a":"", "&":""}]]}, + +{"description":"<a a='''>", +"input":"<a a='''>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "'":""}]]}, + +{"description":"<a a=''->", +"input":"<a a=''->", +"output":["ParseError", ["StartTag", "a", {"a":"", "-":""}]]}, + +{"description":"<a a=''.>", +"input":"<a a=''.>", +"output":["ParseError", ["StartTag", "a", {"a":"", ".":""}]]}, + +{"description":"<a a=''/>", +"input":"<a a=''/>", +"output":[["StartTag", "a", {"a":""}, true]]}, + +{"description":"<a a=''0>", +"input":"<a a=''0>", +"output":["ParseError", ["StartTag", "a", {"a":"", "0":""}]]}, + +{"description":"<a a=''1>", +"input":"<a a=''1>", +"output":["ParseError", ["StartTag", "a", {"a":"", "1":""}]]}, + +{"description":"<a a=''9>", +"input":"<a a=''9>", +"output":["ParseError", ["StartTag", "a", {"a":"", "9":""}]]}, + +{"description":"<a a=''<>", +"input":"<a a=''<>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "<":""}]]}, + +{"description":"<a a=''=>", +"input":"<a a=''=>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "=":""}]]}, + +{"description":"<a a=''>", +"input":"<a a=''>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=''?>", +"input":"<a a=''?>", +"output":["ParseError", ["StartTag", "a", {"a":"", "?":""}]]}, + +{"description":"<a a=''@>", +"input":"<a a=''@>", +"output":["ParseError", ["StartTag", "a", {"a":"", "@":""}]]}, + +{"description":"<a a=''A>", +"input":"<a a=''A>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=''B>", +"input":"<a a=''B>", +"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, + +{"description":"<a a=''Y>", +"input":"<a a=''Y>", +"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, + +{"description":"<a a=''Z>", +"input":"<a a=''Z>", +"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, + +{"description":"<a a=''`>", +"input":"<a a=''`>", +"output":["ParseError", ["StartTag", "a", {"a":"", "`":""}]]}, + +{"description":"<a a=''a>", +"input":"<a a=''a>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=''b>", +"input":"<a a=''b>", +"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, + +{"description":"<a a=''y>", +"input":"<a a=''y>", +"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, + +{"description":"<a a=''z>", +"input":"<a a=''z>", +"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, + +{"description":"<a a=''{>", +"input":"<a a=''{>", +"output":["ParseError", ["StartTag", "a", {"a":"", "{":""}]]}, + +{"description":"<a a=''\\uDBC0\\uDC00>", +"input":"<a a=''\uDBC0\uDC00>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]}, + +{"description":"<a a='('>", +"input":"<a a='('>", +"output":[["StartTag", "a", {"a":"("}]]}, + +{"description":"<a a='-'>", +"input":"<a a='-'>", +"output":[["StartTag", "a", {"a":"-"}]]}, + +{"description":"<a a='/'>", +"input":"<a a='/'>", +"output":[["StartTag", "a", {"a":"/"}]]}, + +{"description":"<a a='0'>", +"input":"<a a='0'>", +"output":[["StartTag", "a", {"a":"0"}]]}, + +{"description":"<a a='1'>", +"input":"<a a='1'>", +"output":[["StartTag", "a", {"a":"1"}]]}, + +{"description":"<a a='9'>", +"input":"<a a='9'>", +"output":[["StartTag", "a", {"a":"9"}]]}, + +{"description":"<a a='<'>", +"input":"<a a='<'>", +"output":[["StartTag", "a", {"a":"<"}]]}, + +{"description":"<a a='='>", +"input":"<a a='='>", +"output":[["StartTag", "a", {"a":"="}]]}, + +{"description":"<a a='>'>", +"input":"<a a='>'>", +"output":[["StartTag", "a", {"a":">"}]]}, + +{"description":"<a a='?'>", +"input":"<a a='?'>", +"output":[["StartTag", "a", {"a":"?"}]]}, + +{"description":"<a a='@'>", +"input":"<a a='@'>", +"output":[["StartTag", "a", {"a":"@"}]]}, + +{"description":"<a a='A'>", +"input":"<a a='A'>", +"output":[["StartTag", "a", {"a":"A"}]]}, + +{"description":"<a a='B'>", +"input":"<a a='B'>", +"output":[["StartTag", "a", {"a":"B"}]]}, + +{"description":"<a a='Y'>", +"input":"<a a='Y'>", +"output":[["StartTag", "a", {"a":"Y"}]]}, + +{"description":"<a a='Z'>", +"input":"<a a='Z'>", +"output":[["StartTag", "a", {"a":"Z"}]]}, + +{"description":"<a a='`'>", +"input":"<a a='`'>", +"output":[["StartTag", "a", {"a":"`"}]]}, + +{"description":"<a a='a'>", +"input":"<a a='a'>", +"output":[["StartTag", "a", {"a":"a"}]]}, + +{"description":"<a a='b'>", +"input":"<a a='b'>", +"output":[["StartTag", "a", {"a":"b"}]]}, + +{"description":"<a a='y'>", +"input":"<a a='y'>", +"output":[["StartTag", "a", {"a":"y"}]]}, + +{"description":"<a a='z'>", +"input":"<a a='z'>", +"output":[["StartTag", "a", {"a":"z"}]]}, + +{"description":"<a a='{'>", +"input":"<a a='{'>", +"output":[["StartTag", "a", {"a":"{"}]]}, + +{"description":"<a a='\\uDBC0\\uDC00'>", +"input":"<a a='\uDBC0\uDC00'>", +"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, + +{"description":"<a a=(>", +"input":"<a a=(>", +"output":[["StartTag", "a", {"a":"("}]]}, + +{"description":"<a a=->", +"input":"<a a=->", +"output":[["StartTag", "a", {"a":"-"}]]}, + +{"description":"<a a=/>", +"input":"<a a=/>", +"output":[["StartTag", "a", {"a":"/"}]]}, + +{"description":"<a a=0>", +"input":"<a a=0>", +"output":[["StartTag", "a", {"a":"0"}]]}, + +{"description":"<a a=1>", +"input":"<a a=1>", +"output":[["StartTag", "a", {"a":"1"}]]}, + +{"description":"<a a=9>", +"input":"<a a=9>", +"output":[["StartTag", "a", {"a":"9"}]]}, + +{"description":"<a a=<>", +"input":"<a a=<>", +"output":["ParseError", ["StartTag", "a", {"a":"<"}]]}, + +{"description":"<a a==>", +"input":"<a a==>", +"output":["ParseError", ["StartTag", "a", {"a":"="}]]}, + +{"description":"<a a=>", +"input":"<a a=>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a a=?>", +"input":"<a a=?>", +"output":[["StartTag", "a", {"a":"?"}]]}, + +{"description":"<a a=@>", +"input":"<a a=@>", +"output":[["StartTag", "a", {"a":"@"}]]}, + +{"description":"<a a=A>", +"input":"<a a=A>", +"output":[["StartTag", "a", {"a":"A"}]]}, + +{"description":"<a a=B>", +"input":"<a a=B>", +"output":[["StartTag", "a", {"a":"B"}]]}, + +{"description":"<a a=Y>", +"input":"<a a=Y>", +"output":[["StartTag", "a", {"a":"Y"}]]}, + +{"description":"<a a=Z>", +"input":"<a a=Z>", +"output":[["StartTag", "a", {"a":"Z"}]]}, + +{"description":"<a a=`>", +"input":"<a a=`>", +"output":[["StartTag", "a", {"a":"`"}]]}, + +{"description":"<a a=a>", +"input":"<a a=a>", +"output":[["StartTag", "a", {"a":"a"}]]}, + +{"description":"<a a=a\\u0000>", +"input":"<a a=a\u0000>", +"output":["ParseError", ["StartTag", "a", {"a":"a\uFFFD"}]]}, + +{"description":"<a a=a\\u0008>", +"input":"<a a=a\u0008>", +"output":["ParseError", ["StartTag", "a", {"a":"a\u0008"}]]}, + +{"description":"<a a=a\\u0009>", +"input":"<a a=a\u0009>", +"output":[["StartTag", "a", {"a":"a"}]]}, + +{"description":"<a a=a\\u000A>", +"input":"<a a=a\u000A>", +"output":[["StartTag", "a", {"a":"a"}]]}, + +{"description":"<a a=a\\u000B>", +"input":"<a a=a\u000B>", +"output":["ParseError", ["StartTag", "a", {"a":"a\u000B"}]]}, + +{"description":"<a a=a\\u000C>", +"input":"<a a=a\u000C>", +"output":[["StartTag", "a", {"a":"a"}]]}, + +{"description":"<a a=a\\u000D>", +"input":"<a a=a\u000D>", +"output":[["StartTag", "a", {"a":"a"}]]}, + +{"description":"<a a=a\\u001F>", +"input":"<a a=a\u001F>", +"output":["ParseError", ["StartTag", "a", {"a":"a\u001F"}]]}, + +{"description":"<a a=a >", +"input":"<a a=a >", +"output":[["StartTag", "a", {"a":"a"}]]}, + +{"description":"<a a=a!>", +"input":"<a a=a!>", +"output":[["StartTag", "a", {"a":"a!"}]]}, + +{"description":"<a a=a\">", +"input":"<a a=a\">", +"output":["ParseError", ["StartTag", "a", {"a":"a\""}]]}, + +{"description":"<a a=a#>", +"input":"<a a=a#>", +"output":[["StartTag", "a", {"a":"a#"}]]}, + +{"description":"<a a=a%>", +"input":"<a a=a%>", +"output":[["StartTag", "a", {"a":"a%"}]]}, + +{"description":"<a a=a&>", +"input":"<a a=a&>", +"output":["ParseError", ["StartTag", "a", {"a":"a&"}]]}, + +{"description":"<a a=a'>", +"input":"<a a=a'>", +"output":["ParseError", ["StartTag", "a", {"a":"a'"}]]}, + +{"description":"<a a=a(>", +"input":"<a a=a(>", +"output":[["StartTag", "a", {"a":"a("}]]}, + +{"description":"<a a=a->", +"input":"<a a=a->", +"output":[["StartTag", "a", {"a":"a-"}]]}, + +{"description":"<a a=a/>", +"input":"<a a=a/>", +"output":[["StartTag", "a", {"a":"a/"}]]}, + +{"description":"<a a=a0>", +"input":"<a a=a0>", +"output":[["StartTag", "a", {"a":"a0"}]]}, + +{"description":"<a a=a1>", +"input":"<a a=a1>", +"output":[["StartTag", "a", {"a":"a1"}]]}, + +{"description":"<a a=a9>", +"input":"<a a=a9>", +"output":[["StartTag", "a", {"a":"a9"}]]}, + +{"description":"<a a=a<>", +"input":"<a a=a<>", +"output":["ParseError", ["StartTag", "a", {"a":"a<"}]]}, + +{"description":"<a a=a=>", +"input":"<a a=a=>", +"output":["ParseError", ["StartTag", "a", {"a":"a="}]]}, + +{"description":"<a a=a>", +"input":"<a a=a>", +"output":[["StartTag", "a", {"a":"a"}]]}, + +{"description":"<a a=a?>", +"input":"<a a=a?>", +"output":[["StartTag", "a", {"a":"a?"}]]}, + +{"description":"<a a=a@>", +"input":"<a a=a@>", +"output":[["StartTag", "a", {"a":"a@"}]]}, + +{"description":"<a a=aA>", +"input":"<a a=aA>", +"output":[["StartTag", "a", {"a":"aA"}]]}, + +{"description":"<a a=aB>", +"input":"<a a=aB>", +"output":[["StartTag", "a", {"a":"aB"}]]}, + +{"description":"<a a=aY>", +"input":"<a a=aY>", +"output":[["StartTag", "a", {"a":"aY"}]]}, + +{"description":"<a a=aZ>", +"input":"<a a=aZ>", +"output":[["StartTag", "a", {"a":"aZ"}]]}, + +{"description":"<a a=a`>", +"input":"<a a=a`>", +"output":[["StartTag", "a", {"a":"a`"}]]}, + +{"description":"<a a=aa>", +"input":"<a a=aa>", +"output":[["StartTag", "a", {"a":"aa"}]]}, + +{"description":"<a a=ab>", +"input":"<a a=ab>", +"output":[["StartTag", "a", {"a":"ab"}]]}, + +{"description":"<a a=ay>", +"input":"<a a=ay>", +"output":[["StartTag", "a", {"a":"ay"}]]}, + +{"description":"<a a=az>", +"input":"<a a=az>", +"output":[["StartTag", "a", {"a":"az"}]]}, + +{"description":"<a a=a{>", +"input":"<a a=a{>", +"output":[["StartTag", "a", {"a":"a{"}]]}, + +{"description":"<a a=a\\uDBC0\\uDC00>", +"input":"<a a=a\uDBC0\uDC00>", +"output":[["StartTag", "a", {"a":"a\uDBC0\uDC00"}]]}, + +{"description":"<a a=b>", +"input":"<a a=b>", +"output":[["StartTag", "a", {"a":"b"}]]}, + +{"description":"<a a=y>", +"input":"<a a=y>", +"output":[["StartTag", "a", {"a":"y"}]]}, + +{"description":"<a a=z>", +"input":"<a a=z>", +"output":[["StartTag", "a", {"a":"z"}]]}, + +{"description":"<a a={>", +"input":"<a a={>", +"output":[["StartTag", "a", {"a":"{"}]]}, + +{"description":"<a a=\\uDBC0\\uDC00>", +"input":"<a a=\uDBC0\uDC00>", +"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, + +{"description":"<a a>", +"input":"<a a>", +"output":[["StartTag", "a", {"a":""}]]}, + +{"description":"<a a?>", +"input":"<a a?>", +"output":[["StartTag", "a", {"a?":""}]]}, + +{"description":"<a a@>", +"input":"<a a@>", +"output":[["StartTag", "a", {"a@":""}]]}, + +{"description":"<a aA>", +"input":"<a aA>", +"output":[["StartTag", "a", {"aa":""}]]}, + +{"description":"<a aB>", +"input":"<a aB>", +"output":[["StartTag", "a", {"ab":""}]]}, + +{"description":"<a aY>", +"input":"<a aY>", +"output":[["StartTag", "a", {"ay":""}]]}, + +{"description":"<a aZ>", +"input":"<a aZ>", +"output":[["StartTag", "a", {"az":""}]]}, + +{"description":"<a a[>", +"input":"<a a[>", +"output":[["StartTag", "a", {"a[":""}]]}, + +{"description":"<a a`>", +"input":"<a a`>", +"output":[["StartTag", "a", {"a`":""}]]}, + +{"description":"<a aa>", +"input":"<a aa>", +"output":[["StartTag", "a", {"aa":""}]]}, + +{"description":"<a ab>", +"input":"<a ab>", +"output":[["StartTag", "a", {"ab":""}]]}, + +{"description":"<a ay>", +"input":"<a ay>", +"output":[["StartTag", "a", {"ay":""}]]}, + +{"description":"<a az>", +"input":"<a az>", +"output":[["StartTag", "a", {"az":""}]]}, + +{"description":"<a a{>", +"input":"<a a{>", +"output":[["StartTag", "a", {"a{":""}]]}, + +{"description":"<a a\\uDBC0\\uDC00>", +"input":"<a a\uDBC0\uDC00>", +"output":[["StartTag", "a", {"a\uDBC0\uDC00":""}]]}, + +{"description":"<a b>", +"input":"<a b>", +"output":[["StartTag", "a", {"b":""}]]}, + +{"description":"<a y>", +"input":"<a y>", +"output":[["StartTag", "a", {"y":""}]]}, + +{"description":"<a z>", +"input":"<a z>", +"output":[["StartTag", "a", {"z":""}]]}, + +{"description":"<a {>", +"input":"<a {>", +"output":[["StartTag", "a", {"{":""}]]}, + +{"description":"<a \\uDBC0\\uDC00>", +"input":"<a \uDBC0\uDC00>", +"output":[["StartTag", "a", {"\uDBC0\uDC00":""}]]}, + +{"description":"<a!>", +"input":"<a!>", +"output":[["StartTag", "a!", {}]]}, + +{"description":"<a\">", +"input":"<a\">", +"output":[["StartTag", "a\"", {}]]}, + +{"description":"<a&>", +"input":"<a&>", +"output":[["StartTag", "a&", {}]]}, + +{"description":"<a'>", +"input":"<a'>", +"output":[["StartTag", "a'", {}]]}, + +{"description":"<a->", +"input":"<a->", +"output":[["StartTag", "a-", {}]]}, + +{"description":"<a.>", +"input":"<a.>", +"output":[["StartTag", "a.", {}]]}, + +{"description":"<a/>", +"input":"<a/>", +"output":[["StartTag", "a", {}, true]]}, + +{"description":"<a/\\u0000>", +"input":"<a/\u0000>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"\uFFFD":""}]]}, + +{"description":"<a/\\u0009>", +"input":"<a/\u0009>", +"output":["ParseError", ["StartTag", "a", {}]]}, + +{"description":"<a/\\u000A>", +"input":"<a/\u000A>", +"output":["ParseError", ["StartTag", "a", {}]]}, + +{"description":"<a/\\u000B>", +"input":"<a/\u000B>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"\u000B":""}]]}, + +{"description":"<a/\\u000C>", +"input":"<a/\u000C>", +"output":["ParseError", ["StartTag", "a", {}]]}, + +{"description":"<a/ >", +"input":"<a/ >", +"output":["ParseError", ["StartTag", "a", {}]]}, + +{"description":"<a/!>", +"input":"<a/!>", +"output":["ParseError", ["StartTag", "a", {"!":""}]]}, + +{"description":"<a/\">", +"input":"<a/\">", +"output":["ParseError", "ParseError", ["StartTag", "a", {"\"":""}]]}, + +{"description":"<a/&>", +"input":"<a/&>", +"output":["ParseError", ["StartTag", "a", {"&":""}]]}, + +{"description":"<a/'>", +"input":"<a/'>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"'":""}]]}, + +{"description":"<a/->", +"input":"<a/->", +"output":["ParseError", ["StartTag", "a", {"-":""}]]}, + +{"description":"<a//>", +"input":"<a//>", +"output":["ParseError", ["StartTag", "a", {}, true]]}, + +{"description":"<a/0>", +"input":"<a/0>", +"output":["ParseError", ["StartTag", "a", {"0":""}]]}, + +{"description":"<a/1>", +"input":"<a/1>", +"output":["ParseError", ["StartTag", "a", {"1":""}]]}, + +{"description":"<a/9>", +"input":"<a/9>", +"output":["ParseError", ["StartTag", "a", {"9":""}]]}, + +{"description":"<a/<>", +"input":"<a/<>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"<":""}]]}, + +{"description":"<a/=>", +"input":"<a/=>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"=":""}]]}, + +{"description":"<a/>", +"input":"<a/>", +"output":[["StartTag", "a", {}, true]]}, + +{"description":"<a/?>", +"input":"<a/?>", +"output":["ParseError", ["StartTag", "a", {"?":""}]]}, + +{"description":"<a/@>", +"input":"<a/@>", +"output":["ParseError", ["StartTag", "a", {"@":""}]]}, + +{"description":"<a/A>", +"input":"<a/A>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a/B>", +"input":"<a/B>", +"output":["ParseError", ["StartTag", "a", {"b":""}]]}, + +{"description":"<a/Y>", +"input":"<a/Y>", +"output":["ParseError", ["StartTag", "a", {"y":""}]]}, + +{"description":"<a/Z>", +"input":"<a/Z>", +"output":["ParseError", ["StartTag", "a", {"z":""}]]}, + +{"description":"<a/`>", +"input":"<a/`>", +"output":["ParseError", ["StartTag", "a", {"`":""}]]}, + +{"description":"<a/a>", +"input":"<a/a>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, + +{"description":"<a/b>", +"input":"<a/b>", +"output":["ParseError", ["StartTag", "a", {"b":""}]]}, + +{"description":"<a/y>", +"input":"<a/y>", +"output":["ParseError", ["StartTag", "a", {"y":""}]]}, + +{"description":"<a/z>", +"input":"<a/z>", +"output":["ParseError", ["StartTag", "a", {"z":""}]]}, + +{"description":"<a/{>", +"input":"<a/{>", +"output":["ParseError", ["StartTag", "a", {"{":""}]]}, + +{"description":"<a/\\uDBC0\\uDC00>", +"input":"<a/\uDBC0\uDC00>", +"output":["ParseError", ["StartTag", "a", {"\uDBC0\uDC00":""}]]}, + +{"description":"<a0>", +"input":"<a0>", +"output":[["StartTag", "a0", {}]]}, + +{"description":"<a1>", +"input":"<a1>", +"output":[["StartTag", "a1", {}]]}, + +{"description":"<a9>", +"input":"<a9>", +"output":[["StartTag", "a9", {}]]}, + +{"description":"<a<>", +"input":"<a<>", +"output":[["StartTag", "a<", {}]]}, + +{"description":"<a=>", +"input":"<a=>", +"output":[["StartTag", "a=", {}]]}, + +{"description":"<a>", +"input":"<a>", +"output":[["StartTag", "a", {}]]}, + +{"description":"<a?>", +"input":"<a?>", +"output":[["StartTag", "a?", {}]]}, + +{"description":"<a@>", +"input":"<a@>", +"output":[["StartTag", "a@", {}]]}, + +{"description":"<aA>", +"input":"<aA>", +"output":[["StartTag", "aa", {}]]}, + +{"description":"<aB>", +"input":"<aB>", +"output":[["StartTag", "ab", {}]]}, + +{"description":"<aY>", +"input":"<aY>", +"output":[["StartTag", "ay", {}]]}, + +{"description":"<aZ>", +"input":"<aZ>", +"output":[["StartTag", "az", {}]]}, + +{"description":"<a[>", +"input":"<a[>", +"output":[["StartTag", "a[", {}]]}, + +{"description":"<a`>", +"input":"<a`>", +"output":[["StartTag", "a`", {}]]}, + +{"description":"<aa>", +"input":"<aa>", +"output":[["StartTag", "aa", {}]]}, + +{"description":"<ab>", +"input":"<ab>", +"output":[["StartTag", "ab", {}]]}, + +{"description":"<ay>", +"input":"<ay>", +"output":[["StartTag", "ay", {}]]}, + +{"description":"<az>", +"input":"<az>", +"output":[["StartTag", "az", {}]]}, + +{"description":"<a{>", +"input":"<a{>", +"output":[["StartTag", "a{", {}]]}, + +{"description":"<a\\uDBC0\\uDC00>", +"input":"<a\uDBC0\uDC00>", +"output":[["StartTag", "a\uDBC0\uDC00", {}]]}, + +{"description":"<b>", +"input":"<b>", +"output":[["StartTag", "b", {}]]}, + +{"description":"<y>", +"input":"<y>", +"output":[["StartTag", "y", {}]]}, + +{"description":"<z>", +"input":"<z>", +"output":[["StartTag", "z", {}]]}, + +{"description":"<{", +"input":"<{", +"output":["ParseError", ["Character", "<{"]]}, + +{"description":"<\\uDBC0\\uDC00", +"input":"<\uDBC0\uDC00", +"output":["ParseError", ["Character", "<\uDBC0\uDC00"]]}, + +{"description":"=", +"input":"=", +"output":[["Character", "="]]}, + +{"description":">", +"input":">", +"output":[["Character", ">"]]}, + +{"description":"?", +"input":"?", +"output":[["Character", "?"]]}, + +{"description":"@", +"input":"@", +"output":[["Character", "@"]]}, + +{"description":"A", +"input":"A", +"output":[["Character", "A"]]}, + +{"description":"B", +"input":"B", +"output":[["Character", "B"]]}, + +{"description":"Y", +"input":"Y", +"output":[["Character", "Y"]]}, + +{"description":"Z", +"input":"Z", +"output":[["Character", "Z"]]}, + +{"description":"`", +"input":"`", +"output":[["Character", "`"]]}, + +{"description":"a", +"input":"a", +"output":[["Character", "a"]]}, + +{"description":"b", +"input":"b", +"output":[["Character", "b"]]}, + +{"description":"y", +"input":"y", +"output":[["Character", "y"]]}, + +{"description":"z", +"input":"z", +"output":[["Character", "z"]]}, + +{"description":"{", +"input":"{", +"output":[["Character", "{"]]}, + +{"description":"\\uDBC0\\uDC00", +"input":"\uDBC0\uDC00", +"output":[["Character", "\uDBC0\uDC00"]]} + +]} diff --git a/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test4.test b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test4.test new file mode 100644 index 00000000000..2f1d33d1aac --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test4.test @@ -0,0 +1,305 @@ +var tokenizerTests = {"tests": [ + +{"description":"< in attribute name", +"input":"<z/0 <>", +"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "", "<": ""}]]}, + +{"description":"< in attribute value", +"input":"<z x=<>", +"output":["ParseError", ["StartTag", "z", {"x": "<"}]]}, + +{"description":"= in unquoted attribute value", +"input":"<z z=z=z>", +"output":["ParseError", ["StartTag", "z", {"z": "z=z"}]]}, + +{"description":"= attribute", +"input":"<z =>", +"output":["ParseError", ["StartTag", "z", {"=": ""}]]}, + +{"description":"== attribute", +"input":"<z ==>", +"output":["ParseError", "ParseError", ["StartTag", "z", {"=": ""}]]}, + +{"description":"=== attribute", +"input":"<z ===>", +"output":["ParseError", "ParseError", ["StartTag", "z", {"=": "="}]]}, + +{"description":"==== attribute", +"input":"<z ====>", +"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"=": "=="}]]}, + +{"description":"Allowed \" after ampersand in attribute value", +"input":"<z z=\"&\">", +"output":[["StartTag", "z", {"z": "&"}]]}, + +{"description":"Non-allowed ' after ampersand in attribute value", +"input":"<z z=\"&'\">", +"output":["ParseError", ["StartTag", "z", {"z": "&'"}]]}, + +{"description":"Allowed ' after ampersand in attribute value", +"input":"<z z='&'>", +"output":[["StartTag", "z", {"z": "&"}]]}, + +{"description":"Non-allowed \" after ampersand in attribute value", +"input":"<z z='&\"'>", +"output":["ParseError", ["StartTag", "z", {"z": "&\""}]]}, + +{"description":"Text after bogus character reference", +"input":"<z z='&xlink_xmlns;'>bar<z>", +"output":["ParseError",["StartTag","z",{"z":"&xlink_xmlns;"}],["Character","bar"],["StartTag","z",{}]]}, + +{"description":"Text after hex character reference", +"input":"<z z='&#x0020; foo'>bar<z>", +"output":[["StartTag","z",{"z":" foo"}],["Character","bar"],["StartTag","z",{}]]}, + +{"description":"Attribute name starting with \"", +"input":"<foo \"='bar'>", +"output":["ParseError", ["StartTag", "foo", {"\"": "bar"}]]}, + +{"description":"Attribute name starting with '", +"input":"<foo '='bar'>", +"output":["ParseError", ["StartTag", "foo", {"'": "bar"}]]}, + +{"description":"Attribute name containing \"", +"input":"<foo a\"b='bar'>", +"output":["ParseError", ["StartTag", "foo", {"a\"b": "bar"}]]}, + +{"description":"Attribute name containing '", +"input":"<foo a'b='bar'>", +"output":["ParseError", ["StartTag", "foo", {"a'b": "bar"}]]}, + +{"description":"Unquoted attribute value containing '", +"input":"<foo a=b'c>", +"output":["ParseError", ["StartTag", "foo", {"a": "b'c"}]]}, + +{"description":"Unquoted attribute value containing \"", +"input":"<foo a=b\"c>", +"output":["ParseError", ["StartTag", "foo", {"a": "b\"c"}]]}, + +{"description":"Double-quoted attribute value not followed by whitespace", +"input":"<foo a=\"b\"c>", +"output":["ParseError", ["StartTag", "foo", {"a": "b", "c": ""}]]}, + +{"description":"Single-quoted attribute value not followed by whitespace", +"input":"<foo a='b'c>", +"output":["ParseError", ["StartTag", "foo", {"a": "b", "c": ""}]]}, + +{"description":"Quoted attribute followed by permitted /", +"input":"<br a='b'/>", +"output":[["StartTag","br",{"a":"b"},true]]}, + +{"description":"Quoted attribute followed by non-permitted /", +"input":"<bar a='b'/>", +"output":[["StartTag","bar",{"a":"b"},true]]}, + +{"description":"CR EOF after doctype name", +"input":"<!doctype html \r", +"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, + +{"description":"CR EOF in tag name", +"input":"<z\r", +"output":["ParseError"]}, + +{"description":"Slash EOF in tag name", +"input":"<z/", +"output":["ParseError"]}, + +{"description":"Zero hex numeric entity", +"input":"&#x0", +"output":["ParseError", "ParseError", ["Character", "\uFFFD"]]}, + +{"description":"Zero decimal numeric entity", +"input":"&#0", +"output":["ParseError", "ParseError", ["Character", "\uFFFD"]]}, + +{"description":"Zero-prefixed hex numeric entity", +"input":"&#x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041;", +"output":[["Character", "A"]]}, + +{"description":"Zero-prefixed decimal numeric entity", +"input":"&#000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065;", +"output":[["Character", "A"]]}, + +{"description":"Empty hex numeric entities", +"input":"&#x &#X ", +"output":["ParseError", ["Character", "&#x "], "ParseError", ["Character", "&#X "]]}, + +{"description":"Empty decimal numeric entities", +"input":"&# &#; ", +"output":["ParseError", ["Character", "&# "], "ParseError", ["Character", "&#; "]]}, + +{"description":"Non-BMP numeric entity", +"input":"&#x10000;", +"output":[["Character", "\uD800\uDC00"]]}, + +{"description":"Maximum non-BMP numeric entity", +"input":"&#X10FFFF;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"Above maximum numeric entity", +"input":"&#x110000;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"32-bit hex numeric entity", +"input":"&#x80000041;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"33-bit hex numeric entity", +"input":"&#x100000041;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"33-bit decimal numeric entity", +"input":"&#4294967361;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"65-bit hex numeric entity", +"input":"&#x10000000000000041;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"65-bit decimal numeric entity", +"input":"&#18446744073709551681;", +"output":["ParseError", ["Character", "\uFFFD"]]}, + +{"description":"Surrogate code point edge cases", +"input":"&#xD7FF;&#xD800;&#xD801;&#xDFFE;&#xDFFF;&#xE000;", +"output":[["Character", "\uD7FF"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD\uE000"]]}, + +{"description":"Uppercase start tag name", +"input":"<X>", +"output":[["StartTag", "x", {}]]}, + +{"description":"Uppercase end tag name", +"input":"</X>", +"output":[["EndTag", "x"]]}, + +{"description":"Uppercase attribute name", +"input":"<x X>", +"output":[["StartTag", "x", { "x":"" }]]}, + +{"description":"Tag/attribute name case edge values", +"input":"<x@AZ[`az{ @AZ[`az{>", +"output":[["StartTag", "x@az[`az{", { "@az[`az{":"" }]]}, + +{"description":"Duplicate different-case attributes", +"input":"<x x=1 x=2 X=3>", +"output":["ParseError", "ParseError", ["StartTag", "x", { "x":"1" }]]}, + +{"description":"Uppercase close tag attributes", +"input":"</x X>", +"output":["ParseError", ["EndTag", "x"]]}, + +{"description":"Duplicate close tag attributes", +"input":"</x x x>", +"output":["ParseError", "ParseError", ["EndTag", "x"]]}, + +{"description":"Permitted slash", +"input":"<br/>", +"output":[["StartTag","br",{},true]]}, + +{"description":"Non-permitted slash", +"input":"<xr/>", +"output":[["StartTag","xr",{},true]]}, + +{"description":"Permitted slash but in close tag", +"input":"</br/>", +"output":["ParseError", ["StartTag", "br", {}], ["EndTag", "br"]]}, + +{"description":"Doctype public case-sensitivity (1)", +"input":"<!DoCtYpE HtMl PuBlIc \"AbC\" \"XyZ\">", +"output":[["DOCTYPE", "html", "AbC", "XyZ", true]]}, + +{"description":"Doctype public case-sensitivity (2)", +"input":"<!dOcTyPe hTmL pUbLiC \"aBc\" \"xYz\">", +"output":[["DOCTYPE", "html", "aBc", "xYz", true]]}, + +{"description":"Doctype system case-sensitivity (1)", +"input":"<!DoCtYpE HtMl SyStEm \"XyZ\">", +"output":[["DOCTYPE", "html", null, "XyZ", true]]}, + +{"description":"Doctype system case-sensitivity (2)", +"input":"<!dOcTyPe hTmL sYsTeM \"xYz\">", +"output":[["DOCTYPE", "html", null, "xYz", true]]}, + +{"description":"U+0000 in lookahead region after non-matching character", +"input":"<!doc>\u0000", +"output":["ParseError", ["Comment", "doc"], "ParseError", ["Character", "\uFFFD"]], +"ignoreErrorOrder":true}, + +{"description":"U+0000 in lookahead region", +"input":"<!doc\u0000", +"output":["ParseError", "ParseError", ["Comment", "doc\uFFFD"]], +"ignoreErrorOrder":true}, + +{"description":"U+0080 in lookahead region", +"input":"<!doc\u0080", +"output":["ParseError", "ParseError", ["Comment", "doc\u0080"]], +"ignoreErrorOrder":true}, + +{"description":"U+FDD1 in lookahead region", +"input":"<!doc\uFDD1", +"output":["ParseError", "ParseError", ["Comment", "doc\uFDD1"]], +"ignoreErrorOrder":true}, + +{"description":"U+1FFFF in lookahead region", +"input":"<!doc\uD83F\uDFFF", +"output":["ParseError", "ParseError", ["Comment", "doc\uD83F\uDFFF"]], +"ignoreErrorOrder":true}, + +{"description":"CR followed by U+0000", +"input":"\r\u0000", +"output":["ParseError", ["Character", "\n\uFFFD"]], +"ignoreErrorOrder":true}, + +{"description":"CR followed by non-LF", +"input":"\r?", +"output":[["Character", "\n?"]]}, + +{"description":"CR at EOF", +"input":"\r", +"output":[["Character", "\n"]]}, + +{"description":"LF at EOF", +"input":"\n", +"output":[["Character", "\n"]]}, + +{"description":"CR LF", +"input":"\r\n", +"output":[["Character", "\n"]]}, + +{"description":"CR CR", +"input":"\r\r", +"output":[["Character", "\n\n"]]}, + +{"description":"LF LF", +"input":"\n\n", +"output":[["Character", "\n\n"]]}, + +{"description":"LF CR", +"input":"\n\r", +"output":[["Character", "\n\n"]]}, + +{"description":"text CR CR CR text", +"input":"text\r\r\rtext", +"output":[["Character", "text\n\n\ntext"]]}, + +{"description":"Doctype publik", +"input":"<!DOCTYPE html PUBLIK \"AbC\" \"XyZ\">", +"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, + +{"description":"Doctype publi", +"input":"<!DOCTYPE html PUBLI", +"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, + +{"description":"Doctype sistem", +"input":"<!DOCTYPE html SISTEM \"AbC\">", +"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, + +{"description":"Doctype sys", +"input":"<!DOCTYPE html SYS", +"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, + +{"description":"Doctype html x>text", +"input":"<!DOCTYPE html x>text", +"output":["ParseError", ["DOCTYPE", "html", null, null, false], ["Character", "text"]]} + +]} diff --git a/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test5.test b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test5.test new file mode 100644 index 00000000000..8383fb0f3ac --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_test5.test @@ -0,0 +1,132 @@ +/** + * Tests in this file are taken from contentModelFlags.test, escapeFlag.test, + * and xmlViolation.test, at + * http://html5lib.googlecode.com/hg/testdata/tokenizer/. Those tests with + * a 'lastStartTag' field have been adjusted to add the start tag to the + * input and output, since these tests are run through the tree builder and + * not just the tokenizer. + */ + +var tokenizerTests = {"tests": [ + +{"description":"Commented close tag in [R]CDATA", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo<!--</xmp>--></xmp>", +"output":[["StartTag", "xmp", {}], ["Character", "foo<!--</xmp>-->"], ["EndTag", "xmp"]]}, + +{"description":"Bogus comment in [R]CDATA", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo<!-->baz</xmp>", +"output":[["StartTag", "xmp", {}], ["Character", "foo<!-->baz"], ["EndTag", "xmp"]]}, + +{"description":"End tag surrounded by bogus comment in [R]CDATA", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo<!--></xmp><!-->baz</xmp>", +"output":[["StartTag", "xmp", {}], ["Character", "foo<!-->"], ["EndTag", "xmp"], "ParseError", ["Comment", ""], ["Character", "baz"], ["EndTag", "xmp"]]}, + +{"description":"Commented entities in RCDATA", +"contentModelFlags":["RCDATA"], +"lastStartTag":"xmp", +"input":"<xmp> &amp; <!-- &amp; --> &amp; </xmp>", +"output":[["StartTag", "xmp", {}], ["Character", " & <!-- &amp; --> & "], ["EndTag", "xmp"]]}, + +{"description":"Incorrect comment ending sequences in [R]CDATA", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo<!-- x --x>x-- >x--!>x--<></xmp>", +"output":[["StartTag", "xmp", {}], ["Character", "foo<!-- x --x>x-- >x--!>x--<></xmp>"]]}, + +{"description":"Non-XML character", +"input":"a\uFFFFb", +"ignoreErrorOrder":true, +"output":["ParseError",["Character","a\uFFFDb"]]}, + +{"description":"Non-XML space", +"input":"a\u000Cb", +"ignoreErrorOrder":true, +"output":[["Character","a b"]]}, + +{"description":"Double hyphen in comment", +"input":"<!-- foo -- bar -->", +"output":["ParseError",["Comment"," foo - - bar "]]}, + +{"description":"FF between attributes", +"input":"<a b=''\u000Cc=''>", +"output":[["StartTag","a",{"b":"","c":""}]]}, + +{"description":"PLAINTEXT content model flag", +"contentModelFlags":["PLAINTEXT"], +"lastStartTag":"plaintext", +"input":"<plaintext><head>&body;", +"output":[["StartTag", "plaintext", {}], ["Character", "<head>&body;"]]}, + +{"description":"End tag closing RCDATA or CDATA", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo</xmp>", +"output":[["StartTag", "xmp", {}], ["Character", "foo"], ["EndTag", "xmp"]]}, + +{"description":"End tag closing RCDATA or CDATA (case-insensitivity)", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo</xMp>", +"output":[["StartTag", "xmp", {}], ["Character", "foo"], ["EndTag", "xmp"]]}, + +{"description":"End tag closing RCDATA or CDATA (ending with space)", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo</xmp ", +"output":[["StartTag", "xmp", {}], ["Character", "foo"], "ParseError"]}, + +{"description":"End tag closing RCDATA or CDATA (ending with EOF)", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo</xmp", +"output":[["StartTag", "xmp", {}], ["Character", "foo"], "ParseError"]}, + +{"description":"End tag closing RCDATA or CDATA (ending with slash)", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo</xmp/", +"output":[["StartTag", "xmp", {}], ["Character", "foo"], "ParseError"]}, + +{"description":"End tag not closing RCDATA or CDATA (ending with left-angle-bracket)", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo</xmp<", +"output":[["StartTag", "xmp", {}], ["Character", "foo</xmp<"]]}, + +{"description":"End tag with incorrect name in RCDATA or CDATA", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp></foo>bar</xmp>", +"output":[["StartTag", "xmp", {}], ["Character", "</foo>bar"], ["EndTag", "xmp"]]}, + +{"description":"End tag with incorrect name in RCDATA or CDATA (starting like correct name)", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp></foo>bar</xmpaar>", +"output":[["StartTag", "xmp", {}], ["Character", "</foo>bar</xmpaar>"]]}, + +{"description":"End tag closing RCDATA or CDATA, switching back to PCDATA", +"contentModelFlags":["RCDATA", "CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>foo</xmp></baz>", +"output":[["StartTag", "xmp", {}], ["Character", "foo"], ["EndTag", "xmp"], ["EndTag", "baz"]]}, + +{"description":"CDATA w/ something looking like an entity", +"contentModelFlags":["CDATA"], +"lastStartTag":"xmp", +"input":"<xmp>&foo;", +"output":[["StartTag", "xmp", {}], ["Character", "&foo;"]]}, + +{"description":"RCDATA w/ an entity", +"contentModelFlags":["RCDATA"], +"lastStartTag":"textarea", +"input":"<textarea>&lt;", +"output":[["StartTag", "textarea", {}], ["Character", "<"]]} + +]} diff --git a/parser/htmlparser/tests/mochitest/html5lib_tokenizer_unicode_chars.test b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_unicode_chars.test new file mode 100644 index 00000000000..3b29dd40597 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tokenizer_unicode_chars.test @@ -0,0 +1,1295 @@ +var tokenizerTests = {"tests": [ + +{"description": "Invalid Unicode character U+0001", +"input": "\u0001", +"output": ["ParseError", ["Character", "\u0001"]]}, + +{"description": "Invalid Unicode character U+0002", +"input": "\u0002", +"output": ["ParseError", ["Character", "\u0002"]]}, + +{"description": "Invalid Unicode character U+0003", +"input": "\u0003", +"output": ["ParseError", ["Character", "\u0003"]]}, + +{"description": "Invalid Unicode character U+0004", +"input": "\u0004", +"output": ["ParseError", ["Character", "\u0004"]]}, + +{"description": "Invalid Unicode character U+0005", +"input": "\u0005", +"output": ["ParseError", ["Character", "\u0005"]]}, + +{"description": "Invalid Unicode character U+0006", +"input": "\u0006", +"output": ["ParseError", ["Character", "\u0006"]]}, + +{"description": "Invalid Unicode character U+0007", +"input": "\u0007", +"output": ["ParseError", ["Character", "\u0007"]]}, + +{"description": "Invalid Unicode character U+0008", +"input": "\u0008", +"output": ["ParseError", ["Character", "\u0008"]]}, + +{"description": "Invalid Unicode character U+000B", +"input": "\u000B", +"output": ["ParseError", ["Character", "\u000B"]]}, + +{"description": "Invalid Unicode character U+000E", +"input": "\u000E", +"output": ["ParseError", ["Character", "\u000E"]]}, + +{"description": "Invalid Unicode character U+000F", +"input": "\u000F", +"output": ["ParseError", ["Character", "\u000F"]]}, + +{"description": "Invalid Unicode character U+0010", +"input": "\u0010", +"output": ["ParseError", ["Character", "\u0010"]]}, + +{"description": "Invalid Unicode character U+0011", +"input": "\u0011", +"output": ["ParseError", ["Character", "\u0011"]]}, + +{"description": "Invalid Unicode character U+0012", +"input": "\u0012", +"output": ["ParseError", ["Character", "\u0012"]]}, + +{"description": "Invalid Unicode character U+0013", +"input": "\u0013", +"output": ["ParseError", ["Character", "\u0013"]]}, + +{"description": "Invalid Unicode character U+0014", +"input": "\u0014", +"output": ["ParseError", ["Character", "\u0014"]]}, + +{"description": "Invalid Unicode character U+0015", +"input": "\u0015", +"output": ["ParseError", ["Character", "\u0015"]]}, + +{"description": "Invalid Unicode character U+0016", +"input": "\u0016", +"output": ["ParseError", ["Character", "\u0016"]]}, + +{"description": "Invalid Unicode character U+0017", +"input": "\u0017", +"output": ["ParseError", ["Character", "\u0017"]]}, + +{"description": "Invalid Unicode character U+0018", +"input": "\u0018", +"output": ["ParseError", ["Character", "\u0018"]]}, + +{"description": "Invalid Unicode character U+0019", +"input": "\u0019", +"output": ["ParseError", ["Character", "\u0019"]]}, + +{"description": "Invalid Unicode character U+001A", +"input": "\u001A", +"output": ["ParseError", ["Character", "\u001A"]]}, + +{"description": "Invalid Unicode character U+001B", +"input": "\u001B", +"output": ["ParseError", ["Character", "\u001B"]]}, + +{"description": "Invalid Unicode character U+001C", +"input": "\u001C", +"output": ["ParseError", ["Character", "\u001C"]]}, + +{"description": "Invalid Unicode character U+001D", +"input": "\u001D", +"output": ["ParseError", ["Character", "\u001D"]]}, + +{"description": "Invalid Unicode character U+001E", +"input": "\u001E", +"output": ["ParseError", ["Character", "\u001E"]]}, + +{"description": "Invalid Unicode character U+001F", +"input": "\u001F", +"output": ["ParseError", ["Character", "\u001F"]]}, + +{"description": "Invalid Unicode character U+007F", +"input": "\u007F", +"output": ["ParseError", ["Character", "\u007F"]]}, + +{"description": "Invalid Unicode character U+FDD0", +"input": "\uFDD0", +"output": ["ParseError", ["Character", "\uFDD0"]]}, + +{"description": "Invalid Unicode character U+FDD1", +"input": "\uFDD1", +"output": ["ParseError", ["Character", "\uFDD1"]]}, + +{"description": "Invalid Unicode character U+FDD2", +"input": "\uFDD2", +"output": ["ParseError", ["Character", "\uFDD2"]]}, + +{"description": "Invalid Unicode character U+FDD3", +"input": "\uFDD3", +"output": ["ParseError", ["Character", "\uFDD3"]]}, + +{"description": "Invalid Unicode character U+FDD4", +"input": "\uFDD4", +"output": ["ParseError", ["Character", "\uFDD4"]]}, + +{"description": "Invalid Unicode character U+FDD5", +"input": "\uFDD5", +"output": ["ParseError", ["Character", "\uFDD5"]]}, + +{"description": "Invalid Unicode character U+FDD6", +"input": "\uFDD6", +"output": ["ParseError", ["Character", "\uFDD6"]]}, + +{"description": "Invalid Unicode character U+FDD7", +"input": "\uFDD7", +"output": ["ParseError", ["Character", "\uFDD7"]]}, + +{"description": "Invalid Unicode character U+FDD8", +"input": "\uFDD8", +"output": ["ParseError", ["Character", "\uFDD8"]]}, + +{"description": "Invalid Unicode character U+FDD9", +"input": "\uFDD9", +"output": ["ParseError", ["Character", "\uFDD9"]]}, + +{"description": "Invalid Unicode character U+FDDA", +"input": "\uFDDA", +"output": ["ParseError", ["Character", "\uFDDA"]]}, + +{"description": "Invalid Unicode character U+FDDB", +"input": "\uFDDB", +"output": ["ParseError", ["Character", "\uFDDB"]]}, + +{"description": "Invalid Unicode character U+FDDC", +"input": "\uFDDC", +"output": ["ParseError", ["Character", "\uFDDC"]]}, + +{"description": "Invalid Unicode character U+FDDD", +"input": "\uFDDD", +"output": ["ParseError", ["Character", "\uFDDD"]]}, + +{"description": "Invalid Unicode character U+FDDE", +"input": "\uFDDE", +"output": ["ParseError", ["Character", "\uFDDE"]]}, + +{"description": "Invalid Unicode character U+FDDF", +"input": "\uFDDF", +"output": ["ParseError", ["Character", "\uFDDF"]]}, + +{"description": "Invalid Unicode character U+FDE0", +"input": "\uFDE0", +"output": ["ParseError", ["Character", "\uFDE0"]]}, + +{"description": "Invalid Unicode character U+FDE1", +"input": "\uFDE1", +"output": ["ParseError", ["Character", "\uFDE1"]]}, + +{"description": "Invalid Unicode character U+FDE2", +"input": "\uFDE2", +"output": ["ParseError", ["Character", "\uFDE2"]]}, + +{"description": "Invalid Unicode character U+FDE3", +"input": "\uFDE3", +"output": ["ParseError", ["Character", "\uFDE3"]]}, + +{"description": "Invalid Unicode character U+FDE4", +"input": "\uFDE4", +"output": ["ParseError", ["Character", "\uFDE4"]]}, + +{"description": "Invalid Unicode character U+FDE5", +"input": "\uFDE5", +"output": ["ParseError", ["Character", "\uFDE5"]]}, + +{"description": "Invalid Unicode character U+FDE6", +"input": "\uFDE6", +"output": ["ParseError", ["Character", "\uFDE6"]]}, + +{"description": "Invalid Unicode character U+FDE7", +"input": "\uFDE7", +"output": ["ParseError", ["Character", "\uFDE7"]]}, + +{"description": "Invalid Unicode character U+FDE8", +"input": "\uFDE8", +"output": ["ParseError", ["Character", "\uFDE8"]]}, + +{"description": "Invalid Unicode character U+FDE9", +"input": "\uFDE9", +"output": ["ParseError", ["Character", "\uFDE9"]]}, + +{"description": "Invalid Unicode character U+FDEA", +"input": "\uFDEA", +"output": ["ParseError", ["Character", "\uFDEA"]]}, + +{"description": "Invalid Unicode character U+FDEB", +"input": "\uFDEB", +"output": ["ParseError", ["Character", "\uFDEB"]]}, + +{"description": "Invalid Unicode character U+FDEC", +"input": "\uFDEC", +"output": ["ParseError", ["Character", "\uFDEC"]]}, + +{"description": "Invalid Unicode character U+FDED", +"input": "\uFDED", +"output": ["ParseError", ["Character", "\uFDED"]]}, + +{"description": "Invalid Unicode character U+FDEE", +"input": "\uFDEE", +"output": ["ParseError", ["Character", "\uFDEE"]]}, + +{"description": "Invalid Unicode character U+FDEF", +"input": "\uFDEF", +"output": ["ParseError", ["Character", "\uFDEF"]]}, + +{"description": "Invalid Unicode character U+FFFE", +"input": "\uFFFE", +"output": ["ParseError", ["Character", "\uFFFE"]]}, + +{"description": "Invalid Unicode character U+FFFF", +"input": "\uFFFF", +"output": ["ParseError", ["Character", "\uFFFF"]]}, + +{"description": "Invalid Unicode character U+1FFFE", +"input": "\uD83F\uDFFE", +"output": ["ParseError", ["Character", "\uD83F\uDFFE"]]}, + +{"description": "Invalid Unicode character U+1FFFF", +"input": "\uD83F\uDFFF", +"output": ["ParseError", ["Character", "\uD83F\uDFFF"]]}, + +{"description": "Invalid Unicode character U+2FFFE", +"input": "\uD87F\uDFFE", +"output": ["ParseError", ["Character", "\uD87F\uDFFE"]]}, + +{"description": "Invalid Unicode character U+2FFFF", +"input": "\uD87F\uDFFF", +"output": ["ParseError", ["Character", "\uD87F\uDFFF"]]}, + +{"description": "Invalid Unicode character U+3FFFE", +"input": "\uD8BF\uDFFE", +"output": ["ParseError", ["Character", "\uD8BF\uDFFE"]]}, + +{"description": "Invalid Unicode character U+3FFFF", +"input": "\uD8BF\uDFFF", +"output": ["ParseError", ["Character", "\uD8BF\uDFFF"]]}, + +{"description": "Invalid Unicode character U+4FFFE", +"input": "\uD8FF\uDFFE", +"output": ["ParseError", ["Character", "\uD8FF\uDFFE"]]}, + +{"description": "Invalid Unicode character U+4FFFF", +"input": "\uD8FF\uDFFF", +"output": ["ParseError", ["Character", "\uD8FF\uDFFF"]]}, + +{"description": "Invalid Unicode character U+5FFFE", +"input": "\uD93F\uDFFE", +"output": ["ParseError", ["Character", "\uD93F\uDFFE"]]}, + +{"description": "Invalid Unicode character U+5FFFF", +"input": "\uD93F\uDFFF", +"output": ["ParseError", ["Character", "\uD93F\uDFFF"]]}, + +{"description": "Invalid Unicode character U+6FFFE", +"input": "\uD97F\uDFFE", +"output": ["ParseError", ["Character", "\uD97F\uDFFE"]]}, + +{"description": "Invalid Unicode character U+6FFFF", +"input": "\uD97F\uDFFF", +"output": ["ParseError", ["Character", "\uD97F\uDFFF"]]}, + +{"description": "Invalid Unicode character U+7FFFE", +"input": "\uD9BF\uDFFE", +"output": ["ParseError", ["Character", "\uD9BF\uDFFE"]]}, + +{"description": "Invalid Unicode character U+7FFFF", +"input": "\uD9BF\uDFFF", +"output": ["ParseError", ["Character", "\uD9BF\uDFFF"]]}, + +{"description": "Invalid Unicode character U+8FFFE", +"input": "\uD9FF\uDFFE", +"output": ["ParseError", ["Character", "\uD9FF\uDFFE"]]}, + +{"description": "Invalid Unicode character U+8FFFF", +"input": "\uD9FF\uDFFF", +"output": ["ParseError", ["Character", "\uD9FF\uDFFF"]]}, + +{"description": "Invalid Unicode character U+9FFFE", +"input": "\uDA3F\uDFFE", +"output": ["ParseError", ["Character", "\uDA3F\uDFFE"]]}, + +{"description": "Invalid Unicode character U+9FFFF", +"input": "\uDA3F\uDFFF", +"output": ["ParseError", ["Character", "\uDA3F\uDFFF"]]}, + +{"description": "Invalid Unicode character U+AFFFE", +"input": "\uDA7F\uDFFE", +"output": ["ParseError", ["Character", "\uDA7F\uDFFE"]]}, + +{"description": "Invalid Unicode character U+AFFFF", +"input": "\uDA7F\uDFFF", +"output": ["ParseError", ["Character", "\uDA7F\uDFFF"]]}, + +{"description": "Invalid Unicode character U+BFFFE", +"input": "\uDABF\uDFFE", +"output": ["ParseError", ["Character", "\uDABF\uDFFE"]]}, + +{"description": "Invalid Unicode character U+BFFFF", +"input": "\uDABF\uDFFF", +"output": ["ParseError", ["Character", "\uDABF\uDFFF"]]}, + +{"description": "Invalid Unicode character U+CFFFE", +"input": "\uDAFF\uDFFE", +"output": ["ParseError", ["Character", "\uDAFF\uDFFE"]]}, + +{"description": "Invalid Unicode character U+CFFFF", +"input": "\uDAFF\uDFFF", +"output": ["ParseError", ["Character", "\uDAFF\uDFFF"]]}, + +{"description": "Invalid Unicode character U+DFFFE", +"input": "\uDB3F\uDFFE", +"output": ["ParseError", ["Character", "\uDB3F\uDFFE"]]}, + +{"description": "Invalid Unicode character U+DFFFF", +"input": "\uDB3F\uDFFF", +"output": ["ParseError", ["Character", "\uDB3F\uDFFF"]]}, + +{"description": "Invalid Unicode character U+EFFFE", +"input": "\uDB7F\uDFFE", +"output": ["ParseError", ["Character", "\uDB7F\uDFFE"]]}, + +{"description": "Invalid Unicode character U+EFFFF", +"input": "\uDB7F\uDFFF", +"output": ["ParseError", ["Character", "\uDB7F\uDFFF"]]}, + +{"description": "Invalid Unicode character U+FFFFE", +"input": "\uDBBF\uDFFE", +"output": ["ParseError", ["Character", "\uDBBF\uDFFE"]]}, + +{"description": "Invalid Unicode character U+FFFFF", +"input": "\uDBBF\uDFFF", +"output": ["ParseError", ["Character", "\uDBBF\uDFFF"]]}, + +{"description": "Invalid Unicode character U+10FFFE", +"input": "\uDBFF\uDFFE", +"output": ["ParseError", ["Character", "\uDBFF\uDFFE"]]}, + +{"description": "Invalid Unicode character U+10FFFF", +"input": "\uDBFF\uDFFF", +"output": ["ParseError", ["Character", "\uDBFF\uDFFF"]]}, + +{"description": "Valid Unicode character U+0009", +"input": "\u0009", +"output": [["Character", "\u0009"]]}, + +{"description": "Valid Unicode character U+000A", +"input": "\u000A", +"output": [["Character", "\u000A"]]}, + +{"description": "Valid Unicode character U+0020", +"input": "\u0020", +"output": [["Character", "\u0020"]]}, + +{"description": "Valid Unicode character U+0021", +"input": "\u0021", +"output": [["Character", "\u0021"]]}, + +{"description": "Valid Unicode character U+0022", +"input": "\u0022", +"output": [["Character", "\u0022"]]}, + +{"description": "Valid Unicode character U+0023", +"input": "\u0023", +"output": [["Character", "\u0023"]]}, + +{"description": "Valid Unicode character U+0024", +"input": "\u0024", +"output": [["Character", "\u0024"]]}, + +{"description": "Valid Unicode character U+0025", +"input": "\u0025", +"output": [["Character", "\u0025"]]}, + +{"description": "Valid Unicode character U+0026", +"input": "\u0026", +"output": [["Character", "\u0026"]]}, + +{"description": "Valid Unicode character U+0027", +"input": "\u0027", +"output": [["Character", "\u0027"]]}, + +{"description": "Valid Unicode character U+0028", +"input": "\u0028", +"output": [["Character", "\u0028"]]}, + +{"description": "Valid Unicode character U+0029", +"input": "\u0029", +"output": [["Character", "\u0029"]]}, + +{"description": "Valid Unicode character U+002A", +"input": "\u002A", +"output": [["Character", "\u002A"]]}, + +{"description": "Valid Unicode character U+002B", +"input": "\u002B", +"output": [["Character", "\u002B"]]}, + +{"description": "Valid Unicode character U+002C", +"input": "\u002C", +"output": [["Character", "\u002C"]]}, + +{"description": "Valid Unicode character U+002D", +"input": "\u002D", +"output": [["Character", "\u002D"]]}, + +{"description": "Valid Unicode character U+002E", +"input": "\u002E", +"output": [["Character", "\u002E"]]}, + +{"description": "Valid Unicode character U+002F", +"input": "\u002F", +"output": [["Character", "\u002F"]]}, + +{"description": "Valid Unicode character U+0030", +"input": "\u0030", +"output": [["Character", "\u0030"]]}, + +{"description": "Valid Unicode character U+0031", +"input": "\u0031", +"output": [["Character", "\u0031"]]}, + +{"description": "Valid Unicode character U+0032", +"input": "\u0032", +"output": [["Character", "\u0032"]]}, + +{"description": "Valid Unicode character U+0033", +"input": "\u0033", +"output": [["Character", "\u0033"]]}, + +{"description": "Valid Unicode character U+0034", +"input": "\u0034", +"output": [["Character", "\u0034"]]}, + +{"description": "Valid Unicode character U+0035", +"input": "\u0035", +"output": [["Character", "\u0035"]]}, + +{"description": "Valid Unicode character U+0036", +"input": "\u0036", +"output": [["Character", "\u0036"]]}, + +{"description": "Valid Unicode character U+0037", +"input": "\u0037", +"output": [["Character", "\u0037"]]}, + +{"description": "Valid Unicode character U+0038", +"input": "\u0038", +"output": [["Character", "\u0038"]]}, + +{"description": "Valid Unicode character U+0039", +"input": "\u0039", +"output": [["Character", "\u0039"]]}, + +{"description": "Valid Unicode character U+003A", +"input": "\u003A", +"output": [["Character", "\u003A"]]}, + +{"description": "Valid Unicode character U+003B", +"input": "\u003B", +"output": [["Character", "\u003B"]]}, + +{"description": "Valid Unicode character U+003D", +"input": "\u003D", +"output": [["Character", "\u003D"]]}, + +{"description": "Valid Unicode character U+003E", +"input": "\u003E", +"output": [["Character", "\u003E"]]}, + +{"description": "Valid Unicode character U+003F", +"input": "\u003F", +"output": [["Character", "\u003F"]]}, + +{"description": "Valid Unicode character U+0040", +"input": "\u0040", +"output": [["Character", "\u0040"]]}, + +{"description": "Valid Unicode character U+0041", +"input": "\u0041", +"output": [["Character", "\u0041"]]}, + +{"description": "Valid Unicode character U+0042", +"input": "\u0042", +"output": [["Character", "\u0042"]]}, + +{"description": "Valid Unicode character U+0043", +"input": "\u0043", +"output": [["Character", "\u0043"]]}, + +{"description": "Valid Unicode character U+0044", +"input": "\u0044", +"output": [["Character", "\u0044"]]}, + +{"description": "Valid Unicode character U+0045", +"input": "\u0045", +"output": [["Character", "\u0045"]]}, + +{"description": "Valid Unicode character U+0046", +"input": "\u0046", +"output": [["Character", "\u0046"]]}, + +{"description": "Valid Unicode character U+0047", +"input": "\u0047", +"output": [["Character", "\u0047"]]}, + +{"description": "Valid Unicode character U+0048", +"input": "\u0048", +"output": [["Character", "\u0048"]]}, + +{"description": "Valid Unicode character U+0049", +"input": "\u0049", +"output": [["Character", "\u0049"]]}, + +{"description": "Valid Unicode character U+004A", +"input": "\u004A", +"output": [["Character", "\u004A"]]}, + +{"description": "Valid Unicode character U+004B", +"input": "\u004B", +"output": [["Character", "\u004B"]]}, + +{"description": "Valid Unicode character U+004C", +"input": "\u004C", +"output": [["Character", "\u004C"]]}, + +{"description": "Valid Unicode character U+004D", +"input": "\u004D", +"output": [["Character", "\u004D"]]}, + +{"description": "Valid Unicode character U+004E", +"input": "\u004E", +"output": [["Character", "\u004E"]]}, + +{"description": "Valid Unicode character U+004F", +"input": "\u004F", +"output": [["Character", "\u004F"]]}, + +{"description": "Valid Unicode character U+0050", +"input": "\u0050", +"output": [["Character", "\u0050"]]}, + +{"description": "Valid Unicode character U+0051", +"input": "\u0051", +"output": [["Character", "\u0051"]]}, + +{"description": "Valid Unicode character U+0052", +"input": "\u0052", +"output": [["Character", "\u0052"]]}, + +{"description": "Valid Unicode character U+0053", +"input": "\u0053", +"output": [["Character", "\u0053"]]}, + +{"description": "Valid Unicode character U+0054", +"input": "\u0054", +"output": [["Character", "\u0054"]]}, + +{"description": "Valid Unicode character U+0055", +"input": "\u0055", +"output": [["Character", "\u0055"]]}, + +{"description": "Valid Unicode character U+0056", +"input": "\u0056", +"output": [["Character", "\u0056"]]}, + +{"description": "Valid Unicode character U+0057", +"input": "\u0057", +"output": [["Character", "\u0057"]]}, + +{"description": "Valid Unicode character U+0058", +"input": "\u0058", +"output": [["Character", "\u0058"]]}, + +{"description": "Valid Unicode character U+0059", +"input": "\u0059", +"output": [["Character", "\u0059"]]}, + +{"description": "Valid Unicode character U+005A", +"input": "\u005A", +"output": [["Character", "\u005A"]]}, + +{"description": "Valid Unicode character U+005B", +"input": "\u005B", +"output": [["Character", "\u005B"]]}, + +{"description": "Valid Unicode character U+005C", +"input": "\u005C", +"output": [["Character", "\u005C"]]}, + +{"description": "Valid Unicode character U+005D", +"input": "\u005D", +"output": [["Character", "\u005D"]]}, + +{"description": "Valid Unicode character U+005E", +"input": "\u005E", +"output": [["Character", "\u005E"]]}, + +{"description": "Valid Unicode character U+005F", +"input": "\u005F", +"output": [["Character", "\u005F"]]}, + +{"description": "Valid Unicode character U+0060", +"input": "\u0060", +"output": [["Character", "\u0060"]]}, + +{"description": "Valid Unicode character U+0061", +"input": "\u0061", +"output": [["Character", "\u0061"]]}, + +{"description": "Valid Unicode character U+0062", +"input": "\u0062", +"output": [["Character", "\u0062"]]}, + +{"description": "Valid Unicode character U+0063", +"input": "\u0063", +"output": [["Character", "\u0063"]]}, + +{"description": "Valid Unicode character U+0064", +"input": "\u0064", +"output": [["Character", "\u0064"]]}, + +{"description": "Valid Unicode character U+0065", +"input": "\u0065", +"output": [["Character", "\u0065"]]}, + +{"description": "Valid Unicode character U+0066", +"input": "\u0066", +"output": [["Character", "\u0066"]]}, + +{"description": "Valid Unicode character U+0067", +"input": "\u0067", +"output": [["Character", "\u0067"]]}, + +{"description": "Valid Unicode character U+0068", +"input": "\u0068", +"output": [["Character", "\u0068"]]}, + +{"description": "Valid Unicode character U+0069", +"input": "\u0069", +"output": [["Character", "\u0069"]]}, + +{"description": "Valid Unicode character U+006A", +"input": "\u006A", +"output": [["Character", "\u006A"]]}, + +{"description": "Valid Unicode character U+006B", +"input": "\u006B", +"output": [["Character", "\u006B"]]}, + +{"description": "Valid Unicode character U+006C", +"input": "\u006C", +"output": [["Character", "\u006C"]]}, + +{"description": "Valid Unicode character U+006D", +"input": "\u006D", +"output": [["Character", "\u006D"]]}, + +{"description": "Valid Unicode character U+006E", +"input": "\u006E", +"output": [["Character", "\u006E"]]}, + +{"description": "Valid Unicode character U+006F", +"input": "\u006F", +"output": [["Character", "\u006F"]]}, + +{"description": "Valid Unicode character U+0070", +"input": "\u0070", +"output": [["Character", "\u0070"]]}, + +{"description": "Valid Unicode character U+0071", +"input": "\u0071", +"output": [["Character", "\u0071"]]}, + +{"description": "Valid Unicode character U+0072", +"input": "\u0072", +"output": [["Character", "\u0072"]]}, + +{"description": "Valid Unicode character U+0073", +"input": "\u0073", +"output": [["Character", "\u0073"]]}, + +{"description": "Valid Unicode character U+0074", +"input": "\u0074", +"output": [["Character", "\u0074"]]}, + +{"description": "Valid Unicode character U+0075", +"input": "\u0075", +"output": [["Character", "\u0075"]]}, + +{"description": "Valid Unicode character U+0076", +"input": "\u0076", +"output": [["Character", "\u0076"]]}, + +{"description": "Valid Unicode character U+0077", +"input": "\u0077", +"output": [["Character", "\u0077"]]}, + +{"description": "Valid Unicode character U+0078", +"input": "\u0078", +"output": [["Character", "\u0078"]]}, + +{"description": "Valid Unicode character U+0079", +"input": "\u0079", +"output": [["Character", "\u0079"]]}, + +{"description": "Valid Unicode character U+007A", +"input": "\u007A", +"output": [["Character", "\u007A"]]}, + +{"description": "Valid Unicode character U+007B", +"input": "\u007B", +"output": [["Character", "\u007B"]]}, + +{"description": "Valid Unicode character U+007C", +"input": "\u007C", +"output": [["Character", "\u007C"]]}, + +{"description": "Valid Unicode character U+007D", +"input": "\u007D", +"output": [["Character", "\u007D"]]}, + +{"description": "Valid Unicode character U+007E", +"input": "\u007E", +"output": [["Character", "\u007E"]]}, + +{"description": "Valid Unicode character U+00A0", +"input": "\u00A0", +"output": [["Character", "\u00A0"]]}, + +{"description": "Valid Unicode character U+00A1", +"input": "\u00A1", +"output": [["Character", "\u00A1"]]}, + +{"description": "Valid Unicode character U+00A2", +"input": "\u00A2", +"output": [["Character", "\u00A2"]]}, + +{"description": "Valid Unicode character U+00A3", +"input": "\u00A3", +"output": [["Character", "\u00A3"]]}, + +{"description": "Valid Unicode character U+00A4", +"input": "\u00A4", +"output": [["Character", "\u00A4"]]}, + +{"description": "Valid Unicode character U+00A5", +"input": "\u00A5", +"output": [["Character", "\u00A5"]]}, + +{"description": "Valid Unicode character U+00A6", +"input": "\u00A6", +"output": [["Character", "\u00A6"]]}, + +{"description": "Valid Unicode character U+00A7", +"input": "\u00A7", +"output": [["Character", "\u00A7"]]}, + +{"description": "Valid Unicode character U+00A8", +"input": "\u00A8", +"output": [["Character", "\u00A8"]]}, + +{"description": "Valid Unicode character U+00A9", +"input": "\u00A9", +"output": [["Character", "\u00A9"]]}, + +{"description": "Valid Unicode character U+00AA", +"input": "\u00AA", +"output": [["Character", "\u00AA"]]}, + +{"description": "Valid Unicode character U+00AB", +"input": "\u00AB", +"output": [["Character", "\u00AB"]]}, + +{"description": "Valid Unicode character U+00AC", +"input": "\u00AC", +"output": [["Character", "\u00AC"]]}, + +{"description": "Valid Unicode character U+00AD", +"input": "\u00AD", +"output": [["Character", "\u00AD"]]}, + +{"description": "Valid Unicode character U+00AE", +"input": "\u00AE", +"output": [["Character", "\u00AE"]]}, + +{"description": "Valid Unicode character U+00AF", +"input": "\u00AF", +"output": [["Character", "\u00AF"]]}, + +{"description": "Valid Unicode character U+00B0", +"input": "\u00B0", +"output": [["Character", "\u00B0"]]}, + +{"description": "Valid Unicode character U+00B1", +"input": "\u00B1", +"output": [["Character", "\u00B1"]]}, + +{"description": "Valid Unicode character U+00B2", +"input": "\u00B2", +"output": [["Character", "\u00B2"]]}, + +{"description": "Valid Unicode character U+00B3", +"input": "\u00B3", +"output": [["Character", "\u00B3"]]}, + +{"description": "Valid Unicode character U+00B4", +"input": "\u00B4", +"output": [["Character", "\u00B4"]]}, + +{"description": "Valid Unicode character U+00B5", +"input": "\u00B5", +"output": [["Character", "\u00B5"]]}, + +{"description": "Valid Unicode character U+00B6", +"input": "\u00B6", +"output": [["Character", "\u00B6"]]}, + +{"description": "Valid Unicode character U+00B7", +"input": "\u00B7", +"output": [["Character", "\u00B7"]]}, + +{"description": "Valid Unicode character U+00B8", +"input": "\u00B8", +"output": [["Character", "\u00B8"]]}, + +{"description": "Valid Unicode character U+00B9", +"input": "\u00B9", +"output": [["Character", "\u00B9"]]}, + +{"description": "Valid Unicode character U+00BA", +"input": "\u00BA", +"output": [["Character", "\u00BA"]]}, + +{"description": "Valid Unicode character U+00BB", +"input": "\u00BB", +"output": [["Character", "\u00BB"]]}, + +{"description": "Valid Unicode character U+00BC", +"input": "\u00BC", +"output": [["Character", "\u00BC"]]}, + +{"description": "Valid Unicode character U+00BD", +"input": "\u00BD", +"output": [["Character", "\u00BD"]]}, + +{"description": "Valid Unicode character U+00BE", +"input": "\u00BE", +"output": [["Character", "\u00BE"]]}, + +{"description": "Valid Unicode character U+00BF", +"input": "\u00BF", +"output": [["Character", "\u00BF"]]}, + +{"description": "Valid Unicode character U+00C0", +"input": "\u00C0", +"output": [["Character", "\u00C0"]]}, + +{"description": "Valid Unicode character U+00C1", +"input": "\u00C1", +"output": [["Character", "\u00C1"]]}, + +{"description": "Valid Unicode character U+00C2", +"input": "\u00C2", +"output": [["Character", "\u00C2"]]}, + +{"description": "Valid Unicode character U+00C3", +"input": "\u00C3", +"output": [["Character", "\u00C3"]]}, + +{"description": "Valid Unicode character U+00C4", +"input": "\u00C4", +"output": [["Character", "\u00C4"]]}, + +{"description": "Valid Unicode character U+00C5", +"input": "\u00C5", +"output": [["Character", "\u00C5"]]}, + +{"description": "Valid Unicode character U+00C6", +"input": "\u00C6", +"output": [["Character", "\u00C6"]]}, + +{"description": "Valid Unicode character U+00C7", +"input": "\u00C7", +"output": [["Character", "\u00C7"]]}, + +{"description": "Valid Unicode character U+00C8", +"input": "\u00C8", +"output": [["Character", "\u00C8"]]}, + +{"description": "Valid Unicode character U+00C9", +"input": "\u00C9", +"output": [["Character", "\u00C9"]]}, + +{"description": "Valid Unicode character U+00CA", +"input": "\u00CA", +"output": [["Character", "\u00CA"]]}, + +{"description": "Valid Unicode character U+00CB", +"input": "\u00CB", +"output": [["Character", "\u00CB"]]}, + +{"description": "Valid Unicode character U+00CC", +"input": "\u00CC", +"output": [["Character", "\u00CC"]]}, + +{"description": "Valid Unicode character U+00CD", +"input": "\u00CD", +"output": [["Character", "\u00CD"]]}, + +{"description": "Valid Unicode character U+00CE", +"input": "\u00CE", +"output": [["Character", "\u00CE"]]}, + +{"description": "Valid Unicode character U+00CF", +"input": "\u00CF", +"output": [["Character", "\u00CF"]]}, + +{"description": "Valid Unicode character U+00D0", +"input": "\u00D0", +"output": [["Character", "\u00D0"]]}, + +{"description": "Valid Unicode character U+00D1", +"input": "\u00D1", +"output": [["Character", "\u00D1"]]}, + +{"description": "Valid Unicode character U+00D2", +"input": "\u00D2", +"output": [["Character", "\u00D2"]]}, + +{"description": "Valid Unicode character U+00D3", +"input": "\u00D3", +"output": [["Character", "\u00D3"]]}, + +{"description": "Valid Unicode character U+00D4", +"input": "\u00D4", +"output": [["Character", "\u00D4"]]}, + +{"description": "Valid Unicode character U+00D5", +"input": "\u00D5", +"output": [["Character", "\u00D5"]]}, + +{"description": "Valid Unicode character U+00D6", +"input": "\u00D6", +"output": [["Character", "\u00D6"]]}, + +{"description": "Valid Unicode character U+00D7", +"input": "\u00D7", +"output": [["Character", "\u00D7"]]}, + +{"description": "Valid Unicode character U+00D8", +"input": "\u00D8", +"output": [["Character", "\u00D8"]]}, + +{"description": "Valid Unicode character U+00D9", +"input": "\u00D9", +"output": [["Character", "\u00D9"]]}, + +{"description": "Valid Unicode character U+00DA", +"input": "\u00DA", +"output": [["Character", "\u00DA"]]}, + +{"description": "Valid Unicode character U+00DB", +"input": "\u00DB", +"output": [["Character", "\u00DB"]]}, + +{"description": "Valid Unicode character U+00DC", +"input": "\u00DC", +"output": [["Character", "\u00DC"]]}, + +{"description": "Valid Unicode character U+00DD", +"input": "\u00DD", +"output": [["Character", "\u00DD"]]}, + +{"description": "Valid Unicode character U+00DE", +"input": "\u00DE", +"output": [["Character", "\u00DE"]]}, + +{"description": "Valid Unicode character U+00DF", +"input": "\u00DF", +"output": [["Character", "\u00DF"]]}, + +{"description": "Valid Unicode character U+00E0", +"input": "\u00E0", +"output": [["Character", "\u00E0"]]}, + +{"description": "Valid Unicode character U+00E1", +"input": "\u00E1", +"output": [["Character", "\u00E1"]]}, + +{"description": "Valid Unicode character U+00E2", +"input": "\u00E2", +"output": [["Character", "\u00E2"]]}, + +{"description": "Valid Unicode character U+00E3", +"input": "\u00E3", +"output": [["Character", "\u00E3"]]}, + +{"description": "Valid Unicode character U+00E4", +"input": "\u00E4", +"output": [["Character", "\u00E4"]]}, + +{"description": "Valid Unicode character U+00E5", +"input": "\u00E5", +"output": [["Character", "\u00E5"]]}, + +{"description": "Valid Unicode character U+00E6", +"input": "\u00E6", +"output": [["Character", "\u00E6"]]}, + +{"description": "Valid Unicode character U+00E7", +"input": "\u00E7", +"output": [["Character", "\u00E7"]]}, + +{"description": "Valid Unicode character U+00E8", +"input": "\u00E8", +"output": [["Character", "\u00E8"]]}, + +{"description": "Valid Unicode character U+00E9", +"input": "\u00E9", +"output": [["Character", "\u00E9"]]}, + +{"description": "Valid Unicode character U+00EA", +"input": "\u00EA", +"output": [["Character", "\u00EA"]]}, + +{"description": "Valid Unicode character U+00EB", +"input": "\u00EB", +"output": [["Character", "\u00EB"]]}, + +{"description": "Valid Unicode character U+00EC", +"input": "\u00EC", +"output": [["Character", "\u00EC"]]}, + +{"description": "Valid Unicode character U+00ED", +"input": "\u00ED", +"output": [["Character", "\u00ED"]]}, + +{"description": "Valid Unicode character U+00EE", +"input": "\u00EE", +"output": [["Character", "\u00EE"]]}, + +{"description": "Valid Unicode character U+00EF", +"input": "\u00EF", +"output": [["Character", "\u00EF"]]}, + +{"description": "Valid Unicode character U+00F0", +"input": "\u00F0", +"output": [["Character", "\u00F0"]]}, + +{"description": "Valid Unicode character U+00F1", +"input": "\u00F1", +"output": [["Character", "\u00F1"]]}, + +{"description": "Valid Unicode character U+00F2", +"input": "\u00F2", +"output": [["Character", "\u00F2"]]}, + +{"description": "Valid Unicode character U+00F3", +"input": "\u00F3", +"output": [["Character", "\u00F3"]]}, + +{"description": "Valid Unicode character U+00F4", +"input": "\u00F4", +"output": [["Character", "\u00F4"]]}, + +{"description": "Valid Unicode character U+00F5", +"input": "\u00F5", +"output": [["Character", "\u00F5"]]}, + +{"description": "Valid Unicode character U+00F6", +"input": "\u00F6", +"output": [["Character", "\u00F6"]]}, + +{"description": "Valid Unicode character U+00F7", +"input": "\u00F7", +"output": [["Character", "\u00F7"]]}, + +{"description": "Valid Unicode character U+00F8", +"input": "\u00F8", +"output": [["Character", "\u00F8"]]}, + +{"description": "Valid Unicode character U+00F9", +"input": "\u00F9", +"output": [["Character", "\u00F9"]]}, + +{"description": "Valid Unicode character U+00FA", +"input": "\u00FA", +"output": [["Character", "\u00FA"]]}, + +{"description": "Valid Unicode character U+00FB", +"input": "\u00FB", +"output": [["Character", "\u00FB"]]}, + +{"description": "Valid Unicode character U+00FC", +"input": "\u00FC", +"output": [["Character", "\u00FC"]]}, + +{"description": "Valid Unicode character U+00FD", +"input": "\u00FD", +"output": [["Character", "\u00FD"]]}, + +{"description": "Valid Unicode character U+00FE", +"input": "\u00FE", +"output": [["Character", "\u00FE"]]}, + +{"description": "Valid Unicode character U+00FF", +"input": "\u00FF", +"output": [["Character", "\u00FF"]]}, + +{"description": "Valid Unicode character U+D7FF", +"input": "\uD7FF", +"output": [["Character", "\uD7FF"]]}, + +{"description": "Valid Unicode character U+E000", +"input": "\uE000", +"output": [["Character", "\uE000"]]}, + +{"description": "Valid Unicode character U+FDCF", +"input": "\uFDCF", +"output": [["Character", "\uFDCF"]]}, + +{"description": "Valid Unicode character U+FDF0", +"input": "\uFDF0", +"output": [["Character", "\uFDF0"]]}, + +{"description": "Valid Unicode character U+FFFD", +"input": "\uFFFD", +"output": [["Character", "\uFFFD"]]}, + +{"description": "Valid Unicode character U+10000", +"input": "\uD800\uDC00", +"output": [["Character", "\uD800\uDC00"]]}, + +{"description": "Valid Unicode character U+1FFFD", +"input": "\uD83F\uDFFD", +"output": [["Character", "\uD83F\uDFFD"]]}, + +{"description": "Valid Unicode character U+20000", +"input": "\uD840\uDC00", +"output": [["Character", "\uD840\uDC00"]]}, + +{"description": "Valid Unicode character U+2FFFD", +"input": "\uD87F\uDFFD", +"output": [["Character", "\uD87F\uDFFD"]]}, + +{"description": "Valid Unicode character U+30000", +"input": "\uD880\uDC00", +"output": [["Character", "\uD880\uDC00"]]}, + +{"description": "Valid Unicode character U+3FFFD", +"input": "\uD8BF\uDFFD", +"output": [["Character", "\uD8BF\uDFFD"]]}, + +{"description": "Valid Unicode character U+40000", +"input": "\uD8C0\uDC00", +"output": [["Character", "\uD8C0\uDC00"]]}, + +{"description": "Valid Unicode character U+4FFFD", +"input": "\uD8FF\uDFFD", +"output": [["Character", "\uD8FF\uDFFD"]]}, + +{"description": "Valid Unicode character U+50000", +"input": "\uD900\uDC00", +"output": [["Character", "\uD900\uDC00"]]}, + +{"description": "Valid Unicode character U+5FFFD", +"input": "\uD93F\uDFFD", +"output": [["Character", "\uD93F\uDFFD"]]}, + +{"description": "Valid Unicode character U+60000", +"input": "\uD940\uDC00", +"output": [["Character", "\uD940\uDC00"]]}, + +{"description": "Valid Unicode character U+6FFFD", +"input": "\uD97F\uDFFD", +"output": [["Character", "\uD97F\uDFFD"]]}, + +{"description": "Valid Unicode character U+70000", +"input": "\uD980\uDC00", +"output": [["Character", "\uD980\uDC00"]]}, + +{"description": "Valid Unicode character U+7FFFD", +"input": "\uD9BF\uDFFD", +"output": [["Character", "\uD9BF\uDFFD"]]}, + +{"description": "Valid Unicode character U+80000", +"input": "\uD9C0\uDC00", +"output": [["Character", "\uD9C0\uDC00"]]}, + +{"description": "Valid Unicode character U+8FFFD", +"input": "\uD9FF\uDFFD", +"output": [["Character", "\uD9FF\uDFFD"]]}, + +{"description": "Valid Unicode character U+90000", +"input": "\uDA00\uDC00", +"output": [["Character", "\uDA00\uDC00"]]}, + +{"description": "Valid Unicode character U+9FFFD", +"input": "\uDA3F\uDFFD", +"output": [["Character", "\uDA3F\uDFFD"]]}, + +{"description": "Valid Unicode character U+A0000", +"input": "\uDA40\uDC00", +"output": [["Character", "\uDA40\uDC00"]]}, + +{"description": "Valid Unicode character U+AFFFD", +"input": "\uDA7F\uDFFD", +"output": [["Character", "\uDA7F\uDFFD"]]}, + +{"description": "Valid Unicode character U+B0000", +"input": "\uDA80\uDC00", +"output": [["Character", "\uDA80\uDC00"]]}, + +{"description": "Valid Unicode character U+BFFFD", +"input": "\uDABF\uDFFD", +"output": [["Character", "\uDABF\uDFFD"]]}, + +{"description": "Valid Unicode character U+C0000", +"input": "\uDAC0\uDC00", +"output": [["Character", "\uDAC0\uDC00"]]}, + +{"description": "Valid Unicode character U+CFFFD", +"input": "\uDAFF\uDFFD", +"output": [["Character", "\uDAFF\uDFFD"]]}, + +{"description": "Valid Unicode character U+D0000", +"input": "\uDB00\uDC00", +"output": [["Character", "\uDB00\uDC00"]]}, + +{"description": "Valid Unicode character U+DFFFD", +"input": "\uDB3F\uDFFD", +"output": [["Character", "\uDB3F\uDFFD"]]}, + +{"description": "Valid Unicode character U+E0000", +"input": "\uDB40\uDC00", +"output": [["Character", "\uDB40\uDC00"]]}, + +{"description": "Valid Unicode character U+EFFFD", +"input": "\uDB7F\uDFFD", +"output": [["Character", "\uDB7F\uDFFD"]]}, + +{"description": "Valid Unicode character U+F0000", +"input": "\uDB80\uDC00", +"output": [["Character", "\uDB80\uDC00"]]}, + +{"description": "Valid Unicode character U+FFFFD", +"input": "\uDBBF\uDFFD", +"output": [["Character", "\uDBBF\uDFFD"]]}, + +{"description": "Valid Unicode character U+100000", +"input": "\uDBC0\uDC00", +"output": [["Character", "\uDBC0\uDC00"]]}, + +{"description": "Valid Unicode character U+10FFFD", +"input": "\uDBFF\uDFFD", +"output": [["Character", "\uDBFF\uDFFD"]]} + +]} diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat1.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat1.txt index 2bdd7941d95..fa33910128a 100644 --- a/parser/htmlparser/tests/mochitest/html5lib_tree_dat1.txt +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat1.txt @@ -1,7 +1,7 @@ #data Test #errors -5: missing document type declaration +Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -11,7 +11,7 @@ Test #data <p>One<p>Two #errors -3: missing document type declaration +Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. #document | <html> | <head> @@ -24,7 +24,7 @@ Test #data Line1<br>Line2<br>Line3<br>Line4 #errors -7: missing document type declaration +Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -40,7 +40,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <html> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #document | <html> | <head> @@ -49,7 +49,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <head> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. #document | <html> | <head> @@ -58,7 +58,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <body> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. #document | <html> | <head> @@ -67,7 +67,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <html><head> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #document | <html> | <head> @@ -76,7 +76,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <html><head></head> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #document | <html> | <head> @@ -85,7 +85,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <html><head></head><body> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #document | <html> | <head> @@ -94,7 +94,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <html><head></head><body></body> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #document | <html> | <head> @@ -103,7 +103,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <html><head><body></body></html> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #document | <html> | <head> @@ -112,8 +112,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <html><head></body></html> #errors -6: missing document type declaration -19: unexpected body element end tag in head +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +Line: 1 Col: 19 Unexpected end tag (body). +Line: 1 Col: 26 Unexpected end tag (html). #document | <html> | <head> @@ -122,7 +123,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <html><head><body></html> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #document | <html> | <head> @@ -131,7 +132,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <html><body></html> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #document | <html> | <head> @@ -140,7 +141,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <body></html> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. #document | <html> | <head> @@ -149,7 +150,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <head></html> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +Line: 1 Col: 13 Unexpected end tag (html). Ignored. #document | <html> | <head> @@ -158,8 +160,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data </head> #errors -7: missing document type declaration -7: unexpected head element end tag +Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE. #document | <html> | <head> @@ -168,8 +169,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data </body> #errors -7: missing document type declaration -7: unexpected body element end tag +Line: 1 Col: 7 Unexpected end tag (body). Expected DOCTYPE. +Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element. #document | <html> | <head> @@ -178,7 +179,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data </html> #errors -7: missing document type declaration +Line: 1 Col: 7 Unexpected end tag (html). Expected DOCTYPE. +Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element. #document | <html> | <head> @@ -187,10 +189,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b><table><td><i></table> #errors -3: missing document type declaration -14: required tr element start tag implied by unexpected td element start tag -25: unexpected td element end tag implied other end tags -26: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. +Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -205,11 +207,11 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b><table><td></b><i></table>X #errors -3: missing document type declaration -14: required tr element start tag implied by unexpected td element start tag -18: mismatched b element end tag (no matching start tag) -29: unexpected td element end tag implied other end tags -31: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. +Line: 1 Col: 30 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -225,9 +227,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <h1>Hello<h2>World #errors -4: missing document type declaration -13: h2 element start tag implying h1 element end tag -19: mismatched body element end tag (premature end of file?) +4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. +13: Heading cannot be a child of another heading. +18: End of file seen and there were open elements. #document | <html> | <head> @@ -240,10 +242,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <a><p>X<a>Y</a>Z</p></a> #errors -3: missing document type declaration -10: a element start tag implying a element end tag -10: mismatched a element end tag (misnested tags) -24: mismatched a element end tag (no matching start tag) +Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 10 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 10 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. #document | <html> | <head> @@ -259,8 +261,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b><button></b></button></b> #errors -3: missing document type declaration -15: mismatched b element end tag (no matching start tag) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. #document | <html> | <head> @@ -271,12 +273,12 @@ Line1<br>Line2<br>Line3<br>Line4 #data <p><b><div><marquee></p></b></div>X #errors -3: missing document type declaration -11: mismatched p element end tag -24: mismatched p element end tag -28: mismatched b element end tag (no matching start tag) -34: mismatched div element end tag -36: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. +Line: 1 Col: 11 Unexpected end tag (p). Ignored. +Line: 1 Col: 24 Unexpected end tag (p). Ignored. +Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. +Line: 1 Col: 35 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -286,13 +288,14 @@ Line1<br>Line2<br>Line3<br>Line4 | <div> | <b> | <marquee> +| <p> | "X" #data <script><div></script></div><title><p></title><p><p> #errors -8: missing document type declaration -28: unexpected div element end tag in head +Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. +Line: 1 Col: 28 Unexpected end tag (div). Ignored. #document | <html> | <head> @@ -307,56 +310,63 @@ Line1<br>Line2<br>Line3<br>Line4 #data <!--><div>--<!--> #errors -13: unexpected character after two '-' characters while parsing comment -18: missing document type declaration +Line: 1 Col: 5 Incorrect comment. +Line: 1 Col: 10 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 17 Incorrect comment. +Line: 1 Col: 17 Expected closing tag. Unexpected end of file. #document -| <!-- ><div>--<! --> +| <!-- --> | <html> | <head> | <body> +| <div> +| "--" +| <!-- --> #data <p><hr></p> #errors -3: missing document type declaration -11: mismatched p element end tag +Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. +Line: 1 Col: 11 Unexpected end tag (p). Ignored. #document | <html> | <head> | <body> | <p> | <hr> +| <p> #data <select><b><option><select><option></b></select>X #errors -8: missing document type declaration -11: unexpected node in select element context -27: select element start tag used as end tag -35: unexpected option element start tag in body -39: mismatched b element end tag (no matching start tag) -48: mismatched special end tag select +Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. +Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. +Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. +Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 48 Unexpected end tag (select). Ignored. +Line: 1 Col: 49 Expected closing tag. Unexpected end of file. #document | <html> | <head> | <body> | <select> | <option> -| "X" +| <option> +| "X" #data <a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y #errors -3: missing document type declaration -14: required tr element start tag implied by unexpected td element start tag -35: a element start tag implying a element end tag -40: unexpected td element end tag implied other end tags -43: unexpected node in table context -43: a element start tag implying a element end tag -43: unexpected node in table context -43: mismatched a element end tag (misnested tags across <table> tag) -63: a element start tag implying a element end tag -65: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. +Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. +Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. +Line: 1 Col: 63 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 64 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -380,10 +390,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <a X>0<b>1<a Y>2 #errors -5: missing document type declaration -15: a element start tag implying a element end tag -15: mismatched a element end tag (misnested tags) -17: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 15 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 16 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -401,15 +411,14 @@ Line1<br>Line2<br>Line3<br>Line4 #data <!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X--> #errors -7: unexpected '-' character after two '-' characters while parsing comment -14: missing document type declaration -40: unexpected node in table context -41: unexpected node in table context -46: unexpected node in table context -48: required tr element start tag implied by unexpected th element start tag -63: unexpected th element end tag implied other end tags -72: unexpected end of file implied table element end tag -72: mismatched body element end tag (premature end of file?) +Line: 1 Col: 7 Unexpected '-' after '--' found in comment. +Line: 1 Col: 14 Unexpected start tag (font). Expected DOCTYPE. +Line: 1 Col: 38 Unexpected non-space characters in table context caused voodoo mode. +Line: 1 Col: 41 Unexpected start tag (b) in table context caused voodoo mode. +Line: 1 Col: 48 Unexpected implied end tag (b) in the table phase. +Line: 1 Col: 48 Unexpected table cell start tag (th) in the table body phase. +Line: 1 Col: 63 Got table cell end tag (th) while required end tags are missing. +Line: 1 Col: 71 Unexpected end of file. Expected table content. #document | <!-- - --> | <html> @@ -429,10 +438,11 @@ Line1<br>Line2<br>Line3<br>Line4 | <!-- X --> #data -<!DOCTYPE HTML><li>hello<li>world<ul>how<li>do</ul>you</body><!--do--> +<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do--> #errors +Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body). #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -448,26 +458,28 @@ Line1<br>Line2<br>Line3<br>Line4 | <!-- do --> #data -<!DOCTYPE HTML>A<option>B<optgroup>C<select>D</option>E +<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E #errors -24: unexpected option element start tag in body -35: unexpected optgroup element start tag in body -54: unexpected option element end tag -56: required select element end tag implied by unexpected end of file +Line: 1 Col: 54 Unexpected end tag (option) in the select phase. Ignored. +Line: 1 Col: 55 Expected closing tag. Unexpected end of file. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> -| "ABC" -| <select> -| "DE" +| "A" +| <option> +| "B" +| <optgroup> +| "C" +| <select> +| "DE" #data < #errors -2: unescaped '<' character -2: missing document type declaration +Line: 1 Col: 1 Expected tag name. Got something else instead +Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -477,8 +489,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <# #errors -2: unescaped '<' character -3: missing document type declaration +Line: 1 Col: 1 Expected tag name. Got something else instead +Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -488,8 +500,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data </ #errors -3: unescaped '<' character followed by '/' at EOF -3: missing document type declaration +Line: 1 Col: 2 Expected closing tag. Unexpected end of file. +Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -499,8 +511,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data </# #errors -3: unescaped '<' character followed by '/' -4: missing document type declaration +Line: 1 Col: 2 Expected closing tag. Unexpected character '#' found. +Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. #document | <!-- # --> | <html> @@ -510,8 +522,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <? #errors -2: PIs are not supported in HTML5 -3: missing document type declaration +Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) +Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. #document | <!-- ? --> | <html> @@ -521,8 +533,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <?# #errors -2: PIs are not supported in HTML5 -4: missing document type declaration +Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) +Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. #document | <!-- ?# --> | <html> @@ -532,8 +544,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <! #errors -3: markup declarations are not supported in HTML5 -3: missing document type declaration +Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. +Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. #document | <!-- --> | <html> @@ -543,8 +555,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <!# #errors -3: markup declarations are not supported in HTML5 -4: missing document type declaration +Line: 1 Col: 3 Expected '--' or 'DOCTYPE'. Not found. +Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. #document | <!-- # --> | <html> @@ -554,8 +566,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <?COMMENT?> #errors -2: PIs are not supported in HTML5 -12: missing document type declaration +Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) +Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE. #document | <!-- ?COMMENT? --> | <html> @@ -565,8 +577,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <!COMMENT> #errors -3: markup declarations are not supported in HTML5 -11: missing document type declaration +Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. +Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE. #document | <!-- COMMENT --> | <html> @@ -576,8 +588,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data </ COMMENT > #errors -3: unescaped '<' character followed by '/' -13: missing document type declaration +Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. +Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. #document | <!-- COMMENT --> | <html> @@ -587,8 +599,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <?COM--MENT?> #errors -2: PIs are not supported in HTML5 -14: missing document type declaration +Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) +Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE. #document | <!-- ?COM--MENT? --> | <html> @@ -598,8 +610,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <!COM--MENT> #errors -3: markup declarations are not supported in HTML5 -13: missing document type declaration +Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. +Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. #document | <!-- COM--MENT --> | <html> @@ -609,8 +621,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data </ COM--MENT > #errors -3: unescaped '<' character followed by '/' -15: missing document type declaration +Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. +Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE. #document | <!-- COM--MENT --> | <html> @@ -618,11 +630,11 @@ Line1<br>Line2<br>Line3<br>Line4 | <body> #data -<!DOCTYPE HTML><style> EOF +<!DOCTYPE html><style> EOF #errors -27: unexpected end of file while parsing CDATA section for element style +Line: 1 Col: 26 Unexpected end of file. Expected end tag (style). #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <style> @@ -630,24 +642,23 @@ Line1<br>Line2<br>Line3<br>Line4 | <body> #data -<!DOCTYPE HTML><script> <!-- </script> --> </script> EOF +<!DOCTYPE html><script> <!-- </script> --> </script> EOF #errors -52: unexpected script element end tag #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <script> -| " <!-- " +| " <!-- </script> --> " | " " | <body> -| "--> EOF" +| "EOF" #data <b><p></b>TEST #errors -3: missing document type declaration -10: mismatched b element end tag (misnested tags) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. #document | <html> | <head> @@ -660,9 +671,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <p id=a><b><p id=b></b>TEST #errors -8: missing document type declaration -19: mismatched p element end tag -23: mismatched b element end tag (out-of-order end tags) +Line: 1 Col: 8 Unexpected start tag (p). Expected DOCTYPE. +Line: 1 Col: 19 Unexpected end tag (p). Ignored. +Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. #document | <html> | <head> @@ -677,10 +688,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b id=a><p><b id=b></p></b>TEST #errors -8: missing document type declaration -23: mismatched p element end tag -27: mismatched b element end tag (out-of-order end tags) -32: mismatched body element end tag (premature end of file?) +Line: 1 Col: 8 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 23 Unexpected end tag (p). Ignored. +Line: 1 Col: 27 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. +Line: 1 Col: 31 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -693,11 +704,11 @@ Line1<br>Line2<br>Line3<br>Line4 | "TEST" #data -<!DOCTYPE HTML><title>U-test</title><body><div><p>Test<u></p></div></body> +<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body> #errors -61: mismatched p element end tag +Line: 1 Col: 61 Unexpected end tag (p). Ignored. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <title> @@ -709,12 +720,12 @@ Line1<br>Line2<br>Line3<br>Line4 | <u> #data -<!DOCTYPE HTML><font><table></font></table></font> +<!DOCTYPE html><font><table></font></table></font> #errors -35: unexpected node in table context -35: mismatched font element end tag (misnested tags across <table> tag) +Line: 1 Col: 35 Unexpected end tag (font) in table context caused voodoo mode. +Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -724,9 +735,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <font><p>hello<b>cruel</font>world #errors -6: missing document type declaration -29: mismatched font element end tag (misnested tags) -35: mismatched body element end tag (premature end of file?) +Line: 1 Col: 6 Unexpected start tag (font). Expected DOCTYPE. +Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 34 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -743,9 +755,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b>Test</i>Test #errors -3: missing document type declaration -11: mismatched i element end tag (no matching start tag) -16: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 11 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 15 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -756,8 +768,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b>A<cite>B<div>C #errors -3: missing document type declaration -18: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 17 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -772,9 +784,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b>A<cite>B<div>C</cite>D #errors -3: missing document type declaration -24: unexpected cite element end tag -26: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 24 Unexpected end tag (cite). Ignored. +Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -789,9 +801,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b>A<cite>B<div>C</b>D #errors -3: missing document type declaration -21: mismatched b element end tag (misnested tags) -23: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 21 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 22 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -808,9 +820,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <cite><b><cite><i><cite><i><cite><i><div>X</b>TEST #errors -6: missing document type declaration -46: mismatched b element end tag (misnested tags) -51: mismatched body element end tag (premature end of file?) +Line: 1 Col: 6 Unexpected start tag (cite). Expected DOCTYPE. +Line: 1 Col: 46 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 50 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -822,6 +834,7 @@ Line1<br>Line2<br>Line3<br>Line4 | <cite> | <i> | <cite> +| <i> | <i> | <i> | <i> @@ -833,7 +846,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data #errors -1: missing document type declaration +Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE. #document | <html> | <head> @@ -842,8 +855,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> #errors -5: missing document type declaration -6: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 5 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -853,8 +866,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc #errors -5: missing document type declaration -10: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 9 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -865,8 +878,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> #errors -5: missing document type declaration -14: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 13 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -878,8 +891,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def #errors -5: missing document type declaration -18: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 17 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -892,8 +905,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> #errors -5: missing document type declaration -22: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 21 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -907,8 +920,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> ghi #errors -5: missing document type declaration -26: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -923,8 +936,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> ghi <P> #errors -5: missing document type declaration -30: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -940,8 +953,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> ghi <P> jkl #errors -5: missing document type declaration -34: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 33 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -958,9 +971,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> ghi <P> jkl </B> #errors -5: missing document type declaration -38: mismatched b element end tag (misnested tags) -39: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 38 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -979,9 +992,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno #errors -5: missing document type declaration -38: mismatched b element end tag (misnested tags) -43: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 42 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1001,10 +1014,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> #errors -5: missing document type declaration -38: mismatched b element end tag (misnested tags) -47: mismatched i element end tag (misnested tags) -48: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 47 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1025,10 +1038,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr #errors -5: missing document type declaration -38: mismatched b element end tag (misnested tags) -47: mismatched i element end tag (misnested tags) -52: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 51 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1050,10 +1063,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> #errors -5: missing document type declaration -38: mismatched b element end tag (misnested tags) -47: mismatched i element end tag (misnested tags) -57: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 56 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1075,10 +1088,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu #errors -5: missing document type declaration -38: mismatched b element end tag (misnested tags) -47: mismatched i element end tag (misnested tags) -61: mismatched body element end tag (premature end of file?) +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 60 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1101,8 +1114,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> #errors -1040: missing document type declaration -1041: mismatched body element end tag (premature end of file?) +Line: 1 Col: 1040 Unexpected start tag (test). Expected DOCTYPE. +Line: 1 Col: 1040 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1113,14 +1126,14 @@ Line1<br>Line2<br>Line3<br>Line4 #data <a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe #errors -15: missing document type declaration -39: unexpected node in table context -39: a element start tag implying a element end tag -39: unexpected node in table context -39: mismatched a element end tag (misnested tags across <table> tag) -43: unexpected node in table context -63: unexpected node in table context -72: mismatched body element end tag (premature end of file?) +Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 39 Unexpected start tag (a) in table context caused voodoo mode. +Line: 1 Col: 39 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 39 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 45 Unexpected implied end tag (a) in the table phase. +Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. +Line: 1 Col: 71 Expected closing tag. Unexpected end of file. + #document | <html> | <head> @@ -1145,10 +1158,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe #errors -15: missing document type declaration -54: unexpected td element end tag implied other end tags -63: unexpected node in table context -72: mismatched body element end tag (premature end of file?) +Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. +Line: 1 Col: 60 Unexpected non-space characters in table context caused voodoo mode. +Line: 1 Col: 71 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1168,12 +1181,12 @@ Line1<br>Line2<br>Line3<br>Line4 #data <table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe #errors -7: missing document type declaration -22: unexpected node in table context -27: unexpected node in table context -54: unexpected td element end tag implied other end tags -63: unexpected node in table context -72: mismatched body element end tag (premature end of file?) +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 22 Unexpected start tag (a) in table context caused voodoo mode. +Line: 1 Col: 29 Unexpected implied end tag (a) in the table phase. +Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. +Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. +Line: 1 Col: 71 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1198,9 +1211,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <a href=a>aa<marquee>aa<a href=b>bb</marquee>aa #errors -10: missing document type declaration -45: mismatched marquee element end tag -48: mismatched body element end tag (premature end of file?) +Line: 1 Col: 10 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 45 End tag (marquee) seen too early. Expected other end tag. +Line: 1 Col: 47 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1218,9 +1231,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <wbr><strike><code></strike><code><strike></code> #errors -5: missing document type declaration -28: mismatched strike element end tag (misnested tags) -49: mismatched code element end tag +Line: 1 Col: 5 Unexpected start tag (wbr). Expected DOCTYPE. +Line: 1 Col: 28 End tag (strike) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 49 Unexpected end tag (code). Ignored. #document | <html> | <head> @@ -1229,12 +1242,13 @@ Line1<br>Line2<br>Line3<br>Line4 | <strike> | <code> | <code> -| <strike> +| <code> +| <strike> #data <title><meta></title><link><title><meta></title> #errors -7: missing document type declaration +Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. #document | <html> | <head> @@ -1248,22 +1262,20 @@ Line1<br>Line2<br>Line3<br>Line4 #data <style><!--</style><meta><script>--><link></script> #errors -7: missing document type declaration +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +Line: 1 Col: 51 Unexpected end of file. Expected end tag (style). #document | <html> | <head> | <style> -| "<!--" -| <meta> -| <script> -| "--><link>" +| "<!--</style><meta><script>--><link></script>" | <body> #data <head><meta></head><link> #errors -6: missing document type declaration -25: unexpected link element start tag +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved. #document | <html> | <head> @@ -1274,9 +1286,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <table><tr><tr><td><td><span><th><span>X</table> #errors -7: missing document type declaration -33: unexpected td element end tag implied other end tags -48: unexpected th element end tag implied other end tags +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 33 Got table cell end tag (td) while required end tags are missing. +Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing. #document | <html> | <head> @@ -1295,28 +1307,25 @@ Line1<br>Line2<br>Line3<br>Line4 #data <body><body><base><link><meta><title><p></title><body><p></body> #errors -6: missing document type declaration -12: unexpected body element start tag -18: base element start tag out of place -24: link element start tag out of place -30: meta element start tag out of place -37: title element start tag out of place -54: unexpected body element start tag +Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. +Line: 1 Col: 12 Unexpected start tag (body). +Line: 1 Col: 54 Unexpected start tag (body). +Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body). #document | <html> | <head> +| <body> | <base> | <link> | <meta> | <title> | "<p>" -| <body> | <p> #data <textarea><p></textarea> #errors -10: missing document type declaration +Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. #document | <html> | <head> @@ -1327,8 +1336,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <p><image></p> #errors -3: missing document type declaration -10: 'image' is not a valid element name, it should be 'img' +Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. +Line: 1 Col: 10 Unexpected start tag (image). Treated as img. #document | <html> | <head> @@ -1339,18 +1348,17 @@ Line1<br>Line2<br>Line3<br>Line4 #data <a><table><a></table><p><a><div><a> #errors -3: missing document type declaration -13: unexpected node in table context -13: a element start tag implying a element end tag -13: unexpected node in table context -13: mismatched a element end tag (misnested tags across <table> tag) -21: mismatched table element end tag -27: a element start tag implying a element end tag -27: mismatched a element end tag (out-of-order end tags) -32: mismatched p element end tag -35: a element start tag implying a element end tag -35: mismatched a element end tag (out-of-order end tags) -36: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 13 Unexpected start tag (a) in table context caused voodoo mode. +Line: 1 Col: 13 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 13 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 21 Unexpected end tag (table). Expected end tag (a). +Line: 1 Col: 27 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 27 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. +Line: 1 Col: 32 Unexpected end tag (p). Ignored. +Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 35 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. +Line: 1 Col: 35 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1366,8 +1374,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <head></p><meta><p> #errors -6: missing document type declaration -10: unexpected p element end tag in head +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +Line: 1 Col: 10 Unexpected end tag (p). Ignored. #document | <html> | <head> @@ -1378,24 +1386,22 @@ Line1<br>Line2<br>Line3<br>Line4 #data <head></html><meta><p> #errors -6: missing document type declaration -19: unexpected node at end of document -19: unexpected node after body element end tag -19: meta element start tag out of place +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +Line: 1 Col: 19 Unexpected start tag (meta). #document | <html> | <head> -| <meta> | <body> +| <meta> | <p> #data <b><table><td><i></table> #errors -3: missing document type declaration -14: required tr element start tag implied by unexpected td element start tag -25: unexpected td element end tag implied other end tags -26: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. +Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1410,11 +1416,11 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b><table><td></b><i></table> #errors -3: missing document type declaration -14: required tr element start tag implied by unexpected td element start tag -18: mismatched b element end tag (no matching start tag) -29: unexpected td element end tag implied other end tags -30: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. +Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1429,9 +1435,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <h1><h2> #errors -4: missing document type declaration -8: h2 element start tag implying h1 element end tag -9: mismatched body element end tag (premature end of file?) +4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. +8: Heading cannot be a child of another heading. +8: End of file seen and there were open elements. #document | <html> | <head> @@ -1442,10 +1448,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <a><p><a></a></p></a> #errors -3: missing document type declaration -9: a element start tag implying a element end tag -9: mismatched a element end tag (misnested tags) -21: mismatched a element end tag (no matching start tag) +Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 9 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 9 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. #document | <html> | <head> @@ -1458,8 +1464,8 @@ Line1<br>Line2<br>Line3<br>Line4 #data <b><button></b></button></b> #errors -3: missing document type declaration -15: mismatched b element end tag (no matching start tag) +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. #document | <html> | <head> @@ -1470,12 +1476,12 @@ Line1<br>Line2<br>Line3<br>Line4 #data <p><b><div><marquee></p></b></div> #errors -3: missing document type declaration -11: mismatched p element end tag -24: mismatched p element end tag -28: mismatched b element end tag (no matching start tag) -34: mismatched div element end tag -35: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. +Line: 1 Col: 11 Unexpected end tag (p). Ignored. +Line: 1 Col: 24 Unexpected end tag (p). Ignored. +Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. +Line: 1 Col: 34 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1485,12 +1491,13 @@ Line1<br>Line2<br>Line3<br>Line4 | <div> | <b> | <marquee> +| <p> #data <script></script></div><title></title><p><p> #errors -8: missing document type declaration -23: unexpected div element end tag in head +Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. +Line: 1 Col: 23 Unexpected end tag (div). Ignored. #document | <html> | <head> @@ -1503,35 +1510,37 @@ Line1<br>Line2<br>Line3<br>Line4 #data <p><hr></p> #errors -3: missing document type declaration -11: mismatched p element end tag +Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. +Line: 1 Col: 11 Unexpected end tag (p). Ignored. #document | <html> | <head> | <body> | <p> | <hr> +| <p> #data <select><b><option><select><option></b></select> #errors -8: missing document type declaration -11: unexpected node in select element context -27: select element start tag used as end tag -35: unexpected option element start tag in body -39: mismatched b element end tag (no matching start tag) -48: mismatched special end tag select +Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. +Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. +Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. +Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 48 Unexpected end tag (select). Ignored. +Line: 1 Col: 48 Expected closing tag. Unexpected end of file. #document | <html> | <head> | <body> | <select> | <option> +| <option> #data <html><head><title></title><body></body></html> #errors -6: missing document type declaration +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #document | <html> | <head> @@ -1541,17 +1550,17 @@ Line1<br>Line2<br>Line3<br>Line4 #data <a><table><td><a><table></table><a></tr><a></table><a> #errors -3: missing document type declaration -14: required tr element start tag implied by unexpected td element start tag -35: a element start tag implying a element end tag -40: unexpected td element end tag implied other end tags -43: unexpected node in table context -43: a element start tag implying a element end tag -43: unexpected node in table context -43: mismatched a element end tag (misnested tags across <table> tag) -54: a element start tag implying a element end tag -54: mismatched a element end tag (out-of-order end tags) -55: mismatched body element end tag (premature end of file?) +Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. +Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. +Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. +Line: 1 Col: 54 Unexpected start tag (a) implies end tag (a). +Line: 1 Col: 54 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. +Line: 1 Col: 54 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -1570,8 +1579,10 @@ Line1<br>Line2<br>Line3<br>Line4 #data <ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul> #errors -4: missing document type declaration -69: mismatched b element end tag (misnested tags) +Line: 1 Col: 4 Unexpected start tag (ul). Expected DOCTYPE. +Line: 1 Col: 45 Missing end tag (div, li). +Line: 1 Col: 58 Missing end tag (address, li). +Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. #document | <html> | <head> @@ -1593,7 +1604,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <frameset><frame><frameset><frame></frameset><noframes></noframes></frameset> #errors -10: missing document type declaration +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. #document | <html> | <head> @@ -1603,35 +1614,14 @@ Line1<br>Line2<br>Line3<br>Line4 | <frame> | <noframes> -#data -<body><frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> -#errors -6: missing document type declaration -13: unexpected frame element start tag in body -21: unexpected frame element end tag -29: unexpected frame element end tag -39: unexpected frameset element start tag in body -46: unexpected frame element start tag in body -56: unexpected frameset element start tag in body -63: unexpected frame element start tag in body -74: unexpected frameset element end tag -87: unescaped '</' in CDATA or RCDATA block -106: unexpected end of file while parsing CDATA section for element noframes -#document -| <html> -| <head> -| <body> -| <noframes> -| "</frameset><noframes>" - #data <h1><table><td><h3></table><h3></h1> #errors -4: missing document type declaration -15: required tr element start tag implied by unexpected td element start tag -27: unexpected td element end tag implied other end tags -31: h3 element start tag implying h1 element end tag -36: mismatched h1 element end tag +4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. +15: “td” start tag in table body. +27: Unclosed elements. +31: Heading cannot be a child of another heading. +36: End tag “h1” seen but there were unclosed elements. #document | <html> | <head> @@ -1647,7 +1637,7 @@ Line1<br>Line2<br>Line3<br>Line4 #data <table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table> #errors -7: missing document type declaration +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. #document | <html> | <head> @@ -1669,9 +1659,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <table><col><tbody><col><tr><col><td><col></table><col> #errors -7: missing document type declaration -37: required tr element start tag implied by unexpected td element start tag -55: unexpected col element start tag in body +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 37 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 55 Unexpected start tag col. Ignored. #document | <html> | <head> @@ -1695,9 +1685,9 @@ Line1<br>Line2<br>Line3<br>Line4 #data <table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup> #errors -7: missing document type declaration -52: required tr element start tag implied by unexpected td element start tag -80: unexpected colgroup element start tag in body +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 52 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 80 Unexpected start tag colgroup. Ignored. #document | <html> | <head> @@ -1717,213 +1707,226 @@ Line1<br>Line2<br>Line3<br>Line4 #data </strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> #errors -9: missing document type declaration -9: unexpected strong element end tag -13: unexpected b element end tag -18: unexpected em element end tag -22: unexpected i element end tag -26: unexpected u element end tag -35: unexpected strike element end tag -39: unexpected s element end tag -47: unexpected blink element end tag -52: unexpected tt element end tag -58: unexpected pre element end tag -64: unexpected big element end tag -72: unexpected small element end tag -79: unexpected font element end tag -88: unexpected select element end tag -93: unexpected h1 element end tag -98: unexpected h2 element end tag -103: unexpected h3 element end tag -108: unexpected h4 element end tag -113: unexpected h5 element end tag -118: unexpected h6 element end tag -125: unexpected body element end tag -130: unexpected br element end tag -134: unexpected a element end tag -140: unexpected img element end tag -148: unexpected title element end tag -155: unexpected span element end tag -163: unexpected style element end tag -172: unexpected script element end tag -180: unexpected table element end tag -185: unexpected th element end tag -190: unexpected td element end tag -195: unexpected tr element end tag -203: unexpected frame element end tag -210: unexpected area element end tag -217: unexpected link element end tag -225: unexpected param element end tag -230: unexpected hr element end tag -238: unexpected input element end tag -244: unexpected col element end tag -251: unexpected base element end tag -258: unexpected meta element end tag -269: unexpected basefont element end tag -279: unexpected bgsound element end tag -287: unexpected embed element end tag -296: unexpected spacer element end tag -300: unexpected p element end tag -305: unexpected dd element end tag -310: unexpected dt element end tag -320: unexpected caption element end tag -331: unexpected colgroup element end tag -339: unexpected tbody element end tag -347: unexpected tfoot element end tag -355: unexpected thead element end tag -365: unexpected address element end tag -378: unexpected blockquote element end tag -387: unexpected center element end tag -393: unexpected dir element end tag -399: unexpected div element end tag -404: unexpected dl element end tag -415: unexpected fieldset element end tag -425: unexpected listing element end tag -432: unexpected menu element end tag -437: unexpected ol element end tag -442: unexpected ul element end tag -447: unexpected li element end tag -454: unexpected nobr element end tag -460: unexpected wbr element end tag -467: unexpected form element end tag -476: unexpected button element end tag -486: unexpected marquee element end tag -495: unexpected object element end tag -513: unexpected node at end of document -513: unexpected node after body element end tag -513: unexpected frameset element end tag -520: unexpected head element end tag -529: mismatched special end tag iframe -537: unexpected image end tag (that element has no end tag, ever) -547: unexpected isindex end tag (that element has no end tag, ever) -557: mismatched special end tag noembed -568: mismatched special end tag noframes -579: mismatched special end tag noscript -590: unexpected optgroup element end tag -599: unexpected option element end tag -611: unexpected plaintext element end tag -622: mismatched special end tag textarea +Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE. +Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element. +Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element. +Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element. +Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element. +Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element. +Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element. +Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element. +Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element. +Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element. +Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element. +Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element. +Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element. +Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element. +Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element. +Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element. +Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element. +Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element. +Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element. +Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element. +Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element. +Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element. +Line: 1 Col: 130 Unexpected end tag (br). Treated as br element. +Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 140 This element (img) has no end tag. +Line: 1 Col: 148 Unexpected end tag (title). Ignored. +Line: 1 Col: 155 Unexpected end tag (span). Ignored. +Line: 1 Col: 163 Unexpected end tag (style). Ignored. +Line: 1 Col: 172 Unexpected end tag (script). Ignored. +Line: 1 Col: 180 Unexpected end tag (table). Ignored. +Line: 1 Col: 185 Unexpected end tag (th). Ignored. +Line: 1 Col: 190 Unexpected end tag (td). Ignored. +Line: 1 Col: 195 Unexpected end tag (tr). Ignored. +Line: 1 Col: 203 This element (frame) has no end tag. +Line: 1 Col: 210 This element (area) has no end tag. +Line: 1 Col: 217 Unexpected end tag (link). Ignored. +Line: 1 Col: 225 This element (param) has no end tag. +Line: 1 Col: 230 This element (hr) has no end tag. +Line: 1 Col: 238 This element (input) has no end tag. +Line: 1 Col: 244 Unexpected end tag (col). Ignored. +Line: 1 Col: 251 Unexpected end tag (base). Ignored. +Line: 1 Col: 258 Unexpected end tag (meta). Ignored. +Line: 1 Col: 269 This element (basefont) has no end tag. +Line: 1 Col: 279 This element (bgsound) has no end tag. +Line: 1 Col: 287 This element (embed) has no end tag. +Line: 1 Col: 296 This element (spacer) has no end tag. +Line: 1 Col: 300 Unexpected end tag (p). Ignored. +Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag. +Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag. +Line: 1 Col: 320 Unexpected end tag (caption). Ignored. +Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored. +Line: 1 Col: 339 Unexpected end tag (tbody). Ignored. +Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored. +Line: 1 Col: 355 Unexpected end tag (thead). Ignored. +Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag. +Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag. +Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag. +Line: 1 Col: 393 Unexpected end tag (dir). Ignored. +Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag. +Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag. +Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag. +Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag. +Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag. +Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag. +Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag. +Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag. +Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 460 This element (wbr) has no end tag. +Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag. +Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag. +Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag. +Line: 1 Col: 513 Unexpected end tag (html). Ignored. +Line: 1 Col: 513 Unexpected end tag (frameset). Ignored. +Line: 1 Col: 520 Unexpected end tag (head). Ignored. +Line: 1 Col: 529 Unexpected end tag (iframe). Ignored. +Line: 1 Col: 537 This element (image) has no end tag. +Line: 1 Col: 547 This element (isindex) has no end tag. +Line: 1 Col: 557 Unexpected end tag (noembed). Ignored. +Line: 1 Col: 568 Unexpected end tag (noframes). Ignored. +Line: 1 Col: 579 Unexpected end tag (noscript). Ignored. +Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored. +Line: 1 Col: 599 Unexpected end tag (option). Ignored. +Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored. +Line: 1 Col: 622 Unexpected end tag (textarea). Ignored. #document | <html> | <head> | <body> +| <br> +| <p> #data <table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> #errors -7: missing document type declaration -20: unexpected node in table context -20: mismatched strong element end tag (no matching start tag) -24: unexpected node in table context -24: mismatched b element end tag (no matching start tag) -29: unexpected node in table context -29: mismatched em element end tag (no matching start tag) -33: unexpected node in table context -33: mismatched i element end tag (no matching start tag) -37: unexpected node in table context -37: mismatched u element end tag (no matching start tag) -46: unexpected node in table context -46: mismatched strike element end tag (no matching start tag) -50: unexpected node in table context -50: mismatched s element end tag (no matching start tag) -58: unexpected node in table context -58: unexpected blink element end tag -63: unexpected node in table context -63: mismatched tt element end tag (no matching start tag) -69: unexpected node in table context -69: mismatched pre element end tag -75: unexpected node in table context -75: mismatched big element end tag (no matching start tag) -83: unexpected node in table context -83: mismatched small element end tag (no matching start tag) -90: unexpected node in table context -90: mismatched font element end tag (no matching start tag) -99: unexpected node in table context -99: mismatched special end tag select -104: unexpected node in table context -104: mismatched h1 element end tag -109: unexpected node in table context -109: mismatched h2 element end tag -114: unexpected node in table context -114: mismatched h3 element end tag -119: unexpected node in table context -119: mismatched h4 element end tag -124: unexpected node in table context -124: mismatched h5 element end tag -129: unexpected node in table context -129: mismatched h6 element end tag -136: unexpected body element end tag -141: unexpected node in table context -141: unexpected br end tag (that element has no end tag, ever) -145: unexpected node in table context -145: mismatched a element end tag (no matching start tag) -151: unexpected node in table context -151: unexpected img end tag (that element has no end tag, ever) -159: unexpected node in table context -159: unexpected title element end tag -166: unexpected node in table context -166: unexpected span element end tag -174: unexpected node in table context -174: unexpected style element end tag -183: unexpected node in table context -183: unexpected script element end tag -196: unexpected th element end tag -201: unexpected td element end tag -206: unexpected tr element end tag -214: unexpected frame element end tag -221: unexpected area end tag (that element has no end tag, ever) -228: unexpected link element end tag -236: unexpected param end tag (that element has no end tag, ever) -241: unexpected hr end tag (that element has no end tag, ever) -249: unexpected input end tag (that element has no end tag, ever) -255: unexpected col element end tag -262: unexpected base element end tag -269: unexpected meta element end tag -280: unexpected basefont end tag (that element has no end tag, ever) -290: unexpected bgsound end tag (that element has no end tag, ever) -298: unexpected embed end tag (that element has no end tag, ever) -307: unexpected spacer end tag (that element has no end tag, ever) -311: mismatched p element end tag -316: mismatched dd element end tag -321: mismatched dt element end tag -331: unexpected caption element end tag -342: unexpected colgroup element end tag -350: unexpected tbody element end tag -358: unexpected tfoot element end tag -366: unexpected thead element end tag -376: mismatched address element end tag -389: mismatched blockquote element end tag -398: mismatched center element end tag -404: mismatched dir element end tag -410: mismatched div element end tag -415: mismatched dl element end tag -426: mismatched fieldset element end tag -436: mismatched listing element end tag -443: mismatched menu element end tag -448: mismatched ol element end tag -453: mismatched ul element end tag -458: mismatched li element end tag -465: mismatched nobr element end tag (no matching start tag) -471: unexpected wbr end tag (that element has no end tag, ever) -478: mismatched form element end tag -524: unexpected node at end of document -524: unexpected node after body element end tag -524: unexpected frameset element end tag -531: unexpected head element end tag -540: mismatched special end tag iframe -548: unexpected image end tag (that element has no end tag, ever) -558: unexpected isindex end tag (that element has no end tag, ever) -568: mismatched special end tag noembed -579: mismatched special end tag noframes -590: mismatched special end tag noscript -601: unexpected optgroup element end tag -610: unexpected option element end tag -622: unexpected plaintext element end tag -633: mismatched special end tag textarea +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode. +Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode. +Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode. +Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode. +Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode. +Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode. +Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode. +Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode. +Line: 1 Col: 58 Unexpected end tag (blink). Ignored. +Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode. +Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode. +Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag. +Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode. +Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode. +Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode. +Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode. +Line: 1 Col: 99 Unexpected end tag (select). Ignored. +Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode. +Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag. +Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode. +Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag. +Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode. +Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag. +Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode. +Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag. +Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode. +Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag. +Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode. +Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag. +Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored. +Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode. +Line: 1 Col: 141 Unexpected end tag (br). Treated as br element. +Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode. +Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode. +Line: 1 Col: 151 This element (img) has no end tag. +Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode. +Line: 1 Col: 159 Unexpected end tag (title). Ignored. +Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode. +Line: 1 Col: 166 Unexpected end tag (span). Ignored. +Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode. +Line: 1 Col: 174 Unexpected end tag (style). Ignored. +Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode. +Line: 1 Col: 183 Unexpected end tag (script). Ignored. +Line: 1 Col: 196 Unexpected end tag (th). Ignored. +Line: 1 Col: 201 Unexpected end tag (td). Ignored. +Line: 1 Col: 206 Unexpected end tag (tr). Ignored. +Line: 1 Col: 214 This element (frame) has no end tag. +Line: 1 Col: 221 This element (area) has no end tag. +Line: 1 Col: 228 Unexpected end tag (link). Ignored. +Line: 1 Col: 236 This element (param) has no end tag. +Line: 1 Col: 241 This element (hr) has no end tag. +Line: 1 Col: 249 This element (input) has no end tag. +Line: 1 Col: 255 Unexpected end tag (col). Ignored. +Line: 1 Col: 262 Unexpected end tag (base). Ignored. +Line: 1 Col: 269 Unexpected end tag (meta). Ignored. +Line: 1 Col: 280 This element (basefont) has no end tag. +Line: 1 Col: 290 This element (bgsound) has no end tag. +Line: 1 Col: 298 This element (embed) has no end tag. +Line: 1 Col: 307 This element (spacer) has no end tag. +Line: 1 Col: 311 Unexpected end tag (p). Ignored. +Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag. +Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag. +Line: 1 Col: 331 Unexpected end tag (caption). Ignored. +Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored. +Line: 1 Col: 350 Unexpected end tag (tbody). Ignored. +Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored. +Line: 1 Col: 366 Unexpected end tag (thead). Ignored. +Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag. +Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag. +Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag. +Line: 1 Col: 404 Unexpected end tag (dir). Ignored. +Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag. +Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag. +Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag. +Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag. +Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag. +Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag. +Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag. +Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag. +Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. +Line: 1 Col: 471 This element (wbr) has no end tag. +Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag. +Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag. +Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag. +Line: 1 Col: 524 Unexpected end tag (html). Ignored. +Line: 1 Col: 524 Unexpected end tag (frameset). Ignored. +Line: 1 Col: 531 Unexpected end tag (head). Ignored. +Line: 1 Col: 540 Unexpected end tag (iframe). Ignored. +Line: 1 Col: 548 This element (image) has no end tag. +Line: 1 Col: 558 This element (isindex) has no end tag. +Line: 1 Col: 568 Unexpected end tag (noembed). Ignored. +Line: 1 Col: 579 Unexpected end tag (noframes). Ignored. +Line: 1 Col: 590 Unexpected end tag (noscript). Ignored. +Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored. +Line: 1 Col: 610 Unexpected end tag (option). Ignored. +Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored. +Line: 1 Col: 633 Unexpected end tag (textarea). Ignored. #document | <html> | <head> | <body> +| <br> | <table> | <tbody> | <tr> +| <p> + +#data +<frameset> +#errors +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +Line: 1 Col: 10 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <frameset> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat10.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat10.txt new file mode 100644 index 00000000000..877c9a3d73a --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat10.txt @@ -0,0 +1,430 @@ +#data +<!DOCTYPE html><svg></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> + +#data +<!DOCTYPE html><body><svg></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> + +#data +<!DOCTYPE html><body><select><svg></svg></select> +#errors +35: Stray “svg” start tag. +42: Stray end tag “svg” +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!DOCTYPE html><body><select><option><svg></svg></option></select> +#errors +43: Stray “svg” start tag. +50: Stray end tag “svg” +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> + +#data +<!DOCTYPE html><body><table><svg></svg></table> +#errors +34: Start tag “svg” seen in “table”. +41: Stray end tag “svg”. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <table> + +#data +<!DOCTYPE html><body><table><svg><g>foo</g></svg></table> +#errors +34: Start tag “svg” seen in “table”. +46: Stray end tag “g”. +53: Stray end tag “svg”. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <table> + +#data +<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table> +#errors +34: Start tag “svg” seen in “table”. +46: Stray end tag “g”. +58: Stray end tag “g”. +65: Stray end tag “svg”. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <table> + +#data +<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table> +#errors +41: Start tag “svg” seen in “table”. +53: Stray end tag “g”. +65: Stray end tag “g”. +72: Stray end tag “svg”. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <table> +| <tbody> + +#data +<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table> +#errors +45: Start tag “svg” seen in “table”. +57: Stray end tag “g”. +69: Stray end tag “g”. +76: Stray end tag “svg”. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <table> +| <tbody> +| <tr> + +#data +<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" + +#data +<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux +#errors +70: HTML start tag “p” in a foreign namespace context. +81: “table” closed but “caption” was still open. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux +#errors +78: “table” closed but “caption” was still open. +78: Unclosed elements on stack. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| "baz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux +#errors +44: Start tag “svg” seen in “table”. +56: Stray end tag “g”. +68: Stray end tag “g”. +71: HTML start tag “p” in a foreign namespace context. +71: Start tag “p” seen in “table”. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" +| <table> +| <colgroup> +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux +#errors +50: Stray “svg” start tag. +54: Stray “g” start tag. +62: Stray end tag “g” +66: Stray “g” start tag. +74: Stray end tag “g” +77: Stray “p” start tag. +88: “table” end tag with “select” open. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <select> +| "foobarbaz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux +#errors +36: Start tag “select” seen in “table”. +42: Stray “svg” start tag. +46: Stray “g” start tag. +54: Stray end tag “g” +58: Stray “g” start tag. +66: Stray end tag “g” +69: Stray “p” start tag. +80: “table” end tag with “select” open. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "foobarbaz" +| <table> +| <p> +| "quux" + +#data +<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz +#errors +41: Stray “svg” start tag. +68: HTML start tag “p” in a foreign namespace context. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz +#errors +34: Stray “svg” start tag. +61: HTML start tag “p” in a foreign namespace context. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><frameset><svg><g></g><g></g><p><span> +#errors +31: Stray “svg” start tag. +35: Stray “g” start tag. +40: Stray end tag “g” +44: Stray “g” start tag. +49: Stray end tag “g” +52: Stray “p” start tag. +58: Stray “span” start tag. +58: End of file seen and there were open elements. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span> +#errors +42: Stray “svg” start tag. +46: Stray “g” start tag. +51: Stray end tag “g” +55: Stray “g” start tag. +60: Stray end tag “g” +63: Stray “p” start tag. +69: Stray “span” start tag. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| <svg svg> +| xlink href="foo" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <svg svg> +| <svg g> +| xlink href="foo" +| xml lang="en" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <svg svg> +| <svg g> +| xlink href="foo" +| xml lang="en" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <svg svg> +| <svg g> +| xlink href="foo" +| xml lang="en" +| "bar" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat11.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat11.txt new file mode 100644 index 00000000000..638cde479f7 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat11.txt @@ -0,0 +1,482 @@ +#data +<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| attributeName="" +| attributeType="" +| baseFrequency="" +| baseProfile="" +| calcMode="" +| clipPathUnits="" +| contentScriptType="" +| contentStyleType="" +| diffuseConstant="" +| edgeMode="" +| externalResourcesRequired="" +| filterRes="" +| filterUnits="" +| glyphRef="" +| gradientTransform="" +| gradientUnits="" +| kernelMatrix="" +| kernelUnitLength="" +| keyPoints="" +| keySplines="" +| keyTimes="" +| lengthAdjust="" +| limitingConeAngle="" +| markerHeight="" +| markerUnits="" +| markerWidth="" +| maskContentUnits="" +| maskUnits="" +| numOctaves="" +| pathLength="" +| patternContentUnits="" +| patternTransform="" +| patternUnits="" +| pointsAtX="" +| pointsAtY="" +| pointsAtZ="" +| preserveAlpha="" +| preserveAspectRatio="" +| primitiveUnits="" +| refX="" +| refY="" +| repeatCount="" +| repeatDur="" +| requiredExtensions="" +| requiredFeatures="" +| specularConstant="" +| specularExponent="" +| spreadMethod="" +| startOffset="" +| stdDeviation="" +| stitchTiles="" +| surfaceScale="" +| systemLanguage="" +| tableValues="" +| targetX="" +| targetY="" +| textLength="" +| viewBox="" +| viewTarget="" +| xChannelSelector="" +| yChannelSelector="" +| zoomAndPan="" + +#data +<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' DIFFUSECONSTANT='' EDGEMODE='' EXTERNALRESOURCESREQUIRED='' FILTERRES='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| attributeName="" +| attributeType="" +| baseFrequency="" +| baseProfile="" +| calcMode="" +| clipPathUnits="" +| contentScriptType="" +| contentStyleType="" +| diffuseConstant="" +| edgeMode="" +| externalResourcesRequired="" +| filterRes="" +| filterUnits="" +| glyphRef="" +| gradientTransform="" +| gradientUnits="" +| kernelMatrix="" +| kernelUnitLength="" +| keyPoints="" +| keySplines="" +| keyTimes="" +| lengthAdjust="" +| limitingConeAngle="" +| markerHeight="" +| markerUnits="" +| markerWidth="" +| maskContentUnits="" +| maskUnits="" +| numOctaves="" +| pathLength="" +| patternContentUnits="" +| patternTransform="" +| patternUnits="" +| pointsAtX="" +| pointsAtY="" +| pointsAtZ="" +| preserveAlpha="" +| preserveAspectRatio="" +| primitiveUnits="" +| refX="" +| refY="" +| repeatCount="" +| repeatDur="" +| requiredExtensions="" +| requiredFeatures="" +| specularConstant="" +| specularExponent="" +| spreadMethod="" +| startOffset="" +| stdDeviation="" +| stitchTiles="" +| surfaceScale="" +| systemLanguage="" +| tableValues="" +| targetX="" +| targetY="" +| textLength="" +| viewBox="" +| viewTarget="" +| xChannelSelector="" +| yChannelSelector="" +| zoomAndPan="" + +#data +<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' contentscripttype='' contentstyletype='' diffuseconstant='' edgemode='' externalresourcesrequired='' filterres='' filterunits='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| attributeName="" +| attributeType="" +| baseFrequency="" +| baseProfile="" +| calcMode="" +| clipPathUnits="" +| contentScriptType="" +| contentStyleType="" +| diffuseConstant="" +| edgeMode="" +| externalResourcesRequired="" +| filterRes="" +| filterUnits="" +| glyphRef="" +| gradientTransform="" +| gradientUnits="" +| kernelMatrix="" +| kernelUnitLength="" +| keyPoints="" +| keySplines="" +| keyTimes="" +| lengthAdjust="" +| limitingConeAngle="" +| markerHeight="" +| markerUnits="" +| markerWidth="" +| maskContentUnits="" +| maskUnits="" +| numOctaves="" +| pathLength="" +| patternContentUnits="" +| patternTransform="" +| patternUnits="" +| pointsAtX="" +| pointsAtY="" +| pointsAtZ="" +| preserveAlpha="" +| preserveAspectRatio="" +| primitiveUnits="" +| refX="" +| refY="" +| repeatCount="" +| repeatDur="" +| requiredExtensions="" +| requiredFeatures="" +| specularConstant="" +| specularExponent="" +| spreadMethod="" +| startOffset="" +| stdDeviation="" +| stitchTiles="" +| surfaceScale="" +| systemLanguage="" +| tableValues="" +| targetX="" +| targetY="" +| textLength="" +| viewBox="" +| viewTarget="" +| xChannelSelector="" +| yChannelSelector="" +| zoomAndPan="" + +#data +<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| attributename="" +| attributetype="" +| basefrequency="" +| baseprofile="" +| calcmode="" +| clippathunits="" +| contentscripttype="" +| contentstyletype="" +| diffuseconstant="" +| edgemode="" +| externalresourcesrequired="" +| filterres="" +| filterunits="" +| glyphref="" +| gradienttransform="" +| gradientunits="" +| kernelmatrix="" +| kernelunitlength="" +| keypoints="" +| keysplines="" +| keytimes="" +| lengthadjust="" +| limitingconeangle="" +| markerheight="" +| markerunits="" +| markerwidth="" +| maskcontentunits="" +| maskunits="" +| numoctaves="" +| pathlength="" +| patterncontentunits="" +| patterntransform="" +| patternunits="" +| pointsatx="" +| pointsaty="" +| pointsatz="" +| preservealpha="" +| preserveaspectratio="" +| primitiveunits="" +| refx="" +| refy="" +| repeatcount="" +| repeatdur="" +| requiredextensions="" +| requiredfeatures="" +| specularconstant="" +| specularexponent="" +| spreadmethod="" +| startoffset="" +| stddeviation="" +| stitchtiles="" +| surfacescale="" +| systemlanguage="" +| tablevalues="" +| targetx="" +| targety="" +| textlength="" +| viewbox="" +| viewtarget="" +| xchannelselector="" +| ychannelselector="" +| zoomandpan="" + +#data +<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg altGlyph> +| <svg altGlyphDef> +| <svg altGlyphItem> +| <svg animateColor> +| <svg animateMotion> +| <svg animateTransform> +| <svg clipPath> +| <svg feBlend> +| <svg feColorMatrix> +| <svg feComponentTransfer> +| <svg feComposite> +| <svg feConvolveMatrix> +| <svg feDiffuseLighting> +| <svg feDisplacementMap> +| <svg feDistantLight> +| <svg feFlood> +| <svg feFuncA> +| <svg feFuncB> +| <svg feFuncG> +| <svg feFuncR> +| <svg feGaussianBlur> +| <svg feImage> +| <svg feMerge> +| <svg feMergeNode> +| <svg feMorphology> +| <svg feOffset> +| <svg fePointLight> +| <svg feSpecularLighting> +| <svg feSpotLight> +| <svg feTile> +| <svg feTurbulence> +| <svg foreignObject> +| <svg glyphRef> +| <svg linearGradient> +| <svg radialGradient> +| <svg textPath> + +#data +<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg altGlyph> +| <svg altGlyphDef> +| <svg altGlyphItem> +| <svg animateColor> +| <svg animateMotion> +| <svg animateTransform> +| <svg clipPath> +| <svg feBlend> +| <svg feColorMatrix> +| <svg feComponentTransfer> +| <svg feComposite> +| <svg feConvolveMatrix> +| <svg feDiffuseLighting> +| <svg feDisplacementMap> +| <svg feDistantLight> +| <svg feFlood> +| <svg feFuncA> +| <svg feFuncB> +| <svg feFuncG> +| <svg feFuncR> +| <svg feGaussianBlur> +| <svg feImage> +| <svg feMerge> +| <svg feMergeNode> +| <svg feMorphology> +| <svg feOffset> +| <svg fePointLight> +| <svg feSpecularLighting> +| <svg feSpotLight> +| <svg feTile> +| <svg feTurbulence> +| <svg foreignObject> +| <svg glyphRef> +| <svg linearGradient> +| <svg radialGradient> +| <svg textPath> + +#data +<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg altGlyph> +| <svg altGlyphDef> +| <svg altGlyphItem> +| <svg animateColor> +| <svg animateMotion> +| <svg animateTransform> +| <svg clipPath> +| <svg feBlend> +| <svg feColorMatrix> +| <svg feComponentTransfer> +| <svg feComposite> +| <svg feConvolveMatrix> +| <svg feDiffuseLighting> +| <svg feDisplacementMap> +| <svg feDistantLight> +| <svg feFlood> +| <svg feFuncA> +| <svg feFuncB> +| <svg feFuncG> +| <svg feFuncR> +| <svg feGaussianBlur> +| <svg feImage> +| <svg feMerge> +| <svg feMergeNode> +| <svg feMorphology> +| <svg feOffset> +| <svg fePointLight> +| <svg feSpecularLighting> +| <svg feSpotLight> +| <svg feTile> +| <svg feTurbulence> +| <svg foreignObject> +| <svg glyphRef> +| <svg linearGradient> +| <svg radialGradient> +| <svg textPath> + +#data +<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math altglyph> +| <math altglyphdef> +| <math altglyphitem> +| <math animatecolor> +| <math animatemotion> +| <math animatetransform> +| <math clippath> +| <math feblend> +| <math fecolormatrix> +| <math fecomponenttransfer> +| <math fecomposite> +| <math feconvolvematrix> +| <math fediffuselighting> +| <math fedisplacementmap> +| <math fedistantlight> +| <math feflood> +| <math fefunca> +| <math fefuncb> +| <math fefuncg> +| <math fefuncr> +| <math fegaussianblur> +| <math feimage> +| <math femerge> +| <math femergenode> +| <math femorphology> +| <math feoffset> +| <math fepointlight> +| <math fespecularlighting> +| <math fespotlight> +| <math fetile> +| <math feturbulence> +| <math foreignobject> +| <math glyphref> +| <math lineargradient> +| <math radialgradient> +| <math textpath> + +#data +<!DOCTYPE html><body><svg><solidColor /></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg solidcolor> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat12.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat12.txt new file mode 100644 index 00000000000..63107d277b6 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat12.txt @@ -0,0 +1,62 @@ +#data +<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| "foo" +| <math math> +| <math mtext> +| <i> +| "baz" +| <math annotation-xml> +| <svg svg> +| <svg desc> +| <b> +| "eggs" +| <svg g> +| <svg foreignObject> +| <p> +| "spam" +| <table> +| <tbody> +| <tr> +| <td> +| <img> +| <svg g> +| "quux" +| "bar" + +#data +<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "foo" +| <math math> +| <math mtext> +| <i> +| "baz" +| <math annotation-xml> +| <svg svg> +| <svg desc> +| <b> +| "eggs" +| <svg g> +| <svg foreignObject> +| <p> +| "spam" +| <table> +| <tbody> +| <tr> +| <td> +| <img> +| <svg g> +| "quux" +| "bar" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat14.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat14.txt new file mode 100644 index 00000000000..96312489f15 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat14.txt @@ -0,0 +1,32 @@ +#data +<!DOCTYPE html><html><body><xyz:abc></xyz:abc> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <xyz:abc> + +#data +<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc> +#errors +15: Unexpected start tag html +#document +| <!DOCTYPE html> +| <html> +| abc:def="gh" +| <head> +| <body> +| <xyz:abc> + +#data +<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo> +#errors +15: Unexpected start tag html +#document +| <!DOCTYPE html> +| <html> +| xml:lang="bar" +| <head> +| <body> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat2.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat2.txt index b1b5bc7d1da..60b7a178cd0 100644 --- a/parser/htmlparser/tests/mochitest/html5lib_tree_dat2.txt +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat2.txt @@ -1,8 +1,8 @@ #data -<!doctype html>Test +<!DOCTYPE html>Test #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -11,9 +11,8 @@ #data <textarea>test</div>test #errors -10: missing document type declaration. -17: unescaped '</' in CDATA or RCDATA block. -25: unexpected end of file while parsing CDATA section for element textarea. +Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. +Line: 1 Col: 24 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -24,9 +23,9 @@ #data <table><td> #errors -7: missing document type declaration. -11: required tr element start tag implied by unexpected td element start tag. -12: unexpected end of file implied table element end tag. +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 11 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -39,8 +38,8 @@ #data <table><td>test</tbody></table> #errors -missing document type declarattion -Unexpected and of file +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. #document | <html> | <head> @@ -54,8 +53,8 @@ Unexpected and of file #data <frame>test #errors -missing document type declaration -frame element can't occur here +Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE. +Line: 1 Col: 7 Unexpected start tag frame. Ignored. #document | <html> | <head> @@ -63,32 +62,34 @@ frame element can't occur here | "test" #data -<!doctype html><frameset>test +<!DOCTYPE html><frameset>test #errors -frameset can't contain text -Unexpected end of file +Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored. +Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <frameset> #data -<!doctype html><frameset><!doctype html> +<!DOCTYPE html><frameset><!DOCTYPE html> #errors -document type declaration can only occur at the start of a document -Expected end tag </frameset> +Line: 1 Col: 40 Unexpected DOCTYPE. Ignored. +Line: 1 Col: 40 Expected closing tag. Unexpected end of file. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <frameset> #data -<!doctype html><font><p><b>test</font> +<!DOCTYPE html><font><p><b>test</font> #errors +Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -99,10 +100,11 @@ Expected end tag </frameset> | "test" #data -<!DOCTYPE htmL><dt><div><dd> +<!DOCTYPE html><dt><div><dd> #errors +Line: 1 Col: 28 Missing end tag (div, dt). #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -113,9 +115,8 @@ Expected end tag </frameset> #data <script></x #errors -no document type -</ in script -Unexpected end of file. Expected </script> end tag. +Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. +Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). #document | <html> | <head> @@ -126,10 +127,9 @@ Unexpected end of file. Expected </script> end tag. #data <table><plaintext><td> #errors -no document type -<plaintext> directly inside table -Characters inside table. -Unexpected end of file. +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode. +Line: 1 Col: 22 Unexpected end of file. Expected table content. #document | <html> | <head> @@ -141,8 +141,8 @@ Unexpected end of file. #data <plaintext></plaintext> #errors -No DOCTYPE seen. -Unexpected end of file. +Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE. +Line: 1 Col: 23 Expected closing tag. Unexpected end of file. #document | <html> | <head> @@ -151,12 +151,12 @@ Unexpected end of file. | "</plaintext>" #data -<!doctype html><table><tr>TEST +<!DOCTYPE html><table><tr>TEST #errors -TEST can't occur in <tr> -Unexpected end of file. +Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode. +Line: 1 Col: 30 Unexpected end of file. Expected table content. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -166,56 +166,52 @@ Unexpected end of file. | <tr> #data -<!doctype html><body t1=1><body t2=2><body t3=3 t4=4> +<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4> #errors -Unexpected start tag "body" -Unexpected start tag "body" +Line: 1 Col: 37 Unexpected start tag (body). +Line: 1 Col: 53 Unexpected start tag (body). #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> -| t4="4" +| t1="1" | t2="2" | t3="3" -| t1="1" +| t4="4" #data </b test #errors -Unexpected EOF in attribute -Unexpected attribute in end tag. -No doctype. -Unexpected end tag. +Line: 1 Col: 8 Unexpected end of file in attribute name. +Line: 1 Col: 8 End tag contains unexpected attributes. +Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE. +Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element. #document | <html> | <head> | <body> #data -<!doctype HtML></b test<b &=&amp>X +<!DOCTYPE html></b test<b &=&amp>X #errors -Unexpected < in attribute -End tag contains attributes. -Unexpected end tag. -Named entity didn't end with ; -Unexpected EOF. Missing closing tag. +Line: 1 Col: 32 Named entity didn't end with ';'. +Line: 1 Col: 33 End tag contains unexpected attributes. +Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> -| <b> -| &="&" -| "X" +| "X" #data <!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt #errors -No space after literal DOCTYPE. -Unexpected EOF in (end) tag name +Line: 1 Col: 9 No space after literal string 'DOCTYPE'. +Line: 1 Col: 54 Unexpected end of file in the tag name. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <script> @@ -226,8 +222,7 @@ Unexpected EOF in (end) tag name #data & #errors -No doctype. -Unfinished entity. +Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -237,8 +232,8 @@ Unfinished entity. #data &# #errors -No doctype. -Unfinished numeric entity. +Line: 1 Col: 1 Numeric entity expected. Got end of file instead. +Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -248,8 +243,8 @@ Unfinished numeric entity. #data &#X #errors -No doctype. -Unfinished hexadecimal entity. +Line: 1 Col: 3 Numeric entity expected but none found. +Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -259,8 +254,8 @@ Unfinished hexadecimal entity. #data &#x #errors -No doctype. -Unfinished hexadecimal entity. +Line: 1 Col: 3 Numeric entity expected but none found. +Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -270,8 +265,8 @@ Unfinished hexadecimal entity. #data &#45 #errors -No doctype. -Numeric entity didn't end with ; +Line: 1 Col: 4 Numeric entity didn't end with ';'. +Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -281,8 +276,8 @@ Numeric entity didn't end with ; #data &x-test #errors -No doctype. -Unfinished named entity. +Line: 1 Col: 1 Named entity expected. Got none. +Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -292,9 +287,9 @@ Unfinished named entity. #data <!doctypehtml><p><li> #errors -No space after literal DOCTYPE. +Line: 1 Col: 9 No space after literal string 'DOCTYPE'. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -304,9 +299,9 @@ No space after literal DOCTYPE. #data <!doctypehtml><p><dt> #errors -No space after literal DOCTYPE. +Line: 1 Col: 9 No space after literal string 'DOCTYPE'. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -316,9 +311,9 @@ No space after literal DOCTYPE. #data <!doctypehtml><p><dd> #errors -No space after literal DOCTYPE. +Line: 1 Col: 9 No space after literal string 'DOCTYPE'. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -328,10 +323,10 @@ No space after literal DOCTYPE. #data <!doctypehtml><p><form> #errors -No space after literal DOCTYPE. -Unexpected EOF. +Line: 1 Col: 9 No space after literal string 'DOCTYPE'. +Line: 1 Col: 23 Expected closing tag. Unexpected end of file. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -339,31 +334,10 @@ Unexpected EOF. | <form> #data -<!doctype html><p><b><i><u></p> <p>X -#errors -Unexpected end tag </p>. -Unexpected end EOF. Missing closing tags. -#document -| <!DOCTYPE HTML> -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| " " -| <p> -| <b> -| <i> -| <u> -| "X" - -#data -<!doctype html><p></P>X +<!DOCTYPE html><p></P>X #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -373,8 +347,8 @@ Unexpected end EOF. Missing closing tags. #data &AMP #errors -No doctype. -No closing ; for the entity. +Line: 1 Col: 4 Named entity didn't end with ';'. +Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -384,8 +358,8 @@ No closing ; for the entity. #data &AMp; #errors -No doctype. -Invalid entity. +Line: 1 Col: 1 Named entity expected. Got none. +Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -393,45 +367,45 @@ Invalid entity. | "&AMp;" #data -<!doctype html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> +<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> #errors -Unexpected end of file. +Line: 1 Col: 110 Expected closing tag. Unexpected end of file. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> | <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly> #data -<!doctype html>X</body>X +<!DOCTYPE html>X</body>X #errors -Unexpected non-space characters in the after body phase. +Line: 1 Col: 24 Unexpected non-space characters in the after body phase. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> | "XX" #data -<!doctype html><!-- X +<!DOCTYPE html><!-- X #errors -Unexpected end of file in comment. +Line: 1 Col: 21 Unexpected end of file in comment. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <!-- X --> | <html> | <head> | <body> #data -<!doctype html><table><caption>test TEST</caption><td>test +<!DOCTYPE html><table><caption>test TEST</caption><td>test #errors -Unexpected <td> in table body phase. -Unexpected end of file. +Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 58 Expected closing tag. Unexpected end of file. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -444,11 +418,11 @@ Unexpected end of file. | "test" #data -<!doctype html><select><option><optgroup> +<!DOCTYPE html><select><option><optgroup> #errors -Unexpected end of file. Missing closing tags. +Line: 1 Col: 41 Expected closing tag. Unexpected end of file. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -457,12 +431,12 @@ Unexpected end of file. Missing closing tags. | <optgroup> #data -<!doctype html><select><optgroup><option></optgroup><option><select><option> +<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option> #errors -Unexpected start tag <select> in <select>. -Unexpected start tag <option>. +Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag. +Line: 1 Col: 76 Expected closing tag. Unexpected end of file. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -470,13 +444,14 @@ Unexpected start tag <option>. | <optgroup> | <option> | <option> +| <option> #data -<!doctype html><select><optgroup><option><optgroup> +<!DOCTYPE html><select><optgroup><option><optgroup> #errors -Unexpected end of file. Missing closing tags. +Line: 1 Col: 51 Expected closing tag. Unexpected end of file. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -486,10 +461,10 @@ Unexpected end of file. Missing closing tags. | <optgroup> #data -<!doctype html><font><input><input></font> +<!DOCTYPE html><font><input><input></font> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -498,31 +473,31 @@ Unexpected end of file. Missing closing tags. | <input> #data -<!DoctypE html><!-- XXX - XXX --> +<!DOCTYPE html><!-- XXX - XXX --> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <!-- XXX - XXX --> | <html> | <head> | <body> #data -<!DoctypE html><!-- XXX - XXX +<!DOCTYPE html><!-- XXX - XXX #errors -Unexpected EOF in comment. +Line: 1 Col: 29 Unexpected end of file in comment (-) #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <!-- XXX - XXX --> | <html> | <head> | <body> #data -<!DoctypE html><!-- XXX - XXX - XXX --> +<!DOCTYPE html><!-- XXX - XXX - XXX --> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <!-- XXX - XXX - XXX --> | <html> | <head> @@ -531,27 +506,26 @@ Unexpected EOF in comment. #data <isindex test=x name=x> #errors -No doctype -<isindex> is not ok! +Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE. +Line: 1 Col: 23 Unexpected start tag isindex. Don't use it! #document | <html> | <head> | <body> | <form> | <hr> -| <p> -| <label> -| "This is a searchable index. Insert your search keywords here:" -| <input> -| test="x" -| name="isindex" +| <label> +| "This is a searchable index. Insert your search keywords here: " +| <input> +| name="isindex" +| test="x" | <hr> #data test test #errors -No doctype +Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #document | <html> | <head> @@ -560,69 +534,40 @@ No doctype test" #data -<p><b><i><u></p> -<p>X +<!DOCTYPE html><body><title>test</body></title> #errors -No doctype -Unexpected end tag p. -Unexpected EOF. #document +| <!DOCTYPE html> | <html> | <head> | <body> -| <p> -| <b> -| <i> -| <u> -| " -" -| <p> -| <b> -| <i> -| <u> -| "X" - -#data -<!doctype html><body><title>test</body></title> -#errors -Unexpected start tag that belongs in the head. -Expected closing tag after </. -#document -| <!DOCTYPE HTML> -| <html> -| <head> | <title> | "test</body>" -| <body> #data -<!doctype html><body><title>X</title><meta name=z><link rel=foo><style> +<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style> x { content:"</style" } </style> #errors -Unexpected start tag that belongs in head. -Unexpected start tag that belongs in head. -Unexpected start tag that belongs in head. -Expected closing tag after </. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> +| <body> | <title> | "X" | <meta> | name="z" | <link> | rel="foo" -| <body> | <style> | " x { content:"</style" } " #data -<!doctype html><select><optgroup></optgroup></select> +<!DOCTYPE html><select><optgroup></optgroup></select> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -633,30 +578,27 @@ x { content:"</style" } " #errors -No doctype. +Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE. #document -| " - " | <html> | <head> | <body> #data -<!doctype html> <html> +<!DOCTYPE html> <html> #errors #document -| <!DOCTYPE HTML> -| " " +| <!DOCTYPE html> | <html> | <head> | <body> #data -<!doctype html><script> +<!DOCTYPE html><script> </script> <title>x</title> </head> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <script> @@ -669,23 +611,23 @@ No doctype. | <body> #data -<!doctype html><html><body><html id=x> +<!DOCTYPE html><html><body><html id=x> #errors -duplicate html start tag +Line: 1 Col: 38 html needs to be the first start tag. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | id="x" | <head> | <body> #data -<!doctype html>X</body><html id="x"> +<!DOCTYPE html>X</body><html id="x"> #errors -Unexpected html start tag in the after body phase. -html needs to be the first start tag. +Line: 1 Col: 36 Unexpected start tag token (html) in the after body phase. +Line: 1 Col: 36 html needs to be the first start tag. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | id="x" | <head> @@ -693,45 +635,43 @@ html needs to be the first start tag. | "X" #data -<!doctype html><head><html id=x> +<!DOCTYPE html><head><html id=x> #errors -html start tag too late +Line: 1 Col: 32 html needs to be the first start tag. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | id="x" | <head> | <body> #data -<!doctype html>X</html>X +<!DOCTYPE html>X</html>X #errors -Unexpected non-space characters. Expected end of file. -Unexpected non-space characters in after body phase. Expected end of file. +Line: 1 Col: 24 Unexpected non-space characters in the after body phase. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> | "XX" #data -<!doctype html>X</html> +<!DOCTYPE html>X</html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> | "X " #data -<!doctype html>X</html><p>X +<!DOCTYPE html>X</html><p>X #errors -Unexpected start tag <p> in trailing end phase. -Unexpected start tag <p> in after body phase. +Line: 1 Col: 26 Unexpected start tag (p). #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -740,29 +680,59 @@ Unexpected start tag <p> in after body phase. | "X" #data -<!doctype html>X<p/x/y/z> +<!DOCTYPE html>X<p/x/y/z> #errors -Solidus (/) incorrectly placed. -Solidus (/) incorrectly placed. -Solidus (/) incorrectly placed. +Line: 1 Col: 19 Expected a > after the /. +Line: 1 Col: 21 Solidus (/) incorrectly placed in tag. +Line: 1 Col: 23 Solidus (/) incorrectly placed in tag. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> | "X" | <p> -| y="" | x="" +| y="" | z="" #data -<!doctype html><!--x-- +<!DOCTYPE html><!--x-- #errors -Unexpected end of file in comment. +Line: 1 Col: 22 Unexpected end of file in comment (--). #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <!-- x --> | <html> | <head> | <body> + +#data +<!DOCTYPE html><table><tr><td></p></table> +#errors +Line: 1 Col: 34 Unexpected end tag (p). Ignored. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <p> + +#data +<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->--> +#errors +Line: 1 Col: 20 Expected space or '>'. Got '' +Line: 1 Col: 25 Erroneous DOCTYPE. +Line: 1 Col: 35 Unexpected character in comment found. +#document +| <!DOCTYPE <!doctype> +| <html> +| <head> +| <body> +| ">" +| <!-- <!--x --> +| "-->" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat3.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat3.txt index 38881d7dec4..a305c416317 100644 --- a/parser/htmlparser/tests/mochitest/html5lib_tree_dat3.txt +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat3.txt @@ -1,8 +1,8 @@ #data <head></head><style></style> #errors -No DOCTYPE -<style> in after-head mode +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved. #document | <html> | <head> @@ -12,8 +12,8 @@ No DOCTYPE #data <head></head><script></script> #errors -No DOCTYPE -<script> in after-head mode +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved. #document | <html> | <head> @@ -23,8 +23,8 @@ No DOCTYPE #data <head></head><!-- --><style></style><!-- --><script></script> #errors -No DOCTYPE -<style> in after-head mode +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved. #document | <html> | <head> @@ -37,7 +37,7 @@ No DOCTYPE #data <head></head><!-- -->x<style></style><!-- --><script></script> #errors -No DOCTYPE +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. #document | <html> | <head> @@ -53,7 +53,7 @@ No DOCTYPE </pre></body></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -61,31 +61,42 @@ No DOCTYPE #data <!DOCTYPE html><html><head></head><body><pre> - -foo</pre></body></html> +foo2</pre></body></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> | <pre> -| "foo" - +| "foo2" #data <!DOCTYPE html><html><head></head><body><pre> -foo +foo3</pre></body></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> +| " +foo3" + +#data +<!DOCTYPE html><html><head></head><body><pre> +foo4 </pre></body></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> | <pre> -| "foo +| "foo4 " #data @@ -93,7 +104,7 @@ foo </span></body></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -108,7 +119,7 @@ foo y</pre></body></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -120,8 +131,9 @@ y" <!DOCTYPE html><html><head></head><body><pre>x<div> y</pre></body></html> #errors +Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -129,4 +141,153 @@ y</pre></body></html> | "x" | <div> | " -| y" +y" + +#data +<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML> +#errors +Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <meta> +| <body> + +#data +<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML> +#errors +Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<textarea>foo<span>bar</span><i>baz +#errors +Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. +Line: 1 Col: 35 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <textarea> +| "foo<span>bar</span><i>baz" + +#data +<title>foo<span>bar</em><i>baz +#errors +Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +Line: 1 Col: 30 Unexpected end of file. Expected end tag (title). +#document +| <html> +| <head> +| <title> +| "foo<span>bar</em><i>baz" +| <body> + +#data +<!DOCTYPE html><textarea> +</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> + +#data +<!DOCTYPE html><textarea> +foo</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "foo" + +#data +<!DOCTYPE html><textarea> + +foo</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| " +foo" + +#data +<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html> +#errors +Line: 1 Col: 60 Missing end tag (div, li). +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ul> +| <li> +| <div> +| <p> +| <li> + +#data +<!doctype html><nobr><nobr><nobr> +#errors +Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). +Line: 1 Col: 33 Unexpected start tag (nobr) implies end tag (nobr). +Line: 1 Col: 33 Expected closing tag. Unexpected end of file. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <nobr> +| <nobr> +| <nobr> + +#data +<!doctype html><nobr><nobr></nobr><nobr> +#errors +Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). +Line: 1 Col: 40 Expected closing tag. Unexpected end of file. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <nobr> +| <nobr> +| <nobr> + +#data +<!doctype html><html><body><p><table></table></body></html> +#errors +Not known +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <table> + +#data +<p><table></table> +#errors +Not known +#document +| <html> +| <head> +| <body> +| <p> +| <table> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat5.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat5.txt new file mode 100644 index 00000000000..2c95031bd4a --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat5.txt @@ -0,0 +1,175 @@ +#data +<style> <!-- </style>x +#errors +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +Line: 1 Col: 22 Unexpected end of file. Expected end tag (style). +#document +| <html> +| <head> +| <style> +| " <!-- </style>x" +| <body> + +#data +<style> <!-- </style> --> </style>x +#errors +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +#document +| <html> +| <head> +| <style> +| " <!-- </style> --> " +| <body> +| "x" + +#data +<style> <!--> </style>x +#errors +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +#document +| <html> +| <head> +| <style> +| " <!--> " +| <body> +| "x" + +#data +<style> <!---> </style>x +#errors +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +#document +| <html> +| <head> +| <style> +| " <!---> " +| <body> +| "x" + +#data +<iframe> <!---> </iframe>x +#errors +Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. +#document +| <html> +| <head> +| <body> +| <iframe> +| " <!---> " +| "x" + +#data +<iframe> <!--- </iframe>->x</iframe> --> </iframe>x +#errors +Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. +#document +| <html> +| <head> +| <body> +| <iframe> +| " <!--- </iframe>->x</iframe> --> " +| "x" + +#data +<script> <!-- </script> --> </script>x +#errors +Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. +#document +| <html> +| <head> +| <script> +| " <!-- </script> --> " +| <body> +| "x" + +#data +<title> <!-- </title> --> </title>x +#errors +Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +#document +| <html> +| <head> +| <title> +| " <!-- </title> --> " +| <body> +| "x" + +#data +<textarea> <!--- </textarea>->x</textarea> --> </textarea>x +#errors +Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. +#document +| <html> +| <head> +| <body> +| <textarea> +| " <!--- </textarea>->x</textarea> --> " +| "x" + +#data +<style> <!</-- </style>x +#errors +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +#document +| <html> +| <head> +| <style> +| " <!</-- " +| <body> +| "x" + +#data +<xmp> <!-- > --> </xmp> +#errors +Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. +#document +| <html> +| <head> +| <body> +| <xmp> +| " <!-- > --> " + +#data +<title>&amp;</title> +#errors +Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +#document +| <html> +| <head> +| <title> +| "&" +| <body> + +#data +<title><!--&amp;--></title> +#errors +Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +#document +| <html> +| <head> +| <title> +| "<!--&amp;-->" +| <body> + +#data +<title><!--</title> +#errors +Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +Line: 1 Col: 19 Unexpected end of file. Expected end tag (title). +#document +| <html> +| <head> +| <title> +| "<!--</title>" +| <body> + +#data +<noscript><!--</noscript>--></noscript> +#errors +Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. +#document +| <html> +| <head> +| <noscript> +| "<!--</noscript>-->" +| <body> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat6.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat6.txt new file mode 100644 index 00000000000..e7972b982d6 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat6.txt @@ -0,0 +1,611 @@ +#data +<!doctype html></head> <head> +#errors +Line: 1 Col: 29 Unexpected start tag head. Ignored. +#document +| <!DOCTYPE html> +| <html> +| <head> +| " " +| <body> + +#data +<!doctype html><form><div></form><div> +#errors +33: End tag "form" seen but there were unclosed elements. +38: End of file seen and there were open elements. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <div> +| <div> + +#data +<!doctype html><title>&amp;</title> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "&" +| <body> + +#data +<!doctype html><title><!--&amp;--></title> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "<!--&amp;-->" +| <body> + +#data +<!doctype> +#errors +Line: 1 Col: 9 No space after literal string 'DOCTYPE'. +Line: 1 Col: 10 Unexpected > character. Expected DOCTYPE name. +Line: 1 Col: 10 Erroneous DOCTYPE. +#document +| <!DOCTYPE > +| <html> +| <head> +| <body> + +#data +<!---x +#errors +Line: 1 Col: 6 Unexpected end of file in comment. +Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE. +#document +| <!-- -x --> +| <html> +| <head> +| <body> + +#data +<body> +<div> +#errors +Line: 1 Col: 6 Unexpected start tag (body). +Line: 2 Col: 5 Expected closing tag. Unexpected end of file. +#document-fragment +div +#document +| " +" +| <div> + +#data +<frameset></frameset> +foo +#errors +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Ignored. +#document +| <html> +| <head> +| <frameset> +| " +" + +#data +<frameset></frameset> +<noframes> +#errors +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +Line: 2 Col: 10 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <frameset> +| " +" +| <noframes> + +#data +<frameset></frameset> +<div> +#errors +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored. +#document +| <html> +| <head> +| <frameset> +| " +" + +#data +<frameset></frameset> +</html> +#errors +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +#document +| <html> +| <head> +| <frameset> +| " +" + +#data +<frameset></frameset> +</div> +#errors +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored. +#document +| <html> +| <head> +| <frameset> +| " +" + +#data +<form><form> +#errors +Line: 1 Col: 6 Unexpected start tag (form). Expected DOCTYPE. +Line: 1 Col: 12 Unexpected start tag (form). +Line: 1 Col: 12 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <form> + +#data +<button><button> +#errors +Line: 1 Col: 8 Unexpected start tag (button). Expected DOCTYPE. +Line: 1 Col: 16 Unexpected start tag (button) implies end tag (button). +Line: 1 Col: 16 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <button> +| <button> + +#data +<table><tr><td></th> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 20 Unexpected end tag (th). Ignored. +Line: 1 Col: 20 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<table><caption><td> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 20 Unexpected end tag (td). Ignored. +Line: 1 Col: 20 Unexpected table cell start tag (td) in the table body phase. +Line: 1 Col: 20 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <table> +| <caption> +| <tbody> +| <tr> +| <td> + +#data +<table><caption><div> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 21 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <table> +| <caption> +| <div> + +#data +</caption><div> +#errors +Line: 1 Col: 10 Unexpected end tag (caption). Ignored. +Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +#document-fragment +caption +#document +| <div> + +#data +<table><caption><div></caption> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 31 Unexpected end tag (caption). Missing end tag (div). +Line: 1 Col: 31 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| <table> +| <caption> +| <div> + +#data +<table><caption></table> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end caption. +#document +| <html> +| <head> +| <body> +| <table> +| <caption> + +#data +</table><div> +#errors +Line: 1 Col: 8 Unexpected end table tag in caption. Generates implied end caption. +Line: 1 Col: 8 Unexpected end tag (caption). Ignored. +Line: 1 Col: 13 Expected closing tag. Unexpected end of file. +#document-fragment +caption +#document +| <div> + +#data +<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 23 Unexpected end tag (body). Ignored. +Line: 1 Col: 29 Unexpected end tag (col). Ignored. +Line: 1 Col: 40 Unexpected end tag (colgroup). Ignored. +Line: 1 Col: 47 Unexpected end tag (html). Ignored. +Line: 1 Col: 55 Unexpected end tag (tbody). Ignored. +Line: 1 Col: 60 Unexpected end tag (td). Ignored. +Line: 1 Col: 68 Unexpected end tag (tfoot). Ignored. +Line: 1 Col: 73 Unexpected end tag (th). Ignored. +Line: 1 Col: 81 Unexpected end tag (thead). Ignored. +Line: 1 Col: 86 Unexpected end tag (tr). Ignored. +Line: 1 Col: 86 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <table> +| <caption> + +#data +<table><caption><div></div> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 27 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <table> +| <caption> +| <div> + +#data +<table><tr><td></body></caption></col></colgroup></html> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 22 Unexpected end tag (body). Ignored. +Line: 1 Col: 32 Unexpected end tag (caption). Ignored. +Line: 1 Col: 38 Unexpected end tag (col). Ignored. +Line: 1 Col: 49 Unexpected end tag (colgroup). Ignored. +Line: 1 Col: 56 Unexpected end tag (html). Ignored. +Line: 1 Col: 56 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> + +#data +</table></tbody></tfoot></thead></tr><div> +#errors +Line: 1 Col: 8 Unexpected end tag (table). Ignored. +Line: 1 Col: 16 Unexpected end tag (tbody). Ignored. +Line: 1 Col: 24 Unexpected end tag (tfoot). Ignored. +Line: 1 Col: 32 Unexpected end tag (thead). Ignored. +Line: 1 Col: 37 Unexpected end tag (tr). Ignored. +Line: 1 Col: 42 Expected closing tag. Unexpected end of file. +#document-fragment +td +#document +| <div> + +#data +<table><colgroup>foo +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 20 Unexpected non-space characters in table context caused voodoo mode. +Line: 1 Col: 20 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| "foo" +| <table> +| <colgroup> + +#data +foo<col> +#errors +Line: 1 Col: 3 Unexpected end tag (colgroup). Ignored. +#document-fragment +colgroup +#document +| <col> + +#data +<table><colgroup></col> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 23 This element (col) has no end tag. +Line: 1 Col: 23 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> + +#data +<frameset><div> +#errors +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +Line: 1 Col: 15 Unexpected start tag token (div) in the frameset phase. Ignored. +Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <frameset> + +#data +</frameset><frame> +#errors +Line: 1 Col: 11 Unexpected end tag token (frameset) in the frameset phase (innerHTML). +#document-fragment +frameset +#document +| <frame> + +#data +<frameset></div> +#errors +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +Line: 1 Col: 16 Unexpected end tag token (div) in the frameset phase. Ignored. +Line: 1 Col: 16 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <frameset> + +#data +</body><div> +#errors +Line: 1 Col: 7 Unexpected end tag (body). Ignored. +Line: 1 Col: 12 Expected closing tag. Unexpected end of file. +#document-fragment +body +#document +| <div> + +#data +<table><tr><div> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. +Line: 1 Col: 16 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| <div> +| <table> +| <tbody> +| <tr> + +#data +</tr><td> +#errors +Line: 1 Col: 5 Unexpected end tag (tr). Ignored. +#document-fragment +tr +#document +| <td> + +#data +</tbody></tfoot></thead><td> +#errors +Line: 1 Col: 8 Unexpected end tag (tbody). Ignored. +Line: 1 Col: 16 Unexpected end tag (tfoot). Ignored. +Line: 1 Col: 24 Unexpected end tag (thead). Ignored. +#document-fragment +tr +#document +| <td> + +#data +<table><tr><div><td> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. +Line: 1 Col: 20 Unexpected implied end tag (div) in the table row phase. +Line: 1 Col: 20 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <div> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<caption><col><colgroup><tbody><tfoot><thead><tr> +#errors +Line: 1 Col: 9 Unexpected start tag (caption). +Line: 1 Col: 14 Unexpected start tag (col). +Line: 1 Col: 24 Unexpected start tag (colgroup). +Line: 1 Col: 31 Unexpected start tag (tbody). +Line: 1 Col: 38 Unexpected start tag (tfoot). +Line: 1 Col: 45 Unexpected start tag (thead). +Line: 1 Col: 49 Unexpected end of file. Expected table content. +#document-fragment +tbody +#document +| <tr> + +#data +<table><tbody></thead> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 22 Unexpected end tag (thead) in the table body phase. Ignored. +Line: 1 Col: 22 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> + +#data +</table><tr> +#errors +Line: 1 Col: 8 Unexpected end tag (table). Ignored. +Line: 1 Col: 12 Unexpected end of file. Expected table content. +#document-fragment +tbody +#document +| <tr> + +#data +<table><tbody></body></caption></col></colgroup></html></td></th></tr> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 21 Unexpected end tag (body) in the table body phase. Ignored. +Line: 1 Col: 31 Unexpected end tag (caption) in the table body phase. Ignored. +Line: 1 Col: 37 Unexpected end tag (col) in the table body phase. Ignored. +Line: 1 Col: 48 Unexpected end tag (colgroup) in the table body phase. Ignored. +Line: 1 Col: 55 Unexpected end tag (html) in the table body phase. Ignored. +Line: 1 Col: 60 Unexpected end tag (td) in the table body phase. Ignored. +Line: 1 Col: 65 Unexpected end tag (th) in the table body phase. Ignored. +Line: 1 Col: 70 Unexpected end tag (tr) in the table body phase. Ignored. +Line: 1 Col: 70 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> + +#data +<table><tbody></div> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 20 Unexpected end tag (div) in table context caused voodoo mode. +Line: 1 Col: 20 End tag (div) seen too early. Expected other end tag. +Line: 1 Col: 20 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> + +#data +<table><table> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 14 Unexpected start tag (table) implies end tag (table). +Line: 1 Col: 14 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| <table> +| <table> + +#data +<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 14 Unexpected end tag (body). Ignored. +Line: 1 Col: 24 Unexpected end tag (caption). Ignored. +Line: 1 Col: 30 Unexpected end tag (col). Ignored. +Line: 1 Col: 41 Unexpected end tag (colgroup). Ignored. +Line: 1 Col: 48 Unexpected end tag (html). Ignored. +Line: 1 Col: 56 Unexpected end tag (tbody). Ignored. +Line: 1 Col: 61 Unexpected end tag (td). Ignored. +Line: 1 Col: 69 Unexpected end tag (tfoot). Ignored. +Line: 1 Col: 74 Unexpected end tag (th). Ignored. +Line: 1 Col: 82 Unexpected end tag (thead). Ignored. +Line: 1 Col: 87 Unexpected end tag (tr). Ignored. +Line: 1 Col: 87 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| <table> + +#data +</table><tr> +#errors +Line: 1 Col: 8 Unexpected end tag (table). Ignored. +Line: 1 Col: 12 Unexpected end of file. Expected table content. +#document-fragment +table +#document +| <tbody> +| <tr> + +#data +<body></body></html> +#errors +Line: 1 Col: 20 Unexpected html end tag in inner html mode. +Line: 1 Col: 20 Unexpected EOF in inner html mode. +#document-fragment +html +#document +| <head> +| <body> + +#data +<html><frameset></frameset></html> +#errors +Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +#document +| <html> +| <head> +| <frameset> +| " " + +#data +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html> +#errors +Line: 1 Col: 50 Erroneous DOCTYPE. +Line: 1 Col: 63 Unexpected end tag (html) after the (implied) root element. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat7.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat7.txt new file mode 100644 index 00000000000..f5193c660bc --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat7.txt @@ -0,0 +1,390 @@ +#data +<!doctype html><body><title>X</title> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <title> +| "X" + +#data +<!doctype html><table><title>X</title></table> +#errors +Line: 1 Col: 29 Unexpected start tag (title) in table context caused voodoo mode. +Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <title> +| "X" +| <table> + +#data +<!doctype html><head></head><title>X</title> +#errors +Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "X" +| <body> + +#data +<!doctype html></head><title>X</title> +#errors +Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "X" +| <body> + +#data +<!doctype html><table><meta></table> +#errors +Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <meta> +| <table> + +#data +<!doctype html><table>X<tr><td><table> <meta></table></table> +#errors +Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. +Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X" +| <table> +| <tbody> +| <tr> +| <td> +| <meta> +| <table> +| " " + +#data +<!doctype html><html> <head> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<!doctype html> <head> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<!doctype html><table><style> <tr>x </style> </table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <style> +| " <tr>x " +| " " + +#data +<!doctype html><table><TBODY><script> <tr>x </script> </table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <script> +| " <tr>x " +| " " + +#data +<!doctype html><p><applet><p>X</p></applet> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <applet> +| <p> +| "X" + +#data +<!doctype html><listing> +X</listing> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <listing> +| "X" + +#data +<!doctype html><select><input>X +#errors +Line: 1 Col: 30 Unexpected input start tag in the select phase. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <input> +| "X" + +#data +<!doctype html><select><select>X +#errors +Line: 1 Col: 31 Unexpected select start tag in the select phase treated as select end tag. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "X" + +#data +<!doctype html><table><input type=hidDEN></table> +#errors +Line: 1 Col: 41 Unexpected input with type hidden in table context. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <input> +| type="hidDEN" + +#data +<!doctype html><table>X<input type=hidDEN></table> +#errors +Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X" +| <table> +| <input> +| type="hidDEN" + +#data +<!doctype html><table> <input type=hidDEN></table> +#errors +Line: 1 Col: 43 Unexpected input with type hidden in table context. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| " " +| <input> +| type="hidDEN" + +#data +<!doctype html><table> <input type='hidDEN'></table> +#errors +Line: 1 Col: 45 Unexpected input with type hidden in table context. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| " " +| <input> +| type="hidDEN" + +#data +<!doctype html><table><input type=" hidden"><input type=hidDEN></table> +#errors +Line: 1 Col: 44 Unexpected start tag (input) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <input> +| type=" hidden" +| <table> +| <input> +| type="hidDEN" + +#data +<!doctype html><table><select>X<tr> +#errors +Line: 1 Col: 30 Unexpected start tag (select) in table context caused voodoo mode. +Line: 1 Col: 35 Unexpected table element start tag (trs) in the select in table phase. +Line: 1 Col: 35 Unexpected end of file. Expected table content. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "X" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><select>X</select> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "X" + +#data +<!DOCTYPE hTmL><html></html> +#errors +Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML><html></html> +#errors +Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<body>X</body></body> +#errors +Line: 1 Col: 21 Unexpected end tag token (body) in the after body phase. +Line: 1 Col: 21 Unexpected EOF in inner html mode. +#document-fragment +html +#document +| <head> +| <body> +| "X" + +#data +<div><p>a</x> b +#errors +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 13 Unexpected end tag (x). Ignored. +Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <div> +| <p> +| "a b" + +#data +<table><tr><td><code></code> </table> +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <code> +| " " + +#data +<table><b><tr><td>aaa</td></tr>bbb</table>ccc +#errors +XXX: Fix me +#document +| <html> +| <head> +| <body> +| <b> +| <b> +| "bbb" +| <table> +| <tbody> +| <tr> +| <td> +| "aaa" +| <b> +| "ccc" + +#data +A<table><tr> B</tr> B</table> +#errors +XXX: Fix me +#document +| <html> +| <head> +| <body> +| "A B B" +| <table> +| <tbody> +| <tr> + +#data +A<table><tr> B</tr> </em>C</table> +#errors +XXX: Fix me +#document +| <html> +| <head> +| <body> +| "A BC" +| <table> +| <tbody> +| <tr> +| " " + +#data +<select><keygen> +#errors +Not known +#document +| <html> +| <head> +| <body> +| <select> +| <keygen> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat8.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat8.txt new file mode 100644 index 00000000000..90e6c919e84 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat8.txt @@ -0,0 +1,148 @@ +#data +<div> +<div></div> +</span>x +#errors +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 3 Col: 7 Unexpected end tag (span). Ignored. +Line: 3 Col: 8 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <div> +| " +" +| <div> +| " +x" + +#data +<div>x<div></div> +</span>x +#errors +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 2 Col: 7 Unexpected end tag (span). Ignored. +Line: 2 Col: 8 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <div> +| "x" +| <div> +| " +x" + +#data +<div>x<div></div>x</span>x +#errors +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 25 Unexpected end tag (span). Ignored. +Line: 1 Col: 26 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <div> +| "x" +| <div> +| "xx" + +#data +<div>x<div></div>y</span>z +#errors +Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. +Line: 1 Col: 25 Unexpected end tag (span). Ignored. +Line: 1 Col: 26 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <div> +| "x" +| <div> +| "yz" + +#data +<table><div>x<div></div>x</span>x +#errors +Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +Line: 1 Col: 12 Unexpected start tag (div) in table context caused voodoo mode. +Line: 1 Col: 18 Unexpected start tag (div) in table context caused voodoo mode. +Line: 1 Col: 24 Unexpected end tag (div) in table context caused voodoo mode. +Line: 1 Col: 32 Unexpected end tag (span) in table context caused voodoo mode. +Line: 1 Col: 32 Unexpected end tag (span). Ignored. +Line: 1 Col: 33 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| <div> +| "x" +| <div> +| "xx" +| <table> + +#data +x<table>x +#errors +Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +Line: 1 Col: 9 Unexpected non-space characters in table context caused voodoo mode. +Line: 1 Col: 9 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| "xx" +| <table> + +#data +x<table><table>x +#errors +Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +Line: 1 Col: 15 Unexpected start tag (table) implies end tag (table). +Line: 1 Col: 16 Unexpected non-space characters in table context caused voodoo mode. +Line: 1 Col: 16 Unexpected end of file. Expected table content. +#document +| <html> +| <head> +| <body> +| "x" +| <table> +| "x" +| <table> + +#data +<b>a<div></div><div></b>y +#errors +Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. +Line: 1 Col: 24 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <b> +| "a" +| <div> +| <div> +| <b> +| "y" + +#data +<a><div><p></a> +#errors +Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. +Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. +Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <a> +| <div> +| <a> +| <p> +| <a> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_dat9.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_dat9.txt new file mode 100644 index 00000000000..2b715f83dd4 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_dat9.txt @@ -0,0 +1,430 @@ +#data +<!DOCTYPE html><math></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> + +#data +<!DOCTYPE html><body><math></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> + +#data +<!DOCTYPE html><body><select><math></math></select> +#errors +Line: 1 Col: 35 Unexpected start tag token (math) in the select phase. Ignored. +Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!DOCTYPE html><body><select><option><math></math></option></select> +#errors +Line: 1 Col: 43 Unexpected start tag token (math) in the select phase. Ignored. +Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> + +#data +<!DOCTYPE html><body><table><math></math></table> +#errors +Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. +Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <table> + +#data +<!DOCTYPE html><body><table><math><mi>foo</mi></math></table> +#errors +Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. +Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. +Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <table> + +#data +<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table> +#errors +Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. +Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. +Line: 1 Col: 58 Unexpected end tag (mi) in table context caused voodoo mode. +Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <table> + +#data +<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table> +#errors +Line: 1 Col: 41 Unexpected start tag (math) in table context caused voodoo mode. +Line: 1 Col: 53 Unexpected end tag (mi) in table context caused voodoo mode. +Line: 1 Col: 65 Unexpected end tag (mi) in table context caused voodoo mode. +Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <table> +| <tbody> + +#data +<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table> +#errors +Line: 1 Col: 45 Unexpected start tag (math) in table context caused voodoo mode. +Line: 1 Col: 57 Unexpected end tag (mi) in table context caused voodoo mode. +Line: 1 Col: 69 Unexpected end tag (mi) in table context caused voodoo mode. +Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <table> +| <tbody> +| <tr> + +#data +<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" + +#data +<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux +#errors +Line: 1 Col: 70 HTML start tag "p" in a foreign namespace context. +Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end caption. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux +#errors +Line: 1 Col: 78 Unexpected end table tag in caption. Generates implied end caption. +Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math). +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| "baz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux +#errors +Line: 1 Col: 44 Unexpected start tag (math) in table context caused voodoo mode. +Line: 1 Col: 56 Unexpected end tag (mi) in table context caused voodoo mode. +Line: 1 Col: 68 Unexpected end tag (mi) in table context caused voodoo mode. +Line: 1 Col: 71 HTML start tag "p" in a foreign namespace context. +Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" +| <table> +| <colgroup> +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux +#errors +Line: 1 Col: 50 Unexpected start tag token (math) in the select phase. Ignored. +Line: 1 Col: 54 Unexpected start tag token (mi) in the select phase. Ignored. +Line: 1 Col: 62 Unexpected end tag (mi) in the select phase. Ignored. +Line: 1 Col: 66 Unexpected start tag token (mi) in the select phase. Ignored. +Line: 1 Col: 74 Unexpected end tag (mi) in the select phase. Ignored. +Line: 1 Col: 77 Unexpected start tag token (p) in the select phase. Ignored. +Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table phase. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <select> +| "foobarbaz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux +#errors +Line: 1 Col: 36 Unexpected start tag (select) in table context caused voodoo mode. +Line: 1 Col: 42 Unexpected start tag token (math) in the select phase. Ignored. +Line: 1 Col: 46 Unexpected start tag token (mi) in the select phase. Ignored. +Line: 1 Col: 54 Unexpected end tag (mi) in the select phase. Ignored. +Line: 1 Col: 58 Unexpected start tag token (mi) in the select phase. Ignored. +Line: 1 Col: 66 Unexpected end tag (mi) in the select phase. Ignored. +Line: 1 Col: 69 Unexpected start tag token (p) in the select phase. Ignored. +Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table phase. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "foobarbaz" +| <table> +| <p> +| "quux" + +#data +<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz +#errors +Line: 1 Col: 41 Unexpected start tag (math). +Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz +#errors +Line: 1 Col: 34 Unexpected start tag token (math) in the after body phase. +Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span> +#errors +Line: 1 Col: 31 Unexpected start tag token (math) in the frameset phase. Ignored. +Line: 1 Col: 35 Unexpected start tag token (mi) in the frameset phase. Ignored. +Line: 1 Col: 40 Unexpected end tag token (mi) in the frameset phase. Ignored. +Line: 1 Col: 44 Unexpected start tag token (mi) in the frameset phase. Ignored. +Line: 1 Col: 49 Unexpected end tag token (mi) in the frameset phase. Ignored. +Line: 1 Col: 52 Unexpected start tag token (p) in the frameset phase. Ignored. +Line: 1 Col: 58 Unexpected start tag token (span) in the frameset phase. Ignored. +Line: 1 Col: 58 Expected closing tag. Unexpected end of file. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span> +#errors +Line: 1 Col: 42 Unexpected start tag (math) in the after frameset phase. Ignored. +Line: 1 Col: 46 Unexpected start tag (mi) in the after frameset phase. Ignored. +Line: 1 Col: 51 Unexpected end tag (mi) in the after frameset phase. Ignored. +Line: 1 Col: 55 Unexpected start tag (mi) in the after frameset phase. Ignored. +Line: 1 Col: 60 Unexpected end tag (mi) in the after frameset phase. Ignored. +Line: 1 Col: 63 Unexpected start tag (p) in the after frameset phase. Ignored. +Line: 1 Col: 69 Unexpected start tag (span) in the after frameset phase. Ignored. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| <math math> +| xlink href="foo" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <math math> +| <math mi> +| xlink href="foo" +| xml lang="en" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <math math> +| <math mi> +| xlink href="foo" +| xml lang="en" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <math math> +| <math mi> +| xlink href="foo" +| xml lang="en" +| "bar" diff --git a/parser/htmlparser/tests/mochitest/nu.validator.htmlparser.HtmlParser.nocache.js b/parser/htmlparser/tests/mochitest/nu.validator.htmlparser.HtmlParser.nocache.js new file mode 100644 index 00000000000..369fb37399d --- /dev/null +++ b/parser/htmlparser/tests/mochitest/nu.validator.htmlparser.HtmlParser.nocache.js @@ -0,0 +1,502 @@ +(function () {window.nu_validator_htmlparser_HtmlParser=function(){var k='',v='" for "gwt:onLoadErrorFn"',t='" for "gwt:onPropertyErrorFn"',z='#',B='/',w='<script id="__gwt_marker_nu.validator.htmlparser.HtmlParser"><\/script>',q='=',A='?',s='Bad handler "',x='DOMContentLoaded',y='__gwt_marker_nu.validator.htmlparser.HtmlParser',C='base',E='clear.cache.gif',p='content',u='gwt:onLoadErrorFn',r='gwt:onPropertyErrorFn',o='gwt:property',D='img',m='meta',n='name',l='nu.validator.htmlparser.HtmlParser';var F=window,j=document,gb,eb,db=k,jb={},qb=[],pb=[],cb=[],mb,ob;if(!F.__gwt_stylesLoaded){F.__gwt_stylesLoaded={}}if(!F.__gwt_scriptsLoaded){F.__gwt_scriptsLoaded={}}function ib(){if(gb&&eb){gb(mb,l,db)}} +function fb(){var i,h;j.write(w);h=j.getElementById(y);if(h){i=h.previousSibling}function f(b){var a=b.lastIndexOf(z);if(a==-1){a=b.length}var c=b.indexOf(A);if(c==-1){c=b.length}var d=b.lastIndexOf(B,Math.min(c,a));return d>=0?b.substring(0,d+1):k} +;if(i&&i.src){db=f(i.src)}if(db==k){var e=j.getElementsByTagName(C);if(e.length>0){db=e[e.length-1].href}else{db=f(j.location.href)}}else if(db.match(/^\w+:\/\//)){}else{var g=j.createElement(D);g.src=db+E;db=f(g.src)}if(h){h.parentNode.removeChild(h)}} +function nb(){var f=document.getElementsByTagName(m);for(var d=0,g=f.length;d<g;++d){var e=f[d],h=e.getAttribute(n),b;if(h){if(h==o){b=e.getAttribute(p);if(b){var i,c=b.indexOf(q);if(c>=0){h=b.substring(0,c);i=b.substring(c+1)}else{h=b;i=k}jb[h]=i}}else if(h==r){b=e.getAttribute(p);if(b){try{ob=eval(b)}catch(a){alert(s+b+t)}}}else if(h==u){b=e.getAttribute(p);if(b){try{mb=eval(b)}catch(a){alert(s+b+v)}}}}}} +nu_validator_htmlparser_HtmlParser.onScriptLoad=function(a){nu_validator_htmlparser_HtmlParser=null;gb=a;ib()};fb();nb();var lb;function kb(){if(!eb){eb=true;ib();if(j.removeEventListener){j.removeEventListener(x,kb,false)}if(lb){clearInterval(lb)}}} +if(j.addEventListener){j.addEventListener(x,kb,false)}var lb=setInterval(function(){if(/loaded|complete/.test(j.readyState)){kb()}},50)};nu_validator_htmlparser_HtmlParser.__gwt_initHandlers=function(i,e,j){var d=window,g=d.onresize,f=d.onbeforeunload,h=d.onunload;d.onresize=function(a){try{i()}finally{g&&g(a)}};d.onbeforeunload=function(a){var c,b;try{c=e()}finally{b=f&&f(a)}if(c!=null){return c}if(b!=null){return b}};d.onunload=function(a){try{j()}finally{h&&h(a);d.onresize=null;d.onbeforeunload=null;d.onunload=null}}};nu_validator_htmlparser_HtmlParser();})();(function () {var $gwt_version = "1.5.1";var $wnd = window;var $doc = $wnd.document;var $moduleName, $moduleBase;var $stats = $wnd.__gwtStatsEvent ? function(a) {$wnd.__gwtStatsEvent(a)} : null;var cNh='',qPg='\n',n4h='\n ',Bxg=' which is not a legal XML 1.0 character.',cNg='#mathplayer',zOg='#renesis',rZg='(',vxg=').',iwh='): ',fPh='+//silmaril//dtd html pro v0r11 19970101//',cWg=', ',mih=', Size: ',dNh='-//W3C//DTD HTML 4.0 Frameset//EN',oNh='-//W3C//DTD HTML 4.0 Transitional//EN',zNh='-//W3C//DTD HTML 4.0//EN',eOh='-//W3C//DTD HTML 4.01 Frameset//EN',pOh='-//W3C//DTD HTML 4.01 Transitional//EN',AOh='-//W3C//DTD HTML 4.01//EN',utg='-//W3C//DTD XHTML 1.0 Strict//EN',lug='-//W3C//DTD XHTML 1.1//EN',qPh='-//advasoft ltd//dtd html 3.0 aswedit + extensions//',BPh='-//as//dtd html 3.0 aswedit + extensions//',gQh='-//ietf//dtd html 2.0 level 1//',sQh='-//ietf//dtd html 2.0 level 2//',DQh='-//ietf//dtd html 2.0 strict level 1//',iRh='-//ietf//dtd html 2.0 strict level 2//',tRh='-//ietf//dtd html 2.0 strict//',ERh='-//ietf//dtd html 2.0//',jSh='-//ietf//dtd html 2.1e//',uSh='-//ietf//dtd html 3.0//',FSh='-//ietf//dtd html 3.2 final//',kTh='-//ietf//dtd html 3.2//',vTh='-//ietf//dtd html 3//',bUh='-//ietf//dtd html level 0//',mUh='-//ietf//dtd html level 1//',xUh='-//ietf//dtd html level 2//',cVh='-//ietf//dtd html level 3//',nVh='-//ietf//dtd html strict level 0//',yVh='-//ietf//dtd html strict level 1//',dWh='-//ietf//dtd html strict level 2//',oWh='-//ietf//dtd html strict level 3//',zWh='-//ietf//dtd html strict//',eXh='-//ietf//dtd html//',qXh='-//metrius//dtd metrius presentational//',BXh='-//microsoft//dtd internet explorer 2.0 html strict//',gYh='-//microsoft//dtd internet explorer 2.0 html//',rYh='-//microsoft//dtd internet explorer 2.0 tables//',CYh='-//microsoft//dtd internet explorer 3.0 html strict//',hZh='-//microsoft//dtd internet explorer 3.0 html//',sZh='-//microsoft//dtd internet explorer 3.0 tables//',DZh='-//netscape comm. corp.//dtd html//',i0h='-//netscape comm. corp.//dtd strict html//',t0h="-//o'reilly and associates//dtd html 2.0//",F0h="-//o'reilly and associates//dtd html extended 1.0//",k1h="-//o'reilly and associates//dtd html extended relaxed 1.0//",v1h='-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',a2h='-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',l2h='-//spyglass//dtd html 2.0 extended//',w2h='-//sq//dtd html 2.0 hotmetal + extensions//',b3h='-//sun microsystems corp.//dtd hotjava html//',m3h='-//sun microsystems corp.//dtd hotjava strict html//',x3h='-//w3c//dtd html 3 1995-03-24//',c4h='-//w3c//dtd html 3.2 draft//',o4h='-//w3c//dtd html 3.2 final//',z4h='-//w3c//dtd html 3.2//',e5h='-//w3c//dtd html 3.2s draft//',p5h='-//w3c//dtd html 4.0 frameset//',A5h='-//w3c//dtd html 4.0 transitional//',Czg='-//w3c//dtd html 4.01 frameset//en',rzg='-//w3c//dtd html 4.01 transitional//en',f6h='-//w3c//dtd html experimental 19960712//',q6h='-//w3c//dtd html experimental 970421//',B6h='-//w3c//dtd w3 html//',gzg='-//w3c//dtd xhtml 1.0 frameset//en',Byg='-//w3c//dtd xhtml 1.0 transitional//en',g7h='-//w3o//dtd w3 html 3.0//',sAg='-//w3o//dtd w3 html strict 3.0//en//',r7h='-//webtechs//dtd mozilla html 2.0//',Cqg='-//webtechs//dtd mozilla html//',DAg='-/w3c/dtd html 4.0 transitional/en',Dxg='.',gyg='0123456789ABCDEF',iBg=':',Aqg=': ',q6g='=',zqg='@',txg='A character reference expanded to a form feed which is not legal XML 1.0 white space.',iyg='AElig',jyg='AElig;',wLh='ALLOW',fKh='ALMOST_STANDARDS_MODE',mMh='ALTER_INFOSET',kyg='AMP',lyg='AMP;',yzh='AUTO',myg='Aacute',nyg='Aacute;',oyg='Abreve;',DIh='AbstractCollection',rJh='AbstractHashMap',tJh='AbstractHashMap$EntrySet',uJh='AbstractHashMap$EntrySetIterator',wJh='AbstractHashMap$MapEntryNull',xJh='AbstractHashMap$MapEntryString',EIh='AbstractList',yJh='AbstractList$IteratorImpl',zJh='AbstractList$ListIteratorImpl',qJh='AbstractMap',vJh='AbstractMapEntry',BJh='AbstractSequentialList',sJh='AbstractSet',pyg='Acirc',ryg='Acirc;',syg='Acy;',ePg='Add not supported on this collection',obh='Add not supported on this list',tyg='Afr;',uyg='Agrave',vyg='Agrave;',wyg='Alpha;',xyg='Amacr;',yyg='And;',zyg='Aogon;',Ayg='Aopf;',Cyg='ApplyFunction;',Dyg='Aring',Eyg='Aring;',vLg='Array types must match',FIh='ArrayList',cJh='ArrayStoreException',Fyg='Ascr;',azg='Assign;',bzg='Atilde',czg='Atilde;',mxg='Attribute \u201C',vKh='AttributeName',uKh='AttributeName;',dzg='Auml',ezg='Auml;',fzg='Backslash;',hzg='Barv;',izg='Barwed;',jzg='Bcy;',kzg='Because;',lzg='Bernoullis;',mzg='Beta;',nzg='Bfr;',ozg='Bopf;',pzg='Breve;',mKh='BrowserTreeBuilder',nKh='BrowserTreeBuilder$ScriptHolder',qzg='Bscr;',szg='Bumpeq;',ixg='CDATA[',tzg='CHcy;',uzg='COPY',vzg='COPY;',wzg='Cacute;',Blh="Can't get element ",xxg="Can't use FATAL here.",xzg='Cap;',yzg='CapitalDifferentialD;',zzg='Cayleys;',Azg='Ccaron;',Bzg='Ccedil',Dzg='Ccedil;',Ezg='Ccirc;',Fzg='Cconint;',aAg='Cdot;',bAg='Cedilla;',cAg='CenterDot;',dAg='Cfr;',uxg='Character reference expands to a control character (',eAg='Chi;',fAg='CircleDot;',gAg='CircleMinus;',iAg='CirclePlus;',jAg='CircleTimes;',fJh='Class',gJh='ClassCastException',kAg='ClockwiseContourIntegral;',lAg='CloseCurlyDoubleQuote;',mAg='CloseCurlyQuote;',kKh='CoalescingTreeBuilder',nAg='Colon;',oAg='Colone;',CJh='Comparators$1',pAg='Congruent;',qAg='Conint;',rAg='ContourIntegral;',tAg='Copf;',uAg='Coproduct;',vAg='CounterClockwiseContourIntegral;',wAg='Cross;',xAg='Cscr;',yAg='Cup;',zAg='CupCap;',AAg='DD;',BAg='DDotrahd;',CAg='DJcy;',EAg='DScy;',FAg='DZcy;',aBg='Dagger;',bBg='Darr;',cBg='Dashv;',dBg='Dcaron;',eBg='Dcy;',fBg='Del;',gBg='Delta;',hBg='Dfr;',kBg='DiacriticalAcute;',lBg='DiacriticalDot;',mBg='DiacriticalDoubleAcute;',nBg='DiacriticalGrave;',oBg='DiacriticalTilde;',pBg='Diamond;',qBg='DifferentialD;',dKh='DoctypeExpectation',eKh='DocumentMode',rBg='Dopf;',sBg='Dot;',tBg='DotDot;',vBg='DotEqual;',wBg='DoubleContourIntegral;',xBg='DoubleDot;',yBg='DoubleDownArrow;',zBg='DoubleLeftArrow;',ABg='DoubleLeftRightArrow;',BBg='DoubleLeftTee;',CBg='DoubleLongLeftArrow;',DBg='DoubleLongLeftRightArrow;',EBg='DoubleLongRightArrow;',aCg='DoubleRightArrow;',bCg='DoubleRightTee;',cCg='DoubleUpArrow;',dCg='DoubleUpDownArrow;',eCg='DoubleVerticalBar;',fCg='DownArrow;',gCg='DownArrowBar;',hCg='DownArrowUpArrow;',iCg='DownBreve;',jCg='DownLeftRightVector;',lCg='DownLeftTeeVector;',mCg='DownLeftVector;',nCg='DownLeftVectorBar;',oCg='DownRightTeeVector;',pCg='DownRightVector;',qCg='DownRightVectorBar;',rCg='DownTee;',sCg='DownTeeArrow;',tCg='Downarrow;',uCg='Dscr;',wCg='Dstrok;',qxg='Duplicate attribute \u201C',xCg='ENG;',yCg='ETH',zCg='ETH;',ACg='Eacute',BCg='Eacute;',CCg='Ecaron;',DCg='Ecirc',ECg='Ecirc;',FCg='Ecy;',bDg='Edot;',cDg='Efr;',dDg='Egrave',eDg='Egrave;',isg='Element name \u201C',fDg='Element;',xKh='ElementName',wKh='ElementName;',gDg='Emacr;',hDg='EmptySmallSquare;',iDg='EmptyVerySmallSquare;',AIh='Enum',jDg='Eogon;',kDg='Eopf;',mDg='Epsilon;',nDg='Equal;',oDg='EqualTilde;',pDg='Equilibrium;',zKh='ErrorReportingTokenizer',qDg='Escr;',rDg='Esim;',sDg='Eta;',tDg='Euml',uDg='Euml;',sIh='Exception',vDg='Exists;',xDg='ExponentialE;',bMh='FATAL',yDg='Fcy;',zDg='Ffr;',ADg='FilledSmallSquare;',BDg='FilledVerySmallSquare;',CDg='Fopf;',DDg='ForAll;',Cxg='Forbidden code point ',EDg='Fouriertrf;',FDg='Fscr;',aEg='GJcy;',cEg='GT',dEg='GT;',eEg='Gamma;',fEg='Gammad;',gEg='Gbreve;',hEg='Gcedil;',iEg='Gcirc;',jEg='Gcy;',kEg='Gdot;',lEg='Gfr;',nEg='Gg;',oEg='Gopf;',pEg='GreaterEqual;',qEg='GreaterEqualLess;',rEg='GreaterFullEqual;',sEg='GreaterGreater;',tEg='GreaterLess;',uEg='GreaterSlantEqual;',vEg='GreaterTilde;',wEg='Gscr;',zEg='Gt;',AEg='HARDcy;',kph='HTML',jwh='HTML401_STRICT',zsh='HTML401_TRANSITIONAL',BEg='Hacek;',DJh='HashMap',CEg='Hat;',DEg='Hcirc;',EEg='Hfr;',FEg='HilbertSpace;',aFg='Hopf;',bFg='HorizontalLine;',cFg='Hscr;',eFg='Hstrok;',AKh='HtmlAttributes',oKh='HtmlParser',pKh='HtmlParser$1',fFg='HumpDownHump;',gFg='HumpEqual;',hFg='IEcy;',iFg='IJlig;',jFg='IOcy;',kFg='Iacute',lFg='Iacute;',mFg='Icirc',nFg='Icirc;',pFg='Icy;',qFg='Idot;',rFg='Ifr;',sFg='Igrave',tFg='Igrave;',hJh='IllegalArgumentException',uFg='Im;',vFg='Imacr;',wFg='ImaginaryI;',xFg='Implies;',Deh='Index: ',bJh='IndexOutOfBoundsException',yFg='Int;',AFg='Integral;',BFg='Intersection;',CFg='InvisibleComma;',DFg='InvisibleTimes;',EFg='Iogon;',FFg='Iopf;',aGg='Iota;',bGg='Iscr;',cGg='Itilde;',dGg='Iukcy;',fGg='Iuml',gGg='Iuml;',vIh='JavaScriptException',wIh='JavaScriptObject$',hGg='Jcirc;',iGg='Jcy;',jGg='Jfr;',kGg='Jopf;',lGg='Jscr;',mGg='Jsercy;',nGg='Jukcy;',oGg='KHcy;',qGg='KJcy;',rGg='Kappa;',sGg='Kcedil;',tGg='Kcy;',uGg='Kfr;',vGg='Kopf;',wGg='Kscr;',xGg='LJcy;',yGg='LT',zGg='LT;',BGg='Lacute;',CGg='Lambda;',DGg='Lang;',EGg='Laplacetrf;',FGg='Larr;',aHg='Lcaron;',bHg='Lcedil;',cHg='Lcy;',dHg='LeftAngleBracket;',eHg='LeftArrow;',gHg='LeftArrowBar;',hHg='LeftArrowRightArrow;',iHg='LeftCeiling;',jHg='LeftDoubleBracket;',kHg='LeftDownTeeVector;',lHg='LeftDownVector;',mHg='LeftDownVectorBar;',nHg='LeftFloor;',oHg='LeftRightArrow;',pHg='LeftRightVector;',rHg='LeftTee;',sHg='LeftTeeArrow;',tHg='LeftTeeVector;',uHg='LeftTriangle;',vHg='LeftTriangleBar;',wHg='LeftTriangleEqual;',xHg='LeftUpDownVector;',yHg='LeftUpTeeVector;',zHg='LeftUpVector;',AHg='LeftUpVectorBar;',CHg='LeftVector;',DHg='LeftVectorBar;',EHg='Leftarrow;',FHg='Leftrightarrow;',aIg='LessEqualGreater;',bIg='LessFullEqual;',cIg='LessGreater;',dIg='LessLess;',eIg='LessSlantEqual;',fIg='LessTilde;',iIg='Lfr;',EJh='LinkedList',FJh='LinkedList$ListIteratorImpl',aKh='LinkedList$Node',jIg='Ll;',kIg='Lleftarrow;',lIg='Lmidot;',BKh='LocatorImpl',mIg='LongLeftArrow;',nIg='LongLeftRightArrow;',oIg='LongRightArrow;',pIg='Longleftarrow;',qIg='Longleftrightarrow;',rIg='Longrightarrow;',tIg='Lopf;',uIg='LowerLeftArrow;',vIg='LowerRightArrow;',wIg='Lscr;',xIg='Lsh;',yIg='Lstrok;',zIg='Lt;',AIg='Map;',BIg='Mcy;',CIg='MediumSpace;',EIg='Mellintrf;',FIg='Mfr;',aJg='MinusPlus;',bJg='Mopf;',cJg='Mscr;',dJg='Mu;',gIg='Must be array types',eJg='NJcy;',hDh='NO_DOCTYPE_ERRORS',fJg='Nacute;',gJg='Ncaron;',hJg='Ncedil;',jJg='Ncy;',kJg='NegativeMediumSpace;',lJg='NegativeThickSpace;',mJg='NegativeThinSpace;',nJg='NegativeVeryThinSpace;',oJg='NestedGreaterGreater;',pJg='NestedLessLess;',qJg='NewLine;',rJg='Nfr;',sxg='No digits after \u201C',sJg='NoBreak;',bKh='NoSuchElementException',uJg='NonBreakingSpace;',vJg='Nopf;',wJg='Not;',xJg='NotCongruent;',yJg='NotCupCap;',zJg='NotDoubleVerticalBar;',AJg='NotElement;',BJg='NotEqual;',CJg='NotExists;',DJg='NotGreater;',FJg='NotGreaterEqual;',aKg='NotGreaterLess;',bKg='NotGreaterTilde;',cKg='NotLeftTriangle;',dKg='NotLeftTriangleEqual;',eKg='NotLess;',fKg='NotLessEqual;',gKg='NotLessGreater;',hKg='NotLessTilde;',iKg='NotPrecedes;',kKg='NotPrecedesSlantEqual;',lKg='NotReverseElement;',mKg='NotRightTriangle;',nKg='NotRightTriangleEqual;',oKg='NotSquareSubsetEqual;',pKg='NotSquareSupersetEqual;',qKg='NotSubsetEqual;',rKg='NotSucceeds;',sKg='NotSucceedsSlantEqual;',tKg='NotSupersetEqual;',vKg='NotTilde;',wKg='NotTildeEqual;',xKg='NotTildeFullEqual;',yKg='NotTildeTilde;',zKg='NotVerticalBar;',AKg='Nscr;',BKg='Ntilde',CKg='Ntilde;',DKg='Nu;',jJh='NullPointerException',EKg='OElig;',aLg='Oacute',bLg='Oacute;',nIh='Object',oJh='Object;',cLg='Ocirc',dLg='Ocirc;',eLg='Ocy;',fLg='Odblac;',gLg='Ofr;',hLg='Ograve',iLg='Ograve;',jLg='Omacr;',lLg='Omega;',mLg='Omicron;',nLg='Oopf;',oLg='OpenCurlyDoubleQuote;',pLg='OpenCurlyQuote;',qLg='Or;',rLg='Oscr;',sLg='Oslash',tLg='Oslash;',uLg='Otilde',xLg='Otilde;',yLg='Otimes;',zLg='Ouml',ALg='Ouml;',BLg='OverBar;',CLg='OverBrace;',DLg='OverBracket;',ELg='OverParenthesis;',qKh='ParseEndListener',FLg='PartialD;',aMg='Pcy;',cMg='Pfr;',dMg='Phi;',eMg='Pi;',fMg='PlusMinus;',gMg='Poincareplane;',hMg='Popf;',iMg='Pr;',jMg='Precedes;',kMg='PrecedesEqual;',lMg='PrecedesSlantEqual;',nMg='PrecedesTilde;',oMg='Prime;',pMg='Product;',qMg='Proportion;',rMg='Proportional;',sMg='Pscr;',tMg='Psi;',lLh='QUIRKS_MODE',uMg='QUOT',vMg='QUOT;',wMg='Qfr;',yMg='Qopf;',zMg='Qscr;',AMg='RBarr;',BMg='REG',CMg='REG;',DMg='Racute;',EMg='Rang;',FMg='Rarr;',aNg='Rarrtl;',bNg='Rcaron;',dNg='Rcedil;',eNg='Rcy;',fNg='Re;',gNg='ReverseElement;',hNg='ReverseEquilibrium;',iNg='ReverseUpEquilibrium;',jNg='Rfr;',kNg='Rho;',lNg='RightAngleBracket;',mNg='RightArrow;',oNg='RightArrowBar;',pNg='RightArrowLeftArrow;',qNg='RightCeiling;',rNg='RightDoubleBracket;',sNg='RightDownTeeVector;',tNg='RightDownVector;',uNg='RightDownVectorBar;',vNg='RightFloor;',wNg='RightTee;',xNg='RightTeeArrow;',zNg='RightTeeVector;',ANg='RightTriangle;',BNg='RightTriangleBar;',CNg='RightTriangleEqual;',DNg='RightUpDownVector;',ENg='RightUpTeeVector;',FNg='RightUpVector;',aOg='RightUpVectorBar;',bOg='RightVector;',cOg='RightVectorBar;',eOg='Rightarrow;',fOg='Ropf;',gOg='RoundImplies;',hOg='Rrightarrow;',iOg='Rscr;',jOg='Rsh;',kOg='RuleDelayed;',tIh='RuntimeException',cLh='SAXException',dLh='SAXParseException',lOg='SHCHcy;',mOg='SHcy;',nOg='SOFTcy;',wGh='STANDARDS_MODE',pOg='Sacute;',dyg='Saw an xmlns attribute.',qOg='Sc;',rOg='Scaron;',sOg='Scedil;',tOg='Scirc;',uOg='Scy;',vOg='Sfr;',wOg='ShortDownArrow;',xOg='ShortLeftArrow;',yOg='ShortRightArrow;',AOg='ShortUpArrow;',BOg='Sigma;',COg='SmallCircle;',DOg='Sopf;',EOg='Sqrt;',FOg='Square;',aPg='SquareIntersection;',bPg='SquareSubset;',cPg='SquareSubsetEqual;',dPg='SquareSuperset;',gPg='SquareSupersetEqual;',hPg='SquareUnion;',iPg='Sscr;',EKh='StackNode',FKh='StackNode;',jPg='Star;',aUh='String',xEg='String index out of range: ',yIh='String;',kJh='StringBuffer',lJh='StringBuilder',mJh='StringIndexOutOfBoundsException',kPg='Sub;',lPg='Subset;',mPg='SubsetEqual;',nPg='Succeeds;',oPg='SucceedsEqual;',pPg='SucceedsSlantEqual;',rPg='SucceedsTilde;',sPg='SuchThat;',tPg='Sum;',uPg='Sup;',vPg='Superset;',wPg='SupersetEqual;',xPg='Supset;',yPg='THORN',zPg='THORN;',APg='TRADE;',CPg='TSHcy;',DPg='TScy;',EPg='Tab;',FPg='Tau;',aQg='Tcaron;',bQg='Tcedil;',cQg='Tcy;',dQg='Tfr;',wxg='The document is not mappable to XML 1.0 due to a trailing hyphen in a comment.',pxg='The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.',eQg='Therefore;',fQg='Theta;',hQg='ThinSpace;',yxg='This document is not mappable to XML 1.0 without data loss due to ',xMh='This is a searchable index. Insert your search keywords here: ',rIh='Throwable',iQg='Tilde;',jQg='TildeEqual;',kQg='TildeFullEqual;',lQg='TildeTilde;',qIh='Timer',aJh='Timer$1',yKh='Tokenizer',mQg='Topf;',jKh='TreeBuilder',nQg='TripleDot;',oQg='Tscr;',pQg='Tstrok;',hyg='U',byg='U+',ayg='U+0',Fxg='U+00',Exg='U+000',aLh='UTF16Buffer',qQg='Uacute',sQg='Uacute;',tQg='Uarr;',uQg='Uarrocir;',vQg='Ubrcy;',wQg='Ubreve;',xQg='Ucirc',yQg='Ucirc;',zQg='Ucy;',AQg='Udblac;',BQg='Ufr;',DQg='Ugrave',EQg='Ugrave;',FQg='Umacr;',aRg='UnderBar;',bRg='UnderBrace;',cRg='UnderBracket;',dRg='UnderParenthesis;',eRg='Union;',fRg='UnionPlus;',uKg='Unreachable',cyg='Unreachable.',nJh='UnsupportedOperationException',gRg='Uogon;',iRg='Uopf;',jRg='UpArrow;',kRg='UpArrowBar;',lRg='UpArrowDownArrow;',mRg='UpDownArrow;',nRg='UpEquilibrium;',oRg='UpTee;',pRg='UpTeeArrow;',qRg='Uparrow;',rRg='Updownarrow;',tRg='UpperLeftArrow;',uRg='UpperRightArrow;',vRg='Upsi;',wRg='Upsilon;',xRg='Uring;',yRg='Uscr;',zRg='Utilde;',ARg='Uuml',BRg='Uuml;',CRg='VDash;',ERg='Vbar;',FRg='Vcy;',aSg='Vdash;',bSg='Vdashl;',cSg='Vee;',dSg='Verbar;',eSg='Vert;',fSg='VerticalBar;',gSg='VerticalLine;',hSg='VerticalSeparator;',jSg='VerticalTilde;',kSg='VeryThinSpace;',lSg='Vfr;',mSg='Vopf;',nSg='Vscr;',oSg='Vvdash;',pSg='Wcirc;',qSg='Wedge;',rSg='Wfr;',sSg='Wopf;',vSg='Wscr;',wSg='Xfr;',xSg='Xi;',hKh='XmlViolationPolicy',ySg='Xopf;',zSg='Xscr;',ASg='YAcy;',BSg='YIcy;',CSg='YUcy;',DSg='Yacute',ESg='Yacute;',aTg='Ycirc;',bTg='Ycy;',cTg='Yfr;',dTg='Yopf;',eTg='Yscr;',fTg='Yuml;',gTg='ZHcy;',hTg='Zacute;',iTg='Zcaron;',jTg='Zcy;',lTg='Zdot;',mTg='ZeroWidthSpace;',nTg='Zeta;',oTg='Zfr;',pTg='Zopf;',qTg='Zscr;',tSg='[',dJh='[C',iJh='[I',xIh='[Ljava.lang.',tKh='[Lnu.validator.htmlparser.impl.',sKh='[Z',DKh='[[C',BIh='[[D',sZg=']',oFg='a',rTg='aacute',sTg='aacute;',C6g='abbr',bvg='about:legacy-compat',tTg='abreve;',C2h='abs',uTg='ac;',Cuh='accent',gWh='accent-height',wSh='accentunder',ruh='accept',DXh='accept-charset',cPh='accesskey',bRh='accumulate',wTg='acd;',xTg='acirc',yTg='acirc;',rrg='acronym',kwh='action',aRh='actiontype',svh='active',zXh='actuate',zTg='acute',ATg='acute;',BTg='acy;',hNh='additive',yEg='address',CTg='aelig',DTg='aelig;',ETg='af;',FTg='afr;',bUg='agrave',cUg='agrave;',dUg='alefsym;',eUg='aleph;',ojh='align',w0h='alignment-baseline',EXh='alignmentscope',djh='alink',fUg='alpha;',FQh='alphabetic',l2g='alt',atg='altGlyph',Fug='altGlyphDef',qvg='altGlyphItem',Fsg='altglyph',Eug='altglyphdef',pvg='altglyphitem',Dvh='altimg',hLh='alttext',gUg='amacr;',hUg='amalg;',iUg='amp',jUg='amp;',gPh='amplitude',A2h='and',kUg='and;',mUg='andand;',nUg='andd;',oUg='andslope;',pUg='andv;',qUg='ang;',rUg='ange;',sUg='angle;',tUg='angmsd;',uUg='angmsdaa;',vUg='angmsdab;',xUg='angmsdac;',yUg='angmsdad;',zUg='angmsdae;',AUg='angmsdaf;',BUg='angmsdag;',CUg='angmsdah;',DUg='angrt;',EUg='angrtvb;',FUg='angrtvbd;',aVg='angsph;',cVg='angst;',dVg='angzarr;',krg='animate',svg='animateColor',Evg='animateMotion',zwg='animateTransform',rvg='animatecolor',Dvg='animatemotion',xwg='animatetransform',aug='animation',sug='annotation',kwg='annotation-xml',eVg='aogon;',fVg='aopf;',gVg='ap;',hVg='apE;',iVg='apacir;',jVg='ape;',kVg='apid;',lVg='apos;',A6h='applet',w5h='apply',D6h='approx',nVg='approx;',oVg='approxeq;',BSh='arabic-form',z6h='arccos',prg='arccosh',C6h='arccot',qrg='arccoth',w6h='arccsc',mrg='arccsch',iLh='archive',CXh='arcrole',v6h='arcsec',lrg='arcsech',y6h='arcsin',org='arcsinh',x6h='arctan',nrg='arctanh',i4h='area',B2h='arg',h1h='aria-activedescendant',ySh='aria-atomic',e0h='aria-autocomplete',dPh='aria-busy',uUh='aria-channel',rUh='aria-checked',eWh='aria-controls',vWh='aria-datatype',iZh='aria-describedby',qWh='aria-disabled',xYh='aria-dropeffect',pWh='aria-expanded',ASh='aria-flowto',ePh='aria-grab',fWh='aria-haspopup',zSh='aria-hidden',pUh='aria-invalid',yYh='aria-labelledby',cRh='aria-level',hPh='aria-live',FXh='aria-multiline',f1h='aria-multiselectable',FOh='aria-owns',jWh='aria-posinset',qUh='aria-pressed',lWh='aria-readonly',iWh='aria-relevant',nWh='aria-required',xSh='aria-secret',mWh='aria-selected',tUh='aria-setsize',bPh='aria-sort',zYh='aria-templateid',kWh='aria-valuemax',wWh='aria-valuemin',hWh='aria-valuenow',pVg='aring',qVg='aring;',jrg='article',hvh='ascent',rVg='ascr;',u5h='aside',sVg='ast;',tVg='asymp;',uVg='asympeq;',yih='async',vVg='atilde',wVg='atilde;',uWh='attributeName',sWh='attributeType',tWh='attributename',rWh='attributetype',v5h='audio',yVg='auml',zVg='auml;',sUh='autocomplete',aPh='autofocus',gNh='autoplay',EQh='autosubmit',AVg='awconint;',BVg='awint;',r6g='axis',jLh='azimuth',t1h='b',CVg='bNot;',DVg='backcong;',EVg='backepsilon;',fRh='background',FVg='backprime;',aWg='backsim;',bWg='backsimeq;',eWg='barvee;',fWg='barwed;',gWg='barwedge;',u9g='base',yWh='baseFrequency',eTh='baseProfile',btg='basefont',xWh='basefrequency',pNh='baseline',aYh='baseline-shift',dTh='baseprofile',h7g='bbox',hWg='bbrk;',iWg='bbrktbrk;',jWg='bcong;',kWg='bcy;',E2h='bdo',lWg='bdquo;',mWg='becaus;',nWg='because;',flh='begin',pWg='bemptyv;',qWg='bepsi;',rWg='bernou;',sWg='beta;',tWg='beth;',uWg='between;',nNh='bevelled',vWg='bfr;',oLh='bgcolor',trg='bgsound',i8g='bias',D2h='big',wWg='bigcap;',xWg='bigcirc;',yWg='bigcup;',AWg='bigodot;',BWg='bigoplus;',CWg='bigotimes;',DWg='bigsqcup;',EWg='bigstar;',FWg='bigtriangledown;',aXg='bigtriangleup;',bXg='biguplus;',cXg='bigvee;',dXg='bigwedge;',fXg='bkarow;',gXg='blacklozenge;',hXg='blacksquare;',iXg='blacktriangle;',jXg='blacktriangledown;',kXg='blacktriangleleft;',lXg='blacktriangleright;',mXg='blank;',nXg='blk12;',oXg='blk14;',qXg='blk34;',rXg='block;',tug='blockquote',sXg='bnot;',lDg='body',tXg='bopf;',vwh='border',uXg='bot;',vXg='bottom;',wXg='bowtie;',xXg='boxDL;',yXg='boxDR;',zXg='boxDl;',BXg='boxDr;',CXg='boxH;',DXg='boxHD;',EXg='boxHU;',FXg='boxHd;',aYg='boxHu;',bYg='boxUL;',cYg='boxUR;',dYg='boxUl;',eYg='boxUr;',gYg='boxV;',hYg='boxVH;',iYg='boxVL;',jYg='boxVR;',kYg='boxVh;',lYg='boxVl;',mYg='boxVr;',nYg='boxbox;',oYg='boxdL;',pYg='boxdR;',rYg='boxdl;',sYg='boxdr;',tYg='boxh;',uYg='boxhD;',vYg='boxhU;',wYg='boxhd;',xYg='boxhu;',yYg='boxminus;',zYg='boxplus;',AYg='boxtimes;',CYg='boxuL;',DYg='boxuR;',EYg='boxul;',FYg='boxur;',aZg='boxv;',bZg='boxvH;',cZg='boxvL;',dZg='boxvR;',eZg='boxvh;',fZg='boxvl;',hZg='boxvr;',iZg='bprime;',z1h='br',jZg='breve;',kZg='brvbar',lZg='brvbar;',mZg='bscr;',nZg='bsemi;',oZg='bsim;',pZg='bsime;',qZg='bsol;',uZg='bsolb;',vZg='bull;',wZg='bullet;',xZg='bump;',yZg='bumpE;',zZg='bumpe;',AZg='bumpeq;',E6h='button',j4h='bvar',aUg='by',BZg='cacute;',jNh='calcMode',iNh='calcmode',b7h='canvas',eRh='cap-height',CZg='cap;',DZg='capand;',FZg='capbrcup;',a0g='capcap;',b0g='capcup;',c0g='capdot;',nwg='caption',k4h='card',d0g='caret;',e0g='caron;',Awg='cartesianproduct',f0g='ccaps;',g0g='ccaron;',h0g='ccedil',i0g='ccedil;',k0g='ccirc;',l0g='ccups;',m0g='ccupssm;',n0g='cdot;',o0g='cedil',p0g='cedil;',wrg='ceiling',CSh='cellpadding',DSh='cellspacing',q0g='cemptyv;',r0g='cent',s0g='cent;',a7h='center',t0g='centerdot;',v0g='cfr;',j9g='char',nLh='charoff',qLh='charset',w0g='chcy;',x0g='check;',mLh='checked',y0g='checkmark;',z0g='chi;',A1h='ci',A0g='cir;',B0g='cirE;',C0g='circ;',D0g='circeq;',F6h='circle',E0g='circlearrowleft;',a1g='circlearrowright;',b1g='circledR;',c1g='circledS;',d1g='circledast;',e1g='circledcirc;',f1g='circleddash;',g1g='cire;',h1g='cirfnint;',i1g='cirmid;',j1g='cirscir;',s7g='cite',pkh='class',zxg='class ',bMg='classid',Akh='clear',E8g='clip',jPh='clip-path',iPh='clip-rule',dtg='clipPath',DWh='clipPathUnits',ctg='clippath',CWh='clippathunits',zjh='close',kLh='closure',mMg='clsid:32F66A20-7614-11D4-BD11-00104BD3F987',dOg='clsid:AC159093-1683-4BA2-9DCF-0C350141D7F2',l1g='clubs;',m1g='clubsuit;',B1h='cn',D7g='code',lNh='codebase',kNh='codetype',etg='codomain',a3h='col',aDg='colgroup',n1g='colon;',o1g='colone;',p1g='coloneq;',ekh='color',D0h='color-interpolation',q1h='color-interpolation-filters',BWh='color-profile',AYh='color-rendering',t8g='cols',pLh='colspan',aTh='columnalign',bTh='columnlines',AWh='columnspacing',dRh='columnspan',ESh='columnwidth',uIh='com.google.gwt.core.client.',pIh='com.google.gwt.user.client.',q1g='comma;',urg='command',r1g='commat;',s1g='comp;',rLh='compact',t1g='compfn;',u1g='complement;',dug='complexes',w1g='complexes;',vrg='compose',cug='condition',x1g='cong;',y1g='congdot;',z1g='conint;',bug='conjugate',sLh='content',g0h='contentScriptType',kZh='contentStyleType',BYh='contenteditable',f0h='contentscripttype',jZh='contentstyletype',cTh='contextmenu',mNh='controls',lxh='coords',A1g='copf;',B1g='coprod;',C1g='copy',D1g='copy;',E1g='copysr;',c3h='cos',m4h='cosh',d3h='cot',p4h='coth',F1g='crarr;',b2g='cross;',F2h='csc',l4h='csch',c2g='cscr;',d2g='csub;',e2g='csube;',f2g='csup;',g2g='csupe;',xrg='csymbol',h2g='ctdot;',i2g='cudarrl;',j2g='cudarrr;',k2g='cuepr;',m2g='cuesc;',n2g='cularr;',o2g='cularrp;',p2g='cup;',q2g='cupbrcap;',r2g='cupcap;',s2g='cupcup;',t2g='cupdot;',u2g='cupor;',v2g='curarr;',x2g='curarrm;',q4h='curl',y2g='curlyeqprec;',z2g='curlyeqsucc;',A2g='curlyvee;',B2g='curlywedge;',C2g='curren',D2g='curren;',axh='cursor',E2g='curvearrowleft;',F2g='curvearrowright;',a3g='cuvee;',d3g='cuwed;',e3g='cwconint;',f3g='cwint;',lUg='cx',wUg='cy',g3g='cylcty;',DRg='d',h3g='dArr;',i3g='dHar;',j3g='dagger;',k3g='daleth;',l3g='darr;',m3g='dash;',o3g='dashv;',l$g='data',vLh='datafld',yUh='dataformatas',ftg='datagrid',uLh='datasrc',tvg='datatemplate',wNh='datetime',p3g='dbkarow;',q3g='dblac;',r3g='dcaron;',s3g='dcy;',C1h='dd',t3g='dd;',u3g='ddagger;',v3g='ddarr;',w3g='ddotseq;',xLh='declare',ALh='default',Clh='defer',lwg='definition-src',FWh='definitionURL',EWh='definitionurl',t4h='defs',x3g='deg',z3g='deg;',d7h='degree',e3h='del',A3g='delta;',B3g='demptyv;',qlh='depth',r4h='desc',BLh='descent',zrg='details',avg='determinant',C3g='dfisht;',f3h='dfn',D3g='dfr;',E3g='dharl;',F3g='dharr;',e7h='dialog',a4g='diam;',b4g='diamond;',c4g='diamondsuit;',e4g='diams;',f4g='die;',s4h='diff',EYh='diffuseConstant',DYh='diffuseconstant',g4g='digamma;',w2g='dir',mPh='direction',xNh='disabled',yrg='discard',h4g='disin;',yLh='display',wUh='displaystyle',dFg='div',i4g='div;',uug='divergence',c7h='divide',j4g='divide;',k4g='divideontimes;',zLh='divisor',l4g='divonx;',m4g='djcy;',D1h='dl',n4g='dlcorn;',p4g='dlcrop;',q4g='dollar;',f7h='domain',fxg='domainofapplication',j0h='dominant-baseline',r4g='dopf;',s4g='dot;',t4g='doteq;',u4g='doteqdot;',v4g='dotminus;',w4g='dotplus;',x4g='dotsquare;',y4g='doublebarwedge;',A4g='downarrow;',B4g='downdownarrows;',C4g='downharpoonleft;',D4g='downharpoonright;',nPh='draggable',E4g='drbkarow;',F4g='drcorn;',a5g='drcrop;',b5g='dscr;',c5g='dscy;',d5g='dsol;',f5g='dstrok;',E1h='dt',g5g='dtdot;',h5g='dtri;',i5g='dtrif;',j5g='duarr;',k5g='duhar;',c3g='dur',l5g='dwangle;',bVg='dx',mVg='dy',m5g='dzcy;',n5g='dzigrarr;',o5g='eDDot;',q5g='eDot;',r5g='eacute',s5g='eacute;',t5g='easter;',u5g='ecaron;',v5g='ecir;',w5g='ecirc',x5g='ecirc;',y5g='ecolon;',z5g='ecy;',a$g='edge',sNh='edgeMode',rNh='edgemode',B5g='edot;',C5g='ee;',D5g='efDot;',E5g='efr;',F5g='eg;',a6g='egrave',b6g='egrave;',c6g='egs;',d6g='egsdot;',e6g='el;',lPh='elevation',g6g='elinters;',h6g='ell;',Arg='ellipse',i6g='els;',j6g='elsdot;',F1h='em',k6g='emacr;',x5h='embed',l6g='empty;',gtg='emptyset',m6g='emptyset;',n6g='emptyv;',o6g='emsp13;',p6g='emsp14;',s6g='emsp;',h0h='enable-background',tNh='encoding',tLh='enctype',n3g='end',t6g='eng;',u6g='ensp;',v6g='eogon;',w6g='eopf;',x6g='epar;',y6g='eparsl;',z6g='eplus;',A6g='epsi;',B6g='epsilon;',D6g='epsiv;',b2h='eq',E6g='eqcirc;',F6g='eqcolon;',a7g='eqsim;',b7g='eqslantgtr;',c7g='eqslantless;',vUh='equalcolumns',kPh='equalrows',d7g='equals;',e7g='equest;',f7g='equiv;',g7g='equivDD;',xug='equivalent',i7g='eqvparsl;',j7g='erDot;',k7g='erarr;',l7g='escr;',m7g='esdot;',n7g='esim;',o7g='eta;',p7g='eth',q7g='eth;',vug='eulergamma',r7g='euml',t7g='euml;',u7g='euro;',cvg='eventsource',v7g='excl;',w7g='exist;',h7h='exists',g3h='exp',x7g='expectation;',qNh='exponent',uvg='exponentiale',y7g='exponentiale;',o1h='externalResourcesRequired',n1h='externalresourcesrequired',m_g='face',fug='factorial',htg='factorof',z7g='fallingdotseq;',y5h='false',A7g='fcy;',bsg='feBlend',fwg='feColorMatrix',hxg='feComponentTransfer',gvg='feComposite',Dwg='feConvolveMatrix',Fwg='feDiffuseLighting',bxg='feDisplacementMap',rwg='feDistantLight',dsg='feFlood',Crg='feFuncA',Frg='feFuncB',ksg='feFuncG',msg='feFuncR',pwg='feGaussianBlur',fsg='feImage',hsg='feMerge',evg='feMergeNode',Bvg='feMorphology',ltg='feOffset',zvg='fePointLight',exg='feSpecularLighting',ivg='feSpotLight',j7h='feTile',wvg='feTurbulence',asg='feblend',ewg='fecolormatrix',gxg='fecomponenttransfer',fvg='fecomposite',Cwg='feconvolvematrix',Ewg='fediffuselighting',axg='fedisplacementmap',qwg='fedistantlight',csg='feflood',Brg='fefunca',Erg='fefuncb',jsg='fefuncg',lsg='fefuncr',owg='fegaussianblur',esg='feimage',B7g='female;',gsg='femerge',dvg='femergenode',Avg='femorphology',hmh='fence',ktg='feoffset',yvg='fepointlight',cxg='fespecularlighting',hvg='fespotlight',i7h='fetile',vvg='feturbulence',C7g='ffilig;',E7g='fflig;',F7g='ffllig;',a8g='ffr;',itg='fieldset',k7h='figure',b8g='filig;',w$g='fill',zUh='fill-opacity',rPh='fill-rule',wxh='filter',pPh='filterRes',iTh='filterUnits',oPh='filterres',hTh='filterunits',c8g='flat;',d8g='fllig;',jTh='flood-color',cXh='flood-opacity',z5h='floor',e8g='fltns;',c2h='fn',f8g='fnof;',u4h='font',eug='font-face',Bwg='font-face-format',mwg='font-face-name',Fvg='font-face-src',awg='font-face-uri',fTh='font-family',tPh='font-size',lZh='font-size-adjust',BUh='font-stretch',lRh='font-style',AUh='font-variant',lTh='font-weight',jRh='fontfamily',yNh='fontsize',sPh='fontstyle',kRh='fontweight',m7h='footer',g8g='fopf;',y3g='for',l7h='forall',h8g='forall;',dwg='foreignObject',bwg='foreignobject',j8g='fork;',k8g='forkv;',srg='form',byh='format',l8g='fpartint;',m8g='frac12',n8g='frac12;',o8g='frac13;',p8g='frac14',q8g='frac14;',r8g='frac15;',s8g='frac16;',u8g='frac18;',v8g='frac23;',w8g='frac25;',x8g='frac34',y8g='frac34;',z8g='frac35;',A8g='frac38;',B8g='frac45;',C8g='frac56;',D8g='frac58;',F8g='frac78;',smh='frame',gTh='frameborder',Axg='frameset',CUh='framespacing',a9g='frasl;',b_g='from',b9g='frown;',c9g='fscr;',oWg='fx',zWg='fy',u1h='g',dWg='g1',xVg='g2',d9g='gE;',e9g='gEl;',f9g='gacute;',g9g='gamma;',h9g='gammad;',i9g='gap;',k9g='gbreve;',h3h='gcd',l9g='gcirc;',m9g='gcy;',n9g='gdot;',o9g='ge;',p9g='gel;',i3h='geq',q9g='geq;',r9g='geqq;',s9g='geqslant;',t9g='ges;',v9g='gescc;',w9g='gesdot;',x9g='gesdoto;',y9g='gesdotol;',z9g='gesles;',A9g='gfr;',B9g='gg;',C9g='ggg;',D9g='gimel;',E9g='gjcy;',b$g='gl;',c$g='glE;',d$g='gla;',e$g='glj;',B5h='glyph',gRh='glyph-name',r1h='glyph-orientation-horizontal',p1h='glyph-orientation-vertical',vNh='glyphRef',uNh='glyphref',f$g='gnE;',g$g='gnap;',h$g='gnapprox;',i$g='gne;',j$g='gneq;',k$g='gneqq;',m$g='gnsim;',n$g='gopf;',v4h='grad',l0h='gradientTransform',bXh='gradientUnits',k0h='gradienttransform',aXh='gradientunits',o$g='grave;',hRh='groupalign',p$g='gscr;',q$g='gsim;',r$g='gsime;',s$g='gsiml;',j2h='gt',t$g='gt;',u$g='gtcc;',v$g='gtcir;',x$g='gtdot;',y$g='gtlPar;',z$g='gtquest;',A$g='gtrapprox;',B$g='gtrarr;',C$g='gtrdot;',D$g='gtreqless;',E$g='gtreqqless;',F$g='gtrless;',a_g='gtrsim;',d2h='h1',e2h='h2',f2h='h3',g2h='h4',h2h='h5',i2h='h6',c_g='hArr;',d_g='hairsp;',e_g='half;',f_g='hamilt;',nsg='handler',DLh='hanging',g_g='hardcy;',h_g='harr;',i_g='harrcir;',j_g='harrw;',k_g='hbar;',l_g='hcirc;',Drg='head',n7h='header',ELh='headers',n_g='hearts;',o_g='heartsuit;',xyh='height',p_g='hellip;',q_g='hercon;',r_g='hfr;',mEg='hidden',wPh='hidefocus',x_g='high',C5h='hkern',s_g='hksearow;',t_g='hkswarow;',u_g='hoarr;',v_g='homtht;',w_g='hookleftarrow;',y_g='hookrightarrow;',z_g='hopf;',A_g='horbar;',mTh='horiz-adv-x',bYh='horiz-origin-x',cYh='horiz-origin-y',k2h='hr',cah='href',DNh='hreflang',B_g='hscr;',C_g='hslash;',myh='hspace',D_g='hstrok;',hAg='html',oRh='http-equiv',jKg='http://n.validator.nu/placeholder/',jBg='http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd',wDg='http://www.w3.org/1998/Math/MathML',hrg='http://www.w3.org/1999/xhtml',rQg='http://www.w3.org/1999/xlink',bEg='http://www.w3.org/2000/svg',BPg='http://www.w3.org/2000/xmlns/',Esg='http://www.w3.org/TR/REC-html40/strict.dtd',mvg='http://www.w3.org/TR/html4/loose.dtd',jtg='http://www.w3.org/TR/html4/strict.dtd',Ftg='http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd',wug='http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd',gQg='http://www.w3.org/XML/1998/namespace',E_g='hybull;',F_g='hyphen;',w1h='i',aah='iacute',bah='iacute;',dah='ic;',eah='icirc',fah='icirc;',yah='icon',gah='icy;',kLg='id',E5h='ident',tTh='ideographic',hah='iecy;',iah='iexcl',jah='iexcl;',kah='iff;',lah='ifr;',DIg='iframe',mah='igrave',oah='igrave;',pah='ii;',qah='iiiint;',rah='iiint;',sah='iinfin;',tah='iiota;',uah='ijlig;',vah='imacr;',D5h='image',bZh='image-rendering',wah='image;',hug='imaginary',yug='imaginaryi',xah='imagline;',zah='imagpart;',Aah='imath;',j3h='img',Bah='imof;',Cah='imped;',psg='implies',qYg='in',d4g='in2',Dah='in;',Eah='incare;',tnh='index',Fah='infin;',otg='infinity',abh='infintie;',bbh='inodot;',pGg='input',aQh='inputmode',k3h='ins',l3h='int',cbh='int;',ebh='intcal;',ntg='integers',fbh='integers;',gbh='intercal;',yPh='intercept',kug='interface ',gug='intersect',mtg='interval',hbh='intlarhk;',ibh='intprod;',osg='inverse',jbh='iocy;',kbh='iogon;',lbh='iopf;',mbh='iota;',nbh='iprod;',qbh='iquest',rbh='iquest;',rRh='irrelevant',sbh='iscr;',tbh='isin;',ubh='isinE;',eGg='isindex',vbh='isindot;',wbh='isins;',xbh='isinsv;',ybh='isinv;',Dmh='ismap',zbh='it;',Bbh='itilde;',Cbh='iukcy;',Dbh='iuml',Ebh='iuml;',mIh='java.lang.',CIh='java.util.',Fbh='jcirc;',ach='jcy;',bch='jfr;',cch='jmath;',dch='jopf;',ech='jscr;',gch='jsercy;',hch='jukcy;',iSg='k',fYg='k1',pXg='k2',AXg='k3',eXg='k4',ich='kappa;',jch='kappav;',n3h='kbd',kch='kcedil;',lch='kcy;',EUh='kernelMatrix',nZh='kernelUnitLength',DUh='kernelmatrix',mZh='kernelunitlength',CLh='kerning',vPh='keyPoints',nRh='keySplines',BNh='keyTimes',o7h='keygen',uPh='keypoints',mRh='keysplines',ANh='keytimes',mch='kfr;',nch='kgreen;',och='khcy;',pch='kjcy;',rch='kopf;',sch='kscr;',tch='lAarr;',uch='lArr;',vch='lAtail;',wch='lBarr;',xch='lE;',ych='lEg;',zch='lHar;',wph='label',Ach='lacute;',Cch='laemptyv;',Dch='lagran;',p7h='lambda',Ech='lambda;',fch='lang',Fch='lang;',adh='langd;',bdh='langle;',rOh='language',cdh='lap;',iug='laplacian',ddh='laquo',edh='laquo;',rMh='largeop',fdh='larr;',hdh='larrb;',idh='larrbfs;',jdh='larrfs;',kdh='larrhk;',ldh='larrlp;',mdh='larrpl;',ndh='larrsim;',odh='larrtl;',pdh='lat;',qdh='latail;',sdh='late;',tdh='lbarr;',udh='lbbrk;',vdh='lbrace;',wdh='lbrack;',xdh='lbrke;',ydh='lbrksld;',zdh='lbrkslu;',Adh='lcaron;',Bdh='lcedil;',Ddh='lceil;',p3h='lcm',Edh='lcub;',Fdh='lcy;',aeh='ldca;',beh='ldquo;',ceh='ldquor;',deh='ldrdhar;',eeh='ldrushar;',feh='ldsh;',geh='le;',ieh='leftarrow;',jeh='leftarrowtail;',keh='leftharpoondown;',leh='leftharpoonup;',meh='leftleftarrows;',neh='leftrightarrow;',oeh='leftrightarrows;',peh='leftrightharpoons;',qeh='leftrightsquigarrow;',reh='leftthreetimes;',teh='leg;',q7h='legend',qVh='lengthAdjust',pVh='lengthadjust',q3h='leq',ueh='leq;',veh='leqq;',weh='leqslant;',xeh='les;',yeh='lescc;',zeh='lesdot;',Aeh='lesdoto;',Beh='lesdotor;',Ceh='lesges;',Feh='lessapprox;',afh='lessdot;',bfh='lesseqgtr;',cfh='lesseqqgtr;',dfh='lessgtr;',efh='lesssim;',jYh='letter-spacing',ffh='lfisht;',gfh='lfloor;',hfh='lfr;',ifh='lg;',kfh='lgE;',lfh='lhard;',mfh='lharu;',nfh='lharul;',ofh='lhblk;',m2h='li',kYh='lighting-color',F5h='limit',r0h='limitingConeAngle',q0h='limitingconeangle',w4h='line',twg='linearGradient',swg='lineargradient',hQh='linebreak',mXh='linethickness',Abh='link',qch='list',ptg='listener',rsg='listing',pfh='ljcy;',qfh='ll;',rfh='llarr;',sfh='llcorner;',tfh='llhard;',vfh='lltri;',wfh='lmidot;',xfh='lmoust;',yfh='lmoustache;',n2h='ln',zfh='lnE;',Afh='lnap;',Bfh='lnapprox;',Cfh='lne;',Dfh='lneq;',Efh='lneqq;',agh='lnsim;',bgh='loang;',cgh='loarr;',dgh='lobrk;',bqh='local',o3h='log',qsg='logbase',qOh='longdesc',egh='longleftarrow;',fgh='longleftrightarrow;',ggh='longmapsto;',hgh='longrightarrow;',igh='looparrowleft;',jgh='looparrowright;',qMh='loopend',iQh='loopstart',lgh='lopar;',mgh='lopf;',ngh='loplus;',ogh='lotimes;',e5g='low',pgh='lowast;',qgh='lowbar;',qtg='lowlimit',uEh='lowsrc',rgh='loz;',sgh='lozenge;',tgh='lozf;',ugh='lpar;',wgh='lparlt;',kFh='lquote',xgh='lrarr;',ygh='lrcorner;',zgh='lrhar;',Agh='lrhard;',Bgh='lrm;',Cgh='lrtri;',Dgh='lsaquo;',Egh='lscr;',Fgh='lsh;',bhh='lsim;',chh='lsime;',dhh='lsimg;',FEh='lspace',ehh='lsqb;',fhh='lsquo;',ghh='lsquor;',hhh='lstrok;',o2h='lt',ihh='lt;',jhh='ltcc;',khh='ltcir;',mhh='ltdot;',nhh='lthree;',ohh='ltimes;',phh='ltlarr;',qhh='ltquest;',rhh='ltrPar;',shh='ltri;',thh='ltrie;',uhh='ltrif;',vhh='lurdshar;',xhh='luruhar;',xMg='m',nNg='m:',yhh='mDDot;',zhh='macr',Ahh='macr;',EDh='macros',wsg='maction',Bhh='male;',jvg='maligngroup',zug='malignmark',Chh='malt;',Dhh='maltese;',mOh='manifest',s3h='map',Ehh='map;',Fhh='mapsto;',aih='mapstodown;',cih='mapstoleft;',dih='mapstoup;',jVh='marginheight',CTh='marginwidth',B4h='mark',y7h='marker',DRh='marker-end',CRh='marker-mid',mVh='marker-start',eih='marker;',lVh='markerHeight',ATh='markerUnits',ETh='markerWidth',kVh='markerheight',zTh='markerunits',DTh='markerwidth',vsg='marquee',pbh='mask',tZh='maskContentUnits',eQh='maskUnits',rZh='maskcontentunits',dQh='maskunits',A4h='math',iYh='mathbackground',cQh='mathcolor',oVh='mathematical',wLg='mathplayer',nOh='mathsize',BTh='mathvariant',B7h='matrix',jug='matrixrow',o4g='max',fQh='maxlength',pMh='maxsize',fih='mcomma;',gih='mcy;',hih='mdash;',C4h='mean',iih='measuredangle;',lph='media',w7h='median',cZh='mediummathspace',stg='menclose',E4h='menu',z7h='merror',E0h='message',x4h='meta',rtg='metadata',c6h='meter',jEh='method',ssg='mfenced',jih='mfr;',a6h='mfrac',v7h='mglyph',kih='mho;',p2h='mi',lih='micro',oih='micro;',pih='mid;',qih='midast;',rih='midcir;',sih='middot',tih='middot;',z4g='min',oMh='minsize',e6h='minus',uih='minus;',vih='minusb;',wih='minusd;',xih='minusdu;',gwg='missing-glyph',Bug='mlabeledtr',zih='mlcp;',Aih='mldr;',hwg='mmultiscripts',q2h='mn',Bih='mnplus;',r2h='mo',dbh='mode',Cih='models;',jIh='moduleStartup',A7h='moment',lvg='momentabout',Dih='mopf;',lXh='movablelimits',d6h='mover',Eih='mp;',usg='mpadded',b6h='mpath',ttg='mphantom',kvg='mprescripts',g6h='mroot',F4h='mrow',s2h='ms',Fih='mscr;',s7h='mspace',h6h='msqrt',ajh='mstpos;',u7h='mstyle',y4h='msub',xsg='msubsup',D4h='msup',t7h='mtable',r3h='mtd',i6h='mtext',t3h='mtr',bjh='mu;',cjh='multimap;',oOh='multiple',ejh='mumap;',x7h='munder',Aug='munderover',Bqg='must be positive',fjh='nLeftarrow;',gjh='nLeftrightarrow;',hjh='nRightarrow;',ijh='nVDash;',jjh='nVdash;',kjh='nabla;',ljh='nacute;',pXh='name',mjh='nap;',njh='napos;',pjh='napprox;',Foh='nargs',qjh='natur;',rjh='natural;',uwg='naturalnumbers',sjh='naturals;',w3h='nav',tjh='nbsp',ujh='nbsp;',vjh='ncap;',wjh='ncaron;',xjh='ncedil;',yjh='ncong;',Ajh='ncup;',Bjh='ncy;',Cjh='ndash;',Djh='ne;',Ejh='neArr;',Fjh='nearhk;',akh='nearr;',bkh='nearrow;',u3h='neq',ckh='nequiv;',dkh='nesear;',b5h='nest',fkh='nexist;',gkh='nexists;',hkh='nfr;',ikh='nge;',jkh='ngeq;',kkh='ngsim;',lkh='ngt;',mkh='ngtr;',nkh='nhArr;',okh='nharr;',qkh='nhpar;',rkh='ni;',skh='nis;',tkh='nisd;',ukh='niv;',vkh='njcy;',wkh='nlArr;',xkh='nlarr;',ykh='nldr;',zkh='nle;',Bkh='nleftarrow;',Ckh='nleftrightarrow;',Dkh='nleq;',Ekh='nless;',Fkh='nlsim;',alh='nlt;',blh='nltri;',clh='nltrie;',dlh='nmid;',zFg='nobr',iJg='noembed',tJg='noframes',tDh='nohref',a5h='none',elh='nopf;',lOh='noresize',vtg='noscript',nMh='noshade',v3h='not',glh='not;',Cug='notanumber',kOh='notation',j6h='notin',hlh='notin;',ilh='notinva;',jlh='notinvb;',klh='notinvc;',llh='notni;',mlh='notniva;',nlh='notnivb;',olh='notnivc;',nvg='notprsubset',mug='notsubset',iDh='nowrap',plh='npar;',rlh='nparallel;',slh='npolint;',tlh='npr;',ulh='nprcue;',vlh='nprec;',wlh='nrArr;',xlh='nrarr;',ylh='nrightarrow;',zlh='nrtri;',Alh='nrtrie;',Dlh='nsc;',Elh='nsccue;',Flh='nscr;',amh='nshortmid;',bmh='nshortparallel;',cmh='nsim;',dmh='nsime;',emh='nsimeq;',fmh='nsmid;',gmh='nspar;',imh='nsqsube;',jmh='nsqsupe;',kmh='nsub;',lmh='nsube;',mmh='nsubseteq;',nmh='nsucc;',omh='nsup;',pmh='nsupe;',qmh='nsupseteq;',rmh='ntgl;',tmh='ntilde',umh='ntilde;',vmh='ntlg;',wmh='ntriangleleft;',xmh='ntrianglelefteq;',ymh='ntriangleright;',zmh='ntrianglerighteq;',cKh='nu.validator.htmlparser.common.',lKh='nu.validator.htmlparser.gwt.',lIh='nu.validator.htmlparser.gwt.HtmlParserModule',iKh='nu.validator.htmlparser.impl.',Amh='nu;',rQh='null',Bmh='num;',BRh='numOctaves',Cmh='numero;',ARh='numoctaves',Emh='numsp;',Fmh='nvDash;',anh='nvHarr;',bnh='nvdash;',cnh='nvinfin;',dnh='nvlArr;',enh='nvrArr;',fnh='nwArr;',gnh='nwarhk;',hnh='nwarr;',jnh='nwarrow;',knh='nwnear;',lnh='oS;',mnh='oacute',nnh='oacute;',onh='oast;',FKg='object',qRh='occurrence',pnh='ocir;',qnh='ocirc',rnh='ocirc;',jxg='octype',snh='ocy;',unh='odash;',vnh='odblac;',wnh='odiv;',xnh='odot;',ynh='odsold;',znh='oelig;',Anh='ofcir;',gCh='offset',Bnh='ofr;',Cnh='ogon;',Dnh='ograve',Fnh='ograve;',aoh='ogt;',boh='ohbar;',coh='ohm;',doh='oint;',t2h='ol',eoh='olarr;',foh='olcir;',goh='olcross;',hoh='oline;',ioh='olt;',koh='omacr;',loh='omega;',moh='omicron;',noh='omid;',ooh='ominus;',kIh='onModuleLoadStart',iMh='onabort',pRh='onactivate',hVh='onafterprint',dXh='onafterupdate',m0h='onbefordeactivate',oZh='onbeforeactivate',iVh='onbeforecopy',uTh='onbeforecut',p0h='onbeforeeditfocus',gXh='onbeforepaste',kXh='onbeforeprint',hYh='onbeforeunload',dYh='onbeforeupdate',dMh='onbegin',BBh='onblur',aOh='onbounce',eVh='oncellchange',FNh='onchange',aMh='onclick',iXh='oncontextmenu',aZh='oncontrolselect',CCh='oncopy',uoh='oncut',FYh='ondataavailable',qZh='ondatasetchanged',n0h='ondatasetcomplete',sRh='ondblclick',FUh='ondeactivate',zzh='ondrag',uRh='ondragdrop',zPh='ondragend',sTh='ondragenter',nTh='ondragleave',xRh='ondragover',xTh='ondragstart',qBh='ondrop',inh='onend',gMh='onerror',fXh='onerrorupdate',eYh='onfilterchange',cOh='onfinish',fMh='onfocus',EPh='onfocusin',yRh='onfocusout',dVh='onformchange',wTh='onforminput',AAh='onhelp',hMh='oninput',CPh='oninvalid',DPh='onkeydown',vRh='onkeypress',eMh='onkeyup',nzh='onload',hXh='onlosecapture',xPh='onmessage',qTh='onmousedown',gVh='onmouseenter',bVh='onmouseleave',oTh='onmousemove',zRh='onmouseout',rTh='onmouseover',FPh='onmouseup',fVh='onmousewheel',czh='onmove',APh='onmoveend',yTh='onmovestart',FLh='onpaste',pZh='onpropertychange',x0h='onreadystatechange',iOh='onrepeat',kMh='onreset',ENh='onresize',wRh='onrowenter',bQh='onrowexit',aVh='onrowsdelete',fYh='onrowsinserted',dOh='onscroll',jOh='onselect',jXh='onselectstart',jMh='onstart',fBh='onstop',hOh='onsubmit',bOh='onunload',pAh='onzoom',poh='oopf;',lMh='opacity',qoh='opar;',nah='open',fOh='operator',roh='operp;',soh='oplus;',oxg='optgroup',cMh='optimum',dxg='option',u2h='or',toh='or;',voh='orarr;',woh='ord;',Enh='order',xoh='order;',yoh='orderof;',zoh='ordf',Aoh='ordf;',Boh='ordm',Coh='ordm;',bLh='org.xml.sax.',rCh='orient',pTh='orientation',eAh='origin',Doh='origof;',Eoh='oror;',aph='orslope;',bph='orv;',cph='oscr;',dph='oslash',eph='oslash;',fph='osol;',joh='other',nug='otherwise',gph='otilde',hph='otilde;',iph='otimes;',jph='otimesas;',mph='ouml',nph='ouml;',Cvg='outerproduct',Dqg='output',oph='ovbar;',gOh='overflow',o0h='overline-position',y0h='overline-thickness',ywg='p',CNh='panose-1',pph='par;',qph='para',rph='para;',sph='parallel;',l6h='param',tph='parsim;',uph='parsl;',vph='part;',ovg='partialdiff',heh='path',gSh='pathLength',fSh='pathlength',BMh='pattern',e1h='patternContentUnits',vZh='patternTransform',zVh='patternUnits',d1h='patterncontentunits',uZh='patterntransform',xVh='patternunits',xph='pcy;',yph='percnt;',zph='period;',Aph='permil;',Bph='perp;',Cph='pertenk;',Dph='pfr;',Eph='phi;',Fph='phiv;',aqh='phmmat;',cqh='phone;',v2h='pi',dqh='pi;',k6h='piece',oug='piecewise',seh='ping',eqh='pitchfork;',fqh='piv;',EJg='plaintext',gqh='planck;',hqh='planckh;',iqh='plankv;',uQh='playcount',c5h='plus',jqh='plus;',kqh='plusacir;',lqh='plusb;',nqh='pluscir;',oqh='plusdo;',pqh='plusdu;',qqh='pluse;',rqh='plusmn',sqh='plusmn;',tqh='plussim;',uqh='plustwo;',vqh='pm;',oYh='pointer-events',wqh='pointint;',dIh='points',pQh='pointsAtX',tQh='pointsAtY',nQh='pointsAtZ',oQh='pointsatx',qQh='pointsaty',mQh='pointsatz',ysg='polygon',wtg='polyline',yqh='popf;',yHh='poster',zqh='pound',Aqh='pound;',m6h='power',Bqh='pr;',Cqh='prE;',Dqh='prap;',Eqh='prcue;',y3h='pre',Fqh='pre;',arh='prec;',brh='precapprox;',drh='preccurlyeq;',erh='preceq;',frh='precnapprox;',grh='precneqq;',hrh='precnsim;',irh='precsim;',xtg='prefetch',vXh='preserveAlpha',c1h='preserveAspectRatio',uXh='preservealpha',b1h='preserveaspectratio',jrh='prime;',Eqg='primes',krh='primes;',qYh='primitiveUnits',pYh='primitiveunits',lrh='prnE;',mrh='prnap;',orh='prnsim;',prh='prod;',zsg='product',qrh='profalar;',CMh='profile',rrh='profline;',srh='profsurf;',ytg='progress',oIh='prompt',trh='prop;',urh='propto;',vrh='prsim;',ztg='prsubset',wrh='prurel;',xrh='pscr;',zrh='psi;',Arh='puncsp;',x1h='q',Brh='qfr;',Crh='qint;',Drh='qopf;',Erh='qprime;',Frh='qscr;',ash='quaternions;',bsh='quatint;',csh='quest;',esh='questeq;',fsh='quot',gsh='quot;',Atg='quotient',uSg='r',hsh='rAarr;',ish='rArr;',jsh='rAtail;',ksh='rBarr;',lsh='rHar;',msh='race;',nsh='racute;',wwg='radialGradient',vwg='radialgradient',psh='radic;',iSh='radiogroup',gKh='radius',qsh='raemptyv;',rsh='rang;',ssh='rangd;',tsh='range;',ush='rangle;',vsh='raquo',wsh='raquo;',xsh='rarr;',ysh='rarrap;',Bsh='rarrb;',Csh='rarrbfs;',Dsh='rarrc;',Esh='rarrfs;',Fsh='rarrhk;',ath='rarrlp;',bth='rarrpl;',cth='rarrsim;',dth='rarrtl;',eth='rarrw;',gth='ratail;',hth='ratio;',pug='rationals',ith='rationals;',jth='rbarr;',kth='rbbrk;',lth='rbrace;',mth='rbrack;',nth='rbrke;',oth='rbrksld;',pth='rbrkslu;',rth='rcaron;',sth='rcedil;',tth='rceil;',uth='rcub;',vth='rcy;',wth='rdca;',xth='rdldhar;',yth='rdquo;',zth='rdquor;',Ath='rdsh;',uOh='readonly',f5h='real',Cth='real;',Dth='realine;',Eth='realpart;',n6h='reals',Fth='reals;',h5h='rect',auh='rect;',jfh='refX',Ffh='refY',Eeh='refx',ufh='refy',buh='reg',cuh='reg;',p5g='rel',g5h='reln',z3h='rem',yZh='rendering-intent',yNg='renesis',CKh='repeat',hSh='repeat-max',mSh='repeat-min',FVh='repeat-start',gZh='repeat-template',gUh='repeatCount',yQh='repeatDur',fUh='repeatcount',xQh='repeatdur',fNh='replace',BOh='required',C0h='requiredExtensions',xZh='requiredFeatures',B0h='requiredextensions',wZh='requiredfeatures',EMh='restart',rKh='result',A5g='rev',duh='rfisht;',euh='rfloor;',fuh='rfr;',huh='rhard;',iuh='rharu;',juh='rharul;',kuh='rho;',luh='rhov;',muh='rightarrow;',nuh='rightarrowtail;',ouh='rightharpoondown;',puh='rightharpoonup;',quh='rightleftarrows;',suh='rightleftharpoons;',tuh='rightrightarrows;',uuh='rightsquigarrow;',vuh='rightthreetimes;',wuh='ring;',xuh='risingdotseq;',yuh='rlarr;',zuh='rlhar;',Auh='rlm;',Buh='rmoust;',Duh='rmoustache;',Euh='rnmid;',Fuh='roang;',avh='roarr;',bvh='robrk;',bih='role',i5h='root',cvh='ropar;',dvh='ropf;',evh='roplus;',fLh='rotate',fvh='rotimes;',yOh='rowalign',wOh='rowlines',ahh='rows',nSh='rowspacing',FMh='rowspan',x2h='rp',gvh='rpar;',ivh='rpargt;',jvh='rppolint;',gLh='rquote',kvh='rrarr;',lvh='rsaquo;',mvh='rscr;',nvh='rsh;',eLh='rspace',ovh='rsqb;',pvh='rsquo;',qvh='rsquor;',tZg='rt',rvh='rthree;',tvh='rtimes;',uvh='rtri;',vvh='rtrie;',wvh='rtrif;',xvh='rtriltri;',AGg='ruby',d5h='rule',fth='rules',yvh='ruluhar;',EZg='rx',zvh='rx;',j0g='ry',oOg='s',fPg='s:',Avh='sacute;',l5h='samp',aNh='sandbox',Bvh='sbquo;',Cvh='sc;',Evh='scE;',iwg='scalarproduct',osh='scale',Fvh='scap;',awh='scaron;',bwh='sccue;',cwh='sce;',dwh='scedil;',pJh='scheme',ewh='scirc;',fwh='scnE;',gwh='scnap;',hwh='scnsim;',dsh='scope',zIh='scoped',lwh='scpolint;',hIg='script',eUh='scriptlevel',wXh='scriptminsize',g1h='scriptsizemultiplier',lUh='scrolldelay',wQh='scrolling',mwh='scsim;',nwh='scy;',n5h='sdev',owh='sdot;',pwh='sdotb;',qwh='sdote;',rwh='seArr;',xOh='seamless',swh='searhk;',twh='searr;',uwh='searrow;',B3h='sec',j5h='sech',wwh='sect',xwh='sect;',Bsg='section',vgh='seed',xvg='select',vOh='selected',zQh='selection',Btg='selector',qug='semantics',ywh='semi;',F3h='sep',AQh='separator',lSh='separators',zwh='seswar;',b4h='set',Asg='setdiff',Awh='setminus;',Bwh='setmn;',Cwh='sext;',Dwh='sfr;',Ewh='sfrown;',yrh='shape',eZh='shape-rendering',Fwh='sharp;',bxh='shchcy;',cxh='shcy;',dxh='shortmid;',exh='shortparallel;',vSh='show',fxh='shy',gxh='shy;',hxh='sigma;',ixh='sigmaf;',jxh='sigmav;',kxh='sim;',mxh='simdot;',nxh='sime;',oxh='simeq;',pxh='simg;',qxh='simgE;',rxh='siml;',sxh='simlE;',txh='simne;',uxh='simplus;',vxh='simrarr;',E3h='sin',k5h='sinh',kgh='size',xxh='slarr;',nrh='slope',o6h='small',yxh='smallsetminus;',zxh='smashp;',Axh='smeparsl;',Bxh='smid;',Cxh='smile;',Dxh='smt;',Exh='smte;',Fxh='softcy;',ayh='sol;',cyh='solb;',dyh='solbar;',Dug='solidcolor',eyh='sopf;',Fqg='source',CQh='space',erg='spacer',DMh='spacing',fyh='spades;',gyh='spadesuit;',lhh='span',hyh='spar;',xXh='specification',CZh='specularConstant',AZh='specularExponent',BZh='specularconstant',zZh='specularexponent',Ash='speed',BVh='spreadMethod',AVh='spreadmethod',iyh='sqcap;',jyh='sqcup;',kyh='sqsub;',lyh='sqsube;',nyh='sqsubset;',oyh='sqsubseteq;',pyh='sqsup;',qyh='sqsupe;',ryh='sqsupset;',syh='sqsupseteq;',tyh='squ;',uyh='square;',vyh='squarf;',wyh='squf;',yyh='srarr;',f6g='src',zyh='sscr;',Ayh='ssetmn;',Byh='ssmile;',Cyh='sstarf;',eNh='standby',Dyh='star;',Eyh='starf;',guh='start',kUh='startOffset',jUh='startoffset',iIh='startup',bWh='stdDeviation',aWh='stddeviation',qth='stemh',Bth='stemv',whh='step',iUh='stitchTiles',hUh='stitchtiles',m5h='stop',kSh='stop-color',cWh='stop-opacity',Fyh='straightepsilon;',azh='straightphi;',zOh='stretchy',arg='strike',l1h='strikethrough-position',m1h='strikethrough-thickness',eJh='string',bzh='strns;',AJh='stroke',FZh='stroke-dasharray',u0h='stroke-dashoffset',uYh='stroke-linecap',fZh='stroke-linejoin',v0h='stroke-miterlimit',wYh='stroke-opacity',EVh='stroke-width',brg='strong',BHg='style',A3h='sub',dzh='sub;',ezh='subE;',fzh='subdot;',gzh='sube;',hzh='subedot;',izh='submult;',jzh='subnE;',kzh='subne;',lzh='subplus;',mzh='subrarr;',vYh='subscriptshift',frg='subset',ozh='subset;',pzh='subseteq;',qzh='subseteqq;',rzh='subsetneq;',szh='subsetneqq;',tzh='subsim;',uzh='subsub;',vzh='subsup;',wzh='succ;',xzh='succapprox;',Azh='succcurlyeq;',Bzh='succeq;',Czh='succnapprox;',Dzh='succneqq;',Ezh='succnsim;',Fzh='succsim;',D3h='sum',aAh='sum;',bNh='summary',bAh='sung;',a4h='sup',cAh='sup1',dAh='sup1;',fAh='sup2',gAh='sup2;',hAh='sup3',iAh='sup3;',jAh='sup;',kAh='supE;',lAh='supdot;',mAh='supdsub;',nAh='supe;',oAh='supedot;',EZh='superscriptshift',qAh='suphsub;',rAh='suplarr;',sAh='supmult;',tAh='supnE;',uAh='supne;',vAh='supplus;',wAh='supset;',xAh='supseteq;',yAh='supseteqq;',zAh='supsetneq;',BAh='supsetneqq;',CAh='supsim;',DAh='supsub;',EAh='supsup;',DVh='surfaceScale',CVh='surfacescale',C3h='svg',FAh='swArr;',aBh='swarhk;',bBh='swarr;',cBh='swarrow;',crg='switch',dBh='swnwar;',drg='symbol',vQh='symmetric',tYh='systemLanguage',sYh='systemlanguage',eBh='szlig',gBh='szlig;',tOh='tabindex',cwg='table',dUh='tableValues',cUh='tablevalues',d4h='tan',s5h='tanh',lGh='target',hBh='target;',uMh='targetX',wMh='targetY',tMh='targetx',vMh='targety',iBh='tau;',FBg='tbody',grg='tbreak',jBh='tbrk;',kBh='tcaron;',lBh='tcedil;',mBh='tcy;',fyg='td',nBh='tdot;',oBh='telrec;',sOh='template',Csg='tendsto',Cdh='text',FTh='text-anchor',dZh='text-decoration',mYh='text-rendering',aSh='textLength',Dtg='textPath',qHg='textarea',FRh='textlength',Ctg='textpath',vCg='tfoot',pBh='tfr;',qyg='th',kCg='thead',rBh='there4;',sBh='therefore;',tBh='theta;',uBh='thetasym;',vBh='thetav;',wBh='thickapprox;',lYh='thickmathspace',xBh='thicksim;',oXh='thinmathspace',yBh='thinsp;',zBh='thkap;',ABh='thksim;',CBh='thorn',DBh='thorn;',EBh='tilde;',o5h='time',r6h='times',FBh='times;',aCh='timesb;',bCh='timesbar;',cCh='timesd;',dCh='tint;',fHg='title',u0g='to',eCh='toea;',fCh='top;',hCh='topbot;',iCh='topcir;',jCh='topf;',kCh='topfork;',lCh='tosa;',mCh='tprime;',uBg='tr',nCh='trade;',jQh='transform',rug='transpose',r5h='tref',oCh='triangle;',pCh='triangledown;',qCh='triangleleft;',sCh='trianglelefteq;',tCh='triangleq;',uCh='triangleright;',vCh='trianglerighteq;',wCh='tridot;',xCh='trie;',yCh='triminus;',zCh='triplus;',ACh='trisb;',BCh='tritime;',DCh='trpezium;',q5h='true',ECh='tscr;',FCh='tscy;',aDh='tshcy;',p6h='tspan',bDh='tstrok;',y2h='tt',cDh='twixt;',dDh='twoheadleftarrow;',eDh='twoheadrightarrow;',Bch='type',y1h='u',gZg='u1',BYg='u2',fDh='uArr;',gDh='uHar;',jDh='uacute',kDh='uacute;',lDh='uarr;',kxg='ublic',mDh='ubrcy;',nDh='ubreve;',oDh='ucirc',pDh='ucirc;',qDh='ucy;',rDh='udarr;',sDh='udblac;',uDh='udhar;',vDh='ufisht;',wDh='ufr;',xDh='ugrave',yDh='ugrave;',zDh='uharl;',ADh='uharr;',BDh='uhblk;',z2h='ul',CDh='ulcorn;',DDh='ulcorner;',FDh='ulcrop;',aEh='ultri;',bEh='umacr;',cEh='uml',dEh='uml;',z0h='underline-position',a1h='underline-thickness',sMh='unicode',sVh='unicode-bidi',nXh='unicode-range',s6h='union',tVh='units-per-em',rVh='unselectable',eEh='uogon;',fEh='uopf;',gEh='uparrow;',hEh='updownarrow;',iEh='upharpoonleft;',kEh='upharpoonright;',Dsg='uplimit',lEh='uplus;',mEh='upsi;',nEh='upsih;',oEh='upsilon;',pEh='upuparrows;',qEh='urcorn;',rEh='urcorner;',sEh='urcrop;',tEh='uring;',vEh='urtri;',wEh='uscr;',e4h='use',vFh='usemap',xEh='utdot;',yEh='utilde;',zEh='utri;',AEh='utrif;',BEh='uuarr;',CEh='uuml',DEh='uuml;',EEh='uwangle;',wVh='v-alphabetic',kQh='v-hanging',tXh='v-ideographic',nYh='v-mathematical',aFh='vArr;',bFh='vBar;',cFh='vBarv;',dFh='vDash;',cHh='valign',crh='value',xGh='values',lQh='valuetype',eFh='vangrt;',f4h='var',fFh='varepsilon;',Etg='variance',gFh='varkappa;',hFh='varnothing;',iFh='varphi;',jFh='varpi;',lFh='varpropto;',mFh='varr;',nFh='varrho;',oFh='varsigma;',pFh='vartheta;',qFh='vartriangleleft;',rFh='vartriangleright;',sFh='vcy;',tFh='vdash;',irg='vector',jwg='vectorproduct',uFh='vee;',wFh='veebar;',xFh='veeeq;',yFh='vellip;',zFh='verbar;',AMh='version',eSh='vert-adv-y',rXh='vert-origin-x',sXh='vert-origin-y',AFh='vert;',A0h='verythickmathspace',s0h='verythinmathspace',j1h='veryverythickmathspace',i1h='veryverythinmathspace',BFh='vfr;',u6h='video',t5h='view',zMh='viewBox',dSh='viewTarget',yMh='viewbox',cSh='viewtarget',bSh='visibility',t6h='vkern',xqh='vlink',CFh='vltri;',DFh='vopf;',EFh='vprop;',FFh='vrtri;',bGh='vscr;',nHh='vspace',cGh='vzigzag;',g4h='wbr',dGh='wcirc;',eGh='wedbar;',fGh='wedge;',gGh='wedgeq;',hGh='weierp;',iGh='wfr;',gdh='when',mqh='width',aGh='widths',jGh='wopf;',uVh='word-spacing',kGh='wp;',mGh='wr;',rdh='wrap',nGh='wreath;',vVh='writing-mode',oGh='wscr;',FSg='x',EOh='x-height',v1g='x1',a2g='x2',b0h='xChannelSelector',pGh='xcap;',a0h='xchannelselector',qGh='xcirc;',rGh='xcup;',sGh='xdtri;',tGh='xfr;',uGh='xhArr;',vGh='xharr;',yGh='xi;',zGh='xlArr;',AGh='xlarr;',hRg='xlink',yXh='xlink:actuate',AXh='xlink:arcrole',sSh='xlink:href',rSh='xlink:role',tSh='xlink:show',oUh='xlink:title',qSh='xlink:type',BGh='xmap;',sRg='xml',COh='xml:base',DOh='xml:lang',BQh='xml:space',CQg='xmlns',s1h='xmlns:',nUh='xmlns:xlink',sIg='xmp',CGh='xnis;',DGh='xodot;',EGh='xopf;',FGh='xoplus;',h4h='xor',aHh='xotime;',bHh='xrArr;',dHh='xrarr;',nih='xref',eHh='xscr;',fHh='xsqcup;',gHh='xuplus;',hHh='xutri;',iHh='xvee;',jHh='xwedge;',kTg='y',k1g='y1',F0g='y2',d0h='yChannelSelector',kHh='yacute',lHh='yacute;',mHh='yacy;',c0h='ychannelselector',oHh='ycirc;',pHh='ycy;',qHh='yen',rHh='yen;',sHh='yfr;',tHh='yicy;',uHh='yopf;',vHh='yscr;',lxg='ystem',wHh='yucy;',xHh='yuml',zHh='yuml;',vTg='z',AHh='zacute;',BHh='zcaron;',CHh='zcy;',DHh='zdot;',EHh='zeetrf;',FHh='zeta;',aIh='zfr;',bIh='zhcy;',cIh='zigrarr;',pSh='zoomAndPan',oSh='zoomandpan',eIh='zopf;',fIh='zscr;',gIh='zwj;',hIh='zwnj;',b3g='{',F9g='}',tsg='\u201D cannot be represented as XML 1.0.',eyg='\u201D is not serializable as XML 1.0.',nxg='\u201D without an explicit value seen. The attribute may be dropped by IE7.',rxg='\u201D.';var _,C7h=[0,-9223372036854775808],D7h=[16777216,0],E7h=[4294967295,9223372032559808512];function zdi(a){return (this==null?null:this)===(a==null?null:a)} +function Adi(){return k$h} +function Bdi(){return this.$H||(this.$H=++D8h)} +function Cdi(){return (this.tM==u0i||this.tI==2?this.gC():F9h).b+zqg+idi(this.tM==u0i||this.tI==2?this.hC():this.$H||(this.$H=++D8h),4)} +function xdi(){} +_=xdi.prototype={};_.eQ=zdi;_.gC=Adi;_.hC=Bdi;_.tS=Cdi;_.toString=function(){return this.tS()};_.tM=u0i;_.tI=1;function agi(c){var a,b;a=c.gC().b;b=c.Bb();if(b!=null){return a+Aqg+b}else{return a}} +function bgi(){return q$h} +function cgi(){return this.b} +function dgi(){return agi(this)} +function Efi(){} +_=Efi.prototype=new xdi();_.gC=bgi;_.Bb=cgi;_.tS=dgi;_.tI=3;_.b=null;function Bci(b,a){b.b=a;return b} +function Dci(){return g$h} +function Aci(){} +_=Aci.prototype=new Efi();_.gC=Dci;_.tI=4;function Edi(b,a){b.b=a;return b} +function aei(){return l$h} +function Ddi(){} +_=Ddi.prototype=new Aci();_.gC=aei;_.tI=5;function a8h(b,a){Bci(b,rZg+h8h(a)+iwh+e8h(a)+(a!=null&&(a.tM!=u0i&&a.tI!=2)?i8h(o9h(a)):cNh));h8h(a);e8h(a);f8h(a);return b} +function c8h(){return E9h} +function e8h(a){if(a!=null&&(a.tM!=u0i&&a.tI!=2)){return d8h(o9h(a))}else{return a+cNh}} +function d8h(a){return a==null?null:a.message} +function f8h(a){if(a!=null&&(a.tM!=u0i&&a.tI!=2)){return o9h(a)}else{return null}} +function h8h(a){if(a==null){return rQh}else if(a!=null&&(a.tM!=u0i&&a.tI!=2)){return g8h(o9h(a))}else if(a!=null&&n9h(a.tI,1)){return aUh}else{return (a.tM==u0i||a.tI==2?a.gC():F9h).b}} +function g8h(a){return a==null?null:a.name} +function i8h(a){var b=cNh;for(prop in a){if(prop!=pXh&&prop!=E0h){b+=n4h+prop+Aqg+a[prop]}}return b} +function F7h(){} +_=F7h.prototype=new Ddi();_.gC=c8h;_.tI=6;function q8h(){return function(){}} +function s8h(b,a){return b.tM==u0i||b.tI==2?b.eQ(a):(b==null?null:b)===(a==null?null:a)} +function w8h(a){return a.tM==u0i||a.tI==2?a.hC():a.$H||(a.$H=++D8h)} +var D8h=0;function c9h(e,c){var d=[null,0,false,[0,0]];var f=d[e];var a=new Array(c);for(var b=0;b<c;++b){a[b]=f}return a} +function d9h(){return this.aC} +function e9h(a,f,c,b,e){var d;d=c9h(e,b);f9h(a,f,c,d);return d} +function f9h(b,d,c,a){if(!g9h){g9h=new E8h()}j9h(a,g9h);a.aC=b;a.tI=d;a.qI=c;return a} +function h9h(a,b,c){if(c!=null){if(a.qI>0&&!m9h(c.tI,a.qI)){throw new Ebi()}if(a.qI<0&&(c.tM==u0i||c.tI==2)){throw new Ebi()}}return a[b]=c} +function j9h(a,c){for(var b in c){var d=c[b];if(d){a[b]=d}}return a} +function E8h(){} +_=E8h.prototype=new xdi();_.gC=d9h;_.tI=0;_.aC=null;_.length=0;_.qI=0;var g9h=null;function n9h(b,a){return b&&!!B9h[b][a]} +function m9h(b,a){return b&&B9h[b][a]} +function p9h(b,a){if(b!=null&&!m9h(b.tI,a)){throw new eci()}return b} +function o9h(a){if(a!=null&&(a.tM==u0i||a.tI==2)){throw new eci()}return a} +function s9h(b,a){return b!=null&&n9h(b.tI,a)} +var B9h=[{},{},{1:1,6:1,7:1,8:1},{2:1,6:1},{2:1,6:1},{2:1,6:1},{2:1,6:1,19:1},{4:1},{2:1,6:1},{2:1,6:1},{2:1,6:1},{2:1,6:1},{2:1,6:1},{6:1,8:1},{2:1,6:1},{2:1,6:1},{2:1,6:1},{7:1},{7:1},{2:1,6:1},{2:1,6:1},{18:1},{14:1},{14:1},{14:1},{15:1},{15:1},{6:1,15:1},{6:1,16:1},{6:1,15:1},{2:1,6:1,17:1},{6:1,8:1},{6:1,8:1},{6:1,8:1},{20:1},{3:1},{9:1},{10:1},{11:1},{21:1},{2:1,6:1,22:1},{2:1,6:1,22:1},{12:1},{13:1},{5:1},{5:1},{5:1},{5:1},{5:1},{5:1},{5:1},{5:1},{5:1},{5:1}];function gai(a){if(a!=null&&n9h(a.tI,2)){return a}return a8h(new F7h(),a)} +function rai(d,c){var a,b;c%=1.8446744073709552E19;d%=1.8446744073709552E19;a=c%4294967296;b=Math.floor(d/4294967296)*4294967296;c=c-a+b;d=d-b+a;while(d<0){d+=4294967296;c-=4294967296}while(d>4294967295){d-=4294967296;c+=4294967296}c=c%1.8446744073709552E19;while(c>9223372032559808512){c-=1.8446744073709552E19}while(c<-9223372036854775808){c+=1.8446744073709552E19}return [d,c]} +function sai(a){if(isNaN(a)){return mai(),pai}if(a<-9223372036854775808){return mai(),oai}if(a>=9223372036854775807){return mai(),nai}if(a>0){return rai(Math.floor(a),0)}else{return rai(Math.ceil(a),0)}} +function tai(c){var a,b;if(c>-129&&c<128){a=c+128;b=(jai(),kai)[a];if(b==null){b=kai[a]=uai(c)}return b}return uai(c)} +function uai(a){if(a>=0){return [a,0]}else{return [a+4294967296,-4294967296]}} +function jai(){jai=u0i;kai=e9h(dai,53,13,256,0)} +var kai;function mai(){mai=u0i;Math.log(2);nai=E7h;oai=C7h;tai(-1);tai(1);tai(2);pai=tai(0)} +var nai,oai,pai;function gbi(){gbi=u0i;obi=fji(new eji());sbi(new bbi())} +function fbi(a){if(a.b){$wnd.clearInterval(a.c)}else{$wnd.clearTimeout(a.c)}lji(obi,a)} +function hbi(a){if(!a.b){lji(obi,a)}sni(a)} +function ibi(b,a){if(a<=0){throw Fci(new Eci(),Bqg)}fbi(b);b.b=false;b.c=lbi(b,a);gji(obi,b)} +function lbi(b,a){return $wnd.setTimeout(function(){b.zb()},a)} +function mbi(){hbi(this)} +function nbi(){return b$h} +function abi(){} +_=abi.prototype=new xdi();_.zb=mbi;_.gC=nbi;_.tI=0;_.b=false;_.c=0;var obi;function dbi(){while((gbi(),obi).b>0){fbi(p9h(iji(obi,0),3))}} +function ebi(){return a$h} +function bbi(){} +_=bbi.prototype=new xdi();_.gC=ebi;_.tI=7;function sbi(a){ybi();if(!tbi){tbi=fji(new eji())}gji(tbi,a)} +function ubi(){var a;if(tbi){for(a=zhi(new xhi(),tbi);a.a<a.b.bc();){p9h(Chi(a),4);dbi()}}} +function vbi(){var a,b;b=null;if(tbi){for(a=zhi(new xhi(),tbi);a.a<a.b.bc();){p9h(Chi(a),4);b=null}}return b} +function xbi(){__gwt_initHandlers(function(){},function(){return vbi()},function(){ubi()})} +function ybi(){if(!wbi){xbi();wbi=true}} +var tbi=null,wbi=false;function Fbi(b,a){b.b=a;return b} +function bci(){return c$h} +function Ebi(){} +_=Ebi.prototype=new Ddi();_.gC=bci;_.tI=9;function ici(c,a){var b;b=new dci();b.b=c+a;b.a=4;return b} +function jci(c,a){var b;b=new dci();b.b=c+a;return b} +function kci(c,a){var b;b=new dci();b.b=c+a;b.a=8;return b} +function mci(){return e$h} +function nci(){return ((this.a&2)!=0?kug:(this.a&1)!=0?cNh:zxg)+this.b} +function dci(){} +_=dci.prototype=new xdi();_.gC=mci;_.tS=nci;_.tI=0;_.a=0;_.b=null;function gci(){return d$h} +function eci(){} +_=eci.prototype=new Ddi();_.gC=gci;_.tI=12;function vci(a){return this.b-a.b} +function wci(a){return (this==null?null:this)===(a==null?null:a)} +function xci(){return f$h} +function yci(){return this.$H||(this.$H=++D8h)} +function zci(){return this.a} +function tci(){} +_=tci.prototype=new xdi();_.cT=vci;_.eQ=wci;_.gC=xci;_.hC=yci;_.tS=zci;_.tI=13;_.a=null;_.b=0;function Fci(b,a){b.b=a;return b} +function bdi(){return h$h} +function Eci(){} +_=Eci.prototype=new Ddi();_.gC=bdi;_.tI=14;function ddi(b,a){b.b=a;return b} +function fdi(){return i$h} +function cdi(){} +_=cdi.prototype=new Ddi();_.gC=fdi;_.tI=15;function idi(f,e){var a,b,c,d;c=~~(32/e);a=(1<<e)-1;b=e9h(A_h,42,-1,c,1);d=c-1;if(f>=0){while(f>a){b[d--]=(udi(),vdi)[f&a];f>>=e}}else{while(d>0){b[d--]=(udi(),vdi)[f&a];f>>=e}}b[d]=(udi(),vdi)[f&a];return ofi(b,d,c)} +function rdi(){return j$h} +function pdi(){} +_=pdi.prototype=new Ddi();_.gC=rdi;_.tI=16;function udi(){udi=u0i;vdi=f9h(A_h,42,-1,[48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122])} +var vdi;function efi(b,a){if(!(a!=null&&n9h(a.tI,1))){return false}return String(b)==a} +function ffi(f,c,d,a,b){var e;for(e=c;e<d;++e){a[b++]=f.charCodeAt(e)}} +function lfi(c){var a,b;b=c.length;a=e9h(A_h,42,-1,b,1);ffi(c,0,b,a,0);return a} +function mfi(b,c,a){if(c<0){throw Fei(new Eei(),c)}if(a<c){throw Fei(new Eei(),a-c)}if(a>b){throw Fei(new Eei(),a)}} +function ofi(c,b,a){c=c.slice(b,a);return String.fromCharCode.apply(null,c)} +function qfi(b,a){b=String(b);if(b==a){return 0}return b<a?-1:1} +function pfi(a){return qfi(this,a)} +function rfi(a){return efi(this,a)} +function sfi(){return p$h} +function tfi(){return iei(this)} +function ufi(){return this} +function xfi(d,c,a){var b;b=c+a;mfi(d.length,c,b);return ofi(d,c,b)} +_=String.prototype;_.cT=pfi;_.eQ=rfi;_.gC=sfi;_.hC=tfi;_.tS=ufi;_.tI=2;function dei(){dei=u0i;eei={};hei={}} +function fei(e){var a,b,c,d;d=e.length;c=d<64?1:~~(d/32);a=0;for(b=0;b<d;b+=c){a<<=1;a+=e.charCodeAt(b)}a|=0;return a} +function iei(c){dei();var a=iBg+c;var b=hei[a];if(b!=null){return b}b=eei[a];if(b==null){b=fei(c)}jei();return hei[a]=b} +function jei(){if(gei==256){eei=hei;hei={};gei=0}++gei} +var eei,gei=0,hei;function mei(a){a.a=tei(new rei());return a} +function nei(a,b){uei(a.a,b);return a} +function pei(){return m$h} +function qei(){return zei(this.a)} +function kei(){} +_=kei.prototype=new xdi();_.gC=pei;_.tS=qei;_.tI=17;function tei(a){a.b=e9h(D_h,48,1,0,0);return a} +function uei(b,c){var a;if(c==null){c=rQh}a=c.length;if(a>0){b.b[b.a++]=c;b.c+=a;if(b.a>1024){zei(b);b.b.length=1024}}return b} +function wei(f,e,d,a,b){var c;mfi(f.c,e,d);mfi(a.length,b,b+(d-e));c=zei(f);while(e<d){a[b++]=c.charCodeAt(e++)}} +function yei(d,b){var c,a;c=d.c;if(b<c){a=zei(d);d.b=f9h(D_h,48,1,[a.substr(0,b-0),cNh,a.substr(c,a.length-c)]);d.a=3;d.c+=cNh.length-(c-b)}else if(b>c){uei(d,String.fromCharCode.apply(null,e9h(A_h,42,-1,b-c,1)))}} +function zei(b){var a;if(b.a!=1){b.b.length=b.a;a=b.b.join(cNh);b.b=f9h(D_h,48,1,[a]);b.a=1}return b.b[0]} +function Aei(){return n$h} +function Dei(){return zei(this)} +function rei(){} +_=rei.prototype=new xdi();_.gC=Aei;_.tS=Dei;_.tI=18;_.a=0;_.c=0;function Fei(b,a){b.b=xEg+a;return b} +function bfi(){return o$h} +function Eei(){} +_=Eei.prototype=new cdi();_.gC=bfi;_.tI=19;function Afi(h,j,a,d,g){var b,c,e,f,i,k,l;if(h==null||a==null){throw new pdi()}k=(h.tM==u0i||h.tI==2?h.gC():F9h).b;e=(a.tM==u0i||a.tI==2?a.gC():F9h).b;if(k.charCodeAt(0)!=91||e.charCodeAt(0)!=91){throw Fbi(new Ebi(),gIg)}if(k.charCodeAt(1)!=e.charCodeAt(1)){throw Fbi(new Ebi(),vLg)}l=h.length;f=a.length;if(j<0||d<0||g<0||j+g>l||d+g>f){throw new cdi()}if((k.charCodeAt(1)==76||k.charCodeAt(1)==91)&&!efi(k,e)){i=p9h(h,5);b=p9h(a,5);if((h==null?null:h)===(a==null?null:a)&&j<d){j+=g;for(c=d+g;c-->d;){h9h(b,c,i[--j])}}else{for(c=d+g;d<c;){h9h(b,d++,i[j++])}}}else{Array.prototype.splice.apply(a,[d,g].concat(h.slice(j,j+g)))}} +function fgi(b,a){b.b=a;return b} +function hgi(){return r$h} +function egi(){} +_=egi.prototype=new Ddi();_.gC=hgi;_.tI=20;function jgi(a,b){var c;while(a.Eb()){c=a.ac();if(b==null?c==null:s8h(b,c)){return a}}return null} +function lgi(a){throw fgi(new egi(),ePg)} +function mgi(b){var a;a=jgi(this.Fb(),b);return !!a} +function ngi(){return s$h} +function ogi(){var a,b,c;c=mei(new kei());a=null;uei(c.a,tSg);b=this.Fb();while(b.Eb()){if(a!=null){uei(c.a,a)}else{a=cWg}nei(c,cNh+b.ac())}uei(c.a,sZg);return zei(c.a)} +function igi(){} +_=igi.prototype=new xdi();_.vb=lgi;_.wb=mgi;_.gC=ngi;_.tS=ogi;_.tI=0;function vii(c){var a,b,d,e,f;if((c==null?null:c)===(this==null?null:this)){return true}if(!(c!=null&&n9h(c.tI,16))){return false}e=p9h(c,16);if(p9h(this,16).d!=e.d){return false}for(b=sgi(new rgi(),xgi(new qgi(),e).a);Bhi(b.a);){a=p9h(Chi(b.a),14);d=a.Ab();f=a.Cb();if(!(d==null?p9h(this,16).c:d!=null?thi(p9h(this,16),d):shi(p9h(this,16),d,~~iei(d)))){return false}if(!pli(f,d==null?p9h(this,16).b:d!=null?p9h(this,16).e[iBg+d]:phi(p9h(this,16),d,~~iei(d)))){return false}}return true} +function wii(){return C$h} +function xii(){var a,b,c;c=0;for(b=sgi(new rgi(),xgi(new qgi(),p9h(this,16)).a);Bhi(b.a);){a=p9h(Chi(b.a),14);c+=a.hC();c=~~c}return c} +function yii(){var a,b,c,d;d=b3g;a=false;for(c=sgi(new rgi(),xgi(new qgi(),p9h(this,16)).a);Bhi(c.a);){b=p9h(Chi(c.a),14);if(a){d+=cWg}else{a=true}d+=cNh+b.Ab();d+=q6g;d+=cNh+b.Cb()}return d+F9g} +function nii(){} +_=nii.prototype=new xdi();_.eQ=vii;_.gC=wii;_.hC=xii;_.tS=yii;_.tI=0;function khi(g,c){var e=g.a;for(var d in e){if(d==parseInt(d)){var a=e[d];for(var f=0,b=a.length;f<b;++f){c.vb(a[f])}}}} +function lhi(e,a){var d=e.e;for(var c in d){if(c.charCodeAt(0)==58){var b=jhi(e,c.substring(1));a.vb(b)}}} +function mhi(a){a.a=[];a.e={};a.c=false;a.b=null;a.d=0} +function ohi(b,a){return a==null?b.c:a!=null?iBg+a in b.e:shi(b,a,~~iei(a))} +function rhi(b,a){return a==null?b.b:a!=null?b.e[iBg+a]:phi(b,a,~~iei(a))} +function phi(h,g,e){var a=h.a[e];if(a){for(var f=0,b=a.length;f<b;++f){var c=a[f];var d=c.Ab();if(h.yb(g,d)){return c.Cb()}}}return null} +function shi(h,g,e){var a=h.a[e];if(a){for(var f=0,b=a.length;f<b;++f){var c=a[f];var d=c.Ab();if(h.yb(g,d)){return true}}}return false} +function thi(b,a){return iBg+a in b.e} +function uhi(a,b){return (a==null?null:a)===(b==null?null:b)||a!=null&&s8h(a,b)} +function vhi(){return x$h} +function pgi(){} +_=pgi.prototype=new nii();_.yb=uhi;_.gC=vhi;_.tI=0;_.a=null;_.b=null;_.c=false;_.d=0;_.e=null;function bji(b){var a,c,d;if((b==null?null:b)===(this==null?null:this)){return true}if(!(b!=null&&n9h(b.tI,18))){return false}c=p9h(b,18);if(c.a.d!=this.bc()){return false}for(a=sgi(new rgi(),c.a);Bhi(a.a);){d=p9h(Chi(a.a),14);if(!this.wb(d)){return false}}return true} +function cji(){return E$h} +function dji(){var a,b,c;a=0;for(b=this.Fb();b.Eb();){c=b.ac();if(c!=null){a+=w8h(c);a=~~a}}return a} +function Fii(){} +_=Fii.prototype=new igi();_.eQ=bji;_.gC=cji;_.hC=dji;_.tI=0;function xgi(b,a){b.a=a;return b} +function zgi(c){var a,b,d;if(c!=null&&n9h(c.tI,14)){a=p9h(c,14);b=a.Ab();if(ohi(this.a,b)){d=rhi(this.a,b);return eki(a.Cb(),d)}}return false} +function Agi(){return u$h} +function Bgi(){return sgi(new rgi(),this.a)} +function Cgi(){return this.a.d} +function qgi(){} +_=qgi.prototype=new Fii();_.wb=zgi;_.gC=Agi;_.Fb=Bgi;_.bc=Cgi;_.tI=21;_.a=null;function sgi(c,b){var a;c.b=b;a=fji(new eji());if(c.b.c){gji(a,Egi(new Dgi(),c.b))}lhi(c.b,a);khi(c.b,a);c.a=zhi(new xhi(),a);return c} +function ugi(){return t$h} +function vgi(){return Bhi(this.a)} +function wgi(){return p9h(Chi(this.a),14)} +function rgi(){} +_=rgi.prototype=new xdi();_.gC=ugi;_.Eb=vgi;_.ac=wgi;_.tI=0;_.a=null;_.b=null;function qii(b){var a;if(b!=null&&n9h(b.tI,14)){a=p9h(b,14);if(pli(this.Ab(),a.Ab())&&pli(this.Cb(),a.Cb())){return true}}return false} +function rii(){return B$h} +function sii(){var a,b;a=0;b=0;if(this.Ab()!=null){a=iei(this.Ab())}if(this.Cb()!=null){b=w8h(this.Cb())}return a^b} +function tii(){return this.Ab()+q6g+this.Cb()} +function oii(){} +_=oii.prototype=new xdi();_.eQ=qii;_.gC=rii;_.hC=sii;_.tS=tii;_.tI=22;function Egi(b,a){b.a=a;return b} +function ahi(){return v$h} +function bhi(){return null} +function chi(){return this.a.b} +function Dgi(){} +_=Dgi.prototype=new oii();_.gC=ahi;_.Ab=bhi;_.Cb=chi;_.tI=23;_.a=null;function ehi(c,a,b){c.b=b;c.a=a;return c} +function ghi(){return w$h} +function hhi(){return this.a} +function ihi(){return this.b.e[iBg+this.a]} +function jhi(b,a){return ehi(new dhi(),a,b)} +function dhi(){} +_=dhi.prototype=new oii();_.gC=ghi;_.Ab=hhi;_.Cb=ihi;_.tI=24;_.a=null;_.b=null;function gii(a){this.ub(this.bc(),a);return true} +function fii(b,a){throw fgi(new egi(),obh)} +function hii(a,b){if(a<0||a>=b){lii(a,b)}} +function iii(e){var a,b,c,d,f;if((e==null?null:e)===(this==null?null:this)){return true}if(!(e!=null&&n9h(e.tI,15))){return false}f=p9h(e,15);if(this.bc()!=f.bc()){return false}c=this.Fb();d=f.Fb();while(c.a<c.b.bc()){a=Chi(c);b=Chi(d);if(!(a==null?b==null:s8h(a,b))){return false}}return true} +function jii(){return A$h} +function kii(){var a,b,c;b=1;a=this.Fb();while(a.a<a.b.bc()){c=Chi(a);b=31*b+(c==null?0:w8h(c));b=~~b}return b} +function lii(a,b){throw ddi(new cdi(),Deh+a+mih+b)} +function mii(){return zhi(new xhi(),this)} +function whi(){} +_=whi.prototype=new igi();_.vb=gii;_.ub=fii;_.eQ=iii;_.gC=jii;_.hC=kii;_.Fb=mii;_.tI=25;function zhi(b,a){b.b=a;return b} +function Bhi(a){return a.a<a.b.bc()} +function Chi(a){if(a.a>=a.b.bc()){throw new hli()}return a.b.Db(a.a++)} +function Dhi(){return y$h} +function Ehi(){return this.a<this.b.bc()} +function Fhi(){return Chi(this)} +function xhi(){} +_=xhi.prototype=new xdi();_.gC=Dhi;_.Eb=Ehi;_.ac=Fhi;_.tI=0;_.a=0;_.b=null;function bii(b,a){b.b=a;return b} +function dii(){return z$h} +function aii(){} +_=aii.prototype=new xhi();_.gC=dii;_.tI=0;function Bii(b,a){var c;c=Dki(this,b);yki(c.d,a,c.b);++c.a;c.c=null} +function Dii(c){var a,d;d=Dki(this,c);try{return nki(d)}catch(a){a=gai(a);if(s9h(a,17)){throw ddi(new cdi(),Blh+c)}else throw a}} +function Cii(){return D$h} +function Eii(){return bii(new aii(),this)} +function zii(){} +_=zii.prototype=new whi();_.ub=Bii;_.Db=Dii;_.gC=Cii;_.Fb=Eii;_.tI=26;function fji(a){a.a=e9h(C_h,47,0,0,0);a.b=0;return a} +function gji(b,a){h9h(b.a,b.b++,a);return true} +function iji(b,a){hii(a,b.b);return b.a[a]} +function jji(c,b,a){for(;a<c.b;++a){if(pli(b,c.a[a])){return a}}return -1} +function lji(d,c){var a,b;a=jji(d,c,0);if(a==-1){return false}b=(hii(a,d.b),d.a[a]);d.a.splice(a,1);--d.b;return true} +function nji(a){return h9h(this.a,this.b++,a),true} +function mji(a,b){if(a<0||a>this.b){lii(a,this.b)}this.a.splice(a,0,b);++this.b} +function oji(a){return jji(this,a,0)!=-1} +function qji(a){return hii(a,this.b),this.a[a]} +function pji(){return F$h} +function rji(){return this.b} +function eji(){} +_=eji.prototype=new whi();_.vb=nji;_.ub=mji;_.wb=oji;_.Db=qji;_.gC=pji;_.bc=rji;_.tI=27;_.a=null;_.b=0;function wji(f,b){var a,c,d,e;c=0;a=f.length-1;while(c<=a){d=c+(a-c>>1);e=f[d];if(e<b){c=d+1}else if(e>b){a=d-1}else{return d}}return -c-1} +function xji(h,d,a){var b,c,e,f,g;if(!a){a=(Eji(),Fji)}e=0;c=h.length-1;while(e<=c){f=e+(c-e>>1);g=h[f];b=g.cT(d);if(b<0){e=f+1}else if(b>0){c=f-1}else{return f}}return -e-1} +function Eji(){Eji=u0i;Fji=new Bji()} +var Fji;function Dji(){return a_h} +function Bji(){} +_=Bji.prototype=new xdi();_.gC=Dji;_.tI=0;function cki(a){mhi(a);return a} +function eki(a,b){return (a==null?null:a)===(b==null?null:b)||a!=null&&s8h(a,b)} +function fki(){return b_h} +function bki(){} +_=bki.prototype=new pgi();_.gC=fki;_.tI=28;function xki(a){a.a=ski(new rki());a.b=0;return a} +function yki(c,a,b){tki(new rki(),a,b);++c.b} +function zki(b,a){tki(new rki(),a,b.a);++b.b} +function Aki(a){a.a=ski(new rki());a.b=0} +function Cki(a){Fki(a);return a.a.b.c} +function Dki(d,b){var a,c;if(b<0||b>d.b){lii(b,d.b)}if(b>=d.b>>1){c=d.a;for(a=d.b;a>b;--a){c=c.b}}else{c=d.a.a;for(a=0;a<b;++a){c=c.a}}return kki(new iki(),b,c,d)} +function Eki(b){var a;Fki(b);--b.b;a=b.a.b;a.a.b=a.b;a.b.a=a.a;a.a=a.b=a;return a.c} +function Fki(a){if(a.b==0){throw new hli()}} +function ali(a){tki(new rki(),a,this.a);++this.b;return true} +function bli(){return e_h} +function cli(){return this.b} +function hki(){} +_=hki.prototype=new zii();_.vb=ali;_.gC=bli;_.bc=cli;_.tI=29;_.a=null;_.b=0;function kki(d,a,b,c){d.d=c;d.b=b;d.a=a;return d} +function nki(a){if(a.b==a.d.a){throw new hli()}a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function oki(){return c_h} +function pki(){return this.b!=this.d.a} +function qki(){return nki(this)} +function iki(){} +_=iki.prototype=new xdi();_.gC=oki;_.Eb=pki;_.ac=qki;_.tI=0;_.a=0;_.b=null;_.c=null;_.d=null;function ski(a){a.a=a.b=a;return a} +function tki(b,c,a){b.c=c;b.a=a;b.b=a.b;a.b.a=b;a.b=b;return b} +function wki(){return d_h} +function rki(){} +_=rki.prototype=new xdi();_.gC=wki;_.tI=0;_.a=null;_.b=null;_.c=null;function jli(){return f_h} +function hli(){} +_=hli.prototype=new Ddi();_.gC=jli;_.tI=30;function pli(a,b){return (a==null?null:a)===(b==null?null:b)||a!=null&&s8h(a,b)} +function sli(){sli=u0i;tli=rli(new qli(),kph,0);rli(new qli(),zsh,1);rli(new qli(),jwh,2);rli(new qli(),yzh,3);rli(new qli(),hDh,4)} +function rli(c,a,b){sli();c.a=a;c.b=b;return c} +function uli(){return g_h} +function qli(){} +_=qli.prototype=new tci();_.gC=uli;_.tI=31;var tli;function xli(){xli=u0i;Ali=wli(new vli(),wGh,0);yli=wli(new vli(),fKh,1);zli=wli(new vli(),lLh,2)} +function wli(c,a,b){xli();c.a=a;c.b=b;return c} +function Bli(){return h_h} +function vli(){} +_=vli.prototype=new tci();_.gC=Bli;_.tI=32;var yli,zli,Ali;function Fli(){Fli=u0i;ami=Eli(new Dli(),wLh,0);cmi=Eli(new Dli(),bMh,1);bmi=Eli(new Dli(),mMh,2)} +function Eli(c,a,b){Fli();c.a=a;c.b=b;return c} +function dmi(){return i_h} +function Dli(){} +_=Dli.prototype=new tci();_.gC=dmi;_.tI=33;var ami,bmi,cmi;function BYi(){BYi=u0i;k0i=lfi(xMh);j0i=f9h(D_h,48,1,[dNh,oNh,zNh,eOh,pOh,AOh]);l0i=f9h(D_h,48,1,[fPh,qPh,BPh,gQh,sQh,DQh,iRh,tRh,ERh,jSh,uSh,FSh,kTh,vTh,bUh,mUh,xUh,cVh,nVh,yVh,dWh,oWh,zWh,eXh,qXh,BXh,gYh,rYh,CYh,hZh,sZh,DZh,i0h,t0h,F0h,k1h,v1h,a2h,l2h,w2h,b3h,m3h,x3h,c4h,o4h,z4h,e5h,p5h,A5h,f6h,q6h,B6h,g7h,r7h,Cqg])} +function dYi(d,a){var b,c;c=d.g+1;if(c>d.f.length){b=e9h(A_h,42,-1,c,1);Afi(d.f,0,b,0,d.g);d.f=b}d.f[d.g]=a;d.g=c} +function eYi(c,a){var b;FUi(a,c,c.u);if(c.j>=1){b=c.y[1];if(b.b==3){lmi(c,b.d,a)}}} +function fYi(u,m){var a,b,c,d,e,f,g,h,i,j,k,l,n,o,p,q;qZi(u);for(;;){f=u.s;while(f>-1){l=u.r[f];if(!l){f=-1;break}else if(l.c==m){break}--f}if(f==-1){return}e=u.r[f];g=u.j;j=true;while(g>-1){o=u.y[g];if(o==e){break}else if(o.h){j=false}--g}if(g==-1){b0i(u,f);return}if(!j){return}i=g+1;while(i<=u.j){o=u.y[i];if(o.h||o.i){break}++i}if(i>u.j){while(u.j>=g){DZi(u)}b0i(u,f);return}c=u.y[g-1];h=u.y[i];a=f;q=i;k=h;for(;;){--q;o=u.y[q];p=hZi(u,o);if(p==-1){c0i(u,q);--i;continue}if(q==g){break}if(q==i){a=p+1}b=Bmi(u,o.d);n=CVi(new AVi(),o.b,o.e,o.c,b,o.h,o.i,o.a,o.f);u.y[q]=n;++n.g;u.r[p]=n;--o.g;--o.g;o=n;vmi(u,k.d);qmi(u,k.d,o.d);k=o}if(c.a){vmi(u,k.d);vZi(u,k.d)}else{vmi(u,k.d);qmi(u,k.d,c.d)}b=Bmi(u,e.d);d=CVi(new AVi(),e.b,e.e,e.c,b,e.h,e.i,e.a,e.f);nmi(u,h.d,b);qmi(u,b,h.d);b0i(u,f);wZi(u,d,a);c0i(u,g);xZi(u,d,i)}} +function uYi(c,b){var a;++c.s;if(c.s==c.r.length){a=e9h(aai,51,11,c.r.length+64,0);Afi(c.r,0,a,0,c.r.length);c.r=a}c.r[c.s]=b} +function gYi(d,a){var b,c;FUi(a,d,d.u);b=umi(d,a);c=DVi(new AVi(),hrg,(xHi(),hNi),b);FZi(d,c)} +function mYi(f,e,b,a){var c,d;qZi(f);FUi(a,f,f.u);c=smi(f,e,b.e,a);qmi(f,c,f.y[f.j].d);d=DVi(new AVi(),e,b,c);FZi(f,d)} +function kYi(h,f,c,a){var b,d,e,g;qZi(h);g=c.e;FUi(a,h,h.u);if(c.b){g=yYi(h,g)}d=smi(h,f,g,a);b=h.y[h.j];if(b.a){vZi(h,d)}else{qmi(h,d,b.d)}e=EVi(new AVi(),f,c,d,g);FZi(h,e)} +function lYi(g,f,c,a){var b,d,e;qZi(g);FUi(a,g,g.u);d=tmi(g,f,c.e,a);b=g.y[g.j];if(b.a){vZi(g,d)}else{qmi(g,d,b.d)}e=DVi(new AVi(),f,c,d);FZi(g,e)} +function iYi(h,f,c,a){var b,d,e,g;qZi(h);g=c.a;FUi(a,h,h.u);if(c.b){g=yYi(h,g)}d=smi(h,f,g,a);b=h.y[h.j];if(b.a){vZi(h,d)}else{qmi(h,d,b.d)}e=FVi(new AVi(),f,c,d,g,(xHi(),rMi)==c);FZi(h,e)} +function jYi(h,f,c,a){var b,d,e,g;qZi(h);g=c.e;FUi(a,h,h.u);if(c.b){g=yYi(h,g)}d=smi(h,f,g,a);b=h.y[h.j];if(b.a){vZi(h,d)}else{qmi(h,d,b.d)}e=FVi(new AVi(),f,c,d,g,false);FZi(h,e)} +function nYi(e,a){var b,c,d;qZi(e);FUi(a,e,e.u);c=smi(e,hrg,srg,a);e.m=c;b=e.y[e.j];if(b.a){vZi(e,c)}else{qmi(e,c,b.d)}d=DVi(new AVi(),hrg,(xHi(),sMi),c);FZi(e,d)} +function oYi(g,f,c,a){var b,d,e;qZi(g);FUi(a,g,g.u);d=smi(g,f,c.e,a);b=g.y[g.j];if(b.a){vZi(g,d)}else{qmi(g,d,b.d)}e=DVi(new AVi(),f,c,d);FZi(g,e);uYi(g,e);++e.g} +function pYi(d,a){var b,c;qZi(d);FUi(a,d,d.u);b=smi(d,hrg,Drg,a);qmi(d,b,d.y[d.j].d);d.o=b;c=DVi(new AVi(),hrg,(xHi(),dNi),b);FZi(d,c)} +function rYi(f,e,d,a){var b,c;qZi(f);FUi(a,f,f.u);c=tmi(f,e,d,a);b=f.y[f.j];if(b.a){vZi(f,c)}else{qmi(f,c,b.d)}wmi(f,c)} +function sYi(g,e,c,a){var b,d,f;qZi(g);f=c.e;FUi(a,g,g.u);if(c.b){f=yYi(g,f)}d=smi(g,e,f,a);b=g.y[g.j];if(b.a){vZi(g,d)}else{qmi(g,d,b.d)}wmi(g,d)} +function qYi(g,e,c,a){var b,d,f;qZi(g);f=c.a;FUi(a,g,g.u);if(c.b){f=yYi(g,f)}d=smi(g,e,f,a);b=g.y[g.j];if(b.a){vZi(g,d)}else{qmi(g,d,b.d)}wmi(g,d)} +function vYi(b){var a;for(a=0;a<b.g;++a){switch(b.f[a]){case 32:case 9:case 10:case 12:continue;default:return true;}}return false} +function wYi(p,a,o,e){var c,d;if(p.v){if(a[o]==10){++o;--e;if(e==0){return}}p.v=false}switch(p.t){case 6:case 12:case 8:a0i(p);case 20:qHi(p,a,o,e);return;default:c=o+e;b:for(d=o;d<c;++d){switch(a[d]){case 32:case 9:case 10:case 12:switch(p.t){case 0:case 1:case 2:o=d+1;continue;case 21:case 3:case 4:case 5:case 9:case 16:case 17:continue;case 6:case 12:case 8:if(o<d){qHi(p,a,o,d-o);o=d}a0i(p);break b;case 7:case 10:case 11:a0i(p);dYi(p,a[d]);o=d+1;continue;case 15:if(o<d){qHi(p,a,o,d-o);o=d}a0i(p);continue;case 18:case 19:if(o<d){qHi(p,a,o,d-o);o=d}a0i(p);continue;}default:switch(p.t){case 0:FYi(p,(xli(),zli));p.t=1;--d;continue;case 1:gYi(p,zWi(p.z));p.t=2;--d;continue;case 2:if(o<d){qHi(p,a,o,d-o);o=d}pYi(p,(xUi(),bVi));p.t=3;--d;continue;case 3:if(o<d){qHi(p,a,o,d-o);o=d}DZi(p);p.t=5;--d;continue;case 4:if(o<d){qHi(p,a,o,d-o);o=d}DZi(p);p.t=3;--d;continue;case 5:if(o<d){qHi(p,a,o,d-o);o=d}mYi(p,hrg,(xHi(),dJi),zWi(p.z));p.t=21;--d;continue;case 21:p.t=6;--d;continue;case 6:case 12:case 8:if(o<d){qHi(p,a,o,d-o);o=d}a0i(p);break b;case 7:case 10:case 11:a0i(p);dYi(p,a[d]);o=d+1;continue;case 9:if(o<d){qHi(p,a,o,d-o);o=d}if(p.j==0){o=d+1;continue}DZi(p);p.t=7;--d;continue;break b;case 15:p.t=6;--d;continue;case 16:if(o<d){qHi(p,a,o,d-o);o=d}o=d+1;continue;case 17:if(o<d){qHi(p,a,o,d-o);o=d}o=d+1;continue;case 18:p.t=6;--d;continue;case 19:p.t=16;--d;continue;}}}if(o<c){qHi(p,a,o,c-o)}}} +function xYi(e,a){var b,c,d;b=EUi(a,(loi(),osi));d=null;if(b!=null){d=m0i(b)}if(d==null){c=EUi(a,qri);if(c!=null){e.z.jb=true}}else{e.z.jb=true}} +function yYi(b,a){if(pVi(a)){return a}else{switch(b.u.b){case 0:return a;case 2:return mVi(a);case 1:fZi(b,isg+a+tsg);}}return null} +function zYi(e,a){while(e.j>a){DZi(e)}} +function AYi(a){while(a.s>-1){if(!a.r[a.s]){--a.s;return}--a.r[a.s].g;--a.s}} +function CYi(e,a){sZi(e);while(e.j>=a){DZi(e)}AYi(e);e.t=11;return} +function DYi(h,a,g,f){var c,d,e;h.v=false;if(!h.A){return}b:for(;;){switch(h.l){case 0:break b;default:switch(h.t){case 0:case 1:case 18:case 19:omi(h,(c=g+f,mfi(a.length,g,c),ofi(a,g,c)));return;case 15:qZi(h);pmi(h,h.y[0].d,(d=g+f,mfi(a.length,g,d),ofi(a,g,d)));return;default:break b;}}}qZi(h);pmi(h,h.y[h.j].d,(e=g+f,mfi(a.length,g,e),ofi(a,g,e)));return} +function EYi(f,c,d,e,b){f.v=false;a:for(;;){switch(f.l){case 0:break a;default:switch(f.t){case 0:switch(f.k.b){case 0:if(BZi(c,d,e,b)){FYi(f,(xli(),zli))}else if(yZi(d,e)){FYi(f,(xli(),yli))}else{if(efi(zNh,d)&&(e==null||efi(Esg,e))||efi(AOh,d)&&(e==null||efi(jtg,e))||efi(utg,d)&&efi(Ftg,e)||efi(lug,d)&&efi(wug,e)){}else !((e==null||efi(bvg,e))&&d==null);FYi(f,(xli(),Ali))}break;case 2:f.p=true;f.z.A=true;if(BZi(c,d,e,b)){FYi(f,(xli(),zli))}else if(yZi(d,e)){FYi(f,(xli(),yli))}else{if(efi(AOh,d)){!efi(jtg,e)}else{}FYi(f,(xli(),Ali))}break;case 1:f.p=true;f.z.A=true;if(BZi(c,d,e,b)){FYi(f,(xli(),zli))}else if(yZi(d,e)){if(efi(pOh,d)&&e!=null){!efi(mvg,e)}else{}FYi(f,(xli(),yli))}else{FYi(f,(xli(),Ali))}break;case 3:f.p=zZi(d);if(f.p){f.z.A=true}if(BZi(c,d,e,b)){FYi(f,(xli(),zli))}else if(yZi(d,e)){if(efi(pOh,d)){!efi(mvg,e)}else{}FYi(f,(xli(),yli))}else{if(efi(AOh,d)){!efi(jtg,e)}else{}FYi(f,(xli(),Ali))}break;case 4:if(BZi(c,d,e,b)){FYi(f,(xli(),zli))}else if(yZi(d,e)){FYi(f,(xli(),yli))}else{FYi(f,(xli(),Ali))}}f.t=1;return;default:break a;}}}return} +function FYi(b,a){b.x=a==(xli(),zli)} +function aZi(e){var a;a=mZi(e,xvg);if(a==2147483647){return}while(e.j>=a){DZi(e)}e0i(e)} +function bZi(ad,a){var b,d,e,f;ad.v=false;c:for(;;){d=a.d;e=a.e;switch(ad.t){case 11:switch(d){case 37:b=nZi(ad,37);if(b==0){break c}zYi(ad,b);DZi(ad);ad.t=10;break c;case 34:b=nZi(ad,37);if(b==0){break c}zYi(ad,b);DZi(ad);ad.t=10;continue;case 39:if(mZi(ad,e)==2147483647){break c}b=nZi(ad,37);if(b==0){break c}zYi(ad,b);DZi(ad);ad.t=10;continue;break c;}case 10:switch(d){case 39:b=oZi(ad,e);if(b==0){break c}zYi(ad,b);DZi(ad);ad.t=7;break c;case 34:b=kZi(ad);if(b==0){break c}zYi(ad,b);DZi(ad);ad.t=7;continue;break c;}case 7:switch(d){case 34:b=pZi(ad,cwg);if(b==2147483647){break c}while(ad.j>=b){DZi(ad)}e0i(ad);break c;}case 8:switch(d){case 6:b=mZi(ad,nwg);if(b==2147483647){break c}sZi(ad);while(ad.j>=b){DZi(ad)}AYi(ad);ad.t=7;break c;case 34:b=mZi(ad,nwg);if(b==2147483647){break c}sZi(ad);while(ad.j>=b){DZi(ad)}AYi(ad);ad.t=7;continue;break c;}case 12:switch(d){case 40:b=mZi(ad,e);if(b==2147483647){break c}sZi(ad);while(ad.j>=b){DZi(ad)}AYi(ad);ad.t=11;break c;case 34:case 39:case 37:if(mZi(ad,e)==2147483647){break c}CYi(ad,lZi(ad));continue;break c;}case 21:case 6:switch(d){case 3:if(!(ad.j>=1&&ad.y[1].b==3)){break c}ad.t=15;break c;case 23:if(!(ad.j>=1&&ad.y[1].b==3)){break c}ad.t=15;continue;case 50:case 46:case 44:case 61:case 51:b=jZi(ad,e);if(b==2147483647){}else{sZi(ad);while(ad.j>=b){DZi(ad)}}break c;case 9:if(!ad.m){break c}ad.m=null;b=jZi(ad,e);if(b==2147483647){break c}sZi(ad);c0i(ad,b);break c;case 29:b=jZi(ad,ywg);if(b==2147483647){if(ad.l==0){while(ad.y[ad.j].e!=hrg){DZi(ad)}ad.l=1}sYi(ad,hrg,a,(xUi(),bVi));break c}rZi(ad,ywg);while(ad.j>=b){DZi(ad)}break c;case 41:case 15:b=jZi(ad,e);if(b==2147483647){}else{rZi(ad,e);while(ad.j>=b){DZi(ad)}}break c;case 42:b=iZi(ad);if(b==2147483647){}else{sZi(ad);while(ad.j>=b){DZi(ad)}}break c;case 1:case 45:case 64:case 24:fYi(ad,e);break c;case 5:case 63:case 43:b=jZi(ad,e);if(b==2147483647){}else{sZi(ad);while(ad.j>=b){DZi(ad)}AYi(ad)}break c;case 4:if(ad.l==0){while(ad.y[ad.j].e!=hrg){DZi(ad)}ad.l=1}a0i(ad);sYi(ad,hrg,a,(xUi(),bVi));break c;case 49:case 55:case 48:case 12:case 13:case 65:case 22:case 14:case 47:case 60:case 25:case 32:case 34:case 35:break c;case 26:default:if(e==ad.y[ad.j].c){DZi(ad);break c}b=ad.j;for(;;){f=ad.y[b];if(f.c==e){sZi(ad);while(ad.j>=b){DZi(ad)}break c}else if(f.h||f.i){break c}--b}}case 9:switch(d){case 8:if(ad.j==0){break c}DZi(ad);ad.t=7;break c;case 7:break c;default:if(ad.j==0){break c}DZi(ad);ad.t=7;continue;}case 14:switch(d){case 6:case 34:case 39:case 37:case 40:if(mZi(ad,e)!=2147483647){aZi(ad);continue}else{break c}}case 13:switch(d){case 28:if(dxg==ad.y[ad.j].c){DZi(ad);break c}else{break c}case 27:if(dxg==ad.y[ad.j].c&&oxg==ad.y[ad.j-1].c){DZi(ad)}if(oxg==ad.y[ad.j].c){DZi(ad)}else{}break c;case 32:aZi(ad);break c;default:break c;}case 15:switch(d){case 23:if(ad.n){break c}else{ad.t=18;break c}default:ad.t=6;continue;}case 16:switch(d){case 11:if(ad.j==0){break c}DZi(ad);if(!ad.n&&Axg!=ad.y[ad.j].c){ad.t=17}break c;default:break c;}case 17:switch(d){case 23:ad.t=19;break c;default:break c;}case 0:FYi(ad,(xli(),zli));ad.t=1;continue;case 1:gYi(ad,zWi(ad.z));ad.t=2;continue;case 2:switch(d){case 20:case 4:case 23:case 3:pYi(ad,(xUi(),bVi));ad.t=3;continue;default:break c;}case 3:switch(d){case 20:DZi(ad);ad.t=5;break c;case 4:case 23:case 3:DZi(ad);ad.t=5;continue;default:break c;}case 4:switch(d){case 26:DZi(ad);ad.t=3;break c;case 4:DZi(ad);ad.t=3;continue;default:break c;}case 5:switch(d){case 23:case 3:case 4:mYi(ad,hrg,(xHi(),dJi),zWi(ad.z));ad.t=21;continue;default:break c;}case 18:ad.t=6;continue;case 19:ad.t=16;continue;case 20:if(ad.w==5){DZi(ad)}DZi(ad);ad.t=ad.w;break c;}}if(ad.l==0&&!tZi(ad)){ad.l=1}} +function cZi(a){a.m=null;a.o=null;while(a.j>-1){--a.y[a.j].g;--a.j}a.y=null;while(a.s>-1){if(a.r[a.s]){--a.r[a.s].g}--a.s}a.r=null;mhi(a.q);a.f=null} +function dZi(C){var b,c;qZi(C);switch(C.l){case 0:while(C.y[C.j].e!=hrg){CZi(C)}C.l=1;}a:for(;;){switch(C.t){case 0:FYi(C,(xli(),zli));C.t=1;continue;case 1:gYi(C,zWi(C.z));C.t=2;continue;case 2:pYi(C,(xUi(),bVi));C.t=3;continue;case 3:while(C.j>0){CZi(C)}C.t=5;continue;case 4:while(C.j>1){CZi(C)}C.t=3;continue;case 5:mYi(C,hrg,(xHi(),dJi),zWi(C.z));C.t=6;continue;case 9:if(C.j==0){break a}else{CZi(C);C.t=7;continue}case 21:case 8:case 12:case 6:B:for(c=C.j;c>=0;--c){b=C.y[c].b;switch(b){case 41:case 15:case 29:case 39:case 40:case 3:case 23:break;default:break B;}}break a;case 20:if(C.w==5){CZi(C)}CZi(C);C.t=C.w;continue;case 10:case 11:case 7:case 13:case 14:case 16:break a;case 15:case 17:case 18:case 19:default:if(C.j==0){sai((new Date()).getTime())}break a;}}while(C.j>0){CZi(C)}if(!C.n){CZi(C)}} +function eZi(c,a){var b;b=a1i(new E0i(),a.b,c.z,a);throw b} +function fZi(c,a){var b;b=F0i(new E0i(),a,c.z);throw b} +function hZi(c,b){var a;for(a=c.s;a>=0;--a){if(b==c.r[a]){return a}}return -1} +function gZi(d,b){var a,c;for(a=d.s;a>=0;--a){c=d.r[a];if(!c){return -1}else if(c.c==b){return a}}return -1} +function pZi(c,b){var a;for(a=c.j;a>0;--a){if(c.y[a].c==b){return a}}return 2147483647} +function jZi(c,b){var a;for(a=c.j;a>0;--a){if(c.y[a].c==b){return a}else if(c.y[a].h){return 2147483647}}return 2147483647} +function iZi(b){var a;for(a=b.j;a>0;--a){if(b.y[a].b==42){return a}else if(b.y[a].h){return 2147483647}}return 2147483647} +function mZi(c,b){var a;for(a=c.j;a>0;--a){if(c.y[a].c==b){return a}else if(c.y[a].c==cwg){return 2147483647}}return 2147483647} +function kZi(b){var a;for(a=b.j;a>0;--a){if(b.y[a].b==39){return a}}return 0} +function lZi(c){var a,b;for(a=c.j;a>0;--a){b=c.y[a].c;if(fyg==b||qyg==b){return a}else if(b==cwg){return 2147483647}}return 2147483647} +function oZi(c,b){var a;for(a=c.j;a>0;--a){if(c.y[a].c==b){return a}}return 0} +function nZi(c,a){var b;for(b=c.j;b>0;--b){if(c.y[b].b==a){return b}}return 0} +function qZi(e){var a,b,c,d;if(e.g>0){a=e.y[e.j];if(a.a&&vYi(e)){c=nZi(e,34);d=e.y[c];b=d.d;if(c==0){mmi(e,b,xfi(e.f,0,e.g));e.g=0;return}sHi(e,e.f,0,e.g,b,e.y[c-1].d);e.g=0;return}mmi(e,e.y[e.j].d,xfi(e.f,0,e.g));e.g=0}} +function sZi(d){for(;;){switch(d.y[d.j].b){case 29:case 15:case 41:case 28:case 27:case 53:DZi(d);continue;default:return;}}} +function rZi(f,a){var b;for(;;){b=f.y[f.j];switch(b.b){case 29:case 15:case 41:case 28:case 27:case 53:if(b.c==a){return}DZi(f);continue;default:return;}}} +function tZi(b){var a;for(a=b.j;a>0;--a){if(b.y[a].e!=hrg){return true}else if(b.y[a].h){return false}}return false} +function uZi(e){var a;a=jZi(e,ywg);if(a==2147483647){return}rZi(e,ywg);while(e.j>=a){DZi(e)}} +function vZi(e,a){var b,c,d;c=nZi(e,34);d=e.y[c];b=d.d;if(c==0){qmi(e,a,b);return}zmi(e,a,b,e.y[c-1].d)} +function wZi(c,b,a){++b.g;if(a<=c.s){Afi(c.r,a,c.r,a+1,c.s-a+1)}++c.s;c.r[a]=b} +function xZi(c,a,b){if(b==c.j+1){qZi(c);FZi(c,a)}else{Afi(c.y,b,c.y,b+1,c.j-b+1);++c.j;c.y[b]=a}} +function yZi(a,b){if(yVi(Byg,a)){return true}if(yVi(gzg,a)){return true}if(b!=null){if(yVi(rzg,a)){return true}if(yVi(Czg,a)){return true}}return false} +function zZi(a){if(a!=null&&xji(j0i,a,(Eji(),Fji))>-1){return true}return false} +function AZi(c,b){var a;for(a=c.j;a>=0;--a){if(c.y[a]==b){return true}}return false} +function BZi(c,d,e,a){var b;if(a){return true}if(c!=hAg){return true}if(d!=null){for(b=0;b<l0i.length;++b){if(zVi(l0i[b],d)){return true}}if(yVi(sAg,d)||yVi(DAg,d)||yVi(hAg,d)){return true}}if(e==null){if(yVi(rzg,d)){return true}else if(yVi(Czg,d)){return true}}else if(yVi(jBg,e)){return true}return false} +function DZi(b){var a;qZi(b);a=b.y[b.j];--b.j;wmi(b,a.d);--a.g} +function CZi(b){var a;qZi(b);a=b.y[b.j];--b.j;wmi(b,a.d);--a.g} +function FZi(c,b){var a;++c.j;if(c.j==c.y.length){a=e9h(aai,51,11,c.y.length+64,0);Afi(c.y,0,a,0,c.y.length);c.y=a}c.y[c.j]=b} +function EZi(a){qZi(a);if(!a.o){FZi(a,a.y[a.j])}else{FZi(a,DVi(new AVi(),hrg,(xHi(),dNi),a.o))}} +function a0i(g){var a,b,c,d,e,f;if(g.s==-1){return}f=g.r[g.s];if(!f||AZi(g,f)){return}e=g.s;for(;;){--e;if(e==-1){break}if(!g.r[e]){break}if(AZi(g,g.r[e])){break}}if(e<g.s){qZi(g)}while(e<g.s){++e;c=g.r[e];a=Bmi(g,c.d);d=CVi(new AVi(),c.b,c.e,c.c,a,c.h,c.i,c.a,c.f);b=g.y[g.j];if(b.a){vZi(g,a)}else{qmi(g,a,b.d)}FZi(g,d);g.r[e]=d;--c.g;++d.g}} +function b0i(b,a){--b.r[a].g;if(a==b.s){--b.s;return}Afi(b.r,a+1,b.r,a,b.s-a);--b.s} +function c0i(e,d){if(e.j==d){DZi(e)}else{--e.y[d].g;Afi(e.y,d+1,e.y,d,e.j-d);--e.j}} +function d0i(f,a){var e;if(f.y[f.j]==a){DZi(f)}else{e=f.j-1;while(e>=0&&f.y[e]!=a){--e}if(e==-1){return}--a.g;Afi(f.y,e+1,f.y,e,f.j-e);--f.j}} +function e0i(d){var a,b,c;d.l=1;for(a=d.j;a>=0;--a){c=d.y[a];b=c.c;if(a==0){if(d.i==hrg&&(d.h==fyg||d.h==qyg)){d.t=6;return}else{b=d.h}}if(xvg==b){d.t=13;return}else if(fyg==b||qyg==b){d.t=12;return}else if(uBg==b){d.t=11;return}else if(FBg==b||kCg==b||vCg==b){d.t=10;return}else if(nwg==b){d.t=8;return}else if(aDg==b){d.t=9;return}else if(cwg==b){d.t=7;return}else if(hrg!=c.e){d.l=0;d.t=6;return}else if(Drg==b){d.t=6;return}else if(lDg==b){d.t=6;return}else if(Axg==b){d.t=16;return}else if(hAg==b){if(!d.o){d.t=2}else{d.t=5}return}else if(a==0){d.t=6;return}}} +function f0i(b,a){b.h=a;b.i=hrg;b.n=false;b.x=false} +function h0i(wg,i,e,ug){var a,b,c,d,f,g,h,j,k,l,m,p,r,s,t,sg,tg,ae,be;wg.v=false;s=false;vg:for(;;){l=i.d;r=i.e;switch(wg.l){case 0:h=wg.y[wg.j];g=h.e;f=h.b;if(hrg==g||wDg==g&&(56!=l&&57==f||19==l&&58==f)||bEg==g&&(36==f||59==f)){s=true}else{switch(l){case 45:case 50:case 3:case 4:case 52:case 41:case 46:case 48:case 42:case 20:case 22:case 15:case 18:case 24:case 29:case 44:case 34:while(wg.y[wg.j].e!=hrg){DZi(wg)}wg.l=1;continue vg;case 64:if(yUi(e,(loi(),asi))||yUi(e,Bti)||yUi(e,oDi)){while(wg.y[wg.j].e!=hrg){DZi(wg)}wg.l=1;continue vg}default:if(bEg==g){e.b=2;if(ug){qYi(wg,g,i,e);ug=false}else{iYi(wg,g,i,e)}break vg}else{e.b=1;if(ug){sYi(wg,g,i,e);ug=false}else{jYi(wg,g,i,e)}break vg}}}default:switch(wg.t){case 10:switch(l){case 37:zYi(wg,kZi(wg));mYi(wg,hrg,i,e);wg.t=11;break vg;case 40:zYi(wg,kZi(wg));mYi(wg,hrg,(xHi(),mTi),(xUi(),bVi));wg.t=11;continue;case 6:case 7:case 8:case 39:j=kZi(wg);if(j==0){break vg}else{zYi(wg,j);DZi(wg);wg.t=7;continue}}case 11:switch(l){case 40:zYi(wg,nZi(wg,37));mYi(wg,hrg,i,e);wg.t=12;uYi(wg,null);break vg;case 6:case 7:case 8:case 39:case 37:j=nZi(wg,37);if(j==0){break vg}zYi(wg,j);DZi(wg);wg.t=10;continue;}case 7:q:for(;;){switch(l){case 6:zYi(wg,nZi(wg,34));uYi(wg,null);mYi(wg,hrg,i,e);wg.t=8;break vg;case 8:zYi(wg,nZi(wg,34));mYi(wg,hrg,i,e);wg.t=9;break vg;case 7:zYi(wg,nZi(wg,34));mYi(wg,hrg,(xHi(),vJi),(xUi(),bVi));wg.t=9;continue vg;case 39:zYi(wg,nZi(wg,34));mYi(wg,hrg,i,e);wg.t=10;break vg;case 37:case 40:zYi(wg,nZi(wg,34));mYi(wg,hrg,(xHi(),FSi),(xUi(),bVi));wg.t=10;continue vg;case 34:j=mZi(wg,r);if(j==2147483647){break vg}sZi(wg);while(wg.j>=j){DZi(wg)}e0i(wg);continue vg;case 31:case 33:mYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;case 13:if(!yVi(mEg,EUi(e,(loi(),gFi)))){break q}qZi(wg);FUi(e,wg,wg.u);be=tmi(wg,hrg,r,e);ae=wg.y[wg.j];qmi(wg,be,ae.d);wmi(wg,be);ug=false;break vg;default:break q;}}case 8:switch(l){case 6:case 7:case 8:case 39:case 37:case 40:j=mZi(wg,nwg);if(j==2147483647){break vg}sZi(wg);while(wg.j>=j){DZi(wg)}AYi(wg);wg.t=7;continue;}case 12:switch(l){case 6:case 7:case 8:case 39:case 37:case 40:j=lZi(wg);if(j==2147483647){break vg}else{CYi(wg,j);continue}}case 21:switch(l){case 11:if(wg.t==21){if(wg.j==0||wg.y[1].b!=3){break vg}else{vmi(wg,wg.y[1].d);while(wg.j>0){DZi(wg)}mYi(wg,hrg,i,e);wg.t=16;break vg}}else{break vg}case 44:case 15:case 41:case 5:case 43:case 63:case 34:case 49:case 4:case 48:case 13:case 65:case 22:case 35:case 38:case 47:case 32:if(wg.t==21){wg.t=6}}case 6:n:for(;;){switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;case 2:case 16:case 18:case 33:case 31:case 36:case 54:break n;case 3:eYi(wg,e);break vg;case 29:case 50:case 46:case 51:uZi(wg);kYi(wg,hrg,i,e);break vg;case 42:uZi(wg);if(wg.y[wg.j].b==42){DZi(wg)}kYi(wg,hrg,i,e);break vg;case 61:uZi(wg);lYi(wg,hrg,i,e);break vg;case 44:uZi(wg);kYi(wg,hrg,i,e);wg.v=true;break vg;case 9:if(wg.m){break vg}else{uZi(wg);nYi(wg,e);break vg}case 15:case 41:j=wg.j;for(;;){t=wg.y[j];if(t.b==l){rZi(wg,t.c);while(wg.j>=j){DZi(wg)}break}else if(t.h||t.i&&t.c!=ywg&&t.c!=yEg&&t.c!=dFg){break}--j}uZi(wg);kYi(wg,hrg,i,e);break vg;case 30:uZi(wg);kYi(wg,hrg,i,e);dXi(wg.z,3,i);break vg;case 1:c=gZi(wg,oFg);if(c!=-1){b=wg.r[c];++b.g;fYi(wg,oFg);d0i(wg,b);c=hZi(wg,b);if(c!=-1){b0i(wg,c)}--b.g}a0i(wg);oYi(wg,hrg,i,e);break vg;case 45:case 64:a0i(wg);oYi(wg,hrg,i,e);break vg;case 24:a0i(wg);if(2147483647!=jZi(wg,zFg)){fYi(wg,zFg)}oYi(wg,hrg,i,e);break vg;case 5:j=jZi(wg,r);if(j!=2147483647){sZi(wg);while(wg.j>=j){DZi(wg)}AYi(wg);continue vg}else{a0i(wg);lYi(wg,hrg,i,e);uYi(wg,null);break vg}case 63:a0i(wg);lYi(wg,hrg,i,e);uYi(wg,null);break vg;case 43:a0i(wg);kYi(wg,hrg,i,e);uYi(wg,null);break vg;case 38:a0i(wg);kYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;case 34:if(!wg.x){uZi(wg)}kYi(wg,hrg,i,e);wg.t=7;break vg;case 4:case 48:case 49:a0i(wg);case 55:sYi(wg,hrg,i,e);ug=false;break vg;case 22:uZi(wg);sYi(wg,hrg,i,e);ug=false;break vg;case 12:i=(xHi(),oNi);continue vg;case 65:case 13:a0i(wg);rYi(wg,hrg,r,e);ug=false;break vg;case 14:if(wg.m){break vg}uZi(wg);k=tUi(new sUi(),0);a=AUi(e,(loi(),Aoi));if(a>-1){uUi(k,Aoi,DUi(e,a),(Fli(),ami))}nYi(wg,k);sYi(wg,hrg,(xHi(),gNi),(xUi(),bVi));kYi(wg,hrg,BQi,bVi);kYi(wg,hrg,CNi,bVi);tg=AUi(e,xBi);if(tg>-1){sg=lfi(DUi(e,tg));mmi(wg,wg.y[wg.j].d,xfi(sg,0,sg.length))}else{mmi(wg,wg.y[wg.j].d,xfi(k0i,0,k0i.length))}p=tUi(new sUi(),0);uUi(p,zxi,eGg,(Fli(),ami));for(m=0;m<e.a;++m){d=zUi(e,m);if(zxi==d||xBi==d){}else if(Aoi!=d){uUi(p,d,DUi(e,m),ami)}}vUi(e);rYi(wg,hrg,pGg,p);DZi(wg);DZi(wg);sYi(wg,hrg,gNi,bVi);DZi(wg);ug=false;break vg;case 35:lYi(wg,hrg,i,e);dXi(wg.z,1,i);wg.w=wg.t;wg.t=20;wg.v=true;break vg;case 26:{a0i(wg);kYi(wg,hrg,i,e);break vg}case 25:case 47:case 60:kYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;case 32:a0i(wg);lYi(wg,hrg,i,e);switch(wg.t){case 7:case 8:case 9:case 10:case 11:case 12:wg.t=14;break;default:wg.t=13;}break vg;case 27:case 28:if(jZi(wg,dxg)!=2147483647){rg:for(;;){if(dxg==wg.y[wg.j].c){DZi(wg);break rg}j=wg.j;for(;;){if(wg.y[j].c==dxg){sZi(wg);while(wg.j>=j){DZi(wg)}break rg}--j}}}a0i(wg);kYi(wg,hrg,i,e);break vg;case 53:j=jZi(wg,AGg);if(j!=2147483647){sZi(wg)}if(j!=wg.j){while(wg.j>j){DZi(wg)}}kYi(wg,hrg,i,e);break vg;case 17:a0i(wg);e.b=1;if(ug){sYi(wg,wDg,i,e);ug=false}else{kYi(wg,wDg,i,e);wg.l=0}break vg;case 19:a0i(wg);e.b=2;if(ug){qYi(wg,bEg,i,e);ug=false}else{kYi(wg,bEg,i,e);wg.l=0}break vg;case 6:case 7:case 8:case 39:case 37:case 40:case 10:case 11:case 20:break vg;case 62:a0i(wg);lYi(wg,hrg,i,e);break vg;default:a0i(wg);kYi(wg,hrg,i,e);break vg;}}case 3:o:for(;;){switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;case 2:case 54:sYi(wg,hrg,i,e);ug=false;break vg;case 18:case 16:break o;case 36:kYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,1,i);break vg;case 26:{kYi(wg,hrg,i,e);wg.t=4}break vg;case 31:case 33:case 25:kYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;case 20:break vg;default:DZi(wg);wg.t=5;continue vg;}}case 4:switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;case 16:sYi(wg,hrg,i,e);ug=false;break vg;case 18:xYi(wg,e);sYi(wg,hrg,i,e);ug=false;break vg;case 33:case 25:mYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;case 20:break vg;case 26:break vg;default:DZi(wg);wg.t=3;continue;}case 9:switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;case 7:sYi(wg,hrg,i,e);ug=false;break vg;default:if(wg.j==0){break vg}DZi(wg);wg.t=7;continue;}case 14:switch(l){case 6:case 39:case 37:case 40:case 34:aZi(wg);continue;}case 13:switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;case 28:if(dxg==wg.y[wg.j].c){DZi(wg)}mYi(wg,hrg,i,e);break vg;case 27:if(dxg==wg.y[wg.j].c){DZi(wg)}if(oxg==wg.y[wg.j].c){DZi(wg)}mYi(wg,hrg,i,e);break vg;case 32:j=mZi(wg,r);if(j==2147483647){break vg}else{while(wg.j>=j){DZi(wg)}e0i(wg);break vg}case 13:case 35:aZi(wg);continue;case 31:kYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;default:break vg;}case 15:switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;default:wg.t=6;continue;}case 16:switch(l){case 11:mYi(wg,hrg,i,e);break vg;case 10:sYi(wg,hrg,i,e);ug=false;break vg;}case 17:switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;case 25:mYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;default:break vg;}case 0:FYi(wg,(xli(),zli));wg.t=1;continue;case 1:switch(l){case 23:if(e==(xUi(),bVi)){gYi(wg,zWi(wg.z))}else{gYi(wg,e)}wg.t=2;break vg;default:gYi(wg,zWi(wg.z));wg.t=2;continue;}case 2:switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;case 20:pYi(wg,e);wg.t=3;break vg;default:pYi(wg,(xUi(),bVi));wg.t=3;continue;}case 5:switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;case 3:if(e.a==0){mYi(wg,hrg,(xHi(),dJi),zWi(wg.z))}else{mYi(wg,hrg,(xHi(),dJi),e)}wg.t=21;break vg;case 11:mYi(wg,hrg,i,e);wg.t=16;break vg;case 2:EZi(wg);sYi(wg,hrg,i,e);ug=false;DZi(wg);break vg;case 16:EZi(wg);sYi(wg,hrg,i,e);ug=false;DZi(wg);break vg;case 18:xYi(wg,e);EZi(wg);sYi(wg,hrg,i,e);ug=false;DZi(wg);break vg;case 31:EZi(wg);mYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;case 33:case 25:EZi(wg);mYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;case 36:EZi(wg);mYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,1,i);break vg;case 20:break vg;default:mYi(wg,hrg,(xHi(),dJi),zWi(wg.z));wg.t=21;continue;}case 18:switch(l){case 23:FUi(e,wg,wg.u);lmi(wg,wg.y[0].d,e);break vg;default:wg.t=6;continue;}case 19:switch(l){case 25:kYi(wg,hrg,i,e);wg.w=wg.t;wg.t=20;dXi(wg.z,2,i);break vg;default:break vg;}}}}if(s&&wg.l==0&&!tZi(wg)){wg.l=1}} +function i0i(d,c){var a,b;d.z=c;d.y=e9h(aai,51,11,64,0);d.r=e9h(aai,51,11,64,0);d.v=false;d.w=0;d.j=-1;d.s=-1;d.m=null;d.o=null;d.p=false;mhi(d.q);d.A=d.A;d.d=null;d.b=null;d.c=false;d.g=0;d.f=e9h(A_h,42,-1,1024,1);if(d.n){a=umi(d,zWi(d.z));b=DVi(new AVi(),hrg,(xHi(),hNi),a);++d.j;d.y[d.j]=b;e0i(d);if(fHg==d.h||qHg==d.h){cXi(d.z,1)}else if(BHg==d.h||hIg==d.h||sIg==d.h||DIg==d.h||iJg==d.h||tJg==d.h){cXi(d.z,2)}else if(EJg==d.h){cXi(d.z,3)}else{cXi(d.z,0)}d.h=null}else{d.t=0;d.l=1}} +function m0i(a){var b,c,d,e,g,h,o;e=0;o=-1;g=-1;b=lfi(a);f:for(h=0;h<b.length;++h){c=b[h];switch(e){case 0:switch(c){case 99:case 67:e=1;continue;default:continue;}case 1:switch(c){case 104:case 72:e=2;continue;default:e=0;continue;}case 2:switch(c){case 97:case 65:e=3;continue;default:e=0;continue;}case 3:switch(c){case 114:case 82:e=4;continue;default:e=0;continue;}case 4:switch(c){case 115:case 83:e=5;continue;default:e=0;continue;}case 5:switch(c){case 101:case 69:e=6;continue;default:e=0;continue;}case 6:switch(c){case 116:case 84:e=7;continue;default:e=0;continue;}case 7:switch(c){case 9:case 10:case 12:case 13:case 32:continue;case 61:e=8;continue;default:return null;}case 8:switch(c){case 9:case 10:case 12:case 13:case 32:continue;case 39:o=h+1;e=9;continue;case 34:o=h+1;e=10;continue;default:o=h;e=11;continue;}case 9:switch(c){case 39:g=h;break f;default:continue;}case 10:switch(c){case 34:g=h;break f;default:continue;}case 11:switch(c){case 9:case 10:case 12:case 13:case 32:case 59:g=h;break f;default:continue;}}}d=null;if(o!=-1){if(g==-1){g=b.length}d=xfi(b,o,g-o)}return d} +function n0i(){return w_h} +function aYi(){} +_=aYi.prototype=new xdi();_.gC=n0i;_.tI=0;_.f=null;_.g=0;_.h=null;_.i=null;_.j=-1;_.l=1;_.m=null;_.n=false;_.o=null;_.p=false;_.r=null;_.s=-1;_.t=0;_.v=false;_.w=0;_.x=false;_.y=null;_.z=null;_.A=false;var j0i,k0i,l0i;function rHi(){rHi=u0i;BYi()} +function qHi(f,a,e,b){var c,d;d=f.g+b;if(d>f.f.length){c=e9h(A_h,42,-1,d,1);Afi(f.f,0,c,0,f.g);f.f=c}Afi(a,e,f.f,f.g,b);f.g=d} +function sHi(g,a,e,c,f,d){var b;ymi(g,(b=e+c,mfi(a.length,e,b),ofi(a,e,b)),f,d)} +function tHi(){return p_h} +function pHi(){} +_=pHi.prototype=new aYi();_.gC=tHi;_.tI=0;function rmi(){rmi=u0i;rHi()} +function kmi(b,a){rmi();b.k=(sli(),tli);b.u=(Fli(),bmi);b.q=cki(new bki());b.n=false;b.e=xki(new hki());b.a=a;kni(a);return b} +function lmi(h,e,c){var a,d,f,g,i;try{for(f=0;f<c.a;++f){g=BUi(c,f);i=CUi(c,f);if(!e.hasAttributeNS(i,g)){e.setAttributeNS(i,g,DUi(c,f))}}}catch(a){a=gai(a);if(s9h(a,19)){d=a;eZi(h,d)}else throw a}} +function mmi(f,d,e){var a,c;try{if(d==f.b){f.d.appendChild(f.a.createTextNode(e))}d.appendChild(f.a.createTextNode(e))}catch(a){a=gai(a);if(s9h(a,19)){c=a;eZi(f,c)}else throw a}} +function nmi(f,e,d){var a,c;try{while(e.hasChildNodes()){d.appendChild(e.firstChild)}}catch(a){a=gai(a);if(s9h(a,19)){c=a;eZi(f,c)}else throw a}} +function pmi(f,e,c){var a,d;try{if(e==f.b){f.d.appendChild(f.a.createComment(c))}e.appendChild(f.a.createComment(c))}catch(a){a=gai(a);if(s9h(a,19)){d=a;eZi(f,d)}else throw a}} +function omi(e,c){var a,d;try{e.a.appendChild(e.a.createComment(c))}catch(a){a=gai(a);if(s9h(a,19)){d=a;eZi(e,d)}else throw a}} +function qmi(f,c,e){var a,d;try{if(e==f.b){f.d.appendChild(c.cloneNode(true))}e.appendChild(c)}catch(a){a=gai(a);if(s9h(a,19)){d=a;eZi(f,d)}else throw a}} +function smi(i,g,f,c){var a,d,e,h;try{h=i.a.createElementNS(g,f);for(e=0;e<c.a;++e){h.setAttributeNS(CUi(c,e),BUi(c,e),DUi(c,e))}if(hIg==f){if(i.b){zki(i.e,gmi(new fmi(),i.d,i.b))}i.d=h;i.b=i.a.createElementNS(jKg,hIg);h=i.b;for(e=0;e<c.a;++e){h.setAttributeNS(CUi(c,e),BUi(c,e),DUi(c,e))}}return h}catch(a){a=gai(a);if(s9h(a,19)){d=a;eZi(i,d);throw Edi(new Ddi(),uKg)}else throw a}} +function tmi(h,f,e,c){var a,d,g;try{g=smi(h,f,e,c);return g}catch(a){a=gai(a);if(s9h(a,19)){d=a;eZi(h,d);return null}else throw a}} +function umi(g,c){var a,d,e,f;try{f=g.a.createElementNS(hrg,hAg);for(e=0;e<c.a;++e){f.setAttributeNS(CUi(c,e),BUi(c,e),DUi(c,e))}g.a.appendChild(f);return f}catch(a){a=gai(a);if(s9h(a,19)){d=a;eZi(g,d);throw Edi(new Ddi(),uKg)}else throw a}} +function vmi(f,d){var a,c,e;try{e=d.parentNode;if(e){e.removeChild(d)}}catch(a){a=gai(a);if(s9h(a,19)){c=a;eZi(f,c)}else throw a}} +function wmi(b,a){if(a==b.b){b.c=true;b.z.jb=true}} +function xmi(b){var a;a=b.a;b.a=null;return a} +function ymi(i,h,g,f){var a,c,d,e;try{c=i.a.createTextNode(h);e=g.parentNode;if(!!e&&e.nodeType==1){e.insertBefore(c,g)}else{f.appendChild(c)}}catch(a){a=gai(a);if(s9h(a,19)){d=a;eZi(i,d)}else throw a}} +function zmi(h,c,g,f){var a,d,e;e=g.parentNode;try{if(!!e&&e.nodeType==1){e.insertBefore(c,g)}else{f.appendChild(c)}}catch(a){a=gai(a);if(s9h(a,19)){d=a;eZi(h,d)}else throw a}} +function Ami(b){var a;if(b.c){b.c=false;mni(b.b,b.d);if(b.e.b==0){b.d=null;b.b=null}else{a=p9h(Eki(b.e),20);b.d=a.b;b.b=a.a}}} +function Bmi(e,d){var a,c;try{return d.cloneNode(false)}catch(a){a=gai(a);if(s9h(a,19)){c=a;eZi(e,c);throw Edi(new Ddi(),uKg)}else throw a}} +function dni(){return k_h} +function kni(d){if(!d.createElementNS){d.createElementNS=function(c,a){if(hrg==c){return d.createElement(a)}else if(wDg==c){if(!d.mathplayerinitialized){var b=document.createElement(FKg);b.setAttribute(kLg,wLg);b.setAttribute(bMg,mMg);document.getElementsByTagName(Drg)[0].appendChild(b);document.namespaces.add(xMg,wDg,cNg);d.mathplayerinitialized=true}return d.createElement(nNg+a)}else if(bEg==c){if(!d.renesisinitialized){var b=document.createElement(FKg);b.setAttribute(kLg,yNg);b.setAttribute(bMg,dOg);document.getElementsByTagName(Drg)[0].appendChild(b);document.namespaces.add(oOg,bEg,zOg);d.renesisinitialized=true}return d.createElement(fPg+a)}else{}}}} +function mni(b,a){b.parentNode.replaceChild(a,b)} +function emi(){} +_=emi.prototype=new pHi();_.gC=dni;_.tI=0;_.a=null;_.b=null;_.c=false;_.d=null;function gmi(c,b,a){c.b=b;c.a=a;return c} +function imi(){return j_h} +function fmi(){} +_=fmi.prototype=new xdi();_.gC=imi;_.tI=34;_.a=null;_.b=null;function Bni(b,a){b.b=tei(new rei());b.a=xki(new hki());b.c=kmi(new emi(),a);b.i=gUi(new eUi(),b.c);b.c.u=(Fli(),bmi);b.i.p=bmi;b.i.e=bmi;b.i.t=bmi;b.i.db=bmi;gXi(b.i,bmi);return b} +function Dni(i,h,a){i.f=a;f0i(i.c,null);i.e=false;i.d=false;yei(i.b,0);i.h=h.length;i.g=p0i(new o0i(),lfi(h),0,i.h<512?i.h:512);Aki(i.a);zki(i.a,i.g);f0i(i.c,null);hXi(i.i);Eni(i)} +function Eni(e){var a,b,c,d,f;if(e.d){AWi(e.i);xmi(e.c);e.f.a();return}b=e.b.c;if(b>0){c=e9h(A_h,42,-1,b,1);wei(e.b,0,b,c,0);zki(e.a,p0i(new o0i(),c,0,b));yei(e.b,0)}for(;;){a=p9h(Cki(e.a),21);if(a.c>=a.b){if(a==e.g){if(a.b==e.h){BWi(e.i);e.d=true;break}else{d=a.c+512;a.b=d<e.h?d:e.h;continue}}else{p9h(Eki(e.a),21);continue}}q0i(a,e.e);e.e=false;if(a.c<a.b){e.e=jXi(e.i,a);Ami(e.c);break}else{continue}}f=qni(new pni(),e);ibi(f,1)} +function boi(h){var a;a=p0i(new o0i(),lfi(h),0,h.length);while(a.c<a.b){q0i(a,this.e);this.e=false;if(a.c<a.b){this.e=jXi(this.i,a);Ami(this.c)}}} +function coi(){return m_h} +function oni(){} +_=oni.prototype=new xdi();_.xb=boi;_.gC=coi;_.tI=0;_.c=null;_.d=false;_.e=false;_.f=null;_.g=null;_.h=0;_.i=null;function rni(){rni=u0i;gbi()} +function qni(b,a){rni();b.a=a;return b} +function sni(c){var a;try{Eni(c.a)}catch(a){a=gai(a);if(s9h(a,22)){c.a.d=true}else throw a}} +function tni(){return l_h} +function pni(){} +_=pni.prototype=new abi();_.gC=tni;_.tI=35;_.a=null;function xni(c,d){c.write=function(){if(arguments.length==0){return}var b=arguments[0];for(var a=1;a<arguments.length;a++){b+=arguments[a]}d.xb(b)};c.writeln=function(){if(arguments.length==0){d.xb(qPg);return}var b=arguments[0];for(var a=1;a<arguments.length;a++){b+=arguments[a]}b+=qPg;d.xb(b)}} +function yni(e,a,d,b){var c;if(!d){d=q8h()}zni(a);c=Bni(new oni(),a);xni(a,c);Dni(c,e,eoi(new doi(),d))} +function zni(a){while(a.hasChildNodes()){a.removeChild(a.lastChild)}} +function eoi(b,a){b.a=a;return b} +function hoi(){return n_h} +function doi(){} +_=doi.prototype=new xdi();_.gC=hoi;_.tI=0;_.a=null;function loi(){var bb;loi=u0i;epi=f9h(D_h,48,1,[cNh,cNh,cNh,cNh]);AGi=f9h(D_h,48,1,[cNh,BPg,BPg,cNh]);FGi=f9h(D_h,48,1,[cNh,gQg,gQg,cNh]);tGi=f9h(D_h,48,1,[cNh,rQg,rQg,cNh]);iwi=f9h(D_h,48,1,[cNh,cNh,cNh,gQg]);fpi=f9h(D_h,48,1,[null,null,null,null]);BGi=f9h(D_h,48,1,[null,CQg,CQg,null]);uGi=f9h(D_h,48,1,[null,hRg,hRg,null]);aHi=f9h(D_h,48,1,[null,sRg,sRg,null]);jwi=f9h(D_h,48,1,[null,null,null,sRg]);cpi=f9h(bai,0,-1,[true,true,true,true]);dpi=f9h(bai,0,-1,[false,false,false,false]);ysi=joi(new ioi(),epi,BCi(DRg),fpi,cpi,false);Avi=joi(new ioi(),epi,BCi(iSg),fpi,cpi,false);yBi=joi(new ioi(),epi,BCi(uSg),fpi,cpi,false);mGi=joi(new ioi(),epi,BCi(FSg),fpi,cpi,false);eHi=joi(new ioi(),epi,BCi(kTg),fpi,cpi,false);iHi=joi(new ioi(),epi,BCi(vTg),fpi,cpi,false);jri=joi(new ioi(),epi,BCi(aUg),fpi,cpi,false);wsi=joi(new ioi(),epi,BCi(lUg),fpi,cpi,false);xsi=joi(new ioi(),epi,BCi(wUg),fpi,cpi,false);oti=joi(new ioi(),epi,BCi(bVg),fpi,cpi,false);pti=joi(new ioi(),epi,BCi(mVg),fpi,cpi,false);Aui=joi(new ioi(),epi,BCi(xVg),fpi,cpi,false);zui=joi(new ioi(),epi,BCi(dWg),fpi,cpi,false);xui=joi(new ioi(),epi,BCi(oWg),fpi,cpi,false);yui=joi(new ioi(),epi,BCi(zWg),fpi,cpi,false);Evi=joi(new ioi(),epi,BCi(eXg),fpi,cpi,false);Cvi=joi(new ioi(),epi,BCi(pXg),fpi,cpi,false);Dvi=joi(new ioi(),epi,BCi(AXg),fpi,cpi,false);Bvi=joi(new ioi(),epi,BCi(fYg),fpi,cpi,false);qvi=koi(new ioi(),epi,BCi(kLg),fpi,cpi,false);tvi=joi(new ioi(),epi,BCi(qYg),fpi,cpi,false);iFi=joi(new ioi(),epi,BCi(BYg),fpi,cpi,false);hFi=joi(new ioi(),epi,BCi(gZg),fpi,cpi,false);xCi=joi(new ioi(),epi,BCi(tZg),fpi,cpi,false);zCi=joi(new ioi(),epi,BCi(EZg),fpi,cpi,false);ACi=joi(new ioi(),epi,BCi(j0g),fpi,cpi,false);eFi=joi(new ioi(),epi,BCi(u0g),fpi,cpi,false);gHi=joi(new ioi(),epi,BCi(F0g),fpi,cpi,false);fHi=joi(new ioi(),epi,BCi(k1g),fpi,cpi,false);nGi=joi(new ioi(),epi,BCi(v1g),fpi,cpi,false);oGi=joi(new ioi(),epi,BCi(a2g),fpi,cpi,false);hpi=joi(new ioi(),epi,BCi(l2g),fpi,cpi,false);fti=joi(new ioi(),epi,BCi(w2g),fpi,cpi,false);nti=joi(new ioi(),epi,BCi(c3g),fpi,cpi,false);wti=joi(new ioi(),epi,BCi(n3g),fpi,cpi,false);qui=joi(new ioi(),epi,BCi(y3g),fpi,cpi,false);uvi=joi(new ioi(),epi,BCi(d4g),fpi,cpi,false);oxi=joi(new ioi(),epi,BCi(o4g),fpi,cpi,false);uxi=joi(new ioi(),epi,BCi(z4g),fpi,cpi,false);xwi=joi(new ioi(),epi,BCi(e5g),fpi,cpi,false);EBi=joi(new ioi(),epi,BCi(p5g),fpi,cpi,false);nCi=joi(new ioi(),epi,BCi(A5g),fpi,cpi,false);xDi=joi(new ioi(),epi,BCi(f6g),fpi,cpi,false);Bqi=joi(new ioi(),epi,BCi(r6g),fpi,cpi,false);soi=joi(new ioi(),epi,BCi(C6g),fpi,cpi,false);dri=joi(new ioi(),epi,BCi(h7g),fpi,cpi,false);sri=joi(new ioi(),epi,BCi(s7g),fpi,cpi,false);Cri=joi(new ioi(),epi,BCi(D7g),fpi,cpi,false);hri=joi(new ioi(),epi,BCi(i8g),fpi,cpi,false);fsi=joi(new ioi(),epi,BCi(t8g),fpi,cpi,false);wri=joi(new ioi(),epi,BCi(E8g),fpi,cpi,false);ori=joi(new ioi(),epi,BCi(j9g),fpi,cpi,false);Eqi=joi(new ioi(),epi,BCi(u9g),fpi,cpi,false);qti=joi(new ioi(),epi,BCi(a$g),fpi,cpi,false);zsi=joi(new ioi(),epi,BCi(l$g),fpi,cpi,false);Dti=joi(new ioi(),epi,BCi(w$g),fpi,cpi,false);wui=joi(new ioi(),epi,BCi(b_g),fpi,cpi,false);rui=joi(new ioi(),epi,BCi(srg),fpi,cpi,false);Bti=joi(new ioi(),epi,BCi(m_g),fpi,cpi,false);hvi=joi(new ioi(),epi,BCi(x_g),fpi,cpi,false);lvi=joi(new ioi(),epi,BCi(cah),fpi,cpi,false);zAi=joi(new ioi(),epi,BCi(nah),fpi,cpi,false);pvi=joi(new ioi(),epi,BCi(yah),fpi,cpi,false);zxi=joi(new ioi(),epi,BCi(pXh),fpi,cpi,false);wxi=joi(new ioi(),epi,BCi(dbh),fpi,cpi,false);fxi=joi(new ioi(),epi,BCi(pbh),fpi,cpi,false);rwi=joi(new ioi(),epi,BCi(Abh),fpi,cpi,false);gwi=joi(new ioi(),iwi,BCi(fch),jwi,cpi,false);swi=joi(new ioi(),epi,BCi(qch),fpi,cpi,false);gFi=joi(new ioi(),epi,BCi(Bch),fpi,cpi,false);gGi=joi(new ioi(),epi,BCi(gdh),fpi,cpi,false);kGi=joi(new ioi(),epi,BCi(rdh),fpi,cpi,false);CEi=joi(new ioi(),epi,BCi(Cdh),fpi,cpi,false);fBi=joi(new ioi(),epi,BCi(heh),fpi,cpi,false);lBi=joi(new ioi(),epi,BCi(seh),fpi,cpi,false);CBi=joi(new ioi(),epi,tEi(Eeh,jfh),fpi,cpi,false);DBi=joi(new ioi(),epi,tEi(ufh,Ffh),fpi,cpi,false);oDi=joi(new ioi(),epi,BCi(kgh),fpi,cpi,false);hDi=joi(new ioi(),epi,BCi(vgh),fpi,cpi,false);sCi=joi(new ioi(),epi,BCi(ahh),fpi,cpi,false);rDi=joi(new ioi(),epi,BCi(lhh),fpi,cpi,false);EDi=joi(new ioi(),epi,BCi(whh),fpi,cpi,false);oCi=joi(new ioi(),epi,BCi(bih),fpi,cpi,false);cHi=joi(new ioi(),epi,BCi(nih),fpi,cpi,false);sqi=joi(new ioi(),epi,BCi(yih),fpi,cpi,false);bpi=joi(new ioi(),epi,BCi(djh),fpi,cpi,false);Eoi=joi(new ioi(),epi,BCi(ojh),fpi,cpi,false);Ari=joi(new ioi(),epi,BCi(zjh),fpi,cpi,false);asi=joi(new ioi(),epi,BCi(ekh),fpi,cpi,false);tri=joi(new ioi(),epi,BCi(pkh),fpi,cpi,false);vri=joi(new ioi(),epi,BCi(Akh),fpi,cpi,false);eri=joi(new ioi(),epi,BCi(flh),fpi,cpi,false);cti=joi(new ioi(),epi,BCi(qlh),fpi,cpi,false);ati=joi(new ioi(),epi,BCi(Clh),fpi,cpi,false);Cti=joi(new ioi(),epi,BCi(hmh),fpi,cpi,false);tui=joi(new ioi(),epi,BCi(smh),fpi,cpi,false);zvi=joi(new ioi(),epi,BCi(Dmh),fpi,cpi,false);izi=joi(new ioi(),epi,BCi(inh),fpi,cpi,false);vvi=joi(new ioi(),epi,BCi(tnh),fpi,cpi,false);CAi=joi(new ioi(),epi,BCi(Enh),fpi,cpi,false);aBi=joi(new ioi(),epi,BCi(joh),fpi,cpi,false);Ayi=joi(new ioi(),epi,BCi(uoh),fpi,cpi,false);Axi=joi(new ioi(),epi,BCi(Foh),fpi,cpi,false);rxi=joi(new ioi(),epi,BCi(lph),fpi,cpi,false);fwi=joi(new ioi(),epi,BCi(wph),fpi,cpi,false);twi=joi(new ioi(),epi,BCi(bqh),fpi,cpi,false);hGi=joi(new ioi(),epi,BCi(mqh),fpi,cpi,false);dFi=joi(new ioi(),epi,BCi(fHg),fpi,cpi,false);aGi=joi(new ioi(),epi,BCi(xqh),fpi,cpi,false);sFi=joi(new ioi(),epi,BCi(crh),fpi,cpi,false);pDi=joi(new ioi(),epi,BCi(nrh),fpi,cpi,false);mDi=joi(new ioi(),epi,BCi(yrh),fpi,cpi,false);FCi=joi(new ioi(),epi,BCi(dsh),fpi,cpi,false);DCi=joi(new ioi(),epi,BCi(osh),fpi,cpi,false);vDi=joi(new ioi(),epi,BCi(Ash),fpi,cpi,false);oEi=joi(new ioi(),epi,BCi(BHg),fpi,cpi,false);yCi=joi(new ioi(),epi,BCi(fth),fpi,cpi,false);CDi=joi(new ioi(),epi,BCi(qth),fpi,cpi,false);DDi=joi(new ioi(),epi,BCi(Bth),fpi,cpi,false);zDi=joi(new ioi(),epi,BCi(guh),fpi,cpi,false);zGi=joi(new ioi(),AGi,BCi(CQg),fpi,f9h(bai,0,-1,[false,false,false,false]),true);woi=joi(new ioi(),epi,BCi(ruh),fpi,cpi,false);toi=joi(new ioi(),epi,BCi(Cuh),fpi,cpi,false);rqi=joi(new ioi(),epi,BCi(hvh),fpi,cpi,false);Coi=joi(new ioi(),epi,BCi(svh),fpi,cpi,false);ipi=joi(new ioi(),epi,BCi(Dvh),fpi,cpi,false);Aoi=joi(new ioi(),epi,BCi(kwh),fpi,cpi,false);iri=joi(new ioi(),epi,BCi(vwh),fpi,cpi,false);vsi=joi(new ioi(),epi,BCi(axh),fpi,cpi,false);usi=joi(new ioi(),epi,BCi(lxh),fpi,cpi,false);aui=joi(new ioi(),epi,BCi(wxh),fpi,cpi,false);sui=joi(new ioi(),epi,BCi(byh),fpi,cpi,false);fvi=joi(new ioi(),epi,BCi(mEg),fpi,cpi,false);nvi=joi(new ioi(),epi,BCi(myh),fpi,cpi,false);evi=joi(new ioi(),epi,BCi(xyh),fpi,cpi,false);dAi=joi(new ioi(),epi,BCi(czh),fpi,cpi,false);yzi=joi(new ioi(),epi,BCi(nzh),fpi,cpi,false);azi=joi(new ioi(),epi,BCi(zzh),fpi,cpi,false);FAi=joi(new ioi(),epi,BCi(eAh),fpi,cpi,false);xAi=joi(new ioi(),epi,BCi(pAh),fpi,cpi,false);szi=joi(new ioi(),epi,BCi(AAh),fpi,cpi,false);uAi=joi(new ioi(),epi,BCi(fBh),fpi,cpi,false);hzi=joi(new ioi(),epi,BCi(qBh),fpi,cpi,false);syi=joi(new ioi(),epi,BCi(BBh),fpi,cpi,false);byi=joi(new ioi(),epi,BCi(FKg),fpi,cpi,false);dyi=joi(new ioi(),epi,BCi(gCh),fpi,cpi,false);DAi=joi(new ioi(),epi,BCi(rCh),fpi,cpi,false);zyi=joi(new ioi(),epi,BCi(CCh),fpi,cpi,false);Fxi=joi(new ioi(),epi,BCi(iDh),fpi,cpi,false);Bxi=joi(new ioi(),epi,BCi(tDh),fpi,cpi,false);Bwi=joi(new ioi(),epi,BCi(EDh),fpi,cpi,false);txi=joi(new ioi(),epi,BCi(jEh),fpi,cpi,false);ywi=joi(new ioi(),epi,BCi(uEh),fpi,cpi,false);Awi=joi(new ioi(),epi,BCi(FEh),fpi,cpi,false);zwi=joi(new ioi(),epi,BCi(kFh),fpi,cpi,false);qFi=joi(new ioi(),epi,BCi(vFh),fpi,cpi,false);iGi=joi(new ioi(),epi,BCi(aGh),fpi,cpi,false);yEi=joi(new ioi(),epi,BCi(lGh),fpi,cpi,false);tFi=joi(new ioi(),epi,BCi(xGh),fpi,cpi,false);rFi=joi(new ioi(),epi,BCi(cHh),fpi,cpi,false);bGi=joi(new ioi(),epi,BCi(nHh),fpi,cpi,false);sBi=joi(new ioi(),epi,BCi(yHh),fpi,cpi,false);oBi=joi(new ioi(),epi,BCi(dIh),fpi,cpi,false);xBi=joi(new ioi(),epi,BCi(oIh),fpi,cpi,false);aDi=joi(new ioi(),epi,BCi(zIh),fpi,cpi,false);fEi=joi(new ioi(),epi,BCi(eJh),fpi,cpi,false);ECi=joi(new ioi(),epi,BCi(pJh),fpi,cpi,false);gEi=joi(new ioi(),epi,BCi(AJh),fpi,cpi,false);ABi=joi(new ioi(),epi,BCi(gKh),fpi,cpi,false);mCi=joi(new ioi(),epi,BCi(rKh),fpi,cpi,false);aCi=joi(new ioi(),epi,BCi(CKh),fpi,cpi,false);wCi=joi(new ioi(),epi,BCi(eLh),fpi,cpi,false);pCi=joi(new ioi(),epi,BCi(fLh),fpi,cpi,false);vCi=joi(new ioi(),epi,BCi(gLh),fpi,cpi,false);jpi=joi(new ioi(),epi,BCi(hLh),fpi,cpi,false);mpi=joi(new ioi(),epi,BCi(iLh),fpi,cpi,false);Cqi=joi(new ioi(),epi,BCi(jLh),fpi,cpi,false);Bri=joi(new ioi(),epi,BCi(kLh),fpi,cpi,false);rri=joi(new ioi(),epi,BCi(mLh),fpi,cpi,false);uri=joi(new ioi(),epi,BCi(bMg),fpi,cpi,false);pri=joi(new ioi(),epi,BCi(nLh),fpi,cpi,false);gri=joi(new ioi(),epi,BCi(oLh),fpi,cpi,false);gsi=joi(new ioi(),epi,BCi(pLh),fpi,cpi,false);qri=joi(new ioi(),epi,BCi(qLh),fpi,cpi,false);msi=joi(new ioi(),epi,BCi(rLh),fpi,cpi,false);osi=joi(new ioi(),epi,BCi(sLh),fpi,cpi,false);vti=joi(new ioi(),epi,BCi(tLh),fpi,cpi,false);Csi=joi(new ioi(),epi,BCi(uLh),fpi,cpi,false);Asi=joi(new ioi(),epi,BCi(vLh),fpi,cpi,false);Esi=joi(new ioi(),epi,BCi(xLh),fpi,cpi,false);iti=joi(new ioi(),epi,BCi(yLh),fpi,cpi,false);kti=joi(new ioi(),epi,BCi(zLh),fpi,cpi,false);Fsi=joi(new ioi(),epi,BCi(ALh),fpi,cpi,false);dti=joi(new ioi(),epi,BCi(BLh),fpi,cpi,false);bwi=joi(new ioi(),epi,BCi(CLh),fpi,cpi,false);cvi=joi(new ioi(),epi,BCi(DLh),fpi,cpi,false);dvi=joi(new ioi(),epi,BCi(ELh),fpi,cpi,false);gAi=joi(new ioi(),epi,BCi(FLh),fpi,cpi,false);wyi=joi(new ioi(),epi,BCi(aMh),fpi,cpi,false);BAi=joi(new ioi(),epi,BCi(cMh),fpi,cpi,false);ryi=joi(new ioi(),epi,BCi(dMh),fpi,cpi,false);xzi=joi(new ioi(),epi,BCi(eMh),fpi,cpi,false);nzi=joi(new ioi(),epi,BCi(fMh),fpi,cpi,false);jzi=joi(new ioi(),epi,BCi(gMh),fpi,cpi,false);tzi=joi(new ioi(),epi,BCi(hMh),fpi,cpi,false);eyi=joi(new ioi(),epi,BCi(iMh),fpi,cpi,false);tAi=joi(new ioi(),epi,BCi(jMh),fpi,cpi,false);kAi=joi(new ioi(),epi,BCi(kMh),fpi,cpi,false);yAi=joi(new ioi(),epi,BCi(lMh),fpi,cpi,false);Dxi=joi(new ioi(),epi,BCi(nMh),fpi,cpi,false);vxi=joi(new ioi(),epi,BCi(oMh),fpi,cpi,false);qxi=joi(new ioi(),epi,BCi(pMh),fpi,cpi,false);vwi=joi(new ioi(),epi,BCi(qMh),fpi,cpi,false);kwi=joi(new ioi(),epi,BCi(rMh),fpi,cpi,false);lFi=joi(new ioi(),epi,BCi(sMh),fpi,cpi,false);zEi=joi(new ioi(),epi,tEi(tMh,uMh),fpi,cpi,false);AEi=joi(new ioi(),epi,tEi(vMh,wMh),fpi,cpi,false);DFi=joi(new ioi(),epi,tEi(yMh,zMh),fpi,cpi,false);vFi=joi(new ioi(),epi,BCi(AMh),fpi,cpi,false);hBi=joi(new ioi(),epi,BCi(BMh),fpi,cpi,false);wBi=joi(new ioi(),epi,BCi(CMh),fpi,cpi,false);qDi=joi(new ioi(),epi,BCi(DMh),fpi,cpi,false);lCi=joi(new ioi(),epi,BCi(EMh),fpi,cpi,false);uCi=joi(new ioi(),epi,BCi(FMh),fpi,cpi,false);CCi=joi(new ioi(),epi,BCi(aNh),fpi,cpi,false);qEi=joi(new ioi(),epi,BCi(bNh),fpi,cpi,false);yDi=joi(new ioi(),epi,BCi(eNh),fpi,cpi,false);hCi=joi(new ioi(),epi,BCi(fNh),fpi,cpi,false);zqi=joi(new ioi(),epi,BCi(gNh),fpi,cpi,false);Doi=joi(new ioi(),epi,BCi(hNh),fpi,cpi,false);kri=joi(new ioi(),epi,tEi(iNh,jNh),fpi,cpi,false);Eri=joi(new ioi(),epi,BCi(kNh),fpi,cpi,false);Dri=joi(new ioi(),epi,BCi(lNh),fpi,cpi,false);tsi=joi(new ioi(),epi,BCi(mNh),fpi,cpi,false);fri=joi(new ioi(),epi,BCi(nNh),fpi,cpi,false);ari=joi(new ioi(),epi,BCi(pNh),fpi,cpi,false);zti=joi(new ioi(),epi,BCi(qNh),fpi,cpi,false);rti=joi(new ioi(),epi,tEi(rNh,sNh),fpi,cpi,false);uti=joi(new ioi(),epi,BCi(tNh),fpi,cpi,false);Bui=joi(new ioi(),epi,tEi(uNh,vNh),fpi,cpi,false);Dsi=joi(new ioi(),epi,BCi(wNh),fpi,cpi,false);hti=joi(new ioi(),epi,BCi(xNh),fpi,cpi,false);gui=joi(new ioi(),epi,BCi(yNh),fpi,cpi,false);ewi=joi(new ioi(),epi,tEi(ANh,BNh),fpi,cpi,false);eBi=joi(new ioi(),epi,BCi(CNh),fpi,cpi,false);mvi=joi(new ioi(),epi,BCi(DNh),fpi,cpi,false);lAi=joi(new ioi(),epi,BCi(ENh),fpi,cpi,false);vyi=joi(new ioi(),epi,BCi(FNh),fpi,cpi,false);tyi=joi(new ioi(),epi,BCi(aOh),fpi,cpi,false);wAi=joi(new ioi(),epi,BCi(bOh),fpi,cpi,false);mzi=joi(new ioi(),epi,BCi(cOh),fpi,cpi,false);qAi=joi(new ioi(),epi,BCi(dOh),fpi,cpi,false);AAi=joi(new ioi(),epi,BCi(fOh),fpi,cpi,false);bBi=joi(new ioi(),epi,BCi(gOh),fpi,cpi,false);vAi=joi(new ioi(),epi,BCi(hOh),fpi,cpi,false);jAi=joi(new ioi(),epi,BCi(iOh),fpi,cpi,false);rAi=joi(new ioi(),epi,BCi(jOh),fpi,cpi,false);Exi=joi(new ioi(),epi,BCi(kOh),fpi,cpi,false);Cxi=joi(new ioi(),epi,BCi(lOh),fpi,cpi,false);Cwi=joi(new ioi(),epi,BCi(mOh),fpi,cpi,false);lxi=joi(new ioi(),epi,BCi(nOh),fpi,cpi,false);yxi=joi(new ioi(),epi,BCi(oOh),fpi,cpi,false);uwi=joi(new ioi(),epi,BCi(qOh),fpi,cpi,false);hwi=joi(new ioi(),epi,BCi(rOh),fpi,cpi,false);BEi=joi(new ioi(),epi,BCi(sOh),fpi,cpi,false);wEi=joi(new ioi(),epi,BCi(tOh),fpi,cpi,false);BBi=joi(new ioi(),epi,BCi(uOh),fpi,cpi,false);iDi=joi(new ioi(),epi,BCi(vOh),fpi,cpi,false);rCi=joi(new ioi(),epi,BCi(wOh),fpi,cpi,false);gDi=joi(new ioi(),epi,BCi(xOh),fpi,cpi,false);qCi=joi(new ioi(),epi,BCi(yOh),fpi,cpi,false);cEi=joi(new ioi(),epi,BCi(zOh),fpi,cpi,false);iCi=joi(new ioi(),epi,BCi(BOh),fpi,cpi,false);DGi=joi(new ioi(),FGi,Fri(COh,u9g),aHi,f9h(bai,0,-1,[false,true,true,false]),false);EGi=joi(new ioi(),FGi,Fri(DOh,fch),aHi,f9h(bai,0,-1,[false,true,true,false]),false);dHi=joi(new ioi(),epi,BCi(EOh),fpi,cpi,false);dqi=joi(new ioi(),epi,BCi(FOh),fpi,cpi,false);yqi=joi(new ioi(),epi,BCi(aPh),fpi,cpi,false);mqi=joi(new ioi(),epi,BCi(bPh),fpi,cpi,false);yoi=joi(new ioi(),epi,BCi(cPh),fpi,cpi,false);qpi=joi(new ioi(),epi,BCi(dPh),fpi,cpi,false);Api=joi(new ioi(),epi,BCi(ePh),fpi,cpi,false);kpi=joi(new ioi(),epi,BCi(gPh),fpi,cpi,false);aqi=joi(new ioi(),epi,BCi(hPh),fpi,cpi,false);zri=joi(new ioi(),epi,BCi(iPh),fpi,cpi,false);yri=joi(new ioi(),epi,BCi(jPh),fpi,cpi,false);yti=joi(new ioi(),epi,BCi(kPh),fpi,cpi,false);sti=joi(new ioi(),epi,BCi(lPh),fpi,cpi,false);gti=joi(new ioi(),epi,BCi(mPh),fpi,cpi,false);mti=joi(new ioi(),epi,BCi(nPh),fpi,cpi,false);bui=joi(new ioi(),epi,tEi(oPh,pPh),fpi,cpi,false);Fti=joi(new ioi(),epi,BCi(rPh),fpi,cpi,false);hui=joi(new ioi(),epi,BCi(sPh),fpi,cpi,false);kui=joi(new ioi(),epi,BCi(tPh),fpi,cpi,false);cwi=joi(new ioi(),epi,tEi(uPh,vPh),fpi,cpi,false);gvi=joi(new ioi(),epi,BCi(wPh),fpi,cpi,false);Azi=joi(new ioi(),epi,BCi(xPh),fpi,cpi,false);xvi=joi(new ioi(),epi,BCi(yPh),fpi,cpi,false);czi=joi(new ioi(),epi,BCi(zPh),fpi,cpi,false);eAi=joi(new ioi(),epi,BCi(APh),fpi,cpi,false);uzi=joi(new ioi(),epi,BCi(CPh),fpi,cpi,false);vzi=joi(new ioi(),epi,BCi(DPh),fpi,cpi,false);ozi=joi(new ioi(),epi,BCi(EPh),fpi,cpi,false);bAi=joi(new ioi(),epi,BCi(FPh),fpi,cpi,false);wvi=joi(new ioi(),epi,BCi(aQh),fpi,cpi,false);nAi=joi(new ioi(),epi,BCi(bQh),fpi,cpi,false);jxi=joi(new ioi(),epi,BCi(cQh),fpi,cpi,false);hxi=joi(new ioi(),epi,tEi(dQh,eQh),fpi,cpi,false);pxi=joi(new ioi(),epi,BCi(fQh),fpi,cpi,false);pwi=joi(new ioi(),epi,BCi(hQh),fpi,cpi,false);wwi=joi(new ioi(),epi,BCi(iQh),fpi,cpi,false);fFi=joi(new ioi(),epi,BCi(jQh),fpi,cpi,false);dGi=joi(new ioi(),epi,BCi(kQh),fpi,cpi,false);uFi=joi(new ioi(),epi,BCi(lQh),fpi,cpi,false);rBi=joi(new ioi(),epi,tEi(mQh,nQh),fpi,cpi,false);pBi=joi(new ioi(),epi,tEi(oQh,pQh),fpi,cpi,false);qBi=joi(new ioi(),epi,tEi(qQh,tQh),fpi,cpi,false);mBi=joi(new ioi(),epi,BCi(uQh),fpi,cpi,false);uEi=joi(new ioi(),epi,BCi(vQh),fpi,cpi,false);fDi=joi(new ioi(),epi,BCi(wQh),fpi,cpi,false);cCi=joi(new ioi(),epi,tEi(xQh,yQh),fpi,cpi,false);jDi=joi(new ioi(),epi,BCi(zQh),fpi,cpi,false);kDi=joi(new ioi(),epi,BCi(AQh),fpi,cpi,false);bHi=joi(new ioi(),FGi,Fri(BQh,CQh),aHi,f9h(bai,0,-1,[false,true,true,false]),false);Aqi=joi(new ioi(),epi,BCi(EQh),fpi,cpi,false);gpi=joi(new ioi(),epi,BCi(FQh),fpi,cpi,false);Boi=joi(new ioi(),epi,BCi(aRh),fpi,cpi,false);zoi=joi(new ioi(),epi,BCi(bRh),fpi,cpi,false);Fpi=joi(new ioi(),epi,BCi(cRh),fpi,cpi,false);ksi=joi(new ioi(),epi,BCi(dRh),fpi,cpi,false);lri=joi(new ioi(),epi,BCi(eRh),fpi,cpi,false);Dqi=joi(new ioi(),epi,BCi(fRh),fpi,cpi,false);Cui=joi(new ioi(),epi,BCi(gRh),fpi,cpi,false);bvi=joi(new ioi(),epi,BCi(hRh),fpi,cpi,false);fui=joi(new ioi(),epi,BCi(jRh),fpi,cpi,false);iui=joi(new ioi(),epi,BCi(kRh),fpi,cpi,false);nui=joi(new ioi(),epi,BCi(lRh),fpi,cpi,false);dwi=joi(new ioi(),epi,tEi(mRh,nRh),fpi,cpi,false);ovi=joi(new ioi(),epi,BCi(oRh),fpi,cpi,false);fyi=joi(new ioi(),epi,BCi(pRh),fpi,cpi,false);cyi=joi(new ioi(),epi,BCi(qRh),fpi,cpi,false);yvi=joi(new ioi(),epi,BCi(rRh),fpi,cpi,false);Eyi=joi(new ioi(),epi,BCi(sRh),fpi,cpi,false);bzi=joi(new ioi(),epi,BCi(uRh),fpi,cpi,false);wzi=joi(new ioi(),epi,BCi(vRh),fpi,cpi,false);mAi=joi(new ioi(),epi,BCi(wRh),fpi,cpi,false);fzi=joi(new ioi(),epi,BCi(xRh),fpi,cpi,false);pzi=joi(new ioi(),epi,BCi(yRh),fpi,cpi,false);Fzi=joi(new ioi(),epi,BCi(zRh),fpi,cpi,false);ayi=joi(new ioi(),epi,tEi(ARh,BRh),fpi,cpi,false);dxi=joi(new ioi(),epi,BCi(CRh),fpi,cpi,false);cxi=joi(new ioi(),epi,BCi(DRh),fpi,cpi,false);DEi=joi(new ioi(),epi,tEi(FRh,aSh),fpi,cpi,false);FFi=joi(new ioi(),epi,BCi(bSh),fpi,cpi,false);EFi=joi(new ioi(),epi,tEi(cSh,dSh),fpi,cpi,false);wFi=joi(new ioi(),epi,BCi(eSh),fpi,cpi,false);gBi=joi(new ioi(),epi,tEi(fSh,gSh),fpi,cpi,false);dCi=joi(new ioi(),epi,BCi(hSh),fpi,cpi,false);zBi=joi(new ioi(),epi,BCi(iSh),fpi,cpi,false);aEi=joi(new ioi(),epi,BCi(kSh),fpi,cpi,false);lDi=joi(new ioi(),epi,BCi(lSh),fpi,cpi,false);eCi=joi(new ioi(),epi,BCi(mSh),fpi,cpi,false);tCi=joi(new ioi(),epi,BCi(nSh),fpi,cpi,false);jHi=joi(new ioi(),epi,tEi(oSh,pSh),fpi,cpi,false);yGi=joi(new ioi(),tGi,Fri(qSh,Bch),uGi,f9h(bai,0,-1,[false,true,true,false]),false);vGi=joi(new ioi(),tGi,Fri(rSh,bih),uGi,f9h(bai,0,-1,[false,true,true,false]),false);sGi=joi(new ioi(),tGi,Fri(sSh,cah),uGi,f9h(bai,0,-1,[false,true,true,false]),false);wGi=joi(new ioi(),tGi,Fri(tSh,vSh),uGi,f9h(bai,0,-1,[false,true,true,false]),false);uoi=joi(new ioi(),epi,BCi(wSh),fpi,cpi,false);jqi=joi(new ioi(),epi,BCi(xSh),fpi,cpi,false);opi=joi(new ioi(),epi,BCi(ySh),fpi,cpi,false);Cpi=joi(new ioi(),epi,BCi(zSh),fpi,cpi,false);zpi=joi(new ioi(),epi,BCi(ASh),fpi,cpi,false);lpi=joi(new ioi(),epi,BCi(BSh),fpi,cpi,false);mri=joi(new ioi(),epi,BCi(CSh),fpi,cpi,false);nri=joi(new ioi(),epi,BCi(DSh),fpi,cpi,false);lsi=joi(new ioi(),epi,BCi(ESh),fpi,cpi,false);hsi=joi(new ioi(),epi,BCi(aTh),fpi,cpi,false);isi=joi(new ioi(),epi,BCi(bTh),fpi,cpi,false);ssi=joi(new ioi(),epi,BCi(cTh),fpi,cpi,false);cri=joi(new ioi(),epi,tEi(dTh,eTh),fpi,cpi,false);jui=joi(new ioi(),epi,BCi(fTh),fpi,cpi,false);uui=joi(new ioi(),epi,BCi(gTh),fpi,cpi,false);cui=joi(new ioi(),epi,tEi(hTh,iTh),fpi,cpi,false);dui=joi(new ioi(),epi,BCi(jTh),fpi,cpi,false);pui=joi(new ioi(),epi,BCi(lTh),fpi,cpi,false);ivi=joi(new ioi(),epi,BCi(mTh),fpi,cpi,false);ezi=joi(new ioi(),epi,BCi(nTh),fpi,cpi,false);Ezi=joi(new ioi(),epi,BCi(oTh),fpi,cpi,false);EAi=joi(new ioi(),epi,BCi(pTh),fpi,cpi,false);Bzi=joi(new ioi(),epi,BCi(qTh),fpi,cpi,false);aAi=joi(new ioi(),epi,BCi(rTh),fpi,cpi,false);dzi=joi(new ioi(),epi,BCi(sTh),fpi,cpi,false);rvi=joi(new ioi(),epi,BCi(tTh),fpi,cpi,false);lyi=joi(new ioi(),epi,BCi(uTh),fpi,cpi,false);rzi=joi(new ioi(),epi,BCi(wTh),fpi,cpi,false);gzi=joi(new ioi(),epi,BCi(xTh),fpi,cpi,false);fAi=joi(new ioi(),epi,BCi(yTh),fpi,cpi,false);axi=joi(new ioi(),epi,tEi(zTh,ATh),fpi,cpi,false);mxi=joi(new ioi(),epi,BCi(BTh),fpi,cpi,false);Ewi=joi(new ioi(),epi,BCi(CTh),fpi,cpi,false);bxi=joi(new ioi(),epi,tEi(DTh,ETh),fpi,cpi,false);EEi=joi(new ioi(),epi,BCi(FTh),fpi,cpi,false);xEi=joi(new ioi(),epi,tEi(cUh,dUh),fpi,cpi,false);bDi=joi(new ioi(),epi,BCi(eUh),fpi,cpi,false);bCi=joi(new ioi(),epi,tEi(fUh,gUh),fpi,cpi,false);FDi=joi(new ioi(),epi,tEi(hUh,iUh),fpi,cpi,false);ADi=joi(new ioi(),epi,tEi(jUh,kUh),fpi,cpi,false);eDi=joi(new ioi(),epi,BCi(lUh),fpi,cpi,false);CGi=joi(new ioi(),AGi,Fri(nUh,hRg),BGi,f9h(bai,0,-1,[false,false,false,false]),true);xGi=joi(new ioi(),tGi,Fri(oUh,fHg),uGi,f9h(bai,0,-1,[false,true,true,false]),false);Dpi=joi(new ioi(),epi,BCi(pUh),fpi,cpi,false);fqi=joi(new ioi(),epi,BCi(qUh),fpi,cpi,false);spi=joi(new ioi(),epi,BCi(rUh),fpi,cpi,false);xqi=joi(new ioi(),epi,BCi(sUh),fpi,cpi,false);lqi=joi(new ioi(),epi,BCi(tUh),fpi,cpi,false);rpi=joi(new ioi(),epi,BCi(uUh),fpi,cpi,false);xti=joi(new ioi(),epi,BCi(vUh),fpi,cpi,false);jti=joi(new ioi(),epi,BCi(wUh),fpi,cpi,false);Bsi=joi(new ioi(),epi,BCi(yUh),fpi,cpi,false);Eti=joi(new ioi(),epi,BCi(zUh),fpi,cpi,false);oui=joi(new ioi(),epi,BCi(AUh),fpi,cpi,false);mui=joi(new ioi(),epi,BCi(BUh),fpi,cpi,false);vui=joi(new ioi(),epi,BCi(CUh),fpi,cpi,false);Fvi=joi(new ioi(),epi,tEi(DUh,EUh),fpi,cpi,false);Fyi=joi(new ioi(),epi,BCi(FUh),fpi,cpi,false);oAi=joi(new ioi(),epi,BCi(aVh),fpi,cpi,false);Dzi=joi(new ioi(),epi,BCi(bVh),fpi,cpi,false);qzi=joi(new ioi(),epi,BCi(dVh),fpi,cpi,false);uyi=joi(new ioi(),epi,BCi(eVh),fpi,cpi,false);cAi=joi(new ioi(),epi,BCi(fVh),fpi,cpi,false);Czi=joi(new ioi(),epi,BCi(gVh),fpi,cpi,false);gyi=joi(new ioi(),epi,BCi(hVh),fpi,cpi,false);kyi=joi(new ioi(),epi,BCi(iVh),fpi,cpi,false);Dwi=joi(new ioi(),epi,BCi(jVh),fpi,cpi,false);Fwi=joi(new ioi(),epi,tEi(kVh,lVh),fpi,cpi,false);exi=joi(new ioi(),epi,BCi(mVh),fpi,cpi,false);kxi=joi(new ioi(),epi,BCi(oVh),fpi,cpi,false);lwi=joi(new ioi(),epi,tEi(pVh,qVh),fpi,cpi,false);pFi=joi(new ioi(),epi,BCi(rVh),fpi,cpi,false);mFi=joi(new ioi(),epi,BCi(sVh),fpi,cpi,false);oFi=joi(new ioi(),epi,BCi(tVh),fpi,cpi,false);jGi=joi(new ioi(),epi,BCi(uVh),fpi,cpi,false);lGi=joi(new ioi(),epi,BCi(vVh),fpi,cpi,false);cGi=joi(new ioi(),epi,BCi(wVh),fpi,cpi,false);kBi=joi(new ioi(),epi,tEi(xVh,zVh),fpi,cpi,false);wDi=joi(new ioi(),epi,tEi(AVh,BVh),fpi,cpi,false);sEi=joi(new ioi(),epi,tEi(CVh,DVh),fpi,cpi,false);nEi=joi(new ioi(),epi,BCi(EVh),fpi,cpi,false);fCi=joi(new ioi(),epi,BCi(FVh),fpi,cpi,false);BDi=joi(new ioi(),epi,tEi(aWh,bWh),fpi,cpi,false);bEi=joi(new ioi(),epi,BCi(cWh),fpi,cpi,false);tpi=joi(new ioi(),epi,BCi(eWh),fpi,cpi,false);Bpi=joi(new ioi(),epi,BCi(fWh),fpi,cpi,false);voi=joi(new ioi(),epi,BCi(gWh),fpi,cpi,false);qqi=joi(new ioi(),epi,BCi(hWh),fpi,cpi,false);hqi=joi(new ioi(),epi,BCi(iWh),fpi,cpi,false);eqi=joi(new ioi(),epi,BCi(jWh),fpi,cpi,false);oqi=joi(new ioi(),epi,BCi(kWh),fpi,cpi,false);gqi=joi(new ioi(),epi,BCi(lWh),fpi,cpi,false);kqi=joi(new ioi(),epi,BCi(mWh),fpi,cpi,false);iqi=joi(new ioi(),epi,BCi(nWh),fpi,cpi,false);ypi=joi(new ioi(),epi,BCi(pWh),fpi,cpi,false);wpi=joi(new ioi(),epi,BCi(qWh),fpi,cpi,false);uqi=joi(new ioi(),epi,tEi(rWh,sWh),fpi,cpi,false);tqi=joi(new ioi(),epi,tEi(tWh,uWh),fpi,cpi,false);upi=joi(new ioi(),epi,BCi(vWh),fpi,cpi,false);pqi=joi(new ioi(),epi,BCi(wWh),fpi,cpi,false);Fqi=joi(new ioi(),epi,tEi(xWh,yWh),fpi,cpi,false);jsi=joi(new ioi(),epi,BCi(AWh),fpi,cpi,false);dsi=joi(new ioi(),epi,BCi(BWh),fpi,cpi,false);xri=joi(new ioi(),epi,tEi(CWh,DWh),fpi,cpi,false);bti=joi(new ioi(),epi,(bb=e9h(D_h,48,1,4,0),bb[0]=EWh,bb[1]=FWh,bb[2]=EWh,bb[3]=EWh,bb),fpi,cpi,false);avi=joi(new ioi(),epi,tEi(aXh,bXh),fpi,cpi,false);eui=joi(new ioi(),epi,BCi(cXh),fpi,cpi,false);hyi=joi(new ioi(),epi,BCi(dXh),fpi,cpi,false);kzi=joi(new ioi(),epi,BCi(fXh),fpi,cpi,false);nyi=joi(new ioi(),epi,BCi(gXh),fpi,cpi,false);zzi=joi(new ioi(),epi,BCi(hXh),fpi,cpi,false);xyi=joi(new ioi(),epi,BCi(iXh),fpi,cpi,false);sAi=joi(new ioi(),epi,BCi(jXh),fpi,cpi,false);oyi=joi(new ioi(),epi,BCi(kXh),fpi,cpi,false);xxi=joi(new ioi(),epi,BCi(lXh),fpi,cpi,false);qwi=joi(new ioi(),epi,BCi(mXh),fpi,cpi,false);nFi=joi(new ioi(),epi,BCi(nXh),fpi,cpi,false);cFi=joi(new ioi(),epi,BCi(oXh),fpi,cpi,false);xFi=joi(new ioi(),epi,BCi(rXh),fpi,cpi,false);yFi=joi(new ioi(),epi,BCi(sXh),fpi,cpi,false);eGi=joi(new ioi(),epi,BCi(tXh),fpi,cpi,false);tBi=joi(new ioi(),epi,tEi(uXh,vXh),fpi,cpi,false);cDi=joi(new ioi(),epi,BCi(wXh),fpi,cpi,false);sDi=joi(new ioi(),epi,BCi(xXh),fpi,cpi,false);qGi=joi(new ioi(),tGi,Fri(yXh,zXh),uGi,f9h(bai,0,-1,[false,true,true,false]),false);rGi=joi(new ioi(),tGi,Fri(AXh,CXh),uGi,f9h(bai,0,-1,[false,true,true,false]),false);xoi=joi(new ioi(),epi,BCi(DXh),fpi,cpi,false);Foi=joi(new ioi(),epi,BCi(EXh),fpi,cpi,false);bqi=joi(new ioi(),epi,BCi(FXh),fpi,cpi,false);bri=joi(new ioi(),epi,BCi(aYh),fpi,cpi,false);jvi=joi(new ioi(),epi,BCi(bYh),fpi,cpi,false);kvi=joi(new ioi(),epi,BCi(cYh),fpi,cpi,false);qyi=joi(new ioi(),epi,BCi(dYh),fpi,cpi,false);lzi=joi(new ioi(),epi,BCi(eYh),fpi,cpi,false);pAi=joi(new ioi(),epi,BCi(fYh),fpi,cpi,false);pyi=joi(new ioi(),epi,BCi(hYh),fpi,cpi,false);ixi=joi(new ioi(),epi,BCi(iYh),fpi,cpi,false);mwi=joi(new ioi(),epi,BCi(jYh),fpi,cpi,false);nwi=joi(new ioi(),epi,BCi(kYh),fpi,cpi,false);bFi=joi(new ioi(),epi,BCi(lYh),fpi,cpi,false);aFi=joi(new ioi(),epi,BCi(mYh),fpi,cpi,false);fGi=joi(new ioi(),epi,BCi(nYh),fpi,cpi,false);nBi=joi(new ioi(),epi,BCi(oYh),fpi,cpi,false);vBi=joi(new ioi(),epi,tEi(pYh,qYh),fpi,cpi,false);vEi=joi(new ioi(),epi,tEi(sYh,tYh),fpi,cpi,false);jEi=joi(new ioi(),epi,BCi(uYh),fpi,cpi,false);pEi=joi(new ioi(),epi,BCi(vYh),fpi,cpi,false);mEi=joi(new ioi(),epi,BCi(wYh),fpi,cpi,false);xpi=joi(new ioi(),epi,BCi(xYh),fpi,cpi,false);Epi=joi(new ioi(),epi,BCi(yYh),fpi,cpi,false);nqi=joi(new ioi(),epi,BCi(zYh),fpi,cpi,false);esi=joi(new ioi(),epi,BCi(AYh),fpi,cpi,false);psi=joi(new ioi(),epi,BCi(BYh),fpi,cpi,false);eti=joi(new ioi(),epi,tEi(DYh,EYh),fpi,cpi,false);Byi=joi(new ioi(),epi,BCi(FYh),fpi,cpi,false);yyi=joi(new ioi(),epi,BCi(aZh),fpi,cpi,false);svi=joi(new ioi(),epi,BCi(bZh),fpi,cpi,false);sxi=joi(new ioi(),epi,BCi(cZh),fpi,cpi,false);FEi=joi(new ioi(),epi,BCi(dZh),fpi,cpi,false);nDi=joi(new ioi(),epi,BCi(eZh),fpi,cpi,false);kEi=joi(new ioi(),epi,BCi(fZh),fpi,cpi,false);gCi=joi(new ioi(),epi,BCi(gZh),fpi,cpi,false);vpi=joi(new ioi(),epi,BCi(iZh),fpi,cpi,false);rsi=joi(new ioi(),epi,tEi(jZh,kZh),fpi,cpi,false);lui=joi(new ioi(),epi,BCi(lZh),fpi,cpi,false);awi=joi(new ioi(),epi,tEi(mZh,nZh),fpi,cpi,false);jyi=joi(new ioi(),epi,BCi(oZh),fpi,cpi,false);hAi=joi(new ioi(),epi,BCi(pZh),fpi,cpi,false);Cyi=joi(new ioi(),epi,BCi(qZh),fpi,cpi,false);gxi=joi(new ioi(),epi,tEi(rZh,tZh),fpi,cpi,false);jBi=joi(new ioi(),epi,tEi(uZh,vZh),fpi,cpi,false);kCi=joi(new ioi(),epi,tEi(wZh,xZh),fpi,cpi,false);FBi=joi(new ioi(),epi,BCi(yZh),fpi,cpi,false);uDi=joi(new ioi(),epi,tEi(zZh,AZh),fpi,cpi,false);tDi=joi(new ioi(),epi,tEi(BZh,CZh),fpi,cpi,false);rEi=joi(new ioi(),epi,BCi(EZh),fpi,cpi,false);hEi=joi(new ioi(),epi,BCi(FZh),fpi,cpi,false);pGi=joi(new ioi(),epi,tEi(a0h,b0h),fpi,cpi,false);hHi=joi(new ioi(),epi,tEi(c0h,d0h),fpi,cpi,false);ppi=joi(new ioi(),epi,BCi(e0h),fpi,cpi,false);qsi=joi(new ioi(),epi,tEi(f0h,g0h),fpi,cpi,false);tti=joi(new ioi(),epi,BCi(h0h),fpi,cpi,false);lti=joi(new ioi(),epi,BCi(j0h),fpi,cpi,false);Fui=joi(new ioi(),epi,tEi(k0h,l0h),fpi,cpi,false);iyi=joi(new ioi(),epi,BCi(m0h),fpi,cpi,false);Dyi=joi(new ioi(),epi,BCi(n0h),fpi,cpi,false);cBi=joi(new ioi(),epi,BCi(o0h),fpi,cpi,false);myi=joi(new ioi(),epi,BCi(p0h),fpi,cpi,false);owi=joi(new ioi(),epi,tEi(q0h,r0h),fpi,cpi,false);AFi=joi(new ioi(),epi,BCi(s0h),fpi,cpi,false);iEi=joi(new ioi(),epi,BCi(u0h),fpi,cpi,false);lEi=joi(new ioi(),epi,BCi(v0h),fpi,cpi,false);api=joi(new ioi(),epi,BCi(w0h),fpi,cpi,false);iAi=joi(new ioi(),epi,BCi(x0h),fpi,cpi,false);dBi=joi(new ioi(),epi,BCi(y0h),fpi,cpi,false);jFi=joi(new ioi(),epi,BCi(z0h),fpi,cpi,false);zFi=joi(new ioi(),epi,BCi(A0h),fpi,cpi,false);jCi=joi(new ioi(),epi,tEi(B0h,C0h),fpi,cpi,false);bsi=joi(new ioi(),epi,BCi(D0h),fpi,cpi,false);kFi=joi(new ioi(),epi,BCi(a1h),fpi,cpi,false);uBi=joi(new ioi(),epi,tEi(b1h,c1h),fpi,cpi,false);iBi=joi(new ioi(),epi,tEi(d1h,e1h),fpi,cpi,false);cqi=joi(new ioi(),epi,BCi(f1h),fpi,cpi,false);dDi=joi(new ioi(),epi,BCi(g1h),fpi,cpi,false);npi=joi(new ioi(),epi,BCi(h1h),fpi,cpi,false);CFi=joi(new ioi(),epi,BCi(i1h),fpi,cpi,false);BFi=joi(new ioi(),epi,BCi(j1h),fpi,cpi,false);dEi=joi(new ioi(),epi,BCi(l1h),fpi,cpi,false);eEi=joi(new ioi(),epi,BCi(m1h),fpi,cpi,false);Ati=joi(new ioi(),epi,tEi(n1h,o1h),fpi,cpi,false);Eui=joi(new ioi(),epi,BCi(p1h),fpi,cpi,false);csi=joi(new ioi(),epi,BCi(q1h),fpi,cpi,false);Dui=joi(new ioi(),epi,BCi(r1h),fpi,cpi,false);wqi=f9h(E_h,49,9,[ysi,Avi,yBi,mGi,eHi,iHi,jri,wsi,xsi,oti,pti,Aui,zui,xui,yui,Evi,Cvi,Dvi,Bvi,qvi,tvi,iFi,hFi,xCi,zCi,ACi,eFi,gHi,fHi,nGi,oGi,hpi,fti,nti,wti,qui,uvi,oxi,uxi,xwi,EBi,nCi,xDi,Bqi,soi,dri,sri,Cri,hri,fsi,wri,ori,Eqi,qti,zsi,Dti,wui,rui,Bti,hvi,lvi,zAi,pvi,zxi,wxi,fxi,rwi,gwi,swi,gFi,gGi,kGi,CEi,fBi,lBi,CBi,DBi,oDi,hDi,sCi,rDi,EDi,oCi,cHi,sqi,bpi,Eoi,Ari,asi,tri,vri,eri,cti,ati,Cti,tui,zvi,izi,vvi,CAi,aBi,Ayi,Axi,rxi,fwi,twi,hGi,dFi,aGi,sFi,pDi,mDi,FCi,DCi,vDi,oEi,yCi,CDi,DDi,zDi,zGi,woi,toi,rqi,Coi,ipi,Aoi,iri,vsi,usi,aui,sui,fvi,nvi,evi,dAi,yzi,azi,FAi,xAi,szi,uAi,hzi,syi,byi,dyi,DAi,zyi,Fxi,Bxi,Bwi,txi,ywi,Awi,zwi,qFi,iGi,yEi,tFi,rFi,bGi,sBi,oBi,xBi,aDi,fEi,ECi,gEi,ABi,mCi,aCi,wCi,pCi,vCi,jpi,mpi,Cqi,Bri,rri,uri,pri,gri,gsi,qri,msi,osi,vti,Csi,Asi,Esi,iti,kti,Fsi,dti,bwi,cvi,dvi,gAi,wyi,BAi,ryi,xzi,nzi,jzi,tzi,eyi,tAi,kAi,yAi,Dxi,vxi,qxi,vwi,kwi,lFi,zEi,AEi,DFi,vFi,hBi,wBi,qDi,lCi,uCi,CCi,qEi,yDi,hCi,zqi,Doi,kri,Eri,Dri,tsi,fri,ari,zti,rti,uti,Bui,Dsi,hti,gui,ewi,eBi,mvi,lAi,vyi,tyi,wAi,mzi,qAi,AAi,bBi,vAi,jAi,rAi,Exi,Cxi,Cwi,lxi,yxi,uwi,hwi,BEi,wEi,BBi,iDi,rCi,gDi,qCi,cEi,iCi,DGi,EGi,dHi,dqi,yqi,mqi,yoi,qpi,Api,kpi,aqi,zri,yri,yti,sti,gti,mti,bui,Fti,hui,kui,cwi,gvi,Azi,xvi,czi,eAi,uzi,vzi,ozi,bAi,wvi,nAi,jxi,hxi,pxi,pwi,wwi,fFi,dGi,uFi,rBi,pBi,qBi,mBi,uEi,fDi,cCi,jDi,kDi,bHi,Aqi,gpi,Boi,zoi,Fpi,ksi,lri,Dqi,Cui,bvi,fui,iui,nui,dwi,ovi,fyi,cyi,yvi,Eyi,bzi,wzi,mAi,fzi,pzi,Fzi,ayi,dxi,cxi,DEi,FFi,EFi,wFi,gBi,dCi,zBi,aEi,lDi,eCi,tCi,jHi,yGi,vGi,sGi,wGi,uoi,jqi,opi,Cpi,zpi,lpi,mri,nri,lsi,hsi,isi,ssi,cri,jui,uui,cui,dui,pui,ivi,ezi,Ezi,EAi,Bzi,aAi,dzi,rvi,lyi,rzi,gzi,fAi,axi,mxi,Ewi,bxi,EEi,xEi,bDi,bCi,FDi,ADi,eDi,CGi,xGi,Dpi,fqi,spi,xqi,lqi,rpi,xti,jti,Bsi,Eti,oui,mui,vui,Fvi,Fyi,oAi,Dzi,qzi,uyi,cAi,Czi,gyi,kyi,Dwi,Fwi,exi,kxi,lwi,pFi,mFi,oFi,jGi,lGi,cGi,kBi,wDi,sEi,nEi,fCi,BDi,bEi,tpi,Bpi,voi,qqi,hqi,eqi,oqi,gqi,kqi,iqi,ypi,wpi,uqi,tqi,upi,pqi,Fqi,jsi,dsi,xri,bti,avi,eui,hyi,kzi,nyi,zzi,xyi,sAi,oyi,xxi,qwi,nFi,cFi,xFi,yFi,eGi,tBi,cDi,sDi,qGi,rGi,xoi,Foi,bqi,bri,jvi,kvi,qyi,lzi,pAi,pyi,ixi,mwi,nwi,bFi,aFi,fGi,nBi,vBi,vEi,jEi,pEi,mEi,xpi,Epi,nqi,esi,psi,eti,Byi,yyi,svi,sxi,FEi,nDi,kEi,gCi,vpi,rsi,lui,awi,jyi,hAi,Cyi,gxi,jBi,kCi,FBi,uDi,tDi,rEi,hEi,pGi,hHi,ppi,qsi,tti,lti,Fui,iyi,Dyi,cBi,myi,owi,AFi,iEi,lEi,api,iAi,dBi,jFi,zFi,jCi,bsi,kFi,uBi,iBi,cqi,dDi,npi,CFi,BFi,dEi,eEi,Ati,Eui,csi,Dui]);vqi=f9h(B_h,0,-1,[1153,1383,1601,1793,1827,1857,68600,69146,69177,70237,70270,71572,71669,72415,72444,74846,74904,74943,75001,75276,75590,84742,84839,85575,85963,85992,87204,88074,88171,89130,89163,3207892,3283895,3284791,3338752,3358197,3369562,3539124,3562402,3574260,3670335,3696933,3721879,135280021,135346322,136317019,136475749,136548517,136652214,136884919,136902418,136942992,137292068,139120259,139785574,142250603,142314056,142331176,142519584,144752417,145106895,146147200,146765926,148805544,149655723,149809441,150018784,150445028,150923321,152528754,152536216,152647366,152962785,155219321,155654904,157317483,157350248,157437941,157447478,157604838,157685404,157894402,158315188,166078431,169409980,169700259,169856932,170007032,170409695,170466488,170513710,170608367,173028944,173896963,176090625,176129212,179390001,179489057,179627464,179840468,179849042,180004216,181779081,183027151,183645319,183698797,185922012,185997252,188312483,188675799,190977533,190992569,191006194,191033518,191038774,191096249,191166163,191194426,191522106,191568039,200104642,202506661,202537381,202602917,203070590,203120766,203389054,203690071,203971238,203986524,209040857,209125756,212055489,212322418,212746849,213002877,213055164,213088023,213259873,213273386,213435118,213437318,213438231,213493071,213532268,213542834,213584431,213659891,215285828,215880731,216112976,216684637,217369699,217565298,217576549,218186795,219743185,220082234,221623802,221986406,222283890,223089542,223138630,223311265,224547358,224587256,224589550,224655650,224785518,224810917,224813302,225429618,225432950,225440869,236107233,236709921,236838947,237117095,237143271,237172455,237209953,237354143,237372743,237668065,237703073,237714273,239743521,240512803,240522627,240560417,240656513,241015715,241062755,241065383,243523041,245865199,246261793,246556195,246774817,246923491,246928419,246981667,247014847,247058369,247112833,247118177,247119137,247128739,247316903,249533729,250235623,250269543,251083937,251402351,252339047,253260911,253293679,254844367,255547879,256077281,256345377,258124199,258354465,258605063,258744193,258845603,258856961,258926689,269869248,270174334,270709417,270778994,270781796,271102503,271478858,271490090,272870654,273335275,273369140,273924313,274108530,274116736,276818662,277476156,279156579,279349675,280108533,280128712,280132869,280162403,280280292,280413430,280506130,280677397,280678580,280686710,280689066,282736758,283110901,283275116,283823226,283890012,284479340,284606461,286700477,286798916,291557706,291665349,291804100,292138018,292166446,292418738,292451039,300298041,300374839,300597935,303073389,303083839,303266673,303354997,303430688,303576261,303724281,303819694,304242723,304382625,306247792,307227811,307468786,307724489,309671175,310252031,310358241,310373094,311015256,313357609,313683893,313701861,313706996,313707317,313710350,314027746,314038181,314091299,314205627,314233813,316741830,316797986,317486755,317794164,318721061,320076137,322657125,322887778,323506876,323572412,323605180,323938869,325060058,325320188,325398738,325541490,325671619,333868843,336806130,337212108,337282686,337285434,337585223,338036037,338298087,338566051,340943551,341190970,342995704,343352124,343912673,344585053,346977248,347218098,347262163,347278576,347438191,347655959,347684788,347726430,347727772,347776035,347776629,349500753,350880161,350887073,353384123,355496998,355906922,355979793,356545959,358637867,358905016,359164318,359247286,359350571,359579447,365560330,367399355,367420285,367510727,368013212,370234760,370353345,370710317,371074566,371122285,371194213,371448425,371448430,371545055,371596922,371758751,371964792,372151328,376550136,376710172,376795771,376826271,376906556,380514830,380774774,380775037,381030322,381136500,381281631,381282269,381285504,381330595,381331422,381335911,381336484,383907298,383917408,384595009,384595013,387799894,387823201,392581647,392584937,392742684,392906485,393003349,400644707,400973830,404428547,404432113,404432865,404469244,404478897,404694860,406887479,408294949,408789955,410022510,410467324,410586448,410945965,411845275,414327152,414327932,414329781,414346257,414346439,414639928,414835998,414894517,414986533,417465377,417465381,417492216,418259232,419310946,420103495,420242342,420380455,420658662,420717432,423183880,424539259,425929170,425972964,426050649,426126450,426142833,426607922,437289840,437347469,437412335,437423943,437455540,437462252,437597991,437617485,437986305,437986507,437986828,437987072,438015591,438034813,438038966,438179623,438347971,438483573,438547062,438895551,441592676,442032555,443548979,447881379,447881655,447881895,447887844,448416189,448445746,448449012,450942191,452816744,453668677,454434495,456610076,456642844,456738709,457544600,459451897,459680944,468058810,468083581,470964084,471470955,471567278,472267822,481177859,481210627,481435874,481455115,481485378,481490218,485105638,486005878,486383494,487988916,488103783,490661867,491574090,491578272,493041952,493441205,493582844,493716979,504577572,504740359,505091638,505592418,505656212,509516275,514998531,515571132,515594682,518712698,521362273,526592419,526807354,527348842,538294791,539214049,544689535,545535009,548544752,548563346,548595116,551679010,558034099,560329411,560356209,560671018,560671152,560692590,560845442,569212097,569474241,572252718,572768481,575326764,576174758,576190819,582099184,582099438,582372519,582558889,586552164,591325418,594231990,594243961,605711268,615672071,616086845,621792370,624879850,627432831,640040548,654392808,658675477,659420283,672891587,694768102,705890982,725543146,759097578,761686526,795383908,843809551,878105336,908643300,945213471])} +function koi(d,e,a,c,b,f){loi();d.c=e;d.a=a;nsi(a,c);d.b=b;d.d=f;return d} +function joi(d,e,a,c,b,f){loi();d.c=e;d.a=a;nsi(a,c);d.b=b;d.d=f;return d} +function poi(a){return a==Coi||a==sqi||a==yqi||a==Aqi||a==rri||a==msi||a==Esi||a==Fsi||a==ati||a==hti||a==zvi||a==yxi||a==Bxi||a==Cxi||a==Dxi||a==Fxi||a==BBi||a==iCi||a==iDi} +function qoi(a){return a==Coi||a==Eoi||a==sqi||a==xqi||a==yqi||a==Aqi||a==rri||a==vri||a==msi||a==Bsi||a==Esi||a==Fsi||a==ati||a==fti||a==hti||a==vti||a==tui||a==zvi||a==txi||a==yxi||a==Bxi||a==Cxi||a==Dxi||a==Fxi||a==BBi||a==hCi||a==iCi||a==yCi||a==FCi||a==fDi||a==iDi||a==mDi||a==EDi||a==gFi||a==rFi||a==uFi} +function Fri(b,c){var a;a=e9h(D_h,48,1,4,0);a[0]=b;a[1]=c;a[2]=c;a[3]=b;return a} +function nsi(c,d){var a,b;a=e9h(D_h,48,1,4,0);for(b=0;b<a.length;++b){if(d[b]==null){a[b]=c[b]}else{a[b]=String(d[b]+iBg+c[b])}}return a} +function BCi(b){var a;a=e9h(D_h,48,1,4,0);a[0]=b;a[1]=b;a[2]=b;a[3]=b;return a} +function tEi(c,b){var a;a=e9h(D_h,48,1,4,0);a[0]=c;a[1]=c;a[2]=b;a[3]=c;return a} +function kHi(a,f){var b,c,d,e;c=0;b=f;b<<=5;b+=a[0]-96;e=f;for(d=0;d<4&&e>0;++d){--e;b<<=5;b+=a[e]-96;c<<=6;c+=a[d]-95}return b^c} +function lHi(b,a){var c,g;c=true;g=b.indexOf(s1h)==0;if(a){if(g){c=false}else{c=pVi(b)}}return joi(new ioi(),epi,BCi(b),fpi,c?cpi:dpi,g)} +function nHi(){return o_h} +function oHi(b,j,h,c){var f,g;loi();var a,d,e,i;d=kHi(b,h);e=wji(vqi,d);if(e<0){return lHi(String((f=j+h,mfi(b.length,j,f),ofi(b,j,f))),c)}else{a=wqi[e];i=a.a[0];if(!xVi(i,b,j,h)){return lHi(String((g=j+h,mfi(b.length,j,g),ofi(b,j,g))),c)}return a}} +function ioi(){} +_=ioi.prototype=new xdi();_.gC=nHi;_.tI=36;_.a=null;_.b=null;_.c=null;_.d=false;var soi,toi,uoi,voi,woi,xoi,yoi,zoi,Aoi,Boi,Coi,Doi,Eoi,Foi,api,bpi,cpi,dpi,epi,fpi,gpi,hpi,ipi,jpi,kpi,lpi,mpi,npi,opi,ppi,qpi,rpi,spi,tpi,upi,vpi,wpi,xpi,ypi,zpi,Api,Bpi,Cpi,Dpi,Epi,Fpi,aqi,bqi,cqi,dqi,eqi,fqi,gqi,hqi,iqi,jqi,kqi,lqi,mqi,nqi,oqi,pqi,qqi,rqi,sqi,tqi,uqi,vqi,wqi,xqi,yqi,zqi,Aqi,Bqi,Cqi,Dqi,Eqi,Fqi,ari,bri,cri,dri,eri,fri,gri,hri,iri,jri,kri,lri,mri,nri,ori,pri,qri,rri,sri,tri,uri,vri,wri,xri,yri,zri,Ari,Bri,Cri,Dri,Eri,asi,bsi,csi,dsi,esi,fsi,gsi,hsi,isi,jsi,ksi,lsi,msi,osi,psi,qsi,rsi,ssi,tsi,usi,vsi,wsi,xsi,ysi,zsi,Asi,Bsi,Csi,Dsi,Esi,Fsi,ati,bti,cti,dti,eti,fti,gti,hti,iti,jti,kti,lti,mti,nti,oti,pti,qti,rti,sti,tti,uti,vti,wti,xti,yti,zti,Ati,Bti,Cti,Dti,Eti,Fti,aui,bui,cui,dui,eui,fui,gui,hui,iui,jui,kui,lui,mui,nui,oui,pui,qui,rui,sui,tui,uui,vui,wui,xui,yui,zui,Aui,Bui,Cui,Dui,Eui,Fui,avi,bvi,cvi,dvi,evi,fvi,gvi,hvi,ivi,jvi,kvi,lvi,mvi,nvi,ovi,pvi,qvi,rvi,svi,tvi,uvi,vvi,wvi,xvi,yvi,zvi,Avi,Bvi,Cvi,Dvi,Evi,Fvi,awi,bwi,cwi,dwi,ewi,fwi,gwi,hwi,iwi,jwi,kwi,lwi,mwi,nwi,owi,pwi,qwi,rwi,swi,twi,uwi,vwi,wwi,xwi,ywi,zwi,Awi,Bwi,Cwi,Dwi,Ewi,Fwi,axi,bxi,cxi,dxi,exi,fxi,gxi,hxi,ixi,jxi,kxi,lxi,mxi,oxi,pxi,qxi,rxi,sxi,txi,uxi,vxi,wxi,xxi,yxi,zxi,Axi,Bxi,Cxi,Dxi,Exi,Fxi,ayi,byi,cyi,dyi,eyi,fyi,gyi,hyi,iyi,jyi,kyi,lyi,myi,nyi,oyi,pyi,qyi,ryi,syi,tyi,uyi,vyi,wyi,xyi,yyi,zyi,Ayi,Byi,Cyi,Dyi,Eyi,Fyi,azi,bzi,czi,dzi,ezi,fzi,gzi,hzi,izi,jzi,kzi,lzi,mzi,nzi,ozi,pzi,qzi,rzi,szi,tzi,uzi,vzi,wzi,xzi,yzi,zzi,Azi,Bzi,Czi,Dzi,Ezi,Fzi,aAi,bAi,cAi,dAi,eAi,fAi,gAi,hAi,iAi,jAi,kAi,lAi,mAi,nAi,oAi,pAi,qAi,rAi,sAi,tAi,uAi,vAi,wAi,xAi,yAi,zAi,AAi,BAi,CAi,DAi,EAi,FAi,aBi,bBi,cBi,dBi,eBi,fBi,gBi,hBi,iBi,jBi,kBi,lBi,mBi,nBi,oBi,pBi,qBi,rBi,sBi,tBi,uBi,vBi,wBi,xBi,yBi,zBi,ABi,BBi,CBi,DBi,EBi,FBi,aCi,bCi,cCi,dCi,eCi,fCi,gCi,hCi,iCi,jCi,kCi,lCi,mCi,nCi,oCi,pCi,qCi,rCi,sCi,tCi,uCi,vCi,wCi,xCi,yCi,zCi,ACi,CCi,DCi,ECi,FCi,aDi,bDi,cDi,dDi,eDi,fDi,gDi,hDi,iDi,jDi,kDi,lDi,mDi,nDi,oDi,pDi,qDi,rDi,sDi,tDi,uDi,vDi,wDi,xDi,yDi,zDi,ADi,BDi,CDi,DDi,EDi,FDi,aEi,bEi,cEi,dEi,eEi,fEi,gEi,hEi,iEi,jEi,kEi,lEi,mEi,nEi,oEi,pEi,qEi,rEi,sEi,uEi,vEi,wEi,xEi,yEi,zEi,AEi,BEi,CEi,DEi,EEi,FEi,aFi,bFi,cFi,dFi,eFi,fFi,gFi,hFi,iFi,jFi,kFi,lFi,mFi,nFi,oFi,pFi,qFi,rFi,sFi,tFi,uFi,vFi,wFi,xFi,yFi,zFi,AFi,BFi,CFi,DFi,EFi,FFi,aGi,bGi,cGi,dGi,eGi,fGi,gGi,hGi,iGi,jGi,kGi,lGi,mGi,nGi,oGi,pGi,qGi,rGi,sGi,tGi,uGi,vGi,wGi,xGi,yGi,zGi,AGi,BGi,CGi,DGi,EGi,FGi,aHi,bHi,cHi,dHi,eHi,fHi,gHi,hHi,iHi,jHi;function xHi(){xHi=u0i;vHi(new uHi(),null);yHi=wHi(new uHi(),oFg,oFg,1,false,false,false);CIi=wHi(new uHi(),t1h,t1h,45,false,false,false);vMi=wHi(new uHi(),u1h,u1h,0,false,false,false);iNi=wHi(new uHi(),w1h,w1h,45,false,false,false);BQi=wHi(new uHi(),ywg,ywg,29,true,false,false);oRi=wHi(new uHi(),x1h,x1h,0,false,false,false);CRi=wHi(new uHi(),oOg,oOg,45,false,false,false);sTi=wHi(new uHi(),y1h,y1h,45,false,false,false);eJi=wHi(new uHi(),z1h,z1h,4,true,false,false);nJi=wHi(new uHi(),A1h,A1h,0,false,false,false);rJi=wHi(new uHi(),B1h,B1h,0,false,false,false);hKi=wHi(new uHi(),C1h,C1h,41,true,false,false);yKi=wHi(new uHi(),D1h,D1h,46,true,false,false);BKi=wHi(new uHi(),E1h,E1h,41,true,false,false);FKi=wHi(new uHi(),F1h,F1h,45,false,false,false);cLi=wHi(new uHi(),b2h,b2h,0,false,false,false);iMi=wHi(new uHi(),c2h,c2h,0,false,false,false);CMi=wHi(new uHi(),d2h,d2h,42,true,false,false);DMi=wHi(new uHi(),e2h,e2h,42,true,false,false);EMi=wHi(new uHi(),f2h,f2h,42,true,false,false);FMi=wHi(new uHi(),g2h,g2h,42,true,false,false);aNi=wHi(new uHi(),h2h,h2h,42,true,false,false);bNi=wHi(new uHi(),i2h,i2h,42,true,false,false);BMi=wHi(new uHi(),j2h,j2h,0,false,false,false);gNi=wHi(new uHi(),k2h,k2h,22,true,false,false);qNi=wHi(new uHi(),qYg,qYg,0,false,false,false);cOi=wHi(new uHi(),m2h,m2h,15,true,false,false);kOi=wHi(new uHi(),n2h,n2h,0,false,false,false);oOi=wHi(new uHi(),o2h,o2h,0,false,false,false);gPi=wHi(new uHi(),p2h,p2h,57,false,false,false);mPi=wHi(new uHi(),q2h,q2h,57,false,false,false);nPi=wHi(new uHi(),r2h,r2h,57,false,false,false);yPi=wHi(new uHi(),s2h,s2h,57,false,false,false);uQi=wHi(new uHi(),t2h,t2h,46,true,false,false);xQi=wHi(new uHi(),u2h,u2h,0,false,false,false);aRi=wHi(new uHi(),v2h,v2h,0,false,false,false);yRi=wHi(new uHi(),x2h,x2h,53,false,false,false);zRi=wHi(new uHi(),tZg,tZg,53,false,false,false);bTi=wHi(new uHi(),fyg,fyg,40,false,true,false);hTi=wHi(new uHi(),qyg,qyg,40,false,true,false);mTi=wHi(new uHi(),uBg,uBg,37,true,false,true);rTi=wHi(new uHi(),y2h,y2h,45,false,false,false);tTi=wHi(new uHi(),z2h,z2h,46,true,false,false);aIi=wHi(new uHi(),A2h,A2h,0,false,false,false);yIi=wHi(new uHi(),B2h,B2h,0,false,false,false);AHi=wHi(new uHi(),C2h,C2h,0,false,false,false);bJi=wHi(new uHi(),D2h,D2h,45,false,false,false);FIi=wHi(new uHi(),E2h,E2h,0,false,false,false);aKi=wHi(new uHi(),F2h,F2h,0,false,false,false);uJi=wHi(new uHi(),a3h,a3h,7,true,false,false);CJi=wHi(new uHi(),c3h,c3h,0,false,false,false);EJi=wHi(new uHi(),d3h,d3h,0,false,false,false);mKi=wHi(new uHi(),e3h,e3h,0,false,false,false);qKi=wHi(new uHi(),f3h,f3h,0,false,false,false);tKi=wHi(new uHi(),w2g,w2g,51,true,false,false);vKi=wHi(new uHi(),dFg,dFg,50,true,false,false);hLi=wHi(new uHi(),g3h,g3h,0,false,false,false);wMi=wHi(new uHi(),h3h,h3h,0,false,false,false);xMi=wHi(new uHi(),i3h,i3h,0,false,false,false);oNi=wHi(new uHi(),j3h,j3h,48,true,false,false);tNi=wHi(new uHi(),k3h,k3h,0,false,false,false);uNi=wHi(new uHi(),l3h,l3h,0,false,false,false);ANi=wHi(new uHi(),n3h,n3h,0,false,false,false);lOi=wHi(new uHi(),o3h,o3h,0,false,false,false);FNi=wHi(new uHi(),p3h,p3h,0,false,false,false);bOi=wHi(new uHi(),q3h,q3h,0,false,false,false);aQi=wHi(new uHi(),r3h,r3h,0,false,false,false);hPi=wHi(new uHi(),z4g,z4g,0,false,false,false);sOi=wHi(new uHi(),s3h,s3h,0,false,false,false);cQi=wHi(new uHi(),t3h,t3h,0,false,false,false);AOi=wHi(new uHi(),o4g,o4g,0,false,false,false);hQi=wHi(new uHi(),u3h,u3h,0,false,false,false);oQi=wHi(new uHi(),v3h,v3h,0,false,false,false);gQi=wHi(new uHi(),w3h,w3h,51,true,false,false);iRi=wHi(new uHi(),y3h,y3h,44,true,false,false);wRi=wHi(new uHi(),z3h,z3h,0,false,false,false);vSi=wHi(new uHi(),A3h,A3h,52,false,false,false);bSi=wHi(new uHi(),B3h,B3h,0,false,false,false);zSi=wHi(new uHi(),C3h,C3h,19,false,false,false);xSi=wHi(new uHi(),D3h,D3h,0,false,false,false);kSi=wHi(new uHi(),E3h,E3h,0,false,false,false);hSi=wHi(new uHi(),F3h,F3h,0,false,false,false);ySi=wHi(new uHi(),a4h,a4h,52,false,false,false);iSi=wHi(new uHi(),b4h,b4h,0,false,false,false);DSi=wHi(new uHi(),d4h,d4h,0,false,false,false);wTi=wHi(new uHi(),e4h,e4h,0,false,false,false);xTi=wHi(new uHi(),f4h,f4h,52,false,false,false);ETi=wHi(new uHi(),g4h,g4h,49,true,false,false);FTi=wHi(new uHi(),sIg,sIg,38,false,false,false);aUi=wHi(new uHi(),h4h,h4h,0,false,false,false);xIi=wHi(new uHi(),i4h,i4h,49,true,false,false);zHi=wHi(new uHi(),C6g,C6g,0,false,false,false);DIi=wHi(new uHi(),u9g,u9g,2,true,false,false);gJi=wHi(new uHi(),j4h,j4h,0,false,false,false);dJi=wHi(new uHi(),lDg,lDg,3,true,false,false);jJi=wHi(new uHi(),k4h,k4h,0,false,false,false);sJi=wHi(new uHi(),D7g,D7g,45,false,false,false);pJi=wHi(new uHi(),s7g,s7g,0,false,false,false);bKi=wHi(new uHi(),l4h,l4h,0,false,false,false);DJi=wHi(new uHi(),m4h,m4h,0,false,false,false);FJi=wHi(new uHi(),p4h,p4h,0,false,false,false);dKi=wHi(new uHi(),q4h,q4h,0,false,false,false);nKi=wHi(new uHi(),r4h,r4h,59,false,false,false);sKi=wHi(new uHi(),s4h,s4h,0,false,false,false);kKi=wHi(new uHi(),t4h,t4h,0,false,false,false);sMi=wHi(new uHi(),srg,srg,9,true,false,false);jMi=wHi(new uHi(),u4h,u4h,64,false,false,false);AMi=wHi(new uHi(),v4h,v4h,0,false,false,false);dNi=wHi(new uHi(),Drg,Drg,20,true,false,false);hNi=wHi(new uHi(),hAg,hAg,23,false,true,false);eOi=wHi(new uHi(),w4h,w4h,0,false,false,false);gOi=wHi(new uHi(),Abh,Abh,16,true,false,false);hOi=wHi(new uHi(),qch,qch,0,false,false,false);aPi=wHi(new uHi(),x4h,x4h,18,true,false,false);CPi=wHi(new uHi(),y4h,y4h,0,false,false,false);oPi=wHi(new uHi(),dbh,dbh,0,false,false,false);xOi=wHi(new uHi(),A4h,A4h,17,false,false,false);tOi=wHi(new uHi(),B4h,B4h,0,false,false,false);wOi=wHi(new uHi(),pbh,pbh,0,false,false,false);BOi=wHi(new uHi(),C4h,C4h,0,false,false,false);EPi=wHi(new uHi(),D4h,D4h,0,false,false,false);EOi=wHi(new uHi(),E4h,E4h,50,true,false,false);xPi=wHi(new uHi(),F4h,F4h,0,false,false,false);mQi=wHi(new uHi(),a5h,a5h,0,false,false,false);jQi=wHi(new uHi(),zFg,zFg,24,false,false,false);iQi=wHi(new uHi(),b5h,b5h,0,false,false,false);EQi=wHi(new uHi(),heh,heh,0,false,false,false);eRi=wHi(new uHi(),c5h,c5h,0,false,false,false);BRi=wHi(new uHi(),d5h,d5h,0,false,false,false);sRi=wHi(new uHi(),f5h,f5h,0,false,false,false);vRi=wHi(new uHi(),g5h,g5h,0,false,false,false);uRi=wHi(new uHi(),h5h,h5h,0,false,false,false);xRi=wHi(new uHi(),i5h,i5h,0,false,false,false);ARi=wHi(new uHi(),AGg,AGg,52,false,false,false);cSi=wHi(new uHi(),j5h,j5h,0,false,false,false);lSi=wHi(new uHi(),k5h,k5h,0,false,false,false);qSi=wHi(new uHi(),lhh,lhh,52,false,false,false);DRi=wHi(new uHi(),l5h,l5h,0,false,false,false);rSi=wHi(new uHi(),m5h,m5h,0,false,false,false);aSi=wHi(new uHi(),n5h,n5h,0,false,false,false);jTi=wHi(new uHi(),o5h,o5h,0,false,false,false);pTi=wHi(new uHi(),q5h,q5h,0,false,false,false);oTi=wHi(new uHi(),r5h,r5h,0,false,false,false);ESi=wHi(new uHi(),s5h,s5h,0,false,false,false);dTi=wHi(new uHi(),Cdh,Cdh,0,false,false,false);CTi=wHi(new uHi(),t5h,t5h,0,false,false,false);AIi=wHi(new uHi(),u5h,u5h,51,true,false,false);BIi=wHi(new uHi(),v5h,v5h,0,false,false,false);jIi=wHi(new uHi(),w5h,w5h,0,false,false,false);aLi=wHi(new uHi(),x5h,x5h,48,true,false,false);tMi=wHi(new uHi(),smh,smh,10,true,false,false);lLi=wHi(new uHi(),y5h,y5h,0,false,false,false);hMi=wHi(new uHi(),z5h,z5h,0,false,false,false);yMi=wHi(new uHi(),B5h,B5h,0,false,false,false);fNi=wHi(new uHi(),C5h,C5h,0,false,false,false);lNi=wHi(new uHi(),D5h,D5h,12,true,false,false);jNi=wHi(new uHi(),E5h,E5h,0,false,false,false);sNi=wHi(new uHi(),pGg,pGg,13,true,false,false);CNi=wHi(new uHi(),wph,wph,62,false,false,false);dOi=wHi(new uHi(),F5h,F5h,0,false,false,false);ePi=wHi(new uHi(),a6h,a6h,0,false,false,false);tPi=wHi(new uHi(),b6h,b6h,0,false,false,false);cPi=wHi(new uHi(),c6h,c6h,0,false,false,false);rPi=wHi(new uHi(),d6h,d6h,0,false,false,false);iPi=wHi(new uHi(),e6h,e6h,0,false,false,false);wPi=wHi(new uHi(),g6h,g6h,0,false,false,false);APi=wHi(new uHi(),h6h,h6h,0,false,false,false);bQi=wHi(new uHi(),i6h,i6h,57,false,false,false);qQi=wHi(new uHi(),j6h,j6h,0,false,false,false);bRi=wHi(new uHi(),k6h,k6h,0,false,false,false);CQi=wHi(new uHi(),l6h,l6h,55,true,false,false);hRi=wHi(new uHi(),m6h,m6h,0,false,false,false);tRi=wHi(new uHi(),n6h,n6h,0,false,false,false);uSi=wHi(new uHi(),BHg,BHg,33,true,false,false);mSi=wHi(new uHi(),o6h,o6h,45,false,false,false);iTi=wHi(new uHi(),kCg,kCg,39,true,false,true);CSi=wHi(new uHi(),cwg,cwg,34,false,true,true);lTi=wHi(new uHi(),fHg,fHg,36,true,false,false);qTi=wHi(new uHi(),p6h,p6h,0,false,false,false);kTi=wHi(new uHi(),r6h,r6h,0,false,false,false);gTi=wHi(new uHi(),vCg,vCg,39,true,false,true);FSi=wHi(new uHi(),FBg,FBg,39,true,false,true);uTi=wHi(new uHi(),s6h,s6h,0,false,false,false);DTi=wHi(new uHi(),t6h,t6h,0,false,false,false);BTi=wHi(new uHi(),u6h,u6h,0,false,false,false);rIi=wHi(new uHi(),v6h,v6h,0,false,false,false);pIi=wHi(new uHi(),w6h,w6h,0,false,false,false);vIi=wHi(new uHi(),x6h,x6h,0,false,false,false);tIi=wHi(new uHi(),y6h,y6h,0,false,false,false);lIi=wHi(new uHi(),z6h,z6h,0,false,false,false);iIi=wHi(new uHi(),A6h,A6h,43,false,true,false);nIi=wHi(new uHi(),C6h,C6h,0,false,false,false);kIi=wHi(new uHi(),D6h,D6h,0,false,false,false);fJi=wHi(new uHi(),E6h,E6h,5,false,true,false);oJi=wHi(new uHi(),F6h,F6h,0,false,false,false);mJi=wHi(new uHi(),a7h,a7h,50,true,false,false);eKi=wHi(new uHi(),axh,axh,0,false,false,false);hJi=wHi(new uHi(),b7h,b7h,0,false,false,false);xKi=wHi(new uHi(),c7h,c7h,0,false,false,false);lKi=wHi(new uHi(),d7h,d7h,0,false,false,false);rKi=wHi(new uHi(),e7h,e7h,51,true,false,false);zKi=wHi(new uHi(),f7h,f7h,0,false,false,false);gLi=wHi(new uHi(),h7h,h7h,0,false,false,false);cMi=wHi(new uHi(),i7h,j7h,0,false,false,false);fMi=wHi(new uHi(),k7h,k7h,51,true,false,false);qMi=wHi(new uHi(),l7h,l7h,0,false,false,false);gMi=wHi(new uHi(),wxh,wxh,0,false,false,false);pMi=wHi(new uHi(),m7h,m7h,51,true,false,false);eNi=wHi(new uHi(),n7h,n7h,51,true,false,false);kNi=wHi(new uHi(),DIg,DIg,47,true,false,false);BNi=wHi(new uHi(),o7h,o7h,65,true,false,false);DNi=wHi(new uHi(),p7h,p7h,0,false,false,false);aOi=wHi(new uHi(),q7h,q7h,0,false,false,false);zPi=wHi(new uHi(),s7h,s7h,0,false,false,false);FPi=wHi(new uHi(),t7h,t7h,0,false,false,false);BPi=wHi(new uHi(),u7h,u7h,0,false,false,false);fPi=wHi(new uHi(),v7h,v7h,56,false,false,false);COi=wHi(new uHi(),w7h,w7h,0,false,false,false);dQi=wHi(new uHi(),x7h,x7h,0,false,false,false);uOi=wHi(new uHi(),y7h,y7h,0,false,false,false);FOi=wHi(new uHi(),z7h,z7h,0,false,false,false);pPi=wHi(new uHi(),A7h,A7h,0,false,false,false);yOi=wHi(new uHi(),B7h,B7h,0,false,false,false);wQi=wHi(new uHi(),dxg,dxg,28,true,false,false);tQi=wHi(new uHi(),FKg,FKg,63,false,true,false);AQi=wHi(new uHi(),Dqg,Dqg,62,false,false,false);kRi=wHi(new uHi(),Eqg,Eqg,0,false,false,false);oSi=wHi(new uHi(),Fqg,Fqg,55,false,false,false);sSi=wHi(new uHi(),arg,arg,45,false,false,false);tSi=wHi(new uHi(),brg,brg,45,false,false,false);ASi=wHi(new uHi(),crg,crg,0,false,false,false);BSi=wHi(new uHi(),drg,drg,0,false,false,false);pSi=wHi(new uHi(),erg,erg,49,true,false,false);eSi=wHi(new uHi(),xvg,xvg,32,true,false,false);wSi=wHi(new uHi(),frg,frg,0,false,false,false);FRi=wHi(new uHi(),hIg,hIg,31,true,false,false);aTi=wHi(new uHi(),grg,grg,0,false,false,false);zTi=wHi(new uHi(),irg,irg,0,false,false,false);zIi=wHi(new uHi(),jrg,jrg,51,true,false,false);bIi=wHi(new uHi(),krg,krg,0,false,false,false);sIi=wHi(new uHi(),lrg,lrg,0,false,false,false);qIi=wHi(new uHi(),mrg,mrg,0,false,false,false);wIi=wHi(new uHi(),nrg,nrg,0,false,false,false);uIi=wHi(new uHi(),org,org,0,false,false,false);mIi=wHi(new uHi(),prg,prg,0,false,false,false);oIi=wHi(new uHi(),qrg,qrg,0,false,false,false);BHi=wHi(new uHi(),rrg,rrg,0,false,false,false);CHi=wHi(new uHi(),yEg,yEg,51,true,false,false);aJi=wHi(new uHi(),trg,trg,49,true,false,false);xJi=wHi(new uHi(),urg,urg,54,true,false,false);zJi=wHi(new uHi(),vrg,vrg,0,false,false,false);lJi=wHi(new uHi(),wrg,wrg,0,false,false,false);cKi=wHi(new uHi(),xrg,xrg,0,false,false,false);iJi=wHi(new uHi(),nwg,nwg,6,false,true,false);uKi=wHi(new uHi(),yrg,yrg,0,false,false,false);iKi=wHi(new uHi(),xLh,xLh,0,false,false,false);oKi=wHi(new uHi(),zrg,zrg,51,true,false,false);EKi=wHi(new uHi(),Arg,Arg,0,false,false,false);vLi=wHi(new uHi(),Brg,Crg,0,false,false,false);wLi=wHi(new uHi(),Erg,Frg,0,false,false,false);mLi=wHi(new uHi(),asg,bsg,0,false,false,false);uLi=wHi(new uHi(),csg,dsg,0,false,false,false);ALi=wHi(new uHi(),esg,fsg,0,false,false,false);BLi=wHi(new uHi(),gsg,hsg,0,false,false,false);xLi=wHi(new uHi(),jsg,ksg,0,false,false,false);yLi=wHi(new uHi(),lsg,msg,0,false,false,false);cNi=wHi(new uHi(),nsg,nsg,0,false,false,false);yNi=wHi(new uHi(),osg,osg,0,false,false,false);pNi=wHi(new uHi(),psg,psg,0,false,false,false);zNi=wHi(new uHi(),eGg,eGg,14,true,false,false);mOi=wHi(new uHi(),qsg,qsg,0,false,false,false);jOi=wHi(new uHi(),rsg,rsg,44,true,false,false);dPi=wHi(new uHi(),ssg,ssg,0,false,false,false);sPi=wHi(new uHi(),usg,usg,0,false,false,false);vOi=wHi(new uHi(),vsg,vsg,43,false,true,false);pOi=wHi(new uHi(),wsg,wsg,0,false,false,false);DPi=wHi(new uHi(),xsg,xsg,0,false,false,false);kQi=wHi(new uHi(),iJg,iJg,60,true,false,false);fRi=wHi(new uHi(),ysg,ysg,0,false,false,false);FQi=wHi(new uHi(),BMh,BMh,0,false,false,false);lRi=wHi(new uHi(),zsg,zsg,0,false,false,false);jSi=wHi(new uHi(),Asg,Asg,0,false,false,false);dSi=wHi(new uHi(),Bsg,Bsg,51,true,false,false);cTi=wHi(new uHi(),Csg,Csg,0,false,false,false);vTi=wHi(new uHi(),Dsg,Dsg,0,false,false,false);DHi=wHi(new uHi(),Fsg,atg,0,false,false,false);EIi=wHi(new uHi(),btg,btg,49,true,false,false);qJi=wHi(new uHi(),ctg,dtg,0,false,false,false);tJi=wHi(new uHi(),etg,etg,0,false,false,false);vJi=wHi(new uHi(),aDg,aDg,8,true,false,false);fKi=wHi(new uHi(),ftg,ftg,51,true,false,false);bLi=wHi(new uHi(),gtg,gtg,0,false,false,false);kLi=wHi(new uHi(),htg,htg,0,false,false,false);eMi=wHi(new uHi(),itg,itg,61,true,false,false);uMi=wHi(new uHi(),Axg,Axg,11,true,false,false);ELi=wHi(new uHi(),ktg,ltg,0,false,false,false);zMi=wHi(new uHi(),uNh,vNh,0,false,false,false);xNi=wHi(new uHi(),mtg,mtg,0,false,false,false);vNi=wHi(new uHi(),ntg,ntg,0,false,false,false);rNi=wHi(new uHi(),otg,otg,0,false,false,false);iOi=wHi(new uHi(),ptg,ptg,0,false,false,false);nOi=wHi(new uHi(),qtg,qtg,0,false,false,false);bPi=wHi(new uHi(),rtg,rtg,0,false,false,false);DOi=wHi(new uHi(),stg,stg,0,false,false,false);uPi=wHi(new uHi(),ttg,ttg,0,false,false,false);lQi=wHi(new uHi(),tJg,tJg,25,true,false,false);nQi=wHi(new uHi(),vtg,vtg,26,true,false,false);vQi=wHi(new uHi(),oxg,oxg,27,true,false,false);gRi=wHi(new uHi(),wtg,wtg,0,false,false,false);jRi=wHi(new uHi(),xtg,xtg,0,false,false,false);mRi=wHi(new uHi(),ytg,ytg,0,false,false,false);nRi=wHi(new uHi(),ztg,ztg,0,false,false,false);pRi=wHi(new uHi(),Atg,Atg,0,false,false,false);fSi=wHi(new uHi(),Btg,Btg,0,false,false,false);eTi=wHi(new uHi(),qHg,qHg,35,true,false,false);fTi=wHi(new uHi(),Ctg,Dtg,0,false,false,false);yTi=wHi(new uHi(),Etg,Etg,0,false,false,false);fIi=wHi(new uHi(),aug,aug,0,false,false,false);BJi=wHi(new uHi(),bug,bug,0,false,false,false);AJi=wHi(new uHi(),cug,cug,0,false,false,false);yJi=wHi(new uHi(),dug,dug,0,false,false,false);kMi=wHi(new uHi(),eug,eug,0,false,false,false);jLi=wHi(new uHi(),fug,fug,0,false,false,false);wNi=wHi(new uHi(),gug,gug,0,false,false,false);mNi=wHi(new uHi(),hug,hug,0,false,false,false);ENi=wHi(new uHi(),iug,iug,0,false,false,false);zOi=wHi(new uHi(),jug,jug,0,false,false,false);sQi=wHi(new uHi(),mug,mug,0,false,false,false);yQi=wHi(new uHi(),nug,nug,0,false,false,false);cRi=wHi(new uHi(),oug,oug,0,false,false,false);dRi=wHi(new uHi(),EJg,EJg,30,true,false,false);rRi=wHi(new uHi(),pug,pug,0,false,false,false);gSi=wHi(new uHi(),qug,qug,0,false,false,false);nTi=wHi(new uHi(),rug,rug,0,false,false,false);gIi=wHi(new uHi(),sug,sug,0,false,false,false);cJi=wHi(new uHi(),tug,tug,50,true,false,false);wKi=wHi(new uHi(),uug,uug,0,false,false,false);eLi=wHi(new uHi(),vug,vug,0,false,false,false);dLi=wHi(new uHi(),xug,xug,0,false,false,false);nNi=wHi(new uHi(),yug,yug,0,false,false,false);rOi=wHi(new uHi(),zug,zug,56,false,false,false);eQi=wHi(new uHi(),Aug,Aug,0,false,false,false);kPi=wHi(new uHi(),Bug,Bug,0,false,false,false);pQi=wHi(new uHi(),Cug,Cug,0,false,false,false);nSi=wHi(new uHi(),Dug,Dug,0,false,false,false);EHi=wHi(new uHi(),Eug,Fug,0,false,false,false);pKi=wHi(new uHi(),avg,avg,0,false,false,false);fLi=wHi(new uHi(),cvg,cvg,54,true,false,false);CLi=wHi(new uHi(),dvg,evg,0,false,false,false);pLi=wHi(new uHi(),fvg,gvg,0,false,false,false);bMi=wHi(new uHi(),hvg,ivg,0,false,false,false);qOi=wHi(new uHi(),jvg,jvg,0,false,false,false);vPi=wHi(new uHi(),kvg,kvg,0,false,false,false);qPi=wHi(new uHi(),lvg,lvg,0,false,false,false);rQi=wHi(new uHi(),nvg,nvg,0,false,false,false);DQi=wHi(new uHi(),ovg,ovg,0,false,false,false);FHi=wHi(new uHi(),pvg,qvg,0,false,false,false);cIi=wHi(new uHi(),rvg,svg,0,false,false,false);gKi=wHi(new uHi(),tvg,tvg,0,false,false,false);iLi=wHi(new uHi(),uvg,uvg,0,false,false,false);dMi=wHi(new uHi(),vvg,wvg,0,false,false,false);FLi=wHi(new uHi(),yvg,zvg,0,false,false,false);DLi=wHi(new uHi(),Avg,Bvg,0,false,false,false);zQi=wHi(new uHi(),Cvg,Cvg,0,false,false,false);dIi=wHi(new uHi(),Dvg,Evg,0,false,false,false);wJi=wHi(new uHi(),BWh,BWh,0,false,false,false);nMi=wHi(new uHi(),Fvg,Fvg,0,false,false,false);oMi=wHi(new uHi(),awg,awg,0,false,false,false);rMi=wHi(new uHi(),bwg,dwg,59,false,false,false);nLi=wHi(new uHi(),ewg,fwg,0,false,false,false);jPi=wHi(new uHi(),gwg,gwg,0,false,false,false);lPi=wHi(new uHi(),hwg,hwg,0,false,false,false);ERi=wHi(new uHi(),iwg,iwg,0,false,false,false);ATi=wHi(new uHi(),jwg,jwg,0,false,false,false);hIi=wHi(new uHi(),kwg,kwg,58,false,false,false);jKi=wHi(new uHi(),lwg,lwg,0,false,false,false);mMi=wHi(new uHi(),mwg,mwg,0,false,false,false);zLi=wHi(new uHi(),owg,pwg,0,false,false,false);tLi=wHi(new uHi(),qwg,rwg,0,false,false,false);fOi=wHi(new uHi(),swg,twg,0,false,false,false);fQi=wHi(new uHi(),uwg,uwg,0,false,false,false);qRi=wHi(new uHi(),vwg,wwg,0,false,false,false);eIi=wHi(new uHi(),xwg,zwg,0,false,false,false);kJi=wHi(new uHi(),Awg,Awg,0,false,false,false);lMi=wHi(new uHi(),Bwg,Bwg,0,false,false,false);qLi=wHi(new uHi(),Cwg,Dwg,0,false,false,false);rLi=wHi(new uHi(),Ewg,Fwg,0,false,false,false);sLi=wHi(new uHi(),axg,bxg,0,false,false,false);aMi=wHi(new uHi(),cxg,exg,0,false,false,false);AKi=wHi(new uHi(),fxg,fxg,0,false,false,false);oLi=wHi(new uHi(),gxg,hxg,0,false,false,false);DKi=f9h(F_h,50,10,[yHi,CIi,vMi,iNi,BQi,oRi,CRi,sTi,eJi,nJi,rJi,hKi,yKi,BKi,FKi,cLi,iMi,CMi,DMi,EMi,FMi,aNi,bNi,BMi,gNi,qNi,cOi,kOi,oOi,gPi,mPi,nPi,yPi,uQi,xQi,aRi,yRi,zRi,bTi,hTi,mTi,rTi,tTi,aIi,yIi,AHi,bJi,FIi,aKi,uJi,CJi,EJi,mKi,qKi,tKi,vKi,hLi,wMi,xMi,oNi,tNi,uNi,ANi,lOi,FNi,bOi,aQi,hPi,sOi,cQi,AOi,hQi,oQi,gQi,iRi,wRi,vSi,bSi,zSi,xSi,kSi,hSi,ySi,iSi,DSi,wTi,xTi,ETi,FTi,aUi,xIi,zHi,DIi,gJi,dJi,jJi,sJi,pJi,bKi,DJi,FJi,dKi,nKi,sKi,kKi,sMi,jMi,AMi,dNi,hNi,eOi,gOi,hOi,aPi,CPi,oPi,xOi,tOi,wOi,BOi,EPi,EOi,xPi,mQi,jQi,iQi,EQi,eRi,BRi,sRi,vRi,uRi,xRi,ARi,cSi,lSi,qSi,DRi,rSi,aSi,jTi,pTi,oTi,ESi,dTi,CTi,AIi,BIi,jIi,aLi,tMi,lLi,hMi,yMi,fNi,lNi,jNi,sNi,CNi,dOi,ePi,tPi,cPi,rPi,iPi,wPi,APi,bQi,qQi,bRi,CQi,hRi,tRi,uSi,mSi,iTi,CSi,lTi,qTi,kTi,gTi,FSi,uTi,DTi,BTi,rIi,pIi,vIi,tIi,lIi,iIi,nIi,kIi,fJi,oJi,mJi,eKi,hJi,xKi,lKi,rKi,zKi,gLi,cMi,fMi,qMi,gMi,pMi,eNi,kNi,BNi,DNi,aOi,zPi,FPi,BPi,fPi,COi,dQi,uOi,FOi,pPi,yOi,wQi,tQi,AQi,kRi,oSi,sSi,tSi,ASi,BSi,pSi,eSi,wSi,FRi,aTi,zTi,zIi,bIi,sIi,qIi,wIi,uIi,mIi,oIi,BHi,CHi,aJi,xJi,zJi,lJi,cKi,iJi,uKi,iKi,oKi,EKi,vLi,wLi,mLi,uLi,ALi,BLi,xLi,yLi,cNi,yNi,pNi,zNi,mOi,jOi,dPi,sPi,vOi,pOi,DPi,kQi,fRi,FQi,lRi,jSi,dSi,cTi,vTi,DHi,EIi,qJi,tJi,vJi,fKi,bLi,kLi,eMi,uMi,ELi,zMi,xNi,vNi,rNi,iOi,nOi,bPi,DOi,uPi,lQi,nQi,vQi,gRi,jRi,mRi,nRi,pRi,fSi,eTi,fTi,yTi,fIi,BJi,AJi,yJi,kMi,jLi,wNi,mNi,ENi,zOi,sQi,yQi,cRi,dRi,rRi,gSi,nTi,gIi,cJi,wKi,eLi,dLi,nNi,rOi,eQi,kPi,pQi,nSi,EHi,pKi,fLi,CLi,pLi,bMi,qOi,vPi,qPi,rQi,DQi,FHi,cIi,gKi,iLi,dMi,FLi,DLi,zQi,dIi,wJi,nMi,oMi,rMi,nLi,jPi,lPi,ERi,ATi,hIi,jKi,mMi,zLi,tLi,fOi,fQi,qRi,eIi,kJi,lMi,qLi,rLi,sLi,aMi,AKi,oLi]);CKi=f9h(B_h,0,-1,[1057,1090,1255,1321,1552,1585,1651,1717,68162,68899,69059,69764,70020,70276,71077,71205,72134,72232,72264,72296,72328,72360,72392,73351,74312,75209,78124,78284,78476,79149,79309,79341,79469,81295,81487,82224,84498,84626,86164,86292,86612,86676,87445,3183041,3186241,3198017,3218722,3226754,3247715,3256803,3263971,3264995,3289252,3291332,3295524,3299620,3326725,3379303,3392679,3448233,3460553,3461577,3510347,3546604,3552364,3556524,3576461,3586349,3588141,3590797,3596333,3622062,3625454,3627054,3675728,3749042,3771059,3771571,3776211,3782323,3782963,3784883,3785395,3788979,3815476,3839605,3885110,3917911,3948984,3951096,135304769,135858241,136498210,136906434,137138658,137512995,137531875,137548067,137629283,137645539,137646563,137775779,138529956,138615076,139040932,140954086,141179366,141690439,142738600,143013512,146979116,147175724,147475756,147902637,147936877,148017645,148131885,148228141,148229165,148309165,148395629,148551853,148618829,149076462,149490158,149572782,151277616,151639440,153268914,153486514,153563314,153750706,153763314,153914034,154406067,154417459,154600979,154678323,154680979,154866835,155366708,155375188,155391572,155465780,155869364,158045494,168988979,169321621,169652752,173151309,174240818,174247297,174669292,175391532,176638123,177380397,177879204,177886734,180753473,181020073,181503558,181686320,181999237,181999311,182048201,182074866,182078003,182083764,182920847,184716457,184976961,185145071,187281445,187872052,188100653,188875944,188919873,188920457,189203987,189371817,189414886,189567458,190266670,191318187,191337609,202479203,202493027,202835587,202843747,203013219,203036048,203045987,203177552,203898516,204648562,205067918,205078130,205096654,205689142,205690439,205766017,205988909,207213161,207794484,207800999,208023602,208213644,208213647,210310273,210940978,213325049,213946445,214055079,215125040,215134273,215135028,215237420,215418148,215553166,215553394,215563858,215627949,215754324,217529652,217713834,217732628,218731945,221417045,221424946,221493746,221515401,221658189,221844577,221908140,221910626,221921586,222659762,225001091,236105833,236113965,236194995,236195427,236206132,236206387,236211683,236212707,236381647,236571826,237124271,238172205,238210544,238270764,238435405,238501172,239224867,239257644,239710497,240307721,241208789,241241557,241318060,241319404,241343533,241344069,241405397,241765845,243864964,244502085,244946220,245109902,247647266,247707956,248648814,248648836,248682161,248986932,249058914,249697357,252132601,252135604,252317348,255007012,255278388,256365156,257566121,269763372,271202790,271863856,272049197,272127474,272770631,274339449,274939471,275388004,275388005,275388006,275977800,278267602,278513831,278712622,281613765,281683369,282120228,282250732,282508942,283743649,283787570,284710386,285391148,285478533,285854898,285873762,286931113,288964227,289445441,289689648,291671489,303512884,305319975,305610036,305764101,308448294,308675890,312085683,312264750,315032867,316391000,317331042,317902135,318950711,319447220,321499182,322538804,323145200,337067316,337826293,339905989,340833697,341457068,345302593,349554733,349771471,349786245,350819405,356072847,370349192,373962798,374509141,375558638,375574835,376053993,383276530,383373833,383407586,384439906,386079012,404133513,404307343,407031852,408072233,409112005,409608425,409771500,419040932,437730612,439529766,442616365,442813037,443157674,443295316,450118444,450482697,456789668,459935396,471217869,474073645,476230702,476665218,476717289,483014825,485083298,489306281,538364390,540675748,543819186,543958612,576960820,577242548,610515252,642202932,644420819])} +function wHi(g,d,a,c,f,e,b){xHi();g.e=d;g.a=a;g.d=c;g.g=f;g.f=e;g.c=b;g.b=false;return g} +function vHi(b,a){xHi();b.e=a;b.a=a;b.d=0;b.g=false;b.f=false;b.c=false;b.b=true;return b} +function bUi(a,e){var b,c,d;b=e;b<<=5;b+=a[0]-96;d=e;for(c=0;c<4&&d>0;++c){--d;b<<=5;b+=a[d]-96}return b} +function cUi(a,i,g){var e,f;xHi();var b,c,d,h;c=bUi(a,g);d=wji(CKi,c);if(d<0){return vHi(new uHi(),String((e=i+g,mfi(a.length,i,e),ofi(a,i,e))))}else{b=DKi[d];h=b.e;if(!xVi(h,a,i,g)){return vHi(new uHi(),String((f=i+g,mfi(a.length,i,f),ofi(a,i,f))))}return b}} +function dUi(){return q_h} +function uHi(){} +_=uHi.prototype=new xdi();_.gC=dUi;_.tI=37;_.a=null;_.b=false;_.c=false;_.d=0;_.e=null;_.f=false;_.g=false;var yHi,zHi,AHi,BHi,CHi,DHi,EHi,FHi,aIi,bIi,cIi,dIi,eIi,fIi,gIi,hIi,iIi,jIi,kIi,lIi,mIi,nIi,oIi,pIi,qIi,rIi,sIi,tIi,uIi,vIi,wIi,xIi,yIi,zIi,AIi,BIi,CIi,DIi,EIi,FIi,aJi,bJi,cJi,dJi,eJi,fJi,gJi,hJi,iJi,jJi,kJi,lJi,mJi,nJi,oJi,pJi,qJi,rJi,sJi,tJi,uJi,vJi,wJi,xJi,yJi,zJi,AJi,BJi,CJi,DJi,EJi,FJi,aKi,bKi,cKi,dKi,eKi,fKi,gKi,hKi,iKi,jKi,kKi,lKi,mKi,nKi,oKi,pKi,qKi,rKi,sKi,tKi,uKi,vKi,wKi,xKi,yKi,zKi,AKi,BKi,CKi,DKi,EKi,FKi,aLi,bLi,cLi,dLi,eLi,fLi,gLi,hLi,iLi,jLi,kLi,lLi,mLi,nLi,oLi,pLi,qLi,rLi,sLi,tLi,uLi,vLi,wLi,xLi,yLi,zLi,ALi,BLi,CLi,DLi,ELi,FLi,aMi,bMi,cMi,dMi,eMi,fMi,gMi,hMi,iMi,jMi,kMi,lMi,mMi,nMi,oMi,pMi,qMi,rMi,sMi,tMi,uMi,vMi,wMi,xMi,yMi,zMi,AMi,BMi,CMi,DMi,EMi,FMi,aNi,bNi,cNi,dNi,eNi,fNi,gNi,hNi,iNi,jNi,kNi,lNi,mNi,nNi,oNi,pNi,qNi,rNi,sNi,tNi,uNi,vNi,wNi,xNi,yNi,zNi,ANi,BNi,CNi,DNi,ENi,FNi,aOi,bOi,cOi,dOi,eOi,fOi,gOi,hOi,iOi,jOi,kOi,lOi,mOi,nOi,oOi,pOi,qOi,rOi,sOi,tOi,uOi,vOi,wOi,xOi,yOi,zOi,AOi,BOi,COi,DOi,EOi,FOi,aPi,bPi,cPi,dPi,ePi,fPi,gPi,hPi,iPi,jPi,kPi,lPi,mPi,nPi,oPi,pPi,qPi,rPi,sPi,tPi,uPi,vPi,wPi,xPi,yPi,zPi,APi,BPi,CPi,DPi,EPi,FPi,aQi,bQi,cQi,dQi,eQi,fQi,gQi,hQi,iQi,jQi,kQi,lQi,mQi,nQi,oQi,pQi,qQi,rQi,sQi,tQi,uQi,vQi,wQi,xQi,yQi,zQi,AQi,BQi,CQi,DQi,EQi,FQi,aRi,bRi,cRi,dRi,eRi,fRi,gRi,hRi,iRi,jRi,kRi,lRi,mRi,nRi,oRi,pRi,qRi,rRi,sRi,tRi,uRi,vRi,wRi,xRi,yRi,zRi,ARi,BRi,CRi,DRi,ERi,FRi,aSi,bSi,cSi,dSi,eSi,fSi,gSi,hSi,iSi,jSi,kSi,lSi,mSi,nSi,oSi,pSi,qSi,rSi,sSi,tSi,uSi,vSi,wSi,xSi,ySi,zSi,ASi,BSi,CSi,DSi,ESi,FSi,aTi,bTi,cTi,dTi,eTi,fTi,gTi,hTi,iTi,jTi,kTi,lTi,mTi,nTi,oTi,pTi,qTi,rTi,sTi,tTi,uTi,vTi,wTi,xTi,yTi,zTi,ATi,BTi,CTi,DTi,ETi,FTi,aUi;function pWi(){pWi=u0i;nXi=f9h(A_h,42,-1,[60,62]);oXi=f9h(A_h,42,-1,[60,47]);vXi=f9h(A_h,42,-1,[93,93]);uXi=f9h(A_h,42,-1,[65533]);xXi=f9h(A_h,42,-1,[32]);mXi=f9h(A_h,42,-1,[10]);kXi=lfi(ixg);sXi=lfi(jxg);BXi=lfi(kxg);DXi=lfi(lxg);AXi=f9h(A_h,42,-1,[116,105,116,108,101]);wXi=f9h(A_h,42,-1,[115,99,114,105,112,116]);yXi=f9h(A_h,42,-1,[115,116,121,108,101]);tXi=f9h(A_h,42,-1,[112,108,97,105,110,116,101,120,116]);CXi=f9h(A_h,42,-1,[120,109,112]);zXi=f9h(A_h,42,-1,[116,101,120,116,97,114,101,97]);lXi=f9h(A_h,42,-1,[105,102,114,97,109,101]);pXi=f9h(A_h,42,-1,[110,111,101,109,98,101,100]);rXi=f9h(A_h,42,-1,[110,111,115,99,114,105,112,116]);qXi=f9h(A_h,42,-1,[110,111,102,114,97,109,101,115])} +function gWi(a){var b;a.cb&&(xHi(),aPi)==a.pb&&(loi(),qri)==a.l;if(a.l){b=xfi(a.F,0,a.ab);if(!a.w&&a.A&&a.B&&qoi(a.l)){b=FXi(b)}uUi(a.m,a.l,b,a.tb)}} +function hWi(a){a.cb&&(loi(),qri)==a.l&&(xHi(),aPi)==a.pb;if(a.l){if(a.A){if(poi(a.l)){if(a.B){uUi(a.m,a.l,a.l.a[0],a.tb)}else{uUi(a.m,a.l,cNh,a.tb)}}else{uUi(a.m,a.l,cNh,a.tb)}}else{if((loi(),xDi)==a.l||lvi==a.l){mxg+a.l.a[0]+nxg}uUi(a.m,a.l,cNh,a.tb)}}} +function iWi(b,a){switch(b.p.b){case 2:--b.ab;jWi(b,32);jWi(b,45);case 0:jWi(b,a);break;case 1:CWi(b,pxg);}} +function jWi(c,a){var b;if(c.ab==c.F.length){b=e9h(A_h,42,-1,c.ab+(c.ab>>1),1);Afi(c.F,0,b,0,c.F.length);c.F=b}c.F[c.ab++]=a} +function kWi(f,a,d,b){var c,e;e=f.ab+b;if(f.F.length<e){c=e9h(A_h,42,-1,e+(e>>1),1);Afi(f.F,0,c,0,f.F.length);f.F=c}Afi(a,d,f.F,f.ab,b);f.ab=e} +function lWi(a){switch(a.p.b){case 2:jWi(a,32);case 0:jWi(a,45);break;case 1:CWi(a,pxg);}} +function mWi(c,a){var b;if(c.mb==c.lb.length){b=e9h(A_h,42,-1,c.lb.length+1024,1);Afi(c.lb,0,b,0,c.lb.length);c.lb=b}c.lb[c.mb++]=a} +function nWi(a){a.l=oHi(a.lb,0,a.mb,a.db!=(Fli(),ami));if(!a.m){a.m=tUi(new sUi(),a.bb)}if(yUi(a.m,a.l)){qxg+a.l.a[0]+rxg;a.l=null}} +function qWi(a){switch(a.r.d){case 36:a.s=AXi;return;case 31:a.s=wXi;return;case 33:a.s=yXi;return;case 30:a.s=tXi;return;case 38:a.s=CXi;return;case 35:a.s=zXi;return;case 47:a.s=lXi;return;case 60:a.s=pXi;return;case 26:a.s=rXi;return;case 25:a.s=qXi;return;default:return;}} +function rWi(c,a,b){c.h=true;c.D=true;kUi(c,a,b);wYi(c.qb,mXi,0,1);c.u=2147483647} +function sWi(c,b,a){if(c.sb){DYi(c.qb,c.F,0,c.ab-b)}c.u=a+1} +function tWi(d,c,b){var a;d.u=b+1;d.kb=0;a=!d.m?(xUi(),bVi):d.m;if(d.w){bZi(d.qb,d.pb)}else{h0i(d.qb,d.pb,a,c)}aXi(d);return d.kb} +function wWi(b,c,a){if((a&-2)!=0){kWi(b,c,0,c.length)}else{wYi(b.qb,c,0,c.length)}} +function uWi(b,c,a){if((a&-2)!=0){jWi(b,c[0])}else{wYi(b.qb,c,0,1)}} +function vWi(b,a){if((a&-2)!=0){kWi(b,b.lb,0,b.mb)}else{yWi(b)}} +function xWi(c,a,b){c.h=true;c.D=true;kUi(c,a,b);wYi(c.qb,uXi,0,1);c.u=2147483647} +function yWi(a){if(a.mb>0){wYi(a.qb,a.lb,0,a.mb)}} +function zWi(a){if(a.eb){return tUi(new sUi(),a.bb)}else{return xUi(),bVi}} +function AWi(a){a.lb=null;a.F=null;a.ob=null;a.gb=null;a.v=null;a.pb=null;a.l=null;cZi(a.qb);if(a.m){wUi(a.m,a.bb);a.m=null}} +function BWi(j){var a,b,e,h,i,k;i=j.kb;h=j.hb;c:for(;;){switch(i){case 53:wYi(j.qb,nXi,0,1);break c;case 4:wYi(j.qb,nXi,0,1);break c;case 37:if(j.C<j.s.length){break c}else{break c}case 5:wYi(j.qb,oXi,0,2);break c;case 6:break c;case 7:case 14:case 48:break c;case 8:break c;case 9:case 10:break c;case 11:case 12:case 13:break c;case 15:sWi(j,0,0);break c;case 59:FWi(j);sWi(j,0,0);break c;case 16:j.ab=0;sWi(j,0,0);break c;case 38:sWi(j,0,0);break c;case 39:if(j.C<6){sWi(j,0,0)}else{j.v=cNh;j.gb=null;j.ob=null;j.y=true;j.u=1;EYi(j.qb,j.v,j.gb,j.ob,j.y);break c}break c;case 30:case 32:case 35:sWi(j,0,0);break c;case 34:sWi(j,2,0);break c;case 33:case 31:sWi(j,1,0);break c;case 36:sWi(j,3,0);break c;case 17:case 18:j.y=true;j.u=1;EYi(j.qb,j.v,j.gb,j.ob,j.y);break c;case 19:j.v=String(xfi(j.lb,0,j.mb));j.y=true;j.u=1;EYi(j.qb,j.v,j.gb,j.ob,j.y);break c;case 40:case 41:case 20:case 21:j.y=true;j.u=1;EYi(j.qb,j.v,j.gb,j.ob,j.y);break c;case 22:case 23:j.y=true;j.gb=xfi(j.F,0,j.ab);j.u=1;EYi(j.qb,j.v,j.gb,j.ob,j.y);break c;case 24:case 25:j.y=true;j.u=1;EYi(j.qb,j.v,j.gb,j.ob,j.y);break c;case 26:case 27:j.y=true;j.ob=xfi(j.F,0,j.ab);j.u=1;EYi(j.qb,j.v,j.gb,j.ob,j.y);break c;case 28:j.y=true;j.u=1;EYi(j.qb,j.v,j.gb,j.ob,j.y);break c;case 29:j.u=1;EYi(j.qb,j.v,j.gb,j.ob,j.y);break c;case 42:vWi(j,h);i=h;continue;case 44:g:for(;;){++j.x;d:for(;;){if(j.z==-1){break d}if(j.x==(rVi(),sVi)[j.z].length){break d}if(j.x>sVi[j.z].length){break g}else if(0<sVi[j.z][j.x]){--j.z}else{break d}}f:for(;;){if(j.z<j.E){break g}if(j.x==(rVi(),sVi)[j.E].length){j.o=j.E;j.nb=j.mb;++j.E}else if(j.x>sVi[j.E].length){break g}else if(0>sVi[j.E][j.x]){++j.E}else{break f}}if(j.z<j.E){break g}continue}if(j.o==-1){vWi(j,h);i=h;continue c}else{a=(rVi(),sVi)[j.o];if(a[a.length-1]!=59){if((h&-2)!=0){if(j.nb==j.mb){b=0}else{b=j.lb[j.nb]}if(b>=48&&b<=57||b>=65&&b<=90||b>=97&&b<=122){kWi(j,j.lb,0,j.mb);i=h;continue c}}}k=tVi[j.o];wWi(j,k,h);if(j.nb<j.mb){if((h&-2)!=0){for(e=j.nb;e<j.mb;++e){jWi(j,j.lb[e])}}else{wYi(j.qb,j.lb,j.nb,j.mb-j.nb)}}i=h;continue c}case 43:case 46:case 45:if(j.ib){}else{sxg+xfi(j.lb,0,j.mb)+rxg;vWi(j,h);i=h;continue}DWi(j,h);i=h;continue;case 0:default:break c;}}dZi(j.qb);return} +function CWi(c,a){var b;b=F0i(new E0i(),a,c);throw b} +function DWi(c,b){var a,d;if(c.rb>=128&&c.rb<=159){d=(rVi(),uVi)[c.rb-128];uWi(c,d,b)}else if(c.rb==13){uWi(c,mXi,b)}else if(c.rb==12&&c.t!=(Fli(),ami)){if(c.t==(Fli(),bmi)){uWi(c,xXi,b)}else if(c.t==cmi){CWi(c,txg)}}else if(c.rb>=0&&c.rb<=8||c.rb==11||c.rb>=14&&c.rb<=31||c.rb==127){uxg+pUi(c.rb&65535)+vxg;uWi(c,uXi,b)}else if((c.rb&63488)==55296){uWi(c,uXi,b)}else if((c.rb&65534)==65534){uWi(c,uXi,b)}else if(c.rb>=64976&&c.rb<=65007){uWi(c,uXi,b)}else if(c.rb<=65535){a=c.rb&65535;c.n[0]=a;uWi(c,c.n,b)}else if(c.rb<=1114111){c.k[0]=55232+(c.rb>>10)&65535;c.k[1]=56320+(c.rb&1023)&65535;wWi(c,c.k,b)}else{uWi(c,uXi,b)}} +function FWi(a){switch(a.p.b){case 2:jWi(a,32);break;case 1:CWi(a,wxg);}} +function aXi(a){if(a.eb){a.m=null}else{wUi(a.m,a.bb)}} +function cXi(c,b){var a;c.kb=b;if(b==0){return}a=null.dc();c.r=cUi(a,0,null.cc);qWi(c)} +function dXi(c,b,a){c.kb=b;c.r=a;qWi(c)} +function gXi(a,b){if(b==(Fli(),cmi)){throw Fci(new Eci(),xxg)}a.tb=b} +function hXi(a){a.q=false;a.lb=e9h(A_h,42,-1,64,1);a.mb=0;a.F=e9h(A_h,42,-1,1024,1);a.ab=0;a.kb=0;a.D=false;a.A=false;a.cb=false;i0i(a.qb,a);a.sb=a.qb.A;a.C=0;a.y=false;a.j=0;a.x=-1;a.E=0;a.z=(rVi(),sVi).length-1;a.o=-1;a.nb=0;a.fb=-1;a.rb=0;a.ib=false;a.jb=false;if(!a.eb){a.m=tUi(new sUi(),a.bb)}a.a=false;a.f=a.g=0;a.c=a.d=1;a.h=true;a.i=0;a.b=false} +function iXi(Ab,vb,p,rb,o,tb,ub,cb){var q,u,bb,ib,kb,Bb;wb:for(;;){switch(vb){case 0:z:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 38:kUi(Ab,o,rb);Ab.lb[0]=p;Ab.mb=1;Ab.j=0;fVi(new eVi(),Ab);ub=vb;vb=42;continue wb;case 60:kUi(Ab,o,rb);vb=4;break z;case 0:xWi(Ab,o,rb);continue;case 13:rWi(Ab,o,rb);break wb;case 10:Ab.h=true;default:continue;}}case 4:yb:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);if(p>=65&&p<=90){Ab.w=false;Ab.lb[0]=p+32&65535;Ab.mb=1;vb=6;break yb}else if(p>=97&&p<=122){Ab.w=false;Ab.lb[0]=p;Ab.mb=1;vb=6;break yb}switch(p){case 33:vb=16;continue wb;case 47:vb=5;continue wb;case 63:Ab.F[0]=p;Ab.ab=1;vb=15;continue wb;case 62:wYi(Ab.qb,nXi,0,2);Ab.u=rb+1;vb=0;continue wb;default:wYi(Ab.qb,nXi,0,1);Ab.u=rb;vb=0;tb=true;continue wb;}}case 6:xb:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 13:Ab.h=true;Ab.D=true;Ab.pb=cUi(Ab.lb,0,Ab.mb);vb=7;break wb;case 10:Ab.h=true;case 32:case 9:case 12:Ab.pb=cUi(Ab.lb,0,Ab.mb);vb=7;break xb;case 47:Ab.pb=cUi(Ab.lb,0,Ab.mb);vb=48;continue wb;case 62:Ab.pb=cUi(Ab.lb,0,Ab.mb);vb=tWi(Ab,false,rb);if(Ab.jb){break wb}continue wb;case 0:p=65533;default:if(p>=65&&p<=90){p+=32}mWi(Ab,p);continue;}}case 7:h:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;case 32:case 9:case 12:continue;case 47:vb=48;continue wb;case 62:vb=tWi(Ab,false,rb);if(Ab.jb){break wb}continue wb;case 0:p=65533;case 34:case 39:case 60:case 61:default:if(p>=65&&p<=90){p+=32}Ab.lb[0]=p;Ab.mb=1;vb=8;break h;}}case 8:e:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 13:Ab.h=true;Ab.D=true;nWi(Ab);vb=9;break wb;case 10:Ab.h=true;case 32:case 9:case 12:nWi(Ab);vb=9;continue wb;case 47:nWi(Ab);hWi(Ab);vb=48;continue wb;case 61:nWi(Ab);vb=10;break e;case 62:nWi(Ab);hWi(Ab);vb=tWi(Ab,false,rb);if(Ab.jb){break wb}continue wb;case 0:p=65533;case 34:case 39:case 60:default:if(p>=65&&p<=90){p+=32}mWi(Ab,p);continue;}}case 10:i:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;case 32:case 9:case 12:continue;case 34:Ab.ab=0;vb=11;break i;case 38:Ab.ab=0;vb=13;tb=true;continue wb;case 39:Ab.ab=0;vb=12;continue wb;case 62:hWi(Ab);vb=tWi(Ab,false,rb);if(Ab.jb){break wb}continue wb;case 0:p=65533;case 60:case 61:jUi(p);default:Ab.F[0]=p;Ab.ab=1;vb=13;continue wb;}}case 11:f:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 34:gWi(Ab);vb=14;break f;case 38:Ab.lb[0]=p;Ab.mb=1;Ab.j=34;fVi(new eVi(),Ab);ub=vb;vb=42;continue wb;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);continue;}}case 14:a:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 13:Ab.h=true;Ab.D=true;vb=7;break wb;case 10:Ab.h=true;case 32:case 9:case 12:vb=7;continue wb;case 47:vb=48;break a;case 62:vb=tWi(Ab,false,rb);if(Ab.jb){break wb}continue wb;default:vb=7;tb=true;continue wb;}}case 48:if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 62:vb=tWi(Ab,true,rb);if(Ab.jb){break wb}continue wb;default:vb=7;tb=true;continue wb;}case 13:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 13:Ab.h=true;Ab.D=true;gWi(Ab);vb=7;break wb;case 10:Ab.h=true;case 32:case 9:case 12:gWi(Ab);vb=7;continue wb;case 38:Ab.lb[0]=p;Ab.mb=1;Ab.j=0;fVi(new eVi(),Ab);ub=vb;vb=42;continue wb;case 62:gWi(Ab);vb=tWi(Ab,false,rb);if(Ab.jb){break wb}continue wb;case 0:p=65533;case 60:case 34:case 39:case 61:default:jWi(Ab,p);continue;}}case 9:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;case 32:case 9:case 12:continue;case 47:hWi(Ab);vb=48;continue wb;case 61:vb=10;continue wb;case 62:hWi(Ab);vb=tWi(Ab,false,rb);if(Ab.jb){break wb}continue wb;case 0:p=65533;case 34:case 39:case 60:default:hWi(Ab);if(p>=65&&p<=90){p+=32}Ab.lb[0]=p;Ab.mb=1;vb=8;continue wb;}}case 15:n:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 62:sWi(Ab,0,rb);vb=0;continue wb;case 45:jWi(Ab,p);vb=59;break n;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);continue;}}case 59:m:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 62:FWi(Ab);sWi(Ab,0,rb);vb=0;continue wb;case 45:lWi(Ab);continue m;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);vb=15;break wb;case 10:Ab.h=true;jWi(Ab,10);vb=15;continue wb;case 0:p=65533;default:jWi(Ab,p);vb=15;continue wb;}}case 16:ob:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:Ab.F[0]=p;Ab.ab=1;vb=38;break ob;case 100:case 68:Ab.F[0]=p;Ab.ab=1;Ab.C=0;vb=39;continue wb;case 91:if(Ab.qb.l==0){Ab.F[0]=p;Ab.ab=1;Ab.C=0;vb=49;continue wb}else{}default:Ab.ab=0;vb=15;tb=true;continue wb;}}case 38:nb:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 0:break wb;case 45:Ab.ab=0;vb=30;break nb;default:vb=15;tb=true;continue wb;}}case 30:y:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:jWi(Ab,p);vb=31;continue wb;case 62:sWi(Ab,0,rb);vb=0;continue wb;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);vb=32;break wb;case 10:Ab.h=true;jWi(Ab,10);vb=32;break y;case 0:p=65533;default:jWi(Ab,p);vb=32;break y;}}case 32:x:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:jWi(Ab,p);vb=33;break x;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);continue;}}case 33:v:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:jWi(Ab,p);vb=34;break v;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);vb=32;break wb;case 10:Ab.h=true;jWi(Ab,10);vb=32;continue wb;case 0:p=65533;default:jWi(Ab,p);vb=32;continue wb;}}case 34:w:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 62:sWi(Ab,2,rb);vb=0;continue wb;case 45:iWi(Ab,p);continue;case 32:case 9:case 12:iWi(Ab,p);vb=35;break w;case 13:Ab.h=true;Ab.D=true;iWi(Ab,10);vb=35;break wb;case 10:Ab.h=true;iWi(Ab,10);vb=35;break w;case 33:jWi(Ab,p);vb=36;continue wb;case 0:p=65533;default:iWi(Ab,p);vb=32;continue wb;}}case 35:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 62:sWi(Ab,0,rb);vb=0;continue wb;case 45:jWi(Ab,p);vb=33;continue wb;case 32:case 9:case 12:jWi(Ab,p);continue;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);vb=32;continue wb;}}case 36:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 62:sWi(Ab,3,rb);vb=0;continue wb;case 45:jWi(Ab,p);vb=33;continue wb;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);vb=32;continue wb;}}case 31:if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:jWi(Ab,p);vb=34;continue wb;case 62:sWi(Ab,1,rb);vb=0;continue wb;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);vb=32;break wb;case 10:Ab.h=true;jWi(Ab,10);vb=32;continue wb;case 0:p=65533;default:jWi(Ab,p);vb=32;continue wb;}case 39:mb:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);if(Ab.C<6){ib=p;if(p>=65&&p<=90){ib+=32}if(ib==sXi[Ab.C]){jWi(Ab,p)}else{vb=15;tb=true;continue wb}++Ab.C;continue}else{vb=17;tb=true;break mb}}case 17:B:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}Ab.v=cNh;Ab.ob=null;Ab.gb=null;Ab.y=false;switch(p){case 13:Ab.h=true;Ab.D=true;vb=18;break wb;case 10:Ab.h=true;case 32:case 9:case 12:vb=18;break B;default:vb=18;tb=true;break B;}}case 18:j:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;case 32:case 9:case 12:continue;case 62:Ab.y=true;Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;case 0:p=65533;default:if(p>=65&&p<=90){p+=32}Ab.lb[0]=p;Ab.mb=1;vb=19;break j;}}case 19:C:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 13:Ab.h=true;Ab.D=true;Ab.v=String(xfi(Ab.lb,0,Ab.mb));vb=20;break wb;case 10:Ab.h=true;case 32:case 9:case 12:Ab.v=String(xfi(Ab.lb,0,Ab.mb));vb=20;break C;case 62:Ab.v=String(xfi(Ab.lb,0,Ab.mb));Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;case 0:p=65533;default:if(p>=65&&p<=90){p+=32}mWi(Ab,p);continue;}}case 20:b:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;case 32:case 9:case 12:continue;case 62:Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;case 112:case 80:Ab.C=0;vb=40;break b;case 115:case 83:Ab.C=0;vb=41;continue wb;default:Ab.y=true;vb=29;continue wb;}}case 40:F:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);if(Ab.C<5){ib=p;if(p>=65&&p<=90){ib+=32}if(ib!=BXi[Ab.C]){Ab.y=true;vb=29;tb=true;continue wb}++Ab.C;continue}else{vb=21;tb=true;break F}}case 21:k:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;case 32:case 9:case 12:continue;case 34:Ab.ab=0;vb=22;break k;case 39:Ab.ab=0;vb=23;continue wb;case 62:Ab.y=true;Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;default:Ab.y=true;vb=29;continue wb;}}case 22:D:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 34:Ab.gb=xfi(Ab.F,0,Ab.ab);vb=24;break D;case 62:Ab.y=true;Ab.gb=xfi(Ab.F,0,Ab.ab);Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);continue;}}case 24:c:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;case 32:case 9:case 12:continue;case 34:Ab.ab=0;vb=26;break c;case 39:Ab.ab=0;vb=27;continue wb;case 62:Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;default:Ab.y=true;vb=29;continue wb;}}case 26:E:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 34:Ab.ob=xfi(Ab.F,0,Ab.ab);vb=28;continue wb;case 62:Ab.y=true;Ab.ob=xfi(Ab.F,0,Ab.ab);Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);continue;}}case 28:d:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;case 32:case 9:case 12:continue;case 62:Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;default:Ab.y=false;vb=29;break d;}}case 29:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 62:Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;default:continue;}}case 41:ab:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);if(Ab.C<5){ib=p;if(p>=65&&p<=90){ib+=32}if(ib!=DXi[Ab.C]){Ab.y=true;vb=29;tb=true;continue wb}++Ab.C;continue wb}else{vb=25;tb=true;break ab}}case 25:l:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 13:Ab.h=true;Ab.D=true;break wb;case 10:Ab.h=true;case 32:case 9:case 12:continue;case 34:Ab.ab=0;vb=26;continue wb;case 39:Ab.ab=0;vb=27;break l;case 62:Ab.y=true;Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;default:Ab.y=true;vb=29;continue wb;}}case 27:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 39:Ab.ob=xfi(Ab.F,0,Ab.ab);vb=28;continue wb;case 62:Ab.y=true;Ab.ob=xfi(Ab.F,0,Ab.ab);Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);continue;}}case 23:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 39:Ab.gb=xfi(Ab.F,0,Ab.ab);vb=24;continue wb;case 62:Ab.y=true;Ab.gb=xfi(Ab.F,0,Ab.ab);Ab.u=rb+1;EYi(Ab.qb,Ab.v,Ab.gb,Ab.ob,Ab.y);vb=0;continue wb;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);continue;}}case 49:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);if(Ab.C<6){if(p==kXi[Ab.C]){jWi(Ab,p)}else{vb=15;tb=true;continue wb}++Ab.C;continue}else{Ab.u=rb;vb=50;tb=true;break}}case 50:t:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 93:kUi(Ab,o,rb);vb=51;break t;case 0:xWi(Ab,o,rb);continue;case 13:rWi(Ab,o,rb);break wb;case 10:Ab.h=true;default:continue;}}case 51:s:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 93:vb=52;break s;default:wYi(Ab.qb,vXi,0,1);Ab.u=rb;vb=50;tb=true;continue wb;}}case 52:if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 62:Ab.u=rb+1;vb=0;continue wb;default:wYi(Ab.qb,vXi,0,2);Ab.u=rb;vb=50;tb=true;continue wb;}case 12:g:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 39:gWi(Ab);vb=14;continue wb;case 38:Ab.lb[0]=p;Ab.mb=1;Ab.j=39;fVi(new eVi(),Ab);ub=vb;vb=42;break g;case 13:Ab.h=true;Ab.D=true;jWi(Ab,10);break wb;case 10:Ab.h=true;jWi(Ab,10);continue;case 0:p=65533;default:jWi(Ab,p);continue;}}case 42:if(++rb==cb){break wb}p=hUi(Ab,o,rb);if(p==0){break wb}switch(p){case 32:case 9:case 10:case 13:case 12:case 60:case 38:vWi(Ab,ub);if((ub&-2)==0){Ab.u=rb}vb=ub;tb=true;continue wb;case 35:mWi(Ab,35);vb=43;continue wb;default:if(p==Ab.j){vWi(Ab,ub);vb=ub;tb=true;continue wb}Ab.x=-1;Ab.E=0;Ab.z=(rVi(),sVi).length-1;Ab.o=-1;Ab.nb=0;vb=44;tb=true;}case 44:pb:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}if(p==0){break wb}++Ab.x;jb:for(;;){if(Ab.z==-1){break jb}if(Ab.x==(rVi(),sVi)[Ab.z].length){break jb}if(Ab.x>sVi[Ab.z].length){break pb}else if(p<sVi[Ab.z][Ab.x]){--Ab.z}else{break jb}}lb:for(;;){if(Ab.z<Ab.E){break pb}if(Ab.x==(rVi(),sVi)[Ab.E].length){Ab.o=Ab.E;Ab.nb=Ab.mb;++Ab.E}else if(Ab.x>sVi[Ab.E].length){break pb}else if(p>sVi[Ab.E][Ab.x]){++Ab.E}else{break lb}}if(Ab.z<Ab.E){break pb}mWi(Ab,p);continue}if(Ab.o==-1){vWi(Ab,ub);if((ub&-2)==0){Ab.u=rb}vb=ub;tb=true;continue wb}else{q=(rVi(),sVi)[Ab.o];if(q[q.length-1]!=59){if((ub&-2)!=0){if(Ab.nb==Ab.mb){u=p}else{u=Ab.lb[Ab.nb]}if(u>=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122){kWi(Ab,Ab.lb,0,Ab.mb);vb=ub;tb=true;continue wb}}}Bb=tVi[Ab.o];wWi(Ab,Bb,ub);if(Ab.nb<Ab.mb){if((ub&-2)!=0){for(kb=Ab.nb;kb<Ab.mb;++kb){jWi(Ab,Ab.lb[kb])}}else{wYi(Ab.qb,Ab.lb,Ab.nb,Ab.mb-Ab.nb)}}if((ub&-2)==0){Ab.u=rb}vb=ub;tb=true;continue wb}case 43:if(++rb==cb){break wb}p=hUi(Ab,o,rb);Ab.fb=-1;Ab.rb=0;Ab.ib=false;switch(p){case 120:case 88:mWi(Ab,p);vb=45;continue wb;default:vb=46;tb=true;}case 46:A:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}if(Ab.rb<Ab.fb){Ab.rb=1114112}Ab.fb=Ab.rb;if(p>=48&&p<=57){Ab.ib=true;Ab.rb*=10;Ab.rb+=p-48;continue}else if(p==59){if(Ab.ib){if((ub&-2)==0){Ab.u=rb+1}vb=47;break A}else{sxg+xfi(Ab.lb,0,Ab.mb)+rxg;mWi(Ab,59);vWi(Ab,ub);if((ub&-2)==0){Ab.u=rb+1}vb=ub;continue wb}}else{if(Ab.ib){if((ub&-2)==0){Ab.u=rb}vb=47;tb=true;break A}else{sxg+xfi(Ab.lb,0,Ab.mb)+rxg;vWi(Ab,ub);if((ub&-2)==0){Ab.u=rb}vb=ub;tb=true;continue wb}}}case 47:DWi(Ab,ub);vb=ub;continue wb;case 45:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);if(Ab.rb<Ab.fb){Ab.rb=1114112}Ab.fb=Ab.rb;if(p>=48&&p<=57){Ab.ib=true;Ab.rb*=16;Ab.rb+=p-48;continue}else if(p>=65&&p<=70){Ab.ib=true;Ab.rb*=16;Ab.rb+=p-65+10;continue}else if(p>=97&&p<=102){Ab.ib=true;Ab.rb*=16;Ab.rb+=p-97+10;continue}else if(p==59){if(Ab.ib){if((ub&-2)==0){Ab.u=rb+1}vb=47;continue wb}else{sxg+xfi(Ab.lb,0,Ab.mb)+rxg;mWi(Ab,59);vWi(Ab,ub);if((ub&-2)==0){Ab.u=rb+1}vb=ub;continue wb}}else{if(Ab.ib){if((ub&-2)==0){Ab.u=rb}vb=47;tb=true;continue wb}else{sxg+xfi(Ab.lb,0,Ab.mb)+rxg;vWi(Ab,ub);if((ub&-2)==0){Ab.u=rb}vb=ub;tb=true;continue wb}}}case 3:qb:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 0:xWi(Ab,o,rb);continue;case 13:rWi(Ab,o,rb);break wb;case 10:Ab.h=true;default:continue;}}case 2:r:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 60:kUi(Ab,o,rb);ub=vb;vb=53;break r;case 0:xWi(Ab,o,rb);continue;case 13:rWi(Ab,o,rb);break wb;case 10:Ab.h=true;default:continue;}}case 53:zb:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 33:wYi(Ab.qb,nXi,0,1);Ab.u=rb;vb=54;break zb;case 47:if(Ab.r){Ab.C=0;Ab.mb=0;vb=37;continue wb}default:wYi(Ab.qb,nXi,0,1);Ab.u=rb;vb=ub;tb=true;continue wb;}}case 54:eb:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:vb=55;break eb;default:vb=ub;tb=true;continue wb;}}case 55:db:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:vb=58;break db;default:vb=ub;tb=true;continue wb;}}case 58:fb:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:continue;case 62:vb=ub;continue wb;case 0:xWi(Ab,o,rb);vb=56;break fb;case 13:rWi(Ab,o,rb);vb=56;break wb;case 10:Ab.h=true;default:vb=56;break fb;}}case 56:hb:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:vb=57;break hb;case 0:xWi(Ab,o,rb);continue;case 13:rWi(Ab,o,rb);break wb;case 10:Ab.h=true;default:continue;}}case 57:gb:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 45:vb=58;continue wb;case 0:xWi(Ab,o,rb);vb=56;continue wb;case 13:rWi(Ab,o,rb);vb=56;continue wb;case 10:Ab.h=true;default:vb=56;continue wb;}}case 37:for(;;){if(++rb==cb){break wb}p=hUi(Ab,o,rb);if(Ab.C<Ab.s.length){bb=Ab.s[Ab.C];ib=p;if(p>=65&&p<=90){ib+=32}if(ib!=bb){Ab.A&&(Ab.C>0||ib>=97&&ib<=122)&&(xHi(),kNi)!=Ab.r;wYi(Ab.qb,oXi,0,2);yWi(Ab);Ab.u=rb;vb=ub;tb=true;continue wb}mWi(Ab,p);++Ab.C;continue}else{Ab.w=true;Ab.pb=Ab.r;switch(p){case 13:Ab.h=true;Ab.D=true;vb=7;break wb;case 10:Ab.h=true;case 32:case 9:case 12:vb=7;continue wb;case 62:vb=tWi(Ab,false,rb);if(Ab.jb){break wb}continue wb;case 47:vb=48;continue wb;default:wYi(Ab.qb,oXi,0,2);yWi(Ab);if(p==0){xWi(Ab,o,rb)}else{Ab.u=rb}vb=ub;continue wb;}}}case 5:if(++rb==cb){break wb}p=hUi(Ab,o,rb);switch(p){case 62:Ab.u=rb+1;vb=0;continue wb;case 13:Ab.h=true;Ab.D=true;Ab.F[0]=10;Ab.ab=1;vb=15;break wb;case 10:Ab.h=true;Ab.F[0]=10;Ab.ab=1;vb=15;continue wb;case 0:p=65533;default:if(p>=65&&p<=90){p+=32}if(p>=97&&p<=122){Ab.w=true;Ab.lb[0]=p;Ab.mb=1;vb=6;continue wb}else{Ab.F[0]=p;Ab.ab=1;vb=15;continue wb}}case 1:sb:for(;;){if(tb){tb=false}else{if(++rb==cb){break wb}p=hUi(Ab,o,rb)}switch(p){case 38:kUi(Ab,o,rb);Ab.lb[0]=p;Ab.mb=1;Ab.j=0;ub=vb;vb=42;continue wb;case 60:kUi(Ab,o,rb);ub=vb;vb=53;continue wb;case 0:xWi(Ab,o,rb);continue;case 13:rWi(Ab,o,rb);break wb;case 10:Ab.h=true;default:continue;}}}}kUi(Ab,o,rb);Ab.kb=vb;Ab.hb=ub;return rb} +function jXi(f,a){var b,c,d,e;e=f.kb;c=f.hb;f.jb=false;f.D=false;d=a.c;b=d-1;switch(e){case 0:case 1:case 2:case 3:case 50:case 56:case 54:case 55:case 57:case 58:f.u=d;break;default:f.u=2147483647;}b=iXi(f,e,0,b,a.a,false,c,a.b);if(b==a.b){a.c=b}else{a.c=b+1}return f.D} +function EXi(){return v_h} +function FXi(d){var a,b,c;if(d==null){return null}a=e9h(A_h,42,-1,d.length,1);for(c=0;c<d.length;++c){b=d.charCodeAt(c);if(b>=65&&b<=90){b+=32}a[c]=b}return String.fromCharCode.apply(null,a)} +function dWi(){} +_=dWi.prototype=new xdi();_.gC=EXi;_.tI=0;_.j=0;_.k=null;_.l=null;_.m=null;_.n=null;_.o=0;_.q=false;_.r=null;_.s=null;_.u=0;_.v=null;_.w=false;_.x=0;_.y=false;_.z=0;_.A=false;_.B=false;_.C=0;_.D=false;_.E=0;_.F=null;_.ab=0;_.bb=0;_.cb=false;_.eb=false;_.fb=0;_.gb=null;_.hb=0;_.ib=false;_.jb=false;_.kb=0;_.lb=null;_.mb=0;_.nb=0;_.ob=null;_.pb=null;_.qb=null;_.rb=0;_.sb=false;var kXi,lXi,mXi,nXi,oXi,pXi,qXi,rXi,sXi,tXi,uXi,vXi,wXi,xXi,yXi,zXi,AXi,BXi,CXi,DXi;function iUi(){iUi=u0i;pWi()} +function gUi(a,b){iUi();a.t=(Fli(),bmi);a.p=bmi;a.tb=bmi;a.db=bmi;a.qb=b;a.eb=false;a.n=e9h(A_h,42,-1,1,1);a.k=e9h(A_h,42,-1,2,1);a.e=bmi;return a} +function hUi(e,a,d){var b,c;e.g=e.f;e.d=e.c;if(e.h){++e.f;e.c=1;e.h=false}else{++e.c}b=a[d];if(!e.q&&!e.a&&b>127){e.a=true}switch(b){case 0:case 9:case 13:case 10:break;case 12:if(e.e==(Fli(),cmi)){CWi(e,yxg+pUi(b)+Bxg)}else{if(e.e==bmi){b=a[d]=32}yxg+pUi(b)+Bxg}break;default:if((b&64512)==56320){if((e.i&64512)==55296){c=(e.i<<10)+b+-56613888;if(c>=983040&&c<=1048573||c>=1048576&&c<=1114109){qUi(e)}}}else if(b<32||(b&65534)==65534){switch(e.e.b){case 1:CWi(e,Cxg+pUi(b)+Dxg);break;case 2:b=a[d]=65533;case 0:Cxg+pUi(b)+Dxg;}}else if(b>=127&&b<=159||b>=64976&&b<=64991){Cxg+pUi(b)+Dxg}else if(b>=57344&&b<=63743){qUi(e)}}e.i=b;return b} +function jUi(a){switch(a){case 61:return;case 60:return;}} +function kUi(e,a,d){var b,c;if(d>e.u){c=e.f;b=e.c;e.f=e.g;e.c=e.d;wYi(e.qb,a,e.u,d-e.u);e.f=c;e.c=b}e.u=2147483647} +function lUi(a){if(a.c>0){return a.c}else{return -1}} +function mUi(a){if(a.f>0){return a.f}else{return -1}} +function pUi(a){var b;b=idi(a,4);switch(b.length){case 1:return Exg+b;case 2:return Fxg+b;case 3:return ayg+b;case 4:return byg+b;default:throw Edi(new Ddi(),cyg);}} +function qUi(a){if(!a.b){a.b=true}} +function rUi(){return r_h} +function eUi(){} +_=eUi.prototype=new dWi();_.gC=rUi;_.tI=0;_.a=false;_.b=false;_.c=0;_.d=0;_.f=0;_.g=0;_.h=false;_.i=0;function xUi(){xUi=u0i;aVi=e9h(E_h,49,9,0,0);cVi=e9h(D_h,48,1,0,0);bVi=tUi(new sUi(),0)} +function tUi(b,a){xUi();b.b=a;b.a=0;b.c=e9h(E_h,49,9,5,0);b.d=e9h(D_h,48,1,5,0);b.e=0;b.f=aVi;b.g=cVi;return b} +function uUi(e,a,f,g){var b,c,d;a==(loi(),qvi);if(a.d){if(e.f.length==e.e){b=e.e==0?2:e.e<<1;c=e9h(E_h,49,9,b,0);Afi(e.f,0,c,0,e.f.length);e.f=c;d=e9h(D_h,48,1,b,0);Afi(e.g,0,d,0,e.g.length);e.g=d}e.f[e.e]=a;e.g[e.e]=f;++e.e;switch(g.b){case 1:throw y0i(new x0i(),dyg);case 2:return;}}if(e.c.length==e.a){b=e.a<<1;c=e9h(E_h,49,9,b,0);Afi(e.c,0,c,0,e.c.length);e.c=c;d=e9h(D_h,48,1,b,0);Afi(e.d,0,d,0,e.d.length);e.d=d}e.c[e.a]=a;e.d[e.a]=f;++e.a} +function wUi(c,b){var a;for(a=0;a<c.a;++a){h9h(c.c,a,null);h9h(c.d,a,null)}c.a=0;c.b=b;for(a=0;a<c.e;++a){h9h(c.f,a,null);h9h(c.g,a,null)}c.e=0} +function vUi(b){var a;for(a=0;a<b.a;++a){h9h(b.c,a,null);h9h(b.d,a,null)}b.a=0} +function yUi(c,b){var a;for(a=0;a<c.a;++a){if(b.a[0]==c.c[a].a[0]){return true}}for(a=0;a<c.e;++a){if(b.a[0]==c.f[a].a[0]){return true}}return false} +function zUi(b,a){if(a<b.a&&a>=0){return b.c[a]}else{return null}} +function AUi(c,b){var a;for(a=0;a<c.a;++a){if(c.c[a]==b){return a}}return -1} +function BUi(b,a){if(a<b.a&&a>=0){return b.c[a].a[b.b]}else{return null}} +function CUi(b,a){if(a<b.a&&a>=0){return b.c[a].c[b.b]}else{return null}} +function DUi(b,a){if(a<b.a&&a>=0){return b.d[a]}else{return null}} +function EUi(c,b){var a;a=AUi(c,b);if(a==-1){return null}else{return DUi(c,a)}} +function FUi(e,f,d){var a,b,c;for(b=0;b<e.a;++b){a=e.c[b];if(!a.b[e.b]){c=a.a[e.b];switch(d.b){case 2:e.c[b]=(loi(),joi(new ioi(),epi,BCi(mVi(c)),fpi,cpi,false));case 0:a!=(loi(),EGi);break;case 1:fZi(f,mxg+c+eyg);}}}} +function dVi(){return s_h} +function sUi(){} +_=sUi.prototype=new xdi();_.gC=dVi;_.tI=0;_.a=0;_.b=0;_.c=null;_.d=null;_.e=0;_.f=null;_.g=null;var aVi,bVi,cVi;function fVi(b,a){lUi(a);mUi(a);return b} +function hVi(){return t_h} +function eVi(){} +_=eVi.prototype=new xdi();_.gC=hVi;_.tI=0;function jVi(){jVi=u0i;kVi=lfi(gyg)} +function lVi(c,a){var b;uei(c,hyg);for(b=0;b<6;++b){uei(c,String.fromCharCode(kVi[(a&983040)>>16]));a<<=4}} +function mVi(e){jVi();var a,b,c,d;d=tei(new rei());for(b=0;b<e.length;++b){a=e.charCodeAt(b);if((a&64512)==55296){c=e.charCodeAt(++b);lVi(d,(a<<10)+c+-56613888)}else if(b==0&&!(a>=65&&a<=90||a>=97&&a<=122||a>=192&&a<=214||a>=216&&a<=246||a>=248&&a<=255||a>=256&&a<=305||a>=308&&a<=318||a>=321&&a<=328||a>=330&&a<=382||a>=384&&a<=451||a>=461&&a<=496||a>=500&&a<=501||a>=506&&a<=535||a>=592&&a<=680||a>=699&&a<=705||a==902||a>=904&&a<=906||a==908||a>=910&&a<=929||a>=931&&a<=974||a>=976&&a<=982||a==986||a==988||a==990||a==992||a>=994&&a<=1011||a>=1025&&a<=1036||a>=1038&&a<=1103||a>=1105&&a<=1116||a>=1118&&a<=1153||a>=1168&&a<=1220||a>=1223&&a<=1224||a>=1227&&a<=1228||a>=1232&&a<=1259||a>=1262&&a<=1269||a>=1272&&a<=1273||a>=1329&&a<=1366||a==1369||a>=1377&&a<=1414||a>=1488&&a<=1514||a>=1520&&a<=1522||a>=1569&&a<=1594||a>=1601&&a<=1610||a>=1649&&a<=1719||a>=1722&&a<=1726||a>=1728&&a<=1742||a>=1744&&a<=1747||a==1749||a>=1765&&a<=1766||a>=2309&&a<=2361||a==2365||a>=2392&&a<=2401||a>=2437&&a<=2444||a>=2447&&a<=2448||a>=2451&&a<=2472||a>=2474&&a<=2480||a==2482||a>=2486&&a<=2489||a>=2524&&a<=2525||a>=2527&&a<=2529||a>=2544&&a<=2545||a>=2565&&a<=2570||a>=2575&&a<=2576||a>=2579&&a<=2600||a>=2602&&a<=2608||a>=2610&&a<=2611||a>=2613&&a<=2614||a>=2616&&a<=2617||a>=2649&&a<=2652||a==2654||a>=2674&&a<=2676||a>=2693&&a<=2699||a==2701||a>=2703&&a<=2705||a>=2707&&a<=2728||a>=2730&&a<=2736||a>=2738&&a<=2739||a>=2741&&a<=2745||a==2749||a==2784||a>=2821&&a<=2828||a>=2831&&a<=2832||a>=2835&&a<=2856||a>=2858&&a<=2864||a>=2866&&a<=2867||a>=2870&&a<=2873||a==2877||a>=2908&&a<=2909||a>=2911&&a<=2913||a>=2949&&a<=2954||a>=2958&&a<=2960||a>=2962&&a<=2965||a>=2969&&a<=2970||a==2972||a>=2974&&a<=2975||a>=2979&&a<=2980||a>=2984&&a<=2986||a>=2990&&a<=2997||a>=2999&&a<=3001||a>=3077&&a<=3084||a>=3086&&a<=3088||a>=3090&&a<=3112||a>=3114&&a<=3123||a>=3125&&a<=3129||a>=3168&&a<=3169||a>=3205&&a<=3212||a>=3214&&a<=3216||a>=3218&&a<=3240||a>=3242&&a<=3251||a>=3253&&a<=3257||a==3294||a>=3296&&a<=3297||a>=3333&&a<=3340||a>=3342&&a<=3344||a>=3346&&a<=3368||a>=3370&&a<=3385||a>=3424&&a<=3425||a>=3585&&a<=3630||a==3632||a>=3634&&a<=3635||a>=3648&&a<=3653||a>=3713&&a<=3714||a==3716||a>=3719&&a<=3720||a==3722||a==3725||a>=3732&&a<=3735||a>=3737&&a<=3743||a>=3745&&a<=3747||a==3749||a==3751||a>=3754&&a<=3755||a>=3757&&a<=3758||a==3760||a>=3762&&a<=3763||a==3773||a>=3776&&a<=3780||a>=3904&&a<=3911||a>=3913&&a<=3945||a>=4256&&a<=4293||a>=4304&&a<=4342||a==4352||a>=4354&&a<=4355||a>=4357&&a<=4359||a==4361||a>=4363&&a<=4364||a>=4366&&a<=4370||a==4412||a==4414||a==4416||a==4428||a==4430||a==4432||a>=4436&&a<=4437||a==4441||a>=4447&&a<=4449||a==4451||a==4453||a==4455||a==4457||a>=4461&&a<=4462||a>=4466&&a<=4467||a==4469||a==4510||a==4520||a==4523||a>=4526&&a<=4527||a>=4535&&a<=4536||a==4538||a>=4540&&a<=4546||a==4587||a==4592||a==4601||a>=7680&&a<=7835||a>=7840&&a<=7929||a>=7936&&a<=7957||a>=7960&&a<=7965||a>=7968&&a<=8005||a>=8008&&a<=8013||a>=8016&&a<=8023||a==8025||a==8027||a==8029||a>=8031&&a<=8061||a>=8064&&a<=8116||a>=8118&&a<=8124||a==8126||a>=8130&&a<=8132||a>=8134&&a<=8140||a>=8144&&a<=8147||a>=8150&&a<=8155||a>=8160&&a<=8172||a>=8178&&a<=8180||a>=8182&&a<=8188||a==8486||a>=8490&&a<=8491||a==8494||a>=8576&&a<=8578||a>=12353&&a<=12436||a>=12449&&a<=12538||a>=12549&&a<=12588||a>=44032&&a<=55203||a>=19968&&a<=40869||a==12295||a>=12321&&a<=12329||a==95)){lVi(d,a)}else if(b!=0&&!(a>=48&&a<=57||a>=1632&&a<=1641||a>=1776&&a<=1785||a>=2406&&a<=2415||a>=2534&&a<=2543||a>=2662&&a<=2671||a>=2790&&a<=2799||a>=2918&&a<=2927||a>=3047&&a<=3055||a>=3174&&a<=3183||a>=3302&&a<=3311||a>=3430&&a<=3439||a>=3664&&a<=3673||a>=3792&&a<=3801||a>=3872&&a<=3881||a>=65&&a<=90||a>=97&&a<=122||a>=192&&a<=214||a>=216&&a<=246||a>=248&&a<=255||a>=256&&a<=305||a>=308&&a<=318||a>=321&&a<=328||a>=330&&a<=382||a>=384&&a<=451||a>=461&&a<=496||a>=500&&a<=501||a>=506&&a<=535||a>=592&&a<=680||a>=699&&a<=705||a==902||a>=904&&a<=906||a==908||a>=910&&a<=929||a>=931&&a<=974||a>=976&&a<=982||a==986||a==988||a==990||a==992||a>=994&&a<=1011||a>=1025&&a<=1036||a>=1038&&a<=1103||a>=1105&&a<=1116||a>=1118&&a<=1153||a>=1168&&a<=1220||a>=1223&&a<=1224||a>=1227&&a<=1228||a>=1232&&a<=1259||a>=1262&&a<=1269||a>=1272&&a<=1273||a>=1329&&a<=1366||a==1369||a>=1377&&a<=1414||a>=1488&&a<=1514||a>=1520&&a<=1522||a>=1569&&a<=1594||a>=1601&&a<=1610||a>=1649&&a<=1719||a>=1722&&a<=1726||a>=1728&&a<=1742||a>=1744&&a<=1747||a==1749||a>=1765&&a<=1766||a>=2309&&a<=2361||a==2365||a>=2392&&a<=2401||a>=2437&&a<=2444||a>=2447&&a<=2448||a>=2451&&a<=2472||a>=2474&&a<=2480||a==2482||a>=2486&&a<=2489||a>=2524&&a<=2525||a>=2527&&a<=2529||a>=2544&&a<=2545||a>=2565&&a<=2570||a>=2575&&a<=2576||a>=2579&&a<=2600||a>=2602&&a<=2608||a>=2610&&a<=2611||a>=2613&&a<=2614||a>=2616&&a<=2617||a>=2649&&a<=2652||a==2654||a>=2674&&a<=2676||a>=2693&&a<=2699||a==2701||a>=2703&&a<=2705||a>=2707&&a<=2728||a>=2730&&a<=2736||a>=2738&&a<=2739||a>=2741&&a<=2745||a==2749||a==2784||a>=2821&&a<=2828||a>=2831&&a<=2832||a>=2835&&a<=2856||a>=2858&&a<=2864||a>=2866&&a<=2867||a>=2870&&a<=2873||a==2877||a>=2908&&a<=2909||a>=2911&&a<=2913||a>=2949&&a<=2954||a>=2958&&a<=2960||a>=2962&&a<=2965||a>=2969&&a<=2970||a==2972||a>=2974&&a<=2975||a>=2979&&a<=2980||a>=2984&&a<=2986||a>=2990&&a<=2997||a>=2999&&a<=3001||a>=3077&&a<=3084||a>=3086&&a<=3088||a>=3090&&a<=3112||a>=3114&&a<=3123||a>=3125&&a<=3129||a>=3168&&a<=3169||a>=3205&&a<=3212||a>=3214&&a<=3216||a>=3218&&a<=3240||a>=3242&&a<=3251||a>=3253&&a<=3257||a==3294||a>=3296&&a<=3297||a>=3333&&a<=3340||a>=3342&&a<=3344||a>=3346&&a<=3368||a>=3370&&a<=3385||a>=3424&&a<=3425||a>=3585&&a<=3630||a==3632||a>=3634&&a<=3635||a>=3648&&a<=3653||a>=3713&&a<=3714||a==3716||a>=3719&&a<=3720||a==3722||a==3725||a>=3732&&a<=3735||a>=3737&&a<=3743||a>=3745&&a<=3747||a==3749||a==3751||a>=3754&&a<=3755||a>=3757&&a<=3758||a==3760||a>=3762&&a<=3763||a==3773||a>=3776&&a<=3780||a>=3904&&a<=3911||a>=3913&&a<=3945||a>=4256&&a<=4293||a>=4304&&a<=4342||a==4352||a>=4354&&a<=4355||a>=4357&&a<=4359||a==4361||a>=4363&&a<=4364||a>=4366&&a<=4370||a==4412||a==4414||a==4416||a==4428||a==4430||a==4432||a>=4436&&a<=4437||a==4441||a>=4447&&a<=4449||a==4451||a==4453||a==4455||a==4457||a>=4461&&a<=4462||a>=4466&&a<=4467||a==4469||a==4510||a==4520||a==4523||a>=4526&&a<=4527||a>=4535&&a<=4536||a==4538||a>=4540&&a<=4546||a==4587||a==4592||a==4601||a>=7680&&a<=7835||a>=7840&&a<=7929||a>=7936&&a<=7957||a>=7960&&a<=7965||a>=7968&&a<=8005||a>=8008&&a<=8013||a>=8016&&a<=8023||a==8025||a==8027||a==8029||a>=8031&&a<=8061||a>=8064&&a<=8116||a>=8118&&a<=8124||a==8126||a>=8130&&a<=8132||a>=8134&&a<=8140||a>=8144&&a<=8147||a>=8150&&a<=8155||a>=8160&&a<=8172||a>=8178&&a<=8180||a>=8182&&a<=8188||a==8486||a>=8490&&a<=8491||a==8494||a>=8576&&a<=8578||a>=12353&&a<=12436||a>=12449&&a<=12538||a>=12549&&a<=12588||a>=44032&&a<=55203||a>=19968&&a<=40869||a==12295||a>=12321&&a<=12329||a==95||a==46||a==45||a>=768&&a<=837||a>=864&&a<=865||a>=1155&&a<=1158||a>=1425&&a<=1441||a>=1443&&a<=1465||a>=1467&&a<=1469||a==1471||a>=1473&&a<=1474||a==1476||a>=1611&&a<=1618||a==1648||a>=1750&&a<=1756||a>=1757&&a<=1759||a>=1760&&a<=1764||a>=1767&&a<=1768||a>=1770&&a<=1773||a>=2305&&a<=2307||a==2364||a>=2366&&a<=2380||a==2381||a>=2385&&a<=2388||a>=2402&&a<=2403||a>=2433&&a<=2435||a==2492||a==2494||a==2495||a>=2496&&a<=2500||a>=2503&&a<=2504||a>=2507&&a<=2509||a==2519||a>=2530&&a<=2531||a==2562||a==2620||a==2622||a==2623||a>=2624&&a<=2626||a>=2631&&a<=2632||a>=2635&&a<=2637||a>=2672&&a<=2673||a>=2689&&a<=2691||a==2748||a>=2750&&a<=2757||a>=2759&&a<=2761||a>=2763&&a<=2765||a>=2817&&a<=2819||a==2876||a>=2878&&a<=2883||a>=2887&&a<=2888||a>=2891&&a<=2893||a>=2902&&a<=2903||a>=2946&&a<=2947||a>=3006&&a<=3010||a>=3014&&a<=3016||a>=3018&&a<=3021||a==3031||a>=3073&&a<=3075||a>=3134&&a<=3140||a>=3142&&a<=3144||a>=3146&&a<=3149||a>=3157&&a<=3158||a>=3202&&a<=3203||a>=3262&&a<=3268||a>=3270&&a<=3272||a>=3274&&a<=3277||a>=3285&&a<=3286||a>=3330&&a<=3331||a>=3390&&a<=3395||a>=3398&&a<=3400||a>=3402&&a<=3405||a==3415||a==3633||a>=3636&&a<=3642||a>=3655&&a<=3662||a==3761||a>=3764&&a<=3769||a>=3771&&a<=3772||a>=3784&&a<=3789||a>=3864&&a<=3865||a==3893||a==3895||a==3897||a==3902||a==3903||a>=3953&&a<=3972||a>=3974&&a<=3979||a>=3984&&a<=3989||a==3991||a>=3993&&a<=4013||a>=4017&&a<=4023||a==4025||a>=8400&&a<=8412||a==8417||a>=12330&&a<=12335||a==12441||a==12442||a==183||a==720||a==721||a==903||a==1600||a==3654||a==3782||a==12293||a>=12337&&a<=12341||a>=12445&&a<=12446||a>=12540&&a<=12542)){lVi(d,a)}else{uei(d,String.fromCharCode(a))}}return String(zei(d))} +function pVi(c){jVi();var a,b;if(c==null){return false}else{b=c.length;switch(b){case 0:return false;case 1:return nVi(c.charCodeAt(0));default:if(!nVi(c.charCodeAt(0))){return false}for(a=1;a<b;++a){if(!oVi(c.charCodeAt(a))){return false}}}return true}} +function nVi(a){return a>=65&&a<=90||a>=97&&a<=122||a>=192&&a<=214||a>=216&&a<=246||a>=248&&a<=255||a>=256&&a<=305||a>=308&&a<=318||a>=321&&a<=328||a>=330&&a<=382||a>=384&&a<=451||a>=461&&a<=496||a>=500&&a<=501||a>=506&&a<=535||a>=592&&a<=680||a>=699&&a<=705||a==902||a>=904&&a<=906||a==908||a>=910&&a<=929||a>=931&&a<=974||a>=976&&a<=982||a==986||a==988||a==990||a==992||a>=994&&a<=1011||a>=1025&&a<=1036||a>=1038&&a<=1103||a>=1105&&a<=1116||a>=1118&&a<=1153||a>=1168&&a<=1220||a>=1223&&a<=1224||a>=1227&&a<=1228||a>=1232&&a<=1259||a>=1262&&a<=1269||a>=1272&&a<=1273||a>=1329&&a<=1366||a==1369||a>=1377&&a<=1414||a>=1488&&a<=1514||a>=1520&&a<=1522||a>=1569&&a<=1594||a>=1601&&a<=1610||a>=1649&&a<=1719||a>=1722&&a<=1726||a>=1728&&a<=1742||a>=1744&&a<=1747||a==1749||a>=1765&&a<=1766||a>=2309&&a<=2361||a==2365||a>=2392&&a<=2401||a>=2437&&a<=2444||a>=2447&&a<=2448||a>=2451&&a<=2472||a>=2474&&a<=2480||a==2482||a>=2486&&a<=2489||a>=2524&&a<=2525||a>=2527&&a<=2529||a>=2544&&a<=2545||a>=2565&&a<=2570||a>=2575&&a<=2576||a>=2579&&a<=2600||a>=2602&&a<=2608||a>=2610&&a<=2611||a>=2613&&a<=2614||a>=2616&&a<=2617||a>=2649&&a<=2652||a==2654||a>=2674&&a<=2676||a>=2693&&a<=2699||a==2701||a>=2703&&a<=2705||a>=2707&&a<=2728||a>=2730&&a<=2736||a>=2738&&a<=2739||a>=2741&&a<=2745||a==2749||a==2784||a>=2821&&a<=2828||a>=2831&&a<=2832||a>=2835&&a<=2856||a>=2858&&a<=2864||a>=2866&&a<=2867||a>=2870&&a<=2873||a==2877||a>=2908&&a<=2909||a>=2911&&a<=2913||a>=2949&&a<=2954||a>=2958&&a<=2960||a>=2962&&a<=2965||a>=2969&&a<=2970||a==2972||a>=2974&&a<=2975||a>=2979&&a<=2980||a>=2984&&a<=2986||a>=2990&&a<=2997||a>=2999&&a<=3001||a>=3077&&a<=3084||a>=3086&&a<=3088||a>=3090&&a<=3112||a>=3114&&a<=3123||a>=3125&&a<=3129||a>=3168&&a<=3169||a>=3205&&a<=3212||a>=3214&&a<=3216||a>=3218&&a<=3240||a>=3242&&a<=3251||a>=3253&&a<=3257||a==3294||a>=3296&&a<=3297||a>=3333&&a<=3340||a>=3342&&a<=3344||a>=3346&&a<=3368||a>=3370&&a<=3385||a>=3424&&a<=3425||a>=3585&&a<=3630||a==3632||a>=3634&&a<=3635||a>=3648&&a<=3653||a>=3713&&a<=3714||a==3716||a>=3719&&a<=3720||a==3722||a==3725||a>=3732&&a<=3735||a>=3737&&a<=3743||a>=3745&&a<=3747||a==3749||a==3751||a>=3754&&a<=3755||a>=3757&&a<=3758||a==3760||a>=3762&&a<=3763||a==3773||a>=3776&&a<=3780||a>=3904&&a<=3911||a>=3913&&a<=3945||a>=4256&&a<=4293||a>=4304&&a<=4342||a==4352||a>=4354&&a<=4355||a>=4357&&a<=4359||a==4361||a>=4363&&a<=4364||a>=4366&&a<=4370||a==4412||a==4414||a==4416||a==4428||a==4430||a==4432||a>=4436&&a<=4437||a==4441||a>=4447&&a<=4449||a==4451||a==4453||a==4455||a==4457||a>=4461&&a<=4462||a>=4466&&a<=4467||a==4469||a==4510||a==4520||a==4523||a>=4526&&a<=4527||a>=4535&&a<=4536||a==4538||a>=4540&&a<=4546||a==4587||a==4592||a==4601||a>=7680&&a<=7835||a>=7840&&a<=7929||a>=7936&&a<=7957||a>=7960&&a<=7965||a>=7968&&a<=8005||a>=8008&&a<=8013||a>=8016&&a<=8023||a==8025||a==8027||a==8029||a>=8031&&a<=8061||a>=8064&&a<=8116||a>=8118&&a<=8124||a==8126||a>=8130&&a<=8132||a>=8134&&a<=8140||a>=8144&&a<=8147||a>=8150&&a<=8155||a>=8160&&a<=8172||a>=8178&&a<=8180||a>=8182&&a<=8188||a==8486||a>=8490&&a<=8491||a==8494||a>=8576&&a<=8578||a>=12353&&a<=12436||a>=12449&&a<=12538||a>=12549&&a<=12588||a>=44032&&a<=55203||a>=19968&&a<=40869||a==12295||a>=12321&&a<=12329||a==95} +function oVi(a){return a>=48&&a<=57||a>=1632&&a<=1641||a>=1776&&a<=1785||a>=2406&&a<=2415||a>=2534&&a<=2543||a>=2662&&a<=2671||a>=2790&&a<=2799||a>=2918&&a<=2927||a>=3047&&a<=3055||a>=3174&&a<=3183||a>=3302&&a<=3311||a>=3430&&a<=3439||a>=3664&&a<=3673||a>=3792&&a<=3801||a>=3872&&a<=3881||a>=65&&a<=90||a>=97&&a<=122||a>=192&&a<=214||a>=216&&a<=246||a>=248&&a<=255||a>=256&&a<=305||a>=308&&a<=318||a>=321&&a<=328||a>=330&&a<=382||a>=384&&a<=451||a>=461&&a<=496||a>=500&&a<=501||a>=506&&a<=535||a>=592&&a<=680||a>=699&&a<=705||a==902||a>=904&&a<=906||a==908||a>=910&&a<=929||a>=931&&a<=974||a>=976&&a<=982||a==986||a==988||a==990||a==992||a>=994&&a<=1011||a>=1025&&a<=1036||a>=1038&&a<=1103||a>=1105&&a<=1116||a>=1118&&a<=1153||a>=1168&&a<=1220||a>=1223&&a<=1224||a>=1227&&a<=1228||a>=1232&&a<=1259||a>=1262&&a<=1269||a>=1272&&a<=1273||a>=1329&&a<=1366||a==1369||a>=1377&&a<=1414||a>=1488&&a<=1514||a>=1520&&a<=1522||a>=1569&&a<=1594||a>=1601&&a<=1610||a>=1649&&a<=1719||a>=1722&&a<=1726||a>=1728&&a<=1742||a>=1744&&a<=1747||a==1749||a>=1765&&a<=1766||a>=2309&&a<=2361||a==2365||a>=2392&&a<=2401||a>=2437&&a<=2444||a>=2447&&a<=2448||a>=2451&&a<=2472||a>=2474&&a<=2480||a==2482||a>=2486&&a<=2489||a>=2524&&a<=2525||a>=2527&&a<=2529||a>=2544&&a<=2545||a>=2565&&a<=2570||a>=2575&&a<=2576||a>=2579&&a<=2600||a>=2602&&a<=2608||a>=2610&&a<=2611||a>=2613&&a<=2614||a>=2616&&a<=2617||a>=2649&&a<=2652||a==2654||a>=2674&&a<=2676||a>=2693&&a<=2699||a==2701||a>=2703&&a<=2705||a>=2707&&a<=2728||a>=2730&&a<=2736||a>=2738&&a<=2739||a>=2741&&a<=2745||a==2749||a==2784||a>=2821&&a<=2828||a>=2831&&a<=2832||a>=2835&&a<=2856||a>=2858&&a<=2864||a>=2866&&a<=2867||a>=2870&&a<=2873||a==2877||a>=2908&&a<=2909||a>=2911&&a<=2913||a>=2949&&a<=2954||a>=2958&&a<=2960||a>=2962&&a<=2965||a>=2969&&a<=2970||a==2972||a>=2974&&a<=2975||a>=2979&&a<=2980||a>=2984&&a<=2986||a>=2990&&a<=2997||a>=2999&&a<=3001||a>=3077&&a<=3084||a>=3086&&a<=3088||a>=3090&&a<=3112||a>=3114&&a<=3123||a>=3125&&a<=3129||a>=3168&&a<=3169||a>=3205&&a<=3212||a>=3214&&a<=3216||a>=3218&&a<=3240||a>=3242&&a<=3251||a>=3253&&a<=3257||a==3294||a>=3296&&a<=3297||a>=3333&&a<=3340||a>=3342&&a<=3344||a>=3346&&a<=3368||a>=3370&&a<=3385||a>=3424&&a<=3425||a>=3585&&a<=3630||a==3632||a>=3634&&a<=3635||a>=3648&&a<=3653||a>=3713&&a<=3714||a==3716||a>=3719&&a<=3720||a==3722||a==3725||a>=3732&&a<=3735||a>=3737&&a<=3743||a>=3745&&a<=3747||a==3749||a==3751||a>=3754&&a<=3755||a>=3757&&a<=3758||a==3760||a>=3762&&a<=3763||a==3773||a>=3776&&a<=3780||a>=3904&&a<=3911||a>=3913&&a<=3945||a>=4256&&a<=4293||a>=4304&&a<=4342||a==4352||a>=4354&&a<=4355||a>=4357&&a<=4359||a==4361||a>=4363&&a<=4364||a>=4366&&a<=4370||a==4412||a==4414||a==4416||a==4428||a==4430||a==4432||a>=4436&&a<=4437||a==4441||a>=4447&&a<=4449||a==4451||a==4453||a==4455||a==4457||a>=4461&&a<=4462||a>=4466&&a<=4467||a==4469||a==4510||a==4520||a==4523||a>=4526&&a<=4527||a>=4535&&a<=4536||a==4538||a>=4540&&a<=4546||a==4587||a==4592||a==4601||a>=7680&&a<=7835||a>=7840&&a<=7929||a>=7936&&a<=7957||a>=7960&&a<=7965||a>=7968&&a<=8005||a>=8008&&a<=8013||a>=8016&&a<=8023||a==8025||a==8027||a==8029||a>=8031&&a<=8061||a>=8064&&a<=8116||a>=8118&&a<=8124||a==8126||a>=8130&&a<=8132||a>=8134&&a<=8140||a>=8144&&a<=8147||a>=8150&&a<=8155||a>=8160&&a<=8172||a>=8178&&a<=8180||a>=8182&&a<=8188||a==8486||a>=8490&&a<=8491||a==8494||a>=8576&&a<=8578||a>=12353&&a<=12436||a>=12449&&a<=12538||a>=12549&&a<=12588||a>=44032&&a<=55203||a>=19968&&a<=40869||a==12295||a>=12321&&a<=12329||a==95||a==46||a==45||a>=768&&a<=837||a>=864&&a<=865||a>=1155&&a<=1158||a>=1425&&a<=1441||a>=1443&&a<=1465||a>=1467&&a<=1469||a==1471||a>=1473&&a<=1474||a==1476||a>=1611&&a<=1618||a==1648||a>=1750&&a<=1756||a>=1757&&a<=1759||a>=1760&&a<=1764||a>=1767&&a<=1768||a>=1770&&a<=1773||a>=2305&&a<=2307||a==2364||a>=2366&&a<=2380||a==2381||a>=2385&&a<=2388||a>=2402&&a<=2403||a>=2433&&a<=2435||a==2492||a==2494||a==2495||a>=2496&&a<=2500||a>=2503&&a<=2504||a>=2507&&a<=2509||a==2519||a>=2530&&a<=2531||a==2562||a==2620||a==2622||a==2623||a>=2624&&a<=2626||a>=2631&&a<=2632||a>=2635&&a<=2637||a>=2672&&a<=2673||a>=2689&&a<=2691||a==2748||a>=2750&&a<=2757||a>=2759&&a<=2761||a>=2763&&a<=2765||a>=2817&&a<=2819||a==2876||a>=2878&&a<=2883||a>=2887&&a<=2888||a>=2891&&a<=2893||a>=2902&&a<=2903||a>=2946&&a<=2947||a>=3006&&a<=3010||a>=3014&&a<=3016||a>=3018&&a<=3021||a==3031||a>=3073&&a<=3075||a>=3134&&a<=3140||a>=3142&&a<=3144||a>=3146&&a<=3149||a>=3157&&a<=3158||a>=3202&&a<=3203||a>=3262&&a<=3268||a>=3270&&a<=3272||a>=3274&&a<=3277||a>=3285&&a<=3286||a>=3330&&a<=3331||a>=3390&&a<=3395||a>=3398&&a<=3400||a>=3402&&a<=3405||a==3415||a==3633||a>=3636&&a<=3642||a>=3655&&a<=3662||a==3761||a>=3764&&a<=3769||a>=3771&&a<=3772||a>=3784&&a<=3789||a>=3864&&a<=3865||a==3893||a==3895||a==3897||a==3902||a==3903||a>=3953&&a<=3972||a>=3974&&a<=3979||a>=3984&&a<=3989||a==3991||a>=3993&&a<=4013||a>=4017&&a<=4023||a==4025||a>=8400&&a<=8412||a==8417||a>=12330&&a<=12335||a==12441||a==12442||a==183||a==720||a==721||a==903||a==1600||a==3654||a==3782||a==12293||a>=12337&&a<=12341||a>=12445&&a<=12446||a>=12540&&a<=12542} +var kVi;function rVi(){rVi=u0i;sVi=f9h(cai,52,12,[lfi(iyg),lfi(jyg),lfi(kyg),lfi(lyg),lfi(myg),lfi(nyg),lfi(oyg),lfi(pyg),lfi(ryg),lfi(syg),lfi(tyg),lfi(uyg),lfi(vyg),lfi(wyg),lfi(xyg),lfi(yyg),lfi(zyg),lfi(Ayg),lfi(Cyg),lfi(Dyg),lfi(Eyg),lfi(Fyg),lfi(azg),lfi(bzg),lfi(czg),lfi(dzg),lfi(ezg),lfi(fzg),lfi(hzg),lfi(izg),lfi(jzg),lfi(kzg),lfi(lzg),lfi(mzg),lfi(nzg),lfi(ozg),lfi(pzg),lfi(qzg),lfi(szg),lfi(tzg),lfi(uzg),lfi(vzg),lfi(wzg),lfi(xzg),lfi(yzg),lfi(zzg),lfi(Azg),lfi(Bzg),lfi(Dzg),lfi(Ezg),lfi(Fzg),lfi(aAg),lfi(bAg),lfi(cAg),lfi(dAg),lfi(eAg),lfi(fAg),lfi(gAg),lfi(iAg),lfi(jAg),lfi(kAg),lfi(lAg),lfi(mAg),lfi(nAg),lfi(oAg),lfi(pAg),lfi(qAg),lfi(rAg),lfi(tAg),lfi(uAg),lfi(vAg),lfi(wAg),lfi(xAg),lfi(yAg),lfi(zAg),lfi(AAg),lfi(BAg),lfi(CAg),lfi(EAg),lfi(FAg),lfi(aBg),lfi(bBg),lfi(cBg),lfi(dBg),lfi(eBg),lfi(fBg),lfi(gBg),lfi(hBg),lfi(kBg),lfi(lBg),lfi(mBg),lfi(nBg),lfi(oBg),lfi(pBg),lfi(qBg),lfi(rBg),lfi(sBg),lfi(tBg),lfi(vBg),lfi(wBg),lfi(xBg),lfi(yBg),lfi(zBg),lfi(ABg),lfi(BBg),lfi(CBg),lfi(DBg),lfi(EBg),lfi(aCg),lfi(bCg),lfi(cCg),lfi(dCg),lfi(eCg),lfi(fCg),lfi(gCg),lfi(hCg),lfi(iCg),lfi(jCg),lfi(lCg),lfi(mCg),lfi(nCg),lfi(oCg),lfi(pCg),lfi(qCg),lfi(rCg),lfi(sCg),lfi(tCg),lfi(uCg),lfi(wCg),lfi(xCg),lfi(yCg),lfi(zCg),lfi(ACg),lfi(BCg),lfi(CCg),lfi(DCg),lfi(ECg),lfi(FCg),lfi(bDg),lfi(cDg),lfi(dDg),lfi(eDg),lfi(fDg),lfi(gDg),lfi(hDg),lfi(iDg),lfi(jDg),lfi(kDg),lfi(mDg),lfi(nDg),lfi(oDg),lfi(pDg),lfi(qDg),lfi(rDg),lfi(sDg),lfi(tDg),lfi(uDg),lfi(vDg),lfi(xDg),lfi(yDg),lfi(zDg),lfi(ADg),lfi(BDg),lfi(CDg),lfi(DDg),lfi(EDg),lfi(FDg),lfi(aEg),lfi(cEg),lfi(dEg),lfi(eEg),lfi(fEg),lfi(gEg),lfi(hEg),lfi(iEg),lfi(jEg),lfi(kEg),lfi(lEg),lfi(nEg),lfi(oEg),lfi(pEg),lfi(qEg),lfi(rEg),lfi(sEg),lfi(tEg),lfi(uEg),lfi(vEg),lfi(wEg),lfi(zEg),lfi(AEg),lfi(BEg),lfi(CEg),lfi(DEg),lfi(EEg),lfi(FEg),lfi(aFg),lfi(bFg),lfi(cFg),lfi(eFg),lfi(fFg),lfi(gFg),lfi(hFg),lfi(iFg),lfi(jFg),lfi(kFg),lfi(lFg),lfi(mFg),lfi(nFg),lfi(pFg),lfi(qFg),lfi(rFg),lfi(sFg),lfi(tFg),lfi(uFg),lfi(vFg),lfi(wFg),lfi(xFg),lfi(yFg),lfi(AFg),lfi(BFg),lfi(CFg),lfi(DFg),lfi(EFg),lfi(FFg),lfi(aGg),lfi(bGg),lfi(cGg),lfi(dGg),lfi(fGg),lfi(gGg),lfi(hGg),lfi(iGg),lfi(jGg),lfi(kGg),lfi(lGg),lfi(mGg),lfi(nGg),lfi(oGg),lfi(qGg),lfi(rGg),lfi(sGg),lfi(tGg),lfi(uGg),lfi(vGg),lfi(wGg),lfi(xGg),lfi(yGg),lfi(zGg),lfi(BGg),lfi(CGg),lfi(DGg),lfi(EGg),lfi(FGg),lfi(aHg),lfi(bHg),lfi(cHg),lfi(dHg),lfi(eHg),lfi(gHg),lfi(hHg),lfi(iHg),lfi(jHg),lfi(kHg),lfi(lHg),lfi(mHg),lfi(nHg),lfi(oHg),lfi(pHg),lfi(rHg),lfi(sHg),lfi(tHg),lfi(uHg),lfi(vHg),lfi(wHg),lfi(xHg),lfi(yHg),lfi(zHg),lfi(AHg),lfi(CHg),lfi(DHg),lfi(EHg),lfi(FHg),lfi(aIg),lfi(bIg),lfi(cIg),lfi(dIg),lfi(eIg),lfi(fIg),lfi(iIg),lfi(jIg),lfi(kIg),lfi(lIg),lfi(mIg),lfi(nIg),lfi(oIg),lfi(pIg),lfi(qIg),lfi(rIg),lfi(tIg),lfi(uIg),lfi(vIg),lfi(wIg),lfi(xIg),lfi(yIg),lfi(zIg),lfi(AIg),lfi(BIg),lfi(CIg),lfi(EIg),lfi(FIg),lfi(aJg),lfi(bJg),lfi(cJg),lfi(dJg),lfi(eJg),lfi(fJg),lfi(gJg),lfi(hJg),lfi(jJg),lfi(kJg),lfi(lJg),lfi(mJg),lfi(nJg),lfi(oJg),lfi(pJg),lfi(qJg),lfi(rJg),lfi(sJg),lfi(uJg),lfi(vJg),lfi(wJg),lfi(xJg),lfi(yJg),lfi(zJg),lfi(AJg),lfi(BJg),lfi(CJg),lfi(DJg),lfi(FJg),lfi(aKg),lfi(bKg),lfi(cKg),lfi(dKg),lfi(eKg),lfi(fKg),lfi(gKg),lfi(hKg),lfi(iKg),lfi(kKg),lfi(lKg),lfi(mKg),lfi(nKg),lfi(oKg),lfi(pKg),lfi(qKg),lfi(rKg),lfi(sKg),lfi(tKg),lfi(vKg),lfi(wKg),lfi(xKg),lfi(yKg),lfi(zKg),lfi(AKg),lfi(BKg),lfi(CKg),lfi(DKg),lfi(EKg),lfi(aLg),lfi(bLg),lfi(cLg),lfi(dLg),lfi(eLg),lfi(fLg),lfi(gLg),lfi(hLg),lfi(iLg),lfi(jLg),lfi(lLg),lfi(mLg),lfi(nLg),lfi(oLg),lfi(pLg),lfi(qLg),lfi(rLg),lfi(sLg),lfi(tLg),lfi(uLg),lfi(xLg),lfi(yLg),lfi(zLg),lfi(ALg),lfi(BLg),lfi(CLg),lfi(DLg),lfi(ELg),lfi(FLg),lfi(aMg),lfi(cMg),lfi(dMg),lfi(eMg),lfi(fMg),lfi(gMg),lfi(hMg),lfi(iMg),lfi(jMg),lfi(kMg),lfi(lMg),lfi(nMg),lfi(oMg),lfi(pMg),lfi(qMg),lfi(rMg),lfi(sMg),lfi(tMg),lfi(uMg),lfi(vMg),lfi(wMg),lfi(yMg),lfi(zMg),lfi(AMg),lfi(BMg),lfi(CMg),lfi(DMg),lfi(EMg),lfi(FMg),lfi(aNg),lfi(bNg),lfi(dNg),lfi(eNg),lfi(fNg),lfi(gNg),lfi(hNg),lfi(iNg),lfi(jNg),lfi(kNg),lfi(lNg),lfi(mNg),lfi(oNg),lfi(pNg),lfi(qNg),lfi(rNg),lfi(sNg),lfi(tNg),lfi(uNg),lfi(vNg),lfi(wNg),lfi(xNg),lfi(zNg),lfi(ANg),lfi(BNg),lfi(CNg),lfi(DNg),lfi(ENg),lfi(FNg),lfi(aOg),lfi(bOg),lfi(cOg),lfi(eOg),lfi(fOg),lfi(gOg),lfi(hOg),lfi(iOg),lfi(jOg),lfi(kOg),lfi(lOg),lfi(mOg),lfi(nOg),lfi(pOg),lfi(qOg),lfi(rOg),lfi(sOg),lfi(tOg),lfi(uOg),lfi(vOg),lfi(wOg),lfi(xOg),lfi(yOg),lfi(AOg),lfi(BOg),lfi(COg),lfi(DOg),lfi(EOg),lfi(FOg),lfi(aPg),lfi(bPg),lfi(cPg),lfi(dPg),lfi(gPg),lfi(hPg),lfi(iPg),lfi(jPg),lfi(kPg),lfi(lPg),lfi(mPg),lfi(nPg),lfi(oPg),lfi(pPg),lfi(rPg),lfi(sPg),lfi(tPg),lfi(uPg),lfi(vPg),lfi(wPg),lfi(xPg),lfi(yPg),lfi(zPg),lfi(APg),lfi(CPg),lfi(DPg),lfi(EPg),lfi(FPg),lfi(aQg),lfi(bQg),lfi(cQg),lfi(dQg),lfi(eQg),lfi(fQg),lfi(hQg),lfi(iQg),lfi(jQg),lfi(kQg),lfi(lQg),lfi(mQg),lfi(nQg),lfi(oQg),lfi(pQg),lfi(qQg),lfi(sQg),lfi(tQg),lfi(uQg),lfi(vQg),lfi(wQg),lfi(xQg),lfi(yQg),lfi(zQg),lfi(AQg),lfi(BQg),lfi(DQg),lfi(EQg),lfi(FQg),lfi(aRg),lfi(bRg),lfi(cRg),lfi(dRg),lfi(eRg),lfi(fRg),lfi(gRg),lfi(iRg),lfi(jRg),lfi(kRg),lfi(lRg),lfi(mRg),lfi(nRg),lfi(oRg),lfi(pRg),lfi(qRg),lfi(rRg),lfi(tRg),lfi(uRg),lfi(vRg),lfi(wRg),lfi(xRg),lfi(yRg),lfi(zRg),lfi(ARg),lfi(BRg),lfi(CRg),lfi(ERg),lfi(FRg),lfi(aSg),lfi(bSg),lfi(cSg),lfi(dSg),lfi(eSg),lfi(fSg),lfi(gSg),lfi(hSg),lfi(jSg),lfi(kSg),lfi(lSg),lfi(mSg),lfi(nSg),lfi(oSg),lfi(pSg),lfi(qSg),lfi(rSg),lfi(sSg),lfi(vSg),lfi(wSg),lfi(xSg),lfi(ySg),lfi(zSg),lfi(ASg),lfi(BSg),lfi(CSg),lfi(DSg),lfi(ESg),lfi(aTg),lfi(bTg),lfi(cTg),lfi(dTg),lfi(eTg),lfi(fTg),lfi(gTg),lfi(hTg),lfi(iTg),lfi(jTg),lfi(lTg),lfi(mTg),lfi(nTg),lfi(oTg),lfi(pTg),lfi(qTg),lfi(rTg),lfi(sTg),lfi(tTg),lfi(uTg),lfi(wTg),lfi(xTg),lfi(yTg),lfi(zTg),lfi(ATg),lfi(BTg),lfi(CTg),lfi(DTg),lfi(ETg),lfi(FTg),lfi(bUg),lfi(cUg),lfi(dUg),lfi(eUg),lfi(fUg),lfi(gUg),lfi(hUg),lfi(iUg),lfi(jUg),lfi(kUg),lfi(mUg),lfi(nUg),lfi(oUg),lfi(pUg),lfi(qUg),lfi(rUg),lfi(sUg),lfi(tUg),lfi(uUg),lfi(vUg),lfi(xUg),lfi(yUg),lfi(zUg),lfi(AUg),lfi(BUg),lfi(CUg),lfi(DUg),lfi(EUg),lfi(FUg),lfi(aVg),lfi(cVg),lfi(dVg),lfi(eVg),lfi(fVg),lfi(gVg),lfi(hVg),lfi(iVg),lfi(jVg),lfi(kVg),lfi(lVg),lfi(nVg),lfi(oVg),lfi(pVg),lfi(qVg),lfi(rVg),lfi(sVg),lfi(tVg),lfi(uVg),lfi(vVg),lfi(wVg),lfi(yVg),lfi(zVg),lfi(AVg),lfi(BVg),lfi(CVg),lfi(DVg),lfi(EVg),lfi(FVg),lfi(aWg),lfi(bWg),lfi(eWg),lfi(fWg),lfi(gWg),lfi(hWg),lfi(iWg),lfi(jWg),lfi(kWg),lfi(lWg),lfi(mWg),lfi(nWg),lfi(pWg),lfi(qWg),lfi(rWg),lfi(sWg),lfi(tWg),lfi(uWg),lfi(vWg),lfi(wWg),lfi(xWg),lfi(yWg),lfi(AWg),lfi(BWg),lfi(CWg),lfi(DWg),lfi(EWg),lfi(FWg),lfi(aXg),lfi(bXg),lfi(cXg),lfi(dXg),lfi(fXg),lfi(gXg),lfi(hXg),lfi(iXg),lfi(jXg),lfi(kXg),lfi(lXg),lfi(mXg),lfi(nXg),lfi(oXg),lfi(qXg),lfi(rXg),lfi(sXg),lfi(tXg),lfi(uXg),lfi(vXg),lfi(wXg),lfi(xXg),lfi(yXg),lfi(zXg),lfi(BXg),lfi(CXg),lfi(DXg),lfi(EXg),lfi(FXg),lfi(aYg),lfi(bYg),lfi(cYg),lfi(dYg),lfi(eYg),lfi(gYg),lfi(hYg),lfi(iYg),lfi(jYg),lfi(kYg),lfi(lYg),lfi(mYg),lfi(nYg),lfi(oYg),lfi(pYg),lfi(rYg),lfi(sYg),lfi(tYg),lfi(uYg),lfi(vYg),lfi(wYg),lfi(xYg),lfi(yYg),lfi(zYg),lfi(AYg),lfi(CYg),lfi(DYg),lfi(EYg),lfi(FYg),lfi(aZg),lfi(bZg),lfi(cZg),lfi(dZg),lfi(eZg),lfi(fZg),lfi(hZg),lfi(iZg),lfi(jZg),lfi(kZg),lfi(lZg),lfi(mZg),lfi(nZg),lfi(oZg),lfi(pZg),lfi(qZg),lfi(uZg),lfi(vZg),lfi(wZg),lfi(xZg),lfi(yZg),lfi(zZg),lfi(AZg),lfi(BZg),lfi(CZg),lfi(DZg),lfi(FZg),lfi(a0g),lfi(b0g),lfi(c0g),lfi(d0g),lfi(e0g),lfi(f0g),lfi(g0g),lfi(h0g),lfi(i0g),lfi(k0g),lfi(l0g),lfi(m0g),lfi(n0g),lfi(o0g),lfi(p0g),lfi(q0g),lfi(r0g),lfi(s0g),lfi(t0g),lfi(v0g),lfi(w0g),lfi(x0g),lfi(y0g),lfi(z0g),lfi(A0g),lfi(B0g),lfi(C0g),lfi(D0g),lfi(E0g),lfi(a1g),lfi(b1g),lfi(c1g),lfi(d1g),lfi(e1g),lfi(f1g),lfi(g1g),lfi(h1g),lfi(i1g),lfi(j1g),lfi(l1g),lfi(m1g),lfi(n1g),lfi(o1g),lfi(p1g),lfi(q1g),lfi(r1g),lfi(s1g),lfi(t1g),lfi(u1g),lfi(w1g),lfi(x1g),lfi(y1g),lfi(z1g),lfi(A1g),lfi(B1g),lfi(C1g),lfi(D1g),lfi(E1g),lfi(F1g),lfi(b2g),lfi(c2g),lfi(d2g),lfi(e2g),lfi(f2g),lfi(g2g),lfi(h2g),lfi(i2g),lfi(j2g),lfi(k2g),lfi(m2g),lfi(n2g),lfi(o2g),lfi(p2g),lfi(q2g),lfi(r2g),lfi(s2g),lfi(t2g),lfi(u2g),lfi(v2g),lfi(x2g),lfi(y2g),lfi(z2g),lfi(A2g),lfi(B2g),lfi(C2g),lfi(D2g),lfi(E2g),lfi(F2g),lfi(a3g),lfi(d3g),lfi(e3g),lfi(f3g),lfi(g3g),lfi(h3g),lfi(i3g),lfi(j3g),lfi(k3g),lfi(l3g),lfi(m3g),lfi(o3g),lfi(p3g),lfi(q3g),lfi(r3g),lfi(s3g),lfi(t3g),lfi(u3g),lfi(v3g),lfi(w3g),lfi(x3g),lfi(z3g),lfi(A3g),lfi(B3g),lfi(C3g),lfi(D3g),lfi(E3g),lfi(F3g),lfi(a4g),lfi(b4g),lfi(c4g),lfi(e4g),lfi(f4g),lfi(g4g),lfi(h4g),lfi(i4g),lfi(c7h),lfi(j4g),lfi(k4g),lfi(l4g),lfi(m4g),lfi(n4g),lfi(p4g),lfi(q4g),lfi(r4g),lfi(s4g),lfi(t4g),lfi(u4g),lfi(v4g),lfi(w4g),lfi(x4g),lfi(y4g),lfi(A4g),lfi(B4g),lfi(C4g),lfi(D4g),lfi(E4g),lfi(F4g),lfi(a5g),lfi(b5g),lfi(c5g),lfi(d5g),lfi(f5g),lfi(g5g),lfi(h5g),lfi(i5g),lfi(j5g),lfi(k5g),lfi(l5g),lfi(m5g),lfi(n5g),lfi(o5g),lfi(q5g),lfi(r5g),lfi(s5g),lfi(t5g),lfi(u5g),lfi(v5g),lfi(w5g),lfi(x5g),lfi(y5g),lfi(z5g),lfi(B5g),lfi(C5g),lfi(D5g),lfi(E5g),lfi(F5g),lfi(a6g),lfi(b6g),lfi(c6g),lfi(d6g),lfi(e6g),lfi(g6g),lfi(h6g),lfi(i6g),lfi(j6g),lfi(k6g),lfi(l6g),lfi(m6g),lfi(n6g),lfi(o6g),lfi(p6g),lfi(s6g),lfi(t6g),lfi(u6g),lfi(v6g),lfi(w6g),lfi(x6g),lfi(y6g),lfi(z6g),lfi(A6g),lfi(B6g),lfi(D6g),lfi(E6g),lfi(F6g),lfi(a7g),lfi(b7g),lfi(c7g),lfi(d7g),lfi(e7g),lfi(f7g),lfi(g7g),lfi(i7g),lfi(j7g),lfi(k7g),lfi(l7g),lfi(m7g),lfi(n7g),lfi(o7g),lfi(p7g),lfi(q7g),lfi(r7g),lfi(t7g),lfi(u7g),lfi(v7g),lfi(w7g),lfi(x7g),lfi(y7g),lfi(z7g),lfi(A7g),lfi(B7g),lfi(C7g),lfi(E7g),lfi(F7g),lfi(a8g),lfi(b8g),lfi(c8g),lfi(d8g),lfi(e8g),lfi(f8g),lfi(g8g),lfi(h8g),lfi(j8g),lfi(k8g),lfi(l8g),lfi(m8g),lfi(n8g),lfi(o8g),lfi(p8g),lfi(q8g),lfi(r8g),lfi(s8g),lfi(u8g),lfi(v8g),lfi(w8g),lfi(x8g),lfi(y8g),lfi(z8g),lfi(A8g),lfi(B8g),lfi(C8g),lfi(D8g),lfi(F8g),lfi(a9g),lfi(b9g),lfi(c9g),lfi(d9g),lfi(e9g),lfi(f9g),lfi(g9g),lfi(h9g),lfi(i9g),lfi(k9g),lfi(l9g),lfi(m9g),lfi(n9g),lfi(o9g),lfi(p9g),lfi(q9g),lfi(r9g),lfi(s9g),lfi(t9g),lfi(v9g),lfi(w9g),lfi(x9g),lfi(y9g),lfi(z9g),lfi(A9g),lfi(B9g),lfi(C9g),lfi(D9g),lfi(E9g),lfi(b$g),lfi(c$g),lfi(d$g),lfi(e$g),lfi(f$g),lfi(g$g),lfi(h$g),lfi(i$g),lfi(j$g),lfi(k$g),lfi(m$g),lfi(n$g),lfi(o$g),lfi(p$g),lfi(q$g),lfi(r$g),lfi(s$g),lfi(j2h),lfi(t$g),lfi(u$g),lfi(v$g),lfi(x$g),lfi(y$g),lfi(z$g),lfi(A$g),lfi(B$g),lfi(C$g),lfi(D$g),lfi(E$g),lfi(F$g),lfi(a_g),lfi(c_g),lfi(d_g),lfi(e_g),lfi(f_g),lfi(g_g),lfi(h_g),lfi(i_g),lfi(j_g),lfi(k_g),lfi(l_g),lfi(n_g),lfi(o_g),lfi(p_g),lfi(q_g),lfi(r_g),lfi(s_g),lfi(t_g),lfi(u_g),lfi(v_g),lfi(w_g),lfi(y_g),lfi(z_g),lfi(A_g),lfi(B_g),lfi(C_g),lfi(D_g),lfi(E_g),lfi(F_g),lfi(aah),lfi(bah),lfi(dah),lfi(eah),lfi(fah),lfi(gah),lfi(hah),lfi(iah),lfi(jah),lfi(kah),lfi(lah),lfi(mah),lfi(oah),lfi(pah),lfi(qah),lfi(rah),lfi(sah),lfi(tah),lfi(uah),lfi(vah),lfi(wah),lfi(xah),lfi(zah),lfi(Aah),lfi(Bah),lfi(Cah),lfi(Dah),lfi(Eah),lfi(Fah),lfi(abh),lfi(bbh),lfi(cbh),lfi(ebh),lfi(fbh),lfi(gbh),lfi(hbh),lfi(ibh),lfi(jbh),lfi(kbh),lfi(lbh),lfi(mbh),lfi(nbh),lfi(qbh),lfi(rbh),lfi(sbh),lfi(tbh),lfi(ubh),lfi(vbh),lfi(wbh),lfi(xbh),lfi(ybh),lfi(zbh),lfi(Bbh),lfi(Cbh),lfi(Dbh),lfi(Ebh),lfi(Fbh),lfi(ach),lfi(bch),lfi(cch),lfi(dch),lfi(ech),lfi(gch),lfi(hch),lfi(ich),lfi(jch),lfi(kch),lfi(lch),lfi(mch),lfi(nch),lfi(och),lfi(pch),lfi(rch),lfi(sch),lfi(tch),lfi(uch),lfi(vch),lfi(wch),lfi(xch),lfi(ych),lfi(zch),lfi(Ach),lfi(Cch),lfi(Dch),lfi(Ech),lfi(Fch),lfi(adh),lfi(bdh),lfi(cdh),lfi(ddh),lfi(edh),lfi(fdh),lfi(hdh),lfi(idh),lfi(jdh),lfi(kdh),lfi(ldh),lfi(mdh),lfi(ndh),lfi(odh),lfi(pdh),lfi(qdh),lfi(sdh),lfi(tdh),lfi(udh),lfi(vdh),lfi(wdh),lfi(xdh),lfi(ydh),lfi(zdh),lfi(Adh),lfi(Bdh),lfi(Ddh),lfi(Edh),lfi(Fdh),lfi(aeh),lfi(beh),lfi(ceh),lfi(deh),lfi(eeh),lfi(feh),lfi(geh),lfi(ieh),lfi(jeh),lfi(keh),lfi(leh),lfi(meh),lfi(neh),lfi(oeh),lfi(peh),lfi(qeh),lfi(reh),lfi(teh),lfi(ueh),lfi(veh),lfi(weh),lfi(xeh),lfi(yeh),lfi(zeh),lfi(Aeh),lfi(Beh),lfi(Ceh),lfi(Feh),lfi(afh),lfi(bfh),lfi(cfh),lfi(dfh),lfi(efh),lfi(ffh),lfi(gfh),lfi(hfh),lfi(ifh),lfi(kfh),lfi(lfh),lfi(mfh),lfi(nfh),lfi(ofh),lfi(pfh),lfi(qfh),lfi(rfh),lfi(sfh),lfi(tfh),lfi(vfh),lfi(wfh),lfi(xfh),lfi(yfh),lfi(zfh),lfi(Afh),lfi(Bfh),lfi(Cfh),lfi(Dfh),lfi(Efh),lfi(agh),lfi(bgh),lfi(cgh),lfi(dgh),lfi(egh),lfi(fgh),lfi(ggh),lfi(hgh),lfi(igh),lfi(jgh),lfi(lgh),lfi(mgh),lfi(ngh),lfi(ogh),lfi(pgh),lfi(qgh),lfi(rgh),lfi(sgh),lfi(tgh),lfi(ugh),lfi(wgh),lfi(xgh),lfi(ygh),lfi(zgh),lfi(Agh),lfi(Bgh),lfi(Cgh),lfi(Dgh),lfi(Egh),lfi(Fgh),lfi(bhh),lfi(chh),lfi(dhh),lfi(ehh),lfi(fhh),lfi(ghh),lfi(hhh),lfi(o2h),lfi(ihh),lfi(jhh),lfi(khh),lfi(mhh),lfi(nhh),lfi(ohh),lfi(phh),lfi(qhh),lfi(rhh),lfi(shh),lfi(thh),lfi(uhh),lfi(vhh),lfi(xhh),lfi(yhh),lfi(zhh),lfi(Ahh),lfi(Bhh),lfi(Chh),lfi(Dhh),lfi(Ehh),lfi(Fhh),lfi(aih),lfi(cih),lfi(dih),lfi(eih),lfi(fih),lfi(gih),lfi(hih),lfi(iih),lfi(jih),lfi(kih),lfi(lih),lfi(oih),lfi(pih),lfi(qih),lfi(rih),lfi(sih),lfi(tih),lfi(uih),lfi(vih),lfi(wih),lfi(xih),lfi(zih),lfi(Aih),lfi(Bih),lfi(Cih),lfi(Dih),lfi(Eih),lfi(Fih),lfi(ajh),lfi(bjh),lfi(cjh),lfi(ejh),lfi(fjh),lfi(gjh),lfi(hjh),lfi(ijh),lfi(jjh),lfi(kjh),lfi(ljh),lfi(mjh),lfi(njh),lfi(pjh),lfi(qjh),lfi(rjh),lfi(sjh),lfi(tjh),lfi(ujh),lfi(vjh),lfi(wjh),lfi(xjh),lfi(yjh),lfi(Ajh),lfi(Bjh),lfi(Cjh),lfi(Djh),lfi(Ejh),lfi(Fjh),lfi(akh),lfi(bkh),lfi(ckh),lfi(dkh),lfi(fkh),lfi(gkh),lfi(hkh),lfi(ikh),lfi(jkh),lfi(kkh),lfi(lkh),lfi(mkh),lfi(nkh),lfi(okh),lfi(qkh),lfi(rkh),lfi(skh),lfi(tkh),lfi(ukh),lfi(vkh),lfi(wkh),lfi(xkh),lfi(ykh),lfi(zkh),lfi(Bkh),lfi(Ckh),lfi(Dkh),lfi(Ekh),lfi(Fkh),lfi(alh),lfi(blh),lfi(clh),lfi(dlh),lfi(elh),lfi(v3h),lfi(glh),lfi(hlh),lfi(ilh),lfi(jlh),lfi(klh),lfi(llh),lfi(mlh),lfi(nlh),lfi(olh),lfi(plh),lfi(rlh),lfi(slh),lfi(tlh),lfi(ulh),lfi(vlh),lfi(wlh),lfi(xlh),lfi(ylh),lfi(zlh),lfi(Alh),lfi(Dlh),lfi(Elh),lfi(Flh),lfi(amh),lfi(bmh),lfi(cmh),lfi(dmh),lfi(emh),lfi(fmh),lfi(gmh),lfi(imh),lfi(jmh),lfi(kmh),lfi(lmh),lfi(mmh),lfi(nmh),lfi(omh),lfi(pmh),lfi(qmh),lfi(rmh),lfi(tmh),lfi(umh),lfi(vmh),lfi(wmh),lfi(xmh),lfi(ymh),lfi(zmh),lfi(Amh),lfi(Bmh),lfi(Cmh),lfi(Emh),lfi(Fmh),lfi(anh),lfi(bnh),lfi(cnh),lfi(dnh),lfi(enh),lfi(fnh),lfi(gnh),lfi(hnh),lfi(jnh),lfi(knh),lfi(lnh),lfi(mnh),lfi(nnh),lfi(onh),lfi(pnh),lfi(qnh),lfi(rnh),lfi(snh),lfi(unh),lfi(vnh),lfi(wnh),lfi(xnh),lfi(ynh),lfi(znh),lfi(Anh),lfi(Bnh),lfi(Cnh),lfi(Dnh),lfi(Fnh),lfi(aoh),lfi(boh),lfi(coh),lfi(doh),lfi(eoh),lfi(foh),lfi(goh),lfi(hoh),lfi(ioh),lfi(koh),lfi(loh),lfi(moh),lfi(noh),lfi(ooh),lfi(poh),lfi(qoh),lfi(roh),lfi(soh),lfi(toh),lfi(voh),lfi(woh),lfi(xoh),lfi(yoh),lfi(zoh),lfi(Aoh),lfi(Boh),lfi(Coh),lfi(Doh),lfi(Eoh),lfi(aph),lfi(bph),lfi(cph),lfi(dph),lfi(eph),lfi(fph),lfi(gph),lfi(hph),lfi(iph),lfi(jph),lfi(mph),lfi(nph),lfi(oph),lfi(pph),lfi(qph),lfi(rph),lfi(sph),lfi(tph),lfi(uph),lfi(vph),lfi(xph),lfi(yph),lfi(zph),lfi(Aph),lfi(Bph),lfi(Cph),lfi(Dph),lfi(Eph),lfi(Fph),lfi(aqh),lfi(cqh),lfi(dqh),lfi(eqh),lfi(fqh),lfi(gqh),lfi(hqh),lfi(iqh),lfi(jqh),lfi(kqh),lfi(lqh),lfi(nqh),lfi(oqh),lfi(pqh),lfi(qqh),lfi(rqh),lfi(sqh),lfi(tqh),lfi(uqh),lfi(vqh),lfi(wqh),lfi(yqh),lfi(zqh),lfi(Aqh),lfi(Bqh),lfi(Cqh),lfi(Dqh),lfi(Eqh),lfi(Fqh),lfi(arh),lfi(brh),lfi(drh),lfi(erh),lfi(frh),lfi(grh),lfi(hrh),lfi(irh),lfi(jrh),lfi(krh),lfi(lrh),lfi(mrh),lfi(orh),lfi(prh),lfi(qrh),lfi(rrh),lfi(srh),lfi(trh),lfi(urh),lfi(vrh),lfi(wrh),lfi(xrh),lfi(zrh),lfi(Arh),lfi(Brh),lfi(Crh),lfi(Drh),lfi(Erh),lfi(Frh),lfi(ash),lfi(bsh),lfi(csh),lfi(esh),lfi(fsh),lfi(gsh),lfi(hsh),lfi(ish),lfi(jsh),lfi(ksh),lfi(lsh),lfi(msh),lfi(nsh),lfi(psh),lfi(qsh),lfi(rsh),lfi(ssh),lfi(tsh),lfi(ush),lfi(vsh),lfi(wsh),lfi(xsh),lfi(ysh),lfi(Bsh),lfi(Csh),lfi(Dsh),lfi(Esh),lfi(Fsh),lfi(ath),lfi(bth),lfi(cth),lfi(dth),lfi(eth),lfi(gth),lfi(hth),lfi(ith),lfi(jth),lfi(kth),lfi(lth),lfi(mth),lfi(nth),lfi(oth),lfi(pth),lfi(rth),lfi(sth),lfi(tth),lfi(uth),lfi(vth),lfi(wth),lfi(xth),lfi(yth),lfi(zth),lfi(Ath),lfi(Cth),lfi(Dth),lfi(Eth),lfi(Fth),lfi(auh),lfi(buh),lfi(cuh),lfi(duh),lfi(euh),lfi(fuh),lfi(huh),lfi(iuh),lfi(juh),lfi(kuh),lfi(luh),lfi(muh),lfi(nuh),lfi(ouh),lfi(puh),lfi(quh),lfi(suh),lfi(tuh),lfi(uuh),lfi(vuh),lfi(wuh),lfi(xuh),lfi(yuh),lfi(zuh),lfi(Auh),lfi(Buh),lfi(Duh),lfi(Euh),lfi(Fuh),lfi(avh),lfi(bvh),lfi(cvh),lfi(dvh),lfi(evh),lfi(fvh),lfi(gvh),lfi(ivh),lfi(jvh),lfi(kvh),lfi(lvh),lfi(mvh),lfi(nvh),lfi(ovh),lfi(pvh),lfi(qvh),lfi(rvh),lfi(tvh),lfi(uvh),lfi(vvh),lfi(wvh),lfi(xvh),lfi(yvh),lfi(zvh),lfi(Avh),lfi(Bvh),lfi(Cvh),lfi(Evh),lfi(Fvh),lfi(awh),lfi(bwh),lfi(cwh),lfi(dwh),lfi(ewh),lfi(fwh),lfi(gwh),lfi(hwh),lfi(lwh),lfi(mwh),lfi(nwh),lfi(owh),lfi(pwh),lfi(qwh),lfi(rwh),lfi(swh),lfi(twh),lfi(uwh),lfi(wwh),lfi(xwh),lfi(ywh),lfi(zwh),lfi(Awh),lfi(Bwh),lfi(Cwh),lfi(Dwh),lfi(Ewh),lfi(Fwh),lfi(bxh),lfi(cxh),lfi(dxh),lfi(exh),lfi(fxh),lfi(gxh),lfi(hxh),lfi(ixh),lfi(jxh),lfi(kxh),lfi(mxh),lfi(nxh),lfi(oxh),lfi(pxh),lfi(qxh),lfi(rxh),lfi(sxh),lfi(txh),lfi(uxh),lfi(vxh),lfi(xxh),lfi(yxh),lfi(zxh),lfi(Axh),lfi(Bxh),lfi(Cxh),lfi(Dxh),lfi(Exh),lfi(Fxh),lfi(ayh),lfi(cyh),lfi(dyh),lfi(eyh),lfi(fyh),lfi(gyh),lfi(hyh),lfi(iyh),lfi(jyh),lfi(kyh),lfi(lyh),lfi(nyh),lfi(oyh),lfi(pyh),lfi(qyh),lfi(ryh),lfi(syh),lfi(tyh),lfi(uyh),lfi(vyh),lfi(wyh),lfi(yyh),lfi(zyh),lfi(Ayh),lfi(Byh),lfi(Cyh),lfi(Dyh),lfi(Eyh),lfi(Fyh),lfi(azh),lfi(bzh),lfi(dzh),lfi(ezh),lfi(fzh),lfi(gzh),lfi(hzh),lfi(izh),lfi(jzh),lfi(kzh),lfi(lzh),lfi(mzh),lfi(ozh),lfi(pzh),lfi(qzh),lfi(rzh),lfi(szh),lfi(tzh),lfi(uzh),lfi(vzh),lfi(wzh),lfi(xzh),lfi(Azh),lfi(Bzh),lfi(Czh),lfi(Dzh),lfi(Ezh),lfi(Fzh),lfi(aAh),lfi(bAh),lfi(cAh),lfi(dAh),lfi(fAh),lfi(gAh),lfi(hAh),lfi(iAh),lfi(jAh),lfi(kAh),lfi(lAh),lfi(mAh),lfi(nAh),lfi(oAh),lfi(qAh),lfi(rAh),lfi(sAh),lfi(tAh),lfi(uAh),lfi(vAh),lfi(wAh),lfi(xAh),lfi(yAh),lfi(zAh),lfi(BAh),lfi(CAh),lfi(DAh),lfi(EAh),lfi(FAh),lfi(aBh),lfi(bBh),lfi(cBh),lfi(dBh),lfi(eBh),lfi(gBh),lfi(hBh),lfi(iBh),lfi(jBh),lfi(kBh),lfi(lBh),lfi(mBh),lfi(nBh),lfi(oBh),lfi(pBh),lfi(rBh),lfi(sBh),lfi(tBh),lfi(uBh),lfi(vBh),lfi(wBh),lfi(xBh),lfi(yBh),lfi(zBh),lfi(ABh),lfi(CBh),lfi(DBh),lfi(EBh),lfi(r6h),lfi(FBh),lfi(aCh),lfi(bCh),lfi(cCh),lfi(dCh),lfi(eCh),lfi(fCh),lfi(hCh),lfi(iCh),lfi(jCh),lfi(kCh),lfi(lCh),lfi(mCh),lfi(nCh),lfi(oCh),lfi(pCh),lfi(qCh),lfi(sCh),lfi(tCh),lfi(uCh),lfi(vCh),lfi(wCh),lfi(xCh),lfi(yCh),lfi(zCh),lfi(ACh),lfi(BCh),lfi(DCh),lfi(ECh),lfi(FCh),lfi(aDh),lfi(bDh),lfi(cDh),lfi(dDh),lfi(eDh),lfi(fDh),lfi(gDh),lfi(jDh),lfi(kDh),lfi(lDh),lfi(mDh),lfi(nDh),lfi(oDh),lfi(pDh),lfi(qDh),lfi(rDh),lfi(sDh),lfi(uDh),lfi(vDh),lfi(wDh),lfi(xDh),lfi(yDh),lfi(zDh),lfi(ADh),lfi(BDh),lfi(CDh),lfi(DDh),lfi(FDh),lfi(aEh),lfi(bEh),lfi(cEh),lfi(dEh),lfi(eEh),lfi(fEh),lfi(gEh),lfi(hEh),lfi(iEh),lfi(kEh),lfi(lEh),lfi(mEh),lfi(nEh),lfi(oEh),lfi(pEh),lfi(qEh),lfi(rEh),lfi(sEh),lfi(tEh),lfi(vEh),lfi(wEh),lfi(xEh),lfi(yEh),lfi(zEh),lfi(AEh),lfi(BEh),lfi(CEh),lfi(DEh),lfi(EEh),lfi(aFh),lfi(bFh),lfi(cFh),lfi(dFh),lfi(eFh),lfi(fFh),lfi(gFh),lfi(hFh),lfi(iFh),lfi(jFh),lfi(lFh),lfi(mFh),lfi(nFh),lfi(oFh),lfi(pFh),lfi(qFh),lfi(rFh),lfi(sFh),lfi(tFh),lfi(uFh),lfi(wFh),lfi(xFh),lfi(yFh),lfi(zFh),lfi(AFh),lfi(BFh),lfi(CFh),lfi(DFh),lfi(EFh),lfi(FFh),lfi(bGh),lfi(cGh),lfi(dGh),lfi(eGh),lfi(fGh),lfi(gGh),lfi(hGh),lfi(iGh),lfi(jGh),lfi(kGh),lfi(mGh),lfi(nGh),lfi(oGh),lfi(pGh),lfi(qGh),lfi(rGh),lfi(sGh),lfi(tGh),lfi(uGh),lfi(vGh),lfi(yGh),lfi(zGh),lfi(AGh),lfi(BGh),lfi(CGh),lfi(DGh),lfi(EGh),lfi(FGh),lfi(aHh),lfi(bHh),lfi(dHh),lfi(eHh),lfi(fHh),lfi(gHh),lfi(hHh),lfi(iHh),lfi(jHh),lfi(kHh),lfi(lHh),lfi(mHh),lfi(oHh),lfi(pHh),lfi(qHh),lfi(rHh),lfi(sHh),lfi(tHh),lfi(uHh),lfi(vHh),lfi(wHh),lfi(xHh),lfi(zHh),lfi(AHh),lfi(BHh),lfi(CHh),lfi(DHh),lfi(EHh),lfi(FHh),lfi(aIh),lfi(bIh),lfi(cIh),lfi(eIh),lfi(fIh),lfi(gIh),lfi(hIh)]);tVi=f9h(cai,52,12,[f9h(A_h,42,-1,[198]),f9h(A_h,42,-1,[198]),f9h(A_h,42,-1,[38]),f9h(A_h,42,-1,[38]),f9h(A_h,42,-1,[193]),f9h(A_h,42,-1,[193]),f9h(A_h,42,-1,[258]),f9h(A_h,42,-1,[194]),f9h(A_h,42,-1,[194]),f9h(A_h,42,-1,[1040]),f9h(A_h,42,-1,[55349,56580]),f9h(A_h,42,-1,[192]),f9h(A_h,42,-1,[192]),f9h(A_h,42,-1,[913]),f9h(A_h,42,-1,[256]),f9h(A_h,42,-1,[10835]),f9h(A_h,42,-1,[260]),f9h(A_h,42,-1,[55349,56632]),f9h(A_h,42,-1,[8289]),f9h(A_h,42,-1,[197]),f9h(A_h,42,-1,[197]),f9h(A_h,42,-1,[55349,56476]),f9h(A_h,42,-1,[8788]),f9h(A_h,42,-1,[195]),f9h(A_h,42,-1,[195]),f9h(A_h,42,-1,[196]),f9h(A_h,42,-1,[196]),f9h(A_h,42,-1,[8726]),f9h(A_h,42,-1,[10983]),f9h(A_h,42,-1,[8966]),f9h(A_h,42,-1,[1041]),f9h(A_h,42,-1,[8757]),f9h(A_h,42,-1,[8492]),f9h(A_h,42,-1,[914]),f9h(A_h,42,-1,[55349,56581]),f9h(A_h,42,-1,[55349,56633]),f9h(A_h,42,-1,[728]),f9h(A_h,42,-1,[8492]),f9h(A_h,42,-1,[8782]),f9h(A_h,42,-1,[1063]),f9h(A_h,42,-1,[169]),f9h(A_h,42,-1,[169]),f9h(A_h,42,-1,[262]),f9h(A_h,42,-1,[8914]),f9h(A_h,42,-1,[8517]),f9h(A_h,42,-1,[8493]),f9h(A_h,42,-1,[268]),f9h(A_h,42,-1,[199]),f9h(A_h,42,-1,[199]),f9h(A_h,42,-1,[264]),f9h(A_h,42,-1,[8752]),f9h(A_h,42,-1,[266]),f9h(A_h,42,-1,[184]),f9h(A_h,42,-1,[183]),f9h(A_h,42,-1,[8493]),f9h(A_h,42,-1,[935]),f9h(A_h,42,-1,[8857]),f9h(A_h,42,-1,[8854]),f9h(A_h,42,-1,[8853]),f9h(A_h,42,-1,[8855]),f9h(A_h,42,-1,[8754]),f9h(A_h,42,-1,[8221]),f9h(A_h,42,-1,[8217]),f9h(A_h,42,-1,[8759]),f9h(A_h,42,-1,[10868]),f9h(A_h,42,-1,[8801]),f9h(A_h,42,-1,[8751]),f9h(A_h,42,-1,[8750]),f9h(A_h,42,-1,[8450]),f9h(A_h,42,-1,[8720]),f9h(A_h,42,-1,[8755]),f9h(A_h,42,-1,[10799]),f9h(A_h,42,-1,[55349,56478]),f9h(A_h,42,-1,[8915]),f9h(A_h,42,-1,[8781]),f9h(A_h,42,-1,[8517]),f9h(A_h,42,-1,[10513]),f9h(A_h,42,-1,[1026]),f9h(A_h,42,-1,[1029]),f9h(A_h,42,-1,[1039]),f9h(A_h,42,-1,[8225]),f9h(A_h,42,-1,[8609]),f9h(A_h,42,-1,[10980]),f9h(A_h,42,-1,[270]),f9h(A_h,42,-1,[1044]),f9h(A_h,42,-1,[8711]),f9h(A_h,42,-1,[916]),f9h(A_h,42,-1,[55349,56583]),f9h(A_h,42,-1,[180]),f9h(A_h,42,-1,[729]),f9h(A_h,42,-1,[733]),f9h(A_h,42,-1,[96]),f9h(A_h,42,-1,[732]),f9h(A_h,42,-1,[8900]),f9h(A_h,42,-1,[8518]),f9h(A_h,42,-1,[55349,56635]),f9h(A_h,42,-1,[168]),f9h(A_h,42,-1,[8412]),f9h(A_h,42,-1,[8784]),f9h(A_h,42,-1,[8751]),f9h(A_h,42,-1,[168]),f9h(A_h,42,-1,[8659]),f9h(A_h,42,-1,[8656]),f9h(A_h,42,-1,[8660]),f9h(A_h,42,-1,[10980]),f9h(A_h,42,-1,[10232]),f9h(A_h,42,-1,[10234]),f9h(A_h,42,-1,[10233]),f9h(A_h,42,-1,[8658]),f9h(A_h,42,-1,[8872]),f9h(A_h,42,-1,[8657]),f9h(A_h,42,-1,[8661]),f9h(A_h,42,-1,[8741]),f9h(A_h,42,-1,[8595]),f9h(A_h,42,-1,[10515]),f9h(A_h,42,-1,[8693]),f9h(A_h,42,-1,[785]),f9h(A_h,42,-1,[10576]),f9h(A_h,42,-1,[10590]),f9h(A_h,42,-1,[8637]),f9h(A_h,42,-1,[10582]),f9h(A_h,42,-1,[10591]),f9h(A_h,42,-1,[8641]),f9h(A_h,42,-1,[10583]),f9h(A_h,42,-1,[8868]),f9h(A_h,42,-1,[8615]),f9h(A_h,42,-1,[8659]),f9h(A_h,42,-1,[55349,56479]),f9h(A_h,42,-1,[272]),f9h(A_h,42,-1,[330]),f9h(A_h,42,-1,[208]),f9h(A_h,42,-1,[208]),f9h(A_h,42,-1,[201]),f9h(A_h,42,-1,[201]),f9h(A_h,42,-1,[282]),f9h(A_h,42,-1,[202]),f9h(A_h,42,-1,[202]),f9h(A_h,42,-1,[1069]),f9h(A_h,42,-1,[278]),f9h(A_h,42,-1,[55349,56584]),f9h(A_h,42,-1,[200]),f9h(A_h,42,-1,[200]),f9h(A_h,42,-1,[8712]),f9h(A_h,42,-1,[274]),f9h(A_h,42,-1,[9723]),f9h(A_h,42,-1,[9643]),f9h(A_h,42,-1,[280]),f9h(A_h,42,-1,[55349,56636]),f9h(A_h,42,-1,[917]),f9h(A_h,42,-1,[10869]),f9h(A_h,42,-1,[8770]),f9h(A_h,42,-1,[8652]),f9h(A_h,42,-1,[8496]),f9h(A_h,42,-1,[10867]),f9h(A_h,42,-1,[919]),f9h(A_h,42,-1,[203]),f9h(A_h,42,-1,[203]),f9h(A_h,42,-1,[8707]),f9h(A_h,42,-1,[8519]),f9h(A_h,42,-1,[1060]),f9h(A_h,42,-1,[55349,56585]),f9h(A_h,42,-1,[9724]),f9h(A_h,42,-1,[9642]),f9h(A_h,42,-1,[55349,56637]),f9h(A_h,42,-1,[8704]),f9h(A_h,42,-1,[8497]),f9h(A_h,42,-1,[8497]),f9h(A_h,42,-1,[1027]),f9h(A_h,42,-1,[62]),f9h(A_h,42,-1,[62]),f9h(A_h,42,-1,[915]),f9h(A_h,42,-1,[988]),f9h(A_h,42,-1,[286]),f9h(A_h,42,-1,[290]),f9h(A_h,42,-1,[284]),f9h(A_h,42,-1,[1043]),f9h(A_h,42,-1,[288]),f9h(A_h,42,-1,[55349,56586]),f9h(A_h,42,-1,[8921]),f9h(A_h,42,-1,[55349,56638]),f9h(A_h,42,-1,[8805]),f9h(A_h,42,-1,[8923]),f9h(A_h,42,-1,[8807]),f9h(A_h,42,-1,[10914]),f9h(A_h,42,-1,[8823]),f9h(A_h,42,-1,[10878]),f9h(A_h,42,-1,[8819]),f9h(A_h,42,-1,[55349,56482]),f9h(A_h,42,-1,[8811]),f9h(A_h,42,-1,[1066]),f9h(A_h,42,-1,[711]),f9h(A_h,42,-1,[94]),f9h(A_h,42,-1,[292]),f9h(A_h,42,-1,[8460]),f9h(A_h,42,-1,[8459]),f9h(A_h,42,-1,[8461]),f9h(A_h,42,-1,[9472]),f9h(A_h,42,-1,[8459]),f9h(A_h,42,-1,[294]),f9h(A_h,42,-1,[8782]),f9h(A_h,42,-1,[8783]),f9h(A_h,42,-1,[1045]),f9h(A_h,42,-1,[306]),f9h(A_h,42,-1,[1025]),f9h(A_h,42,-1,[205]),f9h(A_h,42,-1,[205]),f9h(A_h,42,-1,[206]),f9h(A_h,42,-1,[206]),f9h(A_h,42,-1,[1048]),f9h(A_h,42,-1,[304]),f9h(A_h,42,-1,[8465]),f9h(A_h,42,-1,[204]),f9h(A_h,42,-1,[204]),f9h(A_h,42,-1,[8465]),f9h(A_h,42,-1,[298]),f9h(A_h,42,-1,[8520]),f9h(A_h,42,-1,[8658]),f9h(A_h,42,-1,[8748]),f9h(A_h,42,-1,[8747]),f9h(A_h,42,-1,[8898]),f9h(A_h,42,-1,[8291]),f9h(A_h,42,-1,[8290]),f9h(A_h,42,-1,[302]),f9h(A_h,42,-1,[55349,56640]),f9h(A_h,42,-1,[921]),f9h(A_h,42,-1,[8464]),f9h(A_h,42,-1,[296]),f9h(A_h,42,-1,[1030]),f9h(A_h,42,-1,[207]),f9h(A_h,42,-1,[207]),f9h(A_h,42,-1,[308]),f9h(A_h,42,-1,[1049]),f9h(A_h,42,-1,[55349,56589]),f9h(A_h,42,-1,[55349,56641]),f9h(A_h,42,-1,[55349,56485]),f9h(A_h,42,-1,[1032]),f9h(A_h,42,-1,[1028]),f9h(A_h,42,-1,[1061]),f9h(A_h,42,-1,[1036]),f9h(A_h,42,-1,[922]),f9h(A_h,42,-1,[310]),f9h(A_h,42,-1,[1050]),f9h(A_h,42,-1,[55349,56590]),f9h(A_h,42,-1,[55349,56642]),f9h(A_h,42,-1,[55349,56486]),f9h(A_h,42,-1,[1033]),f9h(A_h,42,-1,[60]),f9h(A_h,42,-1,[60]),f9h(A_h,42,-1,[313]),f9h(A_h,42,-1,[923]),f9h(A_h,42,-1,[10218]),f9h(A_h,42,-1,[8466]),f9h(A_h,42,-1,[8606]),f9h(A_h,42,-1,[317]),f9h(A_h,42,-1,[315]),f9h(A_h,42,-1,[1051]),f9h(A_h,42,-1,[10216]),f9h(A_h,42,-1,[8592]),f9h(A_h,42,-1,[8676]),f9h(A_h,42,-1,[8646]),f9h(A_h,42,-1,[8968]),f9h(A_h,42,-1,[10214]),f9h(A_h,42,-1,[10593]),f9h(A_h,42,-1,[8643]),f9h(A_h,42,-1,[10585]),f9h(A_h,42,-1,[8970]),f9h(A_h,42,-1,[8596]),f9h(A_h,42,-1,[10574]),f9h(A_h,42,-1,[8867]),f9h(A_h,42,-1,[8612]),f9h(A_h,42,-1,[10586]),f9h(A_h,42,-1,[8882]),f9h(A_h,42,-1,[10703]),f9h(A_h,42,-1,[8884]),f9h(A_h,42,-1,[10577]),f9h(A_h,42,-1,[10592]),f9h(A_h,42,-1,[8639]),f9h(A_h,42,-1,[10584]),f9h(A_h,42,-1,[8636]),f9h(A_h,42,-1,[10578]),f9h(A_h,42,-1,[8656]),f9h(A_h,42,-1,[8660]),f9h(A_h,42,-1,[8922]),f9h(A_h,42,-1,[8806]),f9h(A_h,42,-1,[8822]),f9h(A_h,42,-1,[10913]),f9h(A_h,42,-1,[10877]),f9h(A_h,42,-1,[8818]),f9h(A_h,42,-1,[55349,56591]),f9h(A_h,42,-1,[8920]),f9h(A_h,42,-1,[8666]),f9h(A_h,42,-1,[319]),f9h(A_h,42,-1,[10229]),f9h(A_h,42,-1,[10231]),f9h(A_h,42,-1,[10230]),f9h(A_h,42,-1,[10232]),f9h(A_h,42,-1,[10234]),f9h(A_h,42,-1,[10233]),f9h(A_h,42,-1,[55349,56643]),f9h(A_h,42,-1,[8601]),f9h(A_h,42,-1,[8600]),f9h(A_h,42,-1,[8466]),f9h(A_h,42,-1,[8624]),f9h(A_h,42,-1,[321]),f9h(A_h,42,-1,[8810]),f9h(A_h,42,-1,[10501]),f9h(A_h,42,-1,[1052]),f9h(A_h,42,-1,[8287]),f9h(A_h,42,-1,[8499]),f9h(A_h,42,-1,[55349,56592]),f9h(A_h,42,-1,[8723]),f9h(A_h,42,-1,[55349,56644]),f9h(A_h,42,-1,[8499]),f9h(A_h,42,-1,[924]),f9h(A_h,42,-1,[1034]),f9h(A_h,42,-1,[323]),f9h(A_h,42,-1,[327]),f9h(A_h,42,-1,[325]),f9h(A_h,42,-1,[1053]),f9h(A_h,42,-1,[8203]),f9h(A_h,42,-1,[8203]),f9h(A_h,42,-1,[8203]),f9h(A_h,42,-1,[8203]),f9h(A_h,42,-1,[8811]),f9h(A_h,42,-1,[8810]),f9h(A_h,42,-1,[10]),f9h(A_h,42,-1,[55349,56593]),f9h(A_h,42,-1,[8288]),f9h(A_h,42,-1,[160]),f9h(A_h,42,-1,[8469]),f9h(A_h,42,-1,[10988]),f9h(A_h,42,-1,[8802]),f9h(A_h,42,-1,[8813]),f9h(A_h,42,-1,[8742]),f9h(A_h,42,-1,[8713]),f9h(A_h,42,-1,[8800]),f9h(A_h,42,-1,[8708]),f9h(A_h,42,-1,[8815]),f9h(A_h,42,-1,[8817]),f9h(A_h,42,-1,[8825]),f9h(A_h,42,-1,[8821]),f9h(A_h,42,-1,[8938]),f9h(A_h,42,-1,[8940]),f9h(A_h,42,-1,[8814]),f9h(A_h,42,-1,[8816]),f9h(A_h,42,-1,[8824]),f9h(A_h,42,-1,[8820]),f9h(A_h,42,-1,[8832]),f9h(A_h,42,-1,[8928]),f9h(A_h,42,-1,[8716]),f9h(A_h,42,-1,[8939]),f9h(A_h,42,-1,[8941]),f9h(A_h,42,-1,[8930]),f9h(A_h,42,-1,[8931]),f9h(A_h,42,-1,[8840]),f9h(A_h,42,-1,[8833]),f9h(A_h,42,-1,[8929]),f9h(A_h,42,-1,[8841]),f9h(A_h,42,-1,[8769]),f9h(A_h,42,-1,[8772]),f9h(A_h,42,-1,[8775]),f9h(A_h,42,-1,[8777]),f9h(A_h,42,-1,[8740]),f9h(A_h,42,-1,[55349,56489]),f9h(A_h,42,-1,[209]),f9h(A_h,42,-1,[209]),f9h(A_h,42,-1,[925]),f9h(A_h,42,-1,[338]),f9h(A_h,42,-1,[211]),f9h(A_h,42,-1,[211]),f9h(A_h,42,-1,[212]),f9h(A_h,42,-1,[212]),f9h(A_h,42,-1,[1054]),f9h(A_h,42,-1,[336]),f9h(A_h,42,-1,[55349,56594]),f9h(A_h,42,-1,[210]),f9h(A_h,42,-1,[210]),f9h(A_h,42,-1,[332]),f9h(A_h,42,-1,[937]),f9h(A_h,42,-1,[927]),f9h(A_h,42,-1,[55349,56646]),f9h(A_h,42,-1,[8220]),f9h(A_h,42,-1,[8216]),f9h(A_h,42,-1,[10836]),f9h(A_h,42,-1,[55349,56490]),f9h(A_h,42,-1,[216]),f9h(A_h,42,-1,[216]),f9h(A_h,42,-1,[213]),f9h(A_h,42,-1,[213]),f9h(A_h,42,-1,[10807]),f9h(A_h,42,-1,[214]),f9h(A_h,42,-1,[214]),f9h(A_h,42,-1,[175]),f9h(A_h,42,-1,[9182]),f9h(A_h,42,-1,[9140]),f9h(A_h,42,-1,[9180]),f9h(A_h,42,-1,[8706]),f9h(A_h,42,-1,[1055]),f9h(A_h,42,-1,[55349,56595]),f9h(A_h,42,-1,[934]),f9h(A_h,42,-1,[928]),f9h(A_h,42,-1,[177]),f9h(A_h,42,-1,[8460]),f9h(A_h,42,-1,[8473]),f9h(A_h,42,-1,[10939]),f9h(A_h,42,-1,[8826]),f9h(A_h,42,-1,[10927]),f9h(A_h,42,-1,[8828]),f9h(A_h,42,-1,[8830]),f9h(A_h,42,-1,[8243]),f9h(A_h,42,-1,[8719]),f9h(A_h,42,-1,[8759]),f9h(A_h,42,-1,[8733]),f9h(A_h,42,-1,[55349,56491]),f9h(A_h,42,-1,[936]),f9h(A_h,42,-1,[34]),f9h(A_h,42,-1,[34]),f9h(A_h,42,-1,[55349,56596]),f9h(A_h,42,-1,[8474]),f9h(A_h,42,-1,[55349,56492]),f9h(A_h,42,-1,[10512]),f9h(A_h,42,-1,[174]),f9h(A_h,42,-1,[174]),f9h(A_h,42,-1,[340]),f9h(A_h,42,-1,[10219]),f9h(A_h,42,-1,[8608]),f9h(A_h,42,-1,[10518]),f9h(A_h,42,-1,[344]),f9h(A_h,42,-1,[342]),f9h(A_h,42,-1,[1056]),f9h(A_h,42,-1,[8476]),f9h(A_h,42,-1,[8715]),f9h(A_h,42,-1,[8651]),f9h(A_h,42,-1,[10607]),f9h(A_h,42,-1,[8476]),f9h(A_h,42,-1,[929]),f9h(A_h,42,-1,[10217]),f9h(A_h,42,-1,[8594]),f9h(A_h,42,-1,[8677]),f9h(A_h,42,-1,[8644]),f9h(A_h,42,-1,[8969]),f9h(A_h,42,-1,[10215]),f9h(A_h,42,-1,[10589]),f9h(A_h,42,-1,[8642]),f9h(A_h,42,-1,[10581]),f9h(A_h,42,-1,[8971]),f9h(A_h,42,-1,[8866]),f9h(A_h,42,-1,[8614]),f9h(A_h,42,-1,[10587]),f9h(A_h,42,-1,[8883]),f9h(A_h,42,-1,[10704]),f9h(A_h,42,-1,[8885]),f9h(A_h,42,-1,[10575]),f9h(A_h,42,-1,[10588]),f9h(A_h,42,-1,[8638]),f9h(A_h,42,-1,[10580]),f9h(A_h,42,-1,[8640]),f9h(A_h,42,-1,[10579]),f9h(A_h,42,-1,[8658]),f9h(A_h,42,-1,[8477]),f9h(A_h,42,-1,[10608]),f9h(A_h,42,-1,[8667]),f9h(A_h,42,-1,[8475]),f9h(A_h,42,-1,[8625]),f9h(A_h,42,-1,[10740]),f9h(A_h,42,-1,[1065]),f9h(A_h,42,-1,[1064]),f9h(A_h,42,-1,[1068]),f9h(A_h,42,-1,[346]),f9h(A_h,42,-1,[10940]),f9h(A_h,42,-1,[352]),f9h(A_h,42,-1,[350]),f9h(A_h,42,-1,[348]),f9h(A_h,42,-1,[1057]),f9h(A_h,42,-1,[55349,56598]),f9h(A_h,42,-1,[8595]),f9h(A_h,42,-1,[8592]),f9h(A_h,42,-1,[8594]),f9h(A_h,42,-1,[8593]),f9h(A_h,42,-1,[931]),f9h(A_h,42,-1,[8728]),f9h(A_h,42,-1,[55349,56650]),f9h(A_h,42,-1,[8730]),f9h(A_h,42,-1,[9633]),f9h(A_h,42,-1,[8851]),f9h(A_h,42,-1,[8847]),f9h(A_h,42,-1,[8849]),f9h(A_h,42,-1,[8848]),f9h(A_h,42,-1,[8850]),f9h(A_h,42,-1,[8852]),f9h(A_h,42,-1,[55349,56494]),f9h(A_h,42,-1,[8902]),f9h(A_h,42,-1,[8912]),f9h(A_h,42,-1,[8912]),f9h(A_h,42,-1,[8838]),f9h(A_h,42,-1,[8827]),f9h(A_h,42,-1,[10928]),f9h(A_h,42,-1,[8829]),f9h(A_h,42,-1,[8831]),f9h(A_h,42,-1,[8715]),f9h(A_h,42,-1,[8721]),f9h(A_h,42,-1,[8913]),f9h(A_h,42,-1,[8835]),f9h(A_h,42,-1,[8839]),f9h(A_h,42,-1,[8913]),f9h(A_h,42,-1,[222]),f9h(A_h,42,-1,[222]),f9h(A_h,42,-1,[8482]),f9h(A_h,42,-1,[1035]),f9h(A_h,42,-1,[1062]),f9h(A_h,42,-1,[9]),f9h(A_h,42,-1,[932]),f9h(A_h,42,-1,[356]),f9h(A_h,42,-1,[354]),f9h(A_h,42,-1,[1058]),f9h(A_h,42,-1,[55349,56599]),f9h(A_h,42,-1,[8756]),f9h(A_h,42,-1,[920]),f9h(A_h,42,-1,[8201]),f9h(A_h,42,-1,[8764]),f9h(A_h,42,-1,[8771]),f9h(A_h,42,-1,[8773]),f9h(A_h,42,-1,[8776]),f9h(A_h,42,-1,[55349,56651]),f9h(A_h,42,-1,[8411]),f9h(A_h,42,-1,[55349,56495]),f9h(A_h,42,-1,[358]),f9h(A_h,42,-1,[218]),f9h(A_h,42,-1,[218]),f9h(A_h,42,-1,[8607]),f9h(A_h,42,-1,[10569]),f9h(A_h,42,-1,[1038]),f9h(A_h,42,-1,[364]),f9h(A_h,42,-1,[219]),f9h(A_h,42,-1,[219]),f9h(A_h,42,-1,[1059]),f9h(A_h,42,-1,[368]),f9h(A_h,42,-1,[55349,56600]),f9h(A_h,42,-1,[217]),f9h(A_h,42,-1,[217]),f9h(A_h,42,-1,[362]),f9h(A_h,42,-1,[818]),f9h(A_h,42,-1,[9183]),f9h(A_h,42,-1,[9141]),f9h(A_h,42,-1,[9181]),f9h(A_h,42,-1,[8899]),f9h(A_h,42,-1,[8846]),f9h(A_h,42,-1,[370]),f9h(A_h,42,-1,[55349,56652]),f9h(A_h,42,-1,[8593]),f9h(A_h,42,-1,[10514]),f9h(A_h,42,-1,[8645]),f9h(A_h,42,-1,[8597]),f9h(A_h,42,-1,[10606]),f9h(A_h,42,-1,[8869]),f9h(A_h,42,-1,[8613]),f9h(A_h,42,-1,[8657]),f9h(A_h,42,-1,[8661]),f9h(A_h,42,-1,[8598]),f9h(A_h,42,-1,[8599]),f9h(A_h,42,-1,[978]),f9h(A_h,42,-1,[933]),f9h(A_h,42,-1,[366]),f9h(A_h,42,-1,[55349,56496]),f9h(A_h,42,-1,[360]),f9h(A_h,42,-1,[220]),f9h(A_h,42,-1,[220]),f9h(A_h,42,-1,[8875]),f9h(A_h,42,-1,[10987]),f9h(A_h,42,-1,[1042]),f9h(A_h,42,-1,[8873]),f9h(A_h,42,-1,[10982]),f9h(A_h,42,-1,[8897]),f9h(A_h,42,-1,[8214]),f9h(A_h,42,-1,[8214]),f9h(A_h,42,-1,[8739]),f9h(A_h,42,-1,[124]),f9h(A_h,42,-1,[10072]),f9h(A_h,42,-1,[8768]),f9h(A_h,42,-1,[8202]),f9h(A_h,42,-1,[55349,56601]),f9h(A_h,42,-1,[55349,56653]),f9h(A_h,42,-1,[55349,56497]),f9h(A_h,42,-1,[8874]),f9h(A_h,42,-1,[372]),f9h(A_h,42,-1,[8896]),f9h(A_h,42,-1,[55349,56602]),f9h(A_h,42,-1,[55349,56654]),f9h(A_h,42,-1,[55349,56498]),f9h(A_h,42,-1,[55349,56603]),f9h(A_h,42,-1,[926]),f9h(A_h,42,-1,[55349,56655]),f9h(A_h,42,-1,[55349,56499]),f9h(A_h,42,-1,[1071]),f9h(A_h,42,-1,[1031]),f9h(A_h,42,-1,[1070]),f9h(A_h,42,-1,[221]),f9h(A_h,42,-1,[221]),f9h(A_h,42,-1,[374]),f9h(A_h,42,-1,[1067]),f9h(A_h,42,-1,[55349,56604]),f9h(A_h,42,-1,[55349,56656]),f9h(A_h,42,-1,[55349,56500]),f9h(A_h,42,-1,[376]),f9h(A_h,42,-1,[1046]),f9h(A_h,42,-1,[377]),f9h(A_h,42,-1,[381]),f9h(A_h,42,-1,[1047]),f9h(A_h,42,-1,[379]),f9h(A_h,42,-1,[8203]),f9h(A_h,42,-1,[918]),f9h(A_h,42,-1,[8488]),f9h(A_h,42,-1,[8484]),f9h(A_h,42,-1,[55349,56501]),f9h(A_h,42,-1,[225]),f9h(A_h,42,-1,[225]),f9h(A_h,42,-1,[259]),f9h(A_h,42,-1,[8766]),f9h(A_h,42,-1,[8767]),f9h(A_h,42,-1,[226]),f9h(A_h,42,-1,[226]),f9h(A_h,42,-1,[180]),f9h(A_h,42,-1,[180]),f9h(A_h,42,-1,[1072]),f9h(A_h,42,-1,[230]),f9h(A_h,42,-1,[230]),f9h(A_h,42,-1,[8289]),f9h(A_h,42,-1,[55349,56606]),f9h(A_h,42,-1,[224]),f9h(A_h,42,-1,[224]),f9h(A_h,42,-1,[8501]),f9h(A_h,42,-1,[8501]),f9h(A_h,42,-1,[945]),f9h(A_h,42,-1,[257]),f9h(A_h,42,-1,[10815]),f9h(A_h,42,-1,[38]),f9h(A_h,42,-1,[38]),f9h(A_h,42,-1,[8743]),f9h(A_h,42,-1,[10837]),f9h(A_h,42,-1,[10844]),f9h(A_h,42,-1,[10840]),f9h(A_h,42,-1,[10842]),f9h(A_h,42,-1,[8736]),f9h(A_h,42,-1,[10660]),f9h(A_h,42,-1,[8736]),f9h(A_h,42,-1,[8737]),f9h(A_h,42,-1,[10664]),f9h(A_h,42,-1,[10665]),f9h(A_h,42,-1,[10666]),f9h(A_h,42,-1,[10667]),f9h(A_h,42,-1,[10668]),f9h(A_h,42,-1,[10669]),f9h(A_h,42,-1,[10670]),f9h(A_h,42,-1,[10671]),f9h(A_h,42,-1,[8735]),f9h(A_h,42,-1,[8894]),f9h(A_h,42,-1,[10653]),f9h(A_h,42,-1,[8738]),f9h(A_h,42,-1,[8491]),f9h(A_h,42,-1,[9084]),f9h(A_h,42,-1,[261]),f9h(A_h,42,-1,[55349,56658]),f9h(A_h,42,-1,[8776]),f9h(A_h,42,-1,[10864]),f9h(A_h,42,-1,[10863]),f9h(A_h,42,-1,[8778]),f9h(A_h,42,-1,[8779]),f9h(A_h,42,-1,[39]),f9h(A_h,42,-1,[8776]),f9h(A_h,42,-1,[8778]),f9h(A_h,42,-1,[229]),f9h(A_h,42,-1,[229]),f9h(A_h,42,-1,[55349,56502]),f9h(A_h,42,-1,[42]),f9h(A_h,42,-1,[8776]),f9h(A_h,42,-1,[8781]),f9h(A_h,42,-1,[227]),f9h(A_h,42,-1,[227]),f9h(A_h,42,-1,[228]),f9h(A_h,42,-1,[228]),f9h(A_h,42,-1,[8755]),f9h(A_h,42,-1,[10769]),f9h(A_h,42,-1,[10989]),f9h(A_h,42,-1,[8780]),f9h(A_h,42,-1,[1014]),f9h(A_h,42,-1,[8245]),f9h(A_h,42,-1,[8765]),f9h(A_h,42,-1,[8909]),f9h(A_h,42,-1,[8893]),f9h(A_h,42,-1,[8965]),f9h(A_h,42,-1,[8965]),f9h(A_h,42,-1,[9141]),f9h(A_h,42,-1,[9142]),f9h(A_h,42,-1,[8780]),f9h(A_h,42,-1,[1073]),f9h(A_h,42,-1,[8222]),f9h(A_h,42,-1,[8757]),f9h(A_h,42,-1,[8757]),f9h(A_h,42,-1,[10672]),f9h(A_h,42,-1,[1014]),f9h(A_h,42,-1,[8492]),f9h(A_h,42,-1,[946]),f9h(A_h,42,-1,[8502]),f9h(A_h,42,-1,[8812]),f9h(A_h,42,-1,[55349,56607]),f9h(A_h,42,-1,[8898]),f9h(A_h,42,-1,[9711]),f9h(A_h,42,-1,[8899]),f9h(A_h,42,-1,[10752]),f9h(A_h,42,-1,[10753]),f9h(A_h,42,-1,[10754]),f9h(A_h,42,-1,[10758]),f9h(A_h,42,-1,[9733]),f9h(A_h,42,-1,[9661]),f9h(A_h,42,-1,[9651]),f9h(A_h,42,-1,[10756]),f9h(A_h,42,-1,[8897]),f9h(A_h,42,-1,[8896]),f9h(A_h,42,-1,[10509]),f9h(A_h,42,-1,[10731]),f9h(A_h,42,-1,[9642]),f9h(A_h,42,-1,[9652]),f9h(A_h,42,-1,[9662]),f9h(A_h,42,-1,[9666]),f9h(A_h,42,-1,[9656]),f9h(A_h,42,-1,[9251]),f9h(A_h,42,-1,[9618]),f9h(A_h,42,-1,[9617]),f9h(A_h,42,-1,[9619]),f9h(A_h,42,-1,[9608]),f9h(A_h,42,-1,[8976]),f9h(A_h,42,-1,[55349,56659]),f9h(A_h,42,-1,[8869]),f9h(A_h,42,-1,[8869]),f9h(A_h,42,-1,[8904]),f9h(A_h,42,-1,[9559]),f9h(A_h,42,-1,[9556]),f9h(A_h,42,-1,[9558]),f9h(A_h,42,-1,[9555]),f9h(A_h,42,-1,[9552]),f9h(A_h,42,-1,[9574]),f9h(A_h,42,-1,[9577]),f9h(A_h,42,-1,[9572]),f9h(A_h,42,-1,[9575]),f9h(A_h,42,-1,[9565]),f9h(A_h,42,-1,[9562]),f9h(A_h,42,-1,[9564]),f9h(A_h,42,-1,[9561]),f9h(A_h,42,-1,[9553]),f9h(A_h,42,-1,[9580]),f9h(A_h,42,-1,[9571]),f9h(A_h,42,-1,[9568]),f9h(A_h,42,-1,[9579]),f9h(A_h,42,-1,[9570]),f9h(A_h,42,-1,[9567]),f9h(A_h,42,-1,[10697]),f9h(A_h,42,-1,[9557]),f9h(A_h,42,-1,[9554]),f9h(A_h,42,-1,[9488]),f9h(A_h,42,-1,[9484]),f9h(A_h,42,-1,[9472]),f9h(A_h,42,-1,[9573]),f9h(A_h,42,-1,[9576]),f9h(A_h,42,-1,[9516]),f9h(A_h,42,-1,[9524]),f9h(A_h,42,-1,[8863]),f9h(A_h,42,-1,[8862]),f9h(A_h,42,-1,[8864]),f9h(A_h,42,-1,[9563]),f9h(A_h,42,-1,[9560]),f9h(A_h,42,-1,[9496]),f9h(A_h,42,-1,[9492]),f9h(A_h,42,-1,[9474]),f9h(A_h,42,-1,[9578]),f9h(A_h,42,-1,[9569]),f9h(A_h,42,-1,[9566]),f9h(A_h,42,-1,[9532]),f9h(A_h,42,-1,[9508]),f9h(A_h,42,-1,[9500]),f9h(A_h,42,-1,[8245]),f9h(A_h,42,-1,[728]),f9h(A_h,42,-1,[166]),f9h(A_h,42,-1,[166]),f9h(A_h,42,-1,[55349,56503]),f9h(A_h,42,-1,[8271]),f9h(A_h,42,-1,[8765]),f9h(A_h,42,-1,[8909]),f9h(A_h,42,-1,[92]),f9h(A_h,42,-1,[10693]),f9h(A_h,42,-1,[8226]),f9h(A_h,42,-1,[8226]),f9h(A_h,42,-1,[8782]),f9h(A_h,42,-1,[10926]),f9h(A_h,42,-1,[8783]),f9h(A_h,42,-1,[8783]),f9h(A_h,42,-1,[263]),f9h(A_h,42,-1,[8745]),f9h(A_h,42,-1,[10820]),f9h(A_h,42,-1,[10825]),f9h(A_h,42,-1,[10827]),f9h(A_h,42,-1,[10823]),f9h(A_h,42,-1,[10816]),f9h(A_h,42,-1,[8257]),f9h(A_h,42,-1,[711]),f9h(A_h,42,-1,[10829]),f9h(A_h,42,-1,[269]),f9h(A_h,42,-1,[231]),f9h(A_h,42,-1,[231]),f9h(A_h,42,-1,[265]),f9h(A_h,42,-1,[10828]),f9h(A_h,42,-1,[10832]),f9h(A_h,42,-1,[267]),f9h(A_h,42,-1,[184]),f9h(A_h,42,-1,[184]),f9h(A_h,42,-1,[10674]),f9h(A_h,42,-1,[162]),f9h(A_h,42,-1,[162]),f9h(A_h,42,-1,[183]),f9h(A_h,42,-1,[55349,56608]),f9h(A_h,42,-1,[1095]),f9h(A_h,42,-1,[10003]),f9h(A_h,42,-1,[10003]),f9h(A_h,42,-1,[967]),f9h(A_h,42,-1,[9675]),f9h(A_h,42,-1,[10691]),f9h(A_h,42,-1,[710]),f9h(A_h,42,-1,[8791]),f9h(A_h,42,-1,[8634]),f9h(A_h,42,-1,[8635]),f9h(A_h,42,-1,[174]),f9h(A_h,42,-1,[9416]),f9h(A_h,42,-1,[8859]),f9h(A_h,42,-1,[8858]),f9h(A_h,42,-1,[8861]),f9h(A_h,42,-1,[8791]),f9h(A_h,42,-1,[10768]),f9h(A_h,42,-1,[10991]),f9h(A_h,42,-1,[10690]),f9h(A_h,42,-1,[9827]),f9h(A_h,42,-1,[9827]),f9h(A_h,42,-1,[58]),f9h(A_h,42,-1,[8788]),f9h(A_h,42,-1,[8788]),f9h(A_h,42,-1,[44]),f9h(A_h,42,-1,[64]),f9h(A_h,42,-1,[8705]),f9h(A_h,42,-1,[8728]),f9h(A_h,42,-1,[8705]),f9h(A_h,42,-1,[8450]),f9h(A_h,42,-1,[8773]),f9h(A_h,42,-1,[10861]),f9h(A_h,42,-1,[8750]),f9h(A_h,42,-1,[55349,56660]),f9h(A_h,42,-1,[8720]),f9h(A_h,42,-1,[169]),f9h(A_h,42,-1,[169]),f9h(A_h,42,-1,[8471]),f9h(A_h,42,-1,[8629]),f9h(A_h,42,-1,[10007]),f9h(A_h,42,-1,[55349,56504]),f9h(A_h,42,-1,[10959]),f9h(A_h,42,-1,[10961]),f9h(A_h,42,-1,[10960]),f9h(A_h,42,-1,[10962]),f9h(A_h,42,-1,[8943]),f9h(A_h,42,-1,[10552]),f9h(A_h,42,-1,[10549]),f9h(A_h,42,-1,[8926]),f9h(A_h,42,-1,[8927]),f9h(A_h,42,-1,[8630]),f9h(A_h,42,-1,[10557]),f9h(A_h,42,-1,[8746]),f9h(A_h,42,-1,[10824]),f9h(A_h,42,-1,[10822]),f9h(A_h,42,-1,[10826]),f9h(A_h,42,-1,[8845]),f9h(A_h,42,-1,[10821]),f9h(A_h,42,-1,[8631]),f9h(A_h,42,-1,[10556]),f9h(A_h,42,-1,[8926]),f9h(A_h,42,-1,[8927]),f9h(A_h,42,-1,[8910]),f9h(A_h,42,-1,[8911]),f9h(A_h,42,-1,[164]),f9h(A_h,42,-1,[164]),f9h(A_h,42,-1,[8630]),f9h(A_h,42,-1,[8631]),f9h(A_h,42,-1,[8910]),f9h(A_h,42,-1,[8911]),f9h(A_h,42,-1,[8754]),f9h(A_h,42,-1,[8753]),f9h(A_h,42,-1,[9005]),f9h(A_h,42,-1,[8659]),f9h(A_h,42,-1,[10597]),f9h(A_h,42,-1,[8224]),f9h(A_h,42,-1,[8504]),f9h(A_h,42,-1,[8595]),f9h(A_h,42,-1,[8208]),f9h(A_h,42,-1,[8867]),f9h(A_h,42,-1,[10511]),f9h(A_h,42,-1,[733]),f9h(A_h,42,-1,[271]),f9h(A_h,42,-1,[1076]),f9h(A_h,42,-1,[8518]),f9h(A_h,42,-1,[8225]),f9h(A_h,42,-1,[8650]),f9h(A_h,42,-1,[10871]),f9h(A_h,42,-1,[176]),f9h(A_h,42,-1,[176]),f9h(A_h,42,-1,[948]),f9h(A_h,42,-1,[10673]),f9h(A_h,42,-1,[10623]),f9h(A_h,42,-1,[55349,56609]),f9h(A_h,42,-1,[8643]),f9h(A_h,42,-1,[8642]),f9h(A_h,42,-1,[8900]),f9h(A_h,42,-1,[8900]),f9h(A_h,42,-1,[9830]),f9h(A_h,42,-1,[9830]),f9h(A_h,42,-1,[168]),f9h(A_h,42,-1,[989]),f9h(A_h,42,-1,[8946]),f9h(A_h,42,-1,[247]),f9h(A_h,42,-1,[247]),f9h(A_h,42,-1,[247]),f9h(A_h,42,-1,[8903]),f9h(A_h,42,-1,[8903]),f9h(A_h,42,-1,[1106]),f9h(A_h,42,-1,[8990]),f9h(A_h,42,-1,[8973]),f9h(A_h,42,-1,[36]),f9h(A_h,42,-1,[55349,56661]),f9h(A_h,42,-1,[729]),f9h(A_h,42,-1,[8784]),f9h(A_h,42,-1,[8785]),f9h(A_h,42,-1,[8760]),f9h(A_h,42,-1,[8724]),f9h(A_h,42,-1,[8865]),f9h(A_h,42,-1,[8966]),f9h(A_h,42,-1,[8595]),f9h(A_h,42,-1,[8650]),f9h(A_h,42,-1,[8643]),f9h(A_h,42,-1,[8642]),f9h(A_h,42,-1,[10512]),f9h(A_h,42,-1,[8991]),f9h(A_h,42,-1,[8972]),f9h(A_h,42,-1,[55349,56505]),f9h(A_h,42,-1,[1109]),f9h(A_h,42,-1,[10742]),f9h(A_h,42,-1,[273]),f9h(A_h,42,-1,[8945]),f9h(A_h,42,-1,[9663]),f9h(A_h,42,-1,[9662]),f9h(A_h,42,-1,[8693]),f9h(A_h,42,-1,[10607]),f9h(A_h,42,-1,[10662]),f9h(A_h,42,-1,[1119]),f9h(A_h,42,-1,[10239]),f9h(A_h,42,-1,[10871]),f9h(A_h,42,-1,[8785]),f9h(A_h,42,-1,[233]),f9h(A_h,42,-1,[233]),f9h(A_h,42,-1,[10862]),f9h(A_h,42,-1,[283]),f9h(A_h,42,-1,[8790]),f9h(A_h,42,-1,[234]),f9h(A_h,42,-1,[234]),f9h(A_h,42,-1,[8789]),f9h(A_h,42,-1,[1101]),f9h(A_h,42,-1,[279]),f9h(A_h,42,-1,[8519]),f9h(A_h,42,-1,[8786]),f9h(A_h,42,-1,[55349,56610]),f9h(A_h,42,-1,[10906]),f9h(A_h,42,-1,[232]),f9h(A_h,42,-1,[232]),f9h(A_h,42,-1,[10902]),f9h(A_h,42,-1,[10904]),f9h(A_h,42,-1,[10905]),f9h(A_h,42,-1,[9191]),f9h(A_h,42,-1,[8467]),f9h(A_h,42,-1,[10901]),f9h(A_h,42,-1,[10903]),f9h(A_h,42,-1,[275]),f9h(A_h,42,-1,[8709]),f9h(A_h,42,-1,[8709]),f9h(A_h,42,-1,[8709]),f9h(A_h,42,-1,[8196]),f9h(A_h,42,-1,[8197]),f9h(A_h,42,-1,[8195]),f9h(A_h,42,-1,[331]),f9h(A_h,42,-1,[8194]),f9h(A_h,42,-1,[281]),f9h(A_h,42,-1,[55349,56662]),f9h(A_h,42,-1,[8917]),f9h(A_h,42,-1,[10723]),f9h(A_h,42,-1,[10865]),f9h(A_h,42,-1,[1013]),f9h(A_h,42,-1,[949]),f9h(A_h,42,-1,[949]),f9h(A_h,42,-1,[8790]),f9h(A_h,42,-1,[8789]),f9h(A_h,42,-1,[8770]),f9h(A_h,42,-1,[10902]),f9h(A_h,42,-1,[10901]),f9h(A_h,42,-1,[61]),f9h(A_h,42,-1,[8799]),f9h(A_h,42,-1,[8801]),f9h(A_h,42,-1,[10872]),f9h(A_h,42,-1,[10725]),f9h(A_h,42,-1,[8787]),f9h(A_h,42,-1,[10609]),f9h(A_h,42,-1,[8495]),f9h(A_h,42,-1,[8784]),f9h(A_h,42,-1,[8770]),f9h(A_h,42,-1,[951]),f9h(A_h,42,-1,[240]),f9h(A_h,42,-1,[240]),f9h(A_h,42,-1,[235]),f9h(A_h,42,-1,[235]),f9h(A_h,42,-1,[8364]),f9h(A_h,42,-1,[33]),f9h(A_h,42,-1,[8707]),f9h(A_h,42,-1,[8496]),f9h(A_h,42,-1,[8519]),f9h(A_h,42,-1,[8786]),f9h(A_h,42,-1,[1092]),f9h(A_h,42,-1,[9792]),f9h(A_h,42,-1,[64259]),f9h(A_h,42,-1,[64256]),f9h(A_h,42,-1,[64260]),f9h(A_h,42,-1,[55349,56611]),f9h(A_h,42,-1,[64257]),f9h(A_h,42,-1,[9837]),f9h(A_h,42,-1,[64258]),f9h(A_h,42,-1,[9649]),f9h(A_h,42,-1,[402]),f9h(A_h,42,-1,[55349,56663]),f9h(A_h,42,-1,[8704]),f9h(A_h,42,-1,[8916]),f9h(A_h,42,-1,[10969]),f9h(A_h,42,-1,[10765]),f9h(A_h,42,-1,[189]),f9h(A_h,42,-1,[189]),f9h(A_h,42,-1,[8531]),f9h(A_h,42,-1,[188]),f9h(A_h,42,-1,[188]),f9h(A_h,42,-1,[8533]),f9h(A_h,42,-1,[8537]),f9h(A_h,42,-1,[8539]),f9h(A_h,42,-1,[8532]),f9h(A_h,42,-1,[8534]),f9h(A_h,42,-1,[190]),f9h(A_h,42,-1,[190]),f9h(A_h,42,-1,[8535]),f9h(A_h,42,-1,[8540]),f9h(A_h,42,-1,[8536]),f9h(A_h,42,-1,[8538]),f9h(A_h,42,-1,[8541]),f9h(A_h,42,-1,[8542]),f9h(A_h,42,-1,[8260]),f9h(A_h,42,-1,[8994]),f9h(A_h,42,-1,[55349,56507]),f9h(A_h,42,-1,[8807]),f9h(A_h,42,-1,[10892]),f9h(A_h,42,-1,[501]),f9h(A_h,42,-1,[947]),f9h(A_h,42,-1,[989]),f9h(A_h,42,-1,[10886]),f9h(A_h,42,-1,[287]),f9h(A_h,42,-1,[285]),f9h(A_h,42,-1,[1075]),f9h(A_h,42,-1,[289]),f9h(A_h,42,-1,[8805]),f9h(A_h,42,-1,[8923]),f9h(A_h,42,-1,[8805]),f9h(A_h,42,-1,[8807]),f9h(A_h,42,-1,[10878]),f9h(A_h,42,-1,[10878]),f9h(A_h,42,-1,[10921]),f9h(A_h,42,-1,[10880]),f9h(A_h,42,-1,[10882]),f9h(A_h,42,-1,[10884]),f9h(A_h,42,-1,[10900]),f9h(A_h,42,-1,[55349,56612]),f9h(A_h,42,-1,[8811]),f9h(A_h,42,-1,[8921]),f9h(A_h,42,-1,[8503]),f9h(A_h,42,-1,[1107]),f9h(A_h,42,-1,[8823]),f9h(A_h,42,-1,[10898]),f9h(A_h,42,-1,[10917]),f9h(A_h,42,-1,[10916]),f9h(A_h,42,-1,[8809]),f9h(A_h,42,-1,[10890]),f9h(A_h,42,-1,[10890]),f9h(A_h,42,-1,[10888]),f9h(A_h,42,-1,[10888]),f9h(A_h,42,-1,[8809]),f9h(A_h,42,-1,[8935]),f9h(A_h,42,-1,[55349,56664]),f9h(A_h,42,-1,[96]),f9h(A_h,42,-1,[8458]),f9h(A_h,42,-1,[8819]),f9h(A_h,42,-1,[10894]),f9h(A_h,42,-1,[10896]),f9h(A_h,42,-1,[62]),f9h(A_h,42,-1,[62]),f9h(A_h,42,-1,[10919]),f9h(A_h,42,-1,[10874]),f9h(A_h,42,-1,[8919]),f9h(A_h,42,-1,[10645]),f9h(A_h,42,-1,[10876]),f9h(A_h,42,-1,[10886]),f9h(A_h,42,-1,[10616]),f9h(A_h,42,-1,[8919]),f9h(A_h,42,-1,[8923]),f9h(A_h,42,-1,[10892]),f9h(A_h,42,-1,[8823]),f9h(A_h,42,-1,[8819]),f9h(A_h,42,-1,[8660]),f9h(A_h,42,-1,[8202]),f9h(A_h,42,-1,[189]),f9h(A_h,42,-1,[8459]),f9h(A_h,42,-1,[1098]),f9h(A_h,42,-1,[8596]),f9h(A_h,42,-1,[10568]),f9h(A_h,42,-1,[8621]),f9h(A_h,42,-1,[8463]),f9h(A_h,42,-1,[293]),f9h(A_h,42,-1,[9829]),f9h(A_h,42,-1,[9829]),f9h(A_h,42,-1,[8230]),f9h(A_h,42,-1,[8889]),f9h(A_h,42,-1,[55349,56613]),f9h(A_h,42,-1,[10533]),f9h(A_h,42,-1,[10534]),f9h(A_h,42,-1,[8703]),f9h(A_h,42,-1,[8763]),f9h(A_h,42,-1,[8617]),f9h(A_h,42,-1,[8618]),f9h(A_h,42,-1,[55349,56665]),f9h(A_h,42,-1,[8213]),f9h(A_h,42,-1,[55349,56509]),f9h(A_h,42,-1,[8463]),f9h(A_h,42,-1,[295]),f9h(A_h,42,-1,[8259]),f9h(A_h,42,-1,[8208]),f9h(A_h,42,-1,[237]),f9h(A_h,42,-1,[237]),f9h(A_h,42,-1,[8291]),f9h(A_h,42,-1,[238]),f9h(A_h,42,-1,[238]),f9h(A_h,42,-1,[1080]),f9h(A_h,42,-1,[1077]),f9h(A_h,42,-1,[161]),f9h(A_h,42,-1,[161]),f9h(A_h,42,-1,[8660]),f9h(A_h,42,-1,[55349,56614]),f9h(A_h,42,-1,[236]),f9h(A_h,42,-1,[236]),f9h(A_h,42,-1,[8520]),f9h(A_h,42,-1,[10764]),f9h(A_h,42,-1,[8749]),f9h(A_h,42,-1,[10716]),f9h(A_h,42,-1,[8489]),f9h(A_h,42,-1,[307]),f9h(A_h,42,-1,[299]),f9h(A_h,42,-1,[8465]),f9h(A_h,42,-1,[8464]),f9h(A_h,42,-1,[8465]),f9h(A_h,42,-1,[305]),f9h(A_h,42,-1,[8887]),f9h(A_h,42,-1,[437]),f9h(A_h,42,-1,[8712]),f9h(A_h,42,-1,[8453]),f9h(A_h,42,-1,[8734]),f9h(A_h,42,-1,[10717]),f9h(A_h,42,-1,[305]),f9h(A_h,42,-1,[8747]),f9h(A_h,42,-1,[8890]),f9h(A_h,42,-1,[8484]),f9h(A_h,42,-1,[8890]),f9h(A_h,42,-1,[10775]),f9h(A_h,42,-1,[10812]),f9h(A_h,42,-1,[1105]),f9h(A_h,42,-1,[303]),f9h(A_h,42,-1,[55349,56666]),f9h(A_h,42,-1,[953]),f9h(A_h,42,-1,[10812]),f9h(A_h,42,-1,[191]),f9h(A_h,42,-1,[191]),f9h(A_h,42,-1,[55349,56510]),f9h(A_h,42,-1,[8712]),f9h(A_h,42,-1,[8953]),f9h(A_h,42,-1,[8949]),f9h(A_h,42,-1,[8948]),f9h(A_h,42,-1,[8947]),f9h(A_h,42,-1,[8712]),f9h(A_h,42,-1,[8290]),f9h(A_h,42,-1,[297]),f9h(A_h,42,-1,[1110]),f9h(A_h,42,-1,[239]),f9h(A_h,42,-1,[239]),f9h(A_h,42,-1,[309]),f9h(A_h,42,-1,[1081]),f9h(A_h,42,-1,[55349,56615]),f9h(A_h,42,-1,[567]),f9h(A_h,42,-1,[55349,56667]),f9h(A_h,42,-1,[55349,56511]),f9h(A_h,42,-1,[1112]),f9h(A_h,42,-1,[1108]),f9h(A_h,42,-1,[954]),f9h(A_h,42,-1,[1008]),f9h(A_h,42,-1,[311]),f9h(A_h,42,-1,[1082]),f9h(A_h,42,-1,[55349,56616]),f9h(A_h,42,-1,[312]),f9h(A_h,42,-1,[1093]),f9h(A_h,42,-1,[1116]),f9h(A_h,42,-1,[55349,56668]),f9h(A_h,42,-1,[55349,56512]),f9h(A_h,42,-1,[8666]),f9h(A_h,42,-1,[8656]),f9h(A_h,42,-1,[10523]),f9h(A_h,42,-1,[10510]),f9h(A_h,42,-1,[8806]),f9h(A_h,42,-1,[10891]),f9h(A_h,42,-1,[10594]),f9h(A_h,42,-1,[314]),f9h(A_h,42,-1,[10676]),f9h(A_h,42,-1,[8466]),f9h(A_h,42,-1,[955]),f9h(A_h,42,-1,[10216]),f9h(A_h,42,-1,[10641]),f9h(A_h,42,-1,[10216]),f9h(A_h,42,-1,[10885]),f9h(A_h,42,-1,[171]),f9h(A_h,42,-1,[171]),f9h(A_h,42,-1,[8592]),f9h(A_h,42,-1,[8676]),f9h(A_h,42,-1,[10527]),f9h(A_h,42,-1,[10525]),f9h(A_h,42,-1,[8617]),f9h(A_h,42,-1,[8619]),f9h(A_h,42,-1,[10553]),f9h(A_h,42,-1,[10611]),f9h(A_h,42,-1,[8610]),f9h(A_h,42,-1,[10923]),f9h(A_h,42,-1,[10521]),f9h(A_h,42,-1,[10925]),f9h(A_h,42,-1,[10508]),f9h(A_h,42,-1,[10098]),f9h(A_h,42,-1,[123]),f9h(A_h,42,-1,[91]),f9h(A_h,42,-1,[10635]),f9h(A_h,42,-1,[10639]),f9h(A_h,42,-1,[10637]),f9h(A_h,42,-1,[318]),f9h(A_h,42,-1,[316]),f9h(A_h,42,-1,[8968]),f9h(A_h,42,-1,[123]),f9h(A_h,42,-1,[1083]),f9h(A_h,42,-1,[10550]),f9h(A_h,42,-1,[8220]),f9h(A_h,42,-1,[8222]),f9h(A_h,42,-1,[10599]),f9h(A_h,42,-1,[10571]),f9h(A_h,42,-1,[8626]),f9h(A_h,42,-1,[8804]),f9h(A_h,42,-1,[8592]),f9h(A_h,42,-1,[8610]),f9h(A_h,42,-1,[8637]),f9h(A_h,42,-1,[8636]),f9h(A_h,42,-1,[8647]),f9h(A_h,42,-1,[8596]),f9h(A_h,42,-1,[8646]),f9h(A_h,42,-1,[8651]),f9h(A_h,42,-1,[8621]),f9h(A_h,42,-1,[8907]),f9h(A_h,42,-1,[8922]),f9h(A_h,42,-1,[8804]),f9h(A_h,42,-1,[8806]),f9h(A_h,42,-1,[10877]),f9h(A_h,42,-1,[10877]),f9h(A_h,42,-1,[10920]),f9h(A_h,42,-1,[10879]),f9h(A_h,42,-1,[10881]),f9h(A_h,42,-1,[10883]),f9h(A_h,42,-1,[10899]),f9h(A_h,42,-1,[10885]),f9h(A_h,42,-1,[8918]),f9h(A_h,42,-1,[8922]),f9h(A_h,42,-1,[10891]),f9h(A_h,42,-1,[8822]),f9h(A_h,42,-1,[8818]),f9h(A_h,42,-1,[10620]),f9h(A_h,42,-1,[8970]),f9h(A_h,42,-1,[55349,56617]),f9h(A_h,42,-1,[8822]),f9h(A_h,42,-1,[10897]),f9h(A_h,42,-1,[8637]),f9h(A_h,42,-1,[8636]),f9h(A_h,42,-1,[10602]),f9h(A_h,42,-1,[9604]),f9h(A_h,42,-1,[1113]),f9h(A_h,42,-1,[8810]),f9h(A_h,42,-1,[8647]),f9h(A_h,42,-1,[8990]),f9h(A_h,42,-1,[10603]),f9h(A_h,42,-1,[9722]),f9h(A_h,42,-1,[320]),f9h(A_h,42,-1,[9136]),f9h(A_h,42,-1,[9136]),f9h(A_h,42,-1,[8808]),f9h(A_h,42,-1,[10889]),f9h(A_h,42,-1,[10889]),f9h(A_h,42,-1,[10887]),f9h(A_h,42,-1,[10887]),f9h(A_h,42,-1,[8808]),f9h(A_h,42,-1,[8934]),f9h(A_h,42,-1,[10220]),f9h(A_h,42,-1,[8701]),f9h(A_h,42,-1,[10214]),f9h(A_h,42,-1,[10229]),f9h(A_h,42,-1,[10231]),f9h(A_h,42,-1,[10236]),f9h(A_h,42,-1,[10230]),f9h(A_h,42,-1,[8619]),f9h(A_h,42,-1,[8620]),f9h(A_h,42,-1,[10629]),f9h(A_h,42,-1,[55349,56669]),f9h(A_h,42,-1,[10797]),f9h(A_h,42,-1,[10804]),f9h(A_h,42,-1,[8727]),f9h(A_h,42,-1,[95]),f9h(A_h,42,-1,[9674]),f9h(A_h,42,-1,[9674]),f9h(A_h,42,-1,[10731]),f9h(A_h,42,-1,[40]),f9h(A_h,42,-1,[10643]),f9h(A_h,42,-1,[8646]),f9h(A_h,42,-1,[8991]),f9h(A_h,42,-1,[8651]),f9h(A_h,42,-1,[10605]),f9h(A_h,42,-1,[8206]),f9h(A_h,42,-1,[8895]),f9h(A_h,42,-1,[8249]),f9h(A_h,42,-1,[55349,56513]),f9h(A_h,42,-1,[8624]),f9h(A_h,42,-1,[8818]),f9h(A_h,42,-1,[10893]),f9h(A_h,42,-1,[10895]),f9h(A_h,42,-1,[91]),f9h(A_h,42,-1,[8216]),f9h(A_h,42,-1,[8218]),f9h(A_h,42,-1,[322]),f9h(A_h,42,-1,[60]),f9h(A_h,42,-1,[60]),f9h(A_h,42,-1,[10918]),f9h(A_h,42,-1,[10873]),f9h(A_h,42,-1,[8918]),f9h(A_h,42,-1,[8907]),f9h(A_h,42,-1,[8905]),f9h(A_h,42,-1,[10614]),f9h(A_h,42,-1,[10875]),f9h(A_h,42,-1,[10646]),f9h(A_h,42,-1,[9667]),f9h(A_h,42,-1,[8884]),f9h(A_h,42,-1,[9666]),f9h(A_h,42,-1,[10570]),f9h(A_h,42,-1,[10598]),f9h(A_h,42,-1,[8762]),f9h(A_h,42,-1,[175]),f9h(A_h,42,-1,[175]),f9h(A_h,42,-1,[9794]),f9h(A_h,42,-1,[10016]),f9h(A_h,42,-1,[10016]),f9h(A_h,42,-1,[8614]),f9h(A_h,42,-1,[8614]),f9h(A_h,42,-1,[8615]),f9h(A_h,42,-1,[8612]),f9h(A_h,42,-1,[8613]),f9h(A_h,42,-1,[9646]),f9h(A_h,42,-1,[10793]),f9h(A_h,42,-1,[1084]),f9h(A_h,42,-1,[8212]),f9h(A_h,42,-1,[8737]),f9h(A_h,42,-1,[55349,56618]),f9h(A_h,42,-1,[8487]),f9h(A_h,42,-1,[181]),f9h(A_h,42,-1,[181]),f9h(A_h,42,-1,[8739]),f9h(A_h,42,-1,[42]),f9h(A_h,42,-1,[10992]),f9h(A_h,42,-1,[183]),f9h(A_h,42,-1,[183]),f9h(A_h,42,-1,[8722]),f9h(A_h,42,-1,[8863]),f9h(A_h,42,-1,[8760]),f9h(A_h,42,-1,[10794]),f9h(A_h,42,-1,[10971]),f9h(A_h,42,-1,[8230]),f9h(A_h,42,-1,[8723]),f9h(A_h,42,-1,[8871]),f9h(A_h,42,-1,[55349,56670]),f9h(A_h,42,-1,[8723]),f9h(A_h,42,-1,[55349,56514]),f9h(A_h,42,-1,[8766]),f9h(A_h,42,-1,[956]),f9h(A_h,42,-1,[8888]),f9h(A_h,42,-1,[8888]),f9h(A_h,42,-1,[8653]),f9h(A_h,42,-1,[8654]),f9h(A_h,42,-1,[8655]),f9h(A_h,42,-1,[8879]),f9h(A_h,42,-1,[8878]),f9h(A_h,42,-1,[8711]),f9h(A_h,42,-1,[324]),f9h(A_h,42,-1,[8777]),f9h(A_h,42,-1,[329]),f9h(A_h,42,-1,[8777]),f9h(A_h,42,-1,[9838]),f9h(A_h,42,-1,[9838]),f9h(A_h,42,-1,[8469]),f9h(A_h,42,-1,[160]),f9h(A_h,42,-1,[160]),f9h(A_h,42,-1,[10819]),f9h(A_h,42,-1,[328]),f9h(A_h,42,-1,[326]),f9h(A_h,42,-1,[8775]),f9h(A_h,42,-1,[10818]),f9h(A_h,42,-1,[1085]),f9h(A_h,42,-1,[8211]),f9h(A_h,42,-1,[8800]),f9h(A_h,42,-1,[8663]),f9h(A_h,42,-1,[10532]),f9h(A_h,42,-1,[8599]),f9h(A_h,42,-1,[8599]),f9h(A_h,42,-1,[8802]),f9h(A_h,42,-1,[10536]),f9h(A_h,42,-1,[8708]),f9h(A_h,42,-1,[8708]),f9h(A_h,42,-1,[55349,56619]),f9h(A_h,42,-1,[8817]),f9h(A_h,42,-1,[8817]),f9h(A_h,42,-1,[8821]),f9h(A_h,42,-1,[8815]),f9h(A_h,42,-1,[8815]),f9h(A_h,42,-1,[8654]),f9h(A_h,42,-1,[8622]),f9h(A_h,42,-1,[10994]),f9h(A_h,42,-1,[8715]),f9h(A_h,42,-1,[8956]),f9h(A_h,42,-1,[8954]),f9h(A_h,42,-1,[8715]),f9h(A_h,42,-1,[1114]),f9h(A_h,42,-1,[8653]),f9h(A_h,42,-1,[8602]),f9h(A_h,42,-1,[8229]),f9h(A_h,42,-1,[8816]),f9h(A_h,42,-1,[8602]),f9h(A_h,42,-1,[8622]),f9h(A_h,42,-1,[8816]),f9h(A_h,42,-1,[8814]),f9h(A_h,42,-1,[8820]),f9h(A_h,42,-1,[8814]),f9h(A_h,42,-1,[8938]),f9h(A_h,42,-1,[8940]),f9h(A_h,42,-1,[8740]),f9h(A_h,42,-1,[55349,56671]),f9h(A_h,42,-1,[172]),f9h(A_h,42,-1,[172]),f9h(A_h,42,-1,[8713]),f9h(A_h,42,-1,[8713]),f9h(A_h,42,-1,[8951]),f9h(A_h,42,-1,[8950]),f9h(A_h,42,-1,[8716]),f9h(A_h,42,-1,[8716]),f9h(A_h,42,-1,[8958]),f9h(A_h,42,-1,[8957]),f9h(A_h,42,-1,[8742]),f9h(A_h,42,-1,[8742]),f9h(A_h,42,-1,[10772]),f9h(A_h,42,-1,[8832]),f9h(A_h,42,-1,[8928]),f9h(A_h,42,-1,[8832]),f9h(A_h,42,-1,[8655]),f9h(A_h,42,-1,[8603]),f9h(A_h,42,-1,[8603]),f9h(A_h,42,-1,[8939]),f9h(A_h,42,-1,[8941]),f9h(A_h,42,-1,[8833]),f9h(A_h,42,-1,[8929]),f9h(A_h,42,-1,[55349,56515]),f9h(A_h,42,-1,[8740]),f9h(A_h,42,-1,[8742]),f9h(A_h,42,-1,[8769]),f9h(A_h,42,-1,[8772]),f9h(A_h,42,-1,[8772]),f9h(A_h,42,-1,[8740]),f9h(A_h,42,-1,[8742]),f9h(A_h,42,-1,[8930]),f9h(A_h,42,-1,[8931]),f9h(A_h,42,-1,[8836]),f9h(A_h,42,-1,[8840]),f9h(A_h,42,-1,[8840]),f9h(A_h,42,-1,[8833]),f9h(A_h,42,-1,[8837]),f9h(A_h,42,-1,[8841]),f9h(A_h,42,-1,[8841]),f9h(A_h,42,-1,[8825]),f9h(A_h,42,-1,[241]),f9h(A_h,42,-1,[241]),f9h(A_h,42,-1,[8824]),f9h(A_h,42,-1,[8938]),f9h(A_h,42,-1,[8940]),f9h(A_h,42,-1,[8939]),f9h(A_h,42,-1,[8941]),f9h(A_h,42,-1,[957]),f9h(A_h,42,-1,[35]),f9h(A_h,42,-1,[8470]),f9h(A_h,42,-1,[8199]),f9h(A_h,42,-1,[8877]),f9h(A_h,42,-1,[10500]),f9h(A_h,42,-1,[8876]),f9h(A_h,42,-1,[10718]),f9h(A_h,42,-1,[10498]),f9h(A_h,42,-1,[10499]),f9h(A_h,42,-1,[8662]),f9h(A_h,42,-1,[10531]),f9h(A_h,42,-1,[8598]),f9h(A_h,42,-1,[8598]),f9h(A_h,42,-1,[10535]),f9h(A_h,42,-1,[9416]),f9h(A_h,42,-1,[243]),f9h(A_h,42,-1,[243]),f9h(A_h,42,-1,[8859]),f9h(A_h,42,-1,[8858]),f9h(A_h,42,-1,[244]),f9h(A_h,42,-1,[244]),f9h(A_h,42,-1,[1086]),f9h(A_h,42,-1,[8861]),f9h(A_h,42,-1,[337]),f9h(A_h,42,-1,[10808]),f9h(A_h,42,-1,[8857]),f9h(A_h,42,-1,[10684]),f9h(A_h,42,-1,[339]),f9h(A_h,42,-1,[10687]),f9h(A_h,42,-1,[55349,56620]),f9h(A_h,42,-1,[731]),f9h(A_h,42,-1,[242]),f9h(A_h,42,-1,[242]),f9h(A_h,42,-1,[10689]),f9h(A_h,42,-1,[10677]),f9h(A_h,42,-1,[8486]),f9h(A_h,42,-1,[8750]),f9h(A_h,42,-1,[8634]),f9h(A_h,42,-1,[10686]),f9h(A_h,42,-1,[10683]),f9h(A_h,42,-1,[8254]),f9h(A_h,42,-1,[10688]),f9h(A_h,42,-1,[333]),f9h(A_h,42,-1,[969]),f9h(A_h,42,-1,[959]),f9h(A_h,42,-1,[10678]),f9h(A_h,42,-1,[8854]),f9h(A_h,42,-1,[55349,56672]),f9h(A_h,42,-1,[10679]),f9h(A_h,42,-1,[10681]),f9h(A_h,42,-1,[8853]),f9h(A_h,42,-1,[8744]),f9h(A_h,42,-1,[8635]),f9h(A_h,42,-1,[10845]),f9h(A_h,42,-1,[8500]),f9h(A_h,42,-1,[8500]),f9h(A_h,42,-1,[170]),f9h(A_h,42,-1,[170]),f9h(A_h,42,-1,[186]),f9h(A_h,42,-1,[186]),f9h(A_h,42,-1,[8886]),f9h(A_h,42,-1,[10838]),f9h(A_h,42,-1,[10839]),f9h(A_h,42,-1,[10843]),f9h(A_h,42,-1,[8500]),f9h(A_h,42,-1,[248]),f9h(A_h,42,-1,[248]),f9h(A_h,42,-1,[8856]),f9h(A_h,42,-1,[245]),f9h(A_h,42,-1,[245]),f9h(A_h,42,-1,[8855]),f9h(A_h,42,-1,[10806]),f9h(A_h,42,-1,[246]),f9h(A_h,42,-1,[246]),f9h(A_h,42,-1,[9021]),f9h(A_h,42,-1,[8741]),f9h(A_h,42,-1,[182]),f9h(A_h,42,-1,[182]),f9h(A_h,42,-1,[8741]),f9h(A_h,42,-1,[10995]),f9h(A_h,42,-1,[11005]),f9h(A_h,42,-1,[8706]),f9h(A_h,42,-1,[1087]),f9h(A_h,42,-1,[37]),f9h(A_h,42,-1,[46]),f9h(A_h,42,-1,[8240]),f9h(A_h,42,-1,[8869]),f9h(A_h,42,-1,[8241]),f9h(A_h,42,-1,[55349,56621]),f9h(A_h,42,-1,[966]),f9h(A_h,42,-1,[966]),f9h(A_h,42,-1,[8499]),f9h(A_h,42,-1,[9742]),f9h(A_h,42,-1,[960]),f9h(A_h,42,-1,[8916]),f9h(A_h,42,-1,[982]),f9h(A_h,42,-1,[8463]),f9h(A_h,42,-1,[8462]),f9h(A_h,42,-1,[8463]),f9h(A_h,42,-1,[43]),f9h(A_h,42,-1,[10787]),f9h(A_h,42,-1,[8862]),f9h(A_h,42,-1,[10786]),f9h(A_h,42,-1,[8724]),f9h(A_h,42,-1,[10789]),f9h(A_h,42,-1,[10866]),f9h(A_h,42,-1,[177]),f9h(A_h,42,-1,[177]),f9h(A_h,42,-1,[10790]),f9h(A_h,42,-1,[10791]),f9h(A_h,42,-1,[177]),f9h(A_h,42,-1,[10773]),f9h(A_h,42,-1,[55349,56673]),f9h(A_h,42,-1,[163]),f9h(A_h,42,-1,[163]),f9h(A_h,42,-1,[8826]),f9h(A_h,42,-1,[10931]),f9h(A_h,42,-1,[10935]),f9h(A_h,42,-1,[8828]),f9h(A_h,42,-1,[10927]),f9h(A_h,42,-1,[8826]),f9h(A_h,42,-1,[10935]),f9h(A_h,42,-1,[8828]),f9h(A_h,42,-1,[10927]),f9h(A_h,42,-1,[10937]),f9h(A_h,42,-1,[10933]),f9h(A_h,42,-1,[8936]),f9h(A_h,42,-1,[8830]),f9h(A_h,42,-1,[8242]),f9h(A_h,42,-1,[8473]),f9h(A_h,42,-1,[10933]),f9h(A_h,42,-1,[10937]),f9h(A_h,42,-1,[8936]),f9h(A_h,42,-1,[8719]),f9h(A_h,42,-1,[9006]),f9h(A_h,42,-1,[8978]),f9h(A_h,42,-1,[8979]),f9h(A_h,42,-1,[8733]),f9h(A_h,42,-1,[8733]),f9h(A_h,42,-1,[8830]),f9h(A_h,42,-1,[8880]),f9h(A_h,42,-1,[55349,56517]),f9h(A_h,42,-1,[968]),f9h(A_h,42,-1,[8200]),f9h(A_h,42,-1,[55349,56622]),f9h(A_h,42,-1,[10764]),f9h(A_h,42,-1,[55349,56674]),f9h(A_h,42,-1,[8279]),f9h(A_h,42,-1,[55349,56518]),f9h(A_h,42,-1,[8461]),f9h(A_h,42,-1,[10774]),f9h(A_h,42,-1,[63]),f9h(A_h,42,-1,[8799]),f9h(A_h,42,-1,[34]),f9h(A_h,42,-1,[34]),f9h(A_h,42,-1,[8667]),f9h(A_h,42,-1,[8658]),f9h(A_h,42,-1,[10524]),f9h(A_h,42,-1,[10511]),f9h(A_h,42,-1,[10596]),f9h(A_h,42,-1,[10714]),f9h(A_h,42,-1,[341]),f9h(A_h,42,-1,[8730]),f9h(A_h,42,-1,[10675]),f9h(A_h,42,-1,[10217]),f9h(A_h,42,-1,[10642]),f9h(A_h,42,-1,[10661]),f9h(A_h,42,-1,[10217]),f9h(A_h,42,-1,[187]),f9h(A_h,42,-1,[187]),f9h(A_h,42,-1,[8594]),f9h(A_h,42,-1,[10613]),f9h(A_h,42,-1,[8677]),f9h(A_h,42,-1,[10528]),f9h(A_h,42,-1,[10547]),f9h(A_h,42,-1,[10526]),f9h(A_h,42,-1,[8618]),f9h(A_h,42,-1,[8620]),f9h(A_h,42,-1,[10565]),f9h(A_h,42,-1,[10612]),f9h(A_h,42,-1,[8611]),f9h(A_h,42,-1,[8605]),f9h(A_h,42,-1,[10522]),f9h(A_h,42,-1,[8758]),f9h(A_h,42,-1,[8474]),f9h(A_h,42,-1,[10509]),f9h(A_h,42,-1,[10099]),f9h(A_h,42,-1,[125]),f9h(A_h,42,-1,[93]),f9h(A_h,42,-1,[10636]),f9h(A_h,42,-1,[10638]),f9h(A_h,42,-1,[10640]),f9h(A_h,42,-1,[345]),f9h(A_h,42,-1,[343]),f9h(A_h,42,-1,[8969]),f9h(A_h,42,-1,[125]),f9h(A_h,42,-1,[1088]),f9h(A_h,42,-1,[10551]),f9h(A_h,42,-1,[10601]),f9h(A_h,42,-1,[8221]),f9h(A_h,42,-1,[8221]),f9h(A_h,42,-1,[8627]),f9h(A_h,42,-1,[8476]),f9h(A_h,42,-1,[8475]),f9h(A_h,42,-1,[8476]),f9h(A_h,42,-1,[8477]),f9h(A_h,42,-1,[9645]),f9h(A_h,42,-1,[174]),f9h(A_h,42,-1,[174]),f9h(A_h,42,-1,[10621]),f9h(A_h,42,-1,[8971]),f9h(A_h,42,-1,[55349,56623]),f9h(A_h,42,-1,[8641]),f9h(A_h,42,-1,[8640]),f9h(A_h,42,-1,[10604]),f9h(A_h,42,-1,[961]),f9h(A_h,42,-1,[1009]),f9h(A_h,42,-1,[8594]),f9h(A_h,42,-1,[8611]),f9h(A_h,42,-1,[8641]),f9h(A_h,42,-1,[8640]),f9h(A_h,42,-1,[8644]),f9h(A_h,42,-1,[8652]),f9h(A_h,42,-1,[8649]),f9h(A_h,42,-1,[8605]),f9h(A_h,42,-1,[8908]),f9h(A_h,42,-1,[730]),f9h(A_h,42,-1,[8787]),f9h(A_h,42,-1,[8644]),f9h(A_h,42,-1,[8652]),f9h(A_h,42,-1,[8207]),f9h(A_h,42,-1,[9137]),f9h(A_h,42,-1,[9137]),f9h(A_h,42,-1,[10990]),f9h(A_h,42,-1,[10221]),f9h(A_h,42,-1,[8702]),f9h(A_h,42,-1,[10215]),f9h(A_h,42,-1,[10630]),f9h(A_h,42,-1,[55349,56675]),f9h(A_h,42,-1,[10798]),f9h(A_h,42,-1,[10805]),f9h(A_h,42,-1,[41]),f9h(A_h,42,-1,[10644]),f9h(A_h,42,-1,[10770]),f9h(A_h,42,-1,[8649]),f9h(A_h,42,-1,[8250]),f9h(A_h,42,-1,[55349,56519]),f9h(A_h,42,-1,[8625]),f9h(A_h,42,-1,[93]),f9h(A_h,42,-1,[8217]),f9h(A_h,42,-1,[8217]),f9h(A_h,42,-1,[8908]),f9h(A_h,42,-1,[8906]),f9h(A_h,42,-1,[9657]),f9h(A_h,42,-1,[8885]),f9h(A_h,42,-1,[9656]),f9h(A_h,42,-1,[10702]),f9h(A_h,42,-1,[10600]),f9h(A_h,42,-1,[8478]),f9h(A_h,42,-1,[347]),f9h(A_h,42,-1,[8218]),f9h(A_h,42,-1,[8827]),f9h(A_h,42,-1,[10932]),f9h(A_h,42,-1,[10936]),f9h(A_h,42,-1,[353]),f9h(A_h,42,-1,[8829]),f9h(A_h,42,-1,[10928]),f9h(A_h,42,-1,[351]),f9h(A_h,42,-1,[349]),f9h(A_h,42,-1,[10934]),f9h(A_h,42,-1,[10938]),f9h(A_h,42,-1,[8937]),f9h(A_h,42,-1,[10771]),f9h(A_h,42,-1,[8831]),f9h(A_h,42,-1,[1089]),f9h(A_h,42,-1,[8901]),f9h(A_h,42,-1,[8865]),f9h(A_h,42,-1,[10854]),f9h(A_h,42,-1,[8664]),f9h(A_h,42,-1,[10533]),f9h(A_h,42,-1,[8600]),f9h(A_h,42,-1,[8600]),f9h(A_h,42,-1,[167]),f9h(A_h,42,-1,[167]),f9h(A_h,42,-1,[59]),f9h(A_h,42,-1,[10537]),f9h(A_h,42,-1,[8726]),f9h(A_h,42,-1,[8726]),f9h(A_h,42,-1,[10038]),f9h(A_h,42,-1,[55349,56624]),f9h(A_h,42,-1,[8994]),f9h(A_h,42,-1,[9839]),f9h(A_h,42,-1,[1097]),f9h(A_h,42,-1,[1096]),f9h(A_h,42,-1,[8739]),f9h(A_h,42,-1,[8741]),f9h(A_h,42,-1,[173]),f9h(A_h,42,-1,[173]),f9h(A_h,42,-1,[963]),f9h(A_h,42,-1,[962]),f9h(A_h,42,-1,[962]),f9h(A_h,42,-1,[8764]),f9h(A_h,42,-1,[10858]),f9h(A_h,42,-1,[8771]),f9h(A_h,42,-1,[8771]),f9h(A_h,42,-1,[10910]),f9h(A_h,42,-1,[10912]),f9h(A_h,42,-1,[10909]),f9h(A_h,42,-1,[10911]),f9h(A_h,42,-1,[8774]),f9h(A_h,42,-1,[10788]),f9h(A_h,42,-1,[10610]),f9h(A_h,42,-1,[8592]),f9h(A_h,42,-1,[8726]),f9h(A_h,42,-1,[10803]),f9h(A_h,42,-1,[10724]),f9h(A_h,42,-1,[8739]),f9h(A_h,42,-1,[8995]),f9h(A_h,42,-1,[10922]),f9h(A_h,42,-1,[10924]),f9h(A_h,42,-1,[1100]),f9h(A_h,42,-1,[47]),f9h(A_h,42,-1,[10692]),f9h(A_h,42,-1,[9023]),f9h(A_h,42,-1,[55349,56676]),f9h(A_h,42,-1,[9824]),f9h(A_h,42,-1,[9824]),f9h(A_h,42,-1,[8741]),f9h(A_h,42,-1,[8851]),f9h(A_h,42,-1,[8852]),f9h(A_h,42,-1,[8847]),f9h(A_h,42,-1,[8849]),f9h(A_h,42,-1,[8847]),f9h(A_h,42,-1,[8849]),f9h(A_h,42,-1,[8848]),f9h(A_h,42,-1,[8850]),f9h(A_h,42,-1,[8848]),f9h(A_h,42,-1,[8850]),f9h(A_h,42,-1,[9633]),f9h(A_h,42,-1,[9633]),f9h(A_h,42,-1,[9642]),f9h(A_h,42,-1,[9642]),f9h(A_h,42,-1,[8594]),f9h(A_h,42,-1,[55349,56520]),f9h(A_h,42,-1,[8726]),f9h(A_h,42,-1,[8995]),f9h(A_h,42,-1,[8902]),f9h(A_h,42,-1,[9734]),f9h(A_h,42,-1,[9733]),f9h(A_h,42,-1,[1013]),f9h(A_h,42,-1,[981]),f9h(A_h,42,-1,[175]),f9h(A_h,42,-1,[8834]),f9h(A_h,42,-1,[10949]),f9h(A_h,42,-1,[10941]),f9h(A_h,42,-1,[8838]),f9h(A_h,42,-1,[10947]),f9h(A_h,42,-1,[10945]),f9h(A_h,42,-1,[10955]),f9h(A_h,42,-1,[8842]),f9h(A_h,42,-1,[10943]),f9h(A_h,42,-1,[10617]),f9h(A_h,42,-1,[8834]),f9h(A_h,42,-1,[8838]),f9h(A_h,42,-1,[10949]),f9h(A_h,42,-1,[8842]),f9h(A_h,42,-1,[10955]),f9h(A_h,42,-1,[10951]),f9h(A_h,42,-1,[10965]),f9h(A_h,42,-1,[10963]),f9h(A_h,42,-1,[8827]),f9h(A_h,42,-1,[10936]),f9h(A_h,42,-1,[8829]),f9h(A_h,42,-1,[10928]),f9h(A_h,42,-1,[10938]),f9h(A_h,42,-1,[10934]),f9h(A_h,42,-1,[8937]),f9h(A_h,42,-1,[8831]),f9h(A_h,42,-1,[8721]),f9h(A_h,42,-1,[9834]),f9h(A_h,42,-1,[185]),f9h(A_h,42,-1,[185]),f9h(A_h,42,-1,[178]),f9h(A_h,42,-1,[178]),f9h(A_h,42,-1,[179]),f9h(A_h,42,-1,[179]),f9h(A_h,42,-1,[8835]),f9h(A_h,42,-1,[10950]),f9h(A_h,42,-1,[10942]),f9h(A_h,42,-1,[10968]),f9h(A_h,42,-1,[8839]),f9h(A_h,42,-1,[10948]),f9h(A_h,42,-1,[10967]),f9h(A_h,42,-1,[10619]),f9h(A_h,42,-1,[10946]),f9h(A_h,42,-1,[10956]),f9h(A_h,42,-1,[8843]),f9h(A_h,42,-1,[10944]),f9h(A_h,42,-1,[8835]),f9h(A_h,42,-1,[8839]),f9h(A_h,42,-1,[10950]),f9h(A_h,42,-1,[8843]),f9h(A_h,42,-1,[10956]),f9h(A_h,42,-1,[10952]),f9h(A_h,42,-1,[10964]),f9h(A_h,42,-1,[10966]),f9h(A_h,42,-1,[8665]),f9h(A_h,42,-1,[10534]),f9h(A_h,42,-1,[8601]),f9h(A_h,42,-1,[8601]),f9h(A_h,42,-1,[10538]),f9h(A_h,42,-1,[223]),f9h(A_h,42,-1,[223]),f9h(A_h,42,-1,[8982]),f9h(A_h,42,-1,[964]),f9h(A_h,42,-1,[9140]),f9h(A_h,42,-1,[357]),f9h(A_h,42,-1,[355]),f9h(A_h,42,-1,[1090]),f9h(A_h,42,-1,[8411]),f9h(A_h,42,-1,[8981]),f9h(A_h,42,-1,[55349,56625]),f9h(A_h,42,-1,[8756]),f9h(A_h,42,-1,[8756]),f9h(A_h,42,-1,[952]),f9h(A_h,42,-1,[977]),f9h(A_h,42,-1,[977]),f9h(A_h,42,-1,[8776]),f9h(A_h,42,-1,[8764]),f9h(A_h,42,-1,[8201]),f9h(A_h,42,-1,[8776]),f9h(A_h,42,-1,[8764]),f9h(A_h,42,-1,[254]),f9h(A_h,42,-1,[254]),f9h(A_h,42,-1,[732]),f9h(A_h,42,-1,[215]),f9h(A_h,42,-1,[215]),f9h(A_h,42,-1,[8864]),f9h(A_h,42,-1,[10801]),f9h(A_h,42,-1,[10800]),f9h(A_h,42,-1,[8749]),f9h(A_h,42,-1,[10536]),f9h(A_h,42,-1,[8868]),f9h(A_h,42,-1,[9014]),f9h(A_h,42,-1,[10993]),f9h(A_h,42,-1,[55349,56677]),f9h(A_h,42,-1,[10970]),f9h(A_h,42,-1,[10537]),f9h(A_h,42,-1,[8244]),f9h(A_h,42,-1,[8482]),f9h(A_h,42,-1,[9653]),f9h(A_h,42,-1,[9663]),f9h(A_h,42,-1,[9667]),f9h(A_h,42,-1,[8884]),f9h(A_h,42,-1,[8796]),f9h(A_h,42,-1,[9657]),f9h(A_h,42,-1,[8885]),f9h(A_h,42,-1,[9708]),f9h(A_h,42,-1,[8796]),f9h(A_h,42,-1,[10810]),f9h(A_h,42,-1,[10809]),f9h(A_h,42,-1,[10701]),f9h(A_h,42,-1,[10811]),f9h(A_h,42,-1,[9186]),f9h(A_h,42,-1,[55349,56521]),f9h(A_h,42,-1,[1094]),f9h(A_h,42,-1,[1115]),f9h(A_h,42,-1,[359]),f9h(A_h,42,-1,[8812]),f9h(A_h,42,-1,[8606]),f9h(A_h,42,-1,[8608]),f9h(A_h,42,-1,[8657]),f9h(A_h,42,-1,[10595]),f9h(A_h,42,-1,[250]),f9h(A_h,42,-1,[250]),f9h(A_h,42,-1,[8593]),f9h(A_h,42,-1,[1118]),f9h(A_h,42,-1,[365]),f9h(A_h,42,-1,[251]),f9h(A_h,42,-1,[251]),f9h(A_h,42,-1,[1091]),f9h(A_h,42,-1,[8645]),f9h(A_h,42,-1,[369]),f9h(A_h,42,-1,[10606]),f9h(A_h,42,-1,[10622]),f9h(A_h,42,-1,[55349,56626]),f9h(A_h,42,-1,[249]),f9h(A_h,42,-1,[249]),f9h(A_h,42,-1,[8639]),f9h(A_h,42,-1,[8638]),f9h(A_h,42,-1,[9600]),f9h(A_h,42,-1,[8988]),f9h(A_h,42,-1,[8988]),f9h(A_h,42,-1,[8975]),f9h(A_h,42,-1,[9720]),f9h(A_h,42,-1,[363]),f9h(A_h,42,-1,[168]),f9h(A_h,42,-1,[168]),f9h(A_h,42,-1,[371]),f9h(A_h,42,-1,[55349,56678]),f9h(A_h,42,-1,[8593]),f9h(A_h,42,-1,[8597]),f9h(A_h,42,-1,[8639]),f9h(A_h,42,-1,[8638]),f9h(A_h,42,-1,[8846]),f9h(A_h,42,-1,[965]),f9h(A_h,42,-1,[978]),f9h(A_h,42,-1,[965]),f9h(A_h,42,-1,[8648]),f9h(A_h,42,-1,[8989]),f9h(A_h,42,-1,[8989]),f9h(A_h,42,-1,[8974]),f9h(A_h,42,-1,[367]),f9h(A_h,42,-1,[9721]),f9h(A_h,42,-1,[55349,56522]),f9h(A_h,42,-1,[8944]),f9h(A_h,42,-1,[361]),f9h(A_h,42,-1,[9653]),f9h(A_h,42,-1,[9652]),f9h(A_h,42,-1,[8648]),f9h(A_h,42,-1,[252]),f9h(A_h,42,-1,[252]),f9h(A_h,42,-1,[10663]),f9h(A_h,42,-1,[8661]),f9h(A_h,42,-1,[10984]),f9h(A_h,42,-1,[10985]),f9h(A_h,42,-1,[8872]),f9h(A_h,42,-1,[10652]),f9h(A_h,42,-1,[949]),f9h(A_h,42,-1,[1008]),f9h(A_h,42,-1,[8709]),f9h(A_h,42,-1,[966]),f9h(A_h,42,-1,[982]),f9h(A_h,42,-1,[8733]),f9h(A_h,42,-1,[8597]),f9h(A_h,42,-1,[1009]),f9h(A_h,42,-1,[962]),f9h(A_h,42,-1,[977]),f9h(A_h,42,-1,[8882]),f9h(A_h,42,-1,[8883]),f9h(A_h,42,-1,[1074]),f9h(A_h,42,-1,[8866]),f9h(A_h,42,-1,[8744]),f9h(A_h,42,-1,[8891]),f9h(A_h,42,-1,[8794]),f9h(A_h,42,-1,[8942]),f9h(A_h,42,-1,[124]),f9h(A_h,42,-1,[124]),f9h(A_h,42,-1,[55349,56627]),f9h(A_h,42,-1,[8882]),f9h(A_h,42,-1,[55349,56679]),f9h(A_h,42,-1,[8733]),f9h(A_h,42,-1,[8883]),f9h(A_h,42,-1,[55349,56523]),f9h(A_h,42,-1,[10650]),f9h(A_h,42,-1,[373]),f9h(A_h,42,-1,[10847]),f9h(A_h,42,-1,[8743]),f9h(A_h,42,-1,[8793]),f9h(A_h,42,-1,[8472]),f9h(A_h,42,-1,[55349,56628]),f9h(A_h,42,-1,[55349,56680]),f9h(A_h,42,-1,[8472]),f9h(A_h,42,-1,[8768]),f9h(A_h,42,-1,[8768]),f9h(A_h,42,-1,[55349,56524]),f9h(A_h,42,-1,[8898]),f9h(A_h,42,-1,[9711]),f9h(A_h,42,-1,[8899]),f9h(A_h,42,-1,[9661]),f9h(A_h,42,-1,[55349,56629]),f9h(A_h,42,-1,[10234]),f9h(A_h,42,-1,[10231]),f9h(A_h,42,-1,[958]),f9h(A_h,42,-1,[10232]),f9h(A_h,42,-1,[10229]),f9h(A_h,42,-1,[10236]),f9h(A_h,42,-1,[8955]),f9h(A_h,42,-1,[10752]),f9h(A_h,42,-1,[55349,56681]),f9h(A_h,42,-1,[10753]),f9h(A_h,42,-1,[10754]),f9h(A_h,42,-1,[10233]),f9h(A_h,42,-1,[10230]),f9h(A_h,42,-1,[55349,56525]),f9h(A_h,42,-1,[10758]),f9h(A_h,42,-1,[10756]),f9h(A_h,42,-1,[9651]),f9h(A_h,42,-1,[8897]),f9h(A_h,42,-1,[8896]),f9h(A_h,42,-1,[253]),f9h(A_h,42,-1,[253]),f9h(A_h,42,-1,[1103]),f9h(A_h,42,-1,[375]),f9h(A_h,42,-1,[1099]),f9h(A_h,42,-1,[165]),f9h(A_h,42,-1,[165]),f9h(A_h,42,-1,[55349,56630]),f9h(A_h,42,-1,[1111]),f9h(A_h,42,-1,[55349,56682]),f9h(A_h,42,-1,[55349,56526]),f9h(A_h,42,-1,[1102]),f9h(A_h,42,-1,[255]),f9h(A_h,42,-1,[255]),f9h(A_h,42,-1,[378]),f9h(A_h,42,-1,[382]),f9h(A_h,42,-1,[1079]),f9h(A_h,42,-1,[380]),f9h(A_h,42,-1,[8488]),f9h(A_h,42,-1,[950]),f9h(A_h,42,-1,[55349,56631]),f9h(A_h,42,-1,[1078]),f9h(A_h,42,-1,[8669]),f9h(A_h,42,-1,[55349,56683]),f9h(A_h,42,-1,[55349,56527]),f9h(A_h,42,-1,[8205]),f9h(A_h,42,-1,[8204])]);uVi=f9h(cai,52,12,[f9h(A_h,42,-1,[8364]),f9h(A_h,42,-1,[65533]),f9h(A_h,42,-1,[8218]),f9h(A_h,42,-1,[402]),f9h(A_h,42,-1,[8222]),f9h(A_h,42,-1,[8230]),f9h(A_h,42,-1,[8224]),f9h(A_h,42,-1,[8225]),f9h(A_h,42,-1,[710]),f9h(A_h,42,-1,[8240]),f9h(A_h,42,-1,[352]),f9h(A_h,42,-1,[8249]),f9h(A_h,42,-1,[338]),f9h(A_h,42,-1,[65533]),f9h(A_h,42,-1,[381]),f9h(A_h,42,-1,[65533]),f9h(A_h,42,-1,[65533]),f9h(A_h,42,-1,[8216]),f9h(A_h,42,-1,[8217]),f9h(A_h,42,-1,[8220]),f9h(A_h,42,-1,[8221]),f9h(A_h,42,-1,[8226]),f9h(A_h,42,-1,[8211]),f9h(A_h,42,-1,[8212]),f9h(A_h,42,-1,[732]),f9h(A_h,42,-1,[8482]),f9h(A_h,42,-1,[353]),f9h(A_h,42,-1,[8250]),f9h(A_h,42,-1,[339]),f9h(A_h,42,-1,[65533]),f9h(A_h,42,-1,[382]),f9h(A_h,42,-1,[376])])} +var sVi,tVi,uVi;function xVi(d,a,e,c){var b;if(d.length!=c){return false}for(b=0;b<c;++b){if(d.charCodeAt(b)!=a[e+b]){return false}}return true} +function yVi(d,e){var a,b,c;if(e==null){return false}if(d.length!=e.length){return false}for(c=0;c<d.length;++c){a=d.charCodeAt(c);b=e.charCodeAt(c);if(b>=65&&b<=90){b+=32}if(a!=b){return false}}return true} +function zVi(d,e){var a,b,c;if(e==null){return false}if(d.length>e.length){return false}for(c=0;c<d.length;++c){a=d.charCodeAt(c);b=e.charCodeAt(c);if(b>=65&&b<=90){b+=32}if(a!=b){return false}}return true} +function CVi(i,b,e,c,d,g,h,a,f){i.b=b;i.c=c;i.f=f;i.e=e;i.d=d;i.h=g;i.i=h;i.a=a;i.g=1;return i} +function DVi(d,c,a,b){d.b=a.d;d.c=a.e;d.f=a.e;d.e=c;d.d=b;d.h=a.f;d.i=a.g;d.a=a.c;d.g=1;return d} +function EVi(e,c,a,b,d){e.b=a.d;e.c=a.e;e.f=d;e.e=c;e.d=b;e.h=a.f;e.i=a.g;e.a=a.c;e.g=1;return e} +function FVi(f,c,a,b,d,e){f.b=a.d;f.c=a.e;f.f=d;f.e=c;f.d=b;f.h=e;f.i=false;f.a=false;f.g=1;return f} +function bWi(){return u_h} +function cWi(){return this.c} +function AVi(){} +_=AVi.prototype=new xdi();_.gC=bWi;_.tS=cWi;_.tI=38;_.a=false;_.b=0;_.c=null;_.d=null;_.e=null;_.f=null;_.g=1;_.h=false;_.i=false;function p0i(d,a,c,b){d.a=a;d.c=c;d.b=b;return d} +function q0i(b,a){if(a&&b.a[b.c]==10){++b.c}} +function t0i(){return x_h} +function o0i(){} +_=o0i.prototype=new xdi();_.gC=t0i;_.tI=39;_.a=null;_.b=0;_.c=0;function y0i(b,a){b.b=a;b.a=null;return b} +function A0i(b){var a;a=b.b;if(a==null&&!!b.a){return b.a.b}else{return a}} +function B0i(){return y_h} +function C0i(){return A0i(this)} +function D0i(){if(this.a){return agi(this.a)}else{return agi(this)}} +function x0i(){} +_=x0i.prototype=new Aci();_.gC=B0i;_.Bb=C0i;_.tS=D0i;_.tI=40;_.a=null;function F0i(c,b,a){c.b=b;c.a=null;if(a){mUi(a);lUi(a)}else{}return c} +function a1i(d,c,b,a){d.b=c;d.a=a;if(b){mUi(b);lUi(b)}else{}return d} +function c1i(){return z_h} +function E0i(){} +_=E0i.prototype=new x0i();_.gC=c1i;_.tI=41;function Cbi(){!!$stats&&$stats({moduleName:$moduleName,subSystem:iIh,evtGroup:jIh,millis:(new Date()).getTime(),type:kIh,className:lIh});$wnd.parseHtmlDocument=yni} +function gwtOnLoad(b,d,c){$moduleName=d;$moduleBase=c;if(b)try{Cbi()}catch(a){b(d)}else{Cbi()}} +function u0i(){} +var k$h=jci(mIh,nIh),b$h=jci(pIh,qIh),q$h=jci(mIh,rIh),g$h=jci(mIh,sIh),l$h=jci(mIh,tIh),E9h=jci(uIh,vIh),F9h=jci(uIh,wIh),D_h=ici(xIh,yIh),f$h=jci(mIh,AIh),dai=ici(cNh,BIh),s$h=jci(CIh,DIh),A$h=jci(CIh,EIh),F$h=jci(CIh,FIh),a$h=jci(pIh,aJh),i$h=jci(mIh,bJh),c$h=jci(mIh,cJh),A_h=ici(cNh,dJh),e$h=jci(mIh,fJh),d$h=jci(mIh,gJh),h$h=jci(mIh,hJh),B_h=ici(cNh,iJh),j$h=jci(mIh,jJh),p$h=jci(mIh,aUh),m$h=jci(mIh,kJh),n$h=jci(mIh,lJh),o$h=jci(mIh,mJh),r$h=jci(mIh,nJh),C_h=ici(xIh,oJh),C$h=jci(CIh,qJh),x$h=jci(CIh,rJh),E$h=jci(CIh,sJh),u$h=jci(CIh,tJh),t$h=jci(CIh,uJh),B$h=jci(CIh,vJh),v$h=jci(CIh,wJh),w$h=jci(CIh,xJh),y$h=jci(CIh,yJh),z$h=jci(CIh,zJh),D$h=jci(CIh,BJh),a_h=jci(CIh,CJh),b_h=jci(CIh,DJh),e_h=jci(CIh,EJh),c_h=jci(CIh,FJh),d_h=jci(CIh,aKh),f_h=jci(CIh,bKh),g_h=kci(cKh,dKh),h_h=kci(cKh,eKh),i_h=kci(cKh,hKh),w_h=jci(iKh,jKh),p_h=jci(iKh,kKh),k_h=jci(lKh,mKh),j_h=jci(lKh,nKh),m_h=jci(lKh,oKh),l_h=jci(lKh,pKh),n_h=jci(lKh,qKh),bai=ici(cNh,sKh),E_h=ici(tKh,uKh),o_h=jci(iKh,vKh),F_h=ici(tKh,wKh),q_h=jci(iKh,xKh),v_h=jci(iKh,yKh),r_h=jci(iKh,zKh),s_h=jci(iKh,AKh),t_h=jci(iKh,BKh),cai=ici(cNh,DKh),u_h=jci(iKh,EKh),aai=ici(tKh,FKh),x_h=jci(iKh,aLh),y_h=jci(bLh,cLh),z_h=jci(bLh,dLh);if (nu_validator_htmlparser_HtmlParser) { var __gwt_initHandlers = nu_validator_htmlparser_HtmlParser.__gwt_initHandlers; nu_validator_htmlparser_HtmlParser.onScriptLoad(gwtOnLoad);}})(); diff --git a/parser/htmlparser/tests/mochitest/parser_datreader.js b/parser/htmlparser/tests/mochitest/parser_datreader.js index f863d155b36..0a1fcd1c660 100644 --- a/parser/htmlparser/tests/mochitest/parser_datreader.js +++ b/parser/htmlparser/tests/mochitest/parser_datreader.js @@ -21,6 +21,7 @@ * * Contributor(s): * Robert Sayre <sayrer@gmail.com> + * Jonathan Griffin <jgriffin@mozilla.com> * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or @@ -58,6 +59,142 @@ function trimString(s) { return(s.replace(/^\s+/,'').replace(/\s+$/,'')); } +function getLastLine(str) { + var str_array = str.split("\n"); + let last_line = str_array[str_array.length - 1]; + return last_line; +} + +/** + * Produces a string containing the expected output of a + * JSON-formatted test, by running the "output" object + * of the test through a serializer. + * + * @param buf string buffer containing the serialized output + * @param obj the object to serialize + * @param indent the current line indent + * @param mode the current node type being serialized, or -1 + * between nodes + */ +function dumpTree(buf, obj, indent, mode) { + var dumpMode = mode; + if (typeof(dumpMode) == "undefined") { + dumpMode = -1 + } + var buffer = buf; + if (typeof(obj) == "object" && (obj instanceof Array)) { + for each (var item in obj) { + [buffer, indent, dumpMode] = + dumpTree(buffer, item, indent, dumpMode); + } + dumpMode = -1; + } + else { + // Node.* constants are used here for convenience. + switch(obj) { + case "ParseError": + // no-op + break; + case "Character": + dumpMode = Node.TEXT_NODE; + break; + case "StartTag": + dumpMode = Node.ELEMENT_NODE; + break; + case "EndTag": + indent = indent.substring(2); + break; + case "Comment": + dumpMode = Node.COMMENT_NODE; + break; + case "DOCTYPE": + dumpMode = Node.DOCUMENT_TYPE_NODE; + break; + default: + switch(dumpMode) { + case Node.DOCUMENT_TYPE_NODE: + buffer += "<!DOCTYPE " + obj + ">\n<html>\n <head>\n <body>"; + indent += " " + dumpMode = -1; + break; + case Node.COMMENT_NODE: + if (buffer.length > 1) { + buffer += "\n"; + } + buffer += indent + "<!-- " + obj + " -->"; + dumpMode = -1; + break; + case Node.ATTRIBUTE_NODE: + is(typeof(obj), "object", "obj not an object!"); + indent += " "; + for (var key in obj) { + buffer += "\n" + indent + key + "=\"" + obj[key] + "\""; + } + dumpMode = -1; + break; + case Node.TEXT_NODE: + if (buffer.indexOf("<head>") == -1) { + buffer += "\n<html>\n <head>\n <body>"; + indent += " "; + } + // If this text is being appended to some earlier + // text, concatenate the two by chopping off the + // trailing quote before adding new string. + let last_line = trimString(getLastLine(buffer)); + if (last_line[0] == "\"" && + last_line[last_line.length - 1] == "\"") { + buffer = buffer.substring(0, buffer.length - 1); + } + else { + buffer += "\n" + indent + "\""; + } + buffer += obj + "\""; + break; + case Node.ELEMENT_NODE: + buffer += "\n" + indent + "<" + obj + ">"; + dumpMode = Node.ATTRIBUTE_NODE; + break; + default: + // no-op + break; + } + break; + } + } + return [buffer, indent, dumpMode]; +} + +/** + * Parses an individual testcase in decoded JSON form, + * as for tokenizer tests. + * + * @param An object containing a single testcase + */ +function parseJsonTestcase(testcase) { + // If the test begins with something that looks like the + // beginning of a doctype, then don't add a standard doctype, + // otherwise do. + if (testcase["input"].toLowerCase().indexOf("<!doc") == 0) { + var test_output = dumpTree( + "", + testcase["output"], + ""); + } else { + var test_output = dumpTree( + "<!DOCTYPE html>\n<html>\n <head>\n <body>", + testcase["output"], + " "); + } + // Add html, head and body elements now if they + // haven't been added already. + if (test_output[0].indexOf("<head>") == -1) { + test_output[0] += "\n<html>\n <head>\n <body>"; + } + return [testcase["input"], test_output[0], "", + testcase["description"], + JSON.stringify(testcase["output"])]; +} + /** * Parses an individual testcase into an array containing the input * string, a string representing the expected tree (DOM), and a list @@ -66,6 +203,7 @@ function trimString(s) { * @param A string containing a single testcase */ function parseTestcase(testcase) { + var documentFragmentTest = false; var lines = testcase.split("\n"); if (lines[0] != "#data") { log(lines); @@ -74,85 +212,39 @@ function parseTestcase(testcase) { var input = []; var output = []; var errors = []; + var description = undefined; + var expectedTokenizerOutput = undefined; var currentList = input; for each (var line in lines) { - if (line && !(startsWith(line, "#error") || - startsWith(line, "#document") || - startsWith(line, "#data"))) { + // allow blank lines in input + if ((line || currentList == input) && !(startsWith(line, "#errors") || + startsWith(line, "#document") || + startsWith(line, "#description") || + startsWith(line, "#expected") || + startsWith(line, "#data"))) { if (currentList == output && startsWith(line, "|")) { - currentList.push(line.substring(2)); + currentList.push(line.substring(2)); } else { - currentList.push(line); + currentList.push(line); } } else if (line == "#errors") { currentList = errors; } else if (line == "#document") { currentList = output; + } else if (line == "#document-fragment") { + documentFragmentTest = true; } - } + } + + // For #document-fragment tests, erase the output, so that the + // test is skipped in makeTestChecker()...there is no good way + // to run fragment tests without direct access to the parser. + if (documentFragmentTest) { + output = []; + } //logger.log(input.length, output.length, errors.length); - return [input.join("\n"), output.join("\n"), errors]; -} - -/** - * Sometimes the test output will depend on attribute order. - * This function fixes up that output to match, if possible. - * - * @param output The string generated from walking the DOM - * @param expected The expected output from the test case - */ -function reorderToMatchExpected(output, expected) { - var outputLines = output.split("\n"); - var expectedLines = expected.split("\n"); - - // if the line count is different, they don't match anyway - if (expectedLines.length != outputLines.length) - return output; - - var fixedOutput = []; - var outputAtts = {}; - var expectedAtts = []; - printAtts = function() { - for each (var expectedAtt in expectedAtts) { - if (outputAtts.hasOwnProperty(expectedAtt)) { - fixedOutput.push(outputAtts[expectedAtt]); - } else { - // found a missing attribute - return false; - } - } - outputAtts = {}; - expectedAtts = []; - return true; - } - - for (var i=0; i < outputLines.length; i++) { - var outputLine = outputLines[i]; - var expectedLine = expectedLines[i]; - var inAttrList = false; - if (isAttributeLine(outputLine)) { - // attribute mismatch, return original - if (!isAttributeLine(expectedLine)) { - return output; // mismatch, return original - } - // stick these in a dictionary - inAttrList = true; - outputAtts[attName(outputLine)] = outputLine; - expectedAtts.push(attName(expectedLine)); - } else { - if (inAttrList && !printAtts()) { - return output; // mismatch, return original - } - inAttrList = false; - fixedOutput.push(outputLine); - } - } - - if (inAttrList && !printAtts()) { - return output; // mismatch, return original - } - - return fixedOutput.join("\n"); + return [input.join("\n"), output.join("\n"), errors, description, + expectedTokenizerOutput]; } function attName(line) { @@ -165,65 +257,84 @@ function isAttributeLine(line) { return (!startsWith(str, "<") && !startsWith(str, "\"") && (str.indexOf("=\"") > 0)); } - -/** - * A generator function that accepts a list of strings. Each list - * member corresponds to the contents of a ".dat" file from the - * html5lib test suite. - * - * @param The list of strings - */ -function test_parser(testlist) { - for each (var testgroup in testlist) { - var tests = testgroup.split("#data\n"); - tests = ["#data\n" + test for each(test in tests) if (test)]; - for each (var test in tests) { - yield parseTestcase(test); - } - } -} - + /** * Transforms a DOM document to a string matching the format in * the test cases. * - * @param the DOM document + * @param doc the DOM document + * @param mode the mode of the current test runner */ -function docToTestOutput(doc) { +function docToTestOutput(doc, mode) { var walker = doc.createTreeWalker(doc, NodeFilter.SHOW_ALL, null, true); - return addLevels(walker, "", "").slice(0,-1); // remove the last newline + return addLevels(walker, "", "", mode).slice(0,-1); // remove last newline } -function addLevels(walker, buf, indent) { +function addLevels(walker, buf, indent, mode) { if(walker.firstChild()) { do { - buf += indent; switch (walker.currentNode.nodeType) { case Node.ELEMENT_NODE: - buf += "<" + walker.currentNode.tagName.toLowerCase() + ">"; + buf += indent + "<"; + // Prefix MathML element names with "math " to match + // the format of the expected output. + if (walker.currentNode.namespaceURI.toLowerCase(). + indexOf("math") != -1) { + buf += "math " + walker.currentNode.tagName.toLowerCase() + ">\n"; + } + else if (walker.currentNode.namespaceURI.toLowerCase(). + indexOf("svg") != -1) { + buf += "svg " + walker.currentNode.tagName + ">\n"; + } + else { + buf += walker.currentNode.tagName.toLowerCase() + ">\n"; + } if (walker.currentNode.hasAttributes()) { var attrs = walker.currentNode.attributes; for (var i=0; i < attrs.length; ++i) { - buf += "\n" + indent + " " + attrs[i].name + - "=\"" + attrs[i].value +"\""; + // Ignore the -moz-math-font-style attr, which + // Firefox automatically adds to every math element. + var attrname = attrs[i].name; + if (attrname != "-moz-math-font-style") { + buf += indent + " " + attrname + + "=\"" + attrs[i].value +"\"\n"; + } } } break; case Node.DOCUMENT_TYPE_NODE: - buf += "<!DOCTYPE " + walker.currentNode.name + ">"; + // Skip document type nodes for MODE_JSCOMPARE, as the nu.validator + // doesn't emit them. + if (mode != MODE_JSCOMPARE) { + buf += indent + "<!DOCTYPE " + walker.currentNode.name + ">\n"; + } break; case Node.COMMENT_NODE: - buf += "<!-- " + walker.currentNode.nodeValue + " -->"; + // Skip comment nodes for MODE_JSCOMPARE, as the nu.validator + // doesn't emit them. + if (mode != MODE_JSCOMPARE) { + buf += indent + "<!-- " + walker.currentNode.nodeValue + " -->\n"; + } break; case Node.TEXT_NODE: - buf += "\"" + walker.currentNode.nodeValue + "\""; + // If this text is being appended to some earlier + // text at the same indent level, concatenate the two by + // removing the trailing quote before adding new string. + let last_line = getLastLine( + buf.substring(0, buf.length - 1)); + if (last_line[indent.length] == "\"" && + last_line[last_line.length - 1] == "\"") { + buf = buf.substring(0, buf.length - 2); + } + else { + buf += indent + "\""; + } + buf += walker.currentNode.nodeValue + "\"\n"; break; } - buf += "\n"; - buf = addLevels(walker, buf, indent + " "); + buf = addLevels(walker, buf, indent + " ", mode); } while(walker.nextSibling()); walker.parentNode(); } return buf; } - diff --git a/parser/htmlparser/tests/mochitest/parser_web_testrunner.js b/parser/htmlparser/tests/mochitest/parser_web_testrunner.js index 5e410e281d9..37630e87279 100644 --- a/parser/htmlparser/tests/mochitest/parser_web_testrunner.js +++ b/parser/htmlparser/tests/mochitest/parser_web_testrunner.js @@ -21,6 +21,7 @@ * * Contributor(s): * Robert Sayre <sayrer@gmail.com> + * Jonathan Griffin <jgriffin@mozilla.com> * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or @@ -36,99 +37,383 @@ * * ***** END LICENSE BLOCK *****/ -/** - * Runs html5lib-formatted test cases in the browser. Requires SimpleTest. - * - * Define an array named parserDatFiles before loading this script, - * and it will load each of those dat files into an array, then run - * the test parser on each and run the tests by assigning the input - * data to an iframe's url. - * - * Your test document should have an element with id "display" and - * an iframe with id "testframe". - */ +const MODE_PARSER = 1; +const MODE_TOKENIZER = 2; +const MODE_JSCOMPARE = 3; -function writeErrorSummary(input, expected, got, isTodo) { +/********************************************************************** + * The ParserTestRunner class. This is the base class for running all + * supported types (tree construction, tokenizer, and js comparison) of + * html5lib-formatted HTML5 parser tests. Subclasses exist for tokenizer + * and js comparison tests, which override some methods of the base class. + * + * To use this with tree construction tests: + * Define an array named parserDatFiles which contain the names of the + * .dat files to be tested. Create an instance of the ParserTestRunner() + * class, and call the startTest() method on that instance. + * To use this with js comparison tests: + * Define an array named parserDatFiles which contain the names of the + * .dat files to be tested. Create an instance of the JSCompareTestRunner() + * class, and call the startTest() method on that instance. You must + * load the nu.validator JS parser before starting the test. + * To use this with tokenizer tests: + * Before loading this script, load a script containing a JSON object + * named tokenizerTests, which contains the tests to be run. Create + * an instance of the TokenizerTestRunner() class, and pass the filename + * of the script containing the tokenizerTests object to the constructor. + * Call the startTest() method on that instance to start the test. + * + * In all cases, your test document should have an element with id "display" + * and an iframe with id "testframe". + */ +function ParserTestRunner() { + this.mode = MODE_PARSER; +} + +/** + * For failed tests, write an error summary to the main document, in + * order to make it easier to work with them. + */ +ParserTestRunner.prototype.writeErrorSummary = function (input, + expected, got, isTodo, description, expectedTokenizerOutput) { if (!isTodo) { appendChildNodes($("display"), H2("Unexpected Failure:")); } appendChildNodes( $("display"), BR(), - SPAN("Matched: "), "" + (expected == got), - P("Input: " + input), - PRE("Expected:\n|" + expected +"|", "\n-\n", - "Output:\n|" + got + "|\n\n"), + SPAN("Matched: "), "" + (expected == got) + ); + if (typeof(description) != "undefined") { + appendChildNodes( + $("display"), P("Description: " + description) + ); + } + appendChildNodes( + $("display"), + PRE("Input: " + JSON.stringify(input)) + ); + if (typeof(expectedTokenizerOutput) != "undefined") { + appendChildNodes( + $("display"), P("Expected raw tokenizer output: " + + expectedTokenizerOutput) + ); + } + let expectedTitle = this.mode == MODE_JSCOMPARE ? + "JavaScript parser output:" : "Expected:"; + let outputTitle = this.mode == MODE_JSCOMPARE ? + "Gecko parser output:" : "Output:"; + appendChildNodes( + $("display"), + PRE(expectedTitle + "\n|" + expected +"|", "\n-\n", + outputTitle + "\n|" + got + "|\n\n"), HR() ); } /** - * Control will bounce back and forth between nextTest() and the - * event handler returned by makeTestChecker() until the 'testcases' - * iterator is spent. + * Restore the original value of the "html5.enable" pref and + * let SimpleTest the test is finished. */ -function makeTestChecker(input, expected, errors) { - return function (e) { - var domAsString = docToTestOutput(e.target.contentDocument); - // It's possible we need to reorder attributes to get these to match +ParserTestRunner.prototype.finishTest = function() { + if (typeof(this.originalHtml5Pref) == "boolean") { + netscape.security.PrivilegeManager + .enablePrivilege("UniversalXPConnect"); + var prefs = Components.classes["@mozilla.org/preferences-service;1"] + .getService(Components.interfaces.nsIPrefBranch); + prefs.setBoolPref("html5.enable", this.originalHtml5Pref); + } + SimpleTest.finish(); +} + +/** + * Set the "html5.enable" pref to true, and store the original + * value of the pref to be restored at the end of the test. + */ +ParserTestRunner.prototype.enableHTML5Parser = function() { + netscape.security.PrivilegeManager. + enablePrivilege("UniversalXPConnect"); + var prefs = Components.classes["@mozilla.org/preferences-service;1"] + .getService(Components.interfaces.nsIPrefBranch); + this.originalHtml5Pref = prefs.getBoolPref("html5.enable"); + prefs.setBoolPref("html5.enable", true); +} + +/** + * Returns true if the input is in the exception list of tests + * known to fail. + * + * @param the 'input' field of the test to check + */ +ParserTestRunner.prototype.inTodoList = function(input) { + return html5TreeConstructionExceptions[input]; +} + +/** + * Verify the test, by comparing the DOM in the test document with a + * reference version. For MODE_PARSER tests, mark failed tests + * as "todo" if they appear in the html5Exceptions list. + * + * Where the "reference version" comes from is dependent on the test + * type; for MODE_PARSER and MODE_TOKENIZER, it is generated based + * on the expected output which appears in the test file. For + * MODE_JSCOMPARE, it is the DOM of another iframe which was + * populated by the nu.validator JS parser. + * + * @param input a string containing the test input + * @param expected a string containing the expected test output + * @param errors a string containing expected errors that the test + * will induce in the parser; currently unused + * @param description a string description of the test + * @param expectedTokenizerOutput for tokenizer tests, an array + * containing the expected output, otherwise + * undefined + * @param testDocument the document property of the testframe that + * contains the DOM under test + */ +ParserTestRunner.prototype.checkTests = function (input, expected, + errors, description, expectedTokenizerOutput, testDocument) { + // For fragment tests, the expected output will be empty, so skip + // the test. + if (expected.length > 1) { + var domAsString = docToTestOutput(testDocument, this.mode); if (expected == domAsString) { is(domAsString, expected, "HTML5 expected success. " + new Date()); } else { - var reorderedDOM = reorderToMatchExpected(domAsString, expected); - if (html5Exceptions[input]) { - todo(reorderedDOM == expected, "HTML5 expected failure. " + new Date()); - writeErrorSummary(input, expected, reorderedDOM, true); + if (this.inTodoList(input)) { + todo(domAsString == expected, + "HTML5 expected failure. " + new Date()); + this.writeErrorSummary(input, expected, domAsString, + true, description, expectedTokenizerOutput); } else { - if (reorderedDOM != expected) { - is(reorderedDOM, expected, "HTML5 unexpected failure. " + input + " " + new Date()); - writeErrorSummary(input, expected, reorderedDOM, false); + if (domAsString != expected) { + is(domAsString, expected, + "HTML5 unexpected failure. " + input + " " + new Date()); + this.writeErrorSummary(input, expected, domAsString, false, + description, expectedTokenizerOutput); } else { - is(reorderedDOM, expected, "HTML5 expected success. " + new Date()); + is(domAsString, expected, "HTML5 expected success. " + new Date()); } } } - nextTest(e.target); - } -} - -var testcases; -function nextTest(testframe) { - var test = 0; - try { - var [input, output, errors] = testcases.next(); - dataURL = "data:text/html;base64," + btoa(input); - testframe.onload = makeTestChecker(input, output, errors); - testframe.src = dataURL; - } catch (err if err instanceof StopIteration) { - SimpleTest.finish(); - } -} - -var framesLoaded = []; -function frameLoaded(e) { - framesLoaded.push(e.target); - if (framesLoaded.length == parserDatFiles.length) { - var tests = [scrapeText(ifr.contentDocument) - for each (ifr in framesLoaded)]; - testcases = test_parser(tests); - nextTest($("testframe")); - - //SimpleTest.finish(); } } /** - * Create an iframe for each dat file + * Call the test checker to verify the current test, then + * go to the next test. + * + * Control will bounce back and forth between nextTest() and + * parseTests() until the 'testcases' iterator is spent. */ -function makeIFrames() { +ParserTestRunner.prototype.makeTestChecker = function (input, + expected, errors, description, expectedTokenizerOutput, + testframe) { + this.checkTests(input, expected, errors, description, + expectedTokenizerOutput, testframe.contentDocument); + this.nextTest(testframe); +} + +/** + * A generator function that accepts a list of tests. Each list + * member corresponds to the contents of a ".dat" file from the + * html5lib test suite. + * + * @param the list of strings + */ +ParserTestRunner.prototype.parseTests = function(testlist) { + for each (var testgroup in testlist) { + var tests = testgroup.split("#data\n"); + tests = ["#data\n" + test for each(test in tests) if (test)]; + for each (var test in tests) { + yield parseTestcase(test); + } + } +} + +/** + * Parse the next test, then set the src attribute of the testframe + * to a data: url containing the base64-encoded value of the test input. + * + * @param the iframe used for the test content + */ +ParserTestRunner.prototype.nextTest = function(testframe) { + try { + var [input, output, errors, description, expectedTokenizerOutput] = + this.testcases.next(); + dataURL = "data:text/html;base64," + btoa(input); + var me = this; + testframe.onload = function(e) { + me.makeTestChecker.call(me, input, output, errors, + description, expectedTokenizerOutput, e.target); + }; + testframe.src = dataURL; + } catch (err if err instanceof StopIteration) { + this.finishTest(); + } +} + +/** + * Create an iframe for each .dat file. Once all the + * iframes are loaded, concatenate their content into + * one large string, pass that to the test parser, and + * begin interating through the tests. + */ +ParserTestRunner.prototype.makeIFrames = function () { + var framesLoaded = []; + var me = this; for each (var filename in parserDatFiles) { var datFrame = document.createElement("iframe"); - datFrame.onload = frameLoaded; + datFrame.addEventListener("load", function(e) { + framesLoaded.push(e.target); + if (framesLoaded.length == parserDatFiles.length) { + var tests = [scrapeText(ifr.contentDocument) + for each (ifr in framesLoaded)]; + me.testcases = me.parseTests(tests); + me.nextTest($("testframe")); + } + }, false); datFrame.src = filename; $("display").appendChild(datFrame); } appendChildNodes($("display"), BR(), "Results: ", HR()); } -addLoadEvent(makeIFrames); -SimpleTest.waitForExplicitFinish(); +/** + * Start testing as soon as the onload event is fired. + */ +ParserTestRunner.prototype.startTest = function () { + SimpleTest.waitForExplicitFinish(); + this.enableHTML5Parser(); + var me = this; + var onLoadHandler = function (e) { me.makeIFrames.apply(me); } + addLoadEvent(onLoadHandler); +}; + +/********************************************************************** + * The TokenizerTestRunner() class, which inherits from ParserTestRunner(). + */ +function TokenizerTestRunner(filename) { + this.mode = MODE_TOKENIZER; + this.filename = filename; +} +TokenizerTestRunner.prototype = new ParserTestRunner(); +TokenizerTestRunner.prototype.constructor = TokenizerTestRunner; + +/** + * Returns true if the input is in the exception list of tests + * known to fail. + * + * @param the 'input' field of the test to check + */ +TokenizerTestRunner.prototype.inTodoList = function(input) { + return html5TokenizerExceptions[input]; +} + +/** + * Parse the next test, then set the src attribute of the testframe + * to a url which will be served by a server-side javascript; + * the .sjs will return a document containing the test input. + * + * Note that tokenizer tests can't use the same method as the other + * parser tests for loading the test input into the iframe, + * as some tokenizer test input contains invalid unicode characters, + * which are impossible to express in a base64-encoded data: url. + * + * @param the iframe used for the test content + */ +TokenizerTestRunner.prototype.nextTest = function(testframe) { + try { + var [index, input, expected, errors, description, expectedTokenizerOutput] + = this.testcases.next(); + let dataURL = "tokenizer_file_server.sjs?" + index + + "&" + this.filename; + var me = this; + testframe.onload = function(e) { + me.makeTestChecker.call(me, input, expected, errors, + description, expectedTokenizerOutput, e.target); + }; + testframe.src = dataURL; + } catch (err if err instanceof StopIteration) { + this.finishTest(); + } +} + +/** + * A generator function that iterates through a list of + * tokenizer tests which have been decoded from JSON + * .test files. + * + * @param A decoded JSON object containing a series of tests. + */ +TokenizerTestRunner.prototype.parseTests = function(jsonTestList) { + var index = 1; + for each (var test in jsonTestList) { + var tmpArray = [index]; + yield tmpArray.concat(parseJsonTestcase(test)); + index++; + } +} + +/** + * Pass the JSON test object to the test parser, and begin + * interating through the tests. + */ +TokenizerTestRunner.prototype.startTestParser = function() { + appendChildNodes($("display"), BR(), "Results: ", HR()); + this.testcases = this.parseTests(tokenizerTests["tests"]); + this.nextTest($("testframe")); +} + +/** + * Start testing as soon as the onload event is fired. + */ +TokenizerTestRunner.prototype.startTest = function () { + SimpleTest.waitForExplicitFinish(); + this.enableHTML5Parser(); + var me = this; + var onLoadHandler = function (e) { me.startTestParser.apply(me); } + addLoadEvent(onLoadHandler); +} + +/********************************************************************** + * The JSCompareTestRunner() class, which inherits from ParserTestRunner(). + * + * This class compares output of the Gecko HTML parser with that of the + * JavaScript nu.validator parser. + */ +function JSCompareTestRunner() { + this.mode = MODE_JSCOMPARE; +} +JSCompareTestRunner.prototype = new ParserTestRunner(); +JSCompareTestRunner.prototype.constructor = JSCompareTestRunner; + +/** + * Call the test checker to verify the current test, then + * go to the next test. + * + * Control will bounce back and forth between nextTest() and + * parseTests() until the 'testcases' iterator is spent. + */ +JSCompareTestRunner.prototype.makeTestChecker = function (input, + expected, errors, description, expectedTokenizerOutput, + testframe) { + var me = this; + window.parseHtmlDocument(input, $("jsframe").contentDocument, + function() { + expected = docToTestOutput($("jsframe").contentDocument, + me.mode); + me.checkTests(input, expected, errors, description, + expectedTokenizerOutput, testframe.contentDocument); + me.nextTest(testframe); + }, null); +} + +/** + * Returns true if the input is in the exception list of tests + * known to fail. + * + * @param the 'input' field of the test to check + */ +JSCompareTestRunner.prototype.inTodoList = function(input) { + return html5JSCompareExceptions[input]; +} diff --git a/parser/htmlparser/tests/mochitest/regressions.txt b/parser/htmlparser/tests/mochitest/regressions.txt index a58ca228b74..1ad28f7d093 100644 --- a/parser/htmlparser/tests/mochitest/regressions.txt +++ b/parser/htmlparser/tests/mochitest/regressions.txt @@ -2,7 +2,7 @@ <!DOCTYPE html><html><head><noscript></noscript><style></style></head><frameset></frameset> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <noscript> @@ -13,7 +13,7 @@ <!DOCTYPE html><html><head><link><body></body></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <link> @@ -23,7 +23,7 @@ <!DOCTYPE html><html><link><body>#</body></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <link> @@ -61,7 +61,7 @@ Unexpected start tag that belongs in head. Unexpected start tag that belongs in head. Expected closing tag after </. #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <title> @@ -79,7 +79,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tr><td></td><input><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -94,7 +94,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tr><td></td><input type="hidden"><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -110,7 +110,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tr><td></td><input tYPe=" hiDDen "><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -126,7 +126,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tr><td></td><input tYPe=" hiDDen "><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -142,7 +142,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tr><td></td><input type="text" type="hidden"><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -158,7 +158,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tr><td></td><input type="hidden" type="text"><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -174,7 +174,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tr><td></td><input id="one"><input type="hidden"><input id="two"><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -194,7 +194,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tr><td></td><input id="one" type="hidden"><input id="two"><input id="three" type="hidden"><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -216,7 +216,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><input><tr><td></td><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -231,7 +231,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><input type="hidden"><tr><td></td><td></td></tr></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -247,7 +247,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tbody><input><tr><td></td><td></td></tr></tbody></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -262,7 +262,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tbody><input type="hidden"><tr><td></td><td></td></tr></tbody></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -278,7 +278,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><thead><input><tr><td></td><td></td></tr></thead></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -293,7 +293,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><thead><input type="hidden"><tr><td></td><td></td></tr></thead></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -309,7 +309,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tfoot><input><tr><td></td><td></td></tr></tfoot></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -324,7 +324,7 @@ x { content:"</style" } " <!DOCTYPE html><body><table><tfoot><input type="hidden"><tr><td></td><td></td></tr></tfoot></table></body> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -340,7 +340,7 @@ x { content:"</style" } " <!DOCTYPE html><html><head></head><form><input></form><frameset rows="*"><frame></frameset></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <frameset> @@ -351,7 +351,7 @@ x { content:"</style" } " <!DOCTYPE html><html><head></head><form><input type="text"></form><frameset rows="*"><frame></frameset></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -363,7 +363,7 @@ x { content:"</style" } " <!DOCTYPE html><html><head></head><form><input type="hidden"></form><frameset rows="*"><frame></frameset></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <frameset> @@ -374,7 +374,7 @@ x { content:"</style" } " <!DOCTYPE html><html><head></head><form><input tYpE=" HIdDen "></form><frameset rows="*"><frame></frameset></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <frameset> @@ -385,7 +385,7 @@ x { content:"</style" } " <!DOCTYPE html><html><body><table><link><tr><td>Hi!</td></tr></table></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -400,7 +400,7 @@ x { content:"</style" } " <!DOCTYPE html><html><body><table><style>td { color: green }</style><tr><td>Hi!</tr></td></table> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> @@ -411,11 +411,12 @@ x { content:"</style" } " | <tr> | <td> | "Hi!" + #data <!DOCTYPE html><html><head></head><form><input type=" hidden"></form><frameset rows="*"><frame></frameset></html> #errors #document -| <!DOCTYPE HTML> +| <!DOCTYPE html> | <html> | <head> | <body> diff --git a/parser/htmlparser/tests/mochitest/test_html5_tokenizer_entities.html b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_entities.html new file mode 100644 index 00000000000..ea498b5bac9 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_entities.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=373864 +--> +<head> + <title>HTML5 Tokenizer Tests</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" + href="/tests/SimpleTest/test.css" /> + <script type="application/javascript;version=1.7" + src="parser_datreader.js"></script> + <script type="application/javascript" + src="html5_tree_construction_exceptions.js"></script> + <script type="application/javascript" + src="html5lib_tokenizer_entities.test"></script> + <script type="application/javascript;version=1.7" + src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new TokenizerTestRunner("html5lib_tokenizer_entities.test"); + testRunner.startTest(); + </script> + +</head> +<body> +<p>HTML5 Tokenizer Tests: Entities</p> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=373864" + target="_blank">Mozilla Bug 373864</a> +<div id="content"> +<iframe src="" id="testframe"></iframe> +</div> +test data converted from http://code.google.com/p/html5lib/source/browse/testdata/tokenizer<br> +<div id="display"> + +</div> +</body> +</html> + diff --git a/parser/htmlparser/tests/mochitest/test_html5_tokenizer_numeric_entities.html b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_numeric_entities.html new file mode 100644 index 00000000000..c34b3ff943b --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_numeric_entities.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=373864 +--> +<head> + <title>HTML5 Tokenizer Tests</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" + href="/tests/SimpleTest/test.css" /> + <script type="application/javascript;version=1.7" + src="parser_datreader.js"></script> + <script type="application/javascript" + src="html5_tree_construction_exceptions.js"></script> + <script type="application/javascript" + src="html5lib_tokenizer_numeric_entities.test"></script> + <script type="application/javascript;version=1.7" + src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new TokenizerTestRunner("html5lib_tokenizer_numeric_entities.test"); + testRunner.startTest(); + </script> + +</head> +<body> +<p>HTML5 Tokenizer Tests: Numeric Entities</p> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=373864" + target="_blank">Mozilla Bug 373864</a> +<div id="content"> +<iframe src="" id="testframe"></iframe> +</div> +test data converted from http://code.google.com/p/html5lib/source/browse/testdata/tokenizer<br> +<div id="display"> + +</div> +</body> +</html> + diff --git a/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test1.html b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test1.html new file mode 100644 index 00000000000..ea89cf8cf4f --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test1.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=373864 +--> +<head> + <title>HTML5 Tokenizer Tests</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" + href="/tests/SimpleTest/test.css" /> + <script type="application/javascript;version=1.7" + src="parser_datreader.js"></script> + <script type="application/javascript" + src="html5_tree_construction_exceptions.js"></script> + <script type="application/javascript" + src="html5lib_tokenizer_test1.test"></script> + <script type="application/javascript;version=1.7" + src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new TokenizerTestRunner("html5lib_tokenizer_test1.test"); + testRunner.startTest(); + </script> + +</head> +<body> +<p>HTML5 Tokenizer Tests: Test Group 1</p> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=373864" + target="_blank">Mozilla Bug 373864</a> +<div id="content"> +<iframe src="" id="testframe"></iframe> +</div> +test data converted from http://code.google.com/p/html5lib/source/browse/testdata/tokenizer<br> +<div id="display"> + +</div> +</body> +</html> + diff --git a/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test2.html b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test2.html new file mode 100644 index 00000000000..bea5b781b65 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test2.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=373864 +--> +<head> + <title>HTML5 Tokenizer Tests</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" + href="/tests/SimpleTest/test.css" /> + <script type="application/javascript;version=1.7" + src="parser_datreader.js"></script> + <script type="application/javascript" + src="html5_tree_construction_exceptions.js"></script> + <script type="application/javascript" + src="html5lib_tokenizer_test2.test"></script> + <script type="application/javascript;version=1.7" + src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new TokenizerTestRunner("html5lib_tokenizer_test2.test"); + testRunner.startTest(); + </script> + +</head> +<body> +<p>HTML5 Tokenizer Tests: Test Group 2</p> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=373864" + target="_blank">Mozilla Bug 373864</a> +<div id="content"> +<iframe src="" id="testframe"></iframe> +</div> +test data converted from http://code.google.com/p/html5lib/source/browse/testdata/tokenizer<br> +<div id="display"> + +</div> +</body> +</html> + diff --git a/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test3.html b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test3.html new file mode 100644 index 00000000000..a09763268cc --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test3.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=373864 +--> +<head> + <title>HTML5 Tokenizer Tests</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" + href="/tests/SimpleTest/test.css" /> + <script type="application/javascript;version=1.7" + src="parser_datreader.js"></script> + <script type="application/javascript" + src="html5_tree_construction_exceptions.js"></script> + <script type="application/javascript" + src="html5lib_tokenizer_test3.test"></script> + <script type="application/javascript;version=1.7" + src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new TokenizerTestRunner("html5lib_tokenizer_test3.test"); + testRunner.startTest(); + </script> + +</head> +<body> +<p>HTML5 Tokenizer Tests: Test Group 3</p> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=373864" + target="_blank">Mozilla Bug 373864</a> +<div id="content"> +<iframe src="" id="testframe"></iframe> +</div> +test data converted from http://code.google.com/p/html5lib/source/browse/testdata/tokenizer<br> +<div id="display"> + +</div> +</body> +</html> + diff --git a/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test4.html b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test4.html new file mode 100644 index 00000000000..e7ee02399a8 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test4.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=373864 +--> +<head> + <title>HTML5 Tokenizer Tests</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" + href="/tests/SimpleTest/test.css" /> + <script type="application/javascript;version=1.7" + src="parser_datreader.js"></script> + <script type="application/javascript" + src="html5_tree_construction_exceptions.js"></script> + <script type="application/javascript" + src="html5lib_tokenizer_test4.test"></script> + <script type="application/javascript;version=1.7" + src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new TokenizerTestRunner("html5lib_tokenizer_test4.test"); + testRunner.startTest(); + </script> + +</head> +<body> +<p>HTML5 Tokenizer Tests: Test Group 4</p> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=373864" + target="_blank">Mozilla Bug 373864</a> +<div id="content"> +<iframe src="" id="testframe"></iframe> +</div> +test data converted from http://code.google.com/p/html5lib/source/browse/testdata/tokenizer<br> +<div id="display"> + +</div> +</body> +</html> + diff --git a/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test5.html b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test5.html new file mode 100644 index 00000000000..66627859e49 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_test5.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=366936 +--> +<head> + <title>HTML5 Tokenizer Tests</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" + href="/tests/SimpleTest/test.css" /> + <script type="application/javascript;version=1.7" + src="parser_datreader.js"></script> + <script type="application/javascript" + src="html5_tree_construction_exceptions.js"></script> + <script type="application/javascript" + src="html5lib_tokenizer_test5.test"></script> + <script type="application/javascript;version=1.7" + src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new TokenizerTestRunner("html5lib_tokenizer_test5.test"); + testRunner.startTest(); + </script> + +</head> +<body> +<p>HTML5 Tokenizer Tests: Test Group 5</p> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=366936" + target="_blank">Mozilla Bug 366936</a> +<div id="content"> +<iframe src="" id="testframe"></iframe> +</div> +test data converted from http://code.google.com/p/html5lib/source/browse/testdata/tokenizer<br> +<div id="display"> + +</div> +</body> +</html> + diff --git a/parser/htmlparser/tests/mochitest/test_html5_tokenizer_unicode_chars.html b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_unicode_chars.html new file mode 100644 index 00000000000..01ad0a3f1fd --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_html5_tokenizer_unicode_chars.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=366936 +--> +<head> + <title>HTML5 Tokenizer Tests</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" + href="/tests/SimpleTest/test.css" /> + <script type="application/javascript;version=1.7" + src="parser_datreader.js"></script> + <script type="application/javascript" + src="html5_tree_construction_exceptions.js"></script> + <script type="application/javascript" + src="html5lib_tokenizer_unicode_chars.test"></script> + <script type="application/javascript;version=1.7" + src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new TokenizerTestRunner("html5lib_tokenizer_unicode_chars.test"); + testRunner.startTest(); + </script> + +</head> +<body> +<p>HTML5 Tokenizer Tests: Unicode Characters</p> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=366936" + target="_blank">Mozilla Bug 366936</a> +<div id="content"> +<iframe src="" id="testframe"></iframe> +</div> +test data converted from http://code.google.com/p/html5lib/source/browse/testdata/tokenizer<br> +<div id="display"> + +</div> +</body> +</html> + diff --git a/parser/htmlparser/tests/mochitest/test_html5_tree_construction.html b/parser/htmlparser/tests/mochitest/test_html5_tree_construction.html index 0b757b04d34..2bb82b87e93 100644 --- a/parser/htmlparser/tests/mochitest/test_html5_tree_construction.html +++ b/parser/htmlparser/tests/mochitest/test_html5_tree_construction.html @@ -15,13 +15,28 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=366936 <script type="application/javascript" src="html5_tree_construction_exceptions.js"></script> <script class="testbody" type="application/javascript;version=1.7"> - var parserDatFiles = ["html5lib_tree_dat1.txt", + var parserDatFiles = ["html5lib_tree_dat1.txt", "html5lib_tree_dat2.txt", "html5lib_tree_dat3.txt", - "regressions.txt"]; + "html5lib_tree_dat5.txt", + "html5lib_tree_dat6.txt", + "html5lib_tree_dat7.txt", + "html5lib_tree_dat8.txt", + "html5lib_tree_dat9.txt", + "html5lib_tree_dat10.txt", + "html5lib_tree_dat11.txt", + "html5lib_tree_dat12.txt", + "html5lib_tree_dat14.txt", + "regressions.txt" + ]; + </script> <script type="application/javascript;version=1.7" src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new ParserTestRunner(); + testRunner.startTest(); + </script> </head> <body> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=366936" diff --git a/parser/htmlparser/tests/mochitest/test_html5_tree_construction_js_compare.html b/parser/htmlparser/tests/mochitest/test_html5_tree_construction_js_compare.html new file mode 100644 index 00000000000..9b2ad6d1e92 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/test_html5_tree_construction_js_compare.html @@ -0,0 +1,54 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=366936 +--> +<head> + <title>Test for Bug 366936</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" + src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" + href="/tests/SimpleTest/test.css" /> + <script type="application/javascript;version=1.7" + src="parser_datreader.js"></script> + <script type="application/javascript" + src="html5_tree_construction_exceptions.js"></script> + <script class="testbody" type="application/javascript;version=1.7"> + var parserDatFiles = ["html5lib_tree_dat1.txt", + "html5lib_tree_dat2.txt", + "html5lib_tree_dat3.txt", + "html5lib_tree_dat5.txt", + "html5lib_tree_dat6.txt", + "html5lib_tree_dat7.txt", + "html5lib_tree_dat8.txt", + "html5lib_tree_dat9.txt", + "html5lib_tree_dat10.txt", + "html5lib_tree_dat11.txt", + "html5lib_tree_dat12.txt", + "html5lib_tree_dat14.txt" + ]; + </script> + <script type="application/javascript;version=1.7" + src="nu.validator.htmlparser.HtmlParser.nocache.js"></script> + <script type="application/javascript;version=1.7" + src="parser_web_testrunner.js"></script> + <script type="application/javascript;version=1.7"> + var testRunner = new JSCompareTestRunner(); + testRunner.startTest(); + </script> +</head> +<body> +<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=366936" + target="_blank">Mozilla Bug 366936</a> +<div id="content"> +<iframe src="" id="testframe"></iframe> +<iframe src="" id="jsframe"></iframe> +</div> +See html5lib.googlecode.com for original test data<br> +<div id="display"> + +</div> +</body> +</html> + diff --git a/parser/htmlparser/tests/mochitest/tokenizer_file_server.sjs b/parser/htmlparser/tests/mochitest/tokenizer_file_server.sjs new file mode 100644 index 00000000000..21adfe3e321 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/tokenizer_file_server.sjs @@ -0,0 +1,110 @@ +/** + * Server-side javascript CGI for serving html5lib tokenizer test data. + */ + +const Cc = Components.classes; +const Ci = Components.interfaces; + +/** + * Read the contents of a file and return it as a string. + */ +function getFileContents(aFile) { + const PR_RDONLY = 0x01; + var fileStream = Cc["@mozilla.org/network/file-input-stream;1"] + .createInstance(Ci.nsIFileInputStream); + fileStream.init(aFile, PR_RDONLY, 0400, + Ci.nsIFileInputStream.CLOSE_ON_EOF); + var inputStream = Cc["@mozilla.org/scriptableinputstream;1"] + .createInstance(Ci.nsIScriptableInputStream); + inputStream.init(fileStream); + var data = ""; + do { + var str = inputStream.read(inputStream.available()); + data += str; + } while(str.length > 0); + + return data; +} + +/** + * Handle the HTTP request by writing an appropriate response. + */ +function handleRequest(request, response) +{ + // The query string of the request is expected to be in the format + // xx&filename.test, where xx is an integer representing the index + // of the test in filename.test to return. + var index = parseInt(request.queryString, 10); + var filename = + request.queryString.substring(request.queryString.indexOf("&") + 1); + + var file = Components.classes["@mozilla.org/file/directory_service;1"] + .getService(Components.interfaces.nsIProperties) + .get("CurWorkD", Components.interfaces.nsIFile); + + file.append("tests"); + file.append("parser"); + file.append("htmlparser"); + file.append("tests"); + file.append("mochitest"); + + file.append(filename); + + var fileContent = getFileContents(file); + + response.setHeader("Content-Type", "text/html; charset=utf-8"); + + var nativeJSON = Components.classes["@mozilla.org/dom/json;1"] + .createInstance(Components.interfaces.nsIJSON); + var tests = + nativeJSON.decode(fileContent.substring(fileContent.indexOf("{"))); + + // If the test case doesn't include anything that looks like + // a doctype, prepend a standard doctype and header to the test + // data. + var bodystr = tests["tests"][(index - 1)]["input"]; + if (bodystr.toLowerCase().indexOf("<!doc") == -1) { + response.write("<!DOCTYPE html><html><head><body>"); + } + + var bos = Components.classes["@mozilla.org/binaryoutputstream;1"] + .createInstance(Components.interfaces.nsIBinaryOutputStream); + bos.setOutputStream(response.bodyOutputStream); + + var body = []; + for (var i = 0; i < bodystr.length; i++) { + var charcode = bodystr.charCodeAt(i); + // For unicode character codes greater than 65,536, two bytes + // are used in the source string to represent the character. Combine + // these into a single decimal integer using the algorithm from + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/ + // Global_Objects/String/charCodeAt + if (0xD800 <= charcode && charcode <= 0xDBFF) + { + var hi = charcode; + var lo = bodystr.charCodeAt(++i); + charcode = ((hi - 0xD800) * 0x400) + (lo - 0xDC00) + 0x10000; + } + // For unicode character codes greater than 128, pump out a + // 2-, 3-, or 4-byte utf-8 sequence. + if (charcode < 128) { + body.push(charcode); + } + else if (charcode >=128 && charcode <=2047) { + body.push(192 + Math.floor(charcode / 64)); + body.push(128 + (charcode % 64)); + } else if (charcode >=2048 && charcode <=65535) { + body.push(224 + Math.floor(charcode / 4096)); + body.push(128 + (Math.floor(charcode / 64) % 64)); + body.push(128 + (charcode % 64)); + } else { + body.push(240 + Math.floor(charcode / 262144)); + body.push(128 + (Math.floor(charcode / 4096) % 64)); + body.push(128 + (Math.floor(charcode / 64) % 64)); + body.push(128 + (charcode % 64)); + } + } + + bos.writeByteArray(body, body.length); + +}