diff --git a/js/respec-oai.build.js.map b/js/respec-oai.build.js.map deleted file mode 100644 index 899b0a5f60..0000000000 --- a/js/respec-oai.build.js.map +++ /dev/null @@ -1,210 +0,0 @@ -{ - "version": 3, - "sources": [ - "deps/require.js", - "deps/hyperhtml.js", - "deps/url-search-params.js", - "deps/domReady.js", - "core/pubsubhub.js", - "deps/marked.js", - "core/utils.js", - "core/post-process.js", - "core/pre-process.js", - "core/include-config.js", - "core/override-configuration.js", - "core/respec-ready.js", - "core/base-runner.js", - "shortcut.js", - "deps/text.js", - "ui/ui.css!deps/text", - "deps/jquery.js", - "core/jquery-enhanced.js", - "core/ui.js", - "core/l10n.js", - "core/linter.js", - "core/LinterRule.js", - "core/linter-rules/no-headingless-sections.js", - "core/linter-rules/no-http-props.js", - "w3c/l10n.js", - "w3c/linter-rules/privsec-section.js", - "core/linter-rules/check-punctuation.js", - "core/linter-rules/local-refs-exist.js", - "oai/defaults.js", - "core/css/respec2.css!deps/text", - "core/style.js", - "w3c/style.js", - "core/github.js", - "core/data-include.js", - "core/markdown.js", - "deps/handlebars.js", - "templates.js", - "w3c/templates/cgbg-sotd.js", - "w3c/templates/sotd.js", - "w3c/templates/show-logo.js", - "w3c/templates/show-people.js", - "w3c/templates/show-link.js", - "w3c/templates/cgbg-headers.js", - "oai/templates/show-logo.js", - "oai/templates/show-people.js", - "oai/templates/show-link.js", - "oai/templates/headers.js", - "oai/headers.js", - "w3c/abstract.js", - "w3c/templates/conformance.js", - "w3c/conformance.js", - "core/data-transform.js", - "core/inlines.js", - "deps/pluralize.js", - "core/dfn.js", - "w3c/rfc2119.js", - "core/css/examples.css!deps/text", - "core/examples.js", - "deps/text!core/css/issues-notes.css", - "core/issues-notes.js", - "core/requirements.js", - "core/css/bp.css!deps/text", - "core/best-practices.js", - "core/figures.js", - "deps/webidl2.js", - "core/css/webidl.css!deps/text", - "core/webidl.js", - "core/biblio-db.js", - "core/biblio.js", - "core/data-cite.js", - "core/webidl-index.js", - "core/link-to-dfn.js", - "core/contrib.js", - "core/fix-headers.js", - "core/structure.js", - "w3c/informative.js", - "w3c/permalinks.js", - "core/id-headers.js", - "core/location-hash.js", - "core/css/caniuse.css!deps/text", - "core/caniuse.js", - "core/exporter.js", - "ui/save-html.js", - "ui/search-specref.js", - "ui/dfn-list.js", - "ui/about-respec.js", - "core/seo.js", - "w3c/seo.js", - "core/css/github.css!deps/text", - "deps/text!core/../../worker/respec-worker.js", - "core/worker.js", - "core/highlight.js", - "core/images/clipboard.svg!deps/text", - "deps/clipboard.js", - "core/webidl-clipboard.js", - "core/data-tests.js", - "core/list-sorter.js", - "core/css/var.css!deps/text", - "core/highlight-vars.js", - "profile-oai.js" - ], - "names": [], - "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpmEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC10CA;AACA;AACA;AACA;AACA;AACA,ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3+CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACndA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzZA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChlQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzGA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC57CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1aA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnCA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClFA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChDA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzkCA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC12BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1CA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChJA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxFA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC36BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7GA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA", - "file": "profile-oai.build.js", - "sourcesContent": [ - "/** vim: et:ts=4:sw=4:sts=4\n * @license RequireJS 2.3.5 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE\n */\n//Not using strict: uneven strict support in browsers, #392, and causes\n//problems with requirejs.exec()/transpiler plugins that may not be strict.\n/*jslint regexp: true, nomen: true, sloppy: true */\n/*global window, navigator, document, importScripts, setTimeout, opera */\n\nvar requirejs, require, define;\n(function (global, setTimeout) {\n var req, s, head, baseElement, dataMain, src,\n interactiveScript, currentlyAddingScript, mainScript, subPath,\n version = '2.3.5',\n commentRegExp = /\\/\\*[\\s\\S]*?\\*\\/|([^:\"'=]|^)\\/\\/.*$/mg,\n cjsRequireRegExp = /[^.]\\s*require\\s*\\(\\s*[\"']([^'\"\\s]+)[\"']\\s*\\)/g,\n jsSuffixRegExp = /\\.js$/,\n currDirRegExp = /^\\.\\//,\n op = Object.prototype,\n ostring = op.toString,\n hasOwn = op.hasOwnProperty,\n isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document),\n isWebWorker = !isBrowser && typeof importScripts !== 'undefined',\n //PS3 indicates loaded and complete, but need to wait for complete\n //specifically. Sequence is 'loading', 'loaded', execution,\n // then 'complete'. The UA check is unfortunate, but not sure how\n //to feature test w/o causing perf issues.\n readyRegExp = isBrowser && navigator.platform === 'PLAYSTATION 3' ?\n /^complete$/ : /^(complete|loaded)$/,\n defContextName = '_',\n //Oh the tragedy, detecting opera. See the usage of isOpera for reason.\n isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]',\n contexts = {},\n cfg = {},\n globalDefQueue = [],\n useInteractive = false;\n\n //Could match something like ')//comment', do not lose the prefix to comment.\n function commentReplace(match, singlePrefix) {\n return singlePrefix || '';\n }\n\n function isFunction(it) {\n return ostring.call(it) === '[object Function]';\n }\n\n function isArray(it) {\n return ostring.call(it) === '[object Array]';\n }\n\n /**\n * Helper function for iterating over an array. If the func returns\n * a true value, it will break out of the loop.\n */\n function each(ary, func) {\n if (ary) {\n var i;\n for (i = 0; i < ary.length; i += 1) {\n if (ary[i] && func(ary[i], i, ary)) {\n break;\n }\n }\n }\n }\n\n /**\n * Helper function for iterating over an array backwards. If the func\n * returns a true value, it will break out of the loop.\n */\n function eachReverse(ary, func) {\n if (ary) {\n var i;\n for (i = ary.length - 1; i > -1; i -= 1) {\n if (ary[i] && func(ary[i], i, ary)) {\n break;\n }\n }\n }\n }\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n function getOwn(obj, prop) {\n return hasProp(obj, prop) && obj[prop];\n }\n\n /**\n * Cycles over properties in an object and calls a function for each\n * property value. If the function returns a truthy value, then the\n * iteration is stopped.\n */\n function eachProp(obj, func) {\n var prop;\n for (prop in obj) {\n if (hasProp(obj, prop)) {\n if (func(obj[prop], prop)) {\n break;\n }\n }\n }\n }\n\n /**\n * Simple function to mix in properties from source into target,\n * but only if target does not already have a property of the same name.\n */\n function mixin(target, source, force, deepStringMixin) {\n if (source) {\n eachProp(source, function (value, prop) {\n if (force || !hasProp(target, prop)) {\n if (deepStringMixin && typeof value === 'object' && value &&\n !isArray(value) && !isFunction(value) &&\n !(value instanceof RegExp)) {\n\n if (!target[prop]) {\n target[prop] = {};\n }\n mixin(target[prop], value, force, deepStringMixin);\n } else {\n target[prop] = value;\n }\n }\n });\n }\n return target;\n }\n\n //Similar to Function.prototype.bind, but the 'this' object is specified\n //first, since it is easier to read/figure out what 'this' will be.\n function bind(obj, fn) {\n return function () {\n return fn.apply(obj, arguments);\n };\n }\n\n function scripts() {\n return document.getElementsByTagName('script');\n }\n\n function defaultOnError(err) {\n throw err;\n }\n\n //Allow getting a global that is expressed in\n //dot notation, like 'a.b.c'.\n function getGlobal(value) {\n if (!value) {\n return value;\n }\n var g = global;\n each(value.split('.'), function (part) {\n g = g[part];\n });\n return g;\n }\n\n /**\n * Constructs an error with a pointer to an URL with more information.\n * @param {String} id the error ID that maps to an ID on a web page.\n * @param {String} message human readable error.\n * @param {Error} [err] the original error, if there is one.\n *\n * @returns {Error}\n */\n function makeError(id, msg, err, requireModules) {\n var e = new Error(msg + '\\nhttp://requirejs.org/docs/errors.html#' + id);\n e.requireType = id;\n e.requireModules = requireModules;\n if (err) {\n e.originalError = err;\n }\n return e;\n }\n\n if (typeof define !== 'undefined') {\n //If a define is already in play via another AMD loader,\n //do not overwrite.\n return;\n }\n\n if (typeof requirejs !== 'undefined') {\n if (isFunction(requirejs)) {\n //Do not overwrite an existing requirejs instance.\n return;\n }\n cfg = requirejs;\n requirejs = undefined;\n }\n\n //Allow for a require config object\n if (typeof require !== 'undefined' && !isFunction(require)) {\n //assume it is a config object.\n cfg = require;\n require = undefined;\n }\n\n function newContext(contextName) {\n var inCheckLoaded, Module, context, handlers,\n checkLoadedTimeoutId,\n config = {\n //Defaults. Do not set a default for map\n //config to speed up normalize(), which\n //will run faster if there is no default.\n waitSeconds: 7,\n baseUrl: './',\n paths: {},\n bundles: {},\n pkgs: {},\n shim: {},\n config: {}\n },\n registry = {},\n //registry of just enabled modules, to speed\n //cycle breaking code when lots of modules\n //are registered, but not activated.\n enabledRegistry = {},\n undefEvents = {},\n defQueue = [],\n defined = {},\n urlFetched = {},\n bundlesMap = {},\n requireCounter = 1,\n unnormalizedCounter = 1;\n\n /**\n * Trims the . and .. from an array of path segments.\n * It will keep a leading path segment if a .. will become\n * the first path segment, to help with module name lookups,\n * which act like paths, but can be remapped. But the end result,\n * all paths that use this function should look normalized.\n * NOTE: this method MODIFIES the input array.\n * @param {Array} ary the array of path segments.\n */\n function trimDots(ary) {\n var i, part;\n for (i = 0; i < ary.length; i++) {\n part = ary[i];\n if (part === '.') {\n ary.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || (i === 1 && ary[2] === '..') || ary[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n ary.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @param {Boolean} applyMap apply the map config to the value. Should\n * only be done if this normalization is for a dependency ID.\n * @returns {String} normalized name\n */\n function normalize(name, baseName, applyMap) {\n var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex,\n foundMap, foundI, foundStarMap, starI, normalizedBaseParts,\n baseParts = (baseName && baseName.split('/')),\n map = config.map,\n starMap = map && map['*'];\n\n //Adjust any relative paths.\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n // Starts with a '.' so need the baseName\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n }\n\n trimDots(name);\n name = name.join('/');\n }\n\n //Apply map config if available.\n if (applyMap && map && (baseParts || starMap)) {\n nameParts = name.split('/');\n\n outerLoop: for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join('/');\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = getOwn(map, baseParts.slice(0, j).join('/'));\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = getOwn(mapValue, nameSegment);\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break outerLoop;\n }\n }\n }\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) {\n foundStarMap = getOwn(starMap, nameSegment);\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n // If the name points to a package's name, use\n // the package main instead.\n pkgMain = getOwn(config.pkgs, name);\n\n return pkgMain ? pkgMain : name;\n }\n\n function removeScript(name) {\n if (isBrowser) {\n each(scripts(), function (scriptNode) {\n if (scriptNode.getAttribute('data-requiremodule') === name &&\n scriptNode.getAttribute('data-requirecontext') === context.contextName) {\n scriptNode.parentNode.removeChild(scriptNode);\n return true;\n }\n });\n }\n }\n\n function hasPathFallback(id) {\n var pathConfig = getOwn(config.paths, id);\n if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) {\n //Pop off the first array value, since it failed, and\n //retry\n pathConfig.shift();\n context.require.undef(id);\n\n //Custom require that does not do map translation, since\n //ID is \"absolute\", already mapped/resolved.\n context.makeRequire(null, {\n skipMap: true\n })([id]);\n\n return true;\n }\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Creates a module mapping that includes plugin prefix, module\n * name, and path. If parentModuleMap is provided it will\n * also normalize the name via require.normalize()\n *\n * @param {String} name the module name\n * @param {String} [parentModuleMap] parent module map\n * for the module name, used to resolve relative names.\n * @param {Boolean} isNormalized: is the ID already normalized.\n * This is true if this call is done for a define() module ID.\n * @param {Boolean} applyMap: apply the map config to the ID.\n * Should only be true if this map is for a dependency.\n *\n * @returns {Object}\n */\n function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {\n var url, pluginModule, suffix, nameParts,\n prefix = null,\n parentName = parentModuleMap ? parentModuleMap.name : null,\n originalName = name,\n isDefine = true,\n normalizedName = '';\n\n //If no name, then it means it is a require call, generate an\n //internal name.\n if (!name) {\n isDefine = false;\n name = '_@r' + (requireCounter += 1);\n }\n\n nameParts = splitPrefix(name);\n prefix = nameParts[0];\n name = nameParts[1];\n\n if (prefix) {\n prefix = normalize(prefix, parentName, applyMap);\n pluginModule = getOwn(defined, prefix);\n }\n\n //Account for relative paths if there is a base name.\n if (name) {\n if (prefix) {\n if (isNormalized) {\n normalizedName = name;\n } else if (pluginModule && pluginModule.normalize) {\n //Plugin is loaded, use its normalize method.\n normalizedName = pluginModule.normalize(name, function (name) {\n return normalize(name, parentName, applyMap);\n });\n } else {\n // If nested plugin references, then do not try to\n // normalize, as it will not normalize correctly. This\n // places a restriction on resourceIds, and the longer\n // term solution is not to normalize until plugins are\n // loaded and all normalizations to allow for async\n // loading of a loader plugin. But for now, fixes the\n // common uses. Details in #1131\n normalizedName = name.indexOf('!') === -1 ?\n normalize(name, parentName, applyMap) :\n name;\n }\n } else {\n //A regular module.\n normalizedName = normalize(name, parentName, applyMap);\n\n //Normalized name may be a plugin ID due to map config\n //application in normalize. The map config values must\n //already be normalized, so do not need to redo that part.\n nameParts = splitPrefix(normalizedName);\n prefix = nameParts[0];\n normalizedName = nameParts[1];\n isNormalized = true;\n\n url = context.nameToUrl(normalizedName);\n }\n }\n\n //If the id is a plugin id that cannot be determined if it needs\n //normalization, stamp it with a unique ID so two matching relative\n //ids that may conflict can be separate.\n suffix = prefix && !pluginModule && !isNormalized ?\n '_unnormalized' + (unnormalizedCounter += 1) :\n '';\n\n return {\n prefix: prefix,\n name: normalizedName,\n parentMap: parentModuleMap,\n unnormalized: !!suffix,\n url: url,\n originalName: originalName,\n isDefine: isDefine,\n id: (prefix ?\n prefix + '!' + normalizedName :\n normalizedName) + suffix\n };\n }\n\n function getModule(depMap) {\n var id = depMap.id,\n mod = getOwn(registry, id);\n\n if (!mod) {\n mod = registry[id] = new context.Module(depMap);\n }\n\n return mod;\n }\n\n function on(depMap, name, fn) {\n var id = depMap.id,\n mod = getOwn(registry, id);\n\n if (hasProp(defined, id) &&\n (!mod || mod.defineEmitComplete)) {\n if (name === 'defined') {\n fn(defined[id]);\n }\n } else {\n mod = getModule(depMap);\n if (mod.error && name === 'error') {\n fn(mod.error);\n } else {\n mod.on(name, fn);\n }\n }\n }\n\n function onError(err, errback) {\n var ids = err.requireModules,\n notified = false;\n\n if (errback) {\n errback(err);\n } else {\n each(ids, function (id) {\n var mod = getOwn(registry, id);\n if (mod) {\n //Set error on module, so it skips timeout checks.\n mod.error = err;\n if (mod.events.error) {\n notified = true;\n mod.emit('error', err);\n }\n }\n });\n\n if (!notified) {\n req.onError(err);\n }\n }\n }\n\n /**\n * Internal method to transfer globalQueue items to this context's\n * defQueue.\n */\n function takeGlobalQueue() {\n //Push all the globalDefQueue items into the context's defQueue\n if (globalDefQueue.length) {\n each(globalDefQueue, function(queueItem) {\n var id = queueItem[0];\n if (typeof id === 'string') {\n context.defQueueMap[id] = true;\n }\n defQueue.push(queueItem);\n });\n globalDefQueue = [];\n }\n }\n\n handlers = {\n 'require': function (mod) {\n if (mod.require) {\n return mod.require;\n } else {\n return (mod.require = context.makeRequire(mod.map));\n }\n },\n 'exports': function (mod) {\n mod.usingExports = true;\n if (mod.map.isDefine) {\n if (mod.exports) {\n return (defined[mod.map.id] = mod.exports);\n } else {\n return (mod.exports = defined[mod.map.id] = {});\n }\n }\n },\n 'module': function (mod) {\n if (mod.module) {\n return mod.module;\n } else {\n return (mod.module = {\n id: mod.map.id,\n uri: mod.map.url,\n config: function () {\n return getOwn(config.config, mod.map.id) || {};\n },\n exports: mod.exports || (mod.exports = {})\n });\n }\n }\n };\n\n function cleanRegistry(id) {\n //Clean up machinery used for waiting modules.\n delete registry[id];\n delete enabledRegistry[id];\n }\n\n function breakCycle(mod, traced, processed) {\n var id = mod.map.id;\n\n if (mod.error) {\n mod.emit('error', mod.error);\n } else {\n traced[id] = true;\n each(mod.depMaps, function (depMap, i) {\n var depId = depMap.id,\n dep = getOwn(registry, depId);\n\n //Only force things that have not completed\n //being defined, so still in the registry,\n //and only if it has not been matched up\n //in the module already.\n if (dep && !mod.depMatched[i] && !processed[depId]) {\n if (getOwn(traced, depId)) {\n mod.defineDep(i, defined[depId]);\n mod.check(); //pass false?\n } else {\n breakCycle(dep, traced, processed);\n }\n }\n });\n processed[id] = true;\n }\n }\n\n function checkLoaded() {\n var err, usingPathFallback,\n waitInterval = config.waitSeconds * 1000,\n //It is possible to disable the wait interval by using waitSeconds of 0.\n expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),\n noLoads = [],\n reqCalls = [],\n stillLoading = false,\n needCycleCheck = true;\n\n //Do not bother if this call was a result of a cycle break.\n if (inCheckLoaded) {\n return;\n }\n\n inCheckLoaded = true;\n\n //Figure out the state of all the modules.\n eachProp(enabledRegistry, function (mod) {\n var map = mod.map,\n modId = map.id;\n\n //Skip things that are not enabled or in error state.\n if (!mod.enabled) {\n return;\n }\n\n if (!map.isDefine) {\n reqCalls.push(mod);\n }\n\n if (!mod.error) {\n //If the module should be executed, and it has not\n //been inited and time is up, remember it.\n if (!mod.inited && expired) {\n if (hasPathFallback(modId)) {\n usingPathFallback = true;\n stillLoading = true;\n } else {\n noLoads.push(modId);\n removeScript(modId);\n }\n } else if (!mod.inited && mod.fetched && map.isDefine) {\n stillLoading = true;\n if (!map.prefix) {\n //No reason to keep looking for unfinished\n //loading. If the only stillLoading is a\n //plugin resource though, keep going,\n //because it may be that a plugin resource\n //is waiting on a non-plugin cycle.\n return (needCycleCheck = false);\n }\n }\n }\n });\n\n if (expired && noLoads.length) {\n //If wait time expired, throw error of unloaded modules.\n err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads);\n err.contextName = context.contextName;\n return onError(err);\n }\n\n //Not expired, check for a cycle.\n if (needCycleCheck) {\n each(reqCalls, function (mod) {\n breakCycle(mod, {}, {});\n });\n }\n\n //If still waiting on loads, and the waiting load is something\n //other than a plugin resource, or there are still outstanding\n //scripts, then just try back later.\n if ((!expired || usingPathFallback) && stillLoading) {\n //Something is still waiting to load. Wait for it, but only\n //if a timeout is not already in effect.\n if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) {\n checkLoadedTimeoutId = setTimeout(function () {\n checkLoadedTimeoutId = 0;\n checkLoaded();\n }, 50);\n }\n }\n\n inCheckLoaded = false;\n }\n\n Module = function (map) {\n this.events = getOwn(undefEvents, map.id) || {};\n this.map = map;\n this.shim = getOwn(config.shim, map.id);\n this.depExports = [];\n this.depMaps = [];\n this.depMatched = [];\n this.pluginMaps = {};\n this.depCount = 0;\n\n /* this.exports this.factory\n this.depMaps = [],\n this.enabled, this.fetched\n */\n };\n\n Module.prototype = {\n init: function (depMaps, factory, errback, options) {\n options = options || {};\n\n //Do not do more inits if already done. Can happen if there\n //are multiple define calls for the same module. That is not\n //a normal, common case, but it is also not unexpected.\n if (this.inited) {\n return;\n }\n\n this.factory = factory;\n\n if (errback) {\n //Register for errors on this module.\n this.on('error', errback);\n } else if (this.events.error) {\n //If no errback already, but there are error listeners\n //on this module, set up an errback to pass to the deps.\n errback = bind(this, function (err) {\n this.emit('error', err);\n });\n }\n\n //Do a copy of the dependency array, so that\n //source inputs are not modified. For example\n //\"shim\" deps are passed in here directly, and\n //doing a direct modification of the depMaps array\n //would affect that config.\n this.depMaps = depMaps && depMaps.slice(0);\n\n this.errback = errback;\n\n //Indicate this module has be initialized\n this.inited = true;\n\n this.ignore = options.ignore;\n\n //Could have option to init this module in enabled mode,\n //or could have been previously marked as enabled. However,\n //the dependencies are not known until init is called. So\n //if enabled previously, now trigger dependencies as enabled.\n if (options.enabled || this.enabled) {\n //Enable this module and dependencies.\n //Will call this.check()\n this.enable();\n } else {\n this.check();\n }\n },\n\n defineDep: function (i, depExports) {\n //Because of cycles, defined callback for a given\n //export can be called more than once.\n if (!this.depMatched[i]) {\n this.depMatched[i] = true;\n this.depCount -= 1;\n this.depExports[i] = depExports;\n }\n },\n\n fetch: function () {\n if (this.fetched) {\n return;\n }\n this.fetched = true;\n\n context.startTime = (new Date()).getTime();\n\n var map = this.map;\n\n //If the manager is for a plugin managed resource,\n //ask the plugin to load it now.\n if (this.shim) {\n context.makeRequire(this.map, {\n enableBuildCallback: true\n })(this.shim.deps || [], bind(this, function () {\n return map.prefix ? this.callPlugin() : this.load();\n }));\n } else {\n //Regular dependency.\n return map.prefix ? this.callPlugin() : this.load();\n }\n },\n\n load: function () {\n var url = this.map.url;\n\n //Regular dependency.\n if (!urlFetched[url]) {\n urlFetched[url] = true;\n context.load(this.map.id, url);\n }\n },\n\n /**\n * Checks if the module is ready to define itself, and if so,\n * define it.\n */\n check: function () {\n if (!this.enabled || this.enabling) {\n return;\n }\n\n var err, cjsModule,\n id = this.map.id,\n depExports = this.depExports,\n exports = this.exports,\n factory = this.factory;\n\n if (!this.inited) {\n // Only fetch if not already in the defQueue.\n if (!hasProp(context.defQueueMap, id)) {\n this.fetch();\n }\n } else if (this.error) {\n this.emit('error', this.error);\n } else if (!this.defining) {\n //The factory could trigger another require call\n //that would result in checking this module to\n //define itself again. If already in the process\n //of doing that, skip this work.\n this.defining = true;\n\n if (this.depCount < 1 && !this.defined) {\n if (isFunction(factory)) {\n //If there is an error listener, favor passing\n //to that instead of throwing an error. However,\n //only do it for define()'d modules. require\n //errbacks should not be called for failures in\n //their callbacks (#699). However if a global\n //onError is set, use that.\n if ((this.events.error && this.map.isDefine) ||\n req.onError !== defaultOnError) {\n try {\n exports = context.execCb(id, factory, depExports, exports);\n } catch (e) {\n err = e;\n }\n } else {\n exports = context.execCb(id, factory, depExports, exports);\n }\n\n // Favor return value over exports. If node/cjs in play,\n // then will not have a return value anyway. Favor\n // module.exports assignment over exports object.\n if (this.map.isDefine && exports === undefined) {\n cjsModule = this.module;\n if (cjsModule) {\n exports = cjsModule.exports;\n } else if (this.usingExports) {\n //exports already set the defined value.\n exports = this.exports;\n }\n }\n\n if (err) {\n err.requireMap = this.map;\n err.requireModules = this.map.isDefine ? [this.map.id] : null;\n err.requireType = this.map.isDefine ? 'define' : 'require';\n return onError((this.error = err));\n }\n\n } else {\n //Just a literal value\n exports = factory;\n }\n\n this.exports = exports;\n\n if (this.map.isDefine && !this.ignore) {\n defined[id] = exports;\n\n if (req.onResourceLoad) {\n var resLoadMaps = [];\n each(this.depMaps, function (depMap) {\n resLoadMaps.push(depMap.normalizedMap || depMap);\n });\n req.onResourceLoad(context, this.map, resLoadMaps);\n }\n }\n\n //Clean up\n cleanRegistry(id);\n\n this.defined = true;\n }\n\n //Finished the define stage. Allow calling check again\n //to allow define notifications below in the case of a\n //cycle.\n this.defining = false;\n\n if (this.defined && !this.defineEmitted) {\n this.defineEmitted = true;\n this.emit('defined', this.exports);\n this.defineEmitComplete = true;\n }\n\n }\n },\n\n callPlugin: function () {\n var map = this.map,\n id = map.id,\n //Map already normalized the prefix.\n pluginMap = makeModuleMap(map.prefix);\n\n //Mark this as a dependency for this plugin, so it\n //can be traced for cycles.\n this.depMaps.push(pluginMap);\n\n on(pluginMap, 'defined', bind(this, function (plugin) {\n var load, normalizedMap, normalizedMod,\n bundleId = getOwn(bundlesMap, this.map.id),\n name = this.map.name,\n parentName = this.map.parentMap ? this.map.parentMap.name : null,\n localRequire = context.makeRequire(map.parentMap, {\n enableBuildCallback: true\n });\n\n //If current map is not normalized, wait for that\n //normalized name to load instead of continuing.\n if (this.map.unnormalized) {\n //Normalize the ID if the plugin allows it.\n if (plugin.normalize) {\n name = plugin.normalize(name, function (name) {\n return normalize(name, parentName, true);\n }) || '';\n }\n\n //prefix and name should already be normalized, no need\n //for applying map config again either.\n normalizedMap = makeModuleMap(map.prefix + '!' + name,\n this.map.parentMap,\n true);\n on(normalizedMap,\n 'defined', bind(this, function (value) {\n this.map.normalizedMap = normalizedMap;\n this.init([], function () { return value; }, null, {\n enabled: true,\n ignore: true\n });\n }));\n\n normalizedMod = getOwn(registry, normalizedMap.id);\n if (normalizedMod) {\n //Mark this as a dependency for this plugin, so it\n //can be traced for cycles.\n this.depMaps.push(normalizedMap);\n\n if (this.events.error) {\n normalizedMod.on('error', bind(this, function (err) {\n this.emit('error', err);\n }));\n }\n normalizedMod.enable();\n }\n\n return;\n }\n\n //If a paths config, then just load that file instead to\n //resolve the plugin, as it is built into that paths layer.\n if (bundleId) {\n this.map.url = context.nameToUrl(bundleId);\n this.load();\n return;\n }\n\n load = bind(this, function (value) {\n this.init([], function () { return value; }, null, {\n enabled: true\n });\n });\n\n load.error = bind(this, function (err) {\n this.inited = true;\n this.error = err;\n err.requireModules = [id];\n\n //Remove temp unnormalized modules for this module,\n //since they will never be resolved otherwise now.\n eachProp(registry, function (mod) {\n if (mod.map.id.indexOf(id + '_unnormalized') === 0) {\n cleanRegistry(mod.map.id);\n }\n });\n\n onError(err);\n });\n\n //Allow plugins to load other code without having to know the\n //context or how to 'complete' the load.\n load.fromText = bind(this, function (text, textAlt) {\n /*jslint evil: true */\n var moduleName = map.name,\n moduleMap = makeModuleMap(moduleName),\n hasInteractive = useInteractive;\n\n //As of 2.1.0, support just passing the text, to reinforce\n //fromText only being called once per resource. Still\n //support old style of passing moduleName but discard\n //that moduleName in favor of the internal ref.\n if (textAlt) {\n text = textAlt;\n }\n\n //Turn off interactive script matching for IE for any define\n //calls in the text, then turn it back on at the end.\n if (hasInteractive) {\n useInteractive = false;\n }\n\n //Prime the system by creating a module instance for\n //it.\n getModule(moduleMap);\n\n //Transfer any config to this other module.\n if (hasProp(config.config, id)) {\n config.config[moduleName] = config.config[id];\n }\n\n try {\n req.exec(text);\n } catch (e) {\n return onError(makeError('fromtexteval',\n 'fromText eval for ' + id +\n ' failed: ' + e,\n e,\n [id]));\n }\n\n if (hasInteractive) {\n useInteractive = true;\n }\n\n //Mark this as a dependency for the plugin\n //resource\n this.depMaps.push(moduleMap);\n\n //Support anonymous modules.\n context.completeLoad(moduleName);\n\n //Bind the value of that module to the value for this\n //resource ID.\n localRequire([moduleName], load);\n });\n\n //Use parentName here since the plugin's name is not reliable,\n //could be some weird string with no path that actually wants to\n //reference the parentName's path.\n plugin.load(map.name, localRequire, load, config);\n }));\n\n context.enable(pluginMap, this);\n this.pluginMaps[pluginMap.id] = pluginMap;\n },\n\n enable: function () {\n enabledRegistry[this.map.id] = this;\n this.enabled = true;\n\n //Set flag mentioning that the module is enabling,\n //so that immediate calls to the defined callbacks\n //for dependencies do not trigger inadvertent load\n //with the depCount still being zero.\n this.enabling = true;\n\n //Enable each dependency\n each(this.depMaps, bind(this, function (depMap, i) {\n var id, mod, handler;\n\n if (typeof depMap === 'string') {\n //Dependency needs to be converted to a depMap\n //and wired up to this module.\n depMap = makeModuleMap(depMap,\n (this.map.isDefine ? this.map : this.map.parentMap),\n false,\n !this.skipMap);\n this.depMaps[i] = depMap;\n\n handler = getOwn(handlers, depMap.id);\n\n if (handler) {\n this.depExports[i] = handler(this);\n return;\n }\n\n this.depCount += 1;\n\n on(depMap, 'defined', bind(this, function (depExports) {\n if (this.undefed) {\n return;\n }\n this.defineDep(i, depExports);\n this.check();\n }));\n\n if (this.errback) {\n on(depMap, 'error', bind(this, this.errback));\n } else if (this.events.error) {\n // No direct errback on this module, but something\n // else is listening for errors, so be sure to\n // propagate the error correctly.\n on(depMap, 'error', bind(this, function(err) {\n this.emit('error', err);\n }));\n }\n }\n\n id = depMap.id;\n mod = registry[id];\n\n //Skip special modules like 'require', 'exports', 'module'\n //Also, don't call enable if it is already enabled,\n //important in circular dependency cases.\n if (!hasProp(handlers, id) && mod && !mod.enabled) {\n context.enable(depMap, this);\n }\n }));\n\n //Enable each plugin that is used in\n //a dependency\n eachProp(this.pluginMaps, bind(this, function (pluginMap) {\n var mod = getOwn(registry, pluginMap.id);\n if (mod && !mod.enabled) {\n context.enable(pluginMap, this);\n }\n }));\n\n this.enabling = false;\n\n this.check();\n },\n\n on: function (name, cb) {\n var cbs = this.events[name];\n if (!cbs) {\n cbs = this.events[name] = [];\n }\n cbs.push(cb);\n },\n\n emit: function (name, evt) {\n each(this.events[name], function (cb) {\n cb(evt);\n });\n if (name === 'error') {\n //Now that the error handler was triggered, remove\n //the listeners, since this broken Module instance\n //can stay around for a while in the registry.\n delete this.events[name];\n }\n }\n };\n\n function callGetModule(args) {\n //Skip modules already defined.\n if (!hasProp(defined, args[0])) {\n getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]);\n }\n }\n\n function removeListener(node, func, name, ieName) {\n //Favor detachEvent because of IE9\n //issue, see attachEvent/addEventListener comment elsewhere\n //in this file.\n if (node.detachEvent && !isOpera) {\n //Probably IE. If not it will throw an error, which will be\n //useful to know.\n if (ieName) {\n node.detachEvent(ieName, func);\n }\n } else {\n node.removeEventListener(name, func, false);\n }\n }\n\n /**\n * Given an event from a script node, get the requirejs info from it,\n * and then removes the event listeners on the node.\n * @param {Event} evt\n * @returns {Object}\n */\n function getScriptData(evt) {\n //Using currentTarget instead of target for Firefox 2.0's sake. Not\n //all old browsers will be supported, but this one was easy enough\n //to support and still makes sense.\n var node = evt.currentTarget || evt.srcElement;\n\n //Remove the listeners once here.\n removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange');\n removeListener(node, context.onScriptError, 'error');\n\n return {\n node: node,\n id: node && node.getAttribute('data-requiremodule')\n };\n }\n\n function intakeDefines() {\n var args;\n\n //Any defined modules in the global queue, intake them now.\n takeGlobalQueue();\n\n //Make sure any remaining defQueue items get properly processed.\n while (defQueue.length) {\n args = defQueue.shift();\n if (args[0] === null) {\n return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' +\n args[args.length - 1]));\n } else {\n //args are id, deps, factory. Should be normalized by the\n //define() function.\n callGetModule(args);\n }\n }\n context.defQueueMap = {};\n }\n\n context = {\n config: config,\n contextName: contextName,\n registry: registry,\n defined: defined,\n urlFetched: urlFetched,\n defQueue: defQueue,\n defQueueMap: {},\n Module: Module,\n makeModuleMap: makeModuleMap,\n nextTick: req.nextTick,\n onError: onError,\n\n /**\n * Set a configuration for the context.\n * @param {Object} cfg config object to integrate.\n */\n configure: function (cfg) {\n //Make sure the baseUrl ends in a slash.\n if (cfg.baseUrl) {\n if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {\n cfg.baseUrl += '/';\n }\n }\n\n // Convert old style urlArgs string to a function.\n if (typeof cfg.urlArgs === 'string') {\n var urlArgs = cfg.urlArgs;\n cfg.urlArgs = function(id, url) {\n return (url.indexOf('?') === -1 ? '?' : '&') + urlArgs;\n };\n }\n\n //Save off the paths since they require special processing,\n //they are additive.\n var shim = config.shim,\n objs = {\n paths: true,\n bundles: true,\n config: true,\n map: true\n };\n\n eachProp(cfg, function (value, prop) {\n if (objs[prop]) {\n if (!config[prop]) {\n config[prop] = {};\n }\n mixin(config[prop], value, true, true);\n } else {\n config[prop] = value;\n }\n });\n\n //Reverse map the bundles\n if (cfg.bundles) {\n eachProp(cfg.bundles, function (value, prop) {\n each(value, function (v) {\n if (v !== prop) {\n bundlesMap[v] = prop;\n }\n });\n });\n }\n\n //Merge shim\n if (cfg.shim) {\n eachProp(cfg.shim, function (value, id) {\n //Normalize the structure\n if (isArray(value)) {\n value = {\n deps: value\n };\n }\n if ((value.exports || value.init) && !value.exportsFn) {\n value.exportsFn = context.makeShimExports(value);\n }\n shim[id] = value;\n });\n config.shim = shim;\n }\n\n //Adjust packages if necessary.\n if (cfg.packages) {\n each(cfg.packages, function (pkgObj) {\n var location, name;\n\n pkgObj = typeof pkgObj === 'string' ? {name: pkgObj} : pkgObj;\n\n name = pkgObj.name;\n location = pkgObj.location;\n if (location) {\n config.paths[name] = pkgObj.location;\n }\n\n //Save pointer to main module ID for pkg name.\n //Remove leading dot in main, so main paths are normalized,\n //and remove any trailing .js, since different package\n //envs have different conventions: some use a module name,\n //some use a file name.\n config.pkgs[name] = pkgObj.name + '/' + (pkgObj.main || 'main')\n .replace(currDirRegExp, '')\n .replace(jsSuffixRegExp, '');\n });\n }\n\n //If there are any \"waiting to execute\" modules in the registry,\n //update the maps for them, since their info, like URLs to load,\n //may have changed.\n eachProp(registry, function (mod, id) {\n //If module already has init called, since it is too\n //late to modify them, and ignore unnormalized ones\n //since they are transient.\n if (!mod.inited && !mod.map.unnormalized) {\n mod.map = makeModuleMap(id, null, true);\n }\n });\n\n //If a deps array or a config callback is specified, then call\n //require with those args. This is useful when require is defined as a\n //config object before require.js is loaded.\n if (cfg.deps || cfg.callback) {\n context.require(cfg.deps || [], cfg.callback);\n }\n },\n\n makeShimExports: function (value) {\n function fn() {\n var ret;\n if (value.init) {\n ret = value.init.apply(global, arguments);\n }\n return ret || (value.exports && getGlobal(value.exports));\n }\n return fn;\n },\n\n makeRequire: function (relMap, options) {\n options = options || {};\n\n function localRequire(deps, callback, errback) {\n var id, map, requireMod;\n\n if (options.enableBuildCallback && callback && isFunction(callback)) {\n callback.__requireJsBuild = true;\n }\n\n if (typeof deps === 'string') {\n if (isFunction(callback)) {\n //Invalid call\n return onError(makeError('requireargs', 'Invalid require call'), errback);\n }\n\n //If require|exports|module are requested, get the\n //value for them from the special handlers. Caveat:\n //this only works while module is being defined.\n if (relMap && hasProp(handlers, deps)) {\n return handlers[deps](registry[relMap.id]);\n }\n\n //Synchronous access to one module. If require.get is\n //available (as in the Node adapter), prefer that.\n if (req.get) {\n return req.get(context, deps, relMap, localRequire);\n }\n\n //Normalize module name, if it contains . or ..\n map = makeModuleMap(deps, relMap, false, true);\n id = map.id;\n\n if (!hasProp(defined, id)) {\n return onError(makeError('notloaded', 'Module name \"' +\n id +\n '\" has not been loaded yet for context: ' +\n contextName +\n (relMap ? '' : '. Use require([])')));\n }\n return defined[id];\n }\n\n //Grab defines waiting in the global queue.\n intakeDefines();\n\n //Mark all the dependencies as needing to be loaded.\n context.nextTick(function () {\n //Some defines could have been added since the\n //require call, collect them.\n intakeDefines();\n\n requireMod = getModule(makeModuleMap(null, relMap));\n\n //Store if map config should be applied to this require\n //call for dependencies.\n requireMod.skipMap = options.skipMap;\n\n requireMod.init(deps, callback, errback, {\n enabled: true\n });\n\n checkLoaded();\n });\n\n return localRequire;\n }\n\n mixin(localRequire, {\n isBrowser: isBrowser,\n\n /**\n * Converts a module name + .extension into an URL path.\n * *Requires* the use of a module name. It does not support using\n * plain URLs like nameToUrl.\n */\n toUrl: function (moduleNamePlusExt) {\n var ext,\n index = moduleNamePlusExt.lastIndexOf('.'),\n segment = moduleNamePlusExt.split('/')[0],\n isRelative = segment === '.' || segment === '..';\n\n //Have a file extension alias, and it is not the\n //dots from a relative path.\n if (index !== -1 && (!isRelative || index > 1)) {\n ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length);\n moduleNamePlusExt = moduleNamePlusExt.substring(0, index);\n }\n\n return context.nameToUrl(normalize(moduleNamePlusExt,\n relMap && relMap.id, true), ext, true);\n },\n\n defined: function (id) {\n return hasProp(defined, makeModuleMap(id, relMap, false, true).id);\n },\n\n specified: function (id) {\n id = makeModuleMap(id, relMap, false, true).id;\n return hasProp(defined, id) || hasProp(registry, id);\n }\n });\n\n //Only allow undef on top level require calls\n if (!relMap) {\n localRequire.undef = function (id) {\n //Bind any waiting define() calls to this context,\n //fix for #408\n takeGlobalQueue();\n\n var map = makeModuleMap(id, relMap, true),\n mod = getOwn(registry, id);\n\n mod.undefed = true;\n removeScript(id);\n\n delete defined[id];\n delete urlFetched[map.url];\n delete undefEvents[id];\n\n //Clean queued defines too. Go backwards\n //in array so that the splices do not\n //mess up the iteration.\n eachReverse(defQueue, function(args, i) {\n if (args[0] === id) {\n defQueue.splice(i, 1);\n }\n });\n delete context.defQueueMap[id];\n\n if (mod) {\n //Hold on to listeners in case the\n //module will be attempted to be reloaded\n //using a different config.\n if (mod.events.defined) {\n undefEvents[id] = mod.events;\n }\n\n cleanRegistry(id);\n }\n };\n }\n\n return localRequire;\n },\n\n /**\n * Called to enable a module if it is still in the registry\n * awaiting enablement. A second arg, parent, the parent module,\n * is passed in for context, when this method is overridden by\n * the optimizer. Not shown here to keep code compact.\n */\n enable: function (depMap) {\n var mod = getOwn(registry, depMap.id);\n if (mod) {\n getModule(depMap).enable();\n }\n },\n\n /**\n * Internal method used by environment adapters to complete a load event.\n * A load event could be a script load or just a load pass from a synchronous\n * load call.\n * @param {String} moduleName the name of the module to potentially complete.\n */\n completeLoad: function (moduleName) {\n var found, args, mod,\n shim = getOwn(config.shim, moduleName) || {},\n shExports = shim.exports;\n\n takeGlobalQueue();\n\n while (defQueue.length) {\n args = defQueue.shift();\n if (args[0] === null) {\n args[0] = moduleName;\n //If already found an anonymous module and bound it\n //to this name, then this is some other anon module\n //waiting for its completeLoad to fire.\n if (found) {\n break;\n }\n found = true;\n } else if (args[0] === moduleName) {\n //Found matching define call for this script!\n found = true;\n }\n\n callGetModule(args);\n }\n context.defQueueMap = {};\n\n //Do this after the cycle of callGetModule in case the result\n //of those calls/init calls changes the registry.\n mod = getOwn(registry, moduleName);\n\n if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) {\n if (config.enforceDefine && (!shExports || !getGlobal(shExports))) {\n if (hasPathFallback(moduleName)) {\n return;\n } else {\n return onError(makeError('nodefine',\n 'No define call for ' + moduleName,\n null,\n [moduleName]));\n }\n } else {\n //A script that does not call define(), so just simulate\n //the call for it.\n callGetModule([moduleName, (shim.deps || []), shim.exportsFn]);\n }\n }\n\n checkLoaded();\n },\n\n /**\n * Converts a module name to a file path. Supports cases where\n * moduleName may actually be just an URL.\n * Note that it **does not** call normalize on the moduleName,\n * it is assumed to have already been normalized. This is an\n * internal API, not a public one. Use toUrl for the public API.\n */\n nameToUrl: function (moduleName, ext, skipExt) {\n var paths, syms, i, parentModule, url,\n parentPath, bundleId,\n pkgMain = getOwn(config.pkgs, moduleName);\n\n if (pkgMain) {\n moduleName = pkgMain;\n }\n\n bundleId = getOwn(bundlesMap, moduleName);\n\n if (bundleId) {\n return context.nameToUrl(bundleId, ext, skipExt);\n }\n\n //If a colon is in the URL, it indicates a protocol is used and it is just\n //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)\n //or ends with .js, then assume the user meant to use an url and not a module id.\n //The slash is important for protocol-less URLs as well as full paths.\n if (req.jsExtRegExp.test(moduleName)) {\n //Just a plain path, not module name lookup, so just return it.\n //Add extension if it is included. This is a bit wonky, only non-.js things pass\n //an extension, this method probably needs to be reworked.\n url = moduleName + (ext || '');\n } else {\n //A module that needs to be converted to a path.\n paths = config.paths;\n\n syms = moduleName.split('/');\n //For each module name segment, see if there is a path\n //registered for it. Start with most specific name\n //and work up from it.\n for (i = syms.length; i > 0; i -= 1) {\n parentModule = syms.slice(0, i).join('/');\n\n parentPath = getOwn(paths, parentModule);\n if (parentPath) {\n //If an array, it means there are a few choices,\n //Choose the one that is desired\n if (isArray(parentPath)) {\n parentPath = parentPath[0];\n }\n syms.splice(0, i, parentPath);\n break;\n }\n }\n\n //Join the path parts together, then figure out if baseUrl is needed.\n url = syms.join('/');\n url += (ext || (/^data\\:|^blob\\:|\\?/.test(url) || skipExt ? '' : '.js'));\n url = (url.charAt(0) === '/' || url.match(/^[\\w\\+\\.\\-]+:/) ? '' : config.baseUrl) + url;\n }\n\n return config.urlArgs && !/^blob\\:/.test(url) ?\n url + config.urlArgs(moduleName, url) : url;\n },\n\n //Delegates to req.load. Broken out as a separate function to\n //allow overriding in the optimizer.\n load: function (id, url) {\n req.load(context, id, url);\n },\n\n /**\n * Executes a module callback function. Broken out as a separate function\n * solely to allow the build system to sequence the files in the built\n * layer in the right sequence.\n *\n * @private\n */\n execCb: function (name, callback, args, exports) {\n return callback.apply(exports, args);\n },\n\n /**\n * callback for script loads, used to check status of loading.\n *\n * @param {Event} evt the event from the browser for the script\n * that was loaded.\n */\n onScriptLoad: function (evt) {\n //Using currentTarget instead of target for Firefox 2.0's sake. Not\n //all old browsers will be supported, but this one was easy enough\n //to support and still makes sense.\n if (evt.type === 'load' ||\n (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) {\n //Reset interactive script so a script node is not held onto for\n //to long.\n interactiveScript = null;\n\n //Pull out the name of the module and the context.\n var data = getScriptData(evt);\n context.completeLoad(data.id);\n }\n },\n\n /**\n * Callback for script errors.\n */\n onScriptError: function (evt) {\n var data = getScriptData(evt);\n if (!hasPathFallback(data.id)) {\n var parents = [];\n eachProp(registry, function(value, key) {\n if (key.indexOf('_@r') !== 0) {\n each(value.depMaps, function(depMap) {\n if (depMap.id === data.id) {\n parents.push(key);\n return true;\n }\n });\n }\n });\n return onError(makeError('scripterror', 'Script error for \"' + data.id +\n (parents.length ?\n '\", needed by: ' + parents.join(', ') :\n '\"'), evt, [data.id]));\n }\n }\n };\n\n context.require = context.makeRequire();\n return context;\n }\n\n /**\n * Main entry point.\n *\n * If the only argument to require is a string, then the module that\n * is represented by that string is fetched for the appropriate context.\n *\n * If the first argument is an array, then it will be treated as an array\n * of dependency string names to fetch. An optional function callback can\n * be specified to execute when all of those dependencies are available.\n *\n * Make a local req variable to help Caja compliance (it assumes things\n * on a require that are not standardized), and to give a short\n * name for minification/local scope use.\n */\n req = requirejs = function (deps, callback, errback, optional) {\n\n //Find the right context, use default\n var context, config,\n contextName = defContextName;\n\n // Determine if have config object in the call.\n if (!isArray(deps) && typeof deps !== 'string') {\n // deps is a config object\n config = deps;\n if (isArray(callback)) {\n // Adjust args if there are dependencies\n deps = callback;\n callback = errback;\n errback = optional;\n } else {\n deps = [];\n }\n }\n\n if (config && config.context) {\n contextName = config.context;\n }\n\n context = getOwn(contexts, contextName);\n if (!context) {\n context = contexts[contextName] = req.s.newContext(contextName);\n }\n\n if (config) {\n context.configure(config);\n }\n\n return context.require(deps, callback, errback);\n };\n\n /**\n * Support require.config() to make it easier to cooperate with other\n * AMD loaders on globally agreed names.\n */\n req.config = function (config) {\n return req(config);\n };\n\n /**\n * Execute something after the current tick\n * of the event loop. Override for other envs\n * that have a better solution than setTimeout.\n * @param {Function} fn function to execute later.\n */\n req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {\n setTimeout(fn, 4);\n } : function (fn) { fn(); };\n\n /**\n * Export require as a global, but only if it does not already exist.\n */\n if (!require) {\n require = req;\n }\n\n req.version = version;\n\n //Used to filter out dependencies that are already paths.\n req.jsExtRegExp = /^\\/|:|\\?|\\.js$/;\n req.isBrowser = isBrowser;\n s = req.s = {\n contexts: contexts,\n newContext: newContext\n };\n\n //Create default context.\n req({});\n\n //Exports some context-sensitive methods on global require.\n each([\n 'toUrl',\n 'undef',\n 'defined',\n 'specified'\n ], function (prop) {\n //Reference from contexts instead of early binding to default context,\n //so that during builds, the latest instance of the default context\n //with its config gets used.\n req[prop] = function () {\n var ctx = contexts[defContextName];\n return ctx.require[prop].apply(ctx, arguments);\n };\n });\n\n if (isBrowser) {\n head = s.head = document.getElementsByTagName('head')[0];\n //If BASE tag is in play, using appendChild is a problem for IE6.\n //When that browser dies, this can be removed. Details in this jQuery bug:\n //http://dev.jquery.com/ticket/2709\n baseElement = document.getElementsByTagName('base')[0];\n if (baseElement) {\n head = s.head = baseElement.parentNode;\n }\n }\n\n /**\n * Any errors that require explicitly generates will be passed to this\n * function. Intercept/override it if you want custom error handling.\n * @param {Error} err the error object.\n */\n req.onError = defaultOnError;\n\n /**\n * Creates the node for the load command. Only used in browser envs.\n */\n req.createNode = function (config, moduleName, url) {\n var node = config.xhtml ?\n document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') :\n document.createElement('script');\n node.type = config.scriptType || 'text/javascript';\n node.charset = 'utf-8';\n node.async = true;\n return node;\n };\n\n /**\n * Does the request to load a module for the browser case.\n * Make this a separate function to allow other environments\n * to override it.\n *\n * @param {Object} context the require context to find state.\n * @param {String} moduleName the name of the module.\n * @param {Object} url the URL to the module.\n */\n req.load = function (context, moduleName, url) {\n var config = (context && context.config) || {},\n node;\n if (isBrowser) {\n //In the browser so use a script tag\n node = req.createNode(config, moduleName, url);\n\n node.setAttribute('data-requirecontext', context.contextName);\n node.setAttribute('data-requiremodule', moduleName);\n\n //Set up load listener. Test attachEvent first because IE9 has\n //a subtle issue in its addEventListener and script onload firings\n //that do not match the behavior of all other browsers with\n //addEventListener support, which fire the onload event for a\n //script right after the script execution. See:\n //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution\n //UNFORTUNATELY Opera implements attachEvent but does not follow the script\n //script execution mode.\n if (node.attachEvent &&\n //Check if node.attachEvent is artificially added by custom script or\n //natively supported by browser\n //read https://github.com/requirejs/requirejs/issues/187\n //if we can NOT find [native code] then it must NOT natively supported.\n //in IE8, node.attachEvent does not have toString()\n //Note the test for \"[native code\" with no closing brace, see:\n //https://github.com/requirejs/requirejs/issues/273\n !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) &&\n !isOpera) {\n //Probably IE. IE (at least 6-8) do not fire\n //script onload right after executing the script, so\n //we cannot tie the anonymous define call to a name.\n //However, IE reports the script as being in 'interactive'\n //readyState at the time of the define call.\n useInteractive = true;\n\n node.attachEvent('onreadystatechange', context.onScriptLoad);\n //It would be great to add an error handler here to catch\n //404s in IE9+. However, onreadystatechange will fire before\n //the error handler, so that does not help. If addEventListener\n //is used, then IE will fire error before load, but we cannot\n //use that pathway given the connect.microsoft.com issue\n //mentioned above about not doing the 'script execute,\n //then fire the script load event listener before execute\n //next script' that other browsers do.\n //Best hope: IE10 fixes the issues,\n //and then destroys all installs of IE 6-9.\n //node.attachEvent('onerror', context.onScriptError);\n } else {\n node.addEventListener('load', context.onScriptLoad, false);\n node.addEventListener('error', context.onScriptError, false);\n }\n node.src = url;\n\n //Calling onNodeCreated after all properties on the node have been\n //set, but before it is placed in the DOM.\n if (config.onNodeCreated) {\n config.onNodeCreated(node, config, moduleName, url);\n }\n\n //For some cache cases in IE 6-8, the script executes before the end\n //of the appendChild execution, so to tie an anonymous define\n //call to the module name (which is stored on the node), hold on\n //to a reference to this node, but clear after the DOM insertion.\n currentlyAddingScript = node;\n if (baseElement) {\n head.insertBefore(node, baseElement);\n } else {\n head.appendChild(node);\n }\n currentlyAddingScript = null;\n\n return node;\n } else if (isWebWorker) {\n try {\n //In a web worker, use importScripts. This is not a very\n //efficient use of importScripts, importScripts will block until\n //its script is downloaded and evaluated. However, if web workers\n //are in play, the expectation is that a build has been done so\n //that only one script needs to be loaded anyway. This may need\n //to be reevaluated if other use cases become common.\n\n // Post a task to the event loop to work around a bug in WebKit\n // where the worker gets garbage-collected after calling\n // importScripts(): https://webkit.org/b/153317\n setTimeout(function() {}, 0);\n importScripts(url);\n\n //Account for anonymous modules\n context.completeLoad(moduleName);\n } catch (e) {\n context.onError(makeError('importscripts',\n 'importScripts failed for ' +\n moduleName + ' at ' + url,\n e,\n [moduleName]));\n }\n }\n };\n\n function getInteractiveScript() {\n if (interactiveScript && interactiveScript.readyState === 'interactive') {\n return interactiveScript;\n }\n\n eachReverse(scripts(), function (script) {\n if (script.readyState === 'interactive') {\n return (interactiveScript = script);\n }\n });\n return interactiveScript;\n }\n\n //Look for a data-main script attribute, which could also adjust the baseUrl.\n if (isBrowser && !cfg.skipDataMain) {\n //Figure out baseUrl. Get it from the script tag with require.js in it.\n eachReverse(scripts(), function (script) {\n //Set the 'head' where we can append children by\n //using the script's parent.\n if (!head) {\n head = script.parentNode;\n }\n\n //Look for a data-main attribute to set main script for the page\n //to load. If it is there, the path to data main becomes the\n //baseUrl, if it is not already set.\n dataMain = script.getAttribute('data-main');\n if (dataMain) {\n //Preserve dataMain in case it is a path (i.e. contains '?')\n mainScript = dataMain;\n\n //Set final baseUrl if there is not already an explicit one,\n //but only do so if the data-main value is not a loader plugin\n //module ID.\n if (!cfg.baseUrl && mainScript.indexOf('!') === -1) {\n //Pull off the directory of data-main for use as the\n //baseUrl.\n src = mainScript.split('/');\n mainScript = src.pop();\n subPath = src.length ? src.join('/') + '/' : './';\n\n cfg.baseUrl = subPath;\n }\n\n //Strip off any trailing .js since mainScript is now\n //like a module name.\n mainScript = mainScript.replace(jsSuffixRegExp, '');\n\n //If mainScript is still a path, fall back to dataMain\n if (req.jsExtRegExp.test(mainScript)) {\n mainScript = dataMain;\n }\n\n //Put the data-main script in the files to load.\n cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [mainScript];\n\n return true;\n }\n });\n }\n\n /**\n * The function that handles definitions of modules. Differs from\n * require() in that a string for the module should be the first argument,\n * and the function to execute after dependencies are loaded should\n * return a value to define the module corresponding to the first argument's\n * name.\n */\n define = function (name, deps, callback) {\n var node, context;\n\n //Allow for anonymous modules\n if (typeof name !== 'string') {\n //Adjust args appropriately\n callback = deps;\n deps = name;\n name = null;\n }\n\n //This module may not have dependencies\n if (!isArray(deps)) {\n callback = deps;\n deps = null;\n }\n\n //If no name, and callback is a function, then figure out if it a\n //CommonJS thing with dependencies.\n if (!deps && isFunction(callback)) {\n deps = [];\n //Remove comments from the callback string,\n //look for require calls, and pull them into the dependencies,\n //but only if there are function args.\n if (callback.length) {\n callback\n .toString()\n .replace(commentRegExp, commentReplace)\n .replace(cjsRequireRegExp, function (match, dep) {\n deps.push(dep);\n });\n\n //May be a CommonJS thing even without require calls, but still\n //could use exports, and module. Avoid doing exports and module\n //work though if it just needs require.\n //REQUIRES the function to expect the CommonJS variables in the\n //order listed below.\n deps = (callback.length === 1 ? ['require'] : ['require', 'exports', 'module']).concat(deps);\n }\n }\n\n //If in IE 6-8 and hit an anonymous define() call, do the interactive\n //work.\n if (useInteractive) {\n node = currentlyAddingScript || getInteractiveScript();\n if (node) {\n if (!name) {\n name = node.getAttribute('data-requiremodule');\n }\n context = contexts[node.getAttribute('data-requirecontext')];\n }\n }\n\n //Always save off evaluating the def call until the script onload handler.\n //This allows multiple modules to be in a file without prematurely\n //tracing dependencies, and allows for anonymous module support,\n //where the module name is not known until the script onload event\n //occurs. If no context, use the global queue, and get it processed\n //in the onscript load callback.\n if (context) {\n context.defQueue.push([name, deps, callback]);\n context.defQueueMap[name] = true;\n } else {\n globalDefQueue.push([name, deps, callback]);\n }\n };\n\n define.amd = {\n jQuery: true\n };\n\n /**\n * Executes the text. Normally just uses eval, but can be modified\n * to use a better, environment-specific call. Only used for transpiling\n * loader plugins, not for plain JS modules.\n * @param {String} text the text to execute/evaluate.\n */\n req.exec = function (text) {\n /*jslint evil: true */\n return eval(text);\n };\n\n //Set up with config info.\n req(cfg);\n}(this, (typeof setTimeout === 'undefined' ? undefined : setTimeout)));\n\ndefine(\"deps/require\", function(){});\n\n", - "var hyperHTML = (function (global) {\n 'use strict';\n\n var G = document.defaultView;\n\n // Node.CONSTANTS\n // 'cause some engine has no global Node defined\n // (i.e. Node, NativeScript, basicHTML ... )\n var ELEMENT_NODE = 1;\n var TEXT_NODE = 3;\n var COMMENT_NODE = 8;\n var DOCUMENT_FRAGMENT_NODE = 11;\n\n // HTML related constants\n var VOID_ELEMENTS = /^area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr$/i;\n\n // SVG related constants\n var OWNER_SVG_ELEMENT = 'ownerSVGElement';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\n // Custom Elements / MutationObserver constants\n var CONNECTED = 'connected';\n var DISCONNECTED = 'dis' + CONNECTED;\n\n // hyperHTML related constants\n var EXPANDO = '_hyper: ';\n var SHOULD_USE_TEXT_CONTENT = /^style|textarea$/i;\n var UID = EXPANDO + (Math.random() * new Date() | 0) + ';';\n var UIDC = '';\n\n // you know that kind of basics you need to cover\n // your use case only but you don't want to bloat the library?\n // There's even a package in here:\n // https://www.npmjs.com/package/poorlyfills\n\n // used to dispatch simple events\n var Event = G.Event;\n try {\n new Event('Event');\n } catch (o_O) {\n Event = function Event(type) {\n var e = document.createEvent('Event');\n e.initEvent(type, false, false);\n return e;\n };\n }\n\n // used to store template literals\n /* istanbul ignore next */\n var Map = G.Map || function Map() {\n var keys = [],\n values = [];\n return {\n get: function get(obj) {\n return values[keys.indexOf(obj)];\n },\n set: function set(obj, value) {\n values[keys.push(obj) - 1] = value;\n }\n };\n };\n\n // used to store wired content\n var ID = 0;\n var WeakMap = G.WeakMap || function WeakMap() {\n var key = UID + ID++;\n return {\n get: function get(obj) {\n return obj[key];\n },\n set: function set(obj, value) {\n Object.defineProperty(obj, key, {\n configurable: true,\n value: value\n });\n }\n };\n };\n\n // used to store hyper.Components\n var WeakSet = G.WeakSet || function WeakSet() {\n var wm = new WeakMap();\n return {\n add: function add(obj) {\n wm.set(obj, true);\n },\n has: function has(obj) {\n return wm.get(obj) === true;\n }\n };\n };\n\n // used to be sure IE9 or older Androids work as expected\n var isArray = Array.isArray || function (toString) {\n return function (arr) {\n return toString.call(arr) === '[object Array]';\n };\n }({}.toString);\n\n var trim = UID.trim || function () {\n return this.replace(/^\\s+|\\s+$/g, '');\n };\n\n // hyperHTML.Component is a very basic class\n // able to create Custom Elements like components\n // including the ability to listen to connect/disconnect\n // events via onconnect/ondisconnect attributes\n // Components can be created imperatively or declaratively.\n // The main difference is that declared components\n // will not automatically render on setState(...)\n // to simplify state handling on render.\n function Component() {\n return this; // this is needed in Edge !!!\n }\n\n // Component is lazily setup because it needs\n // wire mechanism as lazy content\n function setup(content) {\n // there are various weakly referenced variables in here\n // and mostly are to use Component.for(...) static method.\n var children = new WeakMap();\n var create = Object.create;\n var createEntry = function createEntry(wm, id, component) {\n wm.set(id, component);\n return component;\n };\n var get = function get(Class, info, context, id) {\n var relation = info.get(Class) || relate(Class, info);\n switch (typeof id) {\n case 'object':\n case 'function':\n var wm = relation.w || (relation.w = new WeakMap());\n return wm.get(id) || createEntry(wm, id, new Class(context));\n default:\n var sm = relation.p || (relation.p = create(null));\n return sm[id] || (sm[id] = new Class(context));\n }\n };\n var relate = function relate(Class, info) {\n var relation = { w: null, p: null };\n info.set(Class, relation);\n return relation;\n };\n var set = function set(context) {\n var info = new Map();\n children.set(context, info);\n return info;\n };\n // The Component Class\n Object.defineProperties(Component, {\n // Component.for(context[, id]) is a convenient way\n // to automatically relate data/context to children components\n // If not created yet, the new Component(context) is weakly stored\n // and after that same instance would always be returned.\n for: {\n configurable: true,\n value: function value(context, id) {\n return get(this, children.get(context) || set(context), context, id == null ? 'default' : id);\n }\n }\n });\n Object.defineProperties(Component.prototype, {\n // all events are handled with the component as context\n handleEvent: {\n value: function value(e) {\n var ct = e.currentTarget;\n this['getAttribute' in ct && ct.getAttribute('data-call') || 'on' + e.type](e);\n }\n },\n // components will lazily define html or svg properties\n // as soon as these are invoked within the .render() method\n // Such render() method is not provided by the base class\n // but it must be available through the Component extend.\n // Declared components could implement a\n // render(props) method too and use props as needed.\n html: lazyGetter('html', content),\n svg: lazyGetter('svg', content),\n // the state is a very basic/simple mechanism inspired by Preact\n state: lazyGetter('state', function () {\n return this.defaultState;\n }),\n // it is possible to define a default state that'd be always an object otherwise\n defaultState: {\n get: function get() {\n return {};\n }\n },\n // setting some property state through a new object\n // or a callback, triggers also automatically a render\n // unless explicitly specified to not do so (render === false)\n setState: {\n value: function value(state, render) {\n var target = this.state;\n var source = typeof state === 'function' ? state.call(this, target) : state;\n for (var key in source) {\n target[key] = source[key];\n }if (render !== false) this.render();\n return this;\n }\n }\n });\n }\n\n // instead of a secret key I could've used a WeakMap\n // However, attaching a property directly will result\n // into better performance with thousands of components\n // hanging around, and less memory pressure caused by the WeakMap\n var lazyGetter = function lazyGetter(type, fn) {\n var secret = '_' + type + '$';\n return {\n get: function get() {\n return this[secret] || (this[type] = fn.call(this, type));\n },\n set: function set(value) {\n Object.defineProperty(this, secret, { configurable: true, value: value });\n }\n };\n };\n\n var intents = {};\n var keys = [];\n var hasOwnProperty = intents.hasOwnProperty;\n\n var length = 0;\n\n var Intent = {\n\n // hyperHTML.define('intent', (object, update) => {...})\n // can be used to define a third parts update mechanism\n // when every other known mechanism failed.\n // hyper.define('user', info => info.name);\n // hyper(node)`

${{user}}

`;\n define: function define(intent, callback) {\n if (!(intent in intents)) {\n length = keys.push(intent);\n }\n intents[intent] = callback;\n },\n\n // this method is used internally as last resort\n // to retrieve a value out of an object\n invoke: function invoke(object, callback) {\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (hasOwnProperty.call(object, key)) {\n return intents[key](object[key], callback);\n }\n }\n }\n };\n\n // these are tiny helpers to simplify most common operations needed here\n var create = function create(node, type) {\n return doc(node).createElement(type);\n };\n var doc = function doc(node) {\n return node.ownerDocument || node;\n };\n var fragment = function fragment(node) {\n return doc(node).createDocumentFragment();\n };\n var text = function text(node, _text) {\n return doc(node).createTextNode(_text);\n };\n\n // TODO: I'd love to code-cover RegExp too here\n // these are fundamental for this library\n\n var spaces = ' \\\\f\\\\n\\\\r\\\\t';\n var almostEverything = '[^ ' + spaces + '\\\\/>\"\\'=]+';\n var attrName = '[ ' + spaces + ']+' + almostEverything;\n var tagName = '<([A-Za-z]+[A-Za-z0-9:_-]*)((?:';\n var attrPartials = '(?:=(?:\\'[^\\']*?\\'|\"[^\"]*?\"|<[^>]*?>|' + almostEverything + '))?)';\n\n var attrSeeker = new RegExp(tagName + attrName + attrPartials + '+)([ ' + spaces + ']*/?>)', 'g');\n\n var selfClosing = new RegExp(tagName + attrName + attrPartials + '*)([ ' + spaces + ']*/>)', 'g');\n\n var testFragment = fragment(document);\n\n // DOM4 node.append(...many)\n var hasAppend = 'append' in testFragment;\n\n // detect old browsers without HTMLTemplateElement content support\n var hasContent = 'content' in create(document, 'template');\n\n // IE 11 has problems with cloning templates: it \"forgets\" empty childNodes\n testFragment.appendChild(text(testFragment, 'g'));\n testFragment.appendChild(text(testFragment, ''));\n var hasDoomedCloneNode = testFragment.cloneNode(true).childNodes.length === 1;\n\n // old browsers need to fallback to cloneNode\n // Custom Elements V0 and V1 will work polyfilled\n // but native implementations need importNode instead\n // (specially Chromium and its old V0 implementation)\n var hasImportNode = 'importNode' in document;\n\n // appends an array of nodes\n // to a generic node/fragment\n // When available, uses append passing all arguments at once\n // hoping that's somehow faster, even if append has more checks on type\n var append = hasAppend ? function (node, childNodes) {\n node.append.apply(node, childNodes);\n } : function (node, childNodes) {\n var length = childNodes.length;\n for (var i = 0; i < length; i++) {\n node.appendChild(childNodes[i]);\n }\n };\n\n var findAttributes = new RegExp('(' + attrName + '=)([\\'\"]?)' + UIDC + '\\\\2', 'gi');\n var comments = function comments($0, $1, $2, $3) {\n return '<' + $1 + $2.replace(findAttributes, replaceAttributes) + $3;\n };\n var replaceAttributes = function replaceAttributes($0, $1, $2) {\n return $1 + ($2 || '\"') + UID + ($2 || '\"');\n };\n\n // given a node and a generic HTML content,\n // create either an SVG or an HTML fragment\n // where such content will be injected\n var createFragment = function createFragment(node, html) {\n return (OWNER_SVG_ELEMENT in node ? SVGFragment : HTMLFragment)(node, html.replace(attrSeeker, comments));\n };\n\n // IE/Edge shenanigans proof cloneNode\n // it goes through all nodes manually\n // instead of relying the engine to suddenly\n // merge nodes together\n var cloneNode = hasDoomedCloneNode ? function (node) {\n var clone = node.cloneNode();\n var childNodes = node.childNodes ||\n // this is an excess of caution\n // but some node, in IE, might not\n // have childNodes property.\n // The following fallback ensure working code\n // in older IE without compromising performance\n // or any other browser/engine involved.\n /* istanbul ignore next */\n [];\n var length = childNodes.length;\n for (var i = 0; i < length; i++) {\n clone.appendChild(cloneNode(childNodes[i]));\n }\n return clone;\n } :\n // the following ignore is due code-coverage\n // combination of not having document.importNode\n // but having a working node.cloneNode.\n // This shenario is common on older Android/WebKit browsers\n // but basicHTML here tests just two major cases:\n // with document.importNode or with broken cloneNode.\n /* istanbul ignore next */\n function (node) {\n return node.cloneNode(true);\n };\n\n // used to import html into fragments\n var importNode = hasImportNode ? function (doc$$1, node) {\n return doc$$1.importNode(node, true);\n } : function (doc$$1, node) {\n return cloneNode(node);\n };\n\n // just recycling a one-off array to use slice\n // in every needed place\n var slice = [].slice;\n\n // lazy evaluated, returns the unique identity\n // of a template literal, as tempalte literal itself.\n // By default, ES2015 template literals are unique\n // tag`a${1}z` === tag`a${2}z`\n // even if interpolated values are different\n // the template chunks are in a frozen Array\n // that is identical each time you use the same\n // literal to represent same static content\n // around its own interpolations.\n var unique = function unique(template) {\n return _TL(template);\n };\n\n // TL returns a unique version of the template\n // it needs lazy feature detection\n // (cannot trust literals with transpiled code)\n var _TL = function TL(template) {\n if (\n // TypeScript template literals are not standard\n template.propertyIsEnumerable('raw') ||\n // Firefox < 55 has not standard implementation neither\n /Firefox\\/(\\d+)/.test((G.navigator || {}).userAgent) && parseFloat(RegExp.$1) < 55) {\n // in these cases, address templates once\n var templateObjects = {};\n // but always return the same template\n _TL = function TL(template) {\n var key = '_' + template.join(UID);\n return templateObjects[key] || (templateObjects[key] = template);\n };\n } else {\n // make TL an identity like function\n _TL = function TL(template) {\n return template;\n };\n }\n return _TL(template);\n };\n\n // create document fragments via native template\n // with a fallback for browsers that won't be able\n // to deal with some injected element such or others\n var HTMLFragment = hasContent ? function (node, html) {\n var container = create(node, 'template');\n container.innerHTML = html;\n return container.content;\n } : function (node, html) {\n var container = create(node, 'template');\n var content = fragment(node);\n if (/^[^\\S]*?<(col(?:group)?|t(?:head|body|foot|r|d|h))/i.test(html)) {\n var selector = RegExp.$1;\n container.innerHTML = '' + html + '
';\n append(content, slice.call(container.querySelectorAll(selector)));\n } else {\n container.innerHTML = html;\n append(content, slice.call(container.childNodes));\n }\n return content;\n };\n\n // creates SVG fragment with a fallback for IE that needs SVG\n // within the HTML content\n var SVGFragment = hasContent ? function (node, html) {\n var content = fragment(node);\n var container = doc(node).createElementNS(SVG_NAMESPACE, 'svg');\n container.innerHTML = html;\n append(content, slice.call(container.childNodes));\n return content;\n } : function (node, html) {\n var content = fragment(node);\n var container = create(node, 'div');\n container.innerHTML = '' + html + '';\n append(content, slice.call(container.firstChild.childNodes));\n return content;\n };\n\n function Wire(childNodes) {\n this.childNodes = childNodes;\n this.length = childNodes.length;\n this.first = childNodes[0];\n this.last = childNodes[this.length - 1];\n }\n\n // when a wire is inserted, all its nodes will follow\n Wire.prototype.insert = function insert() {\n var df = fragment(this.first);\n append(df, this.childNodes);\n return df;\n };\n\n // when a wire is removed, all its nodes must be removed as well\n Wire.prototype.remove = function remove() {\n var first = this.first;\n var last = this.last;\n if (this.length === 2) {\n last.parentNode.removeChild(last);\n } else {\n var range = doc(first).createRange();\n range.setStartBefore(this.childNodes[1]);\n range.setEndAfter(last);\n range.deleteContents();\n }\n return first;\n };\n\n // every template literal interpolation indicates\n // a precise target in the DOM the template is representing.\n // `

some ${'content'}

`\n // hyperHTML finds only once per template literal,\n // hence once per entire application life-cycle,\n // all nodes that are related to interpolations.\n // These nodes are stored as indexes used to retrieve,\n // once per upgrade, nodes that will change on each future update.\n // A path example is [2, 0, 1] representing the operation:\n // node.childNodes[2].childNodes[0].childNodes[1]\n // Attributes are addressed via their owner node and their name.\n var createPath = function createPath(node) {\n var path = [];\n var parentNode = void 0;\n switch (node.nodeType) {\n case ELEMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n parentNode = node;\n break;\n case COMMENT_NODE:\n parentNode = node.parentNode;\n prepend(path, parentNode, node);\n break;\n default:\n parentNode = node.ownerElement;\n break;\n }\n for (node = parentNode; parentNode = parentNode.parentNode; node = parentNode) {\n prepend(path, parentNode, node);\n }\n return path;\n };\n\n var prepend = function prepend(path, parent, node) {\n path.unshift(path.indexOf.call(parent.childNodes, node));\n };\n\n var Path = {\n create: function create(type, node, name) {\n return { type: type, name: name, node: node, path: createPath(node) };\n },\n find: function find(node, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n node = node.childNodes[path[i]];\n }\n return node;\n }\n };\n\n // from https://github.com/developit/preact/blob/33fc697ac11762a1cb6e71e9847670d047af7ce5/src/constants.js\n var IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n // style is handled as both string and object\n // even if the target is an SVG element (consistency)\n var Style = (function (node, original, isSVG) {\n if (isSVG) {\n var style = original.cloneNode(true);\n style.value = '';\n node.setAttributeNode(style);\n return update(style, isSVG);\n }\n return update(node.style, isSVG);\n });\n\n // the update takes care or changing/replacing\n // only properties that are different or\n // in case of string, the whole node\n var update = function update(style, isSVG) {\n var oldType = void 0,\n oldValue = void 0;\n return function (newValue) {\n switch (typeof newValue) {\n case 'object':\n if (newValue) {\n if (oldType === 'object') {\n if (!isSVG) {\n if (oldValue !== newValue) {\n for (var key in oldValue) {\n if (!(key in newValue)) {\n style[key] = '';\n }\n }\n }\n }\n } else {\n if (isSVG) style.value = '';else style.cssText = '';\n }\n var info = isSVG ? {} : style;\n for (var _key in newValue) {\n var value = newValue[_key];\n info[_key] = typeof value === 'number' && !IS_NON_DIMENSIONAL.test(_key) ? value + 'px' : value;\n }\n oldType = 'object';\n if (isSVG) style.value = toStyle(oldValue = info);else oldValue = newValue;\n break;\n }\n default:\n if (oldValue != newValue) {\n oldType = 'string';\n oldValue = newValue;\n if (isSVG) style.value = newValue || '';else style.cssText = newValue || '';\n }\n break;\n }\n };\n };\n\n var hyphen = /([^A-Z])([A-Z]+)/g;\n var ized = function ized($0, $1, $2) {\n return $1 + '-' + $2.toLowerCase();\n };\n var toStyle = function toStyle(object) {\n var css = [];\n for (var key in object) {\n css.push(key.replace(hyphen, ized), ':', object[key], ';');\n }\n return css.join('');\n };\n\n /* AUTOMATICALLY IMPORTED, DO NOT MODIFY */\n /*! (c) 2017 Andrea Giammarchi (ISC) */\n\n /**\n * This code is a revisited port of the snabbdom vDOM diffing logic,\n * the same that fuels as fork Vue.js or other libraries.\n * @credits https://github.com/snabbdom/snabbdom\n */\n\n var identity = function identity(O) {\n return O;\n };\n\n var remove = function remove(parentNode, before, after) {\n var range = parentNode.ownerDocument.createRange();\n range.setStartBefore(before);\n range.setEndAfter(after);\n range.deleteContents();\n };\n\n var domdiff = function domdiff(parentNode, // where changes happen\n currentNodes, // Array of current items/nodes\n futureNodes, // Array of future items/nodes\n getNode, // optional way to retrieve a node from an item\n beforeNode // optional item/node to use as insertBefore delimiter\n ) {\n var get = getNode || identity;\n var before = beforeNode == null ? null : get(beforeNode, 0);\n var currentStart = 0,\n futureStart = 0;\n var currentEnd = currentNodes.length - 1;\n var currentStartNode = currentNodes[0];\n var currentEndNode = currentNodes[currentEnd];\n var futureEnd = futureNodes.length - 1;\n var futureStartNode = futureNodes[0];\n var futureEndNode = futureNodes[futureEnd];\n while (currentStart <= currentEnd && futureStart <= futureEnd) {\n if (currentStartNode == null) {\n currentStartNode = currentNodes[++currentStart];\n } else if (currentEndNode == null) {\n currentEndNode = currentNodes[--currentEnd];\n } else if (futureStartNode == null) {\n futureStartNode = futureNodes[++futureStart];\n } else if (futureEndNode == null) {\n futureEndNode = futureNodes[--futureEnd];\n } else if (currentStartNode == futureStartNode) {\n currentStartNode = currentNodes[++currentStart];\n futureStartNode = futureNodes[++futureStart];\n } else if (currentEndNode == futureEndNode) {\n currentEndNode = currentNodes[--currentEnd];\n futureEndNode = futureNodes[--futureEnd];\n } else if (currentStartNode == futureEndNode) {\n parentNode.insertBefore(get(currentStartNode, 1), get(currentEndNode, -0).nextSibling);\n currentStartNode = currentNodes[++currentStart];\n futureEndNode = futureNodes[--futureEnd];\n } else if (currentEndNode == futureStartNode) {\n parentNode.insertBefore(get(currentEndNode, 1), get(currentStartNode, 0));\n currentEndNode = currentNodes[--currentEnd];\n futureStartNode = futureNodes[++futureStart];\n } else {\n var index = currentNodes.indexOf(futureStartNode);\n if (index < 0) {\n parentNode.insertBefore(get(futureStartNode, 1), get(currentStartNode, 0));\n futureStartNode = futureNodes[++futureStart];\n } else {\n var i = index;\n var f = futureStart;\n while (i <= currentEnd && f <= futureEnd && currentNodes[i] === futureNodes[f]) {\n i++;\n f++;\n }\n if (1 < i - index) {\n if (--index === currentStart) {\n parentNode.removeChild(get(currentStartNode, -1));\n } else {\n remove(parentNode, get(currentStartNode, -1), get(currentNodes[index], -1));\n }\n currentStart = i;\n futureStart = f;\n currentStartNode = currentNodes[i];\n futureStartNode = futureNodes[f];\n } else {\n var el = currentNodes[index];\n currentNodes[index] = null;\n parentNode.insertBefore(get(el, 1), get(currentStartNode, 0));\n futureStartNode = futureNodes[++futureStart];\n }\n }\n }\n }\n if (currentStart <= currentEnd || futureStart <= futureEnd) {\n if (currentStart > currentEnd) {\n var pin = futureNodes[futureEnd + 1];\n var place = pin == null ? before : get(pin, 0);\n if (futureStart === futureEnd) {\n parentNode.insertBefore(get(futureNodes[futureStart], 1), place);\n } else {\n var fragment = parentNode.ownerDocument.createDocumentFragment();\n while (futureStart <= futureEnd) {\n fragment.appendChild(get(futureNodes[futureStart++], 1));\n }\n parentNode.insertBefore(fragment, place);\n }\n } else {\n if (currentNodes[currentStart] == null) currentStart++;\n if (currentStart === currentEnd) {\n parentNode.removeChild(get(currentNodes[currentStart], -1));\n } else {\n remove(parentNode, get(currentNodes[currentStart], -1), get(currentNodes[currentEnd], -1));\n }\n }\n }\n return futureNodes;\n };\n\n // hyper.Component have a connected/disconnected\n // mechanism provided by MutationObserver\n // This weak set is used to recognize components\n // as DOM node that needs to trigger connected/disconnected events\n var components = new WeakSet();\n\n // a basic dictionary used to filter already cached attributes\n // while looking for special hyperHTML values.\n function Cache() {}\n Cache.prototype = Object.create(null);\n\n // returns an intent to explicitly inject content as html\n var asHTML = function asHTML(html) {\n return { html: html };\n };\n\n // returns nodes from wires and components\n var asNode = function asNode(item, i) {\n return 'ELEMENT_NODE' in item ? item : item.constructor === Wire ?\n // in the Wire case, the content can be\n // removed, post-pended, inserted, or pre-pended and\n // all these cases are handled by domdiff already\n /* istanbul ignore next */\n 1 / i < 0 ? i ? item.remove() : item.last : i ? item.insert() : item.first : asNode(item.render(), i);\n };\n\n // returns true if domdiff can handle the value\n var canDiff = function canDiff(value) {\n return 'ELEMENT_NODE' in value || value instanceof Wire || value instanceof Component;\n };\n\n // updates are created once per context upgrade\n // within the main render function (../hyper/render.js)\n // These are an Array of callbacks to invoke passing\n // each interpolation value.\n // Updates can be related to any kind of content,\n // attributes, or special text-only cases such `, headElem.querySelector(\"link\"));\n handleIssues(issuesAndNotes, ghIssues, conf);\n }\n});\n//# sourceMappingURL=issues-notes.js.map;\n", - "define('core/requirements',[\"exports\", \"core/pubsubhub\"], function (exports, _pubsubhub) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.run = run;\n const name = exports.name = \"core/requirements\"; // Module core/requirements\n // This module does two things:\n //\n // 1. It finds and marks all requirements. These are elements with class \"req\".\n // When a requirement is found, it is reported using the \"req\" event. This\n // can be used by a containing shell to extract them.\n // Requirements are automatically numbered.\n //\n // 2. It allows referencing requirements by their ID simply using an empty \n // element with its href pointing to the requirement it should be referencing\n // and a class of \"reqRef\".\n function run(conf, doc, cb) {\n $(\".req\").each(function (i) {\n i++;\n var $req = $(this);\n var title = \"Req. \" + i;\n $req.prepend(\"\" + title + \": \");\n });\n\n $(\"a.reqRef\").each(function () {\n var $ref = $(this),\n href = $ref.attr(\"href\"),\n id,\n $req,\n txt;\n if (!href) return;\n id = href.substring(1);\n $req = $(\"#\" + id);\n if ($req.length) {\n txt = $req.find(\"> a\").text();\n } else {\n txt = \"Req. not found '\" + id + \"'\";\n (0, _pubsubhub.pub)(\"error\", \"Requirement not found in element `a.reqRef`: \" + id);\n }\n $ref.text(txt);\n });\n cb();\n }\n});\n//# sourceMappingURL=requirements.js.map;\n", - "\ndefine('deps/text!core/css/bp.css',[],function () { return '/* --- Best Practices --- */\\ndiv.practice {\\n border: solid #bebebe 1px;\\n margin: 2em 1em 1em 2em;\\n}\\n\\nspan.practicelab {\\n margin: 1.5em 0.5em 1em 1em;\\n font-weight: bold;\\n font-style: italic;\\n background: #dfffff;\\n position: relative;\\n padding: 0 0.5em;\\n top: -1.5em;\\n}\\n\\np.practicedesc {\\n margin: 1.5em 0.5em 1em 1em;\\n}\\n\\n@media screen {\\n p.practicedesc {\\n position: relative;\\n top: -2em;\\n padding: 0;\\n margin: 1.5em 0.5em -1em 1em;\\n }\\n}\\n';});\n\n", - "define('core/best-practices',[\"exports\", \"deps/text!core/css/bp.css\", \"core/pubsubhub\", \"deps/hyperhtml\"], function (exports, _bp, _pubsubhub) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.run = run;\n\n var _bp2 = _interopRequireDefault(_bp);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n const name = exports.name = \"core/best-practices\"; // Module core/best-practices\n // Handles the marking up of best practices, and can generate a summary of all of them.\n // The summary is generated if there is a section in the document with ID bp-summary.\n // Best practices are marked up with span.practicelab.\n function run() {\n let num = 0;\n const bps = document.querySelectorAll(\"span.practicelab\");\n const ul = document.createElement(\"ul\");\n for (const bp of Array.from(bps)) {\n num++;\n const id = window.$.fn.makeID.call([bp], \"bp\");\n const li = hyperHTML`
  • Best Practice ${num}: ${bp.textContent}
  • `;\n ul.appendChild(li);\n bp.insertBefore(document.createTextNode(`Best Practice ${num}: `), bp.firstChild);\n }\n const bpSummary = document.getElementById(\"bp-summary\");\n if (bps.length) {\n document.head.insertBefore(hyperHTML``, document.head.querySelector(\"link\"));\n if (bpSummary) {\n bpSummary.appendChild(hyperHTML`

    Best Practices Summary

    `);\n bpSummary.appendChild(ul);\n }\n } else if (bpSummary) {\n (0, _pubsubhub.pub)(\"warn\", \"Using best practices summary (#bp-summary) but no best practices found.\");\n bpSummary.remove();\n }\n }\n});\n//# sourceMappingURL=best-practices.js.map;\n", - "define('core/figures',[\"exports\", \"core/pubsubhub\"], function (exports, _pubsubhub) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.run = run;\n const name = exports.name = \"core/figures\"; // Module core/figure\n // Handles figures in the document.\n // Adds width and height to images, if they are missing.\n // Generates a Table of Figures wherever there is a #tof element.\n\n function run(conf, doc, cb) {\n normalizeImages(doc);\n // process all figures\n var figMap = {},\n tof = [],\n num = 0;\n $(\"figure\").each(function () {\n var $fig = $(this),\n $cap = $fig.find(\"figcaption\"),\n tit = $cap.text(),\n id = $fig.makeID(\"fig\", tit);\n if (!$cap.length) (0, _pubsubhub.pub)(\"warn\", \"A `
    ` should contain a `
    `.\");\n\n // set proper caption title\n num++;\n $cap.wrapInner($(\"\")).prepend(doc.createTextNode(\" \")).prepend($(\"\" + num + \"\")).prepend(doc.createTextNode(conf.l10n.fig));\n figMap[id] = $cap.contents();\n var $tofCap = $cap.clone();\n $tofCap.find(\"a\").renameElement(\"span\").removeAttr(\"href\");\n tof.push($(\"
  • \").find(\".tocxref\").append($tofCap.contents()).end());\n });\n\n // Update all anchors with empty content that reference a figure ID\n $(\"a[href]\", doc).each(function () {\n var $a = $(this),\n id = $a.attr(\"href\");\n if (!id) return;\n id = id.substring(1);\n if (figMap[id]) {\n $a.addClass(\"fig-ref\");\n if ($a.html() === \"\") {\n const $shortFigDescriptor = figMap[id].slice(0, 2).clone();\n if (!$a[0].hasAttribute(\"title\")) {\n const longFigDescriptor = figMap[id].slice(2).clone().text();\n $a.attr(\"title\", longFigDescriptor.trim());\n }\n $a.append($shortFigDescriptor);\n }\n }\n });\n\n // Create a Table of Figures if a section with id 'tof' exists.\n var $tof = $(\"#tof\", doc);\n if (tof.length && $tof.length) {\n // if it has a parent section, don't touch it\n // if it has a class of appendix or introductory, don't touch it\n // if all the preceding section siblings are introductory, make it introductory\n // if there is a preceding section sibling which is an appendix, make it appendix\n if (!$tof.hasClass(\"appendix\") && !$tof.hasClass(\"introductory\") && !$tof.parents(\"section\").length) {\n if ($tof.prevAll(\"section.introductory\").length === $tof.prevAll(\"section\").length) {\n $tof.addClass(\"introductory\");\n } else if ($tof.prevAll(\"appendix\").length) {\n $tof.addClass(\"appendix\");\n }\n }\n $tof.append($(\"

    \" + conf.l10n.table_of_fig + \"

    \"));\n $tof.append($(\"
      \"));\n var $ul = $tof.find(\"ul\");\n while (tof.length) $ul.append(tof.shift());\n }\n cb();\n }\n\n function normalizeImages(doc) {\n [...doc.querySelectorAll(\":not(picture)>img:not([width]):not([height]):not([srcset])\")].forEach(img => {\n img.height = img.naturalHeight;\n img.width = img.naturalWidth;\n });\n }\n});\n//# sourceMappingURL=figures.js.map;\n", - "\"use strict\";\r\n\r\n(() => {\r\n // These regular expressions use the sticky flag so they will only match at\r\n // the current location (ie. the offset of lastIndex).\r\n const tokenRe = {\r\n // This expression uses a lookahead assertion to catch false matches\r\n // against integers early.\r\n \"float\": /-?(?=[0-9]*\\.|[0-9]+[eE])(([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+)([Ee][-+]?[0-9]+)?|[0-9]+[Ee][-+]?[0-9]+)/y,\r\n \"integer\": /-?(0([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*)/y,\r\n \"identifier\": /[A-Z_a-z][0-9A-Z_a-z-]*/y,\r\n \"string\": /\"[^\"]*\"/y,\r\n \"whitespace\": /[\\t\\n\\r ]+/y,\r\n \"comment\": /((\\/(\\/.*|\\*([^*]|\\*[^\\/])*\\*\\/)[\\t\\n\\r ]*)+)/y,\r\n \"other\": /[^\\t\\n\\r 0-9A-Z_a-z]/y\r\n };\r\n\r\n function attemptTokenMatch(str, type, lastIndex, tokens) {\r\n const re = tokenRe[type];\r\n re.lastIndex = lastIndex;\r\n const result = re.exec(str);\r\n if (result) {\r\n tokens.push({ type, value: result[0] });\r\n return re.lastIndex;\r\n }\r\n return -1;\r\n }\r\n\r\n function tokenise(str) {\r\n const tokens = [];\r\n let lastIndex = 0;\r\n while (lastIndex < str.length) {\r\n const nextChar = str.charAt(lastIndex);\r\n let result = -1;\r\n if (/[-0-9.]/.test(nextChar)) {\r\n result = attemptTokenMatch(str, \"float\", lastIndex, tokens);\r\n if (result === -1) {\r\n result = attemptTokenMatch(str, \"integer\", lastIndex, tokens);\r\n }\r\n if (result === -1) {\r\n // '-' and '.' can also match \"other\".\r\n result = attemptTokenMatch(str, \"other\", lastIndex, tokens);\r\n }\r\n } else if (/[A-Z_a-z]/.test(nextChar)) {\r\n result = attemptTokenMatch(str, \"identifier\", lastIndex, tokens);\r\n } else if (nextChar === '\"') {\r\n result = attemptTokenMatch(str, \"string\", lastIndex, tokens);\r\n if (result === -1) {\r\n // '\"' can also match \"other\".\r\n result = attemptTokenMatch(str, \"other\", lastIndex, tokens);\r\n }\r\n } else if (/[\\t\\n\\r ]/.test(nextChar)) {\r\n result = attemptTokenMatch(str, \"whitespace\", lastIndex, tokens);\r\n } else if (nextChar === '/') {\r\n result = attemptTokenMatch(str, \"comment\", lastIndex, tokens);\r\n if (result === -1) {\r\n // '/' can also match \"other\".\r\n result = attemptTokenMatch(str, \"other\", lastIndex, tokens);\r\n }\r\n } else {\r\n result = attemptTokenMatch(str, \"other\", lastIndex, tokens);\r\n }\r\n if (result === -1) {\r\n throw new Error(\"Token stream not progressing\");\r\n }\r\n lastIndex = result;\r\n }\r\n return tokens;\r\n }\r\n\r\n class WebIDLParseError {\r\n constructor(str, line, input, tokens) {\r\n this.message = str;\r\n this.line = line;\r\n this.input = input;\r\n this.tokens = tokens;\r\n }\r\n\r\n toString() {\r\n return `${this.message}, line ${this.line} (tokens: '${this.input}')\\n${JSON.stringify(this.tokens, null, 4)}`;\r\n }\r\n }\r\n\r\n function parse(tokens, opt) {\r\n let line = 1;\r\n tokens = tokens.slice();\r\n const names = new Map();\r\n let current = null;\r\n\r\n const FLOAT = \"float\";\r\n const INT = \"integer\";\r\n const ID = \"identifier\";\r\n const STR = \"string\";\r\n const OTHER = \"other\";\r\n\r\n const EMPTY_OPERATION = Object.freeze({\r\n type: \"operation\",\r\n getter: false,\r\n setter: false,\r\n deleter: false,\r\n static: false,\r\n stringifier: false\r\n });\r\n\r\n const EMPTY_IDLTYPE = Object.freeze({\r\n sequence: false,\r\n generic: null,\r\n nullable: false,\r\n union: false,\r\n idlType: null,\r\n extAttrs: []\r\n });\r\n\r\n function error(str) {\r\n let tok = \"\";\r\n let numTokens = 0;\r\n const maxTokens = 5;\r\n while (numTokens < maxTokens && tokens.length > numTokens) {\r\n tok += tokens[numTokens].value;\r\n numTokens++;\r\n }\r\n\r\n let message;\r\n if (current) {\r\n message = `Got an error during or right after parsing \\`${current.partial ? \"partial \" : \"\"}${current.type} ${current.name}\\`: ${str}`\r\n }\r\n else {\r\n // throwing before any valid definition\r\n message = `Got an error before parsing any named definition: ${str}`;\r\n }\r\n\r\n throw new WebIDLParseError(message, line, tok, tokens.slice(0, maxTokens));\r\n }\r\n\r\n function sanitize_name(name, type) {\r\n if (names.has(name)) {\r\n error(`The name \"${name}\" of type \"${names.get(name)}\" is already seen`);\r\n }\r\n names.set(name, type);\r\n return name;\r\n }\r\n\r\n let last_token = null;\r\n\r\n function consume(type, value) {\r\n if (!tokens.length || tokens[0].type !== type) return;\r\n if (typeof value === \"undefined\" || tokens[0].value === value) {\r\n last_token = tokens.shift();\r\n if (type === ID && last_token.value.startsWith('_'))\r\n last_token.value = last_token.value.substring(1);\r\n return last_token;\r\n }\r\n }\r\n\r\n function count(str, char) {\r\n let total = 0;\r\n for (let i = str.indexOf(char); i !== -1; i = str.indexOf(char, i + 1)) {\r\n ++total;\r\n }\r\n return total;\r\n }\r\n\r\n function ws() {\r\n if (!tokens.length) return;\r\n if (tokens[0].type === \"whitespace\" || tokens[0].type === \"comment\") {\r\n const t = tokens.shift();\r\n line += count(t.value, '\\n');\r\n return t;\r\n }\r\n }\r\n\r\n const all_ws_re = {\r\n \"ws\": /([\\t\\n\\r ]+)/y,\r\n \"line-comment\": /\\/\\/(.*)\\r?\\n?/y,\r\n \"multiline-comment\": /\\/\\*((?:[^*]|\\*[^/])*)\\*\\//y\r\n };\r\n function all_ws(store, pea) { // pea == post extended attribute, tpea = same for types\r\n const t = { type: \"whitespace\", value: \"\" };\r\n while (true) {\r\n const w = ws();\r\n if (!w) break;\r\n t.value += w.value;\r\n }\r\n if (t.value.length > 0) {\r\n if (store) {\r\n let w = t.value;\r\n let lastIndex = 0;\r\n while (lastIndex < w.length) {\r\n let matched = false;\r\n // Servo doesn't support using \"const\" in this construction yet.\r\n // See https://github.com/servo/servo/issues/20231.\r\n // |type| can be made const once Servo supports it.\r\n for (let type in all_ws_re) {\r\n const re = all_ws_re[type];\r\n re.lastIndex = lastIndex;\r\n const result = re.exec(w);\r\n if (result) {\r\n store.push({ type: type + (pea ? (\"-\" + pea) : \"\"), value: result[1] });\r\n matched = true;\r\n lastIndex = re.lastIndex;\r\n break;\r\n }\r\n }\r\n if (!matched)\r\n throw new Error(\"Surprising white space construct.\"); // this shouldn't happen\r\n }\r\n }\r\n return t;\r\n }\r\n }\r\n\r\n function integer_type() {\r\n let ret = \"\";\r\n all_ws();\r\n if (consume(ID, \"unsigned\")) ret = \"unsigned \";\r\n all_ws();\r\n if (consume(ID, \"short\")) return ret + \"short\";\r\n if (consume(ID, \"long\")) {\r\n ret += \"long\";\r\n all_ws();\r\n if (consume(ID, \"long\")) return ret + \" long\";\r\n return ret;\r\n }\r\n if (ret) error(\"Failed to parse integer type\");\r\n }\r\n\r\n function float_type() {\r\n let ret = \"\";\r\n all_ws();\r\n if (consume(ID, \"unrestricted\")) ret = \"unrestricted \";\r\n all_ws();\r\n if (consume(ID, \"float\")) return ret + \"float\";\r\n if (consume(ID, \"double\")) return ret + \"double\";\r\n if (ret) error(\"Failed to parse float type\");\r\n }\r\n\r\n function primitive_type() {\r\n const num_type = integer_type() || float_type();\r\n if (num_type) return num_type;\r\n all_ws();\r\n if (consume(ID, \"boolean\")) return \"boolean\";\r\n if (consume(ID, \"byte\")) return \"byte\";\r\n if (consume(ID, \"octet\")) return \"octet\";\r\n }\r\n\r\n function const_value() {\r\n if (consume(ID, \"true\")) return { type: \"boolean\", value: true };\r\n if (consume(ID, \"false\")) return { type: \"boolean\", value: false };\r\n if (consume(ID, \"null\")) return { type: \"null\" };\r\n if (consume(ID, \"Infinity\")) return { type: \"Infinity\", negative: false };\r\n if (consume(ID, \"NaN\")) return { type: \"NaN\" };\r\n const ret = consume(FLOAT) || consume(INT);\r\n if (ret) return { type: \"number\", value: ret.value };\r\n const tok = consume(OTHER, \"-\");\r\n if (tok) {\r\n if (consume(ID, \"Infinity\")) return { type: \"Infinity\", negative: true };\r\n else tokens.unshift(tok);\r\n }\r\n }\r\n\r\n function type_suffix(obj) {\r\n while (true) {\r\n all_ws();\r\n if (consume(OTHER, \"?\")) {\r\n if (obj.nullable) error(\"Can't nullable more than once\");\r\n obj.nullable = true;\r\n } else return;\r\n }\r\n }\r\n\r\n function single_type(typeName) {\r\n const prim = primitive_type();\r\n const ret = Object.assign({ type: typeName || null }, EMPTY_IDLTYPE);\r\n let name;\r\n let value;\r\n if (prim) {\r\n ret.idlType = prim;\r\n } else if (name = consume(ID)) {\r\n value = name.value;\r\n all_ws();\r\n // Generic types\r\n if (consume(OTHER, \"<\")) {\r\n // backwards compat\r\n if (value === \"sequence\") {\r\n ret.sequence = true;\r\n }\r\n ret.generic = value;\r\n const types = [];\r\n do {\r\n all_ws();\r\n types.push(type_with_extended_attributes(typeName) || error(\"Error parsing generic type \" + value));\r\n all_ws();\r\n }\r\n while (consume(OTHER, \",\"));\r\n if (value === \"sequence\") {\r\n if (types.length !== 1) error(\"A sequence must have exactly one subtype\");\r\n } else if (value === \"record\") {\r\n if (types.length !== 2) error(\"A record must have exactly two subtypes\");\r\n if (!/^(DOMString|USVString|ByteString)$/.test(types[0].idlType)) {\r\n error(\"Record key must be DOMString, USVString, or ByteString\");\r\n }\r\n if (types[0].extAttrs.length) error(\"Record key cannot have extended attribute\");\r\n } else if (value === \"Promise\") {\r\n if (types[0].extAttrs.length) error(\"Promise type cannot have extended attribute\");\r\n }\r\n ret.idlType = types.length === 1 ? types[0] : types;\r\n all_ws();\r\n if (!consume(OTHER, \">\")) error(\"Unterminated generic type \" + value);\r\n type_suffix(ret);\r\n return ret;\r\n } else {\r\n ret.idlType = value;\r\n }\r\n } else {\r\n return;\r\n }\r\n type_suffix(ret);\r\n if (ret.nullable && ret.idlType === \"any\") error(\"Type any cannot be made nullable\");\r\n return ret;\r\n }\r\n\r\n function union_type(typeName) {\r\n all_ws();\r\n if (!consume(OTHER, \"(\")) return;\r\n const ret = Object.assign({ type: typeName || null }, EMPTY_IDLTYPE, { union: true, idlType: [] });\r\n const fst = type_with_extended_attributes() || error(\"Union type with no content\");\r\n ret.idlType.push(fst);\r\n while (true) {\r\n all_ws();\r\n if (!consume(ID, \"or\")) break;\r\n const typ = type_with_extended_attributes() || error(\"No type after 'or' in union type\");\r\n ret.idlType.push(typ);\r\n }\r\n if (!consume(OTHER, \")\")) error(\"Unterminated union type\");\r\n type_suffix(ret);\r\n return ret;\r\n }\r\n\r\n function type(typeName) {\r\n return single_type(typeName) || union_type(typeName);\r\n }\r\n\r\n function type_with_extended_attributes(typeName) {\r\n const extAttrs = extended_attrs();\r\n const ret = single_type(typeName) || union_type(typeName);\r\n if (extAttrs.length && ret) ret.extAttrs = extAttrs;\r\n return ret;\r\n }\r\n\r\n function argument(store) {\r\n const ret = { optional: false, variadic: false };\r\n ret.extAttrs = extended_attrs(store);\r\n all_ws(store, \"pea\");\r\n const opt_token = consume(ID, \"optional\");\r\n if (opt_token) {\r\n ret.optional = true;\r\n all_ws();\r\n }\r\n ret.idlType = type_with_extended_attributes(\"argument-type\");\r\n if (!ret.idlType) {\r\n if (opt_token) tokens.unshift(opt_token);\r\n return;\r\n }\r\n const type_token = last_token;\r\n if (!ret.optional) {\r\n all_ws();\r\n if (tokens.length >= 3 &&\r\n tokens[0].type === \"other\" && tokens[0].value === \".\" &&\r\n tokens[1].type === \"other\" && tokens[1].value === \".\" &&\r\n tokens[2].type === \"other\" && tokens[2].value === \".\"\r\n ) {\r\n tokens.shift();\r\n tokens.shift();\r\n tokens.shift();\r\n ret.variadic = true;\r\n }\r\n }\r\n all_ws();\r\n const name = consume(ID);\r\n if (!name) {\r\n if (opt_token) tokens.unshift(opt_token);\r\n tokens.unshift(type_token);\r\n return;\r\n }\r\n ret.name = name.value;\r\n if (ret.optional) {\r\n all_ws();\r\n const dflt = default_();\r\n if (typeof dflt !== \"undefined\") {\r\n ret[\"default\"] = dflt;\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n function argument_list(store) {\r\n const ret = [];\r\n const arg = argument(store ? ret : null);\r\n if (!arg) return ret;\r\n ret.push(arg);\r\n while (true) {\r\n all_ws(store ? ret : null);\r\n if (!consume(OTHER, \",\")) return ret;\r\n const nxt = argument(store ? ret : null) || error(\"Trailing comma in arguments list\");\r\n ret.push(nxt);\r\n }\r\n }\r\n\r\n function simple_extended_attr(store) {\r\n all_ws();\r\n const name = consume(ID);\r\n if (!name) return;\r\n const ret = {\r\n name: name.value,\r\n arguments: null,\r\n type: \"extended-attribute\",\r\n rhs: null\r\n };\r\n all_ws();\r\n const eq = consume(OTHER, \"=\");\r\n if (eq) {\r\n all_ws();\r\n ret.rhs = consume(ID) ||\r\n consume(FLOAT) ||\r\n consume(INT) ||\r\n consume(STR);\r\n }\r\n all_ws();\r\n if (consume(OTHER, \"(\")) {\r\n if (eq && !ret.rhs) {\r\n // [Exposed=(Window,Worker)]\r\n ret.rhs = {\r\n type: \"identifier-list\",\r\n value: identifiers()\r\n };\r\n }\r\n else {\r\n // [NamedConstructor=Audio(DOMString src)] or [Constructor(DOMString str)]\r\n ret.arguments = argument_list(store);\r\n }\r\n all_ws();\r\n consume(OTHER, \")\") || error(\"Unexpected token in extended attribute argument list\");\r\n }\r\n if (eq && !ret.rhs) error(\"No right hand side to extended attribute assignment\");\r\n return ret;\r\n }\r\n\r\n // Note: we parse something simpler than the official syntax. It's all that ever\r\n // seems to be used\r\n function extended_attrs(store) {\r\n const eas = [];\r\n all_ws(store);\r\n if (!consume(OTHER, \"[\")) return eas;\r\n eas[0] = simple_extended_attr(store) || error(\"Extended attribute with not content\");\r\n all_ws();\r\n while (consume(OTHER, \",\")) {\r\n eas.push(simple_extended_attr(store) || error(\"Trailing comma in extended attribute\"));\r\n }\r\n all_ws();\r\n consume(OTHER, \"]\") || error(\"No end of extended attribute\");\r\n return eas;\r\n }\r\n\r\n function default_() {\r\n all_ws();\r\n if (consume(OTHER, \"=\")) {\r\n all_ws();\r\n const def = const_value();\r\n if (def) {\r\n return def;\r\n } else if (consume(OTHER, \"[\")) {\r\n if (!consume(OTHER, \"]\")) error(\"Default sequence value must be empty\");\r\n return { type: \"sequence\", value: [] };\r\n } else {\r\n const str = consume(STR) || error(\"No value for default\");\r\n str.value = str.value.slice(1, -1);\r\n return str;\r\n }\r\n }\r\n }\r\n\r\n function const_(store) {\r\n all_ws(store, \"pea\");\r\n if (!consume(ID, \"const\")) return;\r\n const ret = { type: \"const\", nullable: false };\r\n all_ws();\r\n let typ = primitive_type();\r\n if (!typ) {\r\n typ = consume(ID) || error(\"No type for const\");\r\n typ = typ.value;\r\n }\r\n ret.idlType = Object.assign({ type: \"const-type\" }, EMPTY_IDLTYPE, { idlType: typ });\r\n all_ws();\r\n if (consume(OTHER, \"?\")) {\r\n ret.nullable = true;\r\n all_ws();\r\n }\r\n const name = consume(ID) || error(\"No name for const\");\r\n ret.name = name.value;\r\n all_ws();\r\n consume(OTHER, \"=\") || error(\"No value assignment for const\");\r\n all_ws();\r\n const cnt = const_value();\r\n if (cnt) ret.value = cnt;\r\n else error(\"No value for const\");\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Unterminated const\");\r\n return ret;\r\n }\r\n\r\n function inheritance() {\r\n all_ws();\r\n if (consume(OTHER, \":\")) {\r\n all_ws();\r\n const inh = consume(ID) || error(\"No type in inheritance\");\r\n return inh.value;\r\n }\r\n }\r\n\r\n function operation_rest(ret, store) {\r\n all_ws();\r\n if (!ret) ret = {};\r\n const name = consume(ID);\r\n ret.name = name ? name.value : null;\r\n all_ws();\r\n consume(OTHER, \"(\") || error(\"Invalid operation\");\r\n ret.arguments = argument_list(store);\r\n all_ws();\r\n consume(OTHER, \")\") || error(\"Unterminated operation\");\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Unterminated operation\");\r\n return ret;\r\n }\r\n\r\n function callback(store) {\r\n all_ws(store, \"pea\");\r\n let ret;\r\n if (!consume(ID, \"callback\")) return;\r\n all_ws();\r\n const tok = consume(ID, \"interface\");\r\n if (tok) {\r\n ret = interface_rest(false, store, \"callback interface\");\r\n return ret;\r\n }\r\n const name = consume(ID) || error(\"No name for callback\");\r\n ret = current = { type: \"callback\", name: sanitize_name(name.value, \"callback\") };\r\n all_ws();\r\n consume(OTHER, \"=\") || error(\"No assignment in callback\");\r\n all_ws();\r\n ret.idlType = return_type();\r\n all_ws();\r\n consume(OTHER, \"(\") || error(\"No arguments in callback\");\r\n ret.arguments = argument_list(store);\r\n all_ws();\r\n consume(OTHER, \")\") || error(\"Unterminated callback\");\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Unterminated callback\");\r\n return ret;\r\n }\r\n\r\n function attribute(store) {\r\n all_ws(store, \"pea\");\r\n const grabbed = [];\r\n const ret = {\r\n type: \"attribute\",\r\n static: false,\r\n stringifier: false,\r\n inherit: false,\r\n readonly: false\r\n };\r\n const w = all_ws();\r\n if (w) grabbed.push(w);\r\n if (consume(ID, \"inherit\")) {\r\n if (ret.static || ret.stringifier) error(\"Cannot have a static or stringifier inherit\");\r\n ret.inherit = true;\r\n grabbed.push(last_token);\r\n const w = all_ws();\r\n if (w) grabbed.push(w);\r\n }\r\n if (consume(ID, \"readonly\")) {\r\n ret.readonly = true;\r\n grabbed.push(last_token);\r\n const w = all_ws();\r\n if (w) grabbed.push(w);\r\n }\r\n const rest = attribute_rest(ret);\r\n if (!rest) {\r\n tokens = grabbed.concat(tokens);\r\n }\r\n return rest;\r\n }\r\n\r\n function attribute_rest(ret) {\r\n if (!consume(ID, \"attribute\")) {\r\n return;\r\n }\r\n all_ws();\r\n ret.idlType = type_with_extended_attributes(\"attribute-type\") || error(\"No type in attribute\");\r\n if (ret.idlType.sequence) error(\"Attributes cannot accept sequence types\");\r\n if (ret.idlType.generic === \"record\") error(\"Attributes cannot accept record types\");\r\n all_ws();\r\n const name = consume(ID) || error(\"No name in attribute\");\r\n ret.name = name.value;\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Unterminated attribute\");\r\n return ret;\r\n }\r\n\r\n function return_type() {\r\n const typ = type(\"return-type\");\r\n if (!typ) {\r\n if (consume(ID, \"void\")) {\r\n return \"void\";\r\n } else error(\"No return type\");\r\n }\r\n return typ;\r\n }\r\n\r\n function operation(store) {\r\n all_ws(store, \"pea\");\r\n const ret = Object.assign({}, EMPTY_OPERATION);\r\n while (true) {\r\n all_ws();\r\n if (consume(ID, \"getter\")) ret.getter = true;\r\n else if (consume(ID, \"setter\")) ret.setter = true;\r\n else if (consume(ID, \"deleter\")) ret.deleter = true;\r\n else break;\r\n }\r\n if (ret.getter || ret.setter || ret.deleter) {\r\n all_ws();\r\n ret.idlType = return_type();\r\n operation_rest(ret, store);\r\n return ret;\r\n }\r\n ret.idlType = return_type();\r\n all_ws();\r\n operation_rest(ret, store);\r\n return ret;\r\n }\r\n\r\n function static_member(store) {\r\n all_ws(store, \"pea\");\r\n if (!consume(ID, \"static\")) return;\r\n all_ws();\r\n return noninherited_attribute(store, \"static\") ||\r\n regular_operation(store, \"static\") ||\r\n error(\"No body in static member\");\r\n }\r\n\r\n function stringifier(store) {\r\n all_ws(store, \"pea\");\r\n if (!consume(ID, \"stringifier\")) return;\r\n all_ws();\r\n if (consume(OTHER, \";\")) {\r\n return Object.assign({}, EMPTY_OPERATION, { stringifier: true });\r\n }\r\n return noninherited_attribute(store, \"stringifier\") ||\r\n regular_operation(store, \"stringifier\") ||\r\n error(\"Unterminated stringifier\");\r\n }\r\n\r\n function identifiers() {\r\n const arr = [];\r\n const id = consume(ID);\r\n if (id) {\r\n arr.push(id.value);\r\n }\r\n else error(\"Expected identifiers but not found\");\r\n while (true) {\r\n all_ws();\r\n if (consume(OTHER, \",\")) {\r\n all_ws();\r\n const name = consume(ID) || error(\"Trailing comma in identifiers list\");\r\n arr.push(name.value);\r\n } else break;\r\n }\r\n return arr;\r\n }\r\n\r\n function iterable_type() {\r\n if (consume(ID, \"iterable\")) return \"iterable\";\r\n else if (consume(ID, \"legacyiterable\")) return \"legacyiterable\";\r\n else if (consume(ID, \"maplike\")) return \"maplike\";\r\n else if (consume(ID, \"setlike\")) return \"setlike\";\r\n else return;\r\n }\r\n\r\n function readonly_iterable_type() {\r\n if (consume(ID, \"maplike\")) return \"maplike\";\r\n else if (consume(ID, \"setlike\")) return \"setlike\";\r\n else return;\r\n }\r\n\r\n function iterable(store) {\r\n all_ws(store, \"pea\");\r\n const grabbed = [];\r\n const ret = { type: null, idlType: null, readonly: false };\r\n if (consume(ID, \"readonly\")) {\r\n ret.readonly = true;\r\n grabbed.push(last_token);\r\n var w = all_ws();\r\n if (w) grabbed.push(w);\r\n }\r\n const consumeItType = ret.readonly ? readonly_iterable_type : iterable_type;\r\n\r\n const ittype = consumeItType();\r\n if (!ittype) {\r\n tokens = grabbed.concat(tokens);\r\n return;\r\n }\r\n\r\n const secondTypeRequired = ittype === \"maplike\";\r\n const secondTypeAllowed = secondTypeRequired || ittype === \"iterable\";\r\n ret.type = ittype;\r\n if (ret.type !== 'maplike' && ret.type !== 'setlike')\r\n delete ret.readonly;\r\n all_ws();\r\n if (consume(OTHER, \"<\")) {\r\n ret.idlType = [type_with_extended_attributes()] || error(`Error parsing ${ittype} declaration`);\r\n all_ws();\r\n if (secondTypeAllowed) {\r\n if (consume(OTHER, \",\")) {\r\n all_ws();\r\n ret.idlType.push(type_with_extended_attributes());\r\n all_ws();\r\n }\r\n else if (secondTypeRequired)\r\n error(`Missing second type argument in ${ittype} declaration`);\r\n }\r\n if (!consume(OTHER, \">\")) error(`Unterminated ${ittype} declaration`);\r\n all_ws();\r\n if (!consume(OTHER, \";\")) error(`Missing semicolon after ${ittype} declaration`);\r\n } else\r\n error(`Error parsing ${ittype} declaration`);\r\n\r\n return ret;\r\n }\r\n\r\n function interface_rest(isPartial, store, typeName = \"interface\") {\r\n all_ws();\r\n const name = consume(ID) || error(\"No name for interface\");\r\n const mems = [];\r\n const ret = current = {\r\n type: typeName,\r\n name: isPartial ? name.value : sanitize_name(name.value, \"interface\"),\r\n partial: isPartial,\r\n members: mems\r\n };\r\n if (!isPartial) ret.inheritance = inheritance() || null;\r\n all_ws();\r\n consume(OTHER, \"{\") || error(\"Bodyless interface\");\r\n while (true) {\r\n all_ws(store ? mems : null);\r\n if (consume(OTHER, \"}\")) {\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Missing semicolon after interface\");\r\n return ret;\r\n }\r\n const ea = extended_attrs(store ? mems : null);\r\n all_ws();\r\n const cnt = const_(store ? mems : null);\r\n if (cnt) {\r\n cnt.extAttrs = ea;\r\n ret.members.push(cnt);\r\n continue;\r\n }\r\n const mem = (opt.allowNestedTypedefs && typedef(store ? mems : null)) ||\r\n static_member(store ? mems : null) ||\r\n stringifier(store ? mems : null) ||\r\n iterable(store ? mems : null) ||\r\n attribute(store ? mems : null) ||\r\n operation(store ? mems : null) ||\r\n error(\"Unknown member\");\r\n mem.extAttrs = ea;\r\n ret.members.push(mem);\r\n }\r\n }\r\n\r\n function mixin_rest(isPartial, store) {\r\n all_ws();\r\n if (!consume(ID, \"mixin\")) return;\r\n all_ws();\r\n const name = consume(ID) || error(\"No name for interface mixin\");\r\n const mems = [];\r\n const ret = current = {\r\n type: \"interface mixin\",\r\n name: isPartial ? name.value : sanitize_name(name.value, \"interface mixin\"),\r\n partial: isPartial,\r\n members: mems\r\n };\r\n all_ws();\r\n consume(OTHER, \"{\") || error(\"Bodyless interface mixin\");\r\n while (true) {\r\n all_ws(store ? mems : null);\r\n if (consume(OTHER, \"}\")) {\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Missing semicolon after interface mixin\");\r\n return ret;\r\n }\r\n const ea = extended_attrs(store ? mems : null);\r\n all_ws();\r\n const cnt = const_(store ? mems : null);\r\n if (cnt) {\r\n cnt.extAttrs = ea;\r\n ret.members.push(cnt);\r\n continue;\r\n }\r\n const mem = stringifier(store ? mems : null) ||\r\n noninherited_attribute(store ? mems : null) ||\r\n regular_operation(store ? mems : null) ||\r\n error(\"Unknown member\");\r\n mem.extAttrs = ea;\r\n ret.members.push(mem);\r\n }\r\n }\r\n\r\n function interface_(isPartial, store) {\r\n all_ws(isPartial ? null : store, \"pea\");\r\n if (!consume(ID, \"interface\")) return;\r\n return mixin_rest(isPartial, store) ||\r\n interface_rest(isPartial, store) ||\r\n error(\"Interface has no proper body\");\r\n }\r\n\r\n function namespace(isPartial, store) {\r\n all_ws(isPartial ? null : store, \"pea\");\r\n if (!consume(ID, \"namespace\")) return;\r\n all_ws();\r\n const name = consume(ID) || error(\"No name for namespace\");\r\n const mems = [];\r\n const ret = current = {\r\n type: \"namespace\",\r\n name: isPartial ? name.value : sanitize_name(name.value, \"namespace\"),\r\n partial: isPartial,\r\n members: mems\r\n };\r\n all_ws();\r\n consume(OTHER, \"{\") || error(\"Bodyless namespace\");\r\n while (true) {\r\n all_ws(store ? mems : null);\r\n if (consume(OTHER, \"}\")) {\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Missing semicolon after namespace\");\r\n return ret;\r\n }\r\n const ea = extended_attrs(store ? mems : null);\r\n all_ws();\r\n const mem = noninherited_attribute(store ? mems : null) ||\r\n regular_operation(store ? mems : null) ||\r\n error(\"Unknown member\");\r\n mem.extAttrs = ea;\r\n ret.members.push(mem);\r\n }\r\n }\r\n\r\n function noninherited_attribute(store, prefix) {\r\n const w = all_ws(store, \"pea\");\r\n const grabbed = [];\r\n const ret = {\r\n type: \"attribute\",\r\n static: false,\r\n stringifier: false,\r\n inherit: false,\r\n readonly: false\r\n };\r\n if (prefix) {\r\n ret[prefix] = true;\r\n }\r\n if (w) grabbed.push(w);\r\n if (consume(ID, \"readonly\")) {\r\n ret.readonly = true;\r\n grabbed.push(last_token);\r\n const w = all_ws();\r\n if (w) grabbed.push(w);\r\n }\r\n const rest = attribute_rest(ret);\r\n if (!rest) {\r\n tokens = grabbed.concat(tokens);\r\n }\r\n return rest;\r\n }\r\n\r\n function regular_operation(store, prefix) {\r\n all_ws(store, \"pea\");\r\n const ret = Object.assign({}, EMPTY_OPERATION);\r\n if (prefix) {\r\n ret[prefix] = true;\r\n }\r\n ret.idlType = return_type();\r\n return operation_rest(ret, store);\r\n }\r\n\r\n function partial(store) {\r\n all_ws(store, \"pea\");\r\n if (!consume(ID, \"partial\")) return;\r\n const thing = dictionary(true, store) ||\r\n interface_(true, store) ||\r\n namespace(true, store) ||\r\n error(\"Partial doesn't apply to anything\");\r\n return thing;\r\n }\r\n\r\n function dictionary(isPartial, store) {\r\n all_ws(isPartial ? null : store, \"pea\");\r\n if (!consume(ID, \"dictionary\")) return;\r\n all_ws();\r\n const name = consume(ID) || error(\"No name for dictionary\");\r\n const mems = [];\r\n const ret = current = {\r\n type: \"dictionary\",\r\n name: isPartial ? name.value : sanitize_name(name.value, \"dictionary\"),\r\n partial: isPartial,\r\n members: mems\r\n };\r\n if (!isPartial) ret.inheritance = inheritance() || null;\r\n all_ws();\r\n consume(OTHER, \"{\") || error(\"Bodyless dictionary\");\r\n while (true) {\r\n all_ws(store ? mems : null);\r\n if (consume(OTHER, \"}\")) {\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Missing semicolon after dictionary\");\r\n return ret;\r\n }\r\n const ea = extended_attrs(store ? mems : null);\r\n all_ws(store ? mems : null, \"pea\");\r\n const required = consume(ID, \"required\");\r\n const typ = type_with_extended_attributes(\"dictionary-type\") || error(\"No type for dictionary member\");\r\n all_ws();\r\n const name = consume(ID) || error(\"No name for dictionary member\");\r\n const dflt = default_();\r\n if (required && dflt) error(\"Required member must not have a default\");\r\n const member = {\r\n type: \"field\",\r\n name: name.value,\r\n required: !!required,\r\n idlType: typ,\r\n extAttrs: ea\r\n };\r\n if (typeof dflt !== \"undefined\") {\r\n member[\"default\"] = dflt;\r\n }\r\n ret.members.push(member);\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Unterminated dictionary member\");\r\n }\r\n }\r\n\r\n function enum_(store) {\r\n all_ws(store, \"pea\");\r\n if (!consume(ID, \"enum\")) return;\r\n all_ws();\r\n const name = consume(ID) || error(\"No name for enum\");\r\n const vals = [];\r\n const ret = current = {\r\n type: \"enum\",\r\n name: sanitize_name(name.value, \"enum\"),\r\n values: vals\r\n };\r\n all_ws();\r\n consume(OTHER, \"{\") || error(\"No curly for enum\");\r\n let saw_comma = false;\r\n while (true) {\r\n all_ws(store ? vals : null);\r\n if (consume(OTHER, \"}\")) {\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"No semicolon after enum\");\r\n return ret;\r\n }\r\n const val = consume(STR) || error(\"Unexpected value in enum\");\r\n val.value = val.value.slice(1, -1);\r\n ret.values.push(val);\r\n all_ws(store ? vals : null);\r\n if (consume(OTHER, \",\")) {\r\n if (store) vals.push({ type: \",\" });\r\n all_ws(store ? vals : null);\r\n saw_comma = true;\r\n } else {\r\n saw_comma = false;\r\n }\r\n }\r\n }\r\n\r\n function typedef(store) {\r\n all_ws(store, \"pea\");\r\n if (!consume(ID, \"typedef\")) return;\r\n const ret = {\r\n type: \"typedef\"\r\n };\r\n all_ws();\r\n ret.idlType = type_with_extended_attributes(\"typedef-type\") || error(\"No type in typedef\");\r\n all_ws();\r\n const name = consume(ID) || error(\"No name in typedef\");\r\n ret.name = sanitize_name(name.value, \"typedef\");\r\n current = ret;\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"Unterminated typedef\");\r\n return ret;\r\n }\r\n\r\n function implements_(store) {\r\n all_ws(store, \"pea\");\r\n const target = consume(ID);\r\n if (!target) return;\r\n const w = all_ws();\r\n if (consume(ID, \"implements\")) {\r\n const ret = {\r\n type: \"implements\",\r\n target: target.value\r\n };\r\n all_ws();\r\n const imp = consume(ID) || error(\"Incomplete implements statement\");\r\n ret[\"implements\"] = imp.value;\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"No terminating ; for implements statement\");\r\n return ret;\r\n } else {\r\n // rollback\r\n if (w)\r\n tokens.unshift(w);\r\n tokens.unshift(target);\r\n }\r\n }\r\n\r\n function includes(store) {\r\n all_ws(store, \"pea\");\r\n const target = consume(ID);\r\n if (!target) return;\r\n const w = all_ws();\r\n if (consume(ID, \"includes\")) {\r\n const ret = {\r\n type: \"includes\",\r\n target: target.value\r\n };\r\n all_ws();\r\n const imp = consume(ID) || error(\"Incomplete includes statement\");\r\n ret[\"includes\"] = imp.value;\r\n all_ws();\r\n consume(OTHER, \";\") || error(\"No terminating ; for includes statement\");\r\n return ret;\r\n } else {\r\n // rollback\r\n if (w)\r\n tokens.unshift(w);\r\n tokens.unshift(target);\r\n }\r\n }\r\n\r\n function definition(store) {\r\n return callback(store) ||\r\n interface_(false, store) ||\r\n partial(store) ||\r\n dictionary(false, store) ||\r\n enum_(store) ||\r\n typedef(store) ||\r\n implements_(store) ||\r\n includes(store) ||\r\n namespace(false, store);\r\n }\r\n\r\n function definitions(store) {\r\n if (!tokens.length) return [];\r\n const defs = [];\r\n while (true) {\r\n const ea = extended_attrs(store ? defs : null);\r\n const def = definition(store ? defs : null);\r\n if (!def) {\r\n if (ea.length) error(\"Stray extended attributes\");\r\n break;\r\n }\r\n def.extAttrs = ea;\r\n defs.push(def);\r\n }\r\n return defs;\r\n }\r\n const res = definitions(opt.ws);\r\n if (tokens.length) error(\"Unrecognised tokens\");\r\n return res;\r\n }\r\n\r\n const obj = {\r\n parse(str, opt) {\r\n if (!opt) opt = {};\r\n const tokens = tokenise(str);\r\n return parse(tokens, opt);\r\n }\r\n };\r\n\r\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n module.exports = obj;\r\n } else if (typeof define === 'function' && define.amd) {\r\n define('deps/webidl2',[], () => obj);\r\n } else {\r\n (self || window).WebIDL2 = obj;\r\n }\r\n})();\r\n\n", - "\ndefine('deps/text!core/css/webidl.css',[],function () { return '/* --- WEB IDL --- */\\n\\npre.idl {\\n padding: 1em;\\n}\\n\\n.respec-idl-separator {\\n padding: 0 0 0.4cm 0;\\n}\\n\\n.respec-idl-separator:last-child {\\n padding: 0;\\n}\\n\\n@media print {\\n pre.idl {\\n white-space: pre-wrap;\\n }\\n}\\n\\npre.idl::before {\\n content: \"WebIDL\";\\n display: block;\\n width: 150px;\\n background: #90b8de;\\n color: #fff;\\n font-family: sans-serif;\\n font-weight: bold;\\n margin: -1em 0 1em -1em;\\n height: 28px;\\n line-height: 28px; \\n}\\n\\n.idlType {\\n color: #ff4500;\\n font-weight: bold;\\n text-decoration: none;\\n}\\n\\n\\n/*.idlModule*/\\n\\n\\n/*.idlModuleID*/\\n\\n\\n/*.idlInterface*/\\n\\n.idlInterfaceID,\\n.idlDictionaryID,\\n.idlCallbackID,\\n.idlEnumID {\\n font-weight: bold;\\n color: #005a9c;\\n}\\n\\na.idlEnumItem {\\n color: #000;\\n border-bottom: 1px dotted #ccc;\\n text-decoration: none;\\n}\\n\\n.idlSuperclass {\\n font-style: italic;\\n color: #005a9c;\\n}\\n\\n\\n/*.idlAttribute*/\\n\\n.idlAttrType,\\n.idlFieldType,\\n.idlMemberType {\\n color: #005a9c;\\n}\\n\\n.idlAttrName,\\n.idlFieldName,\\n.idlMemberName {\\n color: #ff4500;\\n}\\n\\n.idlAttrName a,\\n.idlFieldName a,\\n.idlMemberName a {\\n color: #ff4500;\\n border-bottom: 1px dotted #ff4500;\\n text-decoration: none;\\n}\\n\\n\\n/*.idlMethod*/\\n\\n.idlMethType,\\n.idlCallbackType {\\n color: #005a9c;\\n}\\n\\n.idlMethName {\\n color: #ff4500;\\n}\\n\\n.idlMethName a {\\n color: #ff4500;\\n border-bottom: 1px dotted #ff4500;\\n text-decoration: none;\\n}\\n\\n\\n/*.idlCtor*/\\n\\n.idlCtorName {\\n color: #ff4500;\\n}\\n\\n.idlCtorName a {\\n color: #ff4500;\\n border-bottom: 1px dotted #ff4500;\\n text-decoration: none;\\n}\\n\\n\\n/*.idlParam*/\\n\\n.idlParamType {\\n color: #005a9c;\\n}\\n\\n.idlParamName,\\n.idlDefaultValue {\\n font-style: italic;\\n}\\n\\n.extAttr {\\n color: #666;\\n}\\n\\n\\n/*.idlSectionComment*/\\n\\n.idlSectionComment {\\n color: gray;\\n}\\n\\n\\n/*.idlIterable*/\\n\\n.idlIterableKeyType,\\n.idlIterableValueType {\\n color: #005a9c;\\n}\\n\\n\\n/*.idlMaplike*/\\n\\n.idlMaplikeKeyType,\\n.idlMaplikeValueType {\\n color: #005a9c;\\n}\\n\\n\\n/*.idlConst*/\\n\\n.idlConstType {\\n color: #005a9c;\\n}\\n\\n.idlConstName {\\n color: #ff4500;\\n}\\n\\n.idlConstName a {\\n color: #ff4500;\\n border-bottom: 1px dotted #ff4500;\\n text-decoration: none;\\n}\\n\\n\\n/*.idlException*/\\n\\n.idlExceptionID {\\n font-weight: bold;\\n color: #c00;\\n}\\n\\n.idlTypedefID,\\n.idlTypedefType {\\n color: #005a9c;\\n}\\n\\n.idlRaises,\\n.idlRaises a.idlType,\\n.idlRaises a.idlType code,\\n.excName a,\\n.excName a code {\\n color: #c00;\\n font-weight: normal;\\n}\\n\\n.excName a {\\n font-family: monospace;\\n}\\n\\n.idlRaises a.idlType,\\n.excName a.idlType {\\n border-bottom: 1px dotted #c00;\\n}\\n\\n.excGetSetTrue,\\n.excGetSetFalse,\\n.prmNullTrue,\\n.prmNullFalse,\\n.prmOptTrue,\\n.prmOptFalse {\\n width: 45px;\\n text-align: center;\\n}\\n\\n.excGetSetTrue,\\n.prmNullTrue,\\n.prmOptTrue {\\n color: #0c0;\\n}\\n\\n.excGetSetFalse,\\n.prmNullFalse,\\n.prmOptFalse {\\n color: #c00;\\n}\\n\\n.idlImplements a, .idlIncludes a {\\n font-weight: bold;\\n}\\n\\ndl.attributes,\\ndl.methods,\\ndl.constants,\\ndl.constructors,\\ndl.fields,\\ndl.dictionary-members {\\n margin-left: 2em;\\n}\\n\\n.attributes dt,\\n.methods dt,\\n.constants dt,\\n.constructors dt,\\n.fields dt,\\n.dictionary-members dt {\\n font-weight: normal;\\n}\\n\\n.attributes dt code,\\n.methods dt code,\\n.constants dt code,\\n.constructors dt code,\\n.fields dt code,\\n.dictionary-members dt code {\\n font-weight: bold;\\n color: #000;\\n font-family: monospace;\\n}\\n\\n.attributes dt code,\\n.fields dt code,\\n.dictionary-members dt code {\\n background: #ffffd2;\\n}\\n\\n.attributes dt .idlAttrType code,\\n.fields dt .idlFieldType code,\\n.dictionary-members dt .idlMemberType code {\\n color: #005a9c;\\n background: transparent;\\n font-family: inherit;\\n font-weight: normal;\\n font-style: italic;\\n}\\n\\n.methods dt code {\\n background: #d9e6f8;\\n}\\n\\n.constants dt code {\\n background: #ddffd2;\\n}\\n\\n.constructors dt code {\\n background: #cfc;\\n}\\n\\n.attributes dd,\\n.methods dd,\\n.constants dd,\\n.constructors dd,\\n.fields dd,\\n.dictionary-members dd {\\n margin-bottom: 1em;\\n}\\n\\ntable.parameters,\\ntable.exceptions {\\n border-spacing: 0;\\n border-collapse: collapse;\\n margin: 0.5em 0;\\n width: 100%;\\n}\\n\\ntable.parameters {\\n border-bottom: 1px solid #90b8de;\\n}\\n\\ntable.exceptions {\\n border-bottom: 1px solid #deb890;\\n}\\n\\n.parameters th,\\n.exceptions th {\\n color: inherit;\\n padding: 3px 5px;\\n text-align: left;\\n font-weight: normal;\\n}\\n\\n.parameters th {\\n color: #fff;\\n background: #005a9c;\\n}\\n\\n.exceptions th {\\n background: #deb890;\\n}\\n\\n.parameters td,\\n.exceptions td {\\n padding: 3px 10px;\\n border-top: 1px solid #ddd;\\n vertical-align: top;\\n}\\n\\n.parameters tr:first-child td,\\n.exceptions tr:first-child td {\\n border-top: none;\\n}\\n\\n.parameters td.prmName,\\n.exceptions td.excName,\\n.exceptions td.excCodeName {\\n width: 100px;\\n}\\n\\n.parameters td.prmType {\\n width: 120px;\\n}\\n\\ntable.exceptions table {\\n border-spacing: 0;\\n border-collapse: collapse;\\n width: 100%;\\n}\\n\\n.respec-button-copy-paste:focus {\\n text-decoration: none;\\n border-color: #51a7e8;\\n outline: none;\\n box-shadow: 0 0 5px rgba(81, 167, 232, 0.5);\\n}\\n\\n.respec-button-copy-paste:focus:hover,\\n.respec-button-copy-paste.selected:focus {\\n border-color: #51a7e8;\\n}\\n\\n.respec-button-copy-paste:hover,\\n.respec-button-copy-paste:active,\\n.respec-button-copy-paste.zeroclipboard-is-hover,\\n.respec-button-copy-paste.zeroclipboard-is-active {\\n text-decoration: none;\\n background-color: #ddd;\\n background-image: linear-gradient(#eee, #ddd);\\n border-color: #ccc;\\n}\\n\\n.respec-button-copy-paste:active,\\n.respec-button-copy-paste.selected,\\n.respec-button-copy-paste.zeroclipboard-is-active {\\n background-color: #dcdcdc;\\n background-image: none;\\n border-color: #b5b5b5;\\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15)\\n}\\n\\n.respec-button-copy-paste.selected:hover {\\n background-color: #cfcfcf;\\n}\\n\\n.respec-button-copy-paste:disabled,\\n.respec-button-copy-paste:disabled:hover,\\n.respec-button-copy-paste.disabled,\\n.respec-button-copy-paste.disabled:hover {\\n color: rgba(102, 102, 102, 0.5);\\n cursor: default;\\n background-color: rgba(229, 229, 229, 0.5);\\n background-image: none;\\n border-color: rgba(197, 197, 197, 0.5);\\n box-shadow: none;\\n}\\n';});\n\n", - "define('core/webidl',[\"exports\", \"core/pubsubhub\", \"deps/webidl2\", \"handlebars.runtime\", \"deps/text!core/css/webidl.css\", \"templates\", \"core/utils\"], function (exports, _pubsubhub, _webidl, _handlebars, _webidl3, _templates, _utils) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.done = exports.name = undefined;\n exports.run = run;\n\n var _webidl2 = _interopRequireDefault(_webidl);\n\n var _handlebars2 = _interopRequireDefault(_handlebars);\n\n var _webidl4 = _interopRequireDefault(_webidl3);\n\n var _templates2 = _interopRequireDefault(_templates);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n // Module core/webidl\n // Highlights and links WebIDL marked up inside
      .\n\n  // TODO:\n  //  - It could be useful to report parsed IDL items as events\n  //  - don't use generated content in the CSS!\n  const name = exports.name = \"core/webidl\";\n\n  var idlAttributeTmpl = _templates2.default[\"attribute.html\"];\n  var idlCallbackTmpl = _templates2.default[\"callback.html\"];\n  var idlConstTmpl = _templates2.default[\"const.html\"];\n  var idlDictionaryTmpl = _templates2.default[\"dictionary.html\"];\n  var idlDictMemberTmpl = _templates2.default[\"dict-member.html\"];\n  var idlEnumItemTmpl = _templates2.default[\"enum-item.html\"];\n  var idlEnumTmpl = _templates2.default[\"enum.html\"];\n  var idlExtAttributeTmpl = _templates2.default[\"extended-attribute.html\"];\n  var idlFieldTmpl = _templates2.default[\"field.html\"];\n  var idlIncludesTmpl = _templates2.default[\"includes.html\"];\n  var idlImplementsTmpl = _templates2.default[\"implements.html\"];\n  var idlInterfaceTmpl = _templates2.default[\"interface.html\"];\n  var idlIterableTmpl = _templates2.default[\"iterable.html\"];\n  var idlLineCommentTmpl = _templates2.default[\"line-comment.html\"];\n  var idlMaplikeTmpl = _templates2.default[\"maplike.html\"];\n  var idlMethodTmpl = _templates2.default[\"method.html\"];\n  var idlMultiLineCommentTmpl = _templates2.default[\"multiline-comment.html\"];\n  var idlParamTmpl = _templates2.default[\"param.html\"];\n  var idlTypedefTmpl = _templates2.default[\"typedef.html\"];\n  // TODO: make these linkable somehow.\n  // https://github.com/w3c/respec/issues/999\n  // https://github.com/w3c/respec/issues/982\n  var unlinkable = new Set([\"maplike\", \"setlike\", \"stringifier\"]);\n\n  function registerHelpers() {\n    _handlebars2.default.registerHelper(\"extAttr\", function (obj, indent) {\n      return extAttr(obj.extAttrs, indent, /*singleLine=*/false);\n    });\n    _handlebars2.default.registerHelper(\"extAttrInline\", function (obj) {\n      return extAttr(obj.extAttrs, 0, /*singleLine=*/true);\n    });\n    _handlebars2.default.registerHelper(\"extAttrClassName\", function () {\n      var extAttr = this;\n      if (extAttr.name === \"Constructor\" || extAttr.name === \"NamedConstructor\") {\n        return \"idlCtor\";\n      }\n      return \"extAttr\";\n    });\n    _handlebars2.default.registerHelper(\"extAttrRhs\", function (rhs, options) {\n      if (rhs.type === \"identifier\") {\n        return options.fn(rhs.value);\n      }\n      return `(${rhs.value.map(options.fn)})`;\n    });\n    _handlebars2.default.registerHelper(\"param\", function (obj) {\n      return new _handlebars2.default.SafeString(idlParamTmpl({\n        obj: obj,\n        optional: obj.optional ? \"optional \" : \"\",\n        variadic: obj.variadic ? \"...\" : \"\"\n      }));\n    });\n    _handlebars2.default.registerHelper(\"jsIf\", function (condition, options) {\n      if (condition) {\n        return options.fn(this);\n      } else {\n        return options.inverse(this);\n      }\n    });\n    _handlebars2.default.registerHelper(\"idn\", function (indent) {\n      return new _handlebars2.default.SafeString(idn(indent));\n    });\n    _handlebars2.default.registerHelper(\"idlType\", function (obj) {\n      return new _handlebars2.default.SafeString(idlType2Html(obj.idlType));\n    });\n    _handlebars2.default.registerHelper(\"stringifyIdlConst\", function (value) {\n      switch (value.type) {\n        case \"null\":\n          return \"null\";\n        case \"Infinity\":\n          return value.negative ? \"-Infinity\" : \"Infinity\";\n        case \"NaN\":\n          return \"NaN\";\n        case \"number\":\n          return value.value;\n        case \"string\":\n        case \"boolean\":\n        case \"sequence\":\n          return JSON.stringify(value.value);\n        default:\n          (0, _pubsubhub.pub)(\"error\", \"Unexpected constant value type: `\" + value.type + \"`.\");\n          return \"\";\n      }\n    });\n    _handlebars2.default.registerHelper(\"escapeArgumentName\", escapeArgumentName);\n    _handlebars2.default.registerHelper(\"escapeAttributeName\", escapeAttributeName);\n    _handlebars2.default.registerHelper(\"escapeIdentifier\", escapeIdentifier);\n    _handlebars2.default.registerHelper(\"pads\", function (num) {\n      return new _handlebars2.default.SafeString(pads(num));\n    });\n    _handlebars2.default.registerHelper(\"join\", function (arr, between, options) {\n      return arr.map(options.fn).join(between);\n    });\n    _handlebars2.default.registerHelper(\"joinNonWhitespace\", function (arr, between, options) {\n      return arr.filter(elem => elem.type !== \"ws\").map(options.fn).join(between);\n    });\n    // A block helper that emits an  around its contents\n    // if obj.dfn exists. If it exists, that implies that\n    // there's another  for the object.\n    _handlebars2.default.registerHelper(\"tryLink\", function (obj, options) {\n      const content = options.fn(this);\n      const isDefaultJSON = obj.name === \"toJSON\" && obj.extAttrs.some(({ name }) => name === \"Default\");\n      // nothing defines this.\n      if (!obj.dfn && !isDefaultJSON) {\n        return content;\n      }\n      // We are going to return a hyperlink\n      const a = document.createElement(\"a\");\n      a.innerText = content;\n      // Let's deal with WebIDL's Default toJSON(); first.\n      if (!obj.dfn && isDefaultJSON) {\n        // If toJSON is not overridden, link directly to WebIDL spec.\n        a.dataset.cite = \"WEBIDL#default-tojson-operation\";\n      } else {\n        // This is an internal IDL reference.\n        a.dataset.noDefault = \"\";\n        a.dataset.linkFor = obj.linkFor ? _handlebars2.default.Utils.escapeExpression(obj.linkFor).toLowerCase() : \"\";\n        a.dataset.lt = obj.dfn[0].dataset.lt || \"\";\n      }\n      return a.outerHTML;\n    });\n  }\n\n  function idn(lvl) {\n    return \"    \".repeat(lvl);\n  }\n\n  function idlType2Html(idlType) {\n    if (typeof idlType === \"string\") {\n      return `${_handlebars2.default.Utils.escapeExpression(idlType)}`;\n    }\n    if (Array.isArray(idlType)) {\n      return idlType.map(idlType2Html).join(\", \");\n    }\n    const extAttrs = extAttr(idlType.extAttrs, 0, /*singleLine=*/true);\n    const nullable = idlType.nullable ? \"?\" : \"\";\n    if (idlType.union) {\n      return `${extAttrs}(${idlType.idlType.map(idlType2Html).join(\" or \")})${nullable}`;\n    }\n    let type = \"\";\n    if (idlType.generic) {\n      type = standardTypes.has(idlType.generic) ? linkStandardType(idlType.generic) : idlType2Html(idlType.generic);\n      type = `${type}<${idlType2Html(idlType.idlType)}>`;\n    } else {\n      type = standardTypes.has(idlType.idlType) ? linkStandardType(idlType.idlType) : idlType2Html(idlType.idlType);\n    }\n    return extAttrs + type + nullable;\n  }\n\n  function linkStandardType(type) {\n    if (!standardTypes.has(type)) {\n      return type;\n    }\n    const safeType = _handlebars2.default.Utils.escapeExpression(type);\n    return `${safeType}`;\n  }\n\n  function idlType2Text(idlType) {\n    if (typeof idlType === \"string\") {\n      return idlType;\n    }\n    const nullable = idlType.nullable ? \"?\" : \"\";\n    if (idlType.union) {\n      return `(${idlType.idlType.map(idlType2Text).join(\" or \")})${nullable}`;\n    }\n    if (idlType.generic) {\n      const types = [].concat(idlType.idlType).map(idlType2Text).join(\", \");\n      return `${idlType.generic}<${types}>${nullable}`;\n    }\n    return idlType2Text(idlType.idlType) + nullable;\n  }\n\n  function pads(num) {\n    return \" \".repeat(num);\n  }\n  var whitespaceTypes = {\n    ws: true,\n    \"ws-pea\": true,\n    \"ws-tpea\": true,\n    \"line-comment\": true,\n    \"multiline-comment\": true\n  };\n\n  function typeIsWhitespace(webIdlType) {\n    return whitespaceTypes[webIdlType];\n  }\n\n  const extenedAttributesLinks = new Map([[\"CEReactions\", \"HTML#cereactions\"], [\"Clamp\", \"WEBIDL#Clamp\"], [\"Constructor\", \"WEBIDL#Constructor\"], [\"Default\", \"WEBIDL#Default\"], [\"EnforceRange\", \"WEBIDL#EnforceRange\"], [\"Exposed\", \"WEBIDL#Exposed\"], [\"Global\", \"WEBIDL#Global\"], [\"HTMLConstructor\", \"HTML#htmlconstructor\"], [\"LegacyUnenumerableNamedProperties\", \"WEBIDL#LegacyUnenumerableNamedProperties\"], [\"LenientSetter\", \"WEBIDL#LenientSetter\"], [\"LenientThis\", \"WEBIDL#LenientThis\"], [\"NamedConstructor\", \"WEBIDL#NamedConstructor\"], [\"NewObject\", \"WEBIDL#NewObject\"], [\"NoInterfaceObject\", \"WEBIDL#NoInterfaceObject\"], [\"OverrideBuiltins\", \"WEBIDL#OverrideBuiltins\"], [\"PrimaryGlobal\", \"WEBIDL#PrimaryGlobal\"], [\"PutForwards\", \"WEBIDL#PutForwards\"], [\"Replaceable\", \"WEBIDL#Replaceable\"], [\"SameObject\", \"WEBIDL#SameObject\"], [\"SecureContext\", \"WEBIDL#SecureContext\"], [\"TreatNonObjectAsNull\", \"WEBIDL#TreatNonObjectAsNull\"], [\"TreatNullAs\", \"WEBIDL#TreatNullAs\"], [\"Unforgeable\", \"WEBIDL#Unforgeable\"], [\"Unscopable\", \"WEBIDL#Unscopable\"]]);\n\n  function extAttr(extAttrs, indent, singleLine) {\n    if (extAttrs.length === 0) {\n      // If there are no extended attributes, omit the [] entirely.\n      return \"\";\n    }\n    var opt = {\n      extAttrs: extAttrs,\n      indent: indent,\n      sep: singleLine ? \", \" : \",\\n \" + idn(indent),\n      end: singleLine ? \" \" : \"\\n\"\n    };\n    const safeString = new _handlebars2.default.SafeString(idlExtAttributeTmpl(opt));\n    const tmpParser = document.createElement(\"div\");\n    tmpParser.innerHTML = safeString;\n    Array.from(tmpParser.querySelectorAll(\".extAttrName\")).filter(function (elem) {\n      return extenedAttributesLinks.has(elem.textContent);\n    }).forEach(function (elem) {\n      const a = elem.ownerDocument.createElement(\"a\");\n      a.dataset.cite = extenedAttributesLinks.get(elem.textContent);\n      a.textContent = elem.textContent;\n      elem.replaceChild(a, elem.firstChild);\n    });\n    return new _handlebars2.default.SafeString(tmpParser.innerHTML);\n  }\n\n  const standardTypes = new Map([[\"any\", \"WEBIDL#idl-any\"], [\"ArrayBuffer\", \"WEBIDL#idl-ArrayBuffer\"], [\"boolean\", \"WEBIDL#idl-boolean\"], [\"Buffer\", \"WEBIDL#idl-Buffer\"], [\"byte\", \"WEBIDL#idl-byte\"], [\"ByteString\", \"WEBIDL#idl-ByteString\"], [\"Callback\", \"WEBIDL#idl-Callback\"], [\"DataView\", \"WEBIDL#idl-DataView\"], [\"DOMException\", \"WEBIDL#idl-DOMException\"], [\"DOMString\", \"WEBIDL#idl-DOMString\"], [\"double\", \"WEBIDL#idl-double\"], [\"Error\", \"WEBIDL#idl-Error\"], [\"EventHandler\", \"HTML#eventhandler\"], [\"float\", \"WEBIDL#idl-float\"], [\"Float32Array\", \"WEBIDL#idl-Float32Array\"], [\"Float64Array\", \"WEBIDL#idl-Float64Array\"], [\"FrozenArray\", \"WEBIDL#idl-frozen-array\"], [\"Int16Array\", \"WEBIDL#idl-Int16Array\"], [\"Int32Array\", \"WEBIDL#idl-Int32Array\"], [\"Int8Array\", \"WEBIDL#idl-Int8Array\"], [\"long long\", \"WEBIDL#idl-long-long\"], [\"long\", \"WEBIDL#idl-long\"], [\"object\", \"WEBIDL#idl-object\"], [\"octet\", \"WEBIDL#idl-octet\"], [\"Promise\", \"WEBIDL#idl-promise\"], [\"record\", \"WEBIDL#idl-record\"], [\"sequence\", \"WEBIDL#idl-sequence\"], [\"short\", \"WEBIDL#idl-short\"], [\"Uint16Array\", \"WEBIDL#idl-Uint16Array\"], [\"Uint32Array\", \"WEBIDL#idl-Uint32Array\"], [\"Uint8Array\", \"WEBIDL#idl-Uint8Array\"], [\"Uint8ClampedArray\", \"WEBIDL#dl-Uint8ClampedArray\"], [\"unrestricted double\", \"WEBIDL#idl-unrestricted-double\"], [\"unrestricted float\", \"WEBIDL#idl-unrestricted-float\"], [\"unsigned long long\", \"WEBIDL#idl-unsigned-long-long\"], [\"unsigned long\", \"WEBIDL#idl-unsigned-long\"], [\"unsigned short\", \"WEBIDL#idl-unsigned-short\"], [\"USVString\", \"WEBIDL#idl-USVString\"]]);\n\n  const idlKeywords = new Set([\"any\", \"attribute\", \"boolean\", \"byte\", \"ByteString\", \"callback\", \"const\", \"creator\", \"Date\", \"deleter\", \"dictionary\", \"DOMString\", \"double\", \"enum\", \"false\", \"float\", \"getter\", \"implements\", \"Infinity\", \"inherit\", \"interface\", \"iterable\", \"long\", \"maplike\", \"NaN\", \"null\", \"object\", \"octet\", \"optional\", \"or\", \"partial\", \"readonly\", \"RegExp\", \"required\", \"sequence\", \"setlike\", \"setter\", \"short\", \"static\", \"stringifier\", \"true\", \"typedef\", \"unrestricted\", \"unsigned\", \"USVString\", \"void\"]);\n  const argumentNameKeyword = new Set([\"attribute\", \"callback\", \"const\", \"creator\", \"deleter\", \"dictionary\", \"enum\", \"getter\", \"implements\", \"inherit\", \"interface\", \"iterable\", \"maplike\", \"partial\", \"required\", \"setlike\", \"setter\", \"static\", \"stringifier\", \"typedef\", \"unrestricted\"]);\n  const attributeNameKeyword = new Set([\"required\"]);\n  var operationNames = {};\n  var idlPartials = {};\n\n  function escapeArgumentName(argumentName) {\n    if (idlKeywords.has(argumentName) && !argumentNameKeyword.has(argumentName)) return \"_\" + argumentName;\n    return argumentName;\n  }\n\n  function escapeAttributeName(attributeName) {\n    if (idlKeywords.has(attributeName) && !attributeNameKeyword.has(attributeName)) return \"_\" + attributeName;\n    return attributeName;\n  }\n\n  function escapeIdentifier(identifier) {\n    if (idlKeywords.has(identifier)) return \"_\" + identifier;\n    return identifier;\n  }\n\n  // Takes the result of WebIDL2.parse(), an array of definitions.\n  function makeMarkup(conf, parse) {\n    var attr = { class: \"def idl\" };\n    var $pre = $(\"
      \").attr(attr);\n    $pre.html(parse.filter(function (defn) {\n      return !typeIsWhitespace(defn.type);\n    }).map(function (defn) {\n      return writeDefinition(defn, -1);\n    }).join(\"\\n\\n\"));\n    return $pre;\n  }\n\n  function writeDefinition(obj, indent) {\n    indent++;\n    var opt = { indent: indent, obj: obj };\n    switch (obj.type) {\n      case \"typedef\":\n        return idlTypedefTmpl(opt);\n      case \"includes\":\n        return idlIncludesTmpl(opt);\n      case \"implements\":\n        return idlImplementsTmpl(opt);\n      case \"interface\":\n        return writeInterfaceDefinition(opt);\n      case \"interface mixin\":\n        return writeInterfaceDefinition(opt, { mixin: true });\n      case \"callback interface\":\n        return writeInterfaceDefinition(opt, { callback: true });\n      case \"dictionary\":\n        var maxQualifiers = 0,\n            maxType = 0;\n        var members = obj.members.filter(function (member) {\n          return !typeIsWhitespace(member.type);\n        });\n        for (const it of obj.members) {\n          if (typeIsWhitespace(it.type)) {\n            continue;\n          }\n          const qualifiers = it.required ? \"required \" : \"\";\n          if (maxQualifiers < qualifiers.length) maxQualifiers = qualifiers.length;\n\n          var typeLen = idlType2Text(it.idlType).length;\n          if (maxType < typeLen) maxType = typeLen;\n        }\n        var children = obj.members.map(function (it) {\n          switch (it.type) {\n            case \"field\":\n              return writeMember(it, maxQualifiers, maxType, indent + 1);\n            case \"line-comment\":\n              return writeLineComment(it, indent + 1);\n            case \"multiline-comment\":\n              return writeMultiLineComment(it, indent + 1);\n            case \"ws\":\n              return writeBlankLines(it);\n            case \"ws-pea\":\n              break;\n            default:\n              throw new Error(\"Unexpected type in dictionary: `\" + it.type + \"`.\");\n          }\n        }).join(\"\");\n        return idlDictionaryTmpl({\n          obj: obj,\n          indent: indent,\n          children: children,\n          partial: obj.partial ? \"partial \" : \"\"\n        });\n      case \"callback\":\n        var paramObjs = obj.arguments.filter(function (it) {\n          return !typeIsWhitespace(it.type);\n        }).map(function (it) {\n          return idlParamTmpl({\n            obj: it,\n            optional: it.optional ? \"optional \" : \"\",\n            variadic: it.variadic ? \"...\" : \"\"\n          });\n        });\n        var callbackObj = {\n          obj: obj,\n          indent: indent,\n          children: paramObjs.join(\", \")\n        };\n        var ret = idlCallbackTmpl(callbackObj);\n        var line = $(ret).text();\n        if (line.length > 80) {\n          var paramPad = line.indexOf(\"(\") + 1;\n          callbackObj.children = paramObjs.join(\",\\n\" + pads(paramPad));\n\n          ret = idlCallbackTmpl(callbackObj);\n        }\n        return ret;\n      case \"enum\":\n        var children = \"\";\n        for (var i = 0; i < obj.values.length; i++) {\n          var item = obj.values[i];\n          switch (item.type) {\n            case \"string\":\n              var needsComma = false;\n              for (var j = i + 1; j < obj.values.length; j++) {\n                var lookahead = obj.values[j];\n                if (lookahead.type === undefined) break;\n                if (lookahead.type === \",\") {\n                  needsComma = true;\n                  break;\n                }\n              }\n              children += idlEnumItemTmpl({\n                lname: item.value ? item.value.toLowerCase() : \"the-empty-string\",\n                name: item.value,\n                parentID: obj.name.toLowerCase(),\n                indent: indent + 1,\n                needsComma: needsComma\n              });\n              break;\n            case \"line-comment\":\n              children += writeLineComment(item, indent + 1);\n              break;\n            case \"multiline-comment\":\n              children += writeMultiLineComment(item, indent + 1);\n              break;\n            case \"ws\":\n              children += writeBlankLines(item);\n              break;\n            case \",\":\n            case \"ws-pea\":\n              break;\n            default:\n              throw new Error(\"Unexpected type in exception: `\" + item.type + \"`.\");\n          }\n        }\n        return idlEnumTmpl({ obj: obj, indent: indent, children: children });\n      default:\n        (0, _pubsubhub.pub)(\"error\", \"Unexpected object type `\" + obj.type + \"` in \" + JSON.stringify(obj));\n        return \"\";\n    }\n  }\n\n  function writeInterfaceDefinition(opt, fixes = {}) {\n    var obj = opt.obj,\n        indent = opt.indent;\n    var maxAttr = 0,\n        maxAttrQualifiers = 0,\n        maxMeth = 0,\n        maxConst = 0;\n    for (const it of obj.members) {\n      if (typeIsWhitespace(it.type) || it.type === \"maplike\" || it.type === \"iterable\") {\n        continue;\n      }\n      var len = idlType2Text(it.idlType).length;\n      if (it.type === \"attribute\") {\n        var qualifiersLen = writeAttributeQualifiers(it).length;\n        maxAttr = Math.max(len, maxAttr);\n        maxAttrQualifiers = Math.max(qualifiersLen, maxAttrQualifiers);\n      } else if (it.type === \"operation\") {\n        if (it.static) {\n          len += \"static \".length;\n        } else if (it.stringifier) {\n          len += \"stringifier \".length;\n        } else if (it.getter) {\n          len += \"getter \".length;\n        } else if (it.setter) {\n          len += \"setter \".length;\n        }\n        maxMeth = Math.max(len, maxMeth);\n      } else if (it.type === \"const\") {\n        maxConst = Math.max(len, maxConst);\n      }\n    }\n    var children = obj.members.map(function (ch) {\n      switch (ch.type) {\n        case \"attribute\":\n          return writeAttribute(ch, maxAttr, indent + 1, maxAttrQualifiers);\n        case \"operation\":\n          return writeMethod(ch, maxMeth, indent + 1);\n        case \"const\":\n          return writeConst(ch, maxConst, indent + 1);\n        case \"maplike\":\n          return writeMaplike(ch, indent + 1);\n        case \"iterable\":\n          return writeIterable(ch, indent + 1);\n        case \"ws\":\n          return writeBlankLines(ch);\n        case \"line-comment\":\n          return writeLineComment(ch, indent + 1);\n        case \"multiline-comment\":\n          return writeMultiLineComment(ch, indent + 1);\n        default:\n          throw new Error(\"Unexpected member type: `\" + ch.type + \"`.\");\n      }\n    }).join(\"\");\n    return idlInterfaceTmpl({\n      obj,\n      indent,\n      partial: obj.partial ? \"partial \" : \"\",\n      callback: fixes.callback ? \"callback \" : \"\",\n      mixin: fixes.mixin ? \"mixin \" : \"\",\n      children\n    });\n  }\n\n  function writeField(attr, max, indent) {\n    var pad = max - idlType2Text(attr.idlType).length;\n    return idlFieldTmpl({\n      obj: attr,\n      indent: indent,\n      pad: pad\n    });\n  }\n\n  function writeAttributeQualifiers(attr) {\n    var qualifiers = \"\";\n    if (attr.static) qualifiers += \"static \";\n    if (attr.stringifier) qualifiers += \"stringifier \";\n    if (attr.inherit) qualifiers += \"inherit \";\n    if (attr.readonly) qualifiers += \"readonly \";\n    return qualifiers;\n  }\n\n  function writeAttribute(attr, max, indent, maxQualifiers) {\n    var len = idlType2Text(attr.idlType).length;\n    var pad = max - len;\n    var qualifiers = writeAttributeQualifiers(attr);\n    qualifiers += pads(maxQualifiers);\n    qualifiers = qualifiers.slice(0, maxQualifiers);\n    return idlAttributeTmpl({\n      obj: attr,\n      indent: indent,\n      qualifiers: qualifiers,\n      pad: pad\n    });\n  }\n\n  function writeMethod(meth, max, indent) {\n    var paramObjs = meth.arguments.filter(function (it) {\n      return !typeIsWhitespace(it.type);\n    }).map(function (it) {\n      return idlParamTmpl({\n        obj: it,\n        optional: it.optional ? \"optional \" : \"\",\n        variadic: it.variadic ? \"...\" : \"\"\n      });\n    });\n    var params = paramObjs.join(\", \");\n    var len = idlType2Text(meth.idlType).length;\n    var specialProps = [\"getter\", \"setter\", \"deleter\", \"stringifier\", \"static\"];\n    var special = \"\";\n    for (var i in specialProps) {\n      if (meth[specialProps[i]]) {\n        special = specialProps[i] + \" \";\n        len += special.length;\n        break;\n      }\n    }\n    var pad = max - len;\n    var methObj = {\n      obj: meth,\n      indent: indent,\n      special: special,\n      pad: pad,\n      children: params\n    };\n    var ret = idlMethodTmpl(methObj);\n    var line = $(ret).text();\n    if (line.length > 80) {\n      var paramPad = line.indexOf(\"(\") + 1;\n      methObj.children = paramObjs.join(\",\\n\" + pads(paramPad));\n      ret = idlMethodTmpl(methObj);\n    }\n    return ret;\n  }\n\n  function writeConst(cons, max, indent) {\n    var pad = max - idlType2Text(cons.idlType).length;\n    if (cons.nullable) pad--;\n    return idlConstTmpl({\n      obj: cons,\n      indent: indent,\n      pad: pad,\n      nullable: cons.nullable ? \"?\" : \"\"\n    });\n  }\n\n  // Writes a single blank line if whitespace includes at least one blank line.\n  function writeBlankLines(whitespace) {\n    if (/\\n.*\\n/.test(whitespace.value)) {\n      // Members end with a newline, so we only need 1 extra one to get a blank line.\n      return \"\\n\";\n    }\n    return \"\";\n  }\n\n  function writeLineComment(comment, indent) {\n    return idlLineCommentTmpl({ indent: indent, comment: comment.value });\n  }\n\n  function writeMultiLineComment(comment, indent) {\n    // Split the multi-line comment into lines so we can indent it properly.\n    var lines = comment.value.split(/\\r\\n|\\r|\\n/);\n    if (lines.length === 0) {\n      return \"\";\n    } else if (lines.length === 1) {\n      return idlLineCommentTmpl({ indent: indent, comment: lines[0] });\n    }\n    var initialSpaces = Math.max(0, /^ */.exec(lines[1])[0].length - 3);\n\n    function trimInitialSpace(line) {\n      return line.slice(initialSpaces);\n    }\n    return idlMultiLineCommentTmpl({\n      indent: indent,\n      firstLine: lines[0],\n      lastLine: trimInitialSpace(lines[lines.length - 1]),\n      innerLine: lines.slice(1, -1).map(trimInitialSpace)\n    });\n  }\n\n  function writeMaplike(maplike, indent) {\n    return idlMaplikeTmpl({\n      obj: maplike,\n      qualifiers: maplike.readonly ? \"readonly \" : \"\",\n      indent: indent\n    });\n  }\n\n  function writeIterable(iterable, indent) {\n    return idlIterableTmpl({\n      obj: iterable,\n      qualifiers: iterable.readonly ? \"readonly \" : \"\",\n      indent: indent\n    });\n  }\n\n  function writeMember(memb, maxQualifiers, maxType, indent) {\n    var opt = { obj: memb, indent: indent };\n    opt.typePad = maxType - idlType2Text(memb.idlType).length;\n    if (memb.required) opt.qualifiers = \"required \";else opt.qualifiers = \"         \";\n    opt.qualifiers = opt.qualifiers.slice(0, maxQualifiers);\n    return idlDictMemberTmpl(opt);\n  }\n\n  // Each entity defined in IDL is either a top- or second-level entity:\n  // Interface or Interface.member. This function finds the \n  // element defining each entity and attaches it to the entity's\n  // 'refTitle' property, and records that it describes an IDL entity by\n  // adding a [data-idl] attribute.\n\n  function linkDefinitions(parse, definitionMap, parent, idlElem) {\n    parse\n    // Don't bother with any of these\n    .filter(({ type }) => [\"includes\", \"implements\", \"ws\", \"ws-pea\", \"ws-tpea\", \"line-comment\", \"multiline-comment\"].includes(type) === false).forEach(function (defn) {\n      var name;\n      switch (defn.type) {\n        // Top-level entities with linkable members.\n        case \"callback interface\":\n        case \"dictionary\":\n        case \"interface\":\n        case \"interface mixin\":\n          var partialIdx = \"\";\n          if (defn.partial) {\n            if (!idlPartials[defn.name]) {\n              idlPartials[defn.name] = [];\n            }\n            idlPartials[defn.name].push(defn);\n            partialIdx = \"-partial-\" + idlPartials[defn.name].length;\n          }\n          linkDefinitions(defn.members, definitionMap, defn.name, idlElem);\n          name = defn.name;\n          defn.idlId = \"idl-def-\" + name.toLowerCase() + partialIdx;\n          break;\n        case \"enum\":\n          name = defn.name;\n          for (const v of defn.values) {\n            if (v.type === \"string\") {\n              v.dfn = findDfn(name, v.value, definitionMap, defn.type, idlElem);\n            }\n          }\n          defn.idlId = \"idl-def-\" + name.toLowerCase();\n          break;\n        // Top-level entities without linkable members.\n        case \"callback\":\n        case \"typedef\":\n          name = defn.name;\n          defn.idlId = \"idl-def-\" + name.toLowerCase();\n          break;\n        // Members of top-level entities.\n        case \"attribute\":\n        case \"const\":\n        case \"field\":\n          name = defn.name;\n          defn.idlId = \"idl-def-\" + parent.toLowerCase() + \"-\" + name.toLowerCase();\n          break;\n        case \"operation\":\n          if (defn.name) {\n            name = defn.name;\n            var qualifiedName = parent + \".\" + name;\n            var fullyQualifiedName = parent + \".\" + name + \"()\";\n            if (!operationNames[fullyQualifiedName]) {\n              operationNames[fullyQualifiedName] = [];\n            }\n            if (!operationNames[qualifiedName]) {\n              operationNames[qualifiedName] = [];\n            } else {\n              defn.overload = operationNames[qualifiedName].length;\n              name = defn.name + \"!overload-\" + defn.overload;\n            }\n            operationNames[fullyQualifiedName].push(defn);\n            operationNames[qualifiedName].push(defn);\n          } else if (defn.getter || defn.setter || defn.deleter || defn.stringifier) {\n            name = \"\";\n          }\n          const idHead = `idl-def-${parent.toLowerCase()}-${name.toLowerCase()}`;\n          const idTail = defn.overload || !defn.arguments.length ? \"\" : \"-\" + defn.arguments.filter(arg => !typeIsWhitespace(arg.type)).map(arg => arg.name.toLowerCase()).join(\"-\").replace(/\\s/g, \"_\");\n          defn.idlId = idHead + idTail;\n          break;\n        case \"maplike\":\n          name = \"maplike\";\n          defn.idlId = (\"idl-def-\" + parent + \"-\" + name).toLowerCase();\n          break;\n        case \"iterable\":\n          name = \"iterable\";\n          defn.idlId = \"idl-def-\" + parent.toLowerCase() + \"-\" + name.toLowerCase();\n          break;\n        default:\n          (0, _pubsubhub.pub)(\"error\", new Error(\"ReSpec doesn't know about IDL type: `\" + defn.type + \"`.\"));\n          return;\n      }\n      if (parent) {\n        defn.linkFor = parent;\n      }\n      defn.dfn = findDfn(parent, name, definitionMap, defn.type, idlElem);\n    });\n  }\n\n  // This function looks for a  element whose title is 'name' and\n  // that is \"for\" 'parent', which is the empty string when 'name'\n  // refers to a top-level entity. For top-level entities, \n  // elements that inherit a non-empty [dfn-for] attribute are also\n  // counted as matching.\n  //\n  // When a matching  is found, it's given  formatting,\n  // marked as an IDL definition, and returned. If no  is found,\n  // the function returns 'undefined'.\n  function findDfn(parent, name, definitionMap, type, idlElem) {\n    const originalParent = parent;\n    const originalName = name;\n    parent = parent.toLowerCase();\n    switch (type) {\n      case \"operation\":\n        // Overloads all have unique names\n        if (name.search(\"!overload\") !== -1) {\n          name = name.toLowerCase();\n          break;\n        }\n        // Allow linking to both \"method()\" and \"method\" name.\n        const asMethodName = name.toLowerCase() + \"()\";\n        const asFullyQualifiedName = parent + \".\" + name.toLowerCase() + \"()\";\n\n        if (definitionMap[asMethodName] || definitionMap[asFullyQualifiedName]) {\n          const lookupName = definitionMap[asMethodName] ? asMethodName : asFullyQualifiedName;\n          const dfn = findDfn(parent, lookupName, definitionMap, null, idlElem);\n          if (!dfn) {\n            break; // try finding dfn using name, using normal search path...\n          }\n          const lt = dfn[0].dataset.lt ? dfn[0].dataset.lt.split(\"|\") : [];\n          lt.push(lookupName, name);\n          dfn[0].dataset.lt = lt.join(\"|\");\n          if (!definitionMap[name]) {\n            definitionMap[name] = [];\n          }\n          definitionMap[name].push(dfn);\n          return dfn;\n        }\n        // no method alias, so let's find the dfn and add it\n        const dfn = findDfn(parent, name, definitionMap, null, idlElem);\n        if (!dfn) {\n          break;\n        }\n        const lt = dfn[0].dataset.lt ? dfn[0].dataset.lt.split(\"|\") : [];\n        lt.push(asMethodName, name);\n        dfn[0].dataset.lt = lt.reverse().join(\"|\");\n        definitionMap[asMethodName] = [dfn];\n        return dfn;\n      case \"enum\":\n        if (name === \"\") {\n          name = \"the-empty-string\";\n          break;\n        }\n      default:\n        name = name.toLowerCase();\n    }\n    if (unlinkable.has(name)) {\n      return;\n    }\n    var dfnForArray = definitionMap[name];\n    var dfns = [];\n    if (dfnForArray) {\n      // Definitions that have a title and [data-dfn-for] that exactly match the\n      // IDL entity:\n      dfns = dfnForArray.filter(dfn => dfn[0].dataset.dfnFor === parent);\n      // If this is a top-level entity, and we didn't find anything with\n      // an explicitly empty [for], try  that inherited a [for].\n      if (dfns.length === 0 && parent === \"\" && dfnForArray.length === 1) {\n        dfns = dfnForArray;\n      }\n    }\n    // If we haven't found any definitions with explicit [for]\n    // and [title], look for a dotted definition, \"parent.name\".\n    if (dfns.length === 0 && parent !== \"\") {\n      var dottedName = parent + \".\" + name;\n      dfnForArray = definitionMap[dottedName];\n      if (dfnForArray !== undefined && dfnForArray.length === 1) {\n        dfns = dfnForArray;\n        // Found it: update the definition to specify its [for] and data-lt.\n        delete definitionMap[dottedName];\n        dfns[0].attr(\"data-dfn-for\", parent);\n        dfns[0].attr(\"data-lt\", name);\n        if (definitionMap[name] === undefined) {\n          definitionMap[name] = [];\n        }\n        definitionMap[name].push(dfns[0]);\n      }\n    }\n    if (dfns.length > 1) {\n      const msg = `Multiple \\`\\`s for \\`${originalName}\\` ${originalParent ? `in \\`${originalParent}\\`` : \"\"}`;\n      (0, _pubsubhub.pub)(\"error\", new Error(msg));\n    }\n    if (dfns.length === 0) {\n      const showWarnings = type && idlElem && name && idlElem.classList.contains(\"no-link-warnings\") === false;\n      if (showWarnings) {\n        var msg = `No \\`\\` for ${type} \\`${originalName}\\`${originalParent ? \" in `\" + originalParent + \"`\" : \"\"}`;\n        msg += \". [More info](https://github.com/w3c/respec/wiki/WebIDL-thing-is-not-defined).\";\n        (0, _pubsubhub.pub)(\"warn\", msg);\n      }\n      return;\n    }\n    const dfn = dfns[0][0]; // work on actual node, not jquery\n    const id = \"dom-\" + (parent ? parent + \"-\" : \"\") + name.replace(/[()]/g, \"\");\n    dfn.id = id;\n    dfn.dataset.idl = \"\";\n    dfn.dataset.title = dfn.textContent;\n    dfn.dataset.dfnFor = parent;\n    // Mark the definition as code.\n    if (!dfn.querySelector(\"code\") && !dfn.closest(\"code\") && dfn.children) {\n      const code = dfn.ownerDocument.createElement(\"code\");\n      while (dfn.hasChildNodes()) {\n        code.appendChild(dfn.firstChild);\n      }\n      dfn.appendChild(code);\n    }\n    return dfns[0];\n  }\n  var resolveDone;\n\n  const done = exports.done = new Promise(function (resolve) {\n    resolveDone = resolve;\n  });\n\n  function run(conf, doc, cb) {\n    var finish = function () {\n      resolveDone();\n      (0, _pubsubhub.pub)(\"end\", \"core/webidl\");\n      cb();\n    };\n    var $idl = $(\"pre.idl\", doc);\n    if (!$idl.length) {\n      return finish();\n    }\n    registerHelpers();\n    if (!$(\".idl\", doc).not(\"pre\").length) {\n      $(doc).find(\"head link\").first().before($(\"\";\n\n    $(doc).find(\"head link\").first().before(style);\n    var $secs = $(doc).find(\"h2, h3, h4, h5, h6\");\n    $secs.each(function (i, item) {\n      var $item = $(item);\n      if (!$item.hasClass(\"nolink\")) {\n        var resourceID = $item.attr(\"id\");\n        var $par = $item.parent();\n        if ($par.is(\"section\") || $par.is(\"div\")) {\n          if (!$par.hasClass(\"introductory\") && !$par.hasClass(\"nolink\")) {\n            resourceID = $par.attr(\"id\");\n          } else {\n            resourceID = null;\n          }\n        }\n        // if we still have resourceID\n        if (resourceID) {\n          // we have an id.  add a permalink\n          // right after the h* element\n          var theNode = $(\"\");\n          theNode.attr(\"class\", \"permalink\");\n          var ctext = $item.text();\n          var el = $(\"\");\n          el.attr({\n            href: \"#\" + resourceID,\n            \"aria-label\": \"Permalink for \" + ctext,\n            title: \"Permalink for \" + ctext\n          });\n          var sym = $(\"\");\n          sym.append(symbol);\n          el.append(sym);\n          theNode.append(el);\n          // if this is not being put at\n          // page edge, then separate it\n          // from the heading with a\n          // non-breaking space\n          if (!conf.permalinkEdge) {\n            $item.append(\" \");\n          }\n          $item.append(theNode);\n        }\n      }\n    });\n    cb();\n  }\n});\n//# sourceMappingURL=permalinks.js.map;\n",
      -    "define('core/id-headers',[\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.run = run;\n  // Module core/id-headers\n  // All headings are expected to have an ID, unless their immediate container has one.\n  // This is currently in core though it comes from a W3C rule. It may move in the future.\n\n  const name = exports.name = \"core/id-headers\";\n\n  function run(conf, doc, cb) {\n    Array.from(document.querySelectorAll(\"h2:not([id]), h3:not([id]), h4:not([id]), h5:not([id]), h6:not([id])\")).forEach(elem => {\n      $(elem).makeID();\n    });\n    cb();\n  }\n});\n//# sourceMappingURL=id-headers.js.map;\n",
      -    "define('core/location-hash',[\"exports\", \"core/pubsubhub\"], function (exports, _pubsubhub) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.name = undefined;\n  exports.run = run;\n  const name = exports.name = \"core/location-hash\"; // Module core/location-hash\n  // Resets window.location.hash to jump to the right point in the document\n\n  function run(conf, doc, cb) {\n    // Added message for legacy compat with Aria specs\n    // See https://github.com/w3c/respec/issues/793\n    (0, _pubsubhub.pub)(\"start\", \"core/location-hash\");\n\n    let hash = \"\";\n    try {\n      hash = decodeURIComponent(window.location.hash).substr(1);\n    } catch (err) {\n      hash = \"\";\n    }\n    // Only scroll to the hash if the document hasn't been scrolled yet\n    // this ensures that a page refresh maintains the scroll position\n    if (!hash && !document.documentElement.scrollTop) {\n      return cb();\n    }\n    // Allow some degree of recovery for legacy fragments format.\n    // See https://github.com/w3c/respec/issues/1353\n    const hasLink = !!doc.getElementById(hash);\n    const isLegacyFrag = /\\W/.test(hash);\n    if (!hasLink && isLegacyFrag) {\n      const id = hash.replace(/[\\W]+/gim, \"-\").replace(/^-+/, \"\").replace(/-+$/, \"\");\n      if (document.getElementById(id)) {\n        hash = id;\n      }\n    }\n    window.location.hash = `#${hash}`;\n    cb();\n  }\n});\n//# sourceMappingURL=location-hash.js.map;\n",
      -    "\ndefine('deps/text!core/css/caniuse.css',[],function () { return '/* container for stats */\\n.caniuse-stats {\\n  display: flex;\\n  flex-wrap: wrap;\\n  justify-content: flex-start;\\n  align-items: baseline;\\n  cursor: pointer;\\n}\\n\\nbutton.caniuse-cell {\\n  margin: 1px 1px 0 0;\\n  border: none;\\n}\\n\\n.caniuse-browser {\\n  position: relative;\\n}\\n\\n/* reset styles, hide old versions by default */\\n.caniuse-browser ul {\\n  display: none;\\n  margin: 0;\\n  padding: 0;\\n  list-style: none;\\n  position: absolute;\\n  left: 0;\\n  z-index: 2;\\n  background: #fff;\\n  margin-top: 1px;\\n}\\n\\n.caniuse-stats a {\\n  white-space: nowrap;\\n  align-self: center;\\n  margin-left: .5em;\\n}\\n\\n/* a browser version */\\n.caniuse-cell {\\n  display: flex;\\n  color: rgba(0, 0, 0, 0.8);\\n  font-size: 90%;\\n  height: 0.8cm;\\n  margin-right: 1px;\\n  margin-top: 0;\\n  min-width: 3cm;\\n  overflow: visible;\\n  justify-content: center;\\n  align-items: center;\\n}\\n\\nli.caniuse-cell {\\n  margin-bottom: 1px;\\n}\\n\\n.caniuse-cell:focus {\\n  outline: none;\\n}\\n\\n.caniuse-cell:hover {\\n  color: rgba(0, 0, 0, 1);\\n}\\n\\n/* supports */\\n.caniuse-cell.y {\\n  background: #8bc34a;\\n}\\n\\n/* no support */\\n.caniuse-cell.n {\\n  background: #e53935;\\n}\\n\\n/* not supported by default / partial support etc\\nsee https://github.com/Fyrd/caniuse/blob/master/CONTRIBUTING.md for stats */\\n.caniuse-cell.d,\\n.caniuse-cell.a,\\n.caniuse-cell.x,\\n.caniuse-cell.p {\\n  background: #ffc107;\\n}\\n\\n/* show rest of the browser versions */\\n.caniuse-stats button:focus + ul,\\n.caniuse-stats .caniuse-browser:hover > ul {\\n  display: block;\\n}\\n';});\n\n",
      -    "define('core/caniuse',[\"exports\", \"core/utils\", \"core/pubsubhub\", \"deps/text!core/css/caniuse.css\", \"deps/hyperhtml\"], function (exports, _utils, _pubsubhub, _caniuse) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.name = undefined;\n  exports.run = run;\n\n  var _caniuse2 = _interopRequireDefault(_caniuse);\n\n  function _interopRequireDefault(obj) {\n    return obj && obj.__esModule ? obj : {\n      default: obj\n    };\n  }\n\n  var _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  const name = exports.name = \"core/caniuse\";\n\n  const GH_USER_CONTENT_URL = \"https://raw.githubusercontent.com/Fyrd/caniuse/master/features-json/\";\n\n  // browser name dictionary\n  const BROWSERS = new Map([[\"chrome\", \"Chrome\"], [\"firefox\", \"Firefox\"], [\"ie\", \"IE\"], [\"edge\", \"Edge\"], [\"android\", \"Android\"], [\"safari\", \"Safari\"], [\"opera\", \"Opera\"], [\"bb\", \"Blackberry\"], [\"and_uc\", \"UC (Android)\"], [\"and_ff\", \"Firefox (Android)\"]]);\n\n  // Keys from https://github.com/Fyrd/caniuse/blob/master/CONTRIBUTING.md\n  const supportTitles = new Map([[\"y\", \"Supported.\"], [\"a\", \"Almost supported (aka Partial support).\"], [\"n\", \"No support, or disabled by default.\"], [\"p\", \"No support, but has Polyfill.\"], [\"u\", \"Support unknown.\"], [\"x\", \"Requires prefix to work.\"], [\"d\", \"Disabled by default (needs to enabled).\"]]);\n\n  async function run(conf) {\n    if (!conf.caniuse) {\n      return; // nothing to do.\n    }\n    normalizeConf(conf);\n    const { caniuse } = conf;\n    if (!caniuse.feature) {\n      return; // no feature to show\n    }\n    const { feature } = caniuse;\n    const featureURL = \"https://caniuse.com/#feat=\" + feature;\n    const link = (0, _utils.createResourceHint)({\n      hint: \"preconnect\",\n      href: \"https://raw.githubusercontent.com\"\n    });\n    document.head.appendChild(link);\n    document.head.appendChild(hyperHTML`\n    `);\n\n    const headDlElem = document.querySelector(\".head dl\");\n    const contentPromise = new Promise(async resolve => {\n      let content;\n      try {\n        const stats = await fetchAndCacheJson(caniuse);\n        content = createTableHTML(caniuse, stats);\n      } catch (err) {\n        console.error(err);\n        const msg = `Couldn't find feature \"${feature}\" on caniuse.com? ` + \"Please check the feature key on [caniuse.com](https://caniuse.com)\";\n        (0, _pubsubhub.pub)(\"error\", msg);\n        content = hyperHTML`caniuse.com`;\n      }\n      resolve(content);\n    });\n    const definitionPair = hyperHTML.bind(document.createDocumentFragment())`\n    
      Can I Use this API?
      \n
      ${{\n any: contentPromise,\n placeholder: \"Fetching data from caniuse.com...\"\n }}
      `;\n headDlElem.appendChild(definitionPair);\n await contentPromise;\n\n // remove from export\n (0, _pubsubhub.pub)(\"amend-user-config\", { caniuse: feature });\n (0, _pubsubhub.sub)(\"beforesave\", outputDoc => {\n hyperHTML.bind(outputDoc.querySelector(\".caniuse-stats\"))`\n caniuse.com`;\n });\n }\n\n /**\n * Normalizes `conf.caniuse` object to hold normalized configuration\n *\n * @param {Object} conf configuration settings\n */\n function normalizeConf(conf) {\n const DEFAULTS = {\n maxAge: 60 * 60 * 24 * 1000, // 24 hours (in ms)\n browsers: [\"chrome\", \"firefox\", \"safari\", \"edge\"],\n versions: 4\n };\n if (typeof conf.caniuse === \"string\") {\n conf.caniuse = _extends({ feature: conf.caniuse }, DEFAULTS);\n return;\n }\n if (Array.isArray(conf.caniuse.browsers)) {\n conf.caniuse.browsers = conf.caniuse.browsers.map(b => b.toLowerCase()).filter(isValidBrowser);\n } else {\n conf.caniuse.browsers = DEFAULTS.browsers;\n }\n Object.assign(conf.caniuse, DEFAULTS, _extends({}, conf.caniuse));\n function isValidBrowser(browser) {\n if (BROWSERS.has(browser)) {\n return true;\n }\n (0, _pubsubhub.pub)(\"warn\", `Ignoring invalid browser \"\\`${browser}\\`\" in ` + \"[`respecConfig.caniuse.browsers`](https://github.com/w3c/respec/wiki/caniuse)\");\n return false;\n }\n }\n\n /**\n * Get stats for canIUse table.\n *\n * @param {Object} caniuseConf normalized respecConfig.caniuse\n * @return {Object} Can I Use stats\n * @throws {Error} on failure\n */\n async function fetchAndCacheJson(caniuseConf) {\n const { apiURL, feature, maxAge } = caniuseConf;\n const url = apiURL ? apiURL.replace(\"{FEATURE}\", feature) : `${GH_USER_CONTENT_URL}${feature}.json`;\n const request = new Request(url);\n const response = await (0, _utils.fetchAndCache)(request, maxAge);\n const { stats } = await response.json();\n return stats;\n }\n\n /**\n * Get HTML element for the canIUse support table.\n *\n * @param {Object} stats CanIUse API results\n * @param {Object} conf respecConfig.caniuse\n */\n function createTableHTML(conf, stats) {\n // render the support table\n return hyperHTML`\n ${conf.browsers.map(browser => addBrowser(browser, conf.versions, stats[browser])).filter(elem => elem)}\n More info\n `;\n\n /**\n * Add a browser and it's support to table.\n *\n * @param {String} browser name of browser (as in CanIUse API response)\n * @param {Number} numVersions number of old browser versions to show\n * @param {Object} browserData stats data from api response\n * @param {Number} tabindex\n */\n function addBrowser(browser, numVersions, browserData) {\n if (!browserData) return;\n const getSupport = version => {\n const supportKeys = browserData[version].split(\"#\", 1)[0] // don't care about footnotes.\n .split(\" \").filter(item => item);\n const titles = supportKeys.filter(key => supportTitles.has(key)).map(key => supportTitles.get(key));\n return {\n support: supportKeys.join(\" \"),\n title: titles.join(\" \")\n };\n };\n const addBrowserVersion = version => {\n const { support, title } = getSupport(version);\n const cssClass = \"caniuse-cell \" + support;\n return `
    • ${version}
    • `;\n };\n\n const [latestVersion, ...olderVersions] = Object.keys(browserData).sort(_utils.semverCompare).slice(-numVersions).reverse();\n const { support, title } = getSupport(latestVersion);\n const cssClass = `caniuse-cell ${support}`;\n return hyperHTML`\n
      \n \n
        \n ${olderVersions.map(addBrowserVersion)}\n
      \n
      `;\n }\n }\n});\n//# sourceMappingURL=caniuse.js.map;\n", - "define('core/exporter',[\"exports\", \"core/utils\", \"core/pubsubhub\", \"deps/hyperhtml\"], function (exports, _utils, _pubsubhub) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.rsDocToDataURL = rsDocToDataURL;\n\n\n const mimeTypes = new Map([[\"text/html\", \"html\"], [\"application/xml\", \"xml\"]]);\n\n /**\n * Creates a dataURI from a ReSpec document. It also cleans up the document\n * removing various things.\n *\n * @param {String} mimeType mimetype. one of `mimeTypes` above\n * @param {Document} doc document to export. useful for testing purposes\n * @returns a stringified data-uri of document that can be saved.\n */\n /**\n * module: core/exporter\n * Exports a ReSpec document, based on mime type, so it can be saved, etc.\n * Also performs cleanup, removing things that shouldn't be in published documents.\n * That is, elements that have a \"removeOnSave\" css class.\n */\n\n function rsDocToDataURL(mimeType, doc = document) {\n const format = mimeTypes.get(mimeType);\n if (!format) {\n const validTypes = [...mimeTypes.values()].join(\", \");\n const msg = `Invalid format: ${mimeType}. Expected one of: ${validTypes}.`;\n throw new TypeError(msg);\n }\n const data = serialize(format, doc);\n const encodedString = encodeURIComponent(data);\n return `data:${mimeType};charset=utf-8,${encodedString}`;\n }\n\n function serialize(format, doc) {\n const cloneDoc = doc.cloneNode(true);\n cleanup(cloneDoc);\n let result = \"\";\n switch (format) {\n case \"xml\":\n result = new XMLSerializer().serializeToString(cloneDoc);\n break;\n default:\n {\n if (cloneDoc.doctype) {\n result += new XMLSerializer().serializeToString(cloneDoc.doctype);\n }\n result += cloneDoc.documentElement.outerHTML;\n }\n }\n return result;\n }\n\n function cleanup(cloneDoc) {\n const { head, body, documentElement } = cloneDoc;\n cleanupHyper(cloneDoc);\n\n cloneDoc.querySelectorAll(\".removeOnSave, #toc-nav\").forEach(elem => elem.remove());\n body.classList.remove(\"toc-sidebar\");\n (0, _utils.removeReSpec)(documentElement);\n\n const insertions = cloneDoc.createDocumentFragment();\n\n // Move meta viewport, as it controls the rendering on mobile.\n const metaViewport = cloneDoc.querySelector(\"meta[name='viewport']\");\n if (metaViewport && head.firstChild !== metaViewport) {\n insertions.appendChild(metaViewport);\n }\n\n // Move charset to near top, as it needs to be in the first 512 bytes.\n let metaCharset = cloneDoc.querySelector(\"meta[charset], meta[content*='charset=']\");\n if (!metaCharset) {\n metaCharset = hyperHTML``;\n }\n insertions.appendChild(metaCharset);\n\n // Add meta generator\n const respecVersion = `ReSpec ${window.respecVersion || \"Developer Channel\"}`;\n const metaGenerator = hyperHTML`\n \n `;\n\n insertions.appendChild(metaGenerator);\n head.insertBefore(insertions, head.firstChild);\n (0, _pubsubhub.pub)(\"beforesave\", documentElement);\n }\n\n function cleanupHyper({ documentElement: node }) {\n // collect first, or walker will cease too early\n const filter = comment => comment.textContent.startsWith(\"_hyper\");\n const walker = document.createTreeWalker(node, NodeFilter.SHOW_COMMENT, filter);\n for (const comment of [...walkTree(walker)]) {\n comment.remove();\n }\n }\n\n function* walkTree(walker) {\n while (walker.nextNode()) {\n yield walker.currentNode;\n }\n }\n});\n//# sourceMappingURL=exporter.js.map;\n", - "define('ui/save-html',[\"exports\", \"core/ui\", \"core/l10n\", \"core/pubsubhub\", \"core/exporter\", \"deps/hyperhtml\"], function (exports, _ui, _l10n, _pubsubhub, _exporter) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.show = show;\n exports.exportDocument = exportDocument;\n const name = exports.name = \"ui/save-html\";\n\n // Create and download an EPUB 3 version of the content\n // Using (by default) the EPUB 3 conversion service set up at labs.w3.org/epub-generator\n // For more details on that service, see https://github.com/iherman/respec2epub\n // Module ui/save-html\n // Saves content to HTML when asked to\n const epubURL = new URL(\"https://labs.w3.org/epub-generator/cgi-bin/epub-generator.py\");\n epubURL.searchParams.append(\"type\", \"respec\");\n epubURL.searchParams.append(\"url\", document.location.href);\n\n const downloadLinks = [{\n id: \"respec-save-as-html\",\n fileName: \"index.html\",\n title: \"HTML\",\n type: \"text/html\",\n get href() {\n return (0, _exporter.rsDocToDataURL)(this.type);\n }\n }, {\n id: \"respec-save-as-xml\",\n fileName: \"index.xhtml\",\n title: \"XML\",\n type: \"application/xml\",\n get href() {\n return (0, _exporter.rsDocToDataURL)(this.type);\n }\n }, {\n id: \"respec-save-as-epub\",\n fileName: \"spec.epub\",\n title: \"EPUB 3\",\n type: \"application/epub+zip\",\n href: epubURL.href\n }];\n\n function toDownloadLink(details) {\n const { id, href, fileName, title, type } = details;\n return hyperHTML`\n _ui.ui.closeModal()}\n >${title}`;\n }\n\n const saveDialog = {\n async show(button) {\n await document.respecIsReady;\n const div = hyperHTML`\n
      \n ${downloadLinks.map(toDownloadLink)}\n
      `;\n _ui.ui.freshModal(_l10n.l10n[_l10n.lang].save_snapshot, div, button);\n }\n };\n\n const supportsDownload = \"download\" in HTMLAnchorElement.prototype;\n let button;\n if (supportsDownload) {\n button = _ui.ui.addCommand(_l10n.l10n[_l10n.lang].save_snapshot, \"ui/save-html\", \"Ctrl+Shift+Alt+S\", \"💾\");\n }\n\n function show() {\n if (!supportsDownload) return;\n saveDialog.show(button);\n }\n\n function exportDocument(format, mimeType) {\n const msg = \"Exporting via ui/save-html module's `exportDocument()` is deprecated and will be removed. \" + \"Use core/exporter `rsDocToDataURL()` instead.\";\n (0, _pubsubhub.pub)(\"warn\", msg);\n console.warn(msg);\n return (0, _exporter.rsDocToDataURL)(mimeType);\n }\n});\n//# sourceMappingURL=save-html.js.map;\n", - "define('ui/search-specref',[\"exports\", \"core/ui\", \"core/biblio\", \"core/l10n\"], function (exports, _ui, _biblio, _l10n) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.show = undefined;\n\n\n const button = _ui.ui.addCommand(_l10n.l10n[_l10n.lang].search_specref, \"ui/search-specref\", \"Ctrl+Shift+Alt+space\", \"🔎\"); // Module ui/search-specref\n // Search Specref database\n\n const specrefURL = \"https://specref.herokuapp.com/\";\n const refSearchURL = `${specrefURL}search-refs`;\n const reveseLookupURL = `${specrefURL}reverse-lookup`;\n const form = document.createElement(\"form\");\n const renderer = window.hyperHTML.bind(form);\n const resultList = hyperHTML.bind(document.createElement(\"div\"));\n\n form.id = \"specref-ui\";\n\n function renderResults(resultMap, query, timeTaken) {\n if (!resultMap.size) {\n return resultList`\n

      \n Your search - ${query} -\n did not match any references.\n

      \n `;\n }\n const wires = Array.from(resultMap.entries()).slice(0, 99).map(toDefinitionPair).reduce((collector, pair) => collector.concat(pair), []);\n return resultList`\n

      \n ${resultMap.size} results (${timeTaken} seconds).\n ${resultMap.size > 99 ? \"First 100 results.\" : \"\"}\n

      \n
      ${wires}
      \n `;\n }\n\n function toDefinitionPair([key, entry]) {\n return hyperHTML.wire(entry)`\n
      \n [${key}]\n
      \n
      ${(0, _biblio.wireReference)(entry)}
      \n `;\n }\n\n function resultProcessor({ includeVersions } = { includeVersions: false }) {\n return (...fetchedData) => {\n const combinedResults = fetchedData.reduce((collector, resultObj) => Object.assign(collector, resultObj), {});\n const results = new Map(Object.entries(combinedResults));\n // remove aliases\n Array.from(results.entries()).filter(([, entry]) => entry.aliasOf).map(([key]) => key).reduce((results, key) => results.delete(key) && results, results);\n // Remove versions, if asked to\n if (!includeVersions) {\n Array.from(results.values()).filter(entry => typeof entry === \"object\" && \"versions\" in entry).reduce((collector, entry) => collector.concat(entry.versions), []).forEach(version => {\n results.delete(version);\n });\n }\n // Remove legacy string entries\n Array.from(results.entries()).filter(([, entry]) => typeof entry !== \"object\").reduce((result, [key]) => results.delete(key) && results, results);\n return results;\n };\n }\n\n form.addEventListener(\"submit\", async ev => {\n ev.preventDefault();\n const { searchBox } = form;\n const query = searchBox.value;\n if (!query) {\n searchBox.focus();\n return;\n }\n render({ state: \"Searching Specref…\" });\n const refSearch = new URL(refSearchURL);\n refSearch.searchParams.set(\"q\", query);\n const reverseLookup = new URL(reveseLookupURL);\n reverseLookup.searchParams.set(\"urls\", query);\n try {\n const startTime = performance.now();\n const jsonData = await Promise.all([fetch(refSearch).then(response => response.json()), fetch(reverseLookup).then(response => response.json())]);\n const { checked: includeVersions } = form.includeVersions;\n const processResults = resultProcessor({ includeVersions });\n const results = processResults(...jsonData);\n render({\n query,\n results,\n state: \"\",\n timeTaken: Math.round(performance.now() - startTime) / 1000\n });\n } catch (err) {\n console.error(err);\n render({ state: \"Error! Couldn't do search.\" });\n } finally {\n searchBox.focus();\n }\n });\n\n function show() {\n render();\n _ui.ui.freshModal(_l10n.l10n[_l10n.lang].search_specref, form, button);\n form.querySelector(\"input[type=search]\").focus();\n }\n\n const mast = hyperHTML.wire()`\n
      \n

      \n An Open-Source, Community-Maintained Database of\n Web Standards & Related References.\n

      \n
      \n
      \n \n \n Search\n \n \n
      \n`;\n\n function render({ state, results, timeTaken, query } = { state: \"\" }) {\n if (!results) {\n renderer`
      ${mast}
      `;\n return;\n }\n renderer`\n
      ${mast}
      \n \n \n `;\n }\n\n exports.show = show;\n});\n//# sourceMappingURL=search-specref.js.map;\n", - "define('ui/dfn-list',[\"exports\", \"core/ui\", \"core/l10n\", \"deps/hyperhtml\"], function (exports, _ui, _l10n) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.show = undefined;\n\n\n const button = _ui.ui.addCommand(_l10n.l10n[_l10n.lang].definition_list, \"ui/dfn-list\", \"Ctrl+Shift+Alt+D\", \"📔\"); /// Module ui/dfn-list\n // Displays all definitions with links to the defining element.\n\n\n const ul = document.createElement(\"ul\");\n ul.classList.add(\"respec-dfn-list\");\n const render = window.hyperHTML.bind(ul);\n\n ul.addEventListener(\"click\", ev => {\n _ui.ui.closeModal();\n ev.stopPropagation();\n });\n\n function show() {\n const definitionLinks = Object.entries(respecConfig.definitionMap).sort(([keyA], [keyB]) => keyA.localeCompare(keyB)).map(([key, $dfns]) => {\n const [dfn] = $dfns[0];\n return window.hyperHTML.wire(dfn, \":li>a\")`\n
    • \n \n ${dfn.textContent}\n \n
    • \n `;\n });\n render`${definitionLinks}`;\n _ui.ui.freshModal(_l10n.l10n[_l10n.lang].list_of_definitions, ul, button);\n }\n\n exports.show = show;\n});\n//# sourceMappingURL=dfn-list.js.map;\n", - "define('ui/about-respec',[\"exports\", \"core/ui\", \"core/l10n\", \"deps/hyperhtml\"], function (exports, _ui, _l10n) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.show = undefined;\n\n\n // window.respecVersion is added at build time (see tools/builder.js)\n window.respecVersion = window.respecVersion || \"Developer Edition\"; // Module ui/about-respec\n // A simple about dialog with pointer to the help\n\n const div = document.createElement(\"div\");\n const render = hyperHTML.bind(div);\n const button = _ui.ui.addCommand(`About ${window.respecVersion}`, \"ui/about-respec\", \"Ctrl+Shift+Alt+A\", \"ℹ️\");\n\n function show() {\n _ui.ui.freshModal(`${_l10n.l10n[_l10n.lang].about_respec} - ${window.respecVersion}`, div, button);\n let entries = [];\n if (\"getEntriesByType\" in performance) {\n performance.getEntriesByType(\"measure\").sort((a, b) => b.duration - a.duration).map(({ name, duration }) => {\n const fixedSize = duration.toFixed(2);\n const humanDuration = fixedSize > 1000 ? `${Math.round(fixedSize / 1000.0)} second(s)` : `${fixedSize} milliseconds`;\n return { name, duration: humanDuration };\n }).map(perfEntryToTR).reduce((collector, entry) => {\n collector.push(entry);\n return collector;\n }, entries);\n }\n render`\n

      \n ReSpec is a document production toolchain, with a notable focus on W3C specifications.\n

      \n

      \n Documentation,\n Bugs.\n

      \n \n \n \n \n \n \n \n \n ${entries}\n \n`;\n }\n\n function perfEntryToTR({ name, duration }) {\n const render = hyperHTML.bind(document.createElement(\"tr\"));\n const moduleURL = `https://github.com/w3c/respec/tree/develop/src/${name}.js`;\n return render`\n \n \n ${name}\n \n \n \n ${duration} \n \n `;\n }\n\n exports.show = show;\n});\n//# sourceMappingURL=about-respec.js.map;\n", - "define('core/seo',[\"exports\"], function (exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.run = run;\n /**\n * This Module adds a metatag description to the document, based on the\n * first paragraph of the abstract.\n */\n\n const name = exports.name = \"core/seo\";\n\n async function run(conf, doc, cb) {\n // This is not critical, so let's continue other processing first\n cb();\n await doc.respecIsReady;\n const firstParagraph = doc.querySelector(\"#abstract p:first-of-type\");\n if (!firstParagraph) {\n return; // no abstract, so nothing to do\n }\n insertMetaDescription(firstParagraph);\n }\n\n function insertMetaDescription(firstParagraph) {\n // Normalize whitespace: trim, remove new lines, tabs, etc.\n const doc = firstParagraph.ownerDocument;\n const content = firstParagraph.textContent.replace(/\\s+/, \" \").trim();\n const metaElem = doc.createElement(\"meta\");\n metaElem.name = \"description\";\n metaElem.content = content;\n doc.head.appendChild(metaElem);\n }\n});\n//# sourceMappingURL=seo.js.map;\n", - "define('w3c/seo',[\"exports\", \"core/pubsubhub\"], function (exports, _pubsubhub) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.run = run;\n const name = exports.name = \"w3c/seo\"; // Module w3c/seo\n // Manages SEO information for documents\n // e.g. set the canonical URL for the document if configured\n function run(conf, doc, cb) {\n var trLatestUri = conf.shortName ? \"https://www.w3.org/TR/\" + conf.shortName + \"/\" : null;\n switch (conf.canonicalURI) {\n case \"edDraft\":\n if (conf.edDraftURI) {\n conf.canonicalURI = new URL(conf.edDraftURI, doc.location).href;\n } else {\n (0, _pubsubhub.pub)(\"warn\", \"Canonical URI set to edDraft, \" + \"but no edDraftURI is set in configuration\");\n conf.canonicalURI = null;\n }\n break;\n case \"TR\":\n if (trLatestUri) {\n conf.canonicalURI = trLatestUri;\n } else {\n (0, _pubsubhub.pub)(\"warn\", \"Canonical URI set to TR, but \" + \"no shortName is set in configuration\");\n conf.canonicalURI = null;\n }\n break;\n default:\n if (conf.canonicalURI) {\n try {\n conf.canonicalURI = new URL(conf.canonicalURI, doc.location).href;\n } catch (err) {\n (0, _pubsubhub.pub)(\"warn\", \"CanonicalURI is an invalid URL: \" + err.message);\n conf.canonicalURI = null;\n }\n } else if (trLatestUri) {\n conf.canonicalURI = trLatestUri;\n }\n }\n if (conf.canonicalURI) {\n var linkElem = doc.createElement(\"link\");\n linkElem.setAttribute(\"rel\", \"canonical\");\n linkElem.setAttribute(\"href\", conf.canonicalURI);\n doc.head.appendChild(linkElem);\n }\n cb();\n if (conf.doJsonLd) {\n addJSONLDInfo(conf, doc);\n }\n }\n\n async function addJSONLDInfo(conf, doc) {\n await doc.respecIsReady;\n // Content for JSON\n const type = [\"TechArticle\"];\n if (conf.rdfStatus) type.push(conf.rdfStatus);\n\n const jsonld = {\n \"@context\": [\"http://schema.org\", {\n \"@vocab\": \"http://schema.org/\",\n \"@language\": doc.documentElement.lang || \"en\",\n w3p: \"http://www.w3.org/2001/02pd/rec54#\",\n foaf: \"http://xmlns.com/foaf/0.1/\",\n datePublished: { \"@type\": \"http://www.w3.org/2001/XMLSchema#date\" },\n inLanguage: { \"@language\": null },\n isBasedOn: { \"@type\": \"@id\" },\n license: { \"@type\": \"@id\" }\n }],\n id: conf.canonicalURI || conf.thisVersion,\n type,\n name: conf.title,\n inLanguage: doc.documentElement.lang || \"en\",\n license: conf.licenseInfo.url,\n datePublished: conf.dashDate,\n copyrightHolder: {\n name: \"World Wide Web Consortium\",\n url: \"https://www.w3.org/\"\n },\n discussionUrl: conf.issueBase,\n alternativeHeadline: conf.subtitle,\n isBasedOn: conf.prevVersion\n };\n\n // add any additional copyright holders\n if (conf.additionalCopyrightHolders) {\n const addl = Array.isArray(conf.additionalCopyrightHolders) ? conf.additionalCopyrightHolders : [conf.additionalCopyrightHolders];\n jsonld.copyrightHolder = [jsonld.copyrightHolder, ...addl.map(h => ({ name: h }))];\n }\n\n // description from meta description\n const description = doc.head.querySelector(\"meta[name=description]\");\n if (description) {\n jsonld.description = description.content;\n }\n\n // Editors\n if (conf.editors) {\n jsonld.editor = conf.editors.map(addPerson);\n }\n if (conf.authors) {\n jsonld.contributor = conf.authors.map(addPerson);\n }\n\n // normative and informative references\n jsonld.citation = [...conf.normativeReferences, ...conf.informativeReferences].map(ref => conf.biblio[ref]).filter(ref => typeof ref === \"object\").map(addRef);\n\n const script = doc.createElement(\"script\");\n script.type = \"application/ld+json\";\n script.textContent = JSON.stringify(jsonld, null, 2);\n doc.head.appendChild(script);\n }\n\n // Turn editors and authors into a list of JSON-LD relationships\n function addPerson({ name, url, mailto, company, companyURL }) {\n const ed = {\n type: \"Person\",\n name,\n url,\n \"foaf:mbox\": mailto\n };\n if (company || companyURL) {\n ed.worksFor = {\n name: company,\n url: companyURL\n };\n }\n return ed;\n }\n\n // Create a reference URL from the ref\n function addRef(ref) {\n const { href: id, title: name, href: url } = ref;\n return {\n id,\n type: \"TechArticle\",\n name,\n url\n };\n }\n});\n//# sourceMappingURL=seo.js.map;\n", - "\ndefine('deps/text!core/css/github.css',[],function () { return '/*\\n\\ngithub.com style (c) Vasily Polovnyov \\n\\n*/\\n\\n.hljs {\\n display: block;\\n overflow-x: auto;\\n padding: 0.5em;\\n color: #333;\\n background: #f8f8f8;\\n}\\n\\n.hljs-comment,\\n.hljs-quote {\\n color: #998;\\n font-style: italic;\\n}\\n\\n.hljs-keyword,\\n.hljs-selector-tag,\\n.hljs-subst {\\n color: #333;\\n font-weight: bold;\\n}\\n\\n.hljs-number,\\n.hljs-literal,\\n.hljs-variable,\\n.hljs-template-variable,\\n.hljs-tag .hljs-attr {\\n color: #008080;\\n}\\n\\n.hljs-string,\\n.hljs-doctag {\\n color: #d14;\\n}\\n\\n.hljs-title,\\n.hljs-section,\\n.hljs-selector-id {\\n color: #900;\\n font-weight: bold;\\n}\\n\\n.hljs-subst {\\n font-weight: normal;\\n}\\n\\n.hljs-type,\\n.hljs-class .hljs-title {\\n color: #458;\\n font-weight: bold;\\n}\\n\\n.hljs-tag,\\n.hljs-name,\\n.hljs-attribute {\\n color: #000080;\\n font-weight: normal;\\n}\\n\\n.hljs-regexp,\\n.hljs-link {\\n color: #009926;\\n}\\n\\n.hljs-symbol,\\n.hljs-bullet {\\n color: #990073;\\n}\\n\\n.hljs-built_in,\\n.hljs-builtin-name {\\n color: #0086b3;\\n}\\n\\n.hljs-meta {\\n color: #999;\\n font-weight: bold;\\n}\\n\\n.hljs-deletion {\\n background: #fdd;\\n}\\n\\n.hljs-addition {\\n background: #dfd;\\n}\\n\\n.hljs-emphasis {\\n font-style: italic;\\n}\\n\\n.hljs-strong {\\n font-weight: bold;\\n}\\n';});\n\n", - "\ndefine('deps/text!core/../../worker/respec-worker.js',[],function () { return '// ReSpec Worker v0.1.1\\n\"use strict\";\\ntry {\\n importScripts(\"https://www.w3.org/Tools/respec/respec-highlight.js\");\\n hljs.configure({\\n tabReplace: \" \", // 2 spaces\\n languages: [\"abnf\", \"css\", \"http\", \"javascript\", \"json\", \"markdown\", \"xml\"],\\n });\\n} catch (err) {\\n console.error(\"Network error loading/configuring highlighter\", err);\\n}\\n\\nself.addEventListener(\"message\", ({ data: originalData }) => {\\n const data = Object.assign({}, originalData);\\n switch (data.action) {\\n case \"highlight\":\\n const { code } = data;\\n const langs = data.languages.length ? data.languages : undefined;\\n try {\\n const { value, language } = self.hljs.highlightAuto(code, langs);\\n Object.assign(data, { value, language });\\n } catch (err) {\\n console.error(\"Could not transform some code?\", err);\\n // Post back the original code\\n Object.assign(data, { value: code, language: \"\" });\\n }\\n }\\n self.postMessage(data);\\n});\\n';});\n\n", - "define('core/worker',[\"exports\", \"core/utils\", \"deps/text!../../worker/respec-worker.js\"], function (exports, _utils, _respecWorker) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.worker = exports.name = undefined;\n\n var _respecWorker2 = _interopRequireDefault(_respecWorker);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n /**\n * Module core/worker\n *\n * Exports a Web Worker for ReSpec, allowing for\n * multi-threaded processing of things.\n */\n const name = exports.name = \"core/worker\";\n\n // Opportunistically preload syntax highlighter, which is used by the worker\n\n // Opportunistically preload syntax highlighter\n const hint = {\n hint: \"preload\",\n href: \"https://www.w3.org/Tools/respec/respec-highlight.js\",\n as: \"script\"\n };\n const link = (0, _utils.createResourceHint)(hint);\n document.head.appendChild(link);\n\n const workerURL = URL.createObjectURL(new Blob([_respecWorker2.default], { type: \"application/javascript\" }));\n const worker = exports.worker = new Worker(workerURL);\n});\n//# sourceMappingURL=worker.js.map;\n", - "define('core/highlight',[\"exports\", \"deps/text!core/css/github.css\", \"core/worker\"], function (exports, _github, _worker) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.run = run;\n\n var _github2 = _interopRequireDefault(_github);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n /**\n * Module core/highlight\n *\n * Performs syntax highlighting to all pre and code elements.\n */\n const name = exports.name = \"core/highlight\";\n\n // Opportunistically insert the style into the head to reduce FOUC.\n const codeStyle = document.createElement(\"style\");\n codeStyle.textContent = _github2.default;\n document.head.appendChild(codeStyle);\n function getLanguageHint(classList) {\n return Array.from(classList).filter(item => item !== \"highlight\" && item !== \"nolinks\").map(item => item.toLowerCase());\n }\n\n async function run(conf) {\n // Nothing to highlight\n if (conf.noHighlightCSS) {\n codeStyle.remove();\n return;\n }\n const highlightables = Array.from(document.querySelectorAll(\"pre:not(.idl):not(.nohighlight), code.highlight\"));\n // Nothing to highlight\n if (highlightables.length === 0) {\n codeStyle.remove();\n return;\n }\n const promisesToHighlight = highlightables.map((element, i) => {\n return new Promise(resolve => {\n if (element.textContent.trim() === \"\") {\n return resolve(); // no work to do\n }\n const done = () => {\n element.setAttribute(\"aria-busy\", \"false\");\n resolve();\n };\n // We always resolve, even if we couldn't actually highlight\n const timeoutId = setTimeout(() => {\n console.error(\"Timed-out waiting for highlight:\", element);\n done();\n }, 4000);\n const msg = {\n action: \"highlight\",\n code: element.textContent,\n id: `highlight:${i}`,\n languages: getLanguageHint(element.classList)\n };\n _worker.worker.addEventListener(\"message\", function listener(ev) {\n const { data: { id, code, language, value } } = ev;\n if (id !== msg.id) {\n return; // not for us!\n }\n element.innerHTML = value;\n if (element.localName === \"pre\") {\n element.classList.add(\"hljs\");\n }\n if (language) {\n element.classList.add(language);\n }\n clearTimeout(timeoutId);\n _worker.worker.removeEventListener(\"message\", listener);\n done();\n });\n element.setAttribute(\"aria-busy\", \"true\");\n _worker.worker.postMessage(msg);\n });\n });\n await Promise.all(promisesToHighlight);\n }\n});\n//# sourceMappingURL=highlight.js.map;\n", - "\ndefine('deps/text!core/images/clipboard.svg',[],function () { return '';});\n\n", - "/*!\n * clipboard.js v2.0.1\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine('deps/clipboard',[], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(7)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('select'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.select);\n global.clipboardAction = mod.exports;\n }\n})(this, function (module, _select) {\n 'use strict';\n\n var _select2 = _interopRequireDefault(_select);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n },\n get: function get() {\n return this._action;\n }\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n },\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n }();\n\n module.exports = ClipboardAction;\n});\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(6);\nvar delegate = __webpack_require__(5);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(0), __webpack_require__(2), __webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);\n global.clipboard = mod.exports;\n }\n})(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {\n 'use strict';\n\n var _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\n var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\n var _goodListener2 = _interopRequireDefault(_goodListener);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n }, {\n key: 'defaultText',\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n }(_tinyEmitter2.default);\n\n /**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n function getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n }\n\n module.exports = Clipboard;\n});\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(4);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ })\n/******/ ]);\n});\n", - "define('core/webidl-clipboard',[\"exports\", \"deps/text!core/images/clipboard.svg\", \"deps/clipboard\"], function (exports, _clipboard, _clipboard3) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.run = run;\n\n var _clipboard2 = _interopRequireDefault(_clipboard);\n\n var _clipboard4 = _interopRequireDefault(_clipboard3);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n /**\n * Module core/webidl-clipboard\n *\n * This module adds a button to each IDL pre making it possible to copy\n * well-formatted IDL to the clipboard.\n *\n */\n const name = exports.name = \"core/webidl-clipboard\";\n\n // This button serves a prototype that we clone as needed.\n const copyButton = document.createElement(\"button\");\n copyButton.innerHTML = _clipboard2.default;\n copyButton.title = \"Copy IDL to clipboard\";\n copyButton.classList.add(\"respec-button-copy-paste\", \"removeOnSave\");\n\n const clipboardOps = {\n text: trigger => {\n return document.querySelector(trigger.dataset.clipboardTarget).textContent.replace(/\\ +/gm, \" \").replace(/^\\ /gm, \" \").replace(/^};\\n/gm, \"};\\n\").trim();\n }\n };\n\n async function run(conf, doc, cb) {\n Array.from(doc.querySelectorAll(\"pre.idl\")).map(elem => {\n const button = copyButton.cloneNode(true);\n const definition = elem.querySelector(`span[id^=\"idl-def-\"], span[id^=\"dom-\"]`);\n let target = \"#\";\n if (definition === null && elem.id === \"\") {\n if (elem.parentElement.id === \"idl-index\") {\n target += \"actual-idl-index\";\n } else {\n elem.id = `idl-${String(Math.random()).substr(2)}`;\n target += elem.id;\n }\n } else {\n target += elem.id || definition.id;\n }\n return { button, elem, target };\n }).forEach(({ elem, button, target }) => {\n const wrapper = doc.createElement(\"div\");\n button.dataset.clipboardTarget = target;\n elem.parentElement.replaceChild(wrapper, elem);\n wrapper.appendChild(button);\n wrapper.appendChild(elem);\n });\n const clipboard = new _clipboard4.default(\".respec-button-copy-paste\", clipboardOps);\n clipboard.on(\"success\", e => e.clearSelection());\n cb();\n }\n});\n//# sourceMappingURL=webidl-clipboard.js.map;\n", - "define('core/data-tests',[\"exports\", \"core/pubsubhub\", \"core/l10n\"], function (exports, _pubsubhub, _l10n) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.run = run;\n /**\n * Module core/data-tests\n *\n * Allows specs to link to test files in a test suite, by adding `details` of where\n * particular tests for a testable assertion can be found.\n *\n * `data-tests` takes a space separated list of URLs, e.g. data-test=\"foo.html bar.html\".\n *\n * Docs: https://github.com/w3c/respec/wiki/data-tests\n */\n const l10n = {\n en: {\n missing_test_suite_uri: \"Found tests in your spec, but missing '\" + \"[`testSuiteURI`](https://github.com/w3c/respec/wiki/testSuiteURI)' in your ReSpec config.\",\n tests: \"tests\",\n test: \"test\"\n }\n };\n\n const name = exports.name = \"core/data-tests\";\n\n const lang = _l10n.lang in l10n ? _l10n.lang : \"en\";\n\n function toListItem(href) {\n const emojiList = [];\n const [testFile] = new URL(href).pathname.split(\"/\").reverse();\n const testParts = testFile.split(\".\");\n let [testFileName] = testParts;\n\n const isSecureTest = testParts.find(part => part === \"https\");\n if (isSecureTest) {\n const requiresConnectionEmoji = document.createElement(\"span\");\n requiresConnectionEmoji.innerHTML = \"🔒\";\n requiresConnectionEmoji.setAttribute(\"aria-label\", \"requires a secure connection\");\n requiresConnectionEmoji.setAttribute(\"title\", \"Test requires HTTPS\");\n testFileName = testFileName.replace(\".https\", \"\");\n emojiList.push(requiresConnectionEmoji);\n }\n\n const isManualTest = testFileName.split(\".\").join(\"-\").split(\"-\").find(part => part === \"manual\");\n if (isManualTest) {\n const manualPerformEmoji = document.createElement(\"span\");\n manualPerformEmoji.innerHTML = \"💪\";\n manualPerformEmoji.setAttribute(\"aria-label\", \"the test must be run manually\");\n manualPerformEmoji.setAttribute(\"title\", \"Manual test\");\n testFileName = testFileName.replace(\"-manual\", \"\");\n emojiList.push(manualPerformEmoji);\n }\n\n const testList = hyperHTML.bind(document.createElement(\"li\"))`\n \n ${testFileName}\n ${emojiList}\n `;\n return testList;\n }\n\n function run(conf) {\n const testables = document.querySelectorAll(\"[data-tests]\");\n if (!testables.length) {\n return;\n }\n if (!conf.testSuiteURI) {\n (0, _pubsubhub.pub)(\"error\", l10n[lang].missing_test_suite_uri);\n return;\n }\n Array.from(testables).filter(elem => elem.dataset.tests)\n // Render details + ul, returns HTMLDetailsElement\n .map(elem => {\n const details = document.createElement(\"details\");\n const renderer = hyperHTML.bind(details);\n const testURLs = elem.dataset.tests.split(/,/gm).map(url => url.trim()).map(url => {\n let href = \"\";\n try {\n href = new URL(url, conf.testSuiteURI).href;\n } catch (err) {\n (0, _pubsubhub.pub)(\"warn\", `${l10n[lang].bad_uri}: ${url}`);\n }\n return href;\n });\n details.classList.add(\"respec-tests-details\", \"removeOnSave\");\n renderer`\n \n tests: ${testURLs.length}\n \n
        ${testURLs.map(toListItem)}
      \n `;\n return { elem, details };\n }).forEach(({ elem, details }) => {\n delete elem.dataset.tests;\n elem.insertAdjacentElement(\"beforeend\", details);\n });\n }\n});\n//# sourceMappingURL=data-tests.js.map;\n", - "define('core/list-sorter',[\"exports\", \"core/pubsubhub\"], function (exports, _pubsubhub) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.sortListItems = sortListItems;\n exports.sortDefinitionTerms = sortDefinitionTerms;\n exports.run = run;\n const name = exports.name = \"core/list-sorter\";\n\n function makeSorter(direction) {\n return ({ textContent: a }, { textContent: b }) => {\n return direction === \"ascending\" ? a.localeCompare(b) : b.localeCompare(a);\n };\n }\n /**\n * Shallow sort list items in OL, and UL elements.\n *\n * @param {HTMLUListElement} elem\n * @returns {DocumentFragment}\n */\n function sortListItems(elem, dir) {\n const elements = getDirectDescendents(elem, \"li\");\n const sortedElements = elements.sort(makeSorter(dir)).reduce((frag, elem) => {\n frag.appendChild(elem);\n return frag;\n }, document.createDocumentFragment());\n return sortedElements;\n }\n\n function getDirectDescendents(elem, wantedDescendentName) {\n let elements;\n try {\n elements = elem.querySelectorAll(`:scope > ${wantedDescendentName}`);\n } catch (err) {\n let tempId = \"\";\n // We give a temporary id, to overcome lack of \":scope\" support in Edge.\n if (!elem.id) {\n tempId = `temp-${String(Math.random()).substr(2)}`;\n elem.id = tempId;\n }\n const query = `#${elem.id} > ${wantedDescendentName}`;\n elements = elem.parentElement.querySelectorAll(query);\n if (tempId) {\n elem.id = \"\";\n }\n }\n return [...elements];\n }\n\n /**\n * Shallow sort a definition list based on its definition terms (dt) elements.\n *\n * @param {HTMLDListElement} dl\n * @returns {DocumentFragment}\n */\n function sortDefinitionTerms(dl, dir) {\n const elements = getDirectDescendents(dl, \"dt\");\n const sortedElements = elements.sort(makeSorter(dir)).reduce((frag, elem) => {\n const { nodeType, nodeName } = elem;\n const children = document.createDocumentFragment();\n let { nextSibling: next } = elem;\n while (next) {\n if (!next.nextSibling) {\n break;\n }\n children.appendChild(next.cloneNode(true));\n const { nodeType: nextType, nodeName: nextName } = next.nextSibling;\n const isSameType = nextType === nodeType && nextName === nodeName;\n if (isSameType) {\n break;\n }\n next = next.nextSibling;\n }\n children.prepend(elem.cloneNode(true));\n frag.appendChild(children);\n return frag;\n }, document.createDocumentFragment());\n return sortedElements;\n }\n\n function run(conf, doc, cb) {\n for (const elem of document.querySelectorAll(\"[data-sort]\")) {\n let sortedElems;\n const dir = elem.dataset.sort || \"ascending\";\n switch (elem.localName) {\n case \"dl\":\n sortedElems = sortDefinitionTerms(elem, dir);\n break;\n case \"ol\":\n case \"ul\":\n sortedElems = sortListItems(elem, dir);\n break;\n default:\n (0, _pubsubhub.pub)(\"warning\", `ReSpec can't sort ${elem.localName} elements.`);\n }\n if (sortedElems) {\n const range = document.createRange();\n range.selectNodeContents(elem);\n range.deleteContents();\n elem.appendChild(sortedElems);\n }\n }\n cb();\n }\n});\n//# sourceMappingURL=list-sorter.js.map;\n", - "\ndefine('deps/text!core/css/var.css',[],function () { return 'var:hover {\\n border-bottom: 1px dotted;\\n cursor: pointer;\\n}\\n\\nvar.respec-hl {\\n color: var(--color, #000);\\n background-color: var(--bg-color);\\n box-shadow: 0 0 0px 2px var(--bg-color);\\n}\\n\\n/* highlight colors\\n https://github.com/w3c/tr-design/issues/152\\n*/\\nvar.respec-hl-c1 {\\n --bg-color: #f4d200;\\n}\\n\\nvar.respec-hl-c2 {\\n --bg-color: #ff87a2;\\n}\\n\\nvar.respec-hl-c3 {\\n --bg-color: #96e885;\\n}\\n\\nvar.respec-hl-c4 {\\n --bg-color: #3eeed2;\\n}\\n\\nvar.respec-hl-c5 {\\n --bg-color: #eacfb6;\\n}\\n\\nvar.respec-hl-c6 {\\n --bg-color: #82ddff;\\n}\\n\\nvar.respec-hl-c7 {\\n --bg-color: #ffbcf2;\\n}\\n\\n@media print {\\n var.respec-hl {\\n background: none;\\n color: #000;\\n box-shadow: unset;\\n }\\n}\\n';});\n\n", - "define('core/highlight-vars',[\"exports\", \"core/pubsubhub\", \"deps/text!core/css/var.css\"], function (exports, _pubsubhub, _var) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.name = undefined;\n exports.run = run;\n\n var _var2 = _interopRequireDefault(_var);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n /**\n * Module core/highlight-vars\n * Highlights occurrences of a within a section on click.\n * Set `conf.highlightVars = true` to enable.\n * Removes highlights from if clicked anywhere else.\n * All is done while keeping in mind that exported html stays clean\n * on export.\n */\n const name = exports.name = \"core/highlight-vars\";\n\n function run(conf) {\n if (!conf.highlightVars) {\n return;\n }\n const styleElement = document.createElement(\"style\");\n styleElement.textContent = _var2.default;\n styleElement.classList.add(\"removeOnSave\");\n document.head.appendChild(styleElement);\n\n [...document.querySelectorAll(\"var\")].forEach(varElem => varElem.addEventListener(\"click\", hightlightListener));\n\n // remove highlights, cleanup empty class/style attributes\n (0, _pubsubhub.sub)(\"beforesave\", outputDoc => {\n [...outputDoc.querySelectorAll(\"var.respec-hl\")].forEach(removeHighlight);\n });\n }\n\n function hightlightListener(ev) {\n ev.stopPropagation();\n const { target: varElem } = ev;\n const hightligtedElems = highlightVars(varElem);\n const resetListener = () => {\n const hlColor = getHighlightColor(varElem);\n hightligtedElems.forEach(el => removeHighlight(el, hlColor));\n [...HL_COLORS.keys()].forEach(key => HL_COLORS.set(key, true));\n };\n if (hightligtedElems.length) {\n document.body.addEventListener(\"click\", resetListener, { once: true });\n }\n }\n\n // availability of highlight colors. colors from var.css\n const HL_COLORS = new Map([[\"respec-hl-c1\", true], [\"respec-hl-c2\", true], [\"respec-hl-c3\", true], [\"respec-hl-c4\", true], [\"respec-hl-c5\", true], [\"respec-hl-c6\", true], [\"respec-hl-c7\", true]]);\n\n function getHighlightColor(target) {\n // return current colors if applicable\n const { value } = target.classList;\n const re = /respec-hl-\\w+/;\n const activeClass = re.test(value) && value.match(re);\n if (activeClass) return activeClass[0];\n\n // first color preference\n if (HL_COLORS.get(\"respec-hl-c1\") === true) return \"respec-hl-c1\";\n\n // otherwise get some other available color\n return [...HL_COLORS.keys()].find(c => HL_COLORS.get(c)) || \"respec-hl-c1\";\n }\n\n function highlightVars(varElem) {\n const textContent = varElem.textContent.trim();\n const parent = varElem.closest(\"section\");\n const highlightColor = getHighlightColor(varElem);\n\n const varsToHighlight = [...parent.querySelectorAll(\"var\")].filter(el => el.textContent.trim() === textContent);\n\n // update availability of highlight color\n const colorStatus = varsToHighlight[0].classList.contains(\"respec-hl\");\n HL_COLORS.set(highlightColor, colorStatus);\n\n // highlight vars\n if (colorStatus) {\n varsToHighlight.forEach(el => removeHighlight(el, highlightColor));\n return [];\n } else {\n varsToHighlight.forEach(el => addHighlight(el, highlightColor));\n }\n return varsToHighlight;\n }\n\n function removeHighlight(el, highlightColor) {\n el.classList.remove(\"respec-hl\", highlightColor);\n // clean up empty class attributes so they don't come in export\n if (!el.classList.length) el.removeAttribute(\"class\");\n }\n\n function addHighlight(elem, highlightColor) {\n elem.classList.add(\"respec-hl\", highlightColor);\n }\n});\n//# sourceMappingURL=highlight-vars.js.map;\n", - "\"use strict\";\n// In case everything else fails, we want the error\nwindow.addEventListener(\"error\", ev => {\n console.error(ev.error, ev.message, ev);\n});\n\n// this is only set in a build, not at all in the dev environment\nrequire.config({\n shim: {\n shortcut: {\n exports: \"shortcut\",\n },\n highlight: {\n exports: \"hljs\",\n },\n },\n paths: {\n \"handlebars.runtime\": \"deps/handlebars\",\n \"deps/highlight\": \"https://www.w3.org/Tools/respec/respec-highlight\",\n },\n deps: [\"deps/hyperhtml\", \"deps/url-search-params\"],\n});\n\ndefine(\n 'profile-oai',[\n // order is significant\n \"deps/domReady\",\n \"core/base-runner\",\n \"core/ui\",\n \"core/l10n\",\n //\"w3c/defaults\",\n \"oai/defaults\",\n \"core/style\",\n \"w3c/style\",\n \"w3c/l10n\",\n \"core/github\",\n \"core/data-include\",\n \"core/markdown\",\n //\"w3c/headers\",\n \"oai/headers\",\n \"w3c/abstract\",\n \"w3c/conformance\",\n \"core/data-transform\",\n \"core/inlines\",\n \"core/dfn\",\n \"w3c/rfc2119\",\n \"core/examples\",\n \"core/issues-notes\",\n \"core/requirements\",\n \"core/best-practices\",\n \"core/figures\",\n \"core/webidl\",\n \"core/data-cite\",\n \"core/biblio\",\n \"core/webidl-index\",\n \"core/link-to-dfn\",\n \"core/contrib\",\n \"core/fix-headers\",\n \"core/structure\",\n \"w3c/informative\",\n \"w3c/permalinks\",\n \"core/id-headers\",\n \"core/location-hash\",\n \"core/caniuse\",\n \"ui/save-html\",\n \"ui/search-specref\",\n \"ui/dfn-list\",\n \"ui/about-respec\",\n \"core/seo\",\n \"w3c/seo\",\n \"core/highlight\",\n \"core/webidl-clipboard\",\n \"core/data-tests\",\n \"core/list-sorter\",\n \"core/highlight-vars\",\n /*Linter must be the last thing to run*/\n \"core/linter\",\n ],\n (domReady, runner, { ui }, ...plugins) => {\n ui.show();\n domReady(async () => {\n try {\n await runner.runAll(plugins);\n await document.respecIsReady;\n } catch (err) {\n console.error(err);\n } finally {\n ui.enable();\n }\n });\n }\n);\n\n" - ] -} \ No newline at end of file diff --git a/js/respec-oai.js b/js/respec-oai.js deleted file mode 100644 index 008663cec0..0000000000 --- a/js/respec-oai.js +++ /dev/null @@ -1,565 +0,0 @@ -"use strict";var requirejs,require,define;window.respecVersion="21.0.1",function(global,setTimeout){var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.5",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){var n;if(e)for(n=0;n-1&&(!e[n]||!t(e[n],n,e));n-=1);}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var n;for(n in e)if(hasProp(e,n)&&t(e[n],n))break}function mixin(e,t,n,r){return t&&eachProp(t,function(t,i){!n&&hasProp(e,i)||(!r||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[i]=t:(e[i]||(e[i]={}),mixin(e[i],t,n,r)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,n,r){var i=new Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e);return i.requireType=e,i.requireModules=r,n&&(i.originalError=n),i}if(void 0===define){if(void 0!==requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}void 0===require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,n,r){var i,o,a=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=n,n=r):e=[]),o&&o.context&&(a=o.context),(i=getOwn(contexts,a))||(i=contexts[a]=req.s.newContext(a)),o&&i.configure(o),i.require(e,t,n)},req.config=function(e){return req(e)},req.nextTick=void 0!==setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,n){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,n){var r,i=e&&e.config||{};if(isBrowser)return(r=req.createNode(i,t,n)).setAttribute("data-requirecontext",e.contextName),r.setAttribute("data-requiremodule",t),!r.attachEvent||r.attachEvent.toString&&r.attachEvent.toString().indexOf("[native code")<0||isOpera?(r.addEventListener("load",e.onScriptLoad,!1),r.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,r.attachEvent("onreadystatechange",e.onScriptLoad)),r.src=n,i.onNodeCreated&&i.onNodeCreated(r,i,t,n),currentlyAddingScript=r,baseElement?head.insertBefore(r,baseElement):head.appendChild(r),currentlyAddingScript=null,r;if(isWebWorker)try{setTimeout(function(){},0),importScripts(n),e.completeLoad(t)}catch(r){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+n,r,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||-1!==mainScript.indexOf("!")||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,n){var r,i;"string"!=typeof e&&(n=t,t=e,e=null),isArray(t)||(n=t,t=null),!t&&isFunction(n)&&(t=[],n.length&&(n.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,n){t.push(n)}),t=(1===n.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript())&&(e||(e=r.getAttribute("data-requiremodule")),i=contexts[r.getAttribute("data-requirecontext")]),i?(i.defQueue.push([e,t,n]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,n])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}function newContext(e){var t,n,r,i,o,a={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},s={},l={},c={},u=[],d={},p={},f={},h=1,m=1;function g(e,t,n){var r,i,o,s,l,c,u,d,p,f,h=t&&t.split("/"),m=a.map,g=m&&m["*"];if(e&&(c=(e=e.split("/")).length-1,a.nodeIdCompat&&jsSuffixRegExp.test(e[c])&&(e[c]=e[c].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),function(e){var t,n;for(t=0;t0&&(e.splice(t-1,2),t-=2)}}(e),e=e.join("/")),n&&m&&(h||g)){i=e.split("/");e:for(o=i.length;o>0;o-=1){if(l=i.slice(0,o).join("/"),h)for(s=h.length;s>0;s-=1)if((r=getOwn(m,h.slice(0,s).join("/")))&&(r=getOwn(r,l))){u=r,d=o;break e}!p&&g&&getOwn(g,l)&&(p=getOwn(g,l),f=o)}!u&&p&&(u=p,d=f),u&&(i.splice(0,d,u),e=i.join("/"))}return getOwn(a.pkgs,e)||e}function b(e){isBrowser&&each(scripts(),function(t){if(t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===r.contextName)return t.parentNode.removeChild(t),!0})}function y(e){var t=getOwn(a.paths,e);if(t&&isArray(t)&&t.length>1)return t.shift(),r.require.undef(e),r.makeRequire(null,{skipMap:!0})([e]),!0}function v(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function w(e,t,n,i){var o,a,s,l,c=null,u=t?t.name:null,p=e,f=!0,b="";return e||(f=!1,e="_@r"+(h+=1)),c=(l=v(e))[0],e=l[1],c&&(c=g(c,u,i),a=getOwn(d,c)),e&&(c?b=n?e:a&&a.normalize?a.normalize(e,function(e){return g(e,u,i)}):-1===e.indexOf("!")?g(e,u,i):e:(c=(l=v(b=g(e,u,i)))[0],b=l[1],n=!0,o=r.nameToUrl(b))),{prefix:c,name:b,parentMap:t,unnormalized:!!(s=!c||a||n?"":"_unnormalized"+(m+=1)),url:o,originalName:p,isDefine:f,id:(c?c+"!"+b:b)+s}}function x(e){var t=e.id,n=getOwn(s,t);return n||(n=s[t]=new r.Module(e)),n}function k(e,t,n){var r=e.id,i=getOwn(s,r);!hasProp(d,r)||i&&!i.defineEmitComplete?(i=x(e)).error&&"error"===t?n(i.error):i.on(t,n):"defined"===t&&n(d[r])}function C(e,t){var n=e.requireModules,r=!1;t?t(e):(each(n,function(t){var n=getOwn(s,t);n&&(n.error=e,n.events.error&&(r=!0,n.emit("error",e)))}),r||req.onError(e))}function E(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(r.defQueueMap[t]=!0),u.push(e)}),globalDefQueue=[])}function $(e){delete s[e],delete l[e]}function T(){var e,n,i=1e3*a.waitSeconds,c=i&&r.startTime+i<(new Date).getTime(),u=[],p=[],f=!1,h=!0;if(!t){if(t=!0,eachProp(l,function(e){var t=e.map,r=t.id;if(e.enabled&&(t.isDefine||p.push(e),!e.error))if(!e.inited&&c)y(r)?(n=!0,f=!0):(u.push(r),b(r));else if(!e.inited&&e.fetched&&t.isDefine&&(f=!0,!t.prefix))return h=!1}),c&&u.length)return(e=makeError("timeout","Load timeout for modules: "+u,null,u)).contextName=r.contextName,C(e);h&&each(p,function(e){!function e(t,n,r){var i=t.map.id;t.error?t.emit("error",t.error):(n[i]=!0,each(t.depMaps,function(i,o){var a=i.id,l=getOwn(s,a);!l||t.depMatched[o]||r[a]||(getOwn(n,a)?(t.defineDep(o,d[a]),t.check()):e(l,n,r))}),r[i]=!0)}(e,{},{})}),c&&!n||!f||!isBrowser&&!isWebWorker||o||(o=setTimeout(function(){o=0,T()},50)),t=!1}}function S(e){hasProp(d,e[0])||x(w(e[0],null,!0)).init(e[1],e[2])}function A(e,t,n,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(n,t,!1)}function L(e){var t=e.currentTarget||e.srcElement;return A(t,r.onScriptLoad,"load","onreadystatechange"),A(t,r.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function j(){var e;for(E();u.length;){if(null===(e=u.shift())[0])return C(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));S(e)}r.defQueueMap={}}return i={require:function(e){return e.require?e.require:e.require=r.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?d[e.map.id]=e.exports:e.exports=d[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(a.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},(n=function(e){this.events=getOwn(c,e.id)||{},this.map=e,this.shim=getOwn(a.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0}).prototype={init:function(e,t,n,r){r=r||{},this.inited||(this.factory=t,n?this.on("error",n):this.events.error&&(n=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=n,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,r.startTime=(new Date).getTime();var e=this.map;if(!this.shim)return e.prefix?this.callPlugin():this.load();r.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()}))}},load:function(){var e=this.map.url;p[e]||(p[e]=!0,r.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,n=this.map.id,i=this.depExports,o=this.exports,a=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(a)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{o=r.execCb(n,a,i,o)}catch(t){e=t}else o=r.execCb(n,a,i,o);if(this.map.isDefine&&void 0===o&&((t=this.module)?o=t.exports:this.usingExports&&(o=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",C(this.error=e)}else o=a;if(this.exports=o,this.map.isDefine&&!this.ignore&&(d[n]=o,req.onResourceLoad)){var s=[];each(this.depMaps,function(e){s.push(e.normalizedMap||e)}),req.onResourceLoad(r,this.map,s)}$(n),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(r.defQueueMap,n)||this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,n=w(e.prefix);this.depMaps.push(n),k(n,"defined",bind(this,function(n){var i,o,l,c=getOwn(f,this.map.id),u=this.map.name,d=this.map.parentMap?this.map.parentMap.name:null,p=r.makeRequire(e.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(n.normalize&&(u=n.normalize(u,function(e){return g(e,d,!0)})||""),k(o=w(e.prefix+"!"+u,this.map.parentMap,!0),"defined",bind(this,function(e){this.map.normalizedMap=o,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),void((l=getOwn(s,o.id))&&(this.depMaps.push(o),this.events.error&&l.on("error",bind(this,function(e){this.emit("error",e)})),l.enable()))):c?(this.map.url=r.nameToUrl(c),void this.load()):((i=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})})).error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(s,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&$(e.map.id)}),C(e)}),i.fromText=bind(this,function(n,o){var s=e.name,l=w(s),c=useInteractive;o&&(n=o),c&&(useInteractive=!1),x(l),hasProp(a.config,t)&&(a.config[s]=a.config[t]);try{req.exec(n)}catch(e){return C(makeError("fromtexteval","fromText eval for "+t+" failed: "+e,e,[t]))}c&&(useInteractive=!0),this.depMaps.push(l),r.completeLoad(s),p([s],i)}),void n.load(e.name,p,i,a))})),r.enable(n,this),this.pluginMaps[n.id]=n},enable:function(){l[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var n,o,a;if("string"==typeof e){if(e=w(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,a=getOwn(i,e.id))return void(this.depExports[t]=a(this));this.depCount+=1,k(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?k(e,"error",bind(this,this.errback)):this.events.error&&k(e,"error",bind(this,function(e){this.emit("error",e)}))}n=e.id,o=s[n],hasProp(i,n)||!o||o.enabled||r.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(s,e.id);t&&!t.enabled&&r.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var n=this.events[e];n||(n=this.events[e]=[]),n.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},(r={config:a,contextName:e,registry:s,defined:d,urlFetched:p,defQueue:u,defQueueMap:{},Module:n,makeModuleMap:w,nextTick:req.nextTick,onError:C,configure:function(e){if(e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/"),"string"==typeof e.urlArgs){var t=e.urlArgs;e.urlArgs=function(e,n){return(-1===n.indexOf("?")?"?":"&")+t}}var n=a.shim,i={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){i[t]?(a[t]||(a[t]={}),mixin(a[t],e,!0,!0)):a[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(f[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=r.makeShimExports(e)),n[t]=e}),a.shim=n),e.packages&&each(e.packages,function(e){var t;t=(e="string"==typeof e?{name:e}:e).name,e.location&&(a.paths[t]=e.location),a.pkgs[t]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(s,function(e,t){e.inited||e.map.unnormalized||(e.map=w(t,null,!0))}),(e.deps||e.callback)&&r.require(e.deps||[],e.callback)},makeShimExports:function(e){return function(){var t;return e.init&&(t=e.init.apply(global,arguments)),t||e.exports&&getGlobal(e.exports)}},makeRequire:function(t,n){function o(a,l,c){var u,p;return n.enableBuildCallback&&l&&isFunction(l)&&(l.__requireJsBuild=!0),"string"==typeof a?isFunction(l)?C(makeError("requireargs","Invalid require call"),c):t&&hasProp(i,a)?i[a](s[t.id]):req.get?req.get(r,a,t,o):(u=w(a,t,!1,!0).id,hasProp(d,u)?d[u]:C(makeError("notloaded",'Module name "'+u+'" has not been loaded yet for context: '+e+(t?"":". Use require([])")))):(j(),r.nextTick(function(){j(),(p=x(w(null,t))).skipMap=n.skipMap,p.init(a,l,c,{enabled:!0}),T()}),o)}return n=n||{},mixin(o,{isBrowser:isBrowser,toUrl:function(e){var n,i=e.lastIndexOf("."),o=e.split("/")[0];return-1!==i&&(!("."===o||".."===o)||i>1)&&(n=e.substring(i,e.length),e=e.substring(0,i)),r.nameToUrl(g(e,t&&t.id,!0),n,!0)},defined:function(e){return hasProp(d,w(e,t,!1,!0).id)},specified:function(e){return e=w(e,t,!1,!0).id,hasProp(d,e)||hasProp(s,e)}}),t||(o.undef=function(e){E();var n=w(e,t,!0),i=getOwn(s,e);i.undefed=!0,b(e),delete d[e],delete p[n.url],delete c[e],eachReverse(u,function(t,n){t[0]===e&&u.splice(n,1)}),delete r.defQueueMap[e],i&&(i.events.defined&&(c[e]=i.events),$(e))}),o},enable:function(e){getOwn(s,e.id)&&x(e).enable()},completeLoad:function(e){var t,n,i,o=getOwn(a.shim,e)||{},l=o.exports;for(E();u.length;){if(null===(n=u.shift())[0]){if(n[0]=e,t)break;t=!0}else n[0]===e&&(t=!0);S(n)}if(r.defQueueMap={},i=getOwn(s,e),!t&&!hasProp(d,e)&&i&&!i.inited){if(!(!a.enforceDefine||l&&getGlobal(l)))return y(e)?void 0:C(makeError("nodefine","No define call for "+e,null,[e]));S([e,o.deps||[],o.exportsFn])}T()},nameToUrl:function(e,t,n){var i,o,s,l,c,u,d=getOwn(a.pkgs,e);if(d&&(e=d),u=getOwn(f,e))return r.nameToUrl(u,t,n);if(req.jsExtRegExp.test(e))l=e+(t||"");else{for(i=a.paths,s=(o=e.split("/")).length;s>0;s-=1)if(c=getOwn(i,o.slice(0,s).join("/"))){isArray(c)&&(c=c[0]),o.splice(0,s,c);break}l=o.join("/"),l=("/"===(l+=t||(/^data\:|^blob\:|\?/.test(l)||n?"":".js")).charAt(0)||l.match(/^[\w\+\.\-]+:/)?"":a.baseUrl)+l}return a.urlArgs&&!/^blob\:/.test(l)?l+a.urlArgs(e,l):l},load:function(e,t){req.load(r,e,t)},execCb:function(e,t,n,r){return t.apply(r,n)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=L(e);r.completeLoad(t.id)}},onScriptError:function(e){var t=L(e);if(!y(t.id)){var n=[];return eachProp(s,function(e,r){0!==r.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===t.id)return n.push(r),!0})}),C(makeError("scripterror",'Script error for "'+t.id+(n.length?'", needed by: '+n.join(", "):'"'),e,[t.id]))}}}).require=r.makeRequire(),r}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript)}}(this,"undefined"==typeof setTimeout?void 0:setTimeout),define("deps/require",function(){});var hyperHTML=function(e){var t=document.defaultView,n=1,r=/^area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr$/i,i="ownerSVGElement",o="http://www.w3.org/2000/svg",a="connected",s="dis"+a,l=/^style|textarea$/i,c="_hyper: "+(Math.random()*new Date|0)+";",u="\x3c!--"+c+"--\x3e",d=t.Event;try{new d("Event")}catch(e){d=function(e){var t=document.createEvent("Event");return t.initEvent(e,!1,!1),t}}var p,f=t.Map||function(){var e=[],t=[];return{get:function(n){return t[e.indexOf(n)]},set:function(n,r){t[e.push(n)-1]=r}}},h=0,m=t.WeakMap||function(){var e=c+h++;return{get:function(t){return t[e]},set:function(t,n){Object.defineProperty(t,e,{configurable:!0,value:n})}}},g=t.WeakSet||function(){var e=new m;return{add:function(t){e.set(t,!0)},has:function(t){return!0===e.get(t)}}},b=Array.isArray||(p={}.toString,function(e){return"[object Array]"===p.call(e)}),y=c.trim||function(){return this.replace(/^\s+|\s+$/g,"")};function v(){return this}var w=function(e,t){var n="_"+e+"$";return{get:function(){return this[n]||(this[e]=t.call(this,e))},set:function(e){Object.defineProperty(this,n,{configurable:!0,value:e})}}},x={},k=[],C=x.hasOwnProperty,E=0,$=function(e,t){e in x||(E=k.push(e)),x[e]=t},T=function(e,t){for(var n=0;n\"'=]+",N="[ "+D+"]+"+_,R="<([A-Za-z]+[A-Za-z0-9:_-]*)((?:",P="(?:=(?:'[^']*?'|\"[^\"]*?\"|<[^>]*?>|"+_+"))?)",M=new RegExp(R+N+P+"+)([ "+D+"]*/?>)","g"),O=new RegExp(R+N+P+"*)([ "+D+"]*/>)","g"),I=L(document),q="append"in I,U="content"in S(document,"template");I.appendChild(j(I,"g")),I.appendChild(j(I,""));var W=1===I.cloneNode(!0).childNodes.length,H="importNode"in document,B=q?function(e,t){e.append.apply(e,t)}:function(e,t){for(var n=t.length,r=0;r"+t+"",B(r,Y.call(n.querySelectorAll(i)))}else n.innerHTML=t,B(r,Y.call(n.childNodes));return r},ee=U?function(e,t){var n=L(e),r=A(e).createElementNS(o,"svg");return r.innerHTML=t,B(n,Y.call(r.childNodes)),n}:function(e,t){var n=L(e),r=S(e,"div");return r.innerHTML=''+t+"",B(n,Y.call(r.firstChild.childNodes)),n};function te(e){this.childNodes=e,this.length=e.length,this.first=e[0],this.last=e[this.length-1]}te.prototype.insert=function(){var e=L(this.first);return B(e,this.childNodes),e},te.prototype.remove=function(){var e=this.first,t=this.last;if(2===this.length)t.parentNode.removeChild(t);else{var n=A(e).createRange();n.setStartBefore(this.childNodes[1]),n.setEndAfter(t),n.deleteContents()}return e};var ne=function(e,t,n){e.unshift(e.indexOf.call(t.childNodes,n))},re=function(e,t,r){return{type:e,name:r,node:t,path:function(e){var t=[],r=void 0;switch(e.nodeType){case n:case 11:r=e;break;case 8:r=e.parentNode,ne(t,r,e);break;default:r=e.ownerElement}for(e=r;r=r.parentNode;e=r)ne(t,r,e);return t}(t)}},ie=function(e,t){for(var n=t.length,r=0;rc){var v=n[p+1],w=null==v?a:o(v,0);if(l===p)e.insertBefore(o(n[l],1),w);else{for(var x=e.ownerDocument.createDocumentFragment();l<=p;)x.appendChild(o(n[l++],1));e.insertBefore(x,w)}}else null==t[s]&&s++,s===c?e.removeChild(o(t[s],-1)):de(e,o(t[s],-1),o(t[c],-1));return n},fe=new g;function he(){}he.prototype=Object.create(null);var me=function(e){return{html:e}},ge=function e(t,n){return"ELEMENT_NODE"in t?t:t.constructor===te?1/n<0?n?t.remove():t.last:n?t.insert():t.first:e(t.render(),n)},be=function(e,t,n){for(var r=new he,i=e.attributes,o=Y.call(i),a=[],s=o.length,l=0;l"},Pe=new m,Me=function(e){var t=void 0,n=void 0,r=void 0,i=void 0,a=void 0;return function(s){s=Q(s);var l=i!==s;return l&&(i=s,r=L(document),n="svg"===e?document.createElementNS(o,"svg"):r,a=Se.bind(n)),a.apply(null,arguments),l&&("svg"===e&&B(r,Y.call(n.childNodes)),t=Ie(r)),t}},Oe=function(e,t){var n=t.indexOf(":"),r=Pe.get(e),i=t;return-1e.apply(void 0,n)),window.parent===window.self)return;var r=n.map(e=>String(JSON.stringify(e.stack||e)));window.parent.postMessage({topic:e,args:r},window.parent.location.origin)},e.sub=n,e.unsub=r;e.name="core/pubsubhub";const t=new Map;function n(e,i,o={once:!1}){return o.once?n(e,function t(...n){r({topic:e,cb:t}),i(...n)}):(t.has(e)?t.get(e).add(i):t.set(e,new Set([i])),{topic:e,cb:i})}function r({topic:e,cb:n}){const r=t.get(e);return r&&r.has(n)?r.delete(n):(console.warn("Already unsubscribed:",e,n),!1)}n("error",e=>{console.error(e,e.stack)}),n("warn",e=>{console.warn(e)})}),function(e){var t={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:h,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,nptable:h,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)|(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:h,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/,text:/^[^\n]+/};function n(e){this.tokens=[],this.tokens.links={},this.options=e||b.defaults,this.rules=t.normal,this.options.pedantic?this.rules=t.pedantic:this.options.gfm&&(this.options.tables?this.rules=t.tables:this.rules=t.gfm)}t._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,t._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,t.def=u(t.def).replace("label",t._label).replace("title",t._title).getRegex(),t.bullet=/(?:[*+-]|\d+\.)/,t.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,t.item=u(t.item,"gm").replace(/bull/g,t.bullet).getRegex(),t.list=u(t.list).replace(/bull/g,t.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+t.def.source+")").getRegex(),t._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",t._comment=//,t.html=u(t.html,"i").replace("comment",t._comment).replace("tag",t._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),t.paragraph=u(t.paragraph).replace("hr",t.hr).replace("heading",t.heading).replace("lheading",t.lheading).replace("tag",t._tag).getRegex(),t.blockquote=u(t.blockquote).replace("paragraph",t.paragraph).getRegex(),t.normal=m({},t),t.gfm=m({},t.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),t.gfm.paragraph=u(t.paragraph).replace("(?!","(?!"+t.gfm.fences.source.replace("\\1","\\2")+"|"+t.list.source.replace("\\1","\\3")+"|").getRegex(),t.tables=m({},t.gfm,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),t.pedantic=m({},t.normal,{html:u("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",t._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/}),n.rules=t,n.lex=function(e,t){return new n(t).lex(e)},n.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},n.prototype.token=function(e,n){var r,i,o,a,s,l,c,u,d,p,f,h,m;for(e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e))e=e.substring(o[0].length),o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?o:o.replace(/\n+$/,"")});else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2],text:o[3]||""});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if(n&&(o=this.rules.nptable.exec(e))&&(l={type:"table",header:g(o[1].replace(/^ *| *\| *$/g,"")),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3]?o[3].replace(/\n$/,"").split("\n"):[]}).header.length===l.align.length){for(e=e.substring(o[0].length),u=0;u ?/gm,""),this.token(o,n),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),f=(a=o[2]).length>1,this.tokens.push({type:"list_start",ordered:f,start:f?+a:""}),r=!1,p=(o=o[0].match(this.rules.item)).length,u=0;u1&&s.length>1||(e=o.slice(u+1).join("\n")+e,u=p-1)),i=r||/\n\n(?!\s*$)/.test(l),u!==p-1&&(r="\n"===l.charAt(l.length-1),i||(i=r)),m=void 0,(h=/^\[[ xX]\] /.test(l))&&(m=" "!==l[1],l=l.replace(/^\[[ xX]\] +/,"")),this.tokens.push({type:i?"loose_item_start":"list_item_start",task:h,checked:m}),this.token(l,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===o[1]||"script"===o[1]||"style"===o[1]),text:o[0]});else if(n&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),o[3]&&(o[3]=o[3].substring(1,o[3].length-1)),d=o[1].toLowerCase().replace(/\s+/g," "),this.tokens.links[d]||(this.tokens.links[d]={href:o[2],title:o[3]});else if(n&&(o=this.rules.table.exec(e))&&(l={type:"table",header:g(o[1].replace(/^ *| *\| *$/g,"")),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3]?o[3].replace(/(?: *\| *)?\n$/,"").split("\n"):[]}).header.length===l.align.length){for(e=e.substring(o[0].length),u=0;u?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:h,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(href(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)|^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)/,em:/^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*][\s\S]*?[^\s])\*(?!\*)|^_([^\s_])_(?!_)|^\*([^\s*])\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:h,text:/^[\s\S]+?(?=[\\/g,">").replace(/"/g,""").replace(/'/g,"'")}function c(e){return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function u(e,t){return e=e.source||e,t=t||"",{replace:function(t,n){return n=(n=n.source||n).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(t,n),this},getRegex:function(){return new RegExp(e,t)}}}function d(e,t){return p[" "+e]||(/^[^:]+:\/*[^/]*$/.test(e)?p[" "+e]=e+"/":p[" "+e]=e.replace(/[^/]*$/,"")),e=p[" "+e],"//"===t.slice(0,2)?e.replace(/:[\s\S]*/,":")+t:"/"===t.charAt(0)?e.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+t:e+t}r._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,r._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,r._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,r.autolink=u(r.autolink).replace("scheme",r._scheme).replace("email",r._email).getRegex(),r._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,r.tag=u(r.tag).replace("comment",t._comment).replace("attribute",r._attribute).getRegex(),r._label=/(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/,r._href=/\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f()\\]*\)|[^\s\x00-\x1f()\\])*?)/,r._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,r.link=u(r.link).replace("label",r._label).replace("href",r._href).replace("title",r._title).getRegex(),r.reflink=u(r.reflink).replace("label",r._label).getRegex(),r.normal=m({},r),r.pedantic=m({},r.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:u(/^!?\[(label)\]\((.*?)\)/).replace("label",r._label).getRegex(),reflink:u(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",r._label).getRegex()}),r.gfm=m({},r.normal,{escape:u(r.escape).replace("])","~|])").getRegex(),url:u(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("email",r._email).getRegex(),_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:u(r.text).replace("]|","~]|").replace("|","|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|").getRegex()}),r.breaks=m({},r.gfm,{br:u(r.br).replace("{2,}","*").getRegex(),text:u(r.gfm.text).replace("{2,}","*").getRegex()}),i.rules=r,i.output=function(e,t,n){return new i(t,n).output(e)},i.prototype.output=function(e){for(var t,n,r,o,a,s="";e;)if(a=this.rules.escape.exec(e))e=e.substring(a[0].length),s+=a[1];else if(a=this.rules.autolink.exec(e))e=e.substring(a[0].length),r="@"===a[2]?"mailto:"+(n=l(this.mangle(a[1]))):n=l(a[1]),s+=this.renderer.link(r,null,n);else if(this.inLink||!(a=this.rules.url.exec(e))){if(a=this.rules.tag.exec(e))!this.inLink&&/^/i.test(a[0])&&(this.inLink=!1),e=e.substring(a[0].length),s+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(a[0]):l(a[0]):a[0];else if(a=this.rules.link.exec(e))e=e.substring(a[0].length),this.inLink=!0,r=a[2],this.options.pedantic?(t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r))?(r=t[1],o=t[3]):o="":o=a[3]?a[3].slice(1,-1):"",r=r.trim().replace(/^<([\s\S]*)>$/,"$1"),s+=this.outputLink(a,{href:i.escapes(r),title:i.escapes(o)}),this.inLink=!1;else if((a=this.rules.reflink.exec(e))||(a=this.rules.nolink.exec(e))){if(e=e.substring(a[0].length),t=(a[2]||a[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){s+=a[0].charAt(0),e=a[0].substring(1)+e;continue}this.inLink=!0,s+=this.outputLink(a,t),this.inLink=!1}else if(a=this.rules.strong.exec(e))e=e.substring(a[0].length),s+=this.renderer.strong(this.output(a[4]||a[3]||a[2]||a[1]));else if(a=this.rules.em.exec(e))e=e.substring(a[0].length),s+=this.renderer.em(this.output(a[6]||a[5]||a[4]||a[3]||a[2]||a[1]));else if(a=this.rules.code.exec(e))e=e.substring(a[0].length),s+=this.renderer.codespan(l(a[2].trim(),!0));else if(a=this.rules.br.exec(e))e=e.substring(a[0].length),s+=this.renderer.br();else if(a=this.rules.del.exec(e))e=e.substring(a[0].length),s+=this.renderer.del(this.output(a[1]));else if(a=this.rules.text.exec(e))e=e.substring(a[0].length),s+=this.renderer.text(l(this.smartypants(a[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else a[0]=this.rules._backpedal.exec(a[0])[0],e=e.substring(a[0].length),"@"===a[2]?r="mailto:"+(n=l(a[0])):(n=l(a[0]),r="www."===a[1]?"http://"+n:n),s+=this.renderer.link(r,null,n);return s},i.escapes=function(e){return e?e.replace(i.rules._escapes,"$1"):e},i.prototype.outputLink=function(e,t){var n=t.href,r=t.title?l(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,l(e[1]))},i.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},i.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,i=0;i.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},o.prototype.code=function(e,t,n){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(n=!0,e=r)}return t?'
      '+(n?e:l(e,!0))+"
      \n":"
      "+(n?e:l(e,!0))+"
      "},o.prototype.blockquote=function(e){return"
      \n"+e+"
      \n"},o.prototype.html=function(e){return e},o.prototype.heading=function(e,t,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"},o.prototype.hr=function(){return this.options.xhtml?"
      \n":"
      \n"},o.prototype.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},o.prototype.listitem=function(e){return"
    • "+e+"
    • \n"},o.prototype.checkbox=function(e){return" "},o.prototype.paragraph=function(e){return"

      "+e+"

      \n"},o.prototype.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
      \n"},o.prototype.tablerow=function(e){return"\n"+e+"\n"},o.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},o.prototype.strong=function(e){return""+e+""},o.prototype.em=function(e){return""+e+""},o.prototype.codespan=function(e){return""+e+""},o.prototype.br=function(){return this.options.xhtml?"
      ":"
      "},o.prototype.del=function(e){return""+e+""},o.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(c(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return n}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return n}this.options.baseUrl&&!f.test(e)&&(e=d(this.options.baseUrl,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch(e){return n}var i='
      "},o.prototype.image=function(e,t,n){this.options.baseUrl&&!f.test(e)&&(e=d(this.options.baseUrl,e));var r=''+n+'":">"},o.prototype.text=function(e){return e},a.prototype.strong=a.prototype.em=a.prototype.codespan=a.prototype.del=a.prototype.text=function(e){return e},a.prototype.link=a.prototype.image=function(e,t,n){return""+n},a.prototype.br=function(){return""},s.parse=function(e,t){return new s(t).parse(e)},s.prototype.parse=function(e){this.inline=new i(e.links,this.options),this.inlineText=new i(e.links,m({},this.options,{renderer:new a})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},s.prototype.next=function(){return this.token=this.tokens.pop()},s.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},s.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},s.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,c(this.inlineText.output(this.token.text)));case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,i="",o="";for(n="",e=0;et)n.splice(t);else for(;n.lengthAn error occurred:

      "+l(e.message+"",!0)+"
      ";throw e}}h.exec=h,b.options=b.setOptions=function(e){return m(b.defaults,e),b},b.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new o,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tables:!0,xhtml:!1}},b.defaults=b.getDefaults(),b.Parser=s,b.parser=s.parse,b.Renderer=o,b.TextRenderer=a,b.Lexer=n,b.lexer=n.lex,b.InlineLexer=i,b.inlineLexer=i.output,b.parse=b,"undefined"!=typeof module&&"object"==typeof exports?module.exports=b:"function"==typeof define&&define.amd?define("deps/marked",[],function(){return b}):e.marked=b}(this||("undefined"!=typeof window?window:global)),define("core/utils",["exports","core/pubsubhub","deps/marked"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.ISODate=e.name=void 0,e.markdownToHtml=function(e){const t=h(e).replace(l,">").replace(c,"&");return(0,i.default)(t)},e.makeOwnerSwapper=function(e){if(!e)throw new TypeError("Expected instance of Node.");return t=>{if(t.ownerDocument.adoptNode(e),t.firstElementChild)return t.insertBefore(e,t.firstElementChild);t.appendChild(e)}},e.calculateLeftPad=function(e){if("string"!=typeof e)throw new TypeError("Invalid input");var t=e.split("\n").filter(e=>e).reduce((e,t)=>{if(0===e)return e;const n=t.match(o)[0]||"";return Math.min(n.length,e)},1/0);return t===1/0?0:t},e.createResourceHint=function(e){if(!e||"object"!=typeof e)throw new TypeError("Missing options");if(!p.has(e.hint))throw new TypeError("Invalid resources hint");const t=new URL(e.href,document.location),n=document.createElement("link");let r=t.href;switch(n.rel=e.hint,n.rel){case"dns-prefetch":case"preconnect":r=t.origin,(e.corsMode||t.origin!==document.location.origin)&&(n.crossOrigin=e.corsMode||"anonymous");break;case"preload":"as"in e&&"string"==typeof e.as&&(f.has(e.as)||console.warn(`Unknown request destination: ${e.as}`),n.setAttribute("as",e.as))}n.href=r,e.dontRemove||n.classList.add("removeOnSave");return n},e.normalizePadding=h,e.removeReSpec=function(e){Array.from(e.querySelectorAll(".remove, script[data-requiremodule]")).forEach(e=>{e.remove()})},e.joinAnd=function(e=[],t=(e=>e)){const n=e.map(t);switch(n.length){case 0:case 1:return n.toString();case 2:return n.join(" and ");default:const e=n.join(", "),t=e.lastIndexOf(",");return`${e.substr(0,t+1)} and ${e.slice(t+2)}`}},e.xmlEscape=function(e){return e.replace(/&/g,"&").replace(/>/g,">").replace(/"/g,""").replace(/i)return 1;if(i>t)return-1;if(!isNaN(t)&&isNaN(i))return 1;if(isNaN(t)&&!isNaN(i))return-1}return 0},e.concatDate=function(e,t=""){return u.format(e).replace(s,t)},e.toShortIsoDate=function(e){return u.format(e)},e.lead0=function(e){return 1===String(e).length?"0"+e:e},e.parseSimpleDate=function(e){return new Date(e)},e.parseLastModified=function(e){return e?new Date(Date.parse(e)):new Date},e.humanDate=function(e=new Date,t=document.documentElement.lang||"en"){e instanceof Date||(e=new Date(e));const n=[t,"en"],r=e.toLocaleString(n,{day:"2-digit",timeZone:"UTC"}),i=e.toLocaleString(n,{month:"long",timeZone:"UTC"}),o=e.toLocaleString(n,{year:"numeric",timeZone:"UTC"});return`${r} ${i} ${o}`},e.isoDate=function(e){return(e instanceof Date?e:new Date(e)).toISOString()},e.toKeyValuePairs=function(e,t=", ",n="="){return Array.from(Object.entries(e)).map(([e,t])=>`${e}${n}${JSON.stringify(t)}`).join(t)},e.linkCSS=function(e,t){const n=[].concat(t).map(t=>{var n=e.createElement("link");return n.rel="stylesheet",n.href=t,n}).reduce(function(e,t){return e.appendChild(t),e},e.createDocumentFragment());e.head.appendChild(n)},e.runTransforms=function(e,n){var r=[this,e],i=Array.from(arguments);if(i.shift(),i.shift(),r=r.concat(i),n)for(var o=n.split(/\s+/),a=0;anew Date)return i}catch(e){console.error("Failed to use Cache API.",e)}const o=await fetch(e);if(!o.ok&&i)return console.warn(`Returning a stale cached response for ${n}`),i;if(r){const n=o.clone(),i=new Headers(o.headers),a=new Date(Date.now()+t);i.set("Expires",a);const s=new Response(await n.blob(),{headers:i});return await r.put(e,s).catch(console.error),await r.match(e)}return o},e.flatten=function e(t,n){const r="object"==typeof n;const i=Object(n)[Symbol.iterator]&&"function"==typeof n.values;const o=r?i?[...n.values()].reduce(e,[]):Object.values(n):[n];return[...t,...o]};var r,i=(r=n)&&r.__esModule?r:{default:r};e.name="core/utils";i.default.setOptions({sanitize:!1,gfm:!0});const o=/^[\ |\t]*/,a=/\s+$/gm,s=/\-/g,l=/>/gm,c=/&/gm;const u=e.ISODate=new Intl.DateTimeFormat(["en-ca-iso8601"],{timeZone:"UTC",year:"numeric",month:"2-digit",day:"2-digit"}),d=new Set(["a","abbr","acronym","b","bdo","big","br","button","cite","code","dfn","em","i","img","input","kbd","label","map","object","q","samp","script","select","small","span","strong","sub","sup","textarea","time","tt","var"]),p=new Set(["dns-prefetch","preconnect","preload","prerender"]),f=new Set(["document","embed","font","image","manifest","media","object","report","script","serviceworker","sharedworker","style","worker","xslt",""]);function h(e=""){if(!e)return"";if("string"!=typeof e)throw TypeError("Invalid input");if("\n"===e)return"\n";function t(e){return null!==e&&e.nodeType===Node.TEXT_NODE}var n=""+e,r=(new DOMParser).parseFromString(n,"text/html");Array.from(r.body.children).filter(e=>!d.has(e.localName)).filter(e=>"pre"!==e.localName).filter(e=>"table"!==e.localName).forEach(e=>{e.innerHTML=h(e.innerHTML)}),Array.from(r.body.childNodes).filter(e=>t(e)&&""===e.textContent.trim()).forEach(e=>e.parentElement.replaceChild(r.createTextNode("\n"),e)),t(r.body.firstChild)||Array.from(r.body.firstChild.children).filter(e=>"table"!==e.localName).forEach(e=>{e.innerHTML=h(e.innerHTML)}),r.normalize();const i=r.body.innerText.replace(/^\ *\n/,"").split("\n").filter(e=>e&&e.startsWith(" "))[0];var o=i?i.match(/\ +/)[0].length:0;if(o){Array.from(r.body.childNodes).filter(e=>"pre"!==e.localName).filter(t).filter(e=>{const t=e.previousElementSibling,n=t?t.localName:e.parentElement.localName;return!d.has(n)||e.textContent.trim().includes("\n")}).reduce((e,t)=>{let n="";const r=t.previousElementSibling,i=r?r.localName:t.parentElement.localName;return/^[\t\ ]/.test(t.textContent)&&d.has(i)&&(n=t.textContent.match(/^\s+/)[0]),t.textContent=n+t.textContent.replace(e,""),e},new RegExp("^ {1,"+o+"}","gm"));const e=new RegExp(`\\ {${o}}$`,"gm");Array.from(r.body.querySelectorAll("pre")).map(e=>e.previousSibling).filter(t).reduce((t,n)=>(e.test(n.textContent)&&(n.textContent=n.textContent.substr(0,n.textContent.length-t)),t),o)}return a.test(r.body.innerHTML)?r.body.innerHTML.trimRight()+"\n":r.body.innerHTML}}),define("core/post-process",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.done=e.name=void 0;e.name="core/post-process";let n;e.done=new Promise(e=>{n=e});(0,t.sub)("plugins-done",async e=>{const t=[];if(Array.isArray(e.postProcess)){const n=await Promise.all(e.postProcess.filter(e=>"function"==typeof e).map(t=>Promise.resolve(t(e,document))));t.push(...n)}"function"==typeof e.afterEnd&&t.push(await Promise.resolve(e.afterEnd(e,document))),n(t)},{once:!0})}),define("core/pre-process",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.done=e.name=void 0;e.name="core/pre-process";let n;e.done=new Promise(e=>{n=e});(0,t.sub)("start-all",async e=>{const t=[];if(Array.isArray(e.preProcess)){const n=await Promise.all(e.preProcess.filter(e=>"function"==typeof e).map(t=>Promise.resolve(t(e,document))));t.push(...n)}n(t)},{once:!0})}),define("core/include-config",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0;e.name="core/include-config";const n={},r=e=>Object.assign(n,e);(0,t.sub)("start-all",r),(0,t.sub)("amend-user-config",r),(0,t.sub)("end-all",()=>{const e=document.createElement("script");e.id="initialUserConfig",e.type="application/json",e.innerHTML=JSON.stringify(n,null,2),document.head.appendChild(e)})}),define("core/override-configuration",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0;e.name="core/override-configuration";(0,t.sub)("start-all",function(e){const n=document.location.search.replace(/;/g,"&"),r=new URLSearchParams(n),i=Array.from(r.entries()).filter(([e,t])=>!!e&&!!t).map(([e,t])=>{const n=decodeURIComponent(e),r=decodeURIComponent(t.replace(/%3D/g,"="));let i;try{i=JSON.parse(r)}catch(e){i=r}return{key:n,value:i}}).reduce((e,{key:t,value:n})=>(e[t]=n,e),{});Object.assign(e,i),(0,t.pub)("amend-user-config",i)},{once:!0})}),define("core/respec-ready",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0;e.name="core/respec-ready";const n=new Promise(e=>{(0,t.sub)("end-all",e,{once:!0})});Object.defineProperty(document,"respecIsReady",{get:()=>n})}),define("core/base-runner",["exports","core/utils","core/post-process","core/pre-process","core/pubsubhub","core/include-config","core/override-configuration","core/respec-ready"],function(e,t,n,r,i){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.runAll=async function(e){(0,i.pub)("start-all",respecConfig),a&&performance.mark(o+"-start");await r.done;const l=e.filter(e=>e&&e.run).map(s);for(const e of l)try{await e(respecConfig)}catch(e){console.error(e)}(0,i.pub)("plugins-done",respecConfig),await n.done,(0,i.pub)("end-all",respecConfig),(0,t.removeReSpec)(document),a&&(performance.mark(o+"-end"),performance.measure(o,o+"-start",o+"-end"))};const o=e.name="core/base-runner",a=performance.mark&&performance.measure;function s(e){const t=e.name||"";return t||console.warn("Plugin lacks name:",e),n=>new Promise(async(r,i)=>{const o=setTimeout(()=>{const n=`Plugin ${t} took too long.`;console.error(n,e),i(new Error(n))},15e3);a&&performance.mark(t+"-start");try{e.run.length<=1?(await e.run(n),r()):e.run(n,document,r)}catch(e){i(e)}finally{clearTimeout(o)}a&&(performance.mark(t+"-end"),performance.measure(t,t+"-start",t+"-end"))})}});var shortcut={all_shortcuts:{},add:function(e,t,n){var r={type:"keydown",propagate:!1,disable_in_input:!1,target:document,keycode:!1};if(n)for(var i in r)void 0===n[i]&&(n[i]=r[i]);else n=r;var o=n.target;"string"==typeof n.target&&(o=document.getElementById(n.target));e=e.toLowerCase();var a=function(r){var i,o;if((r=r||window.event,n.disable_in_input)&&(r.target?o=r.target:r.srcElement&&(o=r.srcElement),3==o.nodeType&&(o=o.parentNode),"INPUT"==o.tagName||"TEXTAREA"==o.tagName))return;r.keyCode?i=r.keyCode:r.which&&(i=r.which);var a=String.fromCharCode(i).toLowerCase();188==i&&(a=","),190==i&&(a=".");var s=e.split("+"),l=0,c={"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+",";":":","'":'"',",":"<",".":">","/":"?","\\":"|"},u={esc:27,escape:27,tab:9,space:32,return:13,enter:13,backspace:8,scrolllock:145,scroll_lock:145,scroll:145,capslock:20,caps_lock:20,caps:20,numlock:144,num_lock:144,num:144,pause:19,break:19,insert:45,home:36,delete:46,end:35,pageup:33,page_up:33,pu:33,pagedown:34,page_down:34,pd:34,left:37,up:38,right:39,down:40,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123},d={shift:{wanted:!1,pressed:!1},ctrl:{wanted:!1,pressed:!1},alt:{wanted:!1,pressed:!1},meta:{wanted:!1,pressed:!1}};r.ctrlKey&&(d.ctrl.pressed=!0),r.shiftKey&&(d.shift.pressed=!0),r.altKey&&(d.alt.pressed=!0),r.metaKey&&(d.meta.pressed=!0);for(var p,f=0;p=s[f],f1?u[p]==i&&l++:n.keycode?n.keycode==i&&l++:a==p?l++:c[a]&&r.shiftKey&&(a=c[a])==p&&l++;if(l==s.length&&d.ctrl.pressed==d.ctrl.wanted&&d.shift.pressed==d.shift.wanted&&d.alt.pressed==d.alt.wanted&&d.meta.pressed==d.meta.wanted&&(t(r),!n.propagate))return r.cancelBubble=!0,r.returnValue=!1,r.stopPropagation&&(r.stopPropagation(),r.preventDefault()),!1};this.all_shortcuts[e]={callback:a,target:o,event:n.type},o.addEventListener?o.addEventListener(n.type,a,!1):o.attachEvent?o.attachEvent("on"+n.type,a):o["on"+n.type]=a}},Zx,t0,u0,Dha,Eha,mta,nta,eXa,fXa;define("shortcut",(Zx=this,function(){return Zx.shortcut})),define("deps/text",["module"],function(e){var t,n,r,i,o,a=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],s=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,l=/]*>\s*([\s\S]+)\s*<\/body>/im,c="undefined"!=typeof location&&location.href,u=c&&location.protocol&&location.protocol.replace(/\:/,""),d=c&&location.hostname,p=c&&(location.port||void 0),f={},h=e.config&&e.config()||{};function m(e,t){return void 0===e||""===e?t:e}return t={version:"2.0.15",strip:function(e){if(e){var t=(e=e.replace(s,"")).match(l);t&&(e=t[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r").replace(/[\u2028]/g,"\\u2028").replace(/[\u2029]/g,"\\u2029")},createXhr:h.createXhr||function(){var e,t,n;if("undefined"!=typeof XMLHttpRequest)return new XMLHttpRequest;if("undefined"!=typeof ActiveXObject)for(t=0;t<3;t+=1){n=a[t];try{e=new ActiveXObject(n)}catch(e){}if(e){a=[n];break}}return e},parseName:function(e){var t,n,r,i=!1,o=e.lastIndexOf("."),a=0===e.indexOf("./")||0===e.indexOf("../");return-1!==o&&(!a||o>1)?(t=e.substring(0,o),n=e.substring(o+1)):t=e,-1!==(o=(r=n||t).indexOf("!"))&&(i="strip"===r.substring(o+1),r=r.substring(0,o),n?n=r:t=r),{moduleName:t,ext:n,strip:i}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,n,r,i){var o,a,s,l=t.xdRegExp.exec(e);return!l||(o=l[2],s=(a=(a=l[3]).split(":"))[1],a=a[0],(!o||o===n)&&(!a||a.toLowerCase()===r.toLowerCase())&&(!s&&!a||function(e,t,n,r){if(t===r)return!0;if(e===n){if("http"===e)return m(t,"80")===m(r,"80");if("https"===e)return m(t,"443")===m(r,"443")}return!1}(o,s,n,i)))},finishLoad:function(e,n,r,i){r=n?t.strip(r):r,h.isBuild&&(f[e]=r),i(r)},load:function(e,n,r,i){if(i&&i.isBuild&&!i.inlineText)r();else{h.isBuild=i&&i.isBuild;var o=t.parseName(e),a=o.moduleName+(o.ext?"."+o.ext:""),s=n.toUrl(a),l=h.useXhr||t.useXhr;0!==s.indexOf("empty:")?!c||l(s,u,d,p)?t.get(s,function(n){t.finishLoad(e,o.strip,n,r)},function(e){r.error&&r.error(e)}):n([a],function(e){t.finishLoad(o.moduleName+"."+o.ext,o.strip,e,r)}):r()}},write:function(e,n,r,i){if(f.hasOwnProperty(n)){var o=t.jsEscape(f[n]);r.asModule(e+"!"+n,"define(function () { return '"+o+"';});\n")}},writeFile:function(e,n,r,i,o){var a=t.parseName(n),s=a.ext?"."+a.ext:"",l=a.moduleName+s,c=r.toUrl(a.moduleName+s)+".js";t.load(l,r,function(n){var r=function(e){return i(c,e)};r.asModule=function(e,t){return i.asModule(e,c,t)},t.write(e,l,r,o)},o)}},"node"===h.env||!h.env&&"undefined"!=typeof process&&process.versions&&process.versions.node&&!process.versions["node-webkit"]&&!process.versions["atom-shell"]?(n=require.nodeRequire("fs"),t.get=function(e,t,r){try{var i=n.readFileSync(e,"utf8");"\ufeff"===i[0]&&(i=i.substring(1)),t(i)}catch(e){r&&r(e)}}):"xhr"===h.env||!h.env&&t.createXhr()?t.get=function(e,n,r,i){var o,a=t.createXhr();if(a.open("GET",e,!0),i)for(o in i)i.hasOwnProperty(o)&&a.setRequestHeader(o.toLowerCase(),i[o]);h.onXhr&&h.onXhr(a,e),a.onreadystatechange=function(t){var i,o;4===a.readyState&&((i=a.status||0)>399&&i<600?((o=new Error(e+" HTTP status: "+i)).xhr=a,r&&r(o)):n(a.responseText),h.onXhrComplete&&h.onXhrComplete(a,e))},a.send(null)}:"rhino"===h.env||!h.env&&"undefined"!=typeof Packages&&"undefined"!=typeof java?t.get=function(e,t){var n,r,i=new java.io.File(e),o=java.lang.System.getProperty("line.separator"),a=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(i),"utf-8")),s="";try{for(n=new java.lang.StringBuffer,(r=a.readLine())&&r.length()&&65279===r.charAt(0)&&(r=r.substring(1)),null!==r&&n.append(r);null!==(r=a.readLine());)n.append(o),n.append(r);s=String(n.toString())}finally{a.close()}t(s)}:("xpconnect"===h.env||!h.env&&"undefined"!=typeof Components&&Components.classes&&Components.interfaces)&&(r=Components.classes,i=Components.interfaces,Components.utils.import("resource://gre/modules/FileUtils.jsm"),o="@mozilla.org/windows-registry-key;1"in r,t.get=function(e,t){var n,a,s,l={};o&&(e=e.replace(/\//g,"\\")),s=new FileUtils.File(e);try{(n=r["@mozilla.org/network/file-input-stream;1"].createInstance(i.nsIFileInputStream)).init(s,1,0,!1),(a=r["@mozilla.org/intl/converter-input-stream;1"].createInstance(i.nsIConverterInputStream)).init(n,"utf-8",n.available(),i.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),a.readString(n.available(),l),a.close(),n.close(),t(l.value)}catch(e){throw new Error((s&&s.path||"")+": "+e)}}),t}),define("deps/text!ui/ui.css",[],function(){return'#respec-ui {\n position: fixed;\n display: flex;\n flex-direction: row-reverse;\n top: 20px;\n right: 20px;\n width: 202px;\n text-align: right;\n z-index: 9000;\n}\n\n#respec-pill,\n.respec-info-button {\n background: #fff;\n height: 2.5em;\n color: rgb(120, 120, 120);\n border: 1px solid #ccc;\n box-shadow: 1px 1px 8px 0 rgba(100, 100, 100, 0.5);\n}\n\n.respec-info-button {\n border: none;\n opacity: 0.75;\n border-radius: 2em;\n margin-right: 1em;\n min-width: 3.5em;\n}\n\n.respec-info-button:focus,\n.respec-info-button:hover {\n opacity: 1;\n transition: opacity 0.2s;\n}\n\n#respec-pill:disabled {\n font-size: 2.8px;\n text-indent: -9999em;\n border-top: 1.1em solid rgba(40, 40, 40, 0.2);\n border-right: 1.1em solid rgba(40, 40, 40, 0.2);\n border-bottom: 1.1em solid rgba(40, 40, 40, 0.2);\n border-left: 1.1em solid #ffffff;\n transform: translateZ(0);\n animation: respec-spin 0.5s infinite linear;\n box-shadow: none;\n}\n\n#respec-pill:disabled,\n#respec-pill:disabled:after {\n border-radius: 50%;\n width: 10em;\n height: 10em;\n}\n\n@keyframes respec-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.respec-hidden {\n visibility: hidden;\n opacity: 0;\n transition: visibility 0s 0.2s, opacity 0.2s linear;\n}\n\n.respec-visible {\n visibility: visible;\n opacity: 1;\n transition: opacity 0.2s linear;\n}\n\n#respec-pill:hover,\n#respec-pill:focus {\n color: rgb(0, 0, 0);\n background-color: rgb(245, 245, 245);\n transition: color 0.2s;\n}\n\n#respec-menu {\n position: absolute;\n margin: 0;\n padding: 0;\n font-family: sans-serif;\n background: #fff;\n box-shadow: 1px 1px 8px 0 rgba(100, 100, 100, 0.5);\n width: 200px;\n display: none;\n text-align: left;\n margin-top: 32px;\n font-size: 0.8em;\n}\n\n#respec-menu:not([hidden]) {\n display: block;\n}\n\n#respec-menu li {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n\n.respec-save-buttons {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(47%, 2fr));\n grid-gap: 0.5cm;\n padding: 0.5cm;\n}\n\n.respec-save-button:link {\n padding-top: 16px;\n color: rgb(240, 240, 240);\n background: rgb(42, 90, 168);\n justify-self: stretch;\n height: 1cm;\n text-decoration: none;\n text-align: center;\n font-size: inherit;\n border: none;\n border-radius: 0.2cm;\n}\n\n.respec-save-button:link:hover {\n color: white;\n background: rgb(42, 90, 168);\n padding: 0;\n margin: 0;\n border: 0;\n padding-top: 16px;\n}\n\n#respec-ui button:focus,\n#respec-pill:focus,\n.respec-option:focus {\n outline: 0;\n outline-style: none;\n}\n\n#respec-pill-error {\n background-color: red;\n color: white;\n}\n\n#respec-pill-warning {\n background-color: orange;\n color: white;\n}\n\n.respec-warning-list,\n.respec-error-list {\n margin: 0;\n padding: 0;\n list-style: none;\n font-family: sans-serif;\n background-color: rgb(255, 251, 230);\n font-size: 0.85em;\n}\n\n.respec-warning-list > li,\n.respec-error-list > li {\n padding: 0.4em 0.7em;\n}\n\n.respec-warning-list > li::before {\n content: "⚠️";\n padding-right: 0.5em;\n}\n.respec-warning-list p,\n.respec-error-list p {\n padding: 0;\n margin: 0;\n}\n\n.respec-warning-list li {\n color: rgb(92, 59, 0);\n border-bottom: thin solid rgb(255, 245, 194);\n}\n\n.respec-error-list,\n.respec-error-list li {\n background-color: rgb(255, 240, 240);\n}\n\n.respec-error-list li::before {\n content: "💥";\n padding-right: 0.5em;\n}\n\n.respec-error-list li {\n padding: 0.4em 0.7em;\n color: rgb(92, 59, 0);\n border-bottom: thin solid rgb(255, 215, 215);\n}\n\n.respec-error-list li > p {\n margin: 0;\n padding: 0;\n display: inline-block;\n}\n\n#respec-overlay {\n display: block;\n position: fixed;\n z-index: 10000;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n background: #000;\n}\n\n.respec-show-overlay {\n transition: opacity 0.2s linear;\n opacity: 0.5;\n}\n\n.respec-hide-overlay {\n transition: opacity 0.2s linear;\n opacity: 0;\n}\n\n.respec-modal {\n display: block;\n position: fixed;\n z-index: 11000;\n margin: auto;\n top: 10%;\n background: #fff;\n border: 5px solid #666;\n min-width: 20%;\n width: 79%;\n padding: 0;\n max-height: 80%;\n overflow-y: auto;\n margin: 0 -0.5cm;\n}\n\n@media screen and (min-width: 78em) {\n .respec-modal {\n width: 62%;\n }\n}\n\n.respec-modal h3 {\n margin: 0;\n padding: 0.2em;\n text-align: center;\n color: black;\n background: linear-gradient(\n to bottom,\n rgba(238, 238, 238, 1) 0%,\n rgba(238, 238, 238, 1) 50%,\n rgba(204, 204, 204, 1) 100%\n );\n font-size: 1em;\n}\n\n.respec-modal .inside div p {\n padding-left: 1cm;\n}\n\n#respec-menu button.respec-option {\n background: white;\n padding: 0 0.2cm;\n border: none;\n width: 100%;\n text-align: left;\n font-size: inherit;\n padding: 1.2em 1.2em;\n}\n\n#respec-menu button.respec-option:hover,\n#respec-menu button:focus {\n background-color: #eeeeee;\n}\n\n.respec-cmd-icon {\n padding-right: 0.5em;\n}\n\n#respec-ui button.respec-option:last-child {\n border: none;\n border-radius: inherit;\n}\n\n.respec-offending-element {\n display: inline-block;\n position: relative;\n background: url(data:image/gif;base64,R0lGODdhBAADAPEAANv///8AAP///wAAACwAAAAABAADAEACBZQjmIAFADs=)\n bottom repeat-x;\n}\n\n@supports (text-decoration-style: wavy) {\n .respec-offending-element {\n background: none;\n text-decoration-line: underline;\n text-decoration-style: wavy;\n text-decoration-color: red;\n }\n}\n\n.respec-button-copy-paste {\n position: absolute;\n display: block;\n padding: 0px 8px;\n height: 28px;\n width: 40px;\n color: #333;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n background-color: #eee;\n background-image: linear-gradient(#fcfcfc, #eee);\n border: 1px solid rgb(144, 184, 222);\n border-radius: 0px 0px 3px 0;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-appearance: none;\n margin: 0px 127px;\n border-left: 0;\n}\n\np + .respec-button-copy-paste {\n margin: 1px 127px;\n}\n\n#specref-ui {\n margin: 0 2%;\n margin-bottom: 0.5cm;\n}\n\n#specref-ui header {\n font-size: 0.7em;\n background-color: #eee;\n text-align: center;\n padding: 0.2cm;\n margin-bottom: 0.5cm;\n border-radius: 0 0 0.2cm 0.2cm;\n}\n\n#specref-ui header h1 {\n padding: 0;\n margin: 0;\n color: black;\n}\n\n#specref-ui p {\n padding: 0;\n margin: 0;\n font-size: 0.8em;\n text-align: center;\n}\n\n#specref-ui p.state {\n margin: 1cm;\n}\n\n#specref-ui .searchcomponent {\n font-size: 16px;\n display: grid;\n grid-template-columns: auto 2cm;\n}\n#specref-ui .searchcomponent:focus {\n}\n\n#specref-ui input,\n#specref-ui button {\n border: 0;\n padding: 6px 12px;\n}\n\n#specref-ui label {\n font-size: 0.6em;\n grid-column-end: 3;\n text-align: right;\n grid-column-start: 1;\n}\n\n#specref-ui input[type="search"] {\n -webkit-appearance: none;\n font-size: 16px;\n border-radius: 0.1cm 0 0 0.1cm;\n border: 1px solid rgb(204, 204, 204);\n}\n\n#specref-ui button[type="submit"] {\n color: white;\n border-radius: 0 0.1cm 0.1cm 0;\n background-color: rgb(51, 122, 183);\n}\n\n#specref-ui button[type="submit"]:hover {\n background-color: #286090;\n border-color: #204d74;\n}\n\n#specref-ui .result-stats {\n margin: 0;\n padding: 0;\n color: rgb(128, 128, 128);\n font-size: 0.7em;\n font-weight: bold;\n}\n\n#specref-ui .specref-results {\n font-size: 0.8em;\n}\n\n#specref-ui .specref-results dd + dt {\n margin-top: 0.51cm;\n}\n\n#specref-ui .specref-results a {\n text-transform: capitalize;\n}\n#specref-ui .specref-results .authors {\n display: block;\n color: #006621;\n}\n\n@media print {\n #respec-ui {\n display: none;\n }\n}\n'}),t0="undefined"!=typeof window?window:this,u0=function(e,t){var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,l=n.indexOf,c={},u=c.toString,d=c.hasOwnProperty,p=d.toString,f=p.call(Object),h={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},g=function(e){return null!=e&&e===e.window},b={type:!0,src:!0,noModule:!0};function y(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in b)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function v(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[u.call(e)]||"object":typeof e}var w="3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",x=function(e,t){return new x.fn.init(e,t)},k=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function C(e){var t=!!e&&"length"in e&&e.length,n=v(e);return!m(e)&&!g(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}x.fn=x.prototype={jquery:w,constructor:x,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return x.each(this,e)},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+M+")"+M+"*"),F=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),z=new RegExp(q),G=new RegExp("^"+O+"$"),V={ID:new RegExp("^#("+O+")"),CLASS:new RegExp("^\\.("+O+")"),TAG:new RegExp("^("+O+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Q=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,J=/[+~]/,K=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=ye(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{_.apply(L=N.call(x.childNodes),x.childNodes),L[x.childNodes.length].nodeType}catch(e){_={apply:L.length?function(e,t){D.apply(e,N.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function oe(e,t,r,i){var o,s,c,u,d,h,b,y=t&&t.ownerDocument,k=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==k&&9!==k&&11!==k)return r;if(!i&&((t?t.ownerDocument||t:x)!==f&&p(t),t=t||f,m)){if(11!==k&&(d=Q.exec(e)))if(o=d[1]){if(9===k){if(!(c=t.getElementById(o)))return r;if(c.id===o)return r.push(c),r}else if(y&&(c=y.getElementById(o))&&v(t,c)&&c.id===o)return r.push(c),r}else{if(d[2])return _.apply(r,t.getElementsByTagName(e)),r;if((o=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return _.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!T[e+" "]&&(!g||!g.test(e))){if(1!==k)y=t,b=e;else if("object"!==t.nodeName.toLowerCase()){for((u=t.getAttribute("id"))?u=u.replace(te,ne):t.setAttribute("id",u=w),s=(h=a(e)).length;s--;)h[s]="#"+u+" "+be(h[s]);b=h.join(","),y=J.test(e)&&me(t.parentNode)||t}if(b)try{return _.apply(r,y.querySelectorAll(b)),r}catch(e){}finally{u===w&&t.removeAttribute("id")}}}return l(e.replace(W,"$1"),t,r,i)}function ae(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function se(e){return e[w]=!0,e}function le(e){var t=f.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ce(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function ue(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function fe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:x;return a!==f&&9===a.nodeType&&a.documentElement?(h=(f=a).documentElement,m=!o(f),x!==f&&(i=f.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=le(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=le(function(e){return e.appendChild(f.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Y.test(f.getElementsByClassName),n.getById=le(function(e){return h.appendChild(e).id=w,!f.getElementsByName||!f.getElementsByName(w).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(K,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(K,ee);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&m)return t.getElementsByClassName(e)},b=[],g=[],(n.qsa=Y.test(f.querySelectorAll))&&(le(function(e){h.appendChild(e).innerHTML="
      ",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+w+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+w+"+*").length||g.push(".#.+[+~]")}),le(function(e){e.innerHTML="";var t=f.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(n.matchesSelector=Y.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&le(function(e){n.disconnectedMatch=y.call(e,"*"),y.call(e,"[s!='']:x"),b.push("!=",q)}),g=g.length&&new RegExp(g.join("|")),b=b.length&&new RegExp(b.join("|")),t=Y.test(h.compareDocumentPosition),v=t||Y.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},S=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===f||e.ownerDocument===x&&v(x,e)?-1:t===f||t.ownerDocument===x&&v(x,t)?1:u?R(u,e)-R(u,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===f?-1:t===f?1:i?-1:o?1:u?R(u,e)-R(u,t):0;if(i===o)return ue(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?ue(a[r],s[r]):a[r]===x?-1:s[r]===x?1:0},f):f},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(F,"='$1']"),n.matchesSelector&&m&&!T[t+" "]&&(!b||!b.test(t))&&(!g||!g.test(t)))try{var r=y.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,f,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==f&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&A.call(r.attrHandle,t.toLowerCase())?i(e,t,!m):void 0;return void 0!==o?o:n.attributes||!m?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(d=!n.detectDuplicates,u=!n.sortStable&&e.slice(0),e.sort(S),d){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return u=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(K,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(K,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&z.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(K,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(U," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,p,f,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,b=s&&t.nodeName.toLowerCase(),y=!l&&!s,v=!1;if(g){if(o){for(;m;){for(p=t;p=p[m];)if(s?p.nodeName.toLowerCase()===b:1===p.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(v=(f=(c=(u=(d=(p=g)[w]||(p[w]={}))[p.uniqueID]||(d[p.uniqueID]={}))[e]||[])[0]===k&&c[1])&&c[2],p=f&&g.childNodes[f];p=++f&&p&&p[m]||(v=f=0)||h.pop();)if(1===p.nodeType&&++v&&p===t){u[e]=[k,f,v];break}}else if(y&&(v=f=(c=(u=(d=(p=t)[w]||(p[w]={}))[p.uniqueID]||(d[p.uniqueID]={}))[e]||[])[0]===k&&c[1]),!1===v)for(;(p=++f&&p&&p[m]||(v=f=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==b:1!==p.nodeType)||!++v||(y&&((u=(d=p[w]||(p[w]={}))[p.uniqueID]||(d[p.uniqueID]={}))[e]=[k,v]),p!==t)););return(v-=i)===r||v%r==0&&v/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[w]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=R(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[w]?se(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(K,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return G.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(K,ee).toLowerCase(),function(t){var n;do{if(n=m?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:fe(!1),disabled:fe(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Z.test(e.nodeName)},input:function(e){return X.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function we(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;s-1&&(o[c]=!(a[c]=d))}}else b=we(b===a?b.splice(h,b.length):b),i?i(null,a,b,l):_.apply(a,b)})}function ke(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],l=a?1:0,u=ye(function(e){return e===t},s,!0),d=ye(function(e){return R(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==c)||((t=n).nodeType?u(e,n,r):d(e,n,r));return t=null,i}];l1&&ve(p),l>1&&be(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(W,"$1"),n,l0,l=i.length>0,u=function(e,t,n,a,u){var d,h,g,b=0,y="0",v=e&&[],w=[],x=c,C=e||l&&r.find.TAG("*",u),E=k+=null==x?1:Math.random()||.1,$=C.length;for(u&&(c=t===f||t||u);y!==$&&null!=(d=C[y]);y++){if(l&&d){for(h=0,t||d.ownerDocument===f||(p(d),n=!m);g=i[h++];)if(g(d,t||f,n)){a.push(d);break}u&&(k=E)}s&&((d=!g&&d)&&b--,e&&v.push(d))}if(b+=y,s&&y!==b){for(h=0;g=o[h++];)g(v,w,t,n);if(e){if(b>0)for(;y--;)v[y]||w[y]||(w[y]=j.call(a));w=we(w)}_.apply(a,w),u&&!e&&w.length>0&&b+o.length>1&&oe.uniqueSort(a)}return u&&(k=E,c=x),v},s?se(u):u))).selector=e}return g},l=oe.select=function(e,t,n,i){var o,l,c,u,d,p="function"==typeof e&&e,f=!i&&a(e=p.selector||e);if(n=n||[],1===f.length){if((l=f[0]=f[0].slice(0)).length>2&&"ID"===(c=l[0]).type&&9===t.nodeType&&m&&r.relative[l[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(K,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(l.shift().value.length)}for(o=V.needsContext.test(e)?0:l.length;o--&&(c=l[o],!r.relative[u=c.type]);)if((d=r.find[u])&&(i=d(c.matches[0].replace(K,ee),J.test(l[0].type)&&me(t.parentNode)||t))){if(l.splice(o,1),!(e=i.length&&be(l)))return _.apply(n,i),n;break}}return(p||s(e,f))(i,t,!m,n,!t||J.test(e)&&me(t.parentNode)||t),n},n.sortStable=w.split("").sort(S).join("")===w,n.detectDuplicates=!!d,p(),n.sortDetached=le(function(e){return 1&e.compareDocumentPosition(f.createElement("fieldset"))}),le(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ce("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&le(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ce("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),le(function(e){return null==e.getAttribute("disabled")})||ce(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);x.find=E,x.expr=E.selectors,x.expr[":"]=x.expr.pseudos,x.uniqueSort=x.unique=E.uniqueSort,x.text=E.getText,x.isXMLDoc=E.isXML,x.contains=E.contains,x.escapeSelector=E.escape;var $=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},S=x.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var L=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return m(t)?x.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?x.grep(e,function(e){return e===t!==n}):"string"!=typeof t?x.grep(e,function(e){return l.call(t,e)>-1!==n}):x.filter(t,e,n)}x.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},x.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;t1?x.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&S.test(e)?x(e):e||[],!1).length}});var D,_=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(x.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:_.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),L.test(i[1])&&x.isPlainObject(t))for(i in t)m(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(x):x.makeArray(e,this)}).prototype=x.fn,D=x(r);var N=/^(?:parents|prev(?:Until|All))/,R={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}x.fn.extend({has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&x.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?x.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?l.call(x(e),this[0]):l.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(x.uniqueSort(x.merge(this.get(),x(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return $(e,"parentNode")},parentsUntil:function(e,t,n){return $(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return $(e,"nextSibling")},prevAll:function(e){return $(e,"previousSibling")},nextUntil:function(e,t,n){return $(e,"nextSibling",n)},prevUntil:function(e,t,n){return $(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return A(e,"iframe")?e.contentDocument:(A(e,"template")&&(e=e.content||e),x.merge([],e.childNodes))}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(R[e]||x.uniqueSort(i),N.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function O(e){return e}function I(e){throw e}function q(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}x.Callbacks=function(e){var t,n;e="string"==typeof e?(t=e,n={},x.each(t.match(M)||[],function(e,t){n[t]=!0}),n):x.extend({},e);var r,i,o,a,s=[],l=[],c=-1,u=function(){for(a=a||e.once,o=r=!0;l.length;c=-1)for(i=l.shift();++c-1;)s.splice(n,1),n<=c&&c--}),this},has:function(e){return e?x.inArray(e,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return a=l=[],s=i="",this},disabled:function(){return!s},lock:function(){return a=l=[],i||r||(s=i=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],l.push(t),r||u()),this},fire:function(){return d.fireWith(this,arguments),this},fired:function(){return!!o}};return d},x.extend({Deferred:function(t){var n=[["notify","progress",x.Callbacks("memory"),x.Callbacks("memory"),2],["resolve","done",x.Callbacks("once memory"),x.Callbacks("once memory"),0,"resolved"],["reject","fail",x.Callbacks("once memory"),x.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return x.Deferred(function(t){x.each(n,function(n,r){var i=m(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&m(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,l=arguments,c=function(){var e,c;if(!(t=o&&(r!==I&&(s=void 0,l=[e]),n.rejectWith(s,l))}};t?u():(x.Deferred.getStackHook&&(u.stackTrace=x.Deferred.getStackHook()),e.setTimeout(u))}}return x.Deferred(function(e){n[0][3].add(a(0,e,m(i)?i:O,e.notifyWith)),n[1][3].add(a(0,e,m(t)?t:O)),n[2][3].add(a(0,e,m(r)?r:I))}).promise()},promise:function(e){return null!=e?x.extend(e,i):i}},o={};return x.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=x.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&(q(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||m(i[n]&&i[n].then)))return a.then();for(;n--;)q(i[n],s(n),a.reject);return a.promise()}});var U=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;x.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&U.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},x.readyException=function(t){e.setTimeout(function(){throw t})};var W=x.Deferred();function H(){r.removeEventListener("DOMContentLoaded",H),e.removeEventListener("load",H),x.ready()}x.fn.ready=function(e){return W.then(e).catch(function(e){x.readyException(e)}),this},x.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--x.readyWait:x.isReady)||(x.isReady=!0,!0!==e&&--x.readyWait>0||W.resolveWith(r,[x]))}}),x.ready.then=W.then,"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(x.ready):(r.addEventListener("DOMContentLoaded",H),e.addEventListener("load",H));var B=function(e,t,n,r,i,o,a){var s=0,l=e.length,c=null==n;if("object"===v(n)){i=!0;for(s in n)B(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,m(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(x(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),x.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,x.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){x.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:x.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,ue=/^$|^module$|\/(?:java|ecma)script/i,de={option:[1,""],thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function pe(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?x.merge([e],n):n}function fe(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(c=x.contains(o.ownerDocument,o),a=pe(d.appendChild(o),"script"),c&&fe(a),n)for(u=0;o=a[u++];)ue.test(o.type||"")&&n.push(o);return d}he=r.createDocumentFragment().appendChild(r.createElement("div")),(me=r.createElement("input")).setAttribute("type","radio"),me.setAttribute("checked","checked"),me.setAttribute("name","t"),he.appendChild(me),h.checkClone=he.cloneNode(!0).cloneNode(!0).lastChild.checked,he.innerHTML="",h.noCloneChecked=!!he.cloneNode(!0).lastChild.defaultValue;var ye=r.documentElement,ve=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,xe=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Ce(){return!1}function Ee(){try{return r.activeElement}catch(e){}}function $e(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)$e(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ce;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return x().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=x.guid++)),e.each(function(){x.event.add(this,t,i,r,n)})}x.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,c,u,d,p,f,h,m,g=Y.get(e);if(g)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&x.find.matchesSelector(ye,i),n.guid||(n.guid=x.guid++),(l=g.events)||(l=g.events={}),(a=g.handle)||(a=g.handle=function(t){return void 0!==x&&x.event.triggered!==t.type?x.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(M)||[""]).length;c--;)f=m=(s=xe.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),f&&(d=x.event.special[f]||{},f=(i?d.delegateType:d.bindType)||f,d=x.event.special[f]||{},u=x.extend({type:f,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&x.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=l[f])||((p=l[f]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(f,a)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,u):p.push(u),x.event.global[f]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,c,u,d,p,f,h,m,g=Y.hasData(e)&&Y.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(M)||[""]).length;c--;)if(f=m=(s=xe.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),f){for(d=x.event.special[f]||{},p=l[f=(r?d.delegateType:d.bindType)||f]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)u=p[o],!i&&m!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(p.splice(o,1),u.selector&&p.delegateCount--,d.remove&&d.remove.call(e,u));a&&!p.length&&(d.teardown&&!1!==d.teardown.call(e,h,g.handle)||x.removeEvent(e,f,g.handle),delete l[f])}else for(f in l)x.event.remove(e,f+t[c],n,r,!0);x.isEmptyObject(l)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=x.event.fix(e),l=new Array(arguments.length),c=(Y.get(this,"events")||{})[s.type]||[],u=x.event.special[s.type]||{};for(l[0]=s,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],a={},n=0;n-1:x.find(i,this,null,[c]).length),a[i]&&o.push(r);o.length&&s.push({elem:c,handlers:o})}return c=this,l\x20\t\r\n\f]*)[^>]*)\/>/gi,Se=/\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&x(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function _e(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Ne(e,t){var n,r,i,o,a,s,l,c;if(1===t.nodeType){if(Y.hasData(e)&&(o=Y.access(e),a=Y.set(t,o),c=o.events)){delete a.handle,a.events={};for(i in c)for(n=0,r=c[i].length;n1&&"string"==typeof g&&!h.checkClone&&Ae.test(g))return e.each(function(i){var o=e.eq(i);b&&(t[0]=g.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(o=(i=be(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(l=(s=x.map(pe(i,"script"),De)).length;d")},clone:function(e,t,n){var r,i,o,a,s,l,c,u=e.cloneNode(!0),d=x.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(a=pe(u),r=0,i=(o=pe(e)).length;r0&&fe(a,!d&&pe(e,"script")),u},cleanData:function(e){for(var t,n,r,i=x.event.special,o=0;void 0!==(n=e[o]);o++)if(X(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?x.event.remove(n,r):x.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),x.fn.extend({detach:function(e){return Pe(this,e,!0)},remove:function(e){return Pe(this,e)},text:function(e){return B(this,function(e){return void 0===e?x.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(pe(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return B(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Se.test(e)&&!de[(ce.exec(e)||["",""])[1].toLowerCase()]){e=x.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-l-s-.5))),l}function Je(e,t,n){var r=Oe(e),i=qe(e,t,r),o="border-box"===x.css(e,"boxSizing",!1,r),a=o;if(Me.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===x.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Qe(e,t,n||(o?"border":"content"),a,r,i)+"px"}x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=qe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),l=Fe.test(t),c=e.style;if(l||(t=Ze(s)),a=x.cssHooks[t]||x.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:c[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=function(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return x.css(e,t,"")},l=s(),c=n&&n[3]||(x.cssNumber[t]?"":"px"),u=(x.cssNumber[t]||"px"!==c&&+l)&&ne.exec(x.css(e,t));if(u&&u[3]!==c){for(l/=2,c=c||u[3],u=+l||1;a--;)x.style(e,t,u+c),(1-o)*(1-(o=s()/l||.5))<=0&&(a=0),u/=o;u*=2,x.style(e,t,u+c),n=n||[]}return n&&(u=+u||+l||0,i=n[1]?u+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=u,r.end=i)),i}(e,t,i),o="number"),null!=n&&n==n&&("number"===o&&(n+=i&&i[3]||(x.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Fe.test(t)||(t=Ze(s)),(a=x.cssHooks[t]||x.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=qe(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),x.each(["height","width"],function(e,t){x.cssHooks[t]={get:function(e,n,r){if(n)return!Be.test(x.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,t,r):oe(e,ze,function(){return Je(e,t,r)})},set:function(e,n,r){var i,o=Oe(e),a="border-box"===x.css(e,"boxSizing",!1,o),s=r&&Qe(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Qe(e,t,"border",!1,o)-.5)),s&&(i=ne.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=x.css(e,t)),Ye(0,n,s)}}}),x.cssHooks.marginLeft=Ue(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(qe(e,"marginLeft"))||e.getBoundingClientRect().left-oe(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+re[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(x.cssHooks[e+t].set=Ye)}),x.fn.extend({css:function(e,t){return B(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Oe(e),i=t.length;a1)}}),x.fn.delay=function(t,n){return t=x.fx&&x.fx.speeds[t]||t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},We=r.createElement("input"),He=r.createElement("select").appendChild(r.createElement("option")),We.type="checkbox",h.checkOn=""!==We.value,h.optSelected=He.selected,(We=r.createElement("input")).value="t",We.type="radio",h.radioValue="t"===We.value;var Ke,et=x.expr.attrHandle;x.fn.extend({attr:function(e,t){return B(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})}}),x.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?x.prop(e,t,n):(1===o&&x.isXMLDoc(e)||(i=x.attrHooks[t.toLowerCase()]||(x.expr.match.bool.test(t)?Ke:void 0)),void 0!==n?null===n?void x.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=x.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),Ke={set:function(e,t,n){return!1===t?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=et[t]||x.find.attr;et[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=et[a],et[a]=i,i=null!=n(e,t,r)?a:null,et[a]=o),i}});var tt=/^(?:input|select|textarea|button)$/i,nt=/^(?:a|area)$/i;function rt(e){return(e.match(M)||[]).join(" ")}function it(e){return e.getAttribute&&e.getAttribute("class")||""}function ot(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(M)||[]}x.fn.extend({prop:function(e,t){return B(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})}}),x.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&x.isXMLDoc(e)||(t=x.propFix[t]||t,i=x.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):tt.test(e.nodeName)||nt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),h.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,l=0;if(m(e))return this.each(function(t){x(this).addClass(e.call(this,t,it(this)))});if((t=ot(e)).length)for(;n=this[l++];)if(i=it(n),r=1===n.nodeType&&" "+rt(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=rt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,l=0;if(m(e))return this.each(function(t){x(this).removeClass(e.call(this,t,it(this)))});if(!arguments.length)return this.attr("class","");if((t=ot(e)).length)for(;n=this[l++];)if(i=it(n),r=1===n.nodeType&&" "+rt(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");i!==(s=rt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):m(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,it(this),t),t)}):this.each(function(){var t,i,o,a;if(r)for(i=0,o=x(this),a=ot(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||((t=it(this))&&Y.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+rt(it(n))+" ").indexOf(t)>-1)return!0;return!1}});var at=/\r/g;x.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=m(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,x(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),(t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})):i?(t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(at,""):null==n?"":n:void 0}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:rt(x.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],l=a?o+1:i.length;for(r=o<0?l:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=x.inArray(x(e).val(),t)>-1}},h.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var st=/^(?:focusinfocus|focusoutblur)$/,lt=function(e){e.stopPropagation()};x.extend(x.event,{trigger:function(t,n,i,o){var a,s,l,c,u,p,f,h,b=[i||r],y=d.call(t,"type")?t.type:t,v=d.call(t,"namespace")?t.namespace.split("."):[];if(s=h=l=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!st.test(y+x.event.triggered)&&(y.indexOf(".")>-1&&(y=(v=y.split(".")).shift(),v.sort()),u=y.indexOf(":")<0&&"on"+y,(t=t[x.expando]?t:new x.Event(y,"object"==typeof t&&t)).isTrigger=o?2:3,t.namespace=v.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[y]||{},o||!f.trigger||!1!==f.trigger.apply(i,n))){if(!o&&!f.noBubble&&!g(i)){for(c=f.delegateType||y,st.test(c+y)||(s=s.parentNode);s;s=s.parentNode)b.push(s),l=s;l===(i.ownerDocument||r)&&b.push(l.defaultView||l.parentWindow||e)}for(a=0;(s=b[a++])&&!t.isPropagationStopped();)h=s,t.type=a>1?c:f.bindType||y,(p=(Y.get(s,"events")||{})[t.type]&&Y.get(s,"handle"))&&p.apply(s,n),(p=u&&s[u])&&p.apply&&X(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=y,o||t.isDefaultPrevented()||f._default&&!1!==f._default.apply(b.pop(),n)||!X(i)||u&&m(i[y])&&!g(i)&&((l=i[u])&&(i[u]=null),x.event.triggered=y,t.isPropagationStopped()&&h.addEventListener(y,lt),i[y](),t.isPropagationStopped()&&h.removeEventListener(y,lt),x.event.triggered=void 0,l&&(i[u]=l)),t.result}},simulate:function(e,t,n){var r=x.extend(new x.Event,n,{type:e,isSimulated:!0});x.event.trigger(r,null,t)}}),x.fn.extend({trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return x.event.trigger(e,t,n,!0)}}),h.focusin||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){x.event.simulate(t,e.target,x.event.fix(e))};x.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Y.access(r,t);i||r.addEventListener(e,n,!0),Y.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Y.access(r,t)-1;i?Y.access(r,t,i):(r.removeEventListener(e,n,!0),Y.remove(r,t))}}});var ct,ut=/\[\]$/,dt=/\r?\n/g,pt=/^(?:submit|button|image|reset|file)$/i,ft=/^(?:input|select|textarea|keygen)/i;function ht(e,t,n,r){var i;if(Array.isArray(t))x.each(t,function(t,i){n||ut.test(e)?r(e,i):ht(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==v(t))r(e,t);else for(i in t)ht(e+"["+i+"]",t[i],n,r)}x.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){i(this.name,this.value)});else for(n in e)ht(n,e[n],t,i);return r.join("&")},x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&ft.test(this.nodeName)&&!pt.test(e)&&(this.checked||!le.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:Array.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(dt,"\r\n")}}):{name:t.name,value:n.replace(dt,"\r\n")}}).get()}}),x.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return m(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=m(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){x(this).replaceWith(this.childNodes)}),this}}),x.expr.pseudos.hidden=function(e){return!x.expr.pseudos.visible(e)},x.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},h.createHTMLDocument=((ct=r.implementation.createHTMLDocument("").body).innerHTML="
      ",2===ct.childNodes.length),x.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=L.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=be([e],t,a),a&&a.length&&x(a).remove(),x.merge([],o.childNodes)));var i,o,a},x.offset={setOffset:function(e,t,n){var r,i,o,a,s,l,c=x.css(e,"position"),u=x(e),d={};"static"===c&&(e.style.position="relative"),s=u.offset(),o=x.css(e,"top"),l=x.css(e,"left"),("absolute"===c||"fixed"===c)&&(o+l).indexOf("auto")>-1?(a=(r=u.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(l)||0),m(t)&&(t=t.call(e,n,x.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):u.css(d)}},x.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){x.offset.setOffset(this,e,t)});var t,n,r=this[0];return r?r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===x.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===x.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=x(e).offset()).top+=x.css(e,"borderTopWidth",!0),i.left+=x.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-x.css(r,"marginTop",!0),left:t.left-i.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===x.css(e,"position");)e=e.offsetParent;return e||ye})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;x.fn[e]=function(r){return B(this,function(e,r,i){var o;if(g(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),x.each(["top","left"],function(e,t){x.cssHooks[t]=Ue(h.pixelPosition,function(e,n){if(n)return n=qe(e,t),Me.test(n)?x(e).position()[t]+"px":n})}),x.each({Height:"height",Width:"width"},function(e,t){x.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){x.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return B(this,function(t,n,i){var o;return g(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?x.css(t,n,s):x.style(t,n,i,s)},t,a?i:void 0,a)}})}),x.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),x.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),x.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=o.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(o.call(arguments)))}).guid=e.guid=e.guid||x.guid++,i},x.holdReady=function(e){e?x.readyWait++:x.ready(!0)},x.isArray=Array.isArray,x.parseJSON=JSON.parse,x.nodeName=A,x.isFunction=m,x.isWindow=g,x.camelCase=V,x.type=v,x.now=Date.now,x.isNumeric=function(e){var t=x.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return x});var mt=e.jQuery,gt=e.$;return x.noConflict=function(t){return e.$===x&&(e.$=gt),t&&e.jQuery===x&&(e.jQuery=mt),x},t||(e.jQuery=e.$=x),x},"object"==typeof module&&"object"==typeof module.exports?module.exports=t0.document?u0(t0,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return u0(e)}:u0(t0),define("deps/jquery",function(){}),define("core/jquery-enhanced",["exports","core/pubsubhub","core/utils","deps/jquery"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0;e.name="core/jquery-enhanced";window.$=$,window.$.fn.renameElement=function(e){var n=[];return this.each(function(){for(var r=$(this.ownerDocument.createElement(e)),i=0,o=this.attributes.length;i""!==e).reduce((e,t)=>e.add(t),new Set)]},window.$.fn.linkTargets=function(){var e=this[0].closest("[data-link-for]"),t=e?e.dataset.linkFor.toLowerCase():"",n=this.getDfnTitles(),r=[];for(const e of n){r.push({for:t,title:e});const n=e.split(".");2===n.length&&r.push({for:n[0],title:n[1]}),r.push({for:"",title:e})}return r},window.$.fn.makeID=function(e="",t="",n=!1){const r=this[0];if(r.id)return r.id;t||(t=(r.title?r.title:r.textContent).trim());var i=n?t:t.toLowerCase();if((i=i.replace(/[\W]+/gim,"-").replace(/^-+/,"").replace(/-+$/,""))?!/\.$/.test(i)&&/^[a-z]/i.test(i)||(i="x"+i):i="generatedID",e&&(i=`${e}-${i}`),r.ownerDocument.getElementById(i)){let e=0,t=i+"-"+e;for(;r.ownerDocument.getElementById(t);)t=i+"-"+e++;i=t}return r.id=i,i},window.$.fn.allTextNodes=function(e){for(var t=[],n={},r=0,i=e.length;r(e.setAttribute("aria-"+t,n),e),e)}l.id="respec-ui-styles",l.textContent=a.default,l.classList.add("removeOnSave"),document.head.appendChild(l);const u=$(""),d=$("");var p,f;const h=[],m=[],g={};(0,n.sub)("start-all",()=>{document.body.insertAdjacentElement("afterbegin",u[0])},{once:!0}),(0,n.sub)("end-all",()=>{document.body.insertAdjacentElement("afterbegin",u[0])},{once:!0});const b=$("");b.click(function(e){e.stopPropagation(),d[0].hidden?(d[0].classList.remove("respec-hidden"),d[0].classList.add("respec-visible")):(d[0].classList.add("respec-hidden"),d[0].classList.remove("respec-visible")),this.setAttribute("aria-expanded",String(d[0].hidden)),d[0].hidden=!d[0].hidden}).appendTo(u),document.documentElement.addEventListener("click",function(){d[0].hidden||(d[0].classList.remove("respec-visible"),d[0].classList.add("respec-hidden"),d[0].hidden=!0)}),d.appendTo(u);const y=new Map([["controls","respec-menu"],["expanded","false"],["haspopup","true"],["label","ReSpec Menu"]]);function v(e,t,n,r){if(t.push(e),g.hasOwnProperty(n))return void g[n].text(t.length);g[n]=$("").appendTo(u).click(function(){this.setAttribute("aria-expanded","true");for(var e=$("
        "),o=0,a=t.length;o
        ").appendTo(e).find("span").text("["+s.name+"] "+s.message).end().find("a").css({fontSize:"1.1em",color:"#999",cursor:"pointer"}).click(function(){var e=$(this),t=e.text(),n=e.parent().find("pre");"⊞"===t?(e.text("⊟"),n.show()):(e.text("⊞"),n.hide())}).end().find("pre").text(s.stack).css({marginLeft:"0",maxWidth:"100%",overflowY:"hidden",overflowX:"scroll"}).hide().end();else{const t=document.createElement("tmp");t.innerHTML=(0,i.markdownToHtml)(s);const n=document.createElement("li");if(t.firstElementChild===t.lastElementChild)for(;t.firstElementChild&&t.firstElementChild.hasChildNodes();)n.appendChild(t.firstElementChild.firstChild);else n.innerHTML=t.innerHTML;e[0].appendChild(n)}}w.freshModal(r,e,this)});const o=new Map([["expanded","false"],["haspopup","true"],["controls","respec-pill-"+n+"-modal"],["label","Document "+r.toLowerCase()]]);c(g[n][0],o)}c(b[0],y);const w=e.ui={show:function(){try{u[0].hidden=!1}catch(e){console.error(e)}},hide:function(){u[0].hidden=!0},enable:function(){b[0].removeAttribute("disabled")},addCommand:function(e,t,n,r){r=r||"";var i=function(){require([t],function(e){e.show()})},a="respec-button-"+e.toLowerCase().replace(/\s+/,"-"),s=$('
      1. ").click(i).appendTo(d);return n&&o.default.add(n,i),s[0].querySelector("button")},error:function(e){v(e,h,"error","Errors")},warning:function(e){v(e,m,"warning","Warnings")},closeModal:function(e){f&&(f[0].classList.remove("respec-show-overlay"),f[0].classList.add("respec-hide-overlay"),f[0].addEventListener("transitionend",()=>{f.remove(),f=null})),e&&e.setAttribute("aria-expanded","false"),p&&(p.remove(),p=null)},freshModal:function(e,t,n){p&&p.remove(),f&&f.remove(),f=$("
        ");const r=n.id+"-modal",i=r+"-heading";(p=$("")).find("h3").text(e),p.find("h3")[0].id=i;const o=new Map([["labelledby",i]]);c(p[0],o),p.find(".inside").append(t),$(document.body).append(f).append(p),f.click(()=>{this.closeModal(n)}),f[0].classList.toggle("respec-show-overlay"),p[0].hidden=!1}};o.default.add("Esc",function(){w.closeModal()}),o.default.add("Ctrl+Alt+Shift+E",function(){g.error&&g.error.click()}),o.default.add("Ctrl+Alt+Shift+W",function(){g.warning&&g.warning.click()}),window.respecUI=w,(0,n.sub)("error",function(e){w.error(e)}),(0,n.sub)("warn",function(e){w.warning(e)})}),define("core/l10n",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.run=function(e){e.l10n=i[o]||i.en};var t=Object.assign||function(e){for(var t=1;te.add(t),this.rules)}async lint(e,i=window.document){const a=[...r.get(this).rules].map(r=>(async function(e){(await e).map(async e=>{const t=await e,r=n({},o,t),{description:i,help:a,howToFix:s,name:l,occurrences:c,offendingElements:u}=r,d=`${i} ${s} ${a} ("${l}" x ${c})`;return u.forEach(e=>{e.classList.add("respec-offending-element")}),console.warn(`Linter (${l}):`,i,...u),d}).forEach(async e=>{(0,t.pub)("warn",await e)})})(r.lint(e,i)));await a}};e.default=i;const o={name:"unknown",description:"",occurrences:0,howToFix:"",offendingElements:[],help:""}}),define("core/LinterRule",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});const t=new WeakMap;e.default=class{constructor(e,n){t.set(this,{name:e,lintingFunction:n})}get name(){return t.get(this).name}lint(e={lint:{[this.name]:!1}},n=document){return r=e,i=this.name,!1!==r.hasOwnProperty("lint")&&!1!==r.lint&&r.lint[i]?[].concat(t.get(this).lintingFunction(e,n)):[];var r,i}}}),define("core/linter-rules/no-headingless-sections",["exports","core/LinterRule","../l10n"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.rule=void 0;var r,i=(r=t)&&r.__esModule?r:{default:r};var o=Object.assign||function(e){for(var t=1;t`.",help:"See developer console."},nl:{description:"Alle secties moeten beginnen met een `h2-6` element.",howToFix:"Voeg een `h2-6` toe aan de conflicterende sectie of gebruik een `
        `.",help:"Zie de developer console."}},l=n.lang in s?n.lang:"en",c=({firstElementChild:e})=>null===e||!1===/^h[1-6]$/.test(e.localName);e.rule=new i.default(a,function(e,t){const n=Array.from(t.querySelectorAll("section")).filter(c);return n.length?o({name:a,offendingElements:n,occurrences:n.length},s[l]):[]})}),define("core/linter-rules/no-http-props",["exports","core/l10n","core/LinterRule"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.rule=void 0;var r,i=(r=n)&&r.__esModule?r:{default:r};var o=Object.assign||function(e){for(var t=1;te.endsWith("URI")||"prevED"===e).filter(n=>new URL(e[n],t.location.href).href.startsWith("http://")).reduce((e,t)=>e.concat(t),[]);if(!n.length)return[];const r=o({name:a,occurrences:n.length},s[l]);return r.howToFix+=n.map(e=>"`"+e+"`").join(", ")+".",r})}),define("w3c/l10n",["exports","core/l10n"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0;e.name="w3c/l10n";const n={en:{status_at_publication:"This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/."},ko:{status_at_publication:"This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/."},zh:{status_at_publication:"本章节描述了本文档的发布状态。其它更新版本可能会覆盖本文档。W3C的文档列 表和最新版本可通过W3C技术报告索引访问。"},ja:{status_at_publication:"この節には、公開時点でのこの文書の位置づけが記されている。他の文書によって置き換えられる可能性がある。現時点でのW3Cの発行文書とこのテクニカルレポートの最新版は、下記から参照できる。 W3C technical reports index (https://www.w3.org/TR/)"},nl:{status_at_publication:"This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/."}};Object.keys(n).reduce((e,t)=>(Object.assign(e[t],n[t]),e),t.l10n)}),define("w3c/linter-rules/privsec-section",["exports","core/LinterRule","../l10n"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.rule=void 0;var r,i=(r=t)&&r.__esModule?r:{default:r};var o=Object.assign||function(e){for(var t=1;t{const t=/(privacy|security)/im.test(e),n=/(considerations)/im.test(e);return t&&n||t}))&&n.push(o({name:a,occurrences:1},s[l])),n})}),define("core/linter-rules/check-punctuation",["exports","core/l10n","core/LinterRule"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.rule=void 0;var r,i=(r=n)&&r.__esModule?r:{default:r};var o=Object.assign||function(e){for(var t=1;t`"${e}"`).join(", ")}.`}},c=t.lang in l?t.lang:"en";e.rule=new i.default(a,function(e,t){const n=new RegExp(`[${s.join("")}\\]]$|^ *$`,"m"),r=[...t.querySelectorAll("p:not(#back-to-top)")].filter(e=>!n.test(e.textContent.trim()));return r.length?o({name:a,offendingElements:r,occurrences:r.length},l[c]):[]})}),define("core/linter-rules/local-refs-exist",["exports","core/l10n","core/LinterRule"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.rule=void 0;var r,i=(r=n)&&r.__esModule?r:{default:r};var o=Object.assign||function(e){for(var t=1;t p:first-child {\n margin-top: 0;\n}\n\n.section dd > p:last-child {\n margin-bottom: 0;\n}\n\n.section dd {\n margin-bottom: 1em;\n}\n\n.section dl.attrs dd,\n.section dl.eldef dd {\n margin-bottom: 0;\n}\n\n#issue-summary > ul,\n.respec-dfn-list {\n column-count: 2;\n}\n\n#issue-summary li,\n.respec-dfn-list li {\n list-style: none;\n}\n\ndetails.respec-tests-details {\n margin-left: 1em;\n display: inline-block;\n vertical-align: top;\n}\n\ndetails.respec-tests-details > * {\n padding-right: 2em;\n}\n\ndetails.respec-tests-details[open] {\n z-index: 999999;\n position: absolute;\n border: thin solid #cad3e2;\n border-radius: .3em;\n background-color: white;\n padding-bottom: .5em;\n}\n\ndetails.respec-tests-details[open] > summary {\n border-bottom: thin solid #cad3e2;\n padding-left: 1em;\n margin-bottom: 1em;\n line-height: 2em;\n}\n\ndetails.respec-tests-details > ul {\n width: 100%;\n margin-top: -0.3em;\n}\n\ndetails.respec-tests-details > li {\n padding-left: 1em;\n}\n\n@media print {\n .removeOnSave {\n display: none;\n }\n}\n'}),define("core/style",["exports","deps/text!core/css/respec2.css"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,t,n){e.noReSpecCSS&&i.remove();n()};var n,r=(n=t)&&n.__esModule?n:{default:n};e.name="core/style";const i=document.createElement("style");i.id="respec-mainstyle",i.textContent=r.default,document.head.appendChild(i)}),define("w3c/style",["exports","core/utils","core/pubsubhub"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,r,i){if(!e.specStatus){const t="`respecConfig.specStatus` missing. Defaulting to 'base'.";e.specStatus="base",(0,n.pub)("warn",t)}let o="W3C-";switch(e.specStatus.toUpperCase()){case"CG-DRAFT":case"CG-FINAL":case"BG-DRAFT":case"BG-FINAL":o=e.specStatus.toLowerCase();break;case"FPWD":case"LC":case"WD-NOTE":case"LC-NOTE":o+="WD";break;case"WG-NOTE":case"FPWD-NOTE":o+="WG-NOTE.css";break;case"UNOFFICIAL":o+="UD";break;case"FINDING":case"FINDING-DRAFT":case"BASE":o="base.css";break;default:o+=e.specStatus}const a=function(e){let t="";switch(e){case null:case!0:t="2016";break;default:e&&!isNaN(e)&&(t=e.toString().trim())}return t}(e.useExperimentalStyles||"2016");a&&!e.noToc&&(0,n.sub)("end-all",function(){!function(e,t){const n=e.createElement("script");n.addEventListener("load",function(){window.location.hash&&(window.location=window.location)},{once:!0}),n.src=`https://www.w3.org/scripts/TR/${t}/fixup.js`,e.body.appendChild(n)}(r,a)},{once:!0});const s=`https://www.w3.org/StyleSheets/TR/${a?a+"/":""}${o}`;(0,t.linkCSS)(r,s),i()};e.name="w3c/style";const r=[{hint:"preconnect",href:"https://www.w3.org"},{hint:"preload",href:"https://www.w3.org/scripts/TR/2016/fixup.js",as:"script"},{hint:"preload",href:"https://www.w3.org/StyleSheets/TR/2016/base.css",as:"style"},{hint:"preload",href:"https://www.w3.org/StyleSheets/TR/2016/logos/W3C",as:"image"}].map(t.createResourceHint).reduce(function(e,t){return e.appendChild(t),e},document.createDocumentFragment());r.appendChild(function(){const e=document.createElement("link");return e.rel="stylesheet",e.href="https://www.w3.org/StyleSheets/TR/2016/base.css",e.classList.add("removeOnSave"),e}()),document.head.querySelector("meta[name=viewport]")||r.insertBefore(function(){const e=document.createElement("meta");return e.name="viewport",e.content=(0,t.toKeyValuePairs)({width:"device-width","initial-scale":"1","shrink-to-fit":"no"}).replace(/\"/g,""),e}(),r.firstChild),document.head.insertBefore(r,document.head.firstChild)}),define("core/github",["exports","core/l10n","core/pubsubhub"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.fetchAll=o,e.fetchIndex=function(e,t){return o(e.replace(/\{[^}]+\}/,""),t)},e.run=async function(e){if(!e.hasOwnProperty("github")||!e.github)return;if("object"==typeof e.github&&!e.github.hasOwnProperty("repoURL")){const e="Config option `[github](https://github.com/w3c/respec/wiki/github)` is missing property `repoURL`.";return void(0,n.pub)("error",e)}let t;try{t=new URL(e.github.repoURL||e.github,"https://github.com")}catch(e){return void(0,n.pub)("error",`\`respecConf.github\` is not a valid URL? (${t})`)}if("https://github.com"!==t.origin){const e=`\`respecConf.github\` must be HTTPS and pointing to GitHub. (${t})`;return void(0,n.pub)("error",e)}const[r,o]=t.pathname.split("/").filter(e=>e);if(!r||!o){const e="`respecConf.github` URL needs a path with, for example, w3c/my-spec";return void(0,n.pub)("error",e)}const a=e.github.branch||"gh-pages",s={edDraftURI:`https://${r.toLowerCase()}.github.io/${o}/`,githubToken:void 0,githubUser:void 0,githubAPI:`https://api.github.com/repos/${r}/${o}`,issueBase:new URL("./issues/",t).href,otherLinks:[],pullBase:new URL("./pulls/",t).href,shortName:o},l={key:e.l10n.participate,data:[{value:`GitHub ${r}/${o}`,href:t},{value:e.l10n.file_a_bug,href:s.issueBase},{value:e.l10n.commit_history,href:new URL(`./commits/${a}`,t.href).href},{value:e.l10n.pull_requests,href:s.pullBase}]},c={branch:a,repoURL:t.href},u=i({},s,e,{github:c});Object.assign(e,u),e.otherLinks.unshift(l)};var r;(r=t)&&r.__esModule;var i=Object.assign||function(e){for(var t=1;t]+)>\s*;\s*rel="next"/))&&u[1]||null);var c,u;return l?o(l,t,n):n}}),define("core/data-include",["exports","core/pubsubhub","core/utils"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,r,i){const o=Array.from(r.querySelectorAll("[data-include]")).map(async e=>{const r=e.dataset.include;if(!r)return;const i="include-"+String(Math.random()).substr(2);e.dataset.includeId=i;try{const o=await fetch(r),a=await o.text();!function(e,t,r){const i=document.querySelector(`[data-include-id=${t}]`),o=i.ownerDocument,a=(0,n.runTransforms)(e,i.dataset.oninclude,r),s="string"==typeof i.dataset.includeReplace;let l;switch(i.dataset.includeFormat){case"text":s?(l=o.createTextNode(a),i.parentNode.replaceChild(l,i)):i.textContent=a;break;default:if(i.innerHTML=a,s){for(l=o.createDocumentFragment();i.hasChildNodes();)l.append(i.removeChild(i.firstChild));i.parentNode.replaceChild(l,i)}}o.contains(i)&&(c=i,["data-include","data-include-format","data-include-replace","data-include-id","oninclude"].forEach(e=>c.removeAttribute(e)));var c}(a,i,r)}catch(n){const i=`\`data-include\` failed: \`${r}\` (${n.message}). See console for details.`;console.error("data-include failed for element: ",e,n),(0,t.pub)("error",i)}});Promise.all(o).then(i)};e.name="core/data-include"}),define("core/markdown",["exports","core/utils"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,t,n){const r=!!t.querySelector("[data-format=markdown]:not(body)"),s="markdown"===e.format;if(!s&&!r)return n();if(!s)return o(t.body).map(e=>{const t=i(e,e.ownerDocument);return{structuredInternals:t,elem:e}}).forEach(({elem:e,structuredInternals:t})=>{if(e.setAttribute("aria-busy","true"),"section"===t.firstElementChild.localName&&"section"===e.localName){const n=t.firstElementChild;for(n.remove();n.hasChildNodes();)e.appendChild(n.firstChild)}else e.innerHTML="";e.appendChild(t),e.setAttribute("aria-busy","false")}),n();const l=t.getElementById("respec-ui");l.remove();const c=t.createElement("html"),u=t.createElement("body");u.innerHTML=t.body.innerHTML,c.appendChild(u),a(c);const d=u.innerHTML.replace(/

        \s*<\/p>/gm,"");u.innerHTML=d,p=u.querySelectorAll(".nolinks a[href]"),Array.from(p).forEach(e=>{const t=e.ownerDocument.createTextNode(e.textContent);e.parentElement.replaceChild(t,e)});var p;var f=i(u,t);u.appendChild(f),u.insertAdjacentElement("afterbegin",l),t.body.parentNode.replaceChild(u,t.body),n()};e.name="core/markdown";function n(e){return n=>{const r=Array.from(n.querySelectorAll(e));return r.reverse().forEach(e=>{e.innerHTML=(0,t.markdownToHtml)(e.innerHTML)}),r}}class r{constructor(e){this.doc=e,this.root=e.createDocumentFragment(),this.stack=[this.root],this.current=this.root}findPosition(e){return parseInt(e.tagName.charAt(1),10)}findParent(e){let t;for(;e>0;)if(e--,t=this.stack[e])return t}findHeader({firstChild:e}){for(;e;){if(/H[1-6]/.test(e.tagName))return e;e=e.nextSibling}return null}addHeader(e){const t=this.doc.createElement("section"),n=this.findPosition(e);t.appendChild(e),this.findParent(n).appendChild(t),this.stack[n]=t,this.stack.length=n+1,this.current=t}addSection(e,t){const n=this.findHeader(e),r=n?this.findPosition(n):1,i=this.findParent(r);n&&e.removeChild(n),e.appendChild(t(e)),n&&e.insertBefore(n,e.firstChild),i.appendChild(e),this.current=i}addElement(e){this.current.appendChild(e)}}function i(e,t){return function e(n){const i=new r(t);for(;n.firstChild;){const t=n.firstChild;if(t.nodeType===Node.ELEMENT_NODE)switch(t.localName){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":i.addHeader(t);break;case"section":i.addSection(t,e);break;default:i.addElement(t)}else n.removeChild(t)}return i.root}(e)}const o=n("[data-format='markdown']:not(body)"),a=n("[data-format=markdown]:not(body), section, div, address, article, aside, figure, header, main, body")}),Dha=this,Eha=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){var r=n(1).default,i=n(2).default;t.__esModule=!0;var o=r(n(3)),a=i(n(20)),s=i(n(5)),l=r(n(4)),c=r(n(21)),u=i(n(33));function d(){var e=new o.HandlebarsEnvironment;return l.extend(e,o),e.SafeString=a.default,e.Exception=s.default,e.Utils=l,e.escapeExpression=l.escapeExpression,e.VM=c,e.template=function(t){return c.template(t,e)},e}var p=d();p.create=d,u.default(p),p.default=p,t.default=p,e.exports=t.default},function(e,t){t.default=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},t.__esModule=!0},function(e,t){t.default=function(e){return e&&e.__esModule?e:{default:e}},t.__esModule=!0},function(e,t,n){var r=n(2).default;t.__esModule=!0,t.HandlebarsEnvironment=u;var i=n(4),o=r(n(5)),a=n(9),s=n(17),l=r(n(19));t.VERSION="4.0.11";t.COMPILER_REVISION=7;t.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};var c="[object Object]";function u(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},a.registerDefaultHelpers(this),s.registerDefaultDecorators(this)}u.prototype={constructor:u,logger:l.default,log:l.default.log,registerHelper:function(e,t){if(i.toString.call(e)===c){if(t)throw new o.default("Arg not supported with multiple helpers");i.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(i.toString.call(e)===c)i.extend(this.partials,e);else{if(void 0===t)throw new o.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if(i.toString.call(e)===c){if(t)throw new o.default("Arg not supported with multiple decorators");i.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]}};var d=l.default.log;t.log=d,t.createFrame=i.createFrame,t.logger=l.default},function(e,t){t.__esModule=!0,t.extend=a,t.indexOf=function(e,t){for(var n=0,r=e.length;n":">",'"':""","'":"'","`":"`","=":"="},r=/[&<>"'`=]/g,i=/[&<>"'`=]/;function o(e){return n[e]}function a(e){for(var t=1;t0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):i(this);if(n.data&&n.ids){var a=r.createFrame(n.data);a.contextPath=r.appendContextPath(n.data.contextPath,n.name),n={data:a}}return o(t,n)})},e.exports=t.default},function(e,t,n){var r=n(2).default;t.__esModule=!0;var i=n(4),o=r(n(5));t.default=function(e){e.registerHelper("each",function(e,t){if(!t)throw new o.default("Must pass iterator to #each");var n=t.fn,r=t.inverse,a=0,s="",l=void 0,c=void 0;function u(t,r,o){l&&(l.key=t,l.index=r,l.first=0===r,l.last=!!o,c&&(l.contextPath=c+t)),s+=n(e[t],{data:l,blockParams:i.blockParams([e[t],t],[c+t,null])})}if(t.data&&t.ids&&(c=i.appendContextPath(t.data.contextPath,t.ids[0])+"."),i.isFunction(e)&&(e=e.call(this)),t.data&&(l=i.createFrame(t.data)),e&&"object"==typeof e)if(i.isArray(e))for(var d=e.length;a=0?t:parseInt(e,10)}return e},log:function(e){if(e=i.lookupLevel(e),"undefined"!=typeof console&&i.lookupLevel(i.level)<=e){var t=i.methodMap[e];console[t]||(t="log");for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o *:hover > span.permalink { visibility: visible; }\n"},3:function(e,t,n,r,i){return" float: right;\n"},5:function(e,t,n,r,i){return" visibility: hidden;\n"},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a=null!=t?t:e.nullContext||{};return"/* --- PERMALINKS --- */\n"+(null!=(o=n.if.call(a,null!=t?t.permalinkHide:t,{name:"if",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+"\n.permalink {\n width: 1px;\n height: 1px;\n overflow: visible;\n font-size: 10pt;\n font-style: normal;\n vertical-align: middle;\n margin-left: 4px;\n"+(null!=(o=n.if.call(a,null!=t?t.permalinkEdge:t,{name:"if",hash:{},fn:e.program(3,i,0),inverse:e.noop,data:i}))?o:"")+(null!=(o=n.if.call(a,null!=t?t.permalinkHide:t,{name:"if",hash:{},fn:e.program(5,i,0),inverse:e.noop,data:i}))?o:"")+"}\n\n.permalink a, .permalink a:link, .permalink a:visited, .permalink a:hover, .permalink a:focus, .permalink a:active {\n background:transparent !important;\n text-decoration:none;\n font-weight: bold;\n color:#666 !important;\n}\n\n.permalink abbr {\n border:0;\n}\n"},useData:!0}),n["attribute.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression((n.escapeAttributeName||t&&t.escapeAttributeName||n.helperMissing).call(null!=t?t:e.nullContext||{},null!=(o=null!=t?t.obj:t)?o.name:o,{name:"escapeAttributeName",hash:{},data:i}))},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.lambda,l=e.escapeExpression,c=null!=t?t:e.nullContext||{},u=n.helperMissing;return""+l((n.extAttr||t&&t.extAttr||u).call(c,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+l("function"==typeof(a=null!=(a=n.qualifiers||(null!=t?t.qualifiers:t))?a:u)?a.call(c,{name:"qualifiers",hash:{},data:i}):a)+"attribute "+l((n.idlType||t&&t.idlType||u).call(c,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+" "+l((n.pads||t&&t.pads||u).call(c,null!=t?t.pad:t,{name:"pads",hash:{},data:i}))+""+(null!=(o=(n.tryLink||t&&t.tryLink||u).call(c,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+";\n"},useData:!0}),n["callback.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.lambda,l=e.escapeExpression,c=null!=t?t:e.nullContext||{},u=n.helperMissing;return""+l((n.extAttr||t&&t.extAttr||u).call(c,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+"callback "+(null!=(o=(n.tryLink||t&&t.tryLink||u).call(c,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+" = "+l((n.idlType||t&&t.idlType||u).call(c,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+" ("+(null!=(o="function"==typeof(a=null!=(a=n.children||(null!=t?t.children:t))?a:u)?a.call(c,{name:"children",hash:{},data:i}):a)?o:"")+");"},useData:!0}),n["const.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.lambda,l=e.escapeExpression,c=null!=t?t:e.nullContext||{},u=n.helperMissing;return""+l((n.extAttr||t&&t.extAttr||u).call(c,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+"const "+l((n.idlType||t&&t.idlType||u).call(c,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+""+l("function"==typeof(a=null!=(a=n.nullable||(null!=t?t.nullable:t))?a:u)?a.call(c,{name:"nullable",hash:{},data:i}):a)+" "+l((n.pads||t&&t.pads||u).call(c,null!=t?t.pad:t,{name:"pads",hash:{},data:i}))+""+(null!=(o=(n.tryLink||t&&t.tryLink||u).call(c,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+" = "+l((n.stringifyIdlConst||t&&t.stringifyIdlConst||u).call(c,null!=(o=null!=t?t.obj:t)?o.value:o,{name:"stringifyIdlConst",hash:{},data:i}))+";\n"},useData:!0}),n["dict-member.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))},3:function(e,t,n,r,i){var o;return" = "+e.escapeExpression((n.stringifyIdlConst||t&&t.stringifyIdlConst||n.helperMissing).call(null!=t?t:e.nullContext||{},null!=(o=null!=t?t.obj:t)?o.default:o,{name:"stringifyIdlConst",hash:{},data:i}))+""},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.lambda,l=e.escapeExpression,c=null!=t?t:e.nullContext||{},u=n.helperMissing;return""+l((n.extAttr||t&&t.extAttr||u).call(c,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+l("function"==typeof(a=null!=(a=n.qualifiers||(null!=t?t.qualifiers:t))?a:u)?a.call(c,{name:"qualifiers",hash:{},data:i}):a)+""+l((n.idlType||t&&t.idlType||u).call(c,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+" "+l((n.pads||t&&t.pads||u).call(c,null!=t?t.typePad:t,{name:"pads",hash:{},data:i}))+""+(null!=(o=(n.tryLink||t&&t.tryLink||u).call(c,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+""+(null!=(o=n.if.call(c,null!=(o=null!=t?t.obj:t)?o.default:o,{name:"if",hash:{},fn:e.program(3,i,0),inverse:e.noop,data:i}))?o:"")+";\n"},useData:!0}),n["dictionary.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))},3:function(e,t,n,r,i){var o;return" : "+e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.inheritance:o,t))+""},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.lambda,l=e.escapeExpression,c=null!=t?t:e.nullContext||{},u=n.helperMissing;return""+l((n.extAttr||t&&t.extAttr||u).call(c,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+l("function"==typeof(a=null!=(a=n.partial||(null!=t?t.partial:t))?a:u)?a.call(c,{name:"partial",hash:{},data:i}):a)+"dictionary "+(null!=(o=(n.tryLink||t&&t.tryLink||u).call(c,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+""+(null!=(o=n.if.call(c,null!=(o=null!=t?t.obj:t)?o.inheritance:o,{name:"if",hash:{},fn:e.program(3,i,0),inverse:e.noop,data:i}))?o:"")+" {\n"+(null!=(o="function"==typeof(a=null!=(a=n.children||(null!=t?t.children:t))?a:u)?a.call(c,{name:"children",hash:{},data:i}):a)?o:"")+"};"},useData:!0}),n["enum-item.html"]=t({1:function(e,t,n,r,i){return","},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=null!=t?t:e.nullContext||{},l=n.helperMissing,c=e.escapeExpression,u="function";return c((n.idn||t&&t.idn||l).call(s,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+'"'+c(typeof(a=null!=(a=n.name||(null!=t?t.name:t))?a:l)===u?a.call(s,{name:"name",hash:{},data:i}):a)+'"'+(null!=(o=n.if.call(s,null!=t?t.needsComma:t,{name:"if",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+"\n"},useData:!0}),n["enum.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.lambda,l=e.escapeExpression,c=null!=t?t:e.nullContext||{},u=n.helperMissing;return""+l((n.extAttr||t&&t.extAttr||u).call(c,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+"enum "+(null!=(o=(n.tryLink||t&&t.tryLink||u).call(c,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+" {\n"+(null!=(o="function"==typeof(a=null!=(a=n.children||(null!=t?t.children:t))?a:u)?a.call(c,{name:"children",hash:{},data:i}):a)?o:"")+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+"};"},useData:!0}),n["extended-attribute.html"]=t({1:function(e,t,n,r,i){var o,a,s=null!=t?t:e.nullContext||{},l=n.helperMissing,c=e.escapeExpression;return"'+c("function"==typeof(a=null!=(a=n.name||(null!=t?t.name:t))?a:l)?a.call(s,{name:"name",hash:{},data:i}):a)+""+(null!=(o=n.if.call(s,null!=t?t.rhs:t,{name:"if",hash:{},fn:e.program(2,i,0),inverse:e.noop,data:i}))?o:"")+(null!=(o=(n.jsIf||t&&t.jsIf||l).call(s,null!=t?t.arguments:t,{name:"jsIf",hash:{},fn:e.program(5,i,0),inverse:e.noop,data:i}))?o:"")+""},2:function(e,t,n,r,i){var o;return'='+(null!=(o=(n.extAttrRhs||t&&t.extAttrRhs||n.helperMissing).call(null!=t?t:e.nullContext||{},null!=t?t.rhs:t,{name:"extAttrRhs",hash:{},fn:e.program(3,i,0),inverse:e.noop,data:i}))?o:"")+""},3:function(e,t,n,r,i){return e.escapeExpression(e.lambda(t,t))},5:function(e,t,n,r,i){var o;return"("+(null!=(o=(n.joinNonWhitespace||t&&t.joinNonWhitespace||n.helperMissing).call(null!=t?t:e.nullContext||{},null!=t?t.arguments:t,", ",{name:"joinNonWhitespace",hash:{},fn:e.program(6,i,0),inverse:e.noop,data:i}))?o:"")+")"},6:function(e,t,n,r,i){return e.escapeExpression((n.param||t&&t.param||n.helperMissing).call(null!=t?t:e.nullContext||{},t,{name:"param",hash:{},data:i}))},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=null!=t?t:e.nullContext||{},l=n.helperMissing,c=e.escapeExpression;return c((n.idn||t&&t.idn||l).call(s,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+"["+(null!=(o=(n.join||t&&t.join||l).call(s,null!=t?t.extAttrs:t,null!=t?t.sep:t,{name:"join",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+"]"+c("function"==typeof(a=null!=(a=n.end||(null!=t?t.end:t))?a:l)?a.call(s,{name:"end",hash:{},data:i}):a)},useData:!0}),n["field.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a=e.lambda,s=e.escapeExpression,l=null!=t?t:e.nullContext||{},c=n.helperMissing;return""+s((n.extAttr||t&&t.extAttr||c).call(l,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+s((n.idn||t&&t.idn||c).call(l,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+""+s((n.idlType||t&&t.idlType||c).call(l,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+" "+s((n.pads||t&&t.pads||c).call(l,null!=t?t.pad:t,{name:"pads",hash:{},data:i}))+""+(null!=(o=(n.tryLink||t&&t.tryLink||c).call(l,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+";\n"},useData:!0}),n["implements.html"]=t({compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a=null!=t?t:e.nullContext||{},s=n.helperMissing,l=e.escapeExpression,c=e.lambda;return""+l((n.extAttr||t&&t.extAttr||s).call(a,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+l((n.idn||t&&t.idn||s).call(a,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+""+l(c(null!=(o=null!=t?t.obj:t)?o.target:o,t))+" implements "+l(c(null!=(o=null!=t?t.obj:t)?o.implements:o,t))+";"},useData:!0}),n["includes.html"]=t({compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a=null!=t?t:e.nullContext||{},s=n.helperMissing,l=e.escapeExpression,c=e.lambda;return""+l((n.extAttr||t&&t.extAttr||s).call(a,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+l((n.idn||t&&t.idn||s).call(a,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+""+l(c(null!=(o=null!=t?t.obj:t)?o.target:o,t))+" includes "+l(c(null!=(o=null!=t?t.obj:t)?o.includes:o,t))+";"},useData:!0}),n["interface.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))},3:function(e,t,n,r,i){var o;return" : "+e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.inheritance:o,t))+""},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.lambda,l=e.escapeExpression,c=null!=t?t:e.nullContext||{},u=n.helperMissing,d="function";return""+l((n.extAttr||t&&t.extAttr||u).call(c,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+l(typeof(a=null!=(a=n.partial||(null!=t?t.partial:t))?a:u)===d?a.call(c,{name:"partial",hash:{},data:i}):a)+l(typeof(a=null!=(a=n.callback||(null!=t?t.callback:t))?a:u)===d?a.call(c,{name:"callback",hash:{},data:i}):a)+"interface "+l(typeof(a=null!=(a=n.mixin||(null!=t?t.mixin:t))?a:u)===d?a.call(c,{name:"mixin",hash:{},data:i}):a)+""+(null!=(o=(n.tryLink||t&&t.tryLink||u).call(c,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+""+(null!=(o=n.if.call(c,null!=(o=null!=t?t.obj:t)?o.inheritance:o,{name:"if",hash:{},fn:e.program(3,i,0),inverse:e.noop,data:i}))?o:"")+" {\n"+(null!=(o=typeof(a=null!=(a=n.children||(null!=t?t.children:t))?a:u)===d?a.call(c,{name:"children",hash:{},data:i}):a)?o:"")+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+"};"},useData:!0}),n["iterable.html"]=t({1:function(e,t,n,r,i){return"iterable"},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.escapeExpression,l=null!=t?t:e.nullContext||{},c=n.helperMissing;return""+s((n.extAttr||t&&t.extAttr||c).call(l,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+s((n.idn||t&&t.idn||c).call(l,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+s("function"==typeof(a=null!=(a=n.qualifiers||(null!=t?t.qualifiers:t))?a:c)?a.call(l,{name:"qualifiers",hash:{},data:i}):a)+(null!=(o=(n.tryLink||t&&t.tryLink||c).call(l,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+"<"+s((n.idlType||t&&t.idlType||c).call(l,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+">;\n"},useData:!0}),n["line-comment.html"]=t({compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a=null!=t?t:e.nullContext||{},s=n.helperMissing,l=e.escapeExpression;return""+l((n.idn||t&&t.idn||s).call(a,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+"//"+l("function"==typeof(o=null!=(o=n.comment||(null!=t?t.comment:t))?o:s)?o.call(a,{name:"comment",hash:{},data:i}):o)+"\n"},useData:!0}),n["maplike.html"]=t({1:function(e,t,n,r,i){return"maplike"},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.escapeExpression,l=null!=t?t:e.nullContext||{},c=n.helperMissing;return""+s((n.extAttr||t&&t.extAttr||c).call(l,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttr",hash:{},data:i}))+s((n.idn||t&&t.idn||c).call(l,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+s("function"==typeof(a=null!=(a=n.qualifiers||(null!=t?t.qualifiers:t))?a:c)?a.call(l,{name:"qualifiers",hash:{},data:i}):a)+(null!=(o=(n.tryLink||t&&t.tryLink||c).call(l,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+"<"+s((n.idlType||t&&t.idlType||c).call(l,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+">;\n"},useData:!0}),n["method.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=e.lambda,l=e.escapeExpression,c=null!=t?t:e.nullContext||{},u=n.helperMissing;return""+l((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+l((n.extAttrInline||t&&t.extAttrInline||u).call(c,null!=t?t.obj:t,null!=t?t.indent:t,{name:"extAttrInline",hash:{},data:i}))+l("function"==typeof(a=null!=(a=n.special||(null!=t?t.special:t))?a:u)?a.call(c,{name:"special",hash:{},data:i}):a)+""+l((n.idlType||t&&t.idlType||u).call(c,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+" "+l((n.pads||t&&t.pads||u).call(c,null!=t?t.pad:t,{name:"pads",hash:{},data:i}))+""+(null!=(o=(n.tryLink||t&&t.tryLink||u).call(c,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+"("+(null!=(o="function"==typeof(a=null!=(a=n.children||(null!=t?t.children:t))?a:u)?a.call(c,{name:"children",hash:{},data:i}):a)?o:"")+");\n"},useData:!0}),n["multiline-comment.html"]=t({1:function(e,t,n,r,i,o,a){var s=e.escapeExpression;return s((n.idn||t&&t.idn||n.helperMissing).call(null!=t?t:e.nullContext||{},null!=a[1]?a[1].indent:a[1],{name:"idn",hash:{},data:i}))+s(e.lambda(t,t))+"\n"},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i,o,a){var s,l,c=null!=t?t:e.nullContext||{},u=n.helperMissing,d=e.escapeExpression;return""+d((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+"/*"+d("function"==typeof(l=null!=(l=n.firstLine||(null!=t?t.firstLine:t))?l:u)?l.call(c,{name:"firstLine",hash:{},data:i}):l)+"\n"+(null!=(s=n.each.call(c,null!=t?t.innerLine:t,{name:"each",hash:{},fn:e.program(1,i,0,o,a),inverse:e.noop,data:i}))?s:"")+d((n.idn||t&&t.idn||u).call(c,null!=t?t.indent:t,{name:"idn",hash:{},data:i}))+d("function"==typeof(l=null!=(l=n.lastLine||(null!=t?t.lastLine:t))?l:u)?l.call(c,{name:"lastLine",hash:{},data:i}):l)+"*/\n"},useData:!0,useDepths:!0}),n["param.html"]=t({1:function(e,t,n,r,i){var o;return" = "+e.escapeExpression((n.stringifyIdlConst||t&&t.stringifyIdlConst||n.helperMissing).call(null!=t?t:e.nullContext||{},null!=(o=null!=t?t.obj:t)?o.default:o,{name:"stringifyIdlConst",hash:{},data:i}))+""},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a,s=null!=t?t:e.nullContext||{},l=n.helperMissing,c=e.escapeExpression;return""+c((n.extAttrInline||t&&t.extAttrInline||l).call(s,null!=t?t.obj:t,{name:"extAttrInline",hash:{},data:i}))+c("function"==typeof(a=null!=(a=n.optional||(null!=t?t.optional:t))?a:l)?a.call(s,{name:"optional",hash:{},data:i}):a)+""+c((n.idlType||t&&t.idlType||l).call(s,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+c("function"==typeof(a=null!=(a=n.variadic||(null!=t?t.variadic:t))?a:l)?a.call(s,{name:"variadic",hash:{},data:i}):a)+" "+c(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))+""+(null!=(o=n.if.call(s,null!=(o=null!=t?t.obj:t)?o.default:o,{name:"if",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+""},useData:!0}),n["typedef.html"]=t({1:function(e,t,n,r,i){var o;return e.escapeExpression(e.lambda(null!=(o=null!=t?t.obj:t)?o.name:o,t))},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,i){var o,a=e.lambda,s=e.escapeExpression,l=null!=t?t:e.nullContext||{},c=n.helperMissing;return"typedef "+s((n.idlType||t&&t.idlType||c).call(l,null!=t?t.obj:t,{name:"idlType",hash:{},data:i}))+" "+(null!=(o=(n.tryLink||t&&t.tryLink||c).call(l,null!=t?t.obj:t,{name:"tryLink",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+";"},useData:!0}),n}),define("w3c/templates/cgbg-sotd",["exports","deps/hyperhtml"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=(e=>{const t=hyperHTML;return t`

        ${e.l10n.sotd}

        -${e.isPreview?t` -
        - This is a preview -

        - Do not attempt to implement this version of the specification. Do not reference this - version as authoritative in any way. - ${e.edDraftURI?t` - Instead, see ${e.edDraftURI} for the Editor's draft. - `:""} -

        -
        -`:""} -

        - This specification was published by the ${e.wg}. - It is not a W3C Standard nor is it on the W3C Standards Track. - ${e.isCGFinal?t` - Please note that under the - W3C Community Final Specification Agreement (FSA) - other conditions apply. - `:t` - Please note that under the - W3C Community Contributor License Agreement (CLA) - there is a limited opt-out and other conditions apply. - `} - Learn more about - W3C Community and Business Groups. -

        -${e.sotdAfterWGinfo?"":[e.additionalContent]} - ${e.wgPublicList?t` -

        If you wish to make comments regarding this document, please send them to - ${e.wgPublicList}@w3.org - (subscribe, - archives)${e.subjectPrefix?t` - with ${e.subjectPrefix} at the start of your - email's subject`:""}.

        - `:""} -${e.sotdAfterWGinfo?[e.additionalContent]:""} -${[e.additionalSections]}`})}),define("w3c/templates/sotd",["exports","deps/hyperhtml"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=(e=>{const t=hyperHTML;return t`

        ${e.l10n.sotd}

        -${e.isPreview?t` -
        - This is a preview -

        - Do not attempt to implement this version of the specification. Do not reference this - version as authoritative in any way. - ${e.edDraftURI?t` - Instead, see ${e.edDraftURI} for the Editor's draft. - `:""} -

        -
        -`:""} -${e.isUnofficial?t` -

        - This document is draft of a potential specification. It has no official standing of - any kind and does not represent the support or consensus of any standards organisation. -

        - ${[e.additionalContent]} -`:t` - ${e.isTagFinding?[e.additionalContent]:t` - ${e.isNoTrack?t` -

        - This document is merely a W3C-internal ${e.isMO?"member-confidential":""} document. It - has no official standing of any kind and does not represent consensus of the W3C - Membership. -

        - ${[e.additionalContent]} - `:t` -

        - ${[e.l10n.status_at_publication]} -

        - ${e.isSubmission?t` - ${[e.additionalContent]} - ${e.isMemberSubmission?t` -

        - By publishing this document, W3C acknowledges that the Submitting Members - have made a formal Submission request to W3C for discussion. Publication of this document - by W3C indicates no endorsement of its content by W3C, nor that W3C has, is, or will be - allocating any resources to the issues addressed by it. This document is not the product - of a chartered W3C group, but is published as potential input to - the W3C Process. - A W3C Team Comment has been - published in conjunction with this Member Submission. Publication of acknowledged Member Submissions - at the W3C site is one of the benefits of - W3C Membership. Please consult the requirements associated with Member Submissions of - section 3.3 of the - W3C Patent Policy. Please consult the complete list - of acknowledged W3C Member Submissions. -

        - `:t` - ${e.isTeamSubmission?t` -

        If you wish to make comments regarding this document, please send them to - ${e.wgPublicList}@w3.org - (subscribe, - archives)${e.subjectPrefix?t` - with ${e.subjectPrefix} at the start of your email's subject`:""}.

        -

        Please consult the complete list of Team Submissions.

        - `:""} - `} - `:t` - ${e.sotdAfterWGinfo?"":[e.additionalContent]} - ${e.overrideStatus?"":t` -

        - This document was published by ${[e.wgHTML]} as ${e.anOrA} ${e.longStatus}. - ${e.notYetRec?"This document is intended to become a W3C Recommendation.":""} - ${e.wgPublicList?t` - Comments regarding this document are welcome. Please send them to - ${e.wgPublicList}@w3.org - (subscribe, - archives)${e.subjectPrefix?t` - with ${e.subjectPrefix} at the start of your email's subject`:""}. - `:""} - ${e.isCR?`\n W3C publishes a Candidate Recommendation to indicate that the document is believed to be\n stable and to encourage implementation by the developer community. This Candidate\n Recommendation is expected to advance to Proposed Recommendation no earlier than\n ${e.humanCREnd}.\n `:""} - ${e.isPER?t` - W3C Advisory Committee Members are invited to - send formal review comments on this Proposed - Edited Recommendation to the W3C Team until - ${e.humanPEREnd}. - Members of the Advisory Committee will find the - appropriate review form for this document by - consulting their list of current - WBS questionnaires. - `:""} - ${e.isPR?t` - The W3C Membership and other interested parties are invited to review the document and - send comments to - ${e.wgPublicList}@w3.org - (subscribe, - archives) - through ${e.humanPREnd}. Advisory Committee Representatives should consult their - WBS questionnaires. - Note that substantive technical comments were expected during the Candidate Recommendation - review period that ended ${e.humanCREnd}. - `:""} -

        - `} - ${e.implementationReportURI?t` -

        - Please see the Working Group's implementation - report. -

        - `:""} - ${e.sotdAfterWGinfo?[e.additionalContent]:""} - ${e.notRec?t` -

        - Publication as ${e.anOrA} ${e.textStatus} does not imply endorsement by the W3C - Membership. This is a draft document and may be updated, replaced or obsoleted by other - documents at any time. It is inappropriate to cite this document as other than work in - progress. -

        - `:""} - ${e.isRec?t` -

        - This document has been reviewed by W3C Members, by software developers, and by other W3C - groups and interested parties, and is endorsed by the Director as a W3C Recommendation. - It is a stable document and may be used as reference material or cited from another - document. W3C's role in making the Recommendation is to draw attention to the - specification and to promote its widespread deployment. This enhances the functionality - and interoperability of the Web. -

        - `:""} -

        - ${e.isIGNote?"":t` - This document was produced by - ${e.multipleWGs?"groups":"a group"} - operating under the - W3C Patent Policy. - `} - ${e.recNotExpected?"The group does not expect this document to become a W3C Recommendation.":""} - ${e.isIGNote?"":t` - ${e.multipleWGs?t`W3C maintains ${[e.wgPatentHTML]}`:t` - W3C maintains a public list of any patent - disclosures - `} - made in connection with the deliverables of - ${e.multipleWGs?"each group; these pages also include":"the group; that page also includes"} - instructions for disclosing a patent. An individual who has actual knowledge of a patent - which the individual believes contains - Essential - Claim(s) must disclose the information in accordance with - section - 6 of the W3C Patent Policy. - `} - ${e.isIGNote?t` - The disclosure obligations of the Participants of this group are described in the - charter. - `:""} -

        -

        This document is governed by the 1 February 2018 W3C Process Document. -

        - ${e.addPatentNote?t`

        ${[e.addPatentNote]}

        `:""} - `} - `} - `} -`} -${[e.additionalSections]}`})}),define("w3c/templates/show-logo",["exports","core/pubsubhub","deps/hyperhtml"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=(e=>{const n=document.createElement("a");if(!e.alt){const e="Found spec logo without an `alt` attribute. See dev console.";n.classList.add("respec-offending-element"),(0,t.pub)("warn",e),console.warn("warn",e,n)}return n.href=e.url||"",n.classList.add("logo"),hyperHTML.bind(n)` - ${e.alt} - `,n.querySelector("img").src=e.src,n})}),define("w3c/templates/show-people",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=((e,t,n=[])=>{const r=hyperHTML,i=[];for(let e=0;e`,o=document.createDocumentFragment(),s=[];if(e.mailto?s.push(r``):e.url?s.push(r`${n}`):s.push(r`${n}`),e.company&&(e.companyURL?s.push(r` (${e.company})`):s.push(r` (${e.company})`)),e.note&&s.push(document.createTextNode(` (${e.note})`)),e.extras){const t=e.extras.filter(e=>e.name&&e.name.trim()).map(a);for(const e of t)s.push(document.createTextNode(", "),e)}return hyperHTML.bind(o)`${s}`,i.appendChild(o),i}function a(e){const t=r``;let n=t;return e.href&&(n=r``,t.appendChild(n)),n.textContent=e.name,t}})}),define("w3c/templates/show-link",["exports","core/pubsubhub","deps/hyperhtml"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});const n=hyperHTML;function r(e){return n` -
        - ${e.href?n` - ${e.value||e.href} - `:""} -
        - `}e.default=(e=>{if(!e.key){const n="Found a link without `key` attribute in the configuration. See dev console.";return(0,t.pub)("warn",n),void console.warn("warn",n,e)}return n` -
        ${e.key}:
        - ${e.data?e.data.map(r):r(e)} - `})}),define("w3c/templates/cgbg-headers",["exports","./show-logo","./show-people","./show-link","deps/hyperhtml"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0});var i=s(t),o=s(n),a=s(r);function s(e){return e&&e.__esModule?e:{default:e}}e.default=(e=>{const t=hyperHTML;return t`
        - ${e.logos.map(i.default)} -

        ${e.title}

        - ${e.subtitle?t` -

        ${e.subtitle}

        - `:""} -

        ${e.longStatus}

        -
        - ${e.thisVersion?t` -
        ${e.l10n.this_version}
        -
        ${e.thisVersion}
        - `:""} - ${e.latestVersion?t` -
        ${e.l10n.latest_published_version}
        -
        ${e.latestVersion}
        - `:""} - ${e.edDraftURI?t` -
        ${e.l10n.latest_editors_draft}
        -
        ${e.edDraftURI}
        - `:""} - ${e.testSuiteURI?t` -
        Test suite:
        -
        ${e.testSuiteURI}
        - `:""} - ${e.implementationReportURI?t` -
        Implementation report:
        -
        ${e.implementationReportURI}
        - `:""} - ${e.bugTrackerHTML?t` -
        ${e.l10n.bug_tracker}
        -
        ${[e.bugTrackerHTML]}
        - `:""} - ${e.prevVersion?t` -
        Previous version:
        -
        ${e.prevVersion}
        - `:""} - ${e.isCGFinal?"":t` - ${e.prevED?t` -
        Previous editor's draft:
        -
        ${e.prevED}
        - `:""} - `} -
        ${e.multipleEditors?e.l10n.editors:e.l10n.editor}
        - ${(0,o.default)(e,"Editor",e.editors)} - ${Array.isArray(e.formerEditors)&&e.formerEditors.length>0?t` -
        ${e.multipleFormerEditors?e.l10n.former_editors:e.l10n.former_editor}
        - ${(0,o.default)(e,"Editor",e.formerEditors)} - `:""} - ${e.authors?t` -
        ${e.multipleAuthors?e.l10n.authors:e.l10n.author}
        - ${(0,o.default)(e,"Author",e.authors)} - `:""} - ${e.otherLinks?e.otherLinks.map(a.default):""} -
        - ${e.alternateFormats?t` -

        - ${e.multipleAlternates?"This document is also available in these non-normative formats:":"This document is also available in this non-normative format:"} - ${[e.alternatesHTML]} -

        - `:""} - -
        -
        `})}),define("oai/templates/show-logo",["exports","core/pubsubhub","deps/hyperhtml"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=(e=>{const n=document.createElement("a");if(!e.alt){const e="Found spec logo without an `alt` attribute. See dev console.";n.classList.add("respec-offending-element"),(0,t.pub)("warn",e),console.warn("warn",e,n)}return n.href=e.url||"",n.classList.add("logo"),hyperHTML.bind(n)` - ${e.alt} - `,n.querySelector("img").src=e.src,n})}),define("oai/templates/show-people",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=((e,t,n=[])=>{const r=hyperHTML,i=[];for(let e=0;e`,o=document.createDocumentFragment(),s=[];if(e.mailto?s.push(r``):e.url?s.push(r`${n}`):s.push(r`${n}`),e.company&&(e.companyURL?s.push(r` (${e.company})`):s.push(r` (${e.company})`)),e.note&&s.push(document.createTextNode(` (${e.note})`)),e.extras){const t=e.extras.filter(e=>e.name&&e.name.trim()).map(a);for(const e of t)s.push(document.createTextNode(", "),e)}return hyperHTML.bind(o)`${s}`,i.appendChild(o),i}function a(e){const t=r``;let n=t;return e.href&&(n=r``,t.appendChild(n)),n.textContent=e.name,t}})}),define("oai/templates/show-link",["exports","core/pubsubhub","deps/hyperhtml"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});const n=hyperHTML;function r(e){return n` -
        - ${e.href?n` - ${e.value||e.href} - `:""} -
        - `}e.default=(e=>{if(!e.key){const n="Found a link without `key` attribute in the configuration. See dev console.";return(0,t.pub)("warn",n),void console.warn("warn",n,e)}return n` -
        ${e.key}:
        - ${e.data?e.data.map(r):r(e)} - `})}),define("oai/templates/headers",["exports","./show-logo","./show-people","./show-link","core/pubsubhub","deps/hyperhtml"],function(e,t,n,r,i){Object.defineProperty(e,"__esModule",{value:!0});var o=l(t),a=l(n),s=l(r);function l(e){return e&&e.__esModule?e:{default:e}}e.default=(e=>{const t=hyperHTML;return t`
        - ${e.logos.map(o.default)} - ${function(e){const t=document.querySelector("h1#title")||document.createElement("h1");return t.parentElement?(t.remove(),e.title=t.textContent.trim()):(t.textContent=e.title,t.id="title"),t.classList.add("title","p-name"),null===document.querySelector("title")?document.title=e.title:document.title!==e.title&&(0,i.pub)("warn","The document's title and the `` element differ."),t}(e)} - ${function(e){let t=document.querySelector("h2#subtitle");return t&&t.parentElement?(t.remove(),e.subtitle=t.textContent.trim()):e.subtitle&&((t=document.createElement("h2")).textContent=e.subtitle,t.id="subtitle"),t&&t.classList.add("subtitle"),t}(e)} - <h2>${e.prependW3C?"W3C":""}${e.textStatus} <time class='dt-published' datetime='${e.dashDate}'>${e.publishHumanDate}</time></h2> - <dl> - ${e.isNoTrack?"":t` - <dt>${e.l10n.this_version}</dt> - <dd><a class='u-url' href='${e.thisVersion}'>${e.thisVersion}</a></dd> - <dt>${e.l10n.latest_published_version}</dt> - <dd>${e.latestVersion?t`<a href='${e.latestVersion}'>${e.latestVersion}</a>`:"none"}</dd> - `} - ${e.edDraftURI?t` - <dt>${e.l10n.latest_editors_draft}</dt> - <dd><a href='${e.edDraftURI}'>${e.edDraftURI}</a></dd> - `:""} - ${e.testSuiteURI?t` - <dt>Test suite:</dt> - <dd><a href='${e.testSuiteURI}'>${e.testSuiteURI}</a></dd> - `:""} - ${e.implementationReportURI?t` - <dt>Implementation report:</dt> - <dd><a href='${e.implementationReportURI}'>${e.implementationReportURI}</a></dd> - `:""} - ${e.bugTrackerHTML?t` - <dt>${e.l10n.bug_tracker}</dt> - <dd>${[e.bugTrackerHTML]}</dd> - `:""} - ${e.isED?t` - ${e.prevED?t` - <dt>Previous editor's draft:</dt> - <dd><a href='${e.prevED}'>${e.prevED}</a></dd> - `:""} - `:""} - ${e.showPreviousVersion?t` - <dt>Previous version:</dt> - <dd><a href='${e.prevVersion}'>${e.prevVersion}</a></dd> - `:""} - ${e.prevRecURI?t` - ${e.isRec?t` - <dt>Previous Recommendation:</dt> - <dd><a href='${e.prevRecURI}'>${e.prevRecURI}</a></dd> - `:t` - <dt>Latest Recommendation:</dt> - <dd><a href='${e.prevRecURI}'>${e.prevRecURI}</a></dd> - `} - `:""} - <dt>${e.multipleEditors?e.l10n.editors:e.l10n.editor}</dt> - ${(0,a.default)(e,"Editor",e.editors)} - ${Array.isArray(e.formerEditors)&&e.formerEditors.length>0?t` - <dt>${e.multipleFormerEditors?e.l10n.former_editors:e.l10n.former_editor}</dt> - ${(0,a.default)(e,"Editor",e.formerEditors)} - `:""} - ${e.authors?t` - <dt>${e.multipleAuthors?e.l10n.authors:e.l10n.author}</dt> - ${(0,a.default)(e,"Author",e.authors)} - `:""} - ${e.otherLinks?e.otherLinks.map(s.default):""} - </dl> - ${e.errata?t` - <p> - Please check the <a href="${e.errata}"><strong>errata</strong></a> for any errors or issues - reported since publication. - </p> - `:""} - ${e.isRec?t` - <p> - See also <a href="${`http://www.w3.org/2003/03/Translations/byTechnology?technology=${e.shortName}`}"> - <strong>translations</strong></a>. - </p> - `:""} - ${e.alternateFormats?t` - <p> - ${e.multipleAlternates?"This document is also available in these non-normative formats:":"This document is also available in this non-normative format:"} - ${[e.alternatesHTML]} - </p> - `:""} - ${e.isUnofficial?t` - ${e.additionalCopyrightHolders?t` - <p class='copyright'>${[e.additionalCopyrightHolders]}</p> - `:t` - ${e.overrideCopyright?[e.overrideCopyright]:t` - <p class='copyright'> - This document is licensed under a - <a class='subfoot' href='https://creativecommons.org/licenses/by/3.0/' rel='license'>Creative Commons - Attribution 3.0 License</a>. - </p> - `} - `} - `:t` - ${e.overrideCopyright?[e.overrideCopyright]:t` - <p class='copyright'> - Copyright © - ${e.copyrightStart?`${e.copyrightStart}-`:""}${e.publishYear} - ${e.additionalCopyrightHolders?t` ${[e.additionalCopyrightHolders]} `:""} - ${e.isCCBY?t` - Some Rights Reserved: this document is dual-licensed, - <a rel="license" href="https://creativecommons.org/licenses/by/3.0/">CC-BY</a> and - <a rel="license" href="https://www.w3.org/Consortium/Legal/copyright-documents">W3C Document License</a>. - `:""} - </p> - `} - `} - <hr title="Separator for header"> -</div>`})}),define("oai/headers",["exports","core/utils","handlebars.runtime","core/pubsubhub","templates","w3c/templates/cgbg-sotd","w3c/templates/sotd","w3c/templates/cgbg-headers","oai/templates/headers"],function(e,t,n,r,i,o,a,s,l){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e){e.isUnofficial="unofficial"===e.specStatus,e.isUnofficial&&(e.logos=[]);if(e.license="apache2",e.isCCBY="cc-by"===e.license,e.isW3CSoftAndDocLicense="w3c-software-doc"===e.license,["cc-by"].includes(e.license)){let t=`You cannot use license "\`${e.license}\`" with W3C Specs. `;t+='Please set `respecConfig.license: "w3c-software-doc"` instead.',(0,r.pub)("error",t)}e.licenseInfo=k[e.license],e.isCGBG=w.includes(e.specStatus),e.isCGFinal=e.isCGBG&&/G-FINAL$/.test(e.specStatus),e.isBasic="base"===e.specStatus,e.isRegular=!e.isCGBG&&!e.isBasic,e.specStatus||(0,r.pub)("error","Missing required configuration: `specStatus`");e.isRegular&&!e.shortName&&(0,r.pub)("error","Missing required configuration: `shortName`");if(e.testSuiteURI){const t=new URL(e.testSuiteURI,document.location),{host:n,pathname:i}=t;if("github.com"===n&&i.startsWith("/w3c/web-platform-tests/")){const t="Web Platform Tests have moved to a new Github Organization at https://github.com/web-platform-tests. Please update your [`testSuiteURI`](https://github.com/w3c/respec/wiki/testSuiteURI) to point to the "+`new tests repository (e.g., https://github.com/web-platform-tests/${e.shortName} ).`;(0,r.pub)("warn",t)}}e.title=document.title||"No Title",e.subtitle||(e.subtitle="");if(e.publishDate=E(e,"publishDate",document.lastModified),e.publishYear=e.publishDate.getUTCFullYear(),e.publishHumanDate=f.format(e.publishDate),e.isNoTrack=v.includes(e.specStatus),e.isRecTrack=!e.noRecTrack&&y.includes(e.specStatus),e.isMemberSubmission="Member-SUBM"===e.specStatus,e.isMemberSubmission){const t={alt:"W3C Member Submission",href:"https://www.w3.org/Submission/",src:"https://www.w3.org/Icons/member_subm-v.svg",width:"211"};e.logos.push(p({},C,t))}if(e.isTeamSubmission="Team-SUBM"===e.specStatus,e.isTeamSubmission){const t={alt:"W3C Team Submission",href:"https://www.w3.org/TeamSubmission/",src:"https://www.w3.org/Icons/team_subm-v.svg",width:"211"};e.logos.push(p({},C,t))}e.isSubmission=e.isMemberSubmission||e.isTeamSubmission,e.anOrA=x.includes(e.specStatus)?"an":"a",e.isTagFinding="finding"===e.specStatus||"draft-finding"===e.specStatus,e.edDraftURI||(e.edDraftURI="","ED"===e.specStatus&&(0,r.pub)("warn","Editor's Drafts should set edDraftURI."));e.maturity=h[e.specStatus]?h[e.specStatus]:e.specStatus;var n="TR";"Member-SUBM"===e.specStatus?n="Submission":"Team-SUBM"===e.specStatus&&(n="TeamSubmission");e.isRegular&&(e.thisVersion="https://www.w3.org/"+n+"/"+e.publishDate.getUTCFullYear()+"/"+e.maturity+"-"+e.shortName+"-"+(0,t.concatDate)(e.publishDate)+"/");"ED"===e.specStatus&&(e.thisVersion=e.edDraftURI);e.isRegular&&(e.latestVersion="https://www.w3.org/"+n+"/"+e.shortName+"/");e.isTagFinding&&(e.latestVersion="https://www.w3.org/2001/tag/doc/"+e.shortName,e.thisVersion=e.latestVersion+"-"+t.ISODate.format(e.publishDate));if(e.previousPublishDate){e.previousMaturity||e.isTagFinding||(0,r.pub)("error","`previousPublishDate` is set, but not `previousMaturity`."),e.previousPublishDate=E(e,"previousPublishDate");var i=h[e.previousMaturity]?h[e.previousMaturity]:e.previousMaturity;e.isTagFinding?e.prevVersion=e.latestVersion+"-"+t.ISODate.format(e.previousPublishDate):e.isCGBG?e.prevVersion=e.prevVersion||"":e.isBasic?e.prevVersion="":e.prevVersion="https://www.w3.org/TR/"+e.previousPublishDate.getUTCFullYear()+"/"+i+"-"+e.shortName+"-"+(0,t.concatDate)(e.previousPublishDate)+"/"}else/NOTE$/.test(e.specStatus)||"FPWD"===e.specStatus||"FPLC"===e.specStatus||"ED"===e.specStatus||e.noRecTrack||e.isNoTrack||e.isSubmission||(0,r.pub)("error","Document on track but no previous version: Add `previousMaturity`, and `previousPublishDate` to ReSpec's config."),e.prevVersion||(e.prevVersion="");e.prevRecShortname&&!e.prevRecURI&&(e.prevRecURI="https://www.w3.org/TR/"+e.prevRecShortname);e.editors&&0!==e.editors.length||(0,r.pub)("error","At least one editor is required");var o=function(e){e.name||(0,r.pub)("error","All authors and editors must have a name.")};e.editors&&e.editors.forEach(o);e.formerEditors&&e.formerEditors.forEach(o);e.authors&&e.authors.forEach(o);e.multipleEditors=e.editors&&e.editors.length>1,e.multipleFormerEditors=Array.isArray(e.formerEditors)&&e.formerEditors.length>1,e.multipleAuthors=e.authors&&e.authors.length>1,$.each(e.alternateFormats||[],function(e,t){t.uri&&t.label||(0,r.pub)("error","All alternate formats must have a uri and a label.")}),e.multipleAlternates=e.alternateFormats&&e.alternateFormats.length>1,e.alternatesHTML=e.alternateFormats&&(0,t.joinAnd)(e.alternateFormats,function(e){var t=e.hasOwnProperty("lang")&&e.lang?" hreflang='"+e.lang+"'":"";return t+=e.hasOwnProperty("type")&&e.type?" type='"+e.type+"'":"","<a rel='alternate' href='"+e.uri+"'"+t+">"+e.label+"</a>"}),e.bugTracker&&(e.bugTracker.new&&e.bugTracker.open?e.bugTrackerHTML="<a href='"+e.bugTracker.new+"'>"+e.l10n.file_a_bug+"</a> "+e.l10n.open_parens+"<a href='"+e.bugTracker.open+"'>"+e.l10n.open_bugs+"</a>"+e.l10n.close_parens:e.bugTracker.open?e.bugTrackerHTML="<a href='"+e.bugTracker.open+"'>open bugs</a>":e.bugTracker.new&&(e.bugTrackerHTML="<a href='"+e.bugTracker.new+"'>file a bug</a>"));e.copyrightStart&&e.copyrightStart==e.publishYear&&(e.copyrightStart="");for(var a in g)b[a]||(b[a]=g[a]);e.longStatus=b[e.specStatus],e.textStatus=g[e.specStatus],m[e.specStatus]&&(e.rdfStatus=m[e.specStatus]);e.showThisVersion=!e.isNoTrack||e.isTagFinding,e.showPreviousVersion="FPWD"!==e.specStatus&&"FPLC"!==e.specStatus&&"ED"!==e.specStatus&&!e.isNoTrack&&!e.isSubmission,/NOTE$/.test(e.specStatus)&&!e.prevVersion&&(e.showPreviousVersion=!1);e.isTagFinding&&(e.showPreviousVersion=!!e.previousPublishDate);e.notYetRec=e.isRecTrack&&"REC"!==e.specStatus,e.isRec=e.isRecTrack&&"REC"===e.specStatus,e.isRec&&!e.errata&&(0,r.pub)("error","Recommendations must have an errata link.");e.notRec="REC"!==e.specStatus,e.prependW3C=!1,e.isED="ED"===e.specStatus,e.isCR="CR"===e.specStatus,e.isPR="PR"===e.specStatus,e.isPER="PER"===e.specStatus,e.isMO="MO"===e.specStatus,e.isNote=["FPWD-NOTE","WG-NOTE"].includes(e.specStatus),e.isIGNote="IG-NOTE"===e.specStatus,e.dashDate=t.ISODate.format(e.publishDate),e.publishISODate=e.publishDate.toISOString(),e.shortISODate=t.ISODate.format(e.publishDate),Object.defineProperty(e,"wgId",{get(){if(!this.hasOwnProperty("wgPatentURI"))return"";const e=this.wgPatentURI.split("/"),t=e.findIndex(e=>"pp-impl"===e)+1;return e[t]||""}});const s=(e.isCGBG?c.default:u.default)(e);document.body.insertBefore(s,document.body.firstChild),document.body.classList.add("h-entry");var l=document.getElementById("sotd")||document.createElement("section");!e.isCGBG&&e.isNoTrack&&!e.isTagFinding||l.id||(0,r.pub)("error","A custom SotD paragraph is required for your type of document.");l.id=l.id||"sotd",l.classList.add("introductory");var d=[e.wg,e.wgURI,e.wgPatentURI];d.some(e=>Array.isArray(e))&&!d.every(e=>Array.isArray(e))&&(0,r.pub)("error","If one of '`wg`', '`wgURI`', or '`wgPatentURI`' is an array, they all have to be.");e.isCGBG&&!e.wg&&(0,r.pub)("error","[`wg`](https://github.com/w3c/respec/wiki/wg) configuration option is required for this kind of document.");if(Array.isArray(e.wg)){e.multipleWGs=e.wg.length>1,e.wgHTML=(0,t.joinAnd)(e.wg,function(t,n){return"the <a href='"+e.wgURI[n]+"'>"+t+"</a>"});for(var T=[],S=0,A=e.wg.length;S<A;S++)T.push("a <a href='"+e.wgPatentURI[S]+"' rel='disclosure'>public list of any patent disclosures ("+e.wg[S]+")</a>");e.wgPatentHTML=(0,t.joinAnd)(T)}else e.multipleWGs=!1,e.wgHTML="the <a href='"+e.wgURI+"'>"+e.wg+"</a>";"PR"!==e.specStatus||e.crEnd||(0,r.pub)("error",'`specStatus` is "PR" but no `crEnd` is specified (needed to indicate end of previous CR).');"CR"!==e.specStatus||e.crEnd||(0,r.pub)("error",'`specStatus` is "CR", but no `crEnd` is specified in Respec config.');e.crEnd=E(e,"crEnd"),e.humanCREnd=f.format(e.crEnd),"PR"!==e.specStatus||e.prEnd||(0,r.pub)("error",'`specStatus` is "PR" but no `prEnd` is specified.');e.prEnd=E(e,"prEnd"),e.humanPREnd=f.format(e.prEnd),"PER"!==e.specStatus||e.perEnd||(0,r.pub)("error","Status is PER but no perEnd is specified");e.perEnd=E(e,"perEnd"),e.humanPEREnd=f.format(e.perEnd),e.recNotExpected=!!e.recNotExpected||!e.isRecTrack&&"WD"==e.maturity&&"FPWD-NOTE"!==e.specStatus,e.isIGNote&&!e.charterDisclosureURI&&(0,r.pub)("error","IG-NOTEs must link to charter's disclosure section using `charterDisclosureURI`.");""!==e.subjectPrefix&&(e.subjectPrefixEnc=encodeURIComponent(e.subjectPrefix));!e.implementationReportURI&&e.isCR&&(0,r.pub)("error","CR documents must have an [`implementationReportURI`](https://github.com/w3c/respec/wiki/implementationReportURI) that describes [implementation experience](https://www.w3.org/2018/Process-20180201/#implementation-experience).");!e.implementationReportURI&&e.isPR&&(0,r.pub)("warn","PR documents should include an [`implementationReportURI`](https://github.com/w3c/respec/wiki/implementationReportURI) that describes [implementation experience](https://www.w3.org/2018/Process-20180201/#implementation-experience).");e.isTagFinding&&!e.additionalContent&&(0,r.pub)("warn","ReSpec does not support automated SotD generation for TAG findings, please add the prerequisite content in the 'sotd' section");(0,r.pub)("amend-user-config",{publishISODate:e.publishISODate,generatedSubtitle:`${e.longStatus} ${e.publishHumanDate}`})};d(n),d(i),d(o),d(a);var c=d(s),u=d(l);function d(e){return e&&e.__esModule?e:{default:e}}var p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};e.name="oai/headers";const f=new Intl.DateTimeFormat(["en-GB"],{timeZone:"UTC",year:"numeric",month:"long",day:"2-digit"}),h={FPWD:"WD",LC:"WD",FPLC:"WD","FPWD-NOTE":"NOTE","WD-NOTE":"WD","LC-NOTE":"LC","IG-NOTE":"NOTE","WG-NOTE":"NOTE"},m={NOTE:"w3p:NOTE",WD:"w3p:WD",LC:"w3p:LastCall",CR:"w3p:CR",PR:"w3p:PR",REC:"w3p:REC",PER:"w3p:PER",RSCND:"w3p:RSCND"},g={NOTE:"Working Group Note","WG-NOTE":"Working Group Note","CG-NOTE":"Co-ordination Group Note","IG-NOTE":"Interest Group Note","Member-SUBM":"Member Submission","Team-SUBM":"Team Submission",MO:"Member-Only Document",ED:"Editor's Draft",FPWD:"First Public Working Draft",WD:"Working Draft","FPWD-NOTE":"Working Group Note","WD-NOTE":"Working Draft","LC-NOTE":"Working Draft",FPLC:"First Public and Last Call Working Draft",LC:"Last Call Working Draft",CR:"Candidate Recommendation",PR:"Proposed Recommendation",PER:"Proposed Edited Recommendation",REC:"Recommendation",RSCND:"Rescinded Recommendation",unofficial:"Unofficial Draft",base:"Published",finding:"TAG Finding","draft-finding":"Draft TAG Finding","CG-DRAFT":"Draft Community Group Report","CG-FINAL":"Final Community Group Report","BG-DRAFT":"Draft Business Group Report","BG-FINAL":"Final Business Group Report"},b={"FPWD-NOTE":"First Public Working Group Note","LC-NOTE":"Last Call Working Draft"},y=["FPWD","WD","FPLC","LC","CR","PR","PER","REC"],v=["MO","unofficial","base","finding","draft-finding","CG-DRAFT","CG-FINAL","BG-DRAFT","BG-FINAL"],w=["CG-DRAFT","CG-FINAL","BG-DRAFT","BG-FINAL"],x=["ED","IG-NOTE"],k={cc0:{name:"Creative Commons 0 Public Domain Dedication",short:"CC0",url:"https://creativecommons.org/publicdomain/zero/1.0/"},"w3c-software":{name:"W3C Software Notice and License",short:"W3C Software",url:"https://www.w3.org/Consortium/Legal/2002/copyright-software-20021231"},"w3c-software-doc":{name:"W3C Software and Document Notice and License",short:"W3C Software and Document",url:"https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document"},apache2:{name:"Apache 2.0 License",short:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"},"cc-by":{name:"Creative Commons Attribution 4.0 International Public License",short:"CC-BY",url:"https://creativecommons.org/licenses/by/4.0/legalcode"}},C=Object.freeze({id:"",alt:"",href:"",src:"",height:"48",width:"72"});function E(e,n,i=new Date){const o=e[n]?new Date(e[n]):new Date(i);if(Number.isFinite(o.valueOf())){const e=t.ISODate.format(o);return new Date(e)}const a=`[\`${n}\`](https://github.com/w3c/respec/wiki/${n}) `+`is not a valid date: "${e[n]}". Expected format 'YYYY-MM-DD'.`;return(0,r.pub)("error",a),new Date(t.ISODate.format(new Date))}}),define("w3c/abstract",["exports","core/pubsubhub","core/l10n"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=async function(){const e=document.getElementById("abstract");if(!e)return void(0,t.pub)("error",'Document must have one element with `id="abstract"');e.classList.add("introductory");let r=document.querySelector("#abstract>h2");if(r)return;(r=document.createElement("h2")).innerText=n.l10n[n.lang].abstract,e.insertAdjacentElement("afterbegin",r)};e.name="w3c/abstract"}),define("w3c/templates/conformance",["exports","deps/hyperhtml"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=(()=>{const e=hyperHTML;return e`<h2>Conformance</h2> -<p> - As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, - and notes in this specification are non-normative. Everything else in this specification is - normative. -</p> -<p id='respecRFC2119'> - to be interpreted as described in [[!RFC2119]]. -</p>`})}),define("w3c/conformance",["exports","w3c/templates/conformance","core/pubsubhub"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,t,r){var o=$("#conformance");o.length&&o.prepend((0,i.default)(e).childNodes);(0,n.pub)("end","w3c/conformance"),r()};var r,i=(r=t)&&r.__esModule?r:{default:r};e.name="w3c/conformance"}),define("core/data-transform",["exports","core/utils"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,n,r){Array.from(n.querySelectorAll("[data-transform]")).forEach(e=>{e.innerHTML=(0,t.runTransforms)(e.innerHTML,e.dataset.transform),e.removeAttribute("data-transform")}),r()};e.name="core/data-transform"}),define("core/inlines",["exports","core/pubsubhub","deps/hyperhtml"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e){document.normalize(),e.normativeReferences||(e.normativeReferences=new Set);e.informativeReferences||(e.informativeReferences=new Set);e.respecRFC2119||(e.respecRFC2119={});const n=new Map;for(const e of Array.from(document.querySelectorAll("abbr[title]")))n.set(e.textContent,e.title);const r=[...n.keys()];r.sort((e,t)=>t.length-e.length);const i=r.length?`(?:\\b${r.join("\\b)|(?:\\b")}\\b)`:null,o=window.$.fn.allTextNodes.call([document.body],["pre"]),a=new RegExp("(\\bMUST(?:\\s+NOT)?\\b|\\bSHOULD(?:\\s+NOT)?\\b|\\bSHALL(?:\\s+NOT)?\\b|\\bMAY\\b|\\b(?:NOT\\s+)?REQUIRED\\b|\\b(?:NOT\\s+)?RECOMMENDED\\b|\\bOPTIONAL\\b|(?:\\[\\[(?:!|\\\\)?[A-Za-z0-9\\.-]+\\]\\])"+(i?`|${i}`:"")+")");for(const r of o){const i=r.data.split(a);if(1===i.length)continue;const o=document.createDocumentFragment();for(;i.length;){const a=i.shift();let s=null;if(i.length&&(s=i.shift()),o.appendChild(document.createTextNode(a)),s)if(/MUST(?:\s+NOT)?|SHOULD(?:\s+NOT)?|SHALL(?:\s+NOT)?|MAY|(?:NOT\s+)?REQUIRED|(?:NOT\s+)?RECOMMENDED|OPTIONAL/.test(s))s=s.split(/\s+/).join(" "),o.appendChild(hyperHTML`<em class="rfc2119" title="${s}">${s}</em>`),e.respecRFC2119[s]=!0;else if(/^\[\[/.test(s)){let t=s;if(0===(t=(t=t.replace(/^\[\[/,"")).replace(/\]\]$/,"")).indexOf("\\"))o.appendChild(document.createTextNode(`[[${t.replace(/^\\/,"")}]]`));else{let n=!1;0===t.indexOf("!")&&(n=!0,t=t.replace(/^!/,"")),n?e.normativeReferences.add(t):e.informativeReferences.add(t),o.appendChild(document.createTextNode("[")),o.appendChild(hyperHTML`<cite><a class="bibref" href="${`#bib-${t}`}">${t}</a></cite>`),o.appendChild(document.createTextNode("]"))}}else n.has(s)?"ABBR"===r.parentNode.tagName?o.appendChild(document.createTextNode(s)):o.appendChild(hyperHTML`<abbr title="${n.get(s)}">${s}</abbr>`):(0,t.pub)("error",`Found token '${s}' but it does not correspond to anything`)}r.parentNode.replaceChild(o,r)}};e.name="core/inlines"}),mta=this,nta=function(){var e=[],t=[],n={},r={},i={};function o(e){return"string"==typeof e?new RegExp("^"+e+"$","i"):e}function a(e,t){return e===t?t:e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}function s(e,t){return e.replace(t[0],function(n,r){var i,o,s=(i=t[1],o=arguments,i.replace(/\$(\d{1,2})/g,function(e,t){return o[t]||""}));return a(""===n?e[r-1]:n,s)})}function l(e,t,r){if(!e.length||n.hasOwnProperty(e))return t;for(var i=r.length;i--;){var o=r[i];if(o[0].test(t))return s(t,o)}return t}function c(e,t,n){return function(r){var i=r.toLowerCase();return t.hasOwnProperty(i)?a(r,i):e.hasOwnProperty(i)?a(r,e[i]):l(i,r,n)}}function u(e,t,n,r){return function(r){var i=r.toLowerCase();return!!t.hasOwnProperty(i)||!e.hasOwnProperty(i)&&l(i,i,n)===i}}function d(e,t,n){var r=1===t?d.singular(e):d.plural(e);return(n?t+" ":"")+r}return d.plural=c(i,r,e),d.isPlural=u(i,r,e),d.singular=c(r,i,t),d.isSingular=u(r,i,t),d.addPluralRule=function(t,n){e.push([o(t),n])},d.addSingularRule=function(e,n){t.push([o(e),n])},d.addUncountableRule=function(e){"string"!=typeof e?(d.addPluralRule(e,"$0"),d.addSingularRule(e,"$0")):n[e.toLowerCase()]=!0},d.addIrregularRule=function(e,t){t=t.toLowerCase(),e=e.toLowerCase(),i[e]=t,r[t]=e},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["whiskey","whiskies"]].forEach(function(e){return d.addIrregularRule(e[0],e[1])}),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|tlas|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[emjzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|octop|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/(m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach(function(e){return d.addPluralRule(e[0],e[1])}),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/(m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|tlas|gas|(?:her|at|gr)o|ris)(?:es)?$/i,"$1"],[/(analy|ba|diagno|parenthe|progno|synop|the|empha|cri)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|octop|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach(function(e){return d.addSingularRule(e[0],e[1])}),["adulthood","advice","agenda","aid","alcohol","ammo","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","flounder","fun","gallows","garbage","graffiti","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","manga","news","pike","plankton","pliers","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","species","staff","swine","tennis","traffic","transporation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(d.addUncountableRule),d},"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?module.exports=nta():"function"==typeof define&&define.amd?define("deps/pluralize",[],function(){return nta()}):mta.pluralize=nta(),define("core/dfn",["exports","deps/pluralize","core/utils"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e){e.hasOwnProperty("definitionMap")||(e.definitionMap=Object.create(null));let r;!0===e.pluralize&&(r=function(){const e=new Set;document.querySelectorAll("a:not([href])").forEach(t=>{const r=(0,n.norm)(t.textContent).toLowerCase();e.add(r),t.dataset.lt&&e.add(t.dataset.lt)});const r=new Set;return document.querySelectorAll("dfn:not([data-lt-noDefault])").forEach(e=>{const t=(0,n.norm)(e.textContent).toLowerCase();r.add(t),e.dataset.lt&&e.dataset.lt.split("|").reduce((e,t)=>e.add(t),r)}),function(n){const i=(0,t.plural)(n);return e.has(i)&&!r.has(i)?i:""}}());document.querySelectorAll("dfn").forEach(t=>{const i=t.closest("[data-dfn-for]");i&&i!==t&&!t.dataset.dfnFor&&(t.dataset.dfnFor=i.dataset.dfnFor),t.dataset.dfnFor&&(t.dataset.dfnFor=t.dataset.dfnFor.toLowerCase());const o=$(t),a=o.getDfnTitles({isDefinition:!0});if(r&&!t.hasAttribute("data-lt-no-plural")&&!t.hasAttribute("data-lt-noDefault")){const e=(0,n.norm)(t.textContent).toLowerCase(),i=r(e);i&&(a[0]===e?a.unshift(i):a.push(i),t.dataset.lt=a.filter(t=>t!==e).join("|"))}a.map(t=>(e.definitionMap[t]||(e.definitionMap[t]=[]),e.definitionMap[t])).reduce((e,t)=>(t.push(e),e),o)})};e.name="core/dfn"}),define("w3c/rfc2119",["exports","core/utils"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,n,r){const i=n.getElementById("respecRFC2119");if(!i)return r();const o=Object.getOwnPropertyNames(e.respecRFC2119);if(0===o.length)return i.remove(),r();const a=(0,t.joinAnd)(o.sort(),e=>`<em class="rfc2119">${e}</em>`),s=o.length>1,l=`The key word${s?"s ":" "} ${a} ${s?"are":"is"} ${i.innerHTML}`;i.innerHTML=l,r()};e.name="w3c/rfc2119"}),define("deps/text!core/css/examples.css",[],function(){return"/* --- EXAMPLES --- */\ndiv.example-title {\n min-width: 7.5em;\n color: #b9ab2d;\n}\ndiv.example-title span {\n text-transform: uppercase;\n}\naside.example, div.example, div.illegal-example {\n padding: 0.5em;\n margin: 1em 0;\n position: relative;\n clear: both;\n}\ndiv.illegal-example { color: red }\ndiv.illegal-example p { color: black }\naside.example, div.example {\n padding: .5em;\n border-left-width: .5em;\n border-left-style: solid;\n border-color: #e0cb52;\n background: #fcfaee;\n}\n\naside.example div.example {\n border-left-width: .1em;\n border-color: #999;\n background: #fff;\n}\naside.example div.example div.example-title {\n color: #999;\n}\n"}),define("core/examples",["exports","core/pubsubhub","deps/text!core/css/examples.css"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,n,r){var a=$("pre.example, pre.illegal-example, aside.example"),s=0;a.length&&($(n).find("head link").first().before($("<style/>").text(i.default)),a.each(function(n,r){var i=$(r),a={number:s,illegal:i.hasClass("illegal-example")};if(i.is("aside")){var l=o(e,i,++s,a);i.prepend(l),(0,t.pub)("example",a)}else{var c=!!i.parents("aside").length;c||s++;for(var u=i.html().split("\n");u.length&&/^\s*$/.test(u[0]);)u.shift();for(;u.length&&/^\s*$/.test(u[u.length-1]);)u.pop();var d=/^(\s+)/.exec(u[0]);if(d)for(var p=new RegExp("^"+d[1]),f=0;f<u.length;f++)u[f]=u[f].replace(p,"");a.content=u.join("\n"),i.html(u.join("\n")),i.removeClass("example illegal-example");var h=$("<div class='example'></div>"),l=o(e,i,c?0:s,a);h.append(l),h.append(i.clone()),i.replaceWith(h),c||(0,t.pub)("example",a)}}));r()};var r,i=(r=n)&&r.__esModule?r:{default:r};e.name="core/examples";var o=function(e,t,n,r){var i=n>0?" "+n:"",o=$(`<div class='example-title'><span>${e.l10n.example}${i}</span></div>`);return r.title=t.attr("title"),r.title&&(o.append($("<span style='text-transform: none'>: "+r.title+"</span>")),t.removeAttr("title")),o.addClass("marker"),o}}),define("deps/text!core/css/issues-notes.css",[],function(){return'/* --- ISSUES/NOTES --- */\ndiv.issue-title, div.note-title , div.ednote-title, div.warning-title {\n padding-right: 1em;\n min-width: 7.5em;\n color: #b9ab2d;\n}\ndiv.issue-title { color: #e05252; }\ndiv.note-title, div.ednote-title { color: #2b2; }\ndiv.warning-title { color: #f22; }\ndiv.issue-title span, div.note-title span, div.ednote-title span, div.warning-title span {\n text-transform: uppercase;\n}\ndiv.note, div.issue, div.ednote, div.warning {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n.note > p:first-child, .ednote > p:first-child, .issue > p:first-child, .warning > p:first-child { margin-top: 0 }\n.issue, .note, .ednote, .warning {\n padding: .5em;\n border-left-width: .5em;\n border-left-style: solid;\n}\ndiv.issue, div.note , div.ednote, div.warning {\n padding: 1em 1.2em 0.5em;\n margin: 1em 0;\n position: relative;\n clear: both;\n}\nspan.note, span.ednote, span.issue, span.warning { padding: .1em .5em .15em; }\n\n.issue {\n border-color: #e05252;\n background: #fbe9e9;\n}\n.note, .ednote {\n border-color: #52e052;\n background: #e9fbe9;\n}\n\n.warning {\n border-color: #f11;\n border-width: .2em;\n border-style: solid;\n background: #fbe9e9;\n}\n\n.warning-title:before{\n content: "⚠"; /*U+26A0 WARNING SIGN*/\n font-size: 3em;\n float: left;\n height: 100%;\n padding-right: .3em;\n vertical-align: top;\n margin-top: -0.5em;\n}\n\nli.task-list-item {\n list-style: none;\n}\n\ninput.task-list-item-checkbox {\n margin: 0 0.35em 0.25em -1.6em;\n vertical-align: middle;\n}\n\n.issue a.respec-gh-label {\n padding: 5px;\n margin: 0 2px 0 2px;\n font-size: 10px;\n text-transform: none;\n text-decoration: none;\n font-weight: bold;\n border-radius: 4px;\n position: relative;\n bottom: 2px;\n}\n\n.issue a.respec-label-dark {\n color: #fff;\n background-color: #000;\n}\n\n.issue a.respec-label-light {\n color: #000;\n background-color: #fff;\n}\n'}),define("core/issues-notes",["exports","core/pubsubhub","deps/text!core/css/issues-notes.css","core/utils","deps/hyperhtml"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=async function(e){const n=document.querySelectorAll(".issue, .note, .warning, .ednote");if(!n.length)return;const i=e.githubAPI?await async function(e){const{githubAPI:n,githubUser:i,githubToken:o}=e,a=document.querySelectorAll(".issue[data-number]");if(a.length>s){const e=`Your spec contains ${a.length} Github issues, `+`but GitHub only allows ${s} requests. Some issues might not show up.`;(0,t.pub)("warning",e)}const l=[...a].map(e=>Number.parseInt(e.dataset.number,10)).filter(e=>e).map(async e=>{const a=`${n}/issues/${e}`,s={Accept:"application/vnd.github.v3.html+json"};if(i&&o){const e=btoa(`${i}:${o}`),t=`Basic ${e}`;Object.assign(s,{Authorization:t})}const l=new Request(a,{headers:s}),c=await(0,r.fetchAndCache)(l);return async function(e,n){const r={title:"",number:n,state:"",message:""};try{const t=await e.json();Object.assign(r,t)}catch(e){r.message=`Error JSON parsing issue #${n} from GitHub.`}if(!e.ok||r.message){const i=`Error fetching issue #${n} from GitHub. ${r.message} (HTTP Status ${e.status}).`;(0,t.pub)("error",i)}return[n,r]}(c,e)}),c=await Promise.all(l);return new Map(c)}(e):new Map,{head:c}=document;c.insertBefore(hyperHTML`<style>${[o.default]}</style>`,c.querySelector("link")),function(e,n,r){const i=$(e),{issueBase:o,githubAPI:s}=r;var c=!!document.querySelector(".issue[data-number]"),u=0,d=$("<div><h2>"+r.l10n.issue_summary+"</h2><ul></ul></div>"),p=d.find("ul");s&&Array.from(i).filter(({dataset:{number:e}})=>void 0!==e&&"closed"===n.get(Number(e)).state).forEach(e=>{const{dataset:{number:n}}=e,r=`Github issue ${n} was closed on GitHub, so removing from spec`;(0,t.pub)("warn",r),e.remove()});i.filter((e,t)=>t.parentNode).each(function(e,i){var d=$(i),f=d.hasClass("issue"),h=d.hasClass("warning"),m=d.hasClass("ednote"),g=d.hasClass("atrisk"),b="span"===d[0].localName,y=d.attr("data-number"),v={inline:b};if(v.type=f?"issue":h?"warning":m?"ednote":"note",!f||b||c?y&&(v.number=y):(u++,v.number=u),!b){var w,x=$("<div class='"+v.type+(g?" atrisk":"")+"'></div>"),k=$("<div role='heading' class='"+v.type+"-title'><span></span></div>"),C=f?g?r.l10n.feature_at_risk:r.l10n.issue:h?r.l10n.warning:m?r.l10n.editors_note:r.l10n.note;if(i.id?(x[0].id=i.id,i.removeAttribute("id")):x.makeID("issue-container",v.number?`number-${v.number}`:""),k.makeID("h",v.type),v.title=d.attr("title"),f&&(c?y&&(C+=" "+y,!g&&o?k.find("span").wrap($("<a href='"+o+y+"'/>")):g&&r.atRiskBase&&k.find("span").wrap($("<a href='"+r.atRiskBase+y+"'/>")),(w=n.get(Number(y)))&&!v.title&&(v.title=w.title)):C+=" "+u,void 0!==v.number)){var E=$("<li><a></a></li>");E.find("a").attr("href","#"+x[0].id).text(r.l10n.issue+" "+v.number),v.title&&E.append($("<span style='text-transform: none'>: "+v.title+"</span>")),p.append(E)}if(k.find("span").text(C),w&&v.title&&s){const e=Array.from(w.labels).map(e=>{const t=new URL("issues/",r.github.repoURL+"/");return t.searchParams.set("q",`is:issue is:open label:"${e.name}"`),a({},e,{href:t.href})}).map(l).reduce((e,t)=>(e.appendChild(t),e),document.createDocumentFragment());k.append($("<span style='text-transform: none'>: "+v.title+"</span>").append(e)),d.removeAttr("title")}else v.title&&(k.append($("<span style='text-transform: none'>: "+v.title+"</span>")),d.removeAttr("title"));k.addClass("marker"),x.append(k),d.replaceWith(x);var T=d.removeClass(v.type).removeAttr("data-number");w&&!T.text().trim()&&(T=w.body_html),x.append(T);const e=k.parents("section").length+2;k.attr("aria-level",e)}(0,t.pub)(v.type,v)}),$(".issue").length?$("#issue-summary")&&$("#issue-summary").append(d.contents()):$("#issue-summary").length&&((0,t.pub)("warn","Using issue summary (#issue-summary) but no issues found."),$("#issue-summary").remove())}(n,i,e)};var i,o=(i=n)&&i.__esModule?i:{default:i};var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};e.name="core/issues-notes";const s=60;function l(e){const{color:t,href:n,name:r}=e,i=parseInt(t,16);var o;return hyperHTML`<a - class="${`respec-gh-label respec-label-${isNaN(i)||.2126*((o=i)>>16&255)+.7152*(o>>8&255)+.0722*(o>>0&255)>140?"light":"dark"}`}" - style="${`background-color: #${t}`}" - href="${n}">${r}</a>`}}),define("core/requirements",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,n,r){$(".req").each(function(e){e++;var t=$(this),n="Req. "+e;t.prepend("<a href='#"+t.attr("id")+"'>"+n+"</a>: ")}),$("a.reqRef").each(function(){var e,n,r,i=$(this),o=i.attr("href");o&&(e=o.substring(1),(n=$("#"+e)).length?r=n.find("> a").text():(r="Req. not found '"+e+"'",(0,t.pub)("error","Requirement not found in element `a.reqRef`: "+e)),i.text(r))}),r()};e.name="core/requirements"}),define("deps/text!core/css/bp.css",[],function(){return"/* --- Best Practices --- */\ndiv.practice {\n border: solid #bebebe 1px;\n margin: 2em 1em 1em 2em;\n}\n\nspan.practicelab {\n margin: 1.5em 0.5em 1em 1em;\n font-weight: bold;\n font-style: italic;\n background: #dfffff;\n position: relative;\n padding: 0 0.5em;\n top: -1.5em;\n}\n\np.practicedesc {\n margin: 1.5em 0.5em 1em 1em;\n}\n\n@media screen {\n p.practicedesc {\n position: relative;\n top: -2em;\n padding: 0;\n margin: 1.5em 0.5em -1em 1em;\n }\n}\n"}),define("core/best-practices",["exports","deps/text!core/css/bp.css","core/pubsubhub","deps/hyperhtml"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(){let e=0;const t=document.querySelectorAll("span.practicelab"),r=document.createElement("ul");for(const n of Array.from(t)){e++;const t=window.$.fn.makeID.call([n],"bp"),i=hyperHTML`<li><a href="${`#${t}`}">Best Practice ${e}</a>: ${n.textContent}</li>`;r.appendChild(i),n.insertBefore(document.createTextNode(`Best Practice ${e}: `),n.firstChild)}const o=document.getElementById("bp-summary");t.length?(document.head.insertBefore(hyperHTML`<style>${[i.default]}</style>`,document.head.querySelector("link")),o&&(o.appendChild(hyperHTML`<h2>Best Practices Summary</h2>`),o.appendChild(r))):o&&((0,n.pub)("warn","Using best practices summary (#bp-summary) but no best practices found."),o.remove())};var r,i=(r=t)&&r.__esModule?r:{default:r};e.name="core/best-practices"}),define("core/figures",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,n,r){i=n,[...i.querySelectorAll(":not(picture)>img:not([width]):not([height]):not([srcset])")].forEach(e=>{e.height=e.naturalHeight,e.width=e.naturalWidth});var i;var o={},a=[],s=0;$("figure").each(function(){var r=$(this),i=r.find("figcaption"),l=i.text(),c=r.makeID("fig",l);i.length||(0,t.pub)("warn","A `<figure>` should contain a `<figcaption>`."),s++,i.wrapInner($("<span class='fig-title'/>")).prepend(n.createTextNode(" ")).prepend($("<span class='figno'>"+s+"</span>")).prepend(n.createTextNode(e.l10n.fig)),o[c]=i.contents();var u=i.clone();u.find("a").renameElement("span").removeAttr("href"),a.push($("<li class='tofline'><a class='tocxref' href='#"+c+"'></a></li>").find(".tocxref").append(u.contents()).end())}),$("a[href]",n).each(function(){var e=$(this),t=e.attr("href");if(t&&(t=t.substring(1),o[t]&&(e.addClass("fig-ref"),""===e.html()))){const n=o[t].slice(0,2).clone();if(!e[0].hasAttribute("title")){const n=o[t].slice(2).clone().text();e.attr("title",n.trim())}e.append(n)}});var l=$("#tof",n);if(a.length&&l.length){l.hasClass("appendix")||l.hasClass("introductory")||l.parents("section").length||(l.prevAll("section.introductory").length===l.prevAll("section").length?l.addClass("introductory"):l.prevAll("appendix").length&&l.addClass("appendix")),l.append($("<h2>"+e.l10n.table_of_fig+"</h2>")),l.append($("<ul class='tof'/>"));for(var c=l.find("ul");a.length;)c.append(a.shift())}r()};e.name="core/figures"}),(()=>{const e={float:/-?(?=[0-9]*\.|[0-9]+[eE])(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][-+]?[0-9]+)?|[0-9]+[Ee][-+]?[0-9]+)/y,integer:/-?(0([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*)/y,identifier:/[A-Z_a-z][0-9A-Z_a-z-]*/y,string:/"[^"]*"/y,whitespace:/[\t\n\r ]+/y,comment:/((\/(\/.*|\*([^*]|\*[^\/])*\*\/)[\t\n\r ]*)+)/y,other:/[^\t\n\r 0-9A-Z_a-z]/y};function t(t,n,r,i){const o=e[n];o.lastIndex=r;const a=o.exec(t);return a?(i.push({type:n,value:a[0]}),o.lastIndex):-1}class n{constructor(e,t,n,r){this.message=e,this.line=t,this.input=n,this.tokens=r}toString(){return`${this.message}, line ${this.line} (tokens: '${this.input}')\n${JSON.stringify(this.tokens,null,4)}`}}function r(e,t){let r=1;e=e.slice();const i=new Map;let o=null;const a="float",s="integer",l="identifier",c="string",u="other",d=Object.freeze({type:"operation",getter:!1,setter:!1,deleter:!1,static:!1,stringifier:!1}),p=Object.freeze({sequence:!1,generic:null,nullable:!1,union:!1,idlType:null,extAttrs:[]});function f(t){let i="",a=0;for(;a<5&&e.length>a;)i+=e[a].value,a++;let s;throw s=o?`Got an error during or right after parsing \`${o.partial?"partial ":""}${o.type} ${o.name}\`: ${t}`:`Got an error before parsing any named definition: ${t}`,new n(s,r,i,e.slice(0,5))}function h(e,t){return i.has(e)&&f(`The name "${e}" of type "${i.get(e)}" is already seen`),i.set(e,t),e}let m=null;function g(t,n){if(e.length&&e[0].type===t)return void 0===n||e[0].value===n?(m=e.shift(),t===l&&m.value.startsWith("_")&&(m.value=m.value.substring(1)),m):void 0}function b(){if(e.length&&("whitespace"===e[0].type||"comment"===e[0].type)){const t=e.shift();return r+=function(e,t){let n=0;for(let r=e.indexOf(t);-1!==r;r=e.indexOf(t,r+1))++n;return n}(t.value,"\n"),t}}const y={ws:/([\t\n\r ]+)/y,"line-comment":/\/\/(.*)\r?\n?/y,"multiline-comment":/\/\*((?:[^*]|\*[^/])*)\*\//y};function v(e,t){const n={type:"whitespace",value:""};for(;;){const e=b();if(!e)break;n.value+=e.value}if(n.value.length>0){if(e){let r=n.value,i=0;for(;i<r.length;){let n=!1;for(let o in y){const a=y[o];a.lastIndex=i;const s=a.exec(r);if(s){e.push({type:o+(t?"-"+t:""),value:s[1]}),n=!0,i=a.lastIndex;break}}if(!n)throw new Error("Surprising white space construct.")}}return n}}function w(){const e=function(){let e="";return v(),g(l,"unsigned")&&(e="unsigned "),v(),g(l,"short")?e+"short":g(l,"long")?(e+="long",v(),g(l,"long")?e+" long":e):void(e&&f("Failed to parse integer type"))}()||function(){let e="";return v(),g(l,"unrestricted")&&(e="unrestricted "),v(),g(l,"float")?e+"float":g(l,"double")?e+"double":void(e&&f("Failed to parse float type"))}();return e||(v(),g(l,"boolean")?"boolean":g(l,"byte")?"byte":g(l,"octet")?"octet":void 0)}function x(){if(g(l,"true"))return{type:"boolean",value:!0};if(g(l,"false"))return{type:"boolean",value:!1};if(g(l,"null"))return{type:"null"};if(g(l,"Infinity"))return{type:"Infinity",negative:!1};if(g(l,"NaN"))return{type:"NaN"};const t=g(a)||g(s);if(t)return{type:"number",value:t.value};const n=g(u,"-");if(n){if(g(l,"Infinity"))return{type:"Infinity",negative:!0};e.unshift(n)}}function k(e){for(;;){if(v(),!g(u,"?"))return;e.nullable&&f("Can't nullable more than once"),e.nullable=!0}}function C(e){const t=w(),n=Object.assign({type:e||null},p);let r,i;if(t)n.idlType=t;else{if(!(r=g(l)))return;if(i=r.value,v(),g(u,"<")){"sequence"===i&&(n.sequence=!0),n.generic=i;const t=[];do{v(),t.push($(e)||f("Error parsing generic type "+i)),v()}while(g(u,","));return"sequence"===i?1!==t.length&&f("A sequence must have exactly one subtype"):"record"===i?(2!==t.length&&f("A record must have exactly two subtypes"),/^(DOMString|USVString|ByteString)$/.test(t[0].idlType)||f("Record key must be DOMString, USVString, or ByteString"),t[0].extAttrs.length&&f("Record key cannot have extended attribute")):"Promise"===i&&t[0].extAttrs.length&&f("Promise type cannot have extended attribute"),n.idlType=1===t.length?t[0]:t,v(),g(u,">")||f("Unterminated generic type "+i),k(n),n}n.idlType=i}return k(n),n.nullable&&"any"===n.idlType&&f("Type any cannot be made nullable"),n}function E(e){if(v(),!g(u,"("))return;const t=Object.assign({type:e||null},p,{union:!0,idlType:[]}),n=$()||f("Union type with no content");for(t.idlType.push(n);v(),g(l,"or");){const e=$()||f("No type after 'or' in union type");t.idlType.push(e)}return g(u,")")||f("Unterminated union type"),k(t),t}function $(e){const t=L(),n=C(e)||E(e);return t.length&&n&&(n.extAttrs=t),n}function T(t){const n={optional:!1,variadic:!1};n.extAttrs=L(t),v(t,"pea");const r=g(l,"optional");if(r&&(n.optional=!0,v()),n.idlType=$("argument-type"),!n.idlType)return void(r&&e.unshift(r));const i=m;n.optional||(v(),e.length>=3&&"other"===e[0].type&&"."===e[0].value&&"other"===e[1].type&&"."===e[1].value&&"other"===e[2].type&&"."===e[2].value&&(e.shift(),e.shift(),e.shift(),n.variadic=!0)),v();const o=g(l);if(!o)return r&&e.unshift(r),void e.unshift(i);if(n.name=o.value,n.optional){v();const e=j();void 0!==e&&(n.default=e)}return n}function S(e){const t=[],n=T(e?t:null);if(!n)return t;for(t.push(n);;){if(v(e?t:null),!g(u,","))return t;const n=T(e?t:null)||f("Trailing comma in arguments list");t.push(n)}}function A(e){v();const t=g(l);if(!t)return;const n={name:t.value,arguments:null,type:"extended-attribute",rhs:null};v();const r=g(u,"=");return r&&(v(),n.rhs=g(l)||g(a)||g(s)||g(c)),v(),g(u,"(")&&(r&&!n.rhs?n.rhs={type:"identifier-list",value:function(){const e=[],t=g(l);t?e.push(t.value):f("Expected identifiers but not found");for(;v(),g(u,",");){v();const t=g(l)||f("Trailing comma in identifiers list");e.push(t.value)}return e}()}:n.arguments=S(e),v(),g(u,")")||f("Unexpected token in extended attribute argument list")),r&&!n.rhs&&f("No right hand side to extended attribute assignment"),n}function L(e){const t=[];if(v(e),!g(u,"["))return t;for(t[0]=A(e)||f("Extended attribute with not content"),v();g(u,",");)t.push(A(e)||f("Trailing comma in extended attribute"));return v(),g(u,"]")||f("No end of extended attribute"),t}function j(){if(v(),g(u,"=")){v();const e=x();if(e)return e;if(g(u,"["))return g(u,"]")||f("Default sequence value must be empty"),{type:"sequence",value:[]};{const e=g(c)||f("No value for default");return e.value=e.value.slice(1,-1),e}}}function D(e){if(v(e,"pea"),!g(l,"const"))return;const t={type:"const",nullable:!1};v();let n=w();n||(n=(n=g(l)||f("No type for const")).value),t.idlType=Object.assign({type:"const-type"},p,{idlType:n}),v(),g(u,"?")&&(t.nullable=!0,v());const r=g(l)||f("No name for const");t.name=r.value,v(),g(u,"=")||f("No value assignment for const"),v();const i=x();return i?t.value=i:f("No value for const"),v(),g(u,";")||f("Unterminated const"),t}function _(){if(v(),g(u,":"))return v(),(g(l)||f("No type in inheritance")).value}function N(e,t){v(),e||(e={});const n=g(l);return e.name=n?n.value:null,v(),g(u,"(")||f("Invalid operation"),e.arguments=S(t),v(),g(u,")")||f("Unterminated operation"),v(),g(u,";")||f("Unterminated operation"),e}function R(t){v(t,"pea");const n=[],r={type:"attribute",static:!1,stringifier:!1,inherit:!1,readonly:!1},i=v();if(i&&n.push(i),g(l,"inherit")){(r.static||r.stringifier)&&f("Cannot have a static or stringifier inherit"),r.inherit=!0,n.push(m);const e=v();e&&n.push(e)}if(g(l,"readonly")){r.readonly=!0,n.push(m);const e=v();e&&n.push(e)}const o=P(r);return o||(e=n.concat(e)),o}function P(e){if(!g(l,"attribute"))return;v(),e.idlType=$("attribute-type")||f("No type in attribute"),e.idlType.sequence&&f("Attributes cannot accept sequence types"),"record"===e.idlType.generic&&f("Attributes cannot accept record types"),v();const t=g(l)||f("No name in attribute");return e.name=t.value,v(),g(u,";")||f("Unterminated attribute"),e}function M(){const e=C(t="return-type")||E(t);var t;if(!e){if(g(l,"void"))return"void";f("No return type")}return e}function O(e){v(e,"pea");const t=Object.assign({},d);for(;;)if(v(),g(l,"getter"))t.getter=!0;else if(g(l,"setter"))t.setter=!0;else{if(!g(l,"deleter"))break;t.deleter=!0}return t.getter||t.setter||t.deleter?(v(),t.idlType=M(),N(t,e),t):(t.idlType=M(),v(),N(t,e),t)}function I(e){if(v(e,"pea"),g(l,"static"))return v(),G(e,"static")||V(e,"static")||f("No body in static member")}function q(e){if(v(e,"pea"),g(l,"stringifier"))return v(),g(u,";")?Object.assign({},d,{stringifier:!0}):G(e,"stringifier")||V(e,"stringifier")||f("Unterminated stringifier")}function U(){return g(l,"iterable")?"iterable":g(l,"legacyiterable")?"legacyiterable":g(l,"maplike")?"maplike":g(l,"setlike")?"setlike":void 0}function W(){return g(l,"maplike")?"maplike":g(l,"setlike")?"setlike":void 0}function H(t){v(t,"pea");const n=[],r={type:null,idlType:null,readonly:!1};if(g(l,"readonly")){r.readonly=!0,n.push(m);var i=v();i&&n.push(i)}const o=(r.readonly?W:U)();if(!o)return void(e=n.concat(e));const a="maplike"===o,s=a||"iterable"===o;return r.type=o,"maplike"!==r.type&&"setlike"!==r.type&&delete r.readonly,v(),g(u,"<")?(r.idlType=[$()]||f(`Error parsing ${o} declaration`),v(),s&&(g(u,",")?(v(),r.idlType.push($()),v()):a&&f(`Missing second type argument in ${o} declaration`)),g(u,">")||f(`Unterminated ${o} declaration`),v(),g(u,";")||f(`Missing semicolon after ${o} declaration`)):f(`Error parsing ${o} declaration`),r}function B(e,n,r="interface"){v();const i=g(l)||f("No name for interface"),a=[],s=o={type:r,name:e?i.value:h(i.value,"interface"),partial:e,members:a};for(e||(s.inheritance=_()||null),v(),g(u,"{")||f("Bodyless interface");;){if(v(n?a:null),g(u,"}"))return v(),g(u,";")||f("Missing semicolon after interface"),s;const e=L(n?a:null);v();const r=D(n?a:null);if(r){r.extAttrs=e,s.members.push(r);continue}const i=t.allowNestedTypedefs&&Z(n?a:null)||I(n?a:null)||q(n?a:null)||H(n?a:null)||R(n?a:null)||O(n?a:null)||f("Unknown member");i.extAttrs=e,s.members.push(i)}}function F(e,t){if(v(e?null:t,"pea"),g(l,"interface"))return function(e,t){if(v(),!g(l,"mixin"))return;v();const n=g(l)||f("No name for interface mixin"),r=[],i=o={type:"interface mixin",name:e?n.value:h(n.value,"interface mixin"),partial:e,members:r};for(v(),g(u,"{")||f("Bodyless interface mixin");;){if(v(t?r:null),g(u,"}"))return v(),g(u,";")||f("Missing semicolon after interface mixin"),i;const e=L(t?r:null);v();const n=D(t?r:null);if(n){n.extAttrs=e,i.members.push(n);continue}const o=q(t?r:null)||G(t?r:null)||V(t?r:null)||f("Unknown member");o.extAttrs=e,i.members.push(o)}}(e,t)||B(e,t)||f("Interface has no proper body")}function z(e,t){if(v(e?null:t,"pea"),!g(l,"namespace"))return;v();const n=g(l)||f("No name for namespace"),r=[],i=o={type:"namespace",name:e?n.value:h(n.value,"namespace"),partial:e,members:r};for(v(),g(u,"{")||f("Bodyless namespace");;){if(v(t?r:null),g(u,"}"))return v(),g(u,";")||f("Missing semicolon after namespace"),i;const e=L(t?r:null);v();const n=G(t?r:null)||V(t?r:null)||f("Unknown member");n.extAttrs=e,i.members.push(n)}}function G(t,n){const r=v(t,"pea"),i=[],o={type:"attribute",static:!1,stringifier:!1,inherit:!1,readonly:!1};if(n&&(o[n]=!0),r&&i.push(r),g(l,"readonly")){o.readonly=!0,i.push(m);const e=v();e&&i.push(e)}const a=P(o);return a||(e=i.concat(e)),a}function V(e,t){v(e,"pea");const n=Object.assign({},d);return t&&(n[t]=!0),n.idlType=M(),N(n,e)}function X(e,t){if(v(e?null:t,"pea"),!g(l,"dictionary"))return;v();const n=g(l)||f("No name for dictionary"),r=[],i=o={type:"dictionary",name:e?n.value:h(n.value,"dictionary"),partial:e,members:r};for(e||(i.inheritance=_()||null),v(),g(u,"{")||f("Bodyless dictionary");;){if(v(t?r:null),g(u,"}"))return v(),g(u,";")||f("Missing semicolon after dictionary"),i;const e=L(t?r:null);v(t?r:null,"pea");const n=g(l,"required"),o=$("dictionary-type")||f("No type for dictionary member");v();const a=g(l)||f("No name for dictionary member"),s=j();n&&s&&f("Required member must not have a default");const c={type:"field",name:a.value,required:!!n,idlType:o,extAttrs:e};void 0!==s&&(c.default=s),i.members.push(c),v(),g(u,";")||f("Unterminated dictionary member")}}function Z(e){if(v(e,"pea"),!g(l,"typedef"))return;const t={type:"typedef"};v(),t.idlType=$("typedef-type")||f("No type in typedef"),v();const n=g(l)||f("No name in typedef");return t.name=h(n.value,"typedef"),o=t,v(),g(u,";")||f("Unterminated typedef"),t}function Y(t){return function(e){let t;if(v(e,"pea"),!g(l,"callback"))return;if(v(),g(l,"interface"))return t=B(!1,e,"callback interface");const n=g(l)||f("No name for callback");return t=o={type:"callback",name:h(n.value,"callback")},v(),g(u,"=")||f("No assignment in callback"),v(),t.idlType=M(),v(),g(u,"(")||f("No arguments in callback"),t.arguments=S(e),v(),g(u,")")||f("Unterminated callback"),v(),g(u,";")||f("Unterminated callback"),t}(t)||F(!1,t)||function(e){if(v(e,"pea"),!g(l,"partial"))return;return X(!0,e)||F(!0,e)||z(!0,e)||f("Partial doesn't apply to anything")}(t)||X(!1,t)||function(e){if(v(e,"pea"),!g(l,"enum"))return;v();const t=g(l)||f("No name for enum"),n=[],r=o={type:"enum",name:h(t.value,"enum"),values:n};v(),g(u,"{")||f("No curly for enum");let i=!1;for(;;){if(v(e?n:null),g(u,"}"))return v(),g(u,";")||f("No semicolon after enum"),r;const t=g(c)||f("Unexpected value in enum");t.value=t.value.slice(1,-1),r.values.push(t),v(e?n:null),g(u,",")?(e&&n.push({type:","}),v(e?n:null),i=!0):i=!1}}(t)||Z(t)||function(t){v(t,"pea");const n=g(l);if(!n)return;const r=v();if(g(l,"implements")){const e={type:"implements",target:n.value};v();const t=g(l)||f("Incomplete implements statement");return e.implements=t.value,v(),g(u,";")||f("No terminating ; for implements statement"),e}r&&e.unshift(r),e.unshift(n)}(t)||function(t){v(t,"pea");const n=g(l);if(!n)return;const r=v();if(g(l,"includes")){const e={type:"includes",target:n.value};v();const t=g(l)||f("Incomplete includes statement");return e.includes=t.value,v(),g(u,";")||f("No terminating ; for includes statement"),e}r&&e.unshift(r),e.unshift(n)}(t)||z(!1,t)}const Q=function(t){if(!e.length)return[];const n=[];for(;;){const e=L(t?n:null),r=Y(t?n:null);if(!r){e.length&&f("Stray extended attributes");break}r.extAttrs=e,n.push(r)}return n}(t.ws);return e.length&&f("Unrecognised tokens"),Q}const i={parse:(e,n)=>(n||(n={}),r(function(e){const n=[];let r=0;for(;r<e.length;){const i=e.charAt(r);let o=-1;if(/[-0-9.]/.test(i)?(-1===(o=t(e,"float",r,n))&&(o=t(e,"integer",r,n)),-1===o&&(o=t(e,"other",r,n))):/[A-Z_a-z]/.test(i)?o=t(e,"identifier",r,n):'"'===i?-1===(o=t(e,"string",r,n))&&(o=t(e,"other",r,n)):/[\t\n\r ]/.test(i)?o=t(e,"whitespace",r,n):"/"===i?-1===(o=t(e,"comment",r,n))&&(o=t(e,"other",r,n)):o=t(e,"other",r,n),-1===o)throw new Error("Token stream not progressing");r=o}return n}(e),n))};"undefined"!=typeof module&&void 0!==module.exports?module.exports=i:"function"==typeof define&&define.amd?define("deps/webidl2",[],()=>i):(self||window).WebIDL2=i})(),define("deps/text!core/css/webidl.css",[],function(){return'/* --- WEB IDL --- */\n\npre.idl {\n padding: 1em;\n}\n\n.respec-idl-separator {\n padding: 0 0 0.4cm 0;\n}\n\n.respec-idl-separator:last-child {\n padding: 0;\n}\n\n@media print {\n pre.idl {\n white-space: pre-wrap;\n }\n}\n\npre.idl::before {\n content: "WebIDL";\n display: block;\n width: 150px;\n background: #90b8de;\n color: #fff;\n font-family: sans-serif;\n font-weight: bold;\n margin: -1em 0 1em -1em;\n height: 28px;\n line-height: 28px; \n}\n\n.idlType {\n color: #ff4500;\n font-weight: bold;\n text-decoration: none;\n}\n\n\n/*.idlModule*/\n\n\n/*.idlModuleID*/\n\n\n/*.idlInterface*/\n\n.idlInterfaceID,\n.idlDictionaryID,\n.idlCallbackID,\n.idlEnumID {\n font-weight: bold;\n color: #005a9c;\n}\n\na.idlEnumItem {\n color: #000;\n border-bottom: 1px dotted #ccc;\n text-decoration: none;\n}\n\n.idlSuperclass {\n font-style: italic;\n color: #005a9c;\n}\n\n\n/*.idlAttribute*/\n\n.idlAttrType,\n.idlFieldType,\n.idlMemberType {\n color: #005a9c;\n}\n\n.idlAttrName,\n.idlFieldName,\n.idlMemberName {\n color: #ff4500;\n}\n\n.idlAttrName a,\n.idlFieldName a,\n.idlMemberName a {\n color: #ff4500;\n border-bottom: 1px dotted #ff4500;\n text-decoration: none;\n}\n\n\n/*.idlMethod*/\n\n.idlMethType,\n.idlCallbackType {\n color: #005a9c;\n}\n\n.idlMethName {\n color: #ff4500;\n}\n\n.idlMethName a {\n color: #ff4500;\n border-bottom: 1px dotted #ff4500;\n text-decoration: none;\n}\n\n\n/*.idlCtor*/\n\n.idlCtorName {\n color: #ff4500;\n}\n\n.idlCtorName a {\n color: #ff4500;\n border-bottom: 1px dotted #ff4500;\n text-decoration: none;\n}\n\n\n/*.idlParam*/\n\n.idlParamType {\n color: #005a9c;\n}\n\n.idlParamName,\n.idlDefaultValue {\n font-style: italic;\n}\n\n.extAttr {\n color: #666;\n}\n\n\n/*.idlSectionComment*/\n\n.idlSectionComment {\n color: gray;\n}\n\n\n/*.idlIterable*/\n\n.idlIterableKeyType,\n.idlIterableValueType {\n color: #005a9c;\n}\n\n\n/*.idlMaplike*/\n\n.idlMaplikeKeyType,\n.idlMaplikeValueType {\n color: #005a9c;\n}\n\n\n/*.idlConst*/\n\n.idlConstType {\n color: #005a9c;\n}\n\n.idlConstName {\n color: #ff4500;\n}\n\n.idlConstName a {\n color: #ff4500;\n border-bottom: 1px dotted #ff4500;\n text-decoration: none;\n}\n\n\n/*.idlException*/\n\n.idlExceptionID {\n font-weight: bold;\n color: #c00;\n}\n\n.idlTypedefID,\n.idlTypedefType {\n color: #005a9c;\n}\n\n.idlRaises,\n.idlRaises a.idlType,\n.idlRaises a.idlType code,\n.excName a,\n.excName a code {\n color: #c00;\n font-weight: normal;\n}\n\n.excName a {\n font-family: monospace;\n}\n\n.idlRaises a.idlType,\n.excName a.idlType {\n border-bottom: 1px dotted #c00;\n}\n\n.excGetSetTrue,\n.excGetSetFalse,\n.prmNullTrue,\n.prmNullFalse,\n.prmOptTrue,\n.prmOptFalse {\n width: 45px;\n text-align: center;\n}\n\n.excGetSetTrue,\n.prmNullTrue,\n.prmOptTrue {\n color: #0c0;\n}\n\n.excGetSetFalse,\n.prmNullFalse,\n.prmOptFalse {\n color: #c00;\n}\n\n.idlImplements a, .idlIncludes a {\n font-weight: bold;\n}\n\ndl.attributes,\ndl.methods,\ndl.constants,\ndl.constructors,\ndl.fields,\ndl.dictionary-members {\n margin-left: 2em;\n}\n\n.attributes dt,\n.methods dt,\n.constants dt,\n.constructors dt,\n.fields dt,\n.dictionary-members dt {\n font-weight: normal;\n}\n\n.attributes dt code,\n.methods dt code,\n.constants dt code,\n.constructors dt code,\n.fields dt code,\n.dictionary-members dt code {\n font-weight: bold;\n color: #000;\n font-family: monospace;\n}\n\n.attributes dt code,\n.fields dt code,\n.dictionary-members dt code {\n background: #ffffd2;\n}\n\n.attributes dt .idlAttrType code,\n.fields dt .idlFieldType code,\n.dictionary-members dt .idlMemberType code {\n color: #005a9c;\n background: transparent;\n font-family: inherit;\n font-weight: normal;\n font-style: italic;\n}\n\n.methods dt code {\n background: #d9e6f8;\n}\n\n.constants dt code {\n background: #ddffd2;\n}\n\n.constructors dt code {\n background: #cfc;\n}\n\n.attributes dd,\n.methods dd,\n.constants dd,\n.constructors dd,\n.fields dd,\n.dictionary-members dd {\n margin-bottom: 1em;\n}\n\ntable.parameters,\ntable.exceptions {\n border-spacing: 0;\n border-collapse: collapse;\n margin: 0.5em 0;\n width: 100%;\n}\n\ntable.parameters {\n border-bottom: 1px solid #90b8de;\n}\n\ntable.exceptions {\n border-bottom: 1px solid #deb890;\n}\n\n.parameters th,\n.exceptions th {\n color: inherit;\n padding: 3px 5px;\n text-align: left;\n font-weight: normal;\n}\n\n.parameters th {\n color: #fff;\n background: #005a9c;\n}\n\n.exceptions th {\n background: #deb890;\n}\n\n.parameters td,\n.exceptions td {\n padding: 3px 10px;\n border-top: 1px solid #ddd;\n vertical-align: top;\n}\n\n.parameters tr:first-child td,\n.exceptions tr:first-child td {\n border-top: none;\n}\n\n.parameters td.prmName,\n.exceptions td.excName,\n.exceptions td.excCodeName {\n width: 100px;\n}\n\n.parameters td.prmType {\n width: 120px;\n}\n\ntable.exceptions table {\n border-spacing: 0;\n border-collapse: collapse;\n width: 100%;\n}\n\n.respec-button-copy-paste:focus {\n text-decoration: none;\n border-color: #51a7e8;\n outline: none;\n box-shadow: 0 0 5px rgba(81, 167, 232, 0.5);\n}\n\n.respec-button-copy-paste:focus:hover,\n.respec-button-copy-paste.selected:focus {\n border-color: #51a7e8;\n}\n\n.respec-button-copy-paste:hover,\n.respec-button-copy-paste:active,\n.respec-button-copy-paste.zeroclipboard-is-hover,\n.respec-button-copy-paste.zeroclipboard-is-active {\n text-decoration: none;\n background-color: #ddd;\n background-image: linear-gradient(#eee, #ddd);\n border-color: #ccc;\n}\n\n.respec-button-copy-paste:active,\n.respec-button-copy-paste.selected,\n.respec-button-copy-paste.zeroclipboard-is-active {\n background-color: #dcdcdc;\n background-image: none;\n border-color: #b5b5b5;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15)\n}\n\n.respec-button-copy-paste.selected:hover {\n background-color: #cfcfcf;\n}\n\n.respec-button-copy-paste:disabled,\n.respec-button-copy-paste:disabled:hover,\n.respec-button-copy-paste.disabled,\n.respec-button-copy-paste.disabled:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n border-color: rgba(197, 197, 197, 0.5);\n box-shadow: none;\n}\n'}),define("core/webidl",["exports","core/pubsubhub","deps/webidl2","handlebars.runtime","deps/text!core/css/webidl.css","templates","core/utils"],function(e,t,n,r,i,o,a){Object.defineProperty(e,"__esModule",{value:!0}),e.done=e.name=void 0,e.run=function(e,n,r){var i=function(){z(),(0,t.pub)("end","core/webidl"),r()},o=$("pre.idl",n);if(!o.length)return i();l.default.registerHelper("extAttr",function(e,t){return U(e.extAttrs,t,!1)}),l.default.registerHelper("extAttrInline",function(e){return U(e.extAttrs,0,!0)}),l.default.registerHelper("extAttrClassName",function(){return"Constructor"===this.name||"NamedConstructor"===this.name?"idlCtor":"extAttr"}),l.default.registerHelper("extAttrRhs",function(e,t){return"identifier"===e.type?t.fn(e.value):`(${e.value.map(t.fn)})`}),l.default.registerHelper("param",function(e){return new l.default.SafeString(L({obj:e,optional:e.optional?"optional ":"",variadic:e.variadic?"...":""}))}),l.default.registerHelper("jsIf",function(e,t){return e?t.fn(this):t.inverse(this)}),l.default.registerHelper("idn",function(e){return new l.default.SafeString(_(e))}),l.default.registerHelper("idlType",function(e){return new l.default.SafeString(N(e.idlType))}),l.default.registerHelper("stringifyIdlConst",function(e){switch(e.type){case"null":return"null";case"Infinity":return e.negative?"-Infinity":"Infinity";case"NaN":return"NaN";case"number":return e.value;case"string":case"boolean":case"sequence":return JSON.stringify(e.value);default:return(0,t.pub)("error","Unexpected constant value type: `"+e.type+"`."),"<Unknown>"}}),l.default.registerHelper("escapeArgumentName",X),l.default.registerHelper("escapeAttributeName",Z),l.default.registerHelper("escapeIdentifier",Y),l.default.registerHelper("pads",function(e){return new l.default.SafeString(M(e))}),l.default.registerHelper("join",function(e,t,n){return e.map(n.fn).join(t)}),l.default.registerHelper("joinNonWhitespace",function(e,t,n){return e.filter(e=>"ws"!==e.type).map(n.fn).join(t)}),l.default.registerHelper("tryLink",function(e,t){const n=t.fn(this),r="toJSON"===e.name&&e.extAttrs.some(({name:e})=>"Default"===e);if(!e.dfn&&!r)return n;const i=document.createElement("a");return i.innerText=n,!e.dfn&&r?i.dataset.cite="WEBIDL#default-tojson-operation":(i.dataset.noDefault="",i.dataset.linkFor=e.linkFor?l.default.Utils.escapeExpression(e.linkFor).toLowerCase():"",i.dataset.lt=e.dfn[0].dataset.lt||""),i.outerHTML}),$(".idl",n).not("pre").length||$(n).find("head link").first().before($("<style/>").text(c.default));o.each(function(){var n;try{n=s.default.parse($(this).text(),{ws:!0})}catch(e){return void(0,t.pub)("error",`Failed to parse WebIDL: \`${e.message}\`.\n <details>\n <pre>${(0,a.normalizePadding)(this.textContent)}\n ${e}</pre>\n </details>`)}!function e(n,r,i,o){n.filter(({type:e})=>!1===["includes","implements","ws","ws-pea","ws-tpea","line-comment","multiline-comment"].includes(e)).forEach(function(n){var a;switch(n.type){case"callback interface":case"dictionary":case"interface":case"interface mixin":var s="";n.partial&&(V[n.name]||(V[n.name]=[]),V[n.name].push(n),s="-partial-"+V[n.name].length),e(n.members,r,n.name,o),a=n.name,n.idlId="idl-def-"+a.toLowerCase()+s;break;case"enum":a=n.name;for(const e of n.values)"string"===e.type&&(e.dfn=ne(a,e.value,r,n.type,o));n.idlId="idl-def-"+a.toLowerCase();break;case"callback":case"typedef":a=n.name,n.idlId="idl-def-"+a.toLowerCase();break;case"attribute":case"const":case"field":a=n.name,n.idlId="idl-def-"+i.toLowerCase()+"-"+a.toLowerCase();break;case"operation":if(n.name){a=n.name;var l=i+"."+a,c=i+"."+a+"()";G[c]||(G[c]=[]),G[l]?(n.overload=G[l].length,a=n.name+"!overload-"+n.overload):G[l]=[],G[c].push(n),G[l].push(n)}else(n.getter||n.setter||n.deleter||n.stringifier)&&(a="");const u=`idl-def-${i.toLowerCase()}-${a.toLowerCase()}`,d=n.overload||!n.arguments.length?"":"-"+n.arguments.filter(e=>!I(e.type)).map(e=>e.name.toLowerCase()).join("-").replace(/\s/g,"_");n.idlId=u+d;break;case"maplike":a="maplike",n.idlId=("idl-def-"+i+"-"+a).toLowerCase();break;case"iterable":a="iterable",n.idlId="idl-def-"+i.toLowerCase()+"-"+a.toLowerCase();break;default:return void(0,t.pub)("error",new Error("ReSpec doesn't know about IDL type: `"+n.type+"`."))}i&&(n.linkFor=i),n.dfn=ne(i,a,r,n.type,o)})}(n,e.definitionMap,"",this);var r,i,o=(r=n,(i=$("<pre></pre>").attr({class:"def idl"})).html(r.filter(function(e){return!I(e.type)}).map(function(e){return function(e,n){var r={indent:++n,obj:e};switch(e.type){case"typedef":return j(r);case"includes":return w(r);case"implements":return x(r);case"interface":return Q(r);case"interface mixin":return Q(r,{mixin:!0});case"callback interface":return Q(r,{callback:!0});case"dictionary":var i=0,o=0;e.members.filter(function(e){return!I(e.type)});for(const t of e.members){if(I(t.type))continue;const e=t.required?"required ":"";i<e.length&&(i=e.length);var a=P(t.idlType).length;o<a&&(o=a)}var s=e.members.map(function(e){switch(e.type){case"field":return r=i,(a={obj:t=e,indent:n+1}).typePad=o-P(t.idlType).length,t.required?a.qualifiers="required ":a.qualifiers=" ",a.qualifiers=a.qualifiers.slice(0,r),g(a);case"line-comment":return ee(e,n+1);case"multiline-comment":return te(e,n+1);case"ws":return K(e);case"ws-pea":break;default:throw new Error("Unexpected type in dictionary: `"+e.type+"`.")}var t,r,a}).join("");return m({obj:e,indent:n,children:s,partial:e.partial?"partial ":""});case"callback":var l=e.arguments.filter(function(e){return!I(e.type)}).map(function(e){return L({obj:e,optional:e.optional?"optional ":"",variadic:e.variadic?"...":""})}),c={obj:e,indent:n,children:l.join(", ")},u=f(c),d=$(u).text();if(d.length>80){var p=d.indexOf("(")+1;c.children=l.join(",\n"+M(p)),u=f(c)}return u;case"enum":for(var s="",h=0;h<e.values.length;h++){var v=e.values[h];switch(v.type){case"string":for(var k=!1,C=h+1;C<e.values.length;C++){var E=e.values[C];if(void 0===E.type)break;if(","===E.type){k=!0;break}}s+=b({lname:v.value?v.value.toLowerCase():"the-empty-string",name:v.value,parentID:e.name.toLowerCase(),indent:n+1,needsComma:k});break;case"line-comment":s+=ee(v,n+1);break;case"multiline-comment":s+=te(v,n+1);break;case"ws":s+=K(v);break;case",":case"ws-pea":break;default:throw new Error("Unexpected type in exception: `"+v.type+"`.")}}return y({obj:e,indent:n,children:s});default:return(0,t.pub)("error","Unexpected object type `"+e.type+"` in "+JSON.stringify(e)),""}}(e,-1)}).join("\n\n")),i);o.attr({id:this.id}),o.find(".idlAttribute,.idlCallback,.idlConst,.idlDictionary,.idlEnum,.idlException,.idlField,.idlInterface,.idlMember,.idlMethod,.idlMaplike,.idlIterable,.idlTypedef").each(function(){var t=$(this),n=t.attr("data-title").toLowerCase(),r=t.parent().closest(".idlDictionary,.idlEnum,.idlException,.idlInterface");r.length&&t.attr("data-dfn-for",r.attr("data-title").toLowerCase()),e.definitionMap[n]||(e.definitionMap[n]=[]),e.definitionMap[n].push(t)}),$(this).replaceWith(o),o[0].classList.add(...this.classList)}),n.normalize(),i()};var s=d(n),l=d(r),c=d(i),u=d(o);function d(e){return e&&e.__esModule?e:{default:e}}e.name="core/webidl";var p=u.default["attribute.html"],f=u.default["callback.html"],h=u.default["const.html"],m=u.default["dictionary.html"],g=u.default["dict-member.html"],b=u.default["enum-item.html"],y=u.default["enum.html"],v=u.default["extended-attribute.html"],w=(u.default["field.html"],u.default["includes.html"]),x=u.default["implements.html"],k=u.default["interface.html"],C=u.default["iterable.html"],E=u.default["line-comment.html"],T=u.default["maplike.html"],S=u.default["method.html"],A=u.default["multiline-comment.html"],L=u.default["param.html"],j=u.default["typedef.html"],D=new Set(["maplike","setlike","stringifier"]);function _(e){return" ".repeat(e)}function N(e){if("string"==typeof e)return`<a>${l.default.Utils.escapeExpression(e)}</a>`;if(Array.isArray(e))return e.map(N).join(", ");const t=U(e.extAttrs,0,!0),n=e.nullable?"?":"";if(e.union)return`${t}(${e.idlType.map(N).join(" or ")})${n}`;let r="";return t+(r=e.generic?`${r=W.has(e.generic)?R(e.generic):N(e.generic)}<${N(e.idlType)}>`:W.has(e.idlType)?R(e.idlType):N(e.idlType))+n}function R(e){if(!W.has(e))return e;const t=l.default.Utils.escapeExpression(e);return`<a data-cite='${W.get(t)}'>${t}</a>`}function P(e){if("string"==typeof e)return e;const t=e.nullable?"?":"";if(e.union)return`(${e.idlType.map(P).join(" or ")})${t}`;if(e.generic){const n=[].concat(e.idlType).map(P).join(", ");return`${e.generic}<${n}>${t}`}return P(e.idlType)+t}function M(e){return" ".repeat(e)}var O={ws:!0,"ws-pea":!0,"ws-tpea":!0,"line-comment":!0,"multiline-comment":!0};function I(e){return O[e]}const q=new Map([["CEReactions","HTML#cereactions"],["Clamp","WEBIDL#Clamp"],["Constructor","WEBIDL#Constructor"],["Default","WEBIDL#Default"],["EnforceRange","WEBIDL#EnforceRange"],["Exposed","WEBIDL#Exposed"],["Global","WEBIDL#Global"],["HTMLConstructor","HTML#htmlconstructor"],["LegacyUnenumerableNamedProperties","WEBIDL#LegacyUnenumerableNamedProperties"],["LenientSetter","WEBIDL#LenientSetter"],["LenientThis","WEBIDL#LenientThis"],["NamedConstructor","WEBIDL#NamedConstructor"],["NewObject","WEBIDL#NewObject"],["NoInterfaceObject","WEBIDL#NoInterfaceObject"],["OverrideBuiltins","WEBIDL#OverrideBuiltins"],["PrimaryGlobal","WEBIDL#PrimaryGlobal"],["PutForwards","WEBIDL#PutForwards"],["Replaceable","WEBIDL#Replaceable"],["SameObject","WEBIDL#SameObject"],["SecureContext","WEBIDL#SecureContext"],["TreatNonObjectAsNull","WEBIDL#TreatNonObjectAsNull"],["TreatNullAs","WEBIDL#TreatNullAs"],["Unforgeable","WEBIDL#Unforgeable"],["Unscopable","WEBIDL#Unscopable"]]);function U(e,t,n){if(0===e.length)return"";var r={extAttrs:e,indent:t,sep:n?", ":",\n "+_(t),end:n?" ":"\n"};const i=new l.default.SafeString(v(r)),o=document.createElement("div");return o.innerHTML=i,Array.from(o.querySelectorAll(".extAttrName")).filter(function(e){return q.has(e.textContent)}).forEach(function(e){const t=e.ownerDocument.createElement("a");t.dataset.cite=q.get(e.textContent),t.textContent=e.textContent,e.replaceChild(t,e.firstChild)}),new l.default.SafeString(o.innerHTML)}const W=new Map([["any","WEBIDL#idl-any"],["ArrayBuffer","WEBIDL#idl-ArrayBuffer"],["boolean","WEBIDL#idl-boolean"],["Buffer","WEBIDL#idl-Buffer"],["byte","WEBIDL#idl-byte"],["ByteString","WEBIDL#idl-ByteString"],["Callback","WEBIDL#idl-Callback"],["DataView","WEBIDL#idl-DataView"],["DOMException","WEBIDL#idl-DOMException"],["DOMString","WEBIDL#idl-DOMString"],["double","WEBIDL#idl-double"],["Error","WEBIDL#idl-Error"],["EventHandler","HTML#eventhandler"],["float","WEBIDL#idl-float"],["Float32Array","WEBIDL#idl-Float32Array"],["Float64Array","WEBIDL#idl-Float64Array"],["FrozenArray","WEBIDL#idl-frozen-array"],["Int16Array","WEBIDL#idl-Int16Array"],["Int32Array","WEBIDL#idl-Int32Array"],["Int8Array","WEBIDL#idl-Int8Array"],["long long","WEBIDL#idl-long-long"],["long","WEBIDL#idl-long"],["object","WEBIDL#idl-object"],["octet","WEBIDL#idl-octet"],["Promise","WEBIDL#idl-promise"],["record","WEBIDL#idl-record"],["sequence","WEBIDL#idl-sequence"],["short","WEBIDL#idl-short"],["Uint16Array","WEBIDL#idl-Uint16Array"],["Uint32Array","WEBIDL#idl-Uint32Array"],["Uint8Array","WEBIDL#idl-Uint8Array"],["Uint8ClampedArray","WEBIDL#dl-Uint8ClampedArray"],["unrestricted double","WEBIDL#idl-unrestricted-double"],["unrestricted float","WEBIDL#idl-unrestricted-float"],["unsigned long long","WEBIDL#idl-unsigned-long-long"],["unsigned long","WEBIDL#idl-unsigned-long"],["unsigned short","WEBIDL#idl-unsigned-short"],["USVString","WEBIDL#idl-USVString"]]),H=new Set(["any","attribute","boolean","byte","ByteString","callback","const","creator","Date","deleter","dictionary","DOMString","double","enum","false","float","getter","implements","Infinity","inherit","interface","iterable","long","maplike","NaN","null","object","octet","optional","or","partial","readonly","RegExp","required","sequence","setlike","setter","short","static","stringifier","true","typedef","unrestricted","unsigned","USVString","void"]),B=new Set(["attribute","callback","const","creator","deleter","dictionary","enum","getter","implements","inherit","interface","iterable","maplike","partial","required","setlike","setter","static","stringifier","typedef","unrestricted"]),F=new Set(["required"]);var z,G={},V={};function X(e){return H.has(e)&&!B.has(e)?"_"+e:e}function Z(e){return H.has(e)&&!F.has(e)?"_"+e:e}function Y(e){return H.has(e)?"_"+e:e}function Q(e,t={}){var n=e.obj,r=e.indent,i=0,o=0,a=0,s=0;for(const e of n.members)if(!I(e.type)&&"maplike"!==e.type&&"iterable"!==e.type){var l=P(e.idlType).length;if("attribute"===e.type){var c=J(e).length;i=Math.max(l,i),o=Math.max(c,o)}else"operation"===e.type?(e.static?l+="static ".length:e.stringifier?l+="stringifier ".length:e.getter?l+="getter ".length:e.setter&&(l+="setter ".length),a=Math.max(l,a)):"const"===e.type&&(s=Math.max(l,s))}var u=n.members.map(function(e){switch(e.type){case"attribute":return d=i,f=r+1,m=o,g=P((u=e).idlType).length,b=d-g,y=J(u),y=(y+=M(m)).slice(0,m),p({obj:u,indent:f,qualifiers:y,pad:b});case"operation":return function(e,t,n){var r=e.arguments.filter(function(e){return!I(e.type)}).map(function(e){return L({obj:e,optional:e.optional?"optional ":"",variadic:e.variadic?"...":""})}),i=r.join(", "),o=P(e.idlType).length,a=["getter","setter","deleter","stringifier","static"],s="";for(var l in a)if(e[a[l]]){o+=(s=a[l]+" ").length;break}var c={obj:e,indent:n,special:s,pad:t-o,children:i},u=S(c),d=$(u).text();if(d.length>80){var p=d.indexOf("(")+1;c.children=r.join(",\n"+M(p)),u=S(c)}return u}(e,a,r+1);case"const":return function(e,t,n){var r=t-P(e.idlType).length;e.nullable&&r--;return h({obj:e,indent:n,pad:r,nullable:e.nullable?"?":""})}(e,s,r+1);case"maplike":return c=r+1,T({obj:l=e,qualifiers:l.readonly?"readonly ":"",indent:c});case"iterable":return n=r+1,C({obj:t=e,qualifiers:t.readonly?"readonly ":"",indent:n});case"ws":return K(e);case"line-comment":return ee(e,r+1);case"multiline-comment":return te(e,r+1);default:throw new Error("Unexpected member type: `"+e.type+"`.")}var t,n,l,c,u,d,f,m,g,b,y}).join("");return k({obj:n,indent:r,partial:n.partial?"partial ":"",callback:t.callback?"callback ":"",mixin:t.mixin?"mixin ":"",children:u})}function J(e){var t="";return e.static&&(t+="static "),e.stringifier&&(t+="stringifier "),e.inherit&&(t+="inherit "),e.readonly&&(t+="readonly "),t}function K(e){return/\n.*\n/.test(e.value)?"\n":""}function ee(e,t){return E({indent:t,comment:e.value})}function te(e,t){var n=e.value.split(/\r\n|\r|\n/);if(0===n.length)return"";if(1===n.length)return E({indent:t,comment:n[0]});var r=Math.max(0,/^ */.exec(n[1])[0].length-3);function i(e){return e.slice(r)}return A({indent:t,firstLine:n[0],lastLine:i(n[n.length-1]),innerLine:n.slice(1,-1).map(i)})}function ne(e,n,r,i,o){const a=e,s=n;switch(e=e.toLowerCase(),i){case"operation":if(-1!==n.search("!overload")){n=n.toLowerCase();break}const t=n.toLowerCase()+"()",a=e+"."+n.toLowerCase()+"()";if(r[t]||r[a]){const i=r[t]?t:a,s=ne(e,i,r,null,o);if(!s)break;const l=s[0].dataset.lt?s[0].dataset.lt.split("|"):[];return l.push(i,n),s[0].dataset.lt=l.join("|"),r[n]||(r[n]=[]),r[n].push(s),s}const s=ne(e,n,r,null,o);if(!s)break;const l=s[0].dataset.lt?s[0].dataset.lt.split("|"):[];return l.push(t,n),s[0].dataset.lt=l.reverse().join("|"),r[t]=[s],s;case"enum":if(""===n){n="the-empty-string";break}default:n=n.toLowerCase()}if(D.has(n))return;var l=r[n],c=[];if(l&&0===(c=l.filter(t=>t[0].dataset.dfnFor===e)).length&&""===e&&1===l.length&&(c=l),0===c.length&&""!==e){var u=e+"."+n;void 0!==(l=r[u])&&1===l.length&&(c=l,delete r[u],c[0].attr("data-dfn-for",e),c[0].attr("data-lt",n),void 0===r[n]&&(r[n]=[]),r[n].push(c[0]))}if(c.length>1){const e=`Multiple \`<dfn>\`s for \`${s}\` ${a?`in \`${a}\``:""}`;(0,t.pub)("error",new Error(e))}if(0===c.length){if(i&&o&&n&&!1===o.classList.contains("no-link-warnings")){var d=`No \`<dfn>\` for ${i} \`${s}\`${a?" in `"+a+"`":""}`;d+=". [More info](https://github.com/w3c/respec/wiki/WebIDL-thing-is-not-defined).",(0,t.pub)("warn",d)}return}const p=c[0][0],f="dom-"+(e?e+"-":"")+n.replace(/[()]/g,"");if(p.id=f,p.dataset.idl="",p.dataset.title=p.textContent,p.dataset.dfnFor=e,!p.querySelector("code")&&!p.closest("code")&&p.children){const e=p.ownerDocument.createElement("code");for(;p.hasChildNodes();)e.appendChild(p.firstChild);p.appendChild(e)}return c[0]}e.done=new Promise(function(e){z=e})}),define("core/biblio-db",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.biblioDB=e.name=void 0;e.name="core/biblio-db";const n=new Set(["alias","reference"]),r=new Promise((e,t)=>{let n;try{n=window.indexedDB.open("respec-biblio2",12)}catch(e){return t(e)}n.onerror=(()=>{t(new DOMException(n.error.message,n.error.name))}),n.onsuccess=(()=>{e(n.result)}),n.onupgradeneeded=(async()=>{const r=n.result;Array.from(r.objectStoreNames).map(e=>r.deleteObjectStore(e));const i=[new Promise((e,t)=>{try{const n=r.createObjectStore("alias",{keyPath:"id"});n.createIndex("aliasOf","aliasOf",{unique:!1}),n.transaction.oncomplete=e,n.transaction.onerror=t}catch(e){t(e)}}),new Promise((e,t)=>{try{const n=r.createObjectStore("reference",{keyPath:"id"}).transaction;n.oncomplete=e,n.onerror=t}catch(e){t(e)}})];try{await Promise.all(i),e()}catch(e){t(e)}})});e.biblioDB={get ready(){return r},async find(e){return await this.isAlias(e)&&(e=await this.resolveAlias(e)),this.get("reference",e)},async has(e,t){if(!n.has(e))throw new TypeError("Invalid type: "+e);if(!t)throw new TypeError("id is required");const r=await this.ready;return new Promise((n,i)=>{var o=r.transaction([e],"readonly").objectStore(e),a=IDBKeyRange.only(t),s=o.openCursor(a);s.onsuccess=(()=>{n(!!s.result)}),s.onerror=(()=>{i(new DOMException(s.error.message,s.error.name))})})},async isAlias(e){if(!e)throw new TypeError("id is required");const t=await this.ready;return new Promise((n,r)=>{var i=t.transaction(["alias"],"readonly").objectStore("alias"),o=IDBKeyRange.only(e),a=i.openCursor(o);a.onsuccess=(()=>{n(!!a.result)}),a.onerror=(()=>{r(new DOMException(a.error.message,a.error.name))})})},async resolveAlias(e){if(!e)throw new TypeError("id is required");const t=await this.ready;return new Promise((n,r)=>{var i=t.transaction("alias","readonly").objectStore("alias"),o=IDBKeyRange.only(e),a=i.openCursor(o);a.onsuccess=(()=>{if(null===a.result)return n(null);n(a.result.value.aliasOf)}),a.onerror=(()=>{r(new DOMException(a.error.message,a.error.name))})})},async get(e,t){if(!n.has(e))throw new TypeError("Invalid type: "+e);if(!t)throw new TypeError("id is required");const r=await this.ready;return new Promise((n,i)=>{var o=r.transaction([e],"readonly").objectStore(e),a=IDBKeyRange.only(t),s=o.openCursor(a);s.onsuccess=(()=>{if(null===s.result)return n(null);n(s.result.value)}),s.onerror=(()=>{i(new DOMException(s.error.message,s.error.name))})})},async addAll(e){if(!e)return;const n={alias:new Set,reference:new Set};Object.keys(e).filter(n=>{if("string"==typeof e[n]){let e=`Legacy SpecRef entries are not supported: \`[[${n}]]\`. `;return e+="Please update it to the new format at [specref repo](https://github.com/tobie/specref/)",(0,t.pub)("error",e),!1}return!0}).map(t=>Object.assign({id:t},e[t])).reduce((e,t)=>(t.aliasOf?e.alias.add(t):e.reference.add(t),e),n);const r=Object.keys(n).map(e=>Array.from(n[e]).map(t=>this.add(e,t))).reduce((e,t)=>e.concat(t),[]);await Promise.all(r)},async add(e,t){if(!n.has(e))throw new TypeError("Invalid type: "+e);if("object"!=typeof t)throw new TypeError("details should be an object");if("alias"===e&&!t.hasOwnProperty("aliasOf"))throw new TypeError("Invalid alias object.");const r=await this.ready,i=await this.has(e,t.id);return new Promise((n,o)=>{const a=r.transaction([e],"readwrite").objectStore(e);var s=i?a.put(t):a.add(t);s.onsuccess=n,s.onerror=(()=>{o(new DOMException(s.error.message,s.error.name))})})},async close(){(await this.ready).close()}}}),define("core/biblio",["exports","core/biblio-db","core/utils","core/pubsubhub"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.done=e.name=void 0,e.wireReference=function(e,t="_blank"){if("object"!=typeof e)throw new TypeError("Only modern object references are allowed");const n=Object.assign({},s,e),r=n.authors.join("; ")+(n.etAl?" et al":""),i=a.get(n.status)||n.status;return hyperHTML.wire(n)` - <cite> - <a - href="${n.href}" - target="${t}" - rel="noopener noreferrer"> - ${n.title.trim()}</a>. - </cite> - <span class="authors"> - ${l(r)} - </span> - <span class="publisher"> - ${l(n.publisher)} - </span> - <span class="pubDate"> - ${l(n.date)} - </span> - <span class="pubStatus"> - ${l(i)} - </span> - `},e.stringifyReference=u,e.resolveRef=async function e(t){const n=await f;if(!n.hasOwnProperty(t))return null;const r=n[t];if(r.aliasOf)return await e(r.aliasOf);return r},e.run=async function(e,n,i){e.localBiblio||(e.localBiblio={});if(e.biblio){let e="Overriding `.biblio` in config. Please use ";e+="`.localBiblio` for custom biblio entries.",(0,r.pub)("warn",e)}e.biblio={};const a=Array.from(Object.keys(e.localBiblio)).filter(t=>e.localBiblio[t].hasOwnProperty("aliasOf")).map(t=>e.localBiblio[t].aliasOf);s=e,Array.from(s.informativeReferences).filter(e=>s.normativeReferences.has(e)).forEach(e=>s.informativeReferences.delete(e));var s;const l=o(e),c=l.normativeReferences.concat(l.informativeReferences).filter(t=>!e.localBiblio.hasOwnProperty(t)).concat(a).reduce((e,t)=>(-1===e.indexOf(t)&&e.push(t),e),[]).sort(),d=[];try{await t.biblioDB.ready;const e=c.map(async e=>({id:e,data:await t.biblioDB.find(e)}));d.push(...await Promise.all(e))}catch(e){d.push(...c.map(e=>({id:e,data:null}))),console.warn(e)}const f={hasData:[],noData:[]};d.reduce((e,t)=>(t.data?e.hasData.push(t):e.noData.push(t),e),f),f.hasData.reduce((e,t)=>(e[t.id]=t.data,e),e.biblio);const m=f.noData.map(e=>e.id);if(m.length){const t=await h(m,{forceUpdate:!0});Object.assign(e.biblio,t)}Object.assign(e.biblio,e.localBiblio),function(e){var t={},n=o(e),i=n.informativeReferences,a=n.normativeReferences,s={};if(!i.length&&!a.length&&!e.refNote)return;var l=$("<section id='references' class='appendix'><h2>"+e.l10n.references+"</h2></section>").appendTo($("body"));e.refNote&&$("<p></p>").html(e.refNote).appendTo(l);for(var c=["Normative","Informative"],d=0;d<c.length;d++){var p=c[d],f="Normative"===p?a:i,h="Normative"===p?e.l10n.norm_references:e.l10n.info_references;if(f.length){var m=$("<section><h3></h3></section>").appendTo(l).find("h3").text(h).end();m.makeID(null,p+" references"),f.sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase()));for(var g=$("<dl class='bibliography'></dl>").appendTo(m),b=0;b<f.length;b++){var y=f[b];$("<dt></dt>").attr({id:"bib-"+y}).text("["+y+"]").appendTo(g);var v=$("<dd></dd>").appendTo(g),w=e.biblio[y],x={},k=y;for(x[y]=!0;w&&w.aliasOf;)if(x[w.aliasOf]){w=null;const e=`Circular reference in biblio DB between [\`${y}\`] and [\`${k}\`].`;(0,r.pub)("error",e)}else k=w.aliasOf,w=e.biblio[k],x[k]=!0;s[k]=s[k]||[],s[k].indexOf(y)<0&&s[k].push(y),w?v.html(u(w)+"\n"):(t[y]||(t[y]=0),t[y]++,v.html("<em style='color: #f00'>Reference not found.</em>\n"))}}}for(var C in s)if(s[C].length>1){let e=`[${C}] is referenced in ${s[C].length} ways: `;e+=`(${s[C].map(e=>`'${e}'`).join(", ")}). This causes`,e+=" duplicate entries in the References section.",(0,r.pub)("warn",e)}for(var E in t){const e=`Bad reference: [\`${E}\`] (appears ${t[E]} times)`;t.hasOwnProperty(E)&&(0,r.pub)("error",e)}}(e),p(e.biblio),i(),await h(c)};e.name="core/biblio";const i=new URL("https://specref.herokuapp.com/bibrefs?refs=");function o(e){return{informativeReferences:Array.from(e.informativeReferences),normativeReferences:Array.from(e.normativeReferences)}}const a=new Map([["CR","W3C Candidate Recommendation"],["ED","W3C Editor's Draft"],["FPWD","W3C First Public Working Draft"],["LCWD","W3C Last Call Working Draft"],["NOTE","W3C Note"],["PER","W3C Proposed Edited Recommendation"],["PR","W3C Proposed Recommendation"],["REC","W3C Recommendation"],["WD","W3C Working Draft"],["WG-NOTE","W3C Working Group Note"]]),s=Object.freeze({authors:[],date:"",href:"",publisher:"",status:"",title:"",etAl:!1}),l=(c=".",e=>{const t=e.trim();return!t||t.endsWith(c)?t:t+c});var c;function u(e){if("string"==typeof e)return e;let t=`<cite>${e.title}</cite>`;(t=e.href?`<a href="${e.href}">${t}</a>. `:`${t}. `,e.authors&&e.authors.length&&(t+=e.authors.join("; "),e.etAl&&(t+=" et al"),t+="."),e.publisher)&&(t=`${t} ${e.publisher+(/\.$/.test(e.publisher)?"":".")} `);return e.date&&(t+=e.date+". "),e.status&&(t+=(a.get(e.status)||e.status)+". "),e.href&&(t+=`URL: <a href="${e.href}">${e.href}</a>`),t}var d=(0,n.createResourceHint)({hint:"dns-prefetch",href:i.origin});let p;document.head.appendChild(d);const f=e.done=new Promise(e=>{p=e});async function h(e,n={forceUpdate:!1}){if(!e.length||!1===navigator.onLine)return;let r;try{r=await fetch(i.href+e.join(","))}catch(e){return console.error(e),null}if(!n.forceUpdate&&!r.ok||200!==r.status)return null;const o=await r.json();try{await t.biblioDB.addAll(o)}catch(e){console.error(e)}return o}}),define("core/data-cite",["exports","core/pubsubhub","core/biblio"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=async function(e){const t=r(e);Array.from(document.querySelectorAll(["dfn[data-cite], a[data-cite]"])).filter(e=>e.dataset.cite).map(t).forEach(({isNormative:t,key:n})=>{const r=t?e.normativeReferences:e.informativeReferences;r.add(n)})},e.linkInlineCitations=async function(e,i=respecConfig){const o=function(e){const i=r(e);return async function(r){const o=r.dataset.cite;let{key:a,frag:s,path:l}=i(r),c="";if(a===e.shortName)c=document.location.href;else{const e=await(0,n.resolveRef)(a);if(d=r,["data-cite","data-cite-frag"].filter(e=>d.hasAttribute(e)).forEach(e=>d.removeAttribute(e)),!e){var u=`Couldn't find a match for 'data-cite=${o}'.`;return console.warn(u,r),u+=" Please check developer console for offending element.",void(0,t.pub)("warn",u)}c=e.href}var d;switch(l&&(c=new URL(l,c).href),s&&(c=new URL(s,c).href),r.localName){case"a":r.href=c;break;case"dfn":{const e=r.ownerDocument.createElement("a");for(e.href=c;r.firstChild;)e.appendChild(r.firstChild);r.appendChild(e,r);break}}}}(i),a=e.querySelectorAll("dfn[data-cite], a[data-cite]"),s=Array.from(a).map(o);return await Promise.all(s)};e.name="core/data-cite";function r(e){return function t(n){const{dataset:r}=n;let{cite:i,citeFrag:o,citePath:a}=r;const s=i.startsWith("!"),l=i.search("/"),c=i.search("#");if(i.startsWith("#")&&!o){const r=n.parentElement.closest('[data-cite]:not([data-cite^="#"])'),{key:o,isNormative:a}=r?t(r):{key:e.shortName||"",isNormative:!1};return n.dataset.cite=a?`!${o}`:o,n.dataset.citeFrag=i,t(n)}return-1!==c&&(o=o||i.substr(c),i=i.substring(0,c)),-1!==l&&(a=a||i.substr(l),i=i.substring(0,l)),s&&(i=i.substr(1)),o&&!o.startsWith("#")&&(o="#"+o),a&&a.startsWith("/")&&(a=a.substr(1)),{key:i,isNormative:s,frag:o,path:a}}}}),define("core/webidl-index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.run=function(e,t,n){const r=t.querySelector("section#idl-index");if(!r)return n();const i=[2,3,4,5,6].map(e=>`h${e}:first-child`).join(",");if(!r.querySelector(i)){const e=document.createElement("h2");r.title?(e.innerHTML=r.title,r.removeAttribute("title")):e.innerHTML="IDL Index",r.insertAdjacentElement("afterbegin",e)}if(!document.querySelector("pre.idl")){const e="This specification doesn't declare any Web IDL.",t=document.createTextNode(e);return r.appendChild(t),n()}const o=document.createDocumentFragment(),a=document.createElement("pre");a.classList.add("idl","def"),a.id="actual-idl-index",Array.from(document.querySelectorAll("pre.def.idl")).map(e=>{const t=document.createElement("span"),{children:n}=e.cloneNode(!0);for(const e of Array.from(n))t.appendChild(e),t.appendChild(document.createTextNode("\n"));return t.classList.add("respec-idl-separator"),t}).reduce((e,t)=>(e.appendChild(t),e),a),Array.from(a.querySelectorAll("*[id]")).forEach(e=>e.removeAttribute("id")),o.appendChild(a),r.appendChild(o),n()};e.name="core/webidl-index"}),define("core/link-to-dfn",["exports","core/data-cite","core/pubsubhub","./l10n"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,r,a){r.normalize();var s={};Object.keys(e.definitionMap).forEach(function(t){s[t]={};var r=[];if(e.definitionMap[t].forEach(function(e){void 0===e.attr("data-idl")&&e.removeAttr("data-dfn-for");var n=e.attr("data-dfn-for")||"";if(n in s[t]){var a=0!==s[t][n].filter("dfn").length,l=0!==e.filter("dfn").length;if(a&&l&&(e.addClass("respec-offending-element"),void 0===e.attr("title")&&e.attr("title",i[o].duplicate),void 0===e.attr("id")&&e.makeID(null,t),r.push(e[0])),a)return}s[t][n]=e,void 0===e.attr("id")&&(e.attr("data-idl")?e.makeID("dom",(n?n+"-":"")+t):e.makeID("dfn",t))}),r.length>0){const e=r.map((e,t)=>`[${t+1}](#${e.id})`).join(", ");(0,n.pub)("error",`Duplicate definitions of '${t}' at: ${e}.`)}}),$("a:not([href]):not([data-cite]):not(.logo)").each(function(){const e=$(this);if(e.hasClass("externalDFN"))return;const t=e.linkTargets(),r=t.some(function(t){if(s[t.title]&&s[t.title][t.for]){const n=s[t.title][t.for];if(n[0].dataset.cite)e[0].dataset.cite=n[0].dataset.cite;else{const t="#"+encodeURIComponent(n.prop("id"));e.attr("href",t).addClass("internalDFN")}if(e.attr("data-link-type")||e.attr("data-link-type","dfn"),n.closest("code,pre").length||1===n.contents().length&&1===n.children("code").length){const t=e[0].textContent.trim(),r=n[0].dataset.hasOwnProperty("idl"),i=r?n[0].dataset.title===t:n[0].textContent.trim()===t;if(r&&!i)return!0;e.wrapInner("<code></code>")}return!0}return!1});if(!r&&0!==t.length){if(!e.parents(".idl:not(.extAttr), dl.methods, dl.attributes, dl.constants, dl.constructors, dl.fields, dl.dictionary-members, span.idlMemberType, span.idlTypedefType, div.idlImplementsDesc").length){const r=t[0].for,i=t[0].title;return this.classList.add("respec-offending-element"),this.title="Linking error: not matching <dfn>",(0,n.pub)("warn","Found linkless <a> element "+(r?"for '"+r+"' ":"")+"with text '"+i+"' but no matching `<dfn>`."),void console.warn("Linkless element:",e[0])}e.replaceWith(e.contents())}}),(0,t.linkInlineCitations)(r,e).then(()=>{(0,n.pub)("end","core/link-to-dfn"),a()})};e.name="core/link-to-dfn";const i={en:{duplicate:"This is defined more than once in the document."}},o=r.lang in i?r.lang:"en"}),define("core/contrib",["exports","core/github","core/pubsubhub","core/utils"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=async function(e){const i=document.getElementById("gh-commenters"),l=document.getElementById("gh-contributors");if(!i&&!l)return;const c={},{githubAPI:u,githubUser:d,githubToken:p}=e;if(d&&p){const e=btoa(`${d}:${p}`),t=`Basic ${e}`;Object.assign(c,{Authorization:t})}if(!u){const e="Requested list of contributors and/or commenters from GitHub, but [`githubAPI`](https://github.com/w3c/respec/wiki/githubAPI) is not set.";return void(0,n.pub)("error",e)}const f=await fetch(u,{headers:c});if(!f.ok){const e="Error fetching repository information from GitHub. "+`(HTTP Status ${f.status}).`;return void(0,n.pub)("error",e)}const h=await f.json(),{issues_url:m,issue_comment_url:g,contributors_url:b}=h,[y,v,w]=await Promise.all([(0,t.fetchIndex)(m,c),(0,t.fetchIndex)(g,c),(0,t.fetchIndex)(b,c)]),x=e.editors.map(o),k=i?function(...e){const t=e.reduce(r.flatten,[]).filter(e=>e&&e.user).map(({user:e})=>e.url);return[...new Set(t)]}(y,v):[],C=l?w.map(a):[];try{await Promise.all(s(k,x,i,c),s(C,x,l,c))}catch(e){(0,n.pub)("error","Error loading contributors and/or commenters from GitHub.")}};e.name="core/contrib";function i(e){return t=>t[e]}const o=i("name"),a=i("url");async function s(e,t,n,i){const o=(await Promise.all(e.map(e=>fetch(e,{headers:i})))).map(([e])=>e.name||e.login).filter(e=>!t.includes(e)).sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase()));n.textContent=(0,r.joinAnd)(o),n.id=null}}),define("core/fix-headers",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.run=function(e,t,n){$("section:not(.introductory)",t).find("h1:first, h2:first, h3:first, h4:first, h5:first, h6:first").each(function(){var e=$(this).parents("section").length+1;e>6&&(e=6);var t="h"+e;this.localName.toLowerCase()!==t&&$(this).renameElement(t)}),n()};e.name="core/fix-headers"}),define("core/structure",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.run=function(e,o,a){"tocIntroductory"in e==!1&&(e.tocIntroductory=!1);"maxTocLevel"in e==!1&&(e.maxTocLevel=0);var s=$("section:not(.introductory)",o).find("h1:first, h2:first, h3:first, h4:first, h5:first, h6:first").toArray().filter(e=>null===e.closest("section.introductory"));if(!(s=$(s)).length)return a();if(s.each(function(){var e=$(this).parents("section").length+1;e>6&&(e=6);var t="h"+e;this.localName.toLowerCase()!==t&&$(this).renameElement(t)}),!e.noTOC){var l=function e(o,a,s,l,c){var u=o.children(c.tocIntroductory?"section":"section:not(.introductory)");if(0===u.length)return null;var d=$("<ol class='toc'></ol>");for(var p=0;p<u.length;p++){var f=$(u[p],a),h=f.hasClass("introductory"),m=f.hasClass("notoc");if(f.children().length&&!m){var g=f.children()[0],b=g.localName.toLowerCase();if("h2"===b||"h3"===b||"h4"===b||"h5"===b||"h6"===b){var y=g.textContent,v=$("<div></div>").append($(g).contents().clone());v.find("a").renameElement("span").attr("class","formerLink").removeAttr("href"),v.find("dfn").renameElement("span").removeAttr("id");var w=g.id?g.id:f.makeID(null,y);h||s[s.length-1]++;var x=s.slice();f.hasClass("appendix")&&1===s.length&&!n&&(r=s[0],n=!0),n&&(x[0]=i.charAt(s[0]-r));var k=x.join("."),C=1==x.length;C&&(k+=".",$(g).before(document.createComment("OddPage")));var E=$("<span class='secno'></span>").text(k+" ");h||$(g).prepend(E),t[w]=(h?"":"<span class='secno'>"+k+"</span> ")+"<span class='sec-title'>"+y+"</span>";var T=$("<a/>").attr({href:"#"+w,class:"tocxref"}).append(h?"":E.clone()).append(v.contents()),S=$("<li class='tocline'/>").append(T);(0===c.maxTocLevel||l<=c.maxTocLevel)&&d.append(S),s.push(0);var A=e(f,a,s,l+1,c);A&&S.append(A),s.pop()}}}return d}($("body",o),o,[0],1,e);if(!l)return;var c=o.createElement("nav");c.id="toc",c.innerHTML="<h2 class='introductory'>"+e.l10n.toc+"</h2>",c.appendChild(l[0]);var u=$("#toc",o),d=!1;u.length&&(d=!0),u.length||(u=$("#sotd",o)),u.length||(u=$("#abstract",o)),d?u.replaceWith(c):u.after(c);var p=$("<p role='navigation' id='back-to-top'><a href='#title'><abbr title='Back to Top'>↑</abbr></a></p>");$("body").append(p)}$("a[href^='#']:not(.tocxref)",o).each(function(){var e=$(this);if(""===e.html()){var n=e.attr("href").slice(1);t[n]&&(e.addClass("sec-ref"),e.html((e.hasClass("sectionRef")?"section ":"")+t[n]))}}),a()};var t={},n=!1,r=0,i="ABCDEFGHIJKLMNOPQRSTUVWXYZ";e.name="core/structure"}),define("w3c/informative",["exports","deps/hyperhtml"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(){Array.from(document.querySelectorAll("section.informative")).map(e=>e.querySelector("h2, h3, h4, h5, h6")).filter(e=>e).forEach(e=>{e.parentNode.insertBefore(hyperHTML`<p><em>This section is non-normative.</em></p>`,e.nextSibling)})};e.name="w3c/informative"}),define("w3c/permalinks",["exports","templates"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,t,n){if(!e.includePermalinks)return n();const i=r.default["permalinks.css"];var o=e.permalinkSymbol||"§",a="<style>"+i(e)+"</style>";$(t).find("head link").first().before(a),$(t).find("h2, h3, h4, h5, h6").each(function(t,n){var r=$(n);if(!r.hasClass("nolink")){var i=r.attr("id"),a=r.parent();if((a.is("section")||a.is("div"))&&(i=a.hasClass("introductory")||a.hasClass("nolink")?null:a.attr("id")),i){var s=$("<span></span>");s.attr("class","permalink");var l=r.text(),c=$("<a></a>");c.attr({href:"#"+i,"aria-label":"Permalink for "+l,title:"Permalink for "+l});var u=$("<span></span>");u.append(o),c.append(u),s.append(c),e.permalinkEdge||r.append(" "),r.append(s)}}}),n()};var n,r=(n=t)&&n.__esModule?n:{default:n};e.name="w3c/permalinks"}),define("core/id-headers",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.run=function(e,t,n){Array.from(document.querySelectorAll("h2:not([id]), h3:not([id]), h4:not([id]), h5:not([id]), h6:not([id])")).forEach(e=>{$(e).makeID()}),n()};e.name="core/id-headers"}),define("core/location-hash",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,n,r){(0,t.pub)("start","core/location-hash");let i="";try{i=decodeURIComponent(window.location.hash).substr(1)}catch(e){i=""}if(!i&&!document.documentElement.scrollTop)return r();const o=!!n.getElementById(i),a=/\W/.test(i);if(!o&&a){const e=i.replace(/[\W]+/gim,"-").replace(/^-+/,"").replace(/-+$/,"");document.getElementById(e)&&(i=e)}window.location.hash=`#${i}`,r()};e.name="core/location-hash"}),define("deps/text!core/css/caniuse.css",[],function(){return"/* container for stats */\n.caniuse-stats {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: baseline;\n cursor: pointer;\n}\n\nbutton.caniuse-cell {\n margin: 1px 1px 0 0;\n border: none;\n}\n\n.caniuse-browser {\n position: relative;\n}\n\n/* reset styles, hide old versions by default */\n.caniuse-browser ul {\n display: none;\n margin: 0;\n padding: 0;\n list-style: none;\n position: absolute;\n left: 0;\n z-index: 2;\n background: #fff;\n margin-top: 1px;\n}\n\n.caniuse-stats a {\n white-space: nowrap;\n align-self: center;\n margin-left: .5em;\n}\n\n/* a browser version */\n.caniuse-cell {\n display: flex;\n color: rgba(0, 0, 0, 0.8);\n font-size: 90%;\n height: 0.8cm;\n margin-right: 1px;\n margin-top: 0;\n min-width: 3cm;\n overflow: visible;\n justify-content: center;\n align-items: center;\n}\n\nli.caniuse-cell {\n margin-bottom: 1px;\n}\n\n.caniuse-cell:focus {\n outline: none;\n}\n\n.caniuse-cell:hover {\n color: rgba(0, 0, 0, 1);\n}\n\n/* supports */\n.caniuse-cell.y {\n background: #8bc34a;\n}\n\n/* no support */\n.caniuse-cell.n {\n background: #e53935;\n}\n\n/* not supported by default / partial support etc\nsee https://github.com/Fyrd/caniuse/blob/master/CONTRIBUTING.md for stats */\n.caniuse-cell.d,\n.caniuse-cell.a,\n.caniuse-cell.x,\n.caniuse-cell.p {\n background: #ffc107;\n}\n\n/* show rest of the browser versions */\n.caniuse-stats button:focus + ul,\n.caniuse-stats .caniuse-browser:hover > ul {\n display: block;\n}\n"}),define("core/caniuse",["exports","core/utils","core/pubsubhub","deps/text!core/css/caniuse.css","deps/hyperhtml"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=async function(e){if(!e.caniuse)return;!function(e){const t={maxAge:864e5,browsers:["chrome","firefox","safari","edge"],versions:4};if("string"==typeof e.caniuse)return void(e.caniuse=a({feature:e.caniuse},t));Array.isArray(e.caniuse.browsers)?e.caniuse.browsers=e.caniuse.browsers.map(e=>e.toLowerCase()).filter(function(e){if(l.has(e))return!0;return(0,n.pub)("warn",`Ignoring invalid browser "\`${e}\`" in `+"[`respecConfig.caniuse.browsers`](https://github.com/w3c/respec/wiki/caniuse)"),!1}):e.caniuse.browsers=t.browsers;Object.assign(e.caniuse,t,a({},e.caniuse))}(e);const{caniuse:r}=e;if(!r.feature)return;const{feature:i}=r,u="https://caniuse.com/#feat="+i,d=(0,t.createResourceHint)({hint:"preconnect",href:"https://raw.githubusercontent.com"});document.head.appendChild(d),document.head.appendChild(hyperHTML` - <style class="removeOnSave">${o.default}</style>`);const p=document.querySelector(".head dl"),f=new Promise(async e=>{let o;try{const e=await async function(e){const{apiURL:n,feature:r,maxAge:i}=e,o=n?n.replace("{FEATURE}",r):`${s}${r}.json`,a=new Request(o),l=await(0,t.fetchAndCache)(a,i),{stats:c}=await l.json();return c}(r);o=function(e,n){return hyperHTML` - ${e.browsers.map(r=>(function(e,n,r){if(!r)return;const i=e=>{const t=r[e].split("#",1)[0].split(" ").filter(e=>e),n=t.filter(e=>c.has(e)).map(e=>c.get(e));return{support:t.join(" "),title:n.join(" ")}},[o,...a]=Object.keys(r).sort(t.semverCompare).slice(-n).reverse(),{support:s,title:u}=i(o);return hyperHTML` - <div class="caniuse-browser"> - <button class="${`caniuse-cell ${s}`}" title="${u}"> - ${l.get(e)||e} ${o} - </button> - <ul> - ${a.map(e=>{const{support:t,title:n}=i(e);return`<li class="${"caniuse-cell "+t}" title="${n}">${e}</li>`})} - </ul> - </div>`})(r,e.versions,n[r])).filter(e=>e)} - <a href="${`https://caniuse.com/#feat=${e.feature}`}" - title="Get details at caniuse.com">More info - </a>`}(r,e)}catch(e){console.error(e);const t=`Couldn't find feature "${i}" on caniuse.com? `+"Please check the feature key on [caniuse.com](https://caniuse.com)";(0,n.pub)("error",t),o=hyperHTML`<a href="${u}">caniuse.com</a>`}e(o)}),h=hyperHTML.bind(document.createDocumentFragment())` - <dt class="caniuse-title">Can I Use this API?</dt> - <dd class="caniuse-stats">${{any:f,placeholder:"Fetching data from caniuse.com..."}}</dd>`;p.appendChild(h),await f,(0,n.pub)("amend-user-config",{caniuse:i}),(0,n.sub)("beforesave",e=>{hyperHTML.bind(e.querySelector(".caniuse-stats"))` - <a href="${u}">caniuse.com</a>`})};var i,o=(i=r)&&i.__esModule?i:{default:i};var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};e.name="core/caniuse";const s="https://raw.githubusercontent.com/Fyrd/caniuse/master/features-json/",l=new Map([["chrome","Chrome"],["firefox","Firefox"],["ie","IE"],["edge","Edge"],["android","Android"],["safari","Safari"],["opera","Opera"],["bb","Blackberry"],["and_uc","UC (Android)"],["and_ff","Firefox (Android)"]]),c=new Map([["y","Supported."],["a","Almost supported (aka Partial support)."],["n","No support, or disabled by default."],["p","No support, but has Polyfill."],["u","Support unknown."],["x","Requires prefix to work."],["d","Disabled by default (needs to enabled)."]])}),define("core/exporter",["exports","core/utils","core/pubsubhub","deps/hyperhtml"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.rsDocToDataURL=function(e,i=document){const o=r.get(e);if(!o){const t=[...r.values()].join(", "),n=`Invalid format: ${e}. Expected one of: ${t}.`;throw new TypeError(n)}const a=function(e,r){const i=r.cloneNode(!0);!function(e){const{head:r,body:i,documentElement:o}=e;(function({documentElement:e}){const t=document.createTreeWalker(e,NodeFilter.SHOW_COMMENT,e=>e.textContent.startsWith("_hyper"));for(const e of[...function*(e){for(;e.nextNode();)yield e.currentNode}(t)])e.remove()})(e),e.querySelectorAll(".removeOnSave, #toc-nav").forEach(e=>e.remove()),i.classList.remove("toc-sidebar"),(0,t.removeReSpec)(o);const a=e.createDocumentFragment(),s=e.querySelector("meta[name='viewport']");s&&r.firstChild!==s&&a.appendChild(s);let l=e.querySelector("meta[charset], meta[content*='charset=']");l||(l=hyperHTML`<meta charset="utf-8">`);a.appendChild(l);const c=hyperHTML` - <meta name="generator" content="${`ReSpec ${window.respecVersion||"Developer Channel"}`}"> - `;a.appendChild(c),r.insertBefore(a,r.firstChild),(0,n.pub)("beforesave",o)}(i);let o="";switch(e){case"xml":o=(new XMLSerializer).serializeToString(i);break;default:i.doctype&&(o+=(new XMLSerializer).serializeToString(i.doctype)),o+=i.documentElement.outerHTML}return o}(o,i),s=encodeURIComponent(a);return`data:${e};charset=utf-8,${s}`};const r=new Map([["text/html","html"],["application/xml","xml"]])}),define("ui/save-html",["exports","core/ui","core/l10n","core/pubsubhub","core/exporter","deps/hyperhtml"],function(e,t,n,r,i){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.show=function(){if(!c)return;l.show(u)},e.exportDocument=function(e,t){const n="Exporting via ui/save-html module's `exportDocument()` is deprecated and will be removed. Use core/exporter `rsDocToDataURL()` instead.";return(0,r.pub)("warn",n),console.warn(n),(0,i.rsDocToDataURL)(t)};e.name="ui/save-html";const o=new URL("https://labs.w3.org/epub-generator/cgi-bin/epub-generator.py");o.searchParams.append("type","respec"),o.searchParams.append("url",document.location.href);const a=[{id:"respec-save-as-html",fileName:"index.html",title:"HTML",type:"text/html",get href(){return(0,i.rsDocToDataURL)(this.type)}},{id:"respec-save-as-xml",fileName:"index.xhtml",title:"XML",type:"application/xml",get href(){return(0,i.rsDocToDataURL)(this.type)}},{id:"respec-save-as-epub",fileName:"spec.epub",title:"EPUB 3",type:"application/epub+zip",href:o.href}];function s(e){const{id:n,href:r,fileName:i,title:o,type:a}=e;return hyperHTML` - <a - href="${r}" - id="${n}" - download="${i}" - type="${a}" - class="respec-save-button" - onclick=${()=>t.ui.closeModal()} - >${o}</a>`}const l={async show(e){await document.respecIsReady;const r=hyperHTML` - <div class="respec-save-buttons"> - ${a.map(s)} - </div>`;t.ui.freshModal(n.l10n[n.lang].save_snapshot,r,e)}},c="download"in HTMLAnchorElement.prototype;let u;c&&(u=t.ui.addCommand(n.l10n[n.lang].save_snapshot,"ui/save-html","Ctrl+Shift+Alt+S","💾"))}),define("ui/search-specref",["exports","core/ui","core/biblio","core/l10n"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.show=void 0;const i=t.ui.addCommand(r.l10n[r.lang].search_specref,"ui/search-specref","Ctrl+Shift+Alt+space","🔎"),o="https://specref.herokuapp.com/",a=`${o}search-refs`,s=`${o}reverse-lookup`,l=document.createElement("form"),c=window.hyperHTML.bind(l),u=hyperHTML.bind(document.createElement("div"));function d([e,t]){return hyperHTML.wire(t)` - <dt> - [${e}] - </dt> - <dd>${(0,n.wireReference)(t)}</dd> - `}l.id="specref-ui",l.addEventListener("submit",async e=>{e.preventDefault();const{searchBox:t}=l,n=t.value;if(!n)return void t.focus();f({state:"Searching Specref…"});const r=new URL(a);r.searchParams.set("q",n);const i=new URL(s);i.searchParams.set("urls",n);try{const e=performance.now(),o=await Promise.all([fetch(r).then(e=>e.json()),fetch(i).then(e=>e.json())]),{checked:a}=l.includeVersions;f({query:n,results:function({includeVersions:e}={includeVersions:!1}){return(...t)=>{const n=t.reduce((e,t)=>Object.assign(e,t),{}),r=new Map(Object.entries(n));return Array.from(r.entries()).filter(([,e])=>e.aliasOf).map(([e])=>e).reduce((e,t)=>e.delete(t)&&e,r),e||Array.from(r.values()).filter(e=>"object"==typeof e&&"versions"in e).reduce((e,t)=>e.concat(t.versions),[]).forEach(e=>{r.delete(e)}),Array.from(r.entries()).filter(([,e])=>"object"!=typeof e).reduce((e,[t])=>r.delete(t)&&r,r),r}}({includeVersions:a})(...o),state:"",timeTaken:Math.round(performance.now()-e)/1e3})}catch(e){console.error(e),f({state:"Error! Couldn't do search."})}finally{t.focus()}});const p=hyperHTML.wire()` - <header> - <p> - An Open-Source, Community-Maintained Database of - Web Standards & Related References. - </p> - </header> - <div class="searchcomponent"> - <input - name="searchBox" - type="search" - autocomplete="off" - placeholder="Keywords, titles, authors, urls…"> - <button - type="submit"> - Search - </button> - <label> - <input type="checkbox" name="includeVersions"> Include all versions. - </label> - </div> -`;function f({state:e,results:t,timeTaken:n,query:r}={state:""}){t?c` - <div>${p}</div> - <p class="state" hidden="${!e}"> - ${e} - </p> - <section hidden="${!t}">${t?function(e,t,n){if(!e.size)return u` - <p class="state"> - Your search - <strong> ${t} </strong> - - did not match any references. - </p> - `;const r=Array.from(e.entries()).slice(0,99).map(d).reduce((e,t)=>e.concat(t),[]);return u` - <p class="result-stats"> - ${e.size} results (${n} seconds). - ${e.size>99?"First 100 results.":""} - </p> - <dl class="specref-results">${r}</dl> - `}(t,r,n):[]}</section> - `:c`<div>${p}</div>`}e.show=function(){f(),t.ui.freshModal(r.l10n[r.lang].search_specref,l,i),l.querySelector("input[type=search]").focus()}}),define("ui/dfn-list",["exports","core/ui","core/l10n","deps/hyperhtml"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.show=void 0;const r=t.ui.addCommand(n.l10n[n.lang].definition_list,"ui/dfn-list","Ctrl+Shift+Alt+D","📔"),i=document.createElement("ul");i.classList.add("respec-dfn-list");const o=window.hyperHTML.bind(i);i.addEventListener("click",e=>{t.ui.closeModal(),e.stopPropagation()}),e.show=function(){o`${Object.entries(respecConfig.definitionMap).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>{const[n]=t[0];return window.hyperHTML.wire(n,":li>a")` - <li> - <a href="${"#"+n.id}"> - ${n.textContent} - </a> - </li> - `})}`,t.ui.freshModal(n.l10n[n.lang].list_of_definitions,i,r)}}),define("ui/about-respec",["exports","core/ui","core/l10n","deps/hyperhtml"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.show=void 0,window.respecVersion=window.respecVersion||"Developer Edition";const r=document.createElement("div"),i=hyperHTML.bind(r),o=t.ui.addCommand(`About ${window.respecVersion}`,"ui/about-respec","Ctrl+Shift+Alt+A","ℹ️");function a({name:e,duration:t}){const n=hyperHTML.bind(document.createElement("tr"));return n` - <td> - <a href="${`https://github.com/w3c/respec/tree/develop/src/${e}.js`}"> - ${e} - </a> - </td> - <td> - ${t} - </td> - `}e.show=function(){t.ui.freshModal(`${n.l10n[n.lang].about_respec} - ${window.respecVersion}`,r,o);let e=[];"getEntriesByType"in performance&&performance.getEntriesByType("measure").sort((e,t)=>t.duration-e.duration).map(({name:e,duration:t})=>{const n=t.toFixed(2);return{name:e,duration:n>1e3?`${Math.round(n/1e3)} second(s)`:`${n} milliseconds`}}).map(a).reduce((e,t)=>(e.push(t),e),e),i` - <p> - ReSpec is a document production toolchain, with a notable focus on W3C specifications. - </p> - <p> - <a href='https://github.com/w3c/respec/wiki'>Documentation</a>, - <a href='https://github.com/w3c/respec/issues'>Bugs</a>. - </p> - <table border="1" width="100%" hidden="${!e.length}"> - <caption> - Loaded plugins - </caption> - <thead> - <tr> - <th> - Plugin Name - </th> - <th> - Processing time - </th> - </tr> - </thead> - <tbody>${e}</tbody> - </table> -`}}),define("core/seo",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.run=async function(e,t,n){n(),await t.respecIsReady;const r=t.querySelector("#abstract p:first-of-type");if(!r)return;!function(e){const t=e.ownerDocument,n=e.textContent.replace(/\s+/," ").trim(),r=t.createElement("meta");r.name="description",r.content=n,t.head.appendChild(r)}(r)};e.name="core/seo"}),define("w3c/seo",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e,i,o){var a=e.shortName?"https://www.w3.org/TR/"+e.shortName+"/":null;switch(e.canonicalURI){case"edDraft":e.edDraftURI?e.canonicalURI=new URL(e.edDraftURI,i.location).href:((0,t.pub)("warn","Canonical URI set to edDraft, but no edDraftURI is set in configuration"),e.canonicalURI=null);break;case"TR":a?e.canonicalURI=a:((0,t.pub)("warn","Canonical URI set to TR, but no shortName is set in configuration"),e.canonicalURI=null);break;default:if(e.canonicalURI)try{e.canonicalURI=new URL(e.canonicalURI,i.location).href}catch(n){(0,t.pub)("warn","CanonicalURI is an invalid URL: "+n.message),e.canonicalURI=null}else a&&(e.canonicalURI=a)}if(e.canonicalURI){var s=i.createElement("link");s.setAttribute("rel","canonical"),s.setAttribute("href",e.canonicalURI),i.head.appendChild(s)}o(),e.doJsonLd&&async function(e,t){await t.respecIsReady;const i=["TechArticle"];e.rdfStatus&&i.push(e.rdfStatus);const o={"@context":["http://schema.org",{"@vocab":"http://schema.org/","@language":t.documentElement.lang||"en",w3p:"http://www.w3.org/2001/02pd/rec54#",foaf:"http://xmlns.com/foaf/0.1/",datePublished:{"@type":"http://www.w3.org/2001/XMLSchema#date"},inLanguage:{"@language":null},isBasedOn:{"@type":"@id"},license:{"@type":"@id"}}],id:e.canonicalURI||e.thisVersion,type:i,name:e.title,inLanguage:t.documentElement.lang||"en",license:e.licenseInfo.url,datePublished:e.dashDate,copyrightHolder:{name:"World Wide Web Consortium",url:"https://www.w3.org/"},discussionUrl:e.issueBase,alternativeHeadline:e.subtitle,isBasedOn:e.prevVersion};if(e.additionalCopyrightHolders){const t=Array.isArray(e.additionalCopyrightHolders)?e.additionalCopyrightHolders:[e.additionalCopyrightHolders];o.copyrightHolder=[o.copyrightHolder,...t.map(e=>({name:e}))]}const a=t.head.querySelector("meta[name=description]");a&&(o.description=a.content);e.editors&&(o.editor=e.editors.map(n));e.authors&&(o.contributor=e.authors.map(n));o.citation=[...e.normativeReferences,...e.informativeReferences].map(t=>e.biblio[t]).filter(e=>"object"==typeof e).map(r);const s=t.createElement("script");s.type="application/ld+json",s.textContent=JSON.stringify(o,null,2),t.head.appendChild(s)}(e,i)};e.name="w3c/seo";function n({name:e,url:t,mailto:n,company:r,companyURL:i}){const o={type:"Person",name:e,url:t,"foaf:mbox":n};return(r||i)&&(o.worksFor={name:r,url:i}),o}function r(e){const{href:t,title:n,href:r}=e;return{id:t,type:"TechArticle",name:n,url:r}}}),define("deps/text!core/css/github.css",[],function(){return"/*\n\ngithub.com style (c) Vasily Polovnyov <vast@whiteants.net>\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 0.5em;\n color: #333;\n background: #f8f8f8;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #998;\n font-style: italic;\n}\n\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-subst {\n color: #333;\n font-weight: bold;\n}\n\n.hljs-number,\n.hljs-literal,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-tag .hljs-attr {\n color: #008080;\n}\n\n.hljs-string,\n.hljs-doctag {\n color: #d14;\n}\n\n.hljs-title,\n.hljs-section,\n.hljs-selector-id {\n color: #900;\n font-weight: bold;\n}\n\n.hljs-subst {\n font-weight: normal;\n}\n\n.hljs-type,\n.hljs-class .hljs-title {\n color: #458;\n font-weight: bold;\n}\n\n.hljs-tag,\n.hljs-name,\n.hljs-attribute {\n color: #000080;\n font-weight: normal;\n}\n\n.hljs-regexp,\n.hljs-link {\n color: #009926;\n}\n\n.hljs-symbol,\n.hljs-bullet {\n color: #990073;\n}\n\n.hljs-built_in,\n.hljs-builtin-name {\n color: #0086b3;\n}\n\n.hljs-meta {\n color: #999;\n font-weight: bold;\n}\n\n.hljs-deletion {\n background: #fdd;\n}\n\n.hljs-addition {\n background: #dfd;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n"}),define("deps/text!core/../../worker/respec-worker.js",[],function(){return'// ReSpec Worker v0.1.1\n"use strict";\ntry {\n importScripts("https://www.w3.org/Tools/respec/respec-highlight.js");\n hljs.configure({\n tabReplace: " ", // 2 spaces\n languages: ["abnf", "css", "http", "javascript", "json", "markdown", "xml"],\n });\n} catch (err) {\n console.error("Network error loading/configuring highlighter", err);\n}\n\nself.addEventListener("message", ({ data: originalData }) => {\n const data = Object.assign({}, originalData);\n switch (data.action) {\n case "highlight":\n const { code } = data;\n const langs = data.languages.length ? data.languages : undefined;\n try {\n const { value, language } = self.hljs.highlightAuto(code, langs);\n Object.assign(data, { value, language });\n } catch (err) {\n console.error("Could not transform some code?", err);\n // Post back the original code\n Object.assign(data, { value: code, language: "" });\n }\n }\n self.postMessage(data);\n});\n'}),define("core/worker",["exports","core/utils","deps/text!../../worker/respec-worker.js"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.worker=e.name=void 0;var r,i=(r=n)&&r.__esModule?r:{default:r};e.name="core/worker";const o=(0,t.createResourceHint)({hint:"preload",href:"https://www.w3.org/Tools/respec/respec-highlight.js",as:"script"});document.head.appendChild(o);const a=URL.createObjectURL(new Blob([i.default],{type:"application/javascript"}));e.worker=new Worker(a)}),define("core/highlight",["exports","deps/text!core/css/github.css","core/worker"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=async function(e){if(e.noHighlightCSS)return void o.remove();const t=Array.from(document.querySelectorAll("pre:not(.idl):not(.nohighlight), code.highlight"));if(0===t.length)return void o.remove();const r=t.map((e,t)=>new Promise(r=>{if(""===e.textContent.trim())return r();const o=()=>{e.setAttribute("aria-busy","false"),r()},a=setTimeout(()=>{console.error("Timed-out waiting for highlight:",e),o()},4e3),s={action:"highlight",code:e.textContent,id:`highlight:${t}`,languages:(i=e.classList,Array.from(i).filter(e=>"highlight"!==e&&"nolinks"!==e).map(e=>e.toLowerCase()))};n.worker.addEventListener("message",function t(r){const{data:{id:i,code:l,language:c,value:u}}=r;i===s.id&&(e.innerHTML=u,"pre"===e.localName&&e.classList.add("hljs"),c&&e.classList.add(c),clearTimeout(a),n.worker.removeEventListener("message",t),o())}),e.setAttribute("aria-busy","true"),n.worker.postMessage(s)}));var i;await Promise.all(r)};var r,i=(r=t)&&r.__esModule?r:{default:r};e.name="core/highlight";const o=document.createElement("style");o.textContent=i.default,document.head.appendChild(o)}),define("deps/text!core/images/clipboard.svg",[],function(){return'<svg height="16" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg>'}),eXa=this,fXa=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){var r,i,o,a;a=function(e,t){var n,r=(n=t)&&n.__esModule?n:{default:n};var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.resolveOptions(t),this.initSelection()}return o(e,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var e=this,t="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,r.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,r.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":i(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function(){return this._target}}]),e}();e.exports=a},i=[e,n(7)],void 0===(o="function"==typeof(r=a)?r.apply(t,i):r)||(e.exports=o)},function(e,t,n){var r=n(6),i=n(5);e.exports=function(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!r.string(t))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(e))return p=t,f=n,(d=e).addEventListener(p,f),{destroy:function(){d.removeEventListener(p,f)}};if(r.nodeList(e))return l=e,c=t,u=n,Array.prototype.forEach.call(l,function(e){e.addEventListener(c,u)}),{destroy:function(){Array.prototype.forEach.call(l,function(e){e.removeEventListener(c,u)})}};if(r.string(e))return o=e,a=t,s=n,i(document.body,o,a,s);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,a,s,l,c,u,d,p,f}},function(e,t){function n(){}n.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function i(){r.off(e,i),t.apply(n,arguments)}return i._=t,this.on(e,i,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,i=n.length;r<i;r++)n[r].fn.apply(n[r].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),r=n[e],i=[];if(r&&t)for(var o=0,a=r.length;o<a;o++)r[o].fn!==t&&r[o].fn._!==t&&i.push(r[o]);return i.length?n[e]=i:delete n[e],this}},e.exports=n},function(e,t,n){var r,i,o,a;a=function(e,t,n,r){var i=s(t),o=s(n),a=s(r);function s(e){return e&&e.__esModule?e:{default:e}}var l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var u=function(e){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.resolveOptions(n),r.listenClick(e),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,o.default),c(t,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===l(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=(0,a.default)(e,"click",function(e){return t.onClick(e)})}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new i.default({action:this.action(t),target:this.target(t),text:this.text(t),container:this.container,trigger:t,emitter:this})}},{key:"defaultAction",value:function(e){return d("action",e)}},{key:"defaultTarget",value:function(e){var t=d("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return d("text",e)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach(function(e){n=n&&!!document.queryCommandSupported(e)}),n}}]),t}();function d(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}e.exports=u},i=[e,n(0),n(2),n(1)],void 0===(o="function"==typeof(r=a)?r.apply(t,i):r)||(e.exports=o)},function(e,t){var n=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}e.exports=function(e,t){for(;e&&e.nodeType!==n;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}},function(e,t,n){var r=n(4);function i(e,t,n,i,o){var a=function(e,t,n,i){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&i.call(e,n)}}.apply(this,arguments);return e.addEventListener(n,a,o),{destroy:function(){e.removeEventListener(n,a,o)}}}e.exports=function(e,t,n,r,o){return"function"==typeof e.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,function(e){return i(e,t,n,r,o)}))}},function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},function(e,t){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(e),r.removeAllRanges(),r.addRange(i),t=r.toString()}return t}}])},"object"==typeof exports&&"object"==typeof module?module.exports=fXa():"function"==typeof define&&define.amd?define("deps/clipboard",[],fXa):"object"==typeof exports?exports.ClipboardJS=fXa():eXa.ClipboardJS=fXa(),define("core/webidl-clipboard",["exports","deps/text!core/images/clipboard.svg","deps/clipboard"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=async function(e,t,n){Array.from(t.querySelectorAll("pre.idl")).map(e=>{const t=a.cloneNode(!0),n=e.querySelector('span[id^="idl-def-"], span[id^="dom-"]');let r="#";return null===n&&""===e.id?"idl-index"===e.parentElement.id?r+="actual-idl-index":(e.id=`idl-${String(Math.random()).substr(2)}`,r+=e.id):r+=e.id||n.id,{button:t,elem:e,target:r}}).forEach(({elem:e,button:n,target:r})=>{const i=t.createElement("div");n.dataset.clipboardTarget=r,e.parentElement.replaceChild(i,e),i.appendChild(n),i.appendChild(e)}),new i.default(".respec-button-copy-paste",s).on("success",e=>e.clearSelection()),n()};var r=o(t),i=o(n);function o(e){return e&&e.__esModule?e:{default:e}}e.name="core/webidl-clipboard";const a=document.createElement("button");a.innerHTML=r.default,a.title="Copy IDL to clipboard",a.classList.add("respec-button-copy-paste","removeOnSave");const s={text:e=>document.querySelector(e.dataset.clipboardTarget).textContent.replace(/\ +/gm," ").replace(/^\ /gm," ").replace(/^};\n/gm,"};\n").trim()}}),define("core/data-tests",["exports","core/pubsubhub","core/l10n"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e){const n=document.querySelectorAll("[data-tests]");if(!n.length)return;if(!e.testSuiteURI)return void(0,t.pub)("error",r[i].missing_test_suite_uri);Array.from(n).filter(e=>e.dataset.tests).map(n=>{const a=document.createElement("details"),s=hyperHTML.bind(a),l=n.dataset.tests.split(/,/gm).map(e=>e.trim()).map(n=>{let o="";try{o=new URL(n,e.testSuiteURI).href}catch(e){(0,t.pub)("warn",`${r[i].bad_uri}: ${n}`)}return o});return a.classList.add("respec-tests-details","removeOnSave"),s` - <summary> - tests: ${l.length} - </summary> - <ul>${l.map(o)}</ul> - `,{elem:n,details:a}}).forEach(({elem:e,details:t})=>{delete e.dataset.tests,e.insertAdjacentElement("beforeend",t)})};const r={en:{missing_test_suite_uri:"Found tests in your spec, but missing '[`testSuiteURI`](https://github.com/w3c/respec/wiki/testSuiteURI)' in your ReSpec config.",tests:"tests",test:"test"}},i=(e.name="core/data-tests",n.lang in r?n.lang:"en");function o(e){const t=[],[n]=new URL(e).pathname.split("/").reverse(),r=n.split(".");let[i]=r;if(r.find(e=>"https"===e)){const e=document.createElement("span");e.innerHTML="🔒",e.setAttribute("aria-label","requires a secure connection"),e.setAttribute("title","Test requires HTTPS"),i=i.replace(".https",""),t.push(e)}if(i.split(".").join("-").split("-").find(e=>"manual"===e)){const e=document.createElement("span");e.innerHTML="💪",e.setAttribute("aria-label","the test must be run manually"),e.setAttribute("title","Manual test"),i=i.replace("-manual",""),t.push(e)}return hyperHTML.bind(document.createElement("li"))` - <a href="${e}"> - ${i} - </a> ${t} - `}}),define("core/list-sorter",["exports","core/pubsubhub"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.sortListItems=r,e.sortDefinitionTerms=o,e.run=function(e,n,i){for(const e of document.querySelectorAll("[data-sort]")){let n;const i=e.dataset.sort||"ascending";switch(e.localName){case"dl":n=o(e,i);break;case"ol":case"ul":n=r(e,i);break;default:(0,t.pub)("warning",`ReSpec can't sort ${e.localName} elements.`)}if(n){const t=document.createRange();t.selectNodeContents(e),t.deleteContents(),e.appendChild(n)}}i()};e.name="core/list-sorter";function n(e){return({textContent:t},{textContent:n})=>"ascending"===e?t.localeCompare(n):n.localeCompare(t)}function r(e,t){return i(e,"li").sort(n(t)).reduce((e,t)=>(e.appendChild(t),e),document.createDocumentFragment())}function i(e,t){let n;try{n=e.querySelectorAll(`:scope > ${t}`)}catch(r){let i="";e.id||(i=`temp-${String(Math.random()).substr(2)}`,e.id=i);const o=`#${e.id} > ${t}`;n=e.parentElement.querySelectorAll(o),i&&(e.id="")}return[...n]}function o(e,t){return i(e,"dt").sort(n(t)).reduce((e,t)=>{const{nodeType:n,nodeName:r}=t,i=document.createDocumentFragment();let{nextSibling:o}=t;for(;o&&o.nextSibling;){i.appendChild(o.cloneNode(!0));const{nodeType:e,nodeName:t}=o.nextSibling;if(e===n&&t===r)break;o=o.nextSibling}return i.prepend(t.cloneNode(!0)),e.appendChild(i),e},document.createDocumentFragment())}}),define("deps/text!core/css/var.css",[],function(){return"var:hover {\n border-bottom: 1px dotted;\n cursor: pointer;\n}\n\nvar.respec-hl {\n color: var(--color, #000);\n background-color: var(--bg-color);\n box-shadow: 0 0 0px 2px var(--bg-color);\n}\n\n/* highlight colors\n https://github.com/w3c/tr-design/issues/152\n*/\nvar.respec-hl-c1 {\n --bg-color: #f4d200;\n}\n\nvar.respec-hl-c2 {\n --bg-color: #ff87a2;\n}\n\nvar.respec-hl-c3 {\n --bg-color: #96e885;\n}\n\nvar.respec-hl-c4 {\n --bg-color: #3eeed2;\n}\n\nvar.respec-hl-c5 {\n --bg-color: #eacfb6;\n}\n\nvar.respec-hl-c6 {\n --bg-color: #82ddff;\n}\n\nvar.respec-hl-c7 {\n --bg-color: #ffbcf2;\n}\n\n@media print {\n var.respec-hl {\n background: none;\n color: #000;\n box-shadow: unset;\n }\n}\n"}),define("core/highlight-vars",["exports","core/pubsubhub","deps/text!core/css/var.css"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.name=void 0,e.run=function(e){if(!e.highlightVars)return;const n=document.createElement("style");n.textContent=i.default,n.classList.add("removeOnSave"),document.head.appendChild(n),[...document.querySelectorAll("var")].forEach(e=>e.addEventListener("click",o)),(0,t.sub)("beforesave",e=>{[...e.querySelectorAll("var.respec-hl")].forEach(l)})};var r,i=(r=n)&&r.__esModule?r:{default:r};e.name="core/highlight-vars";function o(e){e.stopPropagation();const{target:t}=e,n=function(e){const t=e.textContent.trim(),n=e.closest("section"),r=s(e),i=[...n.querySelectorAll("var")].filter(e=>e.textContent.trim()===t),o=i[0].classList.contains("respec-hl");if(a.set(r,o),o)return i.forEach(e=>l(e,r)),[];i.forEach(e=>(c=e,u=r,void c.classList.add("respec-hl",u)));var c,u;return i}(t),r=()=>{const e=s(t);n.forEach(t=>l(t,e)),[...a.keys()].forEach(e=>a.set(e,!0))};n.length&&document.body.addEventListener("click",r,{once:!0})}const a=new Map([["respec-hl-c1",!0],["respec-hl-c2",!0],["respec-hl-c3",!0],["respec-hl-c4",!0],["respec-hl-c5",!0],["respec-hl-c6",!0],["respec-hl-c7",!0]]);function s(e){const{value:t}=e.classList,n=/respec-hl-\w+/,r=n.test(t)&&t.match(n);return r?r[0]:!0===a.get("respec-hl-c1")?"respec-hl-c1":[...a.keys()].find(e=>a.get(e))||"respec-hl-c1"}function l(e,t){e.classList.remove("respec-hl",t),e.classList.length||e.removeAttribute("class")}}),window.addEventListener("error",e=>{console.error(e.error,e.message,e)}),require.config({shim:{shortcut:{exports:"shortcut"},highlight:{exports:"hljs"}},paths:{"handlebars.runtime":"deps/handlebars","deps/highlight":"https://www.w3.org/Tools/respec/respec-highlight"},deps:["deps/hyperhtml","deps/url-search-params"]}),define("profile-oai",["deps/domReady","core/base-runner","core/ui","core/l10n","oai/defaults","core/style","w3c/style","w3c/l10n","core/github","core/data-include","core/markdown","oai/headers","w3c/abstract","w3c/conformance","core/data-transform","core/inlines","core/dfn","w3c/rfc2119","core/examples","core/issues-notes","core/requirements","core/best-practices","core/figures","core/webidl","core/data-cite","core/biblio","core/webidl-index","core/link-to-dfn","core/contrib","core/fix-headers","core/structure","w3c/informative","w3c/permalinks","core/id-headers","core/location-hash","core/caniuse","ui/save-html","ui/search-specref","ui/dfn-list","ui/about-respec","core/seo","w3c/seo","core/highlight","core/webidl-clipboard","core/data-tests","core/list-sorter","core/highlight-vars","core/linter"],(e,t,{ui:n},...r)=>{n.show(),e(async()=>{try{await t.runAll(r),await document.respecIsReady}catch(e){console.error(e)}finally{n.enable()}})}),require(["profile-oai"]); -//# sourceMappingURL=respec-oai.build.js.map diff --git a/js/respec-worker.js b/js/respec-worker.js deleted file mode 100644 index 71da79cb6c..0000000000 --- a/js/respec-worker.js +++ /dev/null @@ -1,29 +0,0 @@ -// ReSpec Worker v0.1.1 -"use strict"; -try { - importScripts("https://www.w3.org/Tools/respec/respec-highlight.js"); - hljs.configure({ - tabReplace: " ", // 2 spaces - languages: ["abnf", "css", "http", "javascript", "json", "markdown", "xml"], - }); -} catch (err) { - console.error("Network error loading/configuring highlighter", err); -} - -self.addEventListener("message", ({ data: originalData }) => { - const data = Object.assign({}, originalData); - switch (data.action) { - case "highlight": - const { code } = data; - const langs = data.languages.length ? data.languages : undefined; - try { - const { value, language } = self.hljs.highlightAuto(code, langs); - Object.assign(data, { value, language }); - } catch (err) { - console.error("Could not transform some code?", err); - // Post back the original code - Object.assign(data, { value: code, language: "" }); - } - } - self.postMessage(data); -});