@angular/platform-server 21.0.0-next.5 → 21.0.0-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{server.mjs → _server-chunk.mjs} +19 -19
- package/fesm2022/_server-chunk.mjs.map +1 -0
- package/fesm2022/init.mjs +2 -2
- package/fesm2022/init.mjs.map +1 -1
- package/fesm2022/platform-server.mjs +5 -5
- package/fesm2022/platform-server.mjs.map +1 -1
- package/fesm2022/testing.mjs +7 -7
- package/fesm2022/testing.mjs.map +1 -1
- package/package.json +9 -9
- package/{init/index.d.ts → types/init.d.ts} +2 -2
- package/{index.d.ts → types/platform-server.d.ts} +2 -2
- package/{testing/index.d.ts → types/testing.d.ts} +2 -2
- package/fesm2022/server.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-server/src/bundled-domino.mjs","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-server/src/domino_adapter.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-server/src/tokens.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-server/src/platform_state.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-server/src/http.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-server/src/location.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-server/src/server_events.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-server/src/transfer_state.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-server/src/server.ts"],"sourcesContent":["function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar lib = {};\n\nvar Event_1;\nvar hasRequiredEvent;\n\nfunction requireEvent () {\n\tif (hasRequiredEvent) return Event_1;\n\thasRequiredEvent = 1;\n\tEvent_1 = Event;\n\n\tEvent.CAPTURING_PHASE = 1;\n\tEvent.AT_TARGET = 2;\n\tEvent.BUBBLING_PHASE = 3;\n\n\tfunction Event(type, dictionary) {\n\t // Initialize basic event properties\n\t this.type = '';\n\t this.target = null;\n\t this.currentTarget = null;\n\t this.eventPhase = Event.AT_TARGET;\n\t this.bubbles = false;\n\t this.cancelable = false;\n\t this.isTrusted = false;\n\t this.defaultPrevented = false;\n\t this.timeStamp = Date.now();\n\n\t // Initialize internal flags\n\t // XXX: Would it be better to inherit these defaults from the prototype?\n\t this._propagationStopped = false;\n\t this._immediatePropagationStopped = false;\n\t this._initialized = true;\n\t this._dispatching = false;\n\n\t // Now initialize based on the constructor arguments (if any)\n\t if (type) this.type = type;\n\t if (dictionary) {\n\t for(var p in dictionary) {\n\t this[p] = dictionary[p];\n\t }\n\t }\n\t}\n\n\tEvent.prototype = Object.create(Object.prototype, {\n\t constructor: { value: Event },\n\t stopPropagation: { value: function stopPropagation() {\n\t this._propagationStopped = true;\n\t }},\n\n\t stopImmediatePropagation: { value: function stopImmediatePropagation() {\n\t this._propagationStopped = true;\n\t this._immediatePropagationStopped = true;\n\t }},\n\n\t preventDefault: { value: function preventDefault() {\n\t if (this.cancelable) this.defaultPrevented = true;\n\t }},\n\n\t initEvent: { value: function initEvent(type, bubbles, cancelable) {\n\t this._initialized = true;\n\t if (this._dispatching) return;\n\n\t this._propagationStopped = false;\n\t this._immediatePropagationStopped = false;\n\t this.defaultPrevented = false;\n\t this.isTrusted = false;\n\n\t this.target = null;\n\t this.type = type;\n\t this.bubbles = bubbles;\n\t this.cancelable = cancelable;\n\t }},\n\n\t});\n\treturn Event_1;\n}\n\nvar UIEvent_1;\nvar hasRequiredUIEvent;\n\nfunction requireUIEvent () {\n\tif (hasRequiredUIEvent) return UIEvent_1;\n\thasRequiredUIEvent = 1;\n\tvar Event = requireEvent();\n\n\tUIEvent_1 = UIEvent;\n\n\tfunction UIEvent() {\n\t // Just use the superclass constructor to initialize\n\t Event.call(this);\n\t this.view = null; // FF uses the current window\n\t this.detail = 0;\n\t}\n\tUIEvent.prototype = Object.create(Event.prototype, {\n\t constructor: { value: UIEvent },\n\t initUIEvent: { value: function(type, bubbles, cancelable, view, detail) {\n\t this.initEvent(type, bubbles, cancelable);\n\t this.view = view;\n\t this.detail = detail;\n\t }}\n\t});\n\treturn UIEvent_1;\n}\n\nvar MouseEvent_1;\nvar hasRequiredMouseEvent;\n\nfunction requireMouseEvent () {\n\tif (hasRequiredMouseEvent) return MouseEvent_1;\n\thasRequiredMouseEvent = 1;\n\tvar UIEvent = requireUIEvent();\n\n\tMouseEvent_1 = MouseEvent;\n\n\tfunction MouseEvent() {\n\t // Just use the superclass constructor to initialize\n\t UIEvent.call(this);\n\n\t this.screenX = this.screenY = this.clientX = this.clientY = 0;\n\t this.ctrlKey = this.altKey = this.shiftKey = this.metaKey = false;\n\t this.button = 0;\n\t this.buttons = 1;\n\t this.relatedTarget = null;\n\t}\n\tMouseEvent.prototype = Object.create(UIEvent.prototype, {\n\t constructor: { value: MouseEvent },\n\t initMouseEvent: { value: function(type, bubbles, cancelable,\n\t view, detail,\n\t screenX, screenY, clientX, clientY,\n\t ctrlKey, altKey, shiftKey, metaKey,\n\t button, relatedTarget) {\n\n\t this.initEvent(type, bubbles, cancelable, view, detail);\n\t this.screenX = screenX;\n\t this.screenY = screenY;\n\t this.clientX = clientX;\n\t this.clientY = clientY;\n\t this.ctrlKey = ctrlKey;\n\t this.altKey = altKey;\n\t this.shiftKey = shiftKey;\n\t this.metaKey = metaKey;\n\t this.button = button;\n\t switch(button) {\n\t case 0: this.buttons = 1; break;\n\t case 1: this.buttons = 4; break;\n\t case 2: this.buttons = 2; break;\n\t default: this.buttons = 0; break;\n\t }\n\t this.relatedTarget = relatedTarget;\n\t }},\n\n\t getModifierState: { value: function(key) {\n\t switch(key) {\n\t case \"Alt\": return this.altKey;\n\t case \"Control\": return this.ctrlKey;\n\t case \"Shift\": return this.shiftKey;\n\t case \"Meta\": return this.metaKey;\n\t default: return false;\n\t }\n\t }}\n\t});\n\treturn MouseEvent_1;\n}\n\nvar utils = {};\n\nvar config = {};\n\n/*\n * This file defines Domino behaviour that can be externally configured.\n * To change these settings, set the relevant global property *before*\n * you call `require(\"domino\")`.\n */\n\nvar hasRequiredConfig;\n\nfunction requireConfig () {\n\tif (hasRequiredConfig) return config;\n\thasRequiredConfig = 1;\n\tconfig.isApiWritable = !globalThis.__domino_frozen__;\n\treturn config;\n}\n\nvar hasRequiredUtils;\n\nfunction requireUtils () {\n\tif (hasRequiredUtils) return utils;\n\thasRequiredUtils = 1;\n\tvar isApiWritable = requireConfig().isApiWritable;\n\n\tutils.NAMESPACE = {\n\t HTML: 'http://www.w3.org/1999/xhtml',\n\t XML: 'http://www.w3.org/XML/1998/namespace',\n\t XMLNS: 'http://www.w3.org/2000/xmlns/',\n\t MATHML: 'http://www.w3.org/1998/Math/MathML',\n\t SVG: 'http://www.w3.org/2000/svg',\n\t XLINK: 'http://www.w3.org/1999/xlink',\n\t};\n\n\t//\n\t// Shortcut functions for throwing errors of various types.\n\t//\n\tutils.IndexSizeError = () => {\n\t throw new DOMException('The index is not in the allowed range', 'IndexSizeError');\n\t};\n\n\tutils.HierarchyRequestError = () => {\n\t throw new DOMException('The node tree hierarchy is not correct', 'HierarchyRequestError');\n\t};\n\n\tutils.WrongDocumentError = () => {\n\t throw new DOMException('The object is in the wrong Document', 'WrongDocumentError');\n\t};\n\n\tutils.InvalidCharacterError = () => {\n\t throw new DOMException('The string contains invalid characters', 'InvalidCharacterError');\n\t};\n\n\tutils.NoModificationAllowedError = () => {\n\t throw new DOMException('The object cannot be modified', 'NoModificationAllowedError');\n\t};\n\n\tutils.NotFoundError = () => {\n\t throw new DOMException('The object can not be found here', 'NotFoundError');\n\t};\n\n\tutils.NotSupportedError = () => {\n\t throw new DOMException('The operation is not supported', 'NotSupportedError');\n\t};\n\n\tutils.InvalidStateError = () => {\n\t throw new DOMException('The object is in an invalid state', 'InvalidStateError');\n\t};\n\n\tutils.SyntaxError = () => {\n\t throw new DOMException('The string did not match the expected pattern', 'SyntaxError');\n\t};\n\n\tutils.InvalidModificationError = () => {\n\t throw new DOMException('The object can not be modified in this way', 'InvalidModificationError');\n\t};\n\n\tutils.NamespaceError = () => {\n\t throw new DOMException('The operation is not allowed by Namespaces in XML', 'NamespaceError');\n\t};\n\n\tutils.InvalidAccessError = () => {\n\t throw new DOMException(\n\t 'The object does not support the operation or argument',\n\t 'InvalidAccessError'\n\t );\n\t};\n\n\tutils.TypeMismatchError = () => {\n\t throw new DOMException(\n\t 'The type of the object does not match the expected type',\n\t 'TypeMismatchError'\n\t );\n\t};\n\n\tutils.SecurityError = () => {\n\t throw new DOMException('The operation is insecure', 'SecurityError');\n\t};\n\n\tutils.NetworkError = () => {\n\t throw new DOMException('A network error occurred', 'NetworkError');\n\t};\n\n\tutils.AbortError = () => {\n\t throw new DOMException('The operation was aborted', 'AbortError');\n\t};\n\n\tutils.UrlMismatchError = () => {\n\t throw new DOMException('The given URL does not match another URL', 'URLMismatchError');\n\t};\n\n\tutils.QuotaExceededError = () => {\n\t throw new DOMException('The quota has been exceeded', 'QuotaExceededError');\n\t};\n\n\tutils.TimeoutError = () => {\n\t throw new DOMException('The operation timed out', 'TimeoutError');\n\t};\n\n\tutils.InvalidNodeTypeError = () => {\n\t throw new DOMException('The node is of an invalid type', 'InvalidNodeTypeError');\n\t};\n\n\tutils.DataCloneError = () => {\n\t throw new DOMException('The object can not be cloned', 'DataCloneError');\n\t};\n\n\tutils.InUseAttributeError = () => {\n\t throw new DOMException('The attribute is already in use', 'InUseAttributeError');\n\t};\n\n\tutils.nyi = function () {\n\t throw new Error('NotYetImplemented');\n\t};\n\n\tutils.shouldOverride = function () {\n\t throw new Error('Abstract function; should be overriding in subclass.');\n\t};\n\n\tutils.assert = function (expr, msg) {\n\t if (!expr) {\n\t throw new Error('Assertion failed: ' + (msg || '') + '\\n' + new Error().stack);\n\t }\n\t};\n\n\tutils.expose = function (src, c) {\n\t for (var n in src) {\n\t Object.defineProperty(c.prototype, n, {\n\t value: src[n],\n\t writable: isApiWritable,\n\t });\n\t }\n\t};\n\n\tutils.merge = function (a, b) {\n\t for (var n in b) {\n\t a[n] = b[n];\n\t }\n\t};\n\n\t// Compare two nodes based on their document order. This function is intended\n\t// to be passed to sort(). Assumes that the array being sorted does not\n\t// contain duplicates. And that all nodes are connected and comparable.\n\t// Clever code by ppk via jeresig.\n\tutils.documentOrder = function (n, m) {\n\t /* jshint bitwise: false */\n\t return 3 - (n.compareDocumentPosition(m) & 6);\n\t};\n\n\tutils.toASCIILowerCase = function (s) {\n\t return s.replace(/[A-Z]+/g, function (c) {\n\t return c.toLowerCase();\n\t });\n\t};\n\n\tutils.toASCIIUpperCase = function (s) {\n\t return s.replace(/[a-z]+/g, function (c) {\n\t return c.toUpperCase();\n\t });\n\t};\n\treturn utils;\n}\n\nvar EventTarget_1;\nvar hasRequiredEventTarget;\n\nfunction requireEventTarget () {\n\tif (hasRequiredEventTarget) return EventTarget_1;\n\thasRequiredEventTarget = 1;\n\tvar Event = requireEvent();\n\tvar MouseEvent = requireMouseEvent();\n\tvar utils = requireUtils();\n\n\tEventTarget_1 = EventTarget;\n\n\tfunction EventTarget() {}\n\n\tEventTarget.prototype = {\n\t // XXX\n\t // See WebIDL §4.8 for details on object event handlers\n\t // and how they should behave. We actually have to accept\n\t // any object to addEventListener... Can't type check it.\n\t // on registration.\n\n\t // XXX:\n\t // Capturing event listeners are sort of rare. I think I can optimize\n\t // them so that dispatchEvent can skip the capturing phase (or much of\n\t // it). Each time a capturing listener is added, increment a flag on\n\t // the target node and each of its ancestors. Decrement when removed.\n\t // And update the counter when nodes are added and removed from the\n\t // tree as well. Then, in dispatch event, the capturing phase can\n\t // abort if it sees any node with a zero count.\n\t addEventListener: function addEventListener(type, listener, capture) {\n\t if (!listener) return;\n\t if (capture === undefined) capture = false;\n\t if (!this._listeners) this._listeners = Object.create(null);\n\t if (!this._listeners[type]) this._listeners[type] = [];\n\t var list = this._listeners[type];\n\n\t // If this listener has already been registered, just return\n\t for(var i = 0, n = list.length; i < n; i++) {\n\t var l = list[i];\n\t if (l.listener === listener && l.capture === capture)\n\t return;\n\t }\n\n\t // Add an object to the list of listeners\n\t var obj = { listener: listener, capture: capture };\n\t if (typeof listener === 'function') obj.f = listener;\n\t list.push(obj);\n\t },\n\n\t removeEventListener: function removeEventListener(type,\n\t listener,\n\t capture) {\n\t if (capture === undefined) capture = false;\n\t if (this._listeners) {\n\t var list = this._listeners[type];\n\t if (list) {\n\t // Find the listener in the list and remove it\n\t for(var i = 0, n = list.length; i < n; i++) {\n\t var l = list[i];\n\t if (l.listener === listener && l.capture === capture) {\n\t if (list.length === 1) {\n\t this._listeners[type] = undefined;\n\t }\n\t else {\n\t list.splice(i, 1);\n\t }\n\t return;\n\t }\n\t }\n\t }\n\t }\n\t },\n\n\t // This is the public API for dispatching untrusted public events.\n\t // See _dispatchEvent for the implementation\n\t dispatchEvent: function dispatchEvent(event) {\n\t // Dispatch an untrusted event\n\t return this._dispatchEvent(event, false);\n\t },\n\n\t //\n\t // See DOMCore §4.4\n\t // XXX: I'll probably need another version of this method for\n\t // internal use, one that does not set isTrusted to false.\n\t // XXX: see Document._dispatchEvent: perhaps that and this could\n\t // call a common internal function with different settings of\n\t // a trusted boolean argument\n\t //\n\t // XXX:\n\t // The spec has changed in how to deal with handlers registered\n\t // on idl or content attributes rather than with addEventListener.\n\t // Used to say that they always ran first. That's how webkit does it\n\t // Spec now says that they run in a position determined by\n\t // when they were first set. FF does it that way. See:\n\t // http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#event-handlers\n\t //\n\t _dispatchEvent: function _dispatchEvent(event, trusted) {\n\t if (typeof trusted !== 'boolean') trusted = false;\n\t function invoke(target, event) {\n\t var type = event.type, phase = event.eventPhase;\n\t event.currentTarget = target;\n\n\t // If there was an individual handler defined, invoke it first\n\t // XXX: see comment above: this shouldn't always be first.\n\t if (phase !== Event.CAPTURING_PHASE &&\n\t target._handlers && target._handlers[type])\n\t {\n\t var handler = target._handlers[type];\n\t var rv;\n\t if (typeof handler === 'function') {\n\t rv=handler.call(event.currentTarget, event);\n\t }\n\t else {\n\t var f = handler.handleEvent;\n\t if (typeof f !== 'function')\n\t throw new TypeError('handleEvent property of ' +\n\t 'event handler object is' +\n\t 'not a function.');\n\t rv=f.call(handler, event);\n\t }\n\n\t switch(event.type) {\n\t case 'mouseover':\n\t if (rv === true) // Historical baggage\n\t event.preventDefault();\n\t break;\n\t case 'beforeunload':\n\t // XXX: eventually we need a special case here\n\t /* falls through */\n\t default:\n\t if (rv === false)\n\t event.preventDefault();\n\t break;\n\t }\n\t }\n\n\t // Now invoke list list of listeners for this target and type\n\t var list = target._listeners && target._listeners[type];\n\t if (!list) return;\n\t list = list.slice();\n\t for(var i = 0, n = list.length; i < n; i++) {\n\t if (event._immediatePropagationStopped) return;\n\t var l = list[i];\n\t if ((phase === Event.CAPTURING_PHASE && !l.capture) ||\n\t (phase === Event.BUBBLING_PHASE && l.capture))\n\t continue;\n\t if (l.f) {\n\t l.f.call(event.currentTarget, event);\n\t }\n\t else {\n\t var fn = l.listener.handleEvent;\n\t if (typeof fn !== 'function')\n\t throw new TypeError('handleEvent property of event listener object is not a function.');\n\t fn.call(l.listener, event);\n\t }\n\t }\n\t }\n\n\t if (!event._initialized || event._dispatching) utils.InvalidStateError();\n\t event.isTrusted = trusted;\n\n\t // Begin dispatching the event now\n\t event._dispatching = true;\n\t event.target = this;\n\n\t // Build the list of targets for the capturing and bubbling phases\n\t // XXX: we'll eventually have to add Window to this list.\n\t var ancestors = [];\n\t for(var n = this.parentNode; n; n = n.parentNode)\n\t ancestors.push(n);\n\n\t // Capturing phase\n\t event.eventPhase = Event.CAPTURING_PHASE;\n\t for(var i = ancestors.length-1; i >= 0; i--) {\n\t invoke(ancestors[i], event);\n\t if (event._propagationStopped) break;\n\t }\n\n\t // At target phase\n\t if (!event._propagationStopped) {\n\t event.eventPhase = Event.AT_TARGET;\n\t invoke(this, event);\n\t }\n\n\t // Bubbling phase\n\t if (event.bubbles && !event._propagationStopped) {\n\t event.eventPhase = Event.BUBBLING_PHASE;\n\t for(var ii = 0, nn = ancestors.length; ii < nn; ii++) {\n\t invoke(ancestors[ii], event);\n\t if (event._propagationStopped) break;\n\t }\n\t }\n\n\t event._dispatching = false;\n\t event.eventPhase = Event.AT_TARGET;\n\t event.currentTarget = null;\n\n\t // Deal with mouse events and figure out when\n\t // a click has happened\n\t if (trusted && !event.defaultPrevented && event instanceof MouseEvent) {\n\t switch(event.type) {\n\t case 'mousedown':\n\t this._armed = {\n\t x: event.clientX,\n\t y: event.clientY,\n\t t: event.timeStamp\n\t };\n\t break;\n\t case 'mouseout':\n\t case 'mouseover':\n\t this._armed = null;\n\t break;\n\t case 'mouseup':\n\t if (this._isClick(event)) this._doClick(event);\n\t this._armed = null;\n\t break;\n\t }\n\t }\n\n\n\n\t return !event.defaultPrevented;\n\t },\n\n\t // Determine whether a click occurred\n\t // XXX We don't support double clicks for now\n\t _isClick: function(event) {\n\t return (this._armed !== null &&\n\t event.type === 'mouseup' &&\n\t event.isTrusted &&\n\t event.button === 0 &&\n\t event.timeStamp - this._armed.t < 1000 &&\n\t Math.abs(event.clientX - this._armed.x) < 10 &&\n\t Math.abs(event.clientY - this._armed.Y) < 10);\n\t },\n\n\t // Clicks are handled like this:\n\t // http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#interactive-content-0\n\t //\n\t // Note that this method is similar to the HTMLElement.click() method\n\t // The event argument must be the trusted mouseup event\n\t _doClick: function(event) {\n\t if (this._click_in_progress) return;\n\t this._click_in_progress = true;\n\n\t // Find the nearest enclosing element that is activatable\n\t // An element is activatable if it has a\n\t // _post_click_activation_steps hook\n\t var activated = this;\n\t while(activated && !activated._post_click_activation_steps)\n\t activated = activated.parentNode;\n\n\t if (activated && activated._pre_click_activation_steps) {\n\t activated._pre_click_activation_steps();\n\t }\n\n\t var click = this.ownerDocument.createEvent('MouseEvent');\n\t click.initMouseEvent('click', true, true,\n\t this.ownerDocument.defaultView, 1,\n\t event.screenX, event.screenY,\n\t event.clientX, event.clientY,\n\t event.ctrlKey, event.altKey,\n\t event.shiftKey, event.metaKey,\n\t event.button, null);\n\n\t var result = this._dispatchEvent(click, true);\n\n\t if (activated) {\n\t if (result) {\n\t // This is where hyperlinks get followed, for example.\n\t if (activated._post_click_activation_steps)\n\t activated._post_click_activation_steps(click);\n\t }\n\t else {\n\t if (activated._cancelled_activation_steps)\n\t activated._cancelled_activation_steps();\n\t }\n\t }\n\t },\n\n\t //\n\t // An event handler is like an event listener, but it registered\n\t // by setting an IDL or content attribute like onload or onclick.\n\t // There can only be one of these at a time for any event type.\n\t // This is an internal method for the attribute accessors and\n\t // content attribute handlers that need to register events handlers.\n\t // The type argument is the same as in addEventListener().\n\t // The handler argument is the same as listeners in addEventListener:\n\t // it can be a function or an object. Pass null to remove any existing\n\t // handler. Handlers are always invoked before any listeners of\n\t // the same type. They are not invoked during the capturing phase\n\t // of event dispatch.\n\t //\n\t _setEventHandler: function _setEventHandler(type, handler) {\n\t if (!this._handlers) this._handlers = Object.create(null);\n\t this._handlers[type] = handler;\n\t },\n\n\t _getEventHandler: function _getEventHandler(type) {\n\t return (this._handlers && this._handlers[type]) || null;\n\t }\n\n\t};\n\treturn EventTarget_1;\n}\n\nvar LinkedList = {exports: {}};\n\nvar hasRequiredLinkedList;\n\nfunction requireLinkedList () {\n\tif (hasRequiredLinkedList) return LinkedList.exports;\n\thasRequiredLinkedList = 1;\n\tvar utils = requireUtils();\n\n\tvar LinkedList$1 = LinkedList.exports = {\n\t // basic validity tests on a circular linked list a\n\t valid: function(a) {\n\t utils.assert(a, \"list falsy\");\n\t utils.assert(a._previousSibling, \"previous falsy\");\n\t utils.assert(a._nextSibling, \"next falsy\");\n\t // xxx check that list is actually circular\n\t return true;\n\t },\n\t // insert a before b\n\t insertBefore: function(a, b) {\n\t utils.assert(LinkedList$1.valid(a) && LinkedList$1.valid(b));\n\t var a_first = a, a_last = a._previousSibling;\n\t var b_first = b, b_last = b._previousSibling;\n\t a_first._previousSibling = b_last;\n\t a_last._nextSibling = b_first;\n\t b_last._nextSibling = a_first;\n\t b_first._previousSibling = a_last;\n\t utils.assert(LinkedList$1.valid(a) && LinkedList$1.valid(b));\n\t },\n\t // replace a single node a with a list b (which could be null)\n\t replace: function(a, b) {\n\t utils.assert(LinkedList$1.valid(a) && (b===null || LinkedList$1.valid(b)));\n\t if (b!==null) {\n\t LinkedList$1.insertBefore(b, a);\n\t }\n\t LinkedList$1.remove(a);\n\t utils.assert(LinkedList$1.valid(a) && (b===null || LinkedList$1.valid(b)));\n\t },\n\t // remove single node a from its list\n\t remove: function(a) {\n\t utils.assert(LinkedList$1.valid(a));\n\t var prev = a._previousSibling;\n\t if (prev === a) { return; }\n\t var next = a._nextSibling;\n\t prev._nextSibling = next;\n\t next._previousSibling = prev;\n\t a._previousSibling = a._nextSibling = a;\n\t utils.assert(LinkedList$1.valid(a));\n\t }\n\t};\n\treturn LinkedList.exports;\n}\n\nvar NodeUtils;\nvar hasRequiredNodeUtils;\n\nfunction requireNodeUtils () {\n\tif (hasRequiredNodeUtils) return NodeUtils;\n\thasRequiredNodeUtils = 1;\n\tNodeUtils = {\n\t // NOTE: The `serializeOne()` function used to live on the `Node.prototype`\n\t // as a private method `Node#_serializeOne(child)`, however that requires\n\t // a megamorphic property access `this._serializeOne` just to get to the\n\t // method, and this is being done on lots of different `Node` subclasses,\n\t // which puts a lot of pressure on V8's megamorphic stub cache. So by\n\t // moving the helper off of the `Node.prototype` and into a separate\n\t // function in this helper module, we get a monomorphic property access\n\t // `NodeUtils.serializeOne` to get to the function and reduce pressure\n\t // on the megamorphic stub cache.\n\t // See https://github.com/fgnass/domino/pull/142 for more information.\n\t serializeOne: serializeOne,\n\n\t // Export util functions so that we can run extra test for them.\n\t // Note: we prefix function names with `ɵ`, similar to what we do\n\t // with internal functions in Angular packages.\n\t ɵescapeMatchingClosingTag: escapeMatchingClosingTag,\n\t ɵescapeClosingCommentTag: escapeClosingCommentTag,\n\t ɵescapeProcessingInstructionContent: escapeProcessingInstructionContent\n\t};\n\n\tvar utils = requireUtils();\n\tvar NAMESPACE = utils.NAMESPACE;\n\n\tvar hasRawContent = {\n\t STYLE: true,\n\t SCRIPT: true,\n\t XMP: true,\n\t IFRAME: true,\n\t NOEMBED: true,\n\t NOFRAMES: true,\n\t PLAINTEXT: true\n\t};\n\n\tvar emptyElements = {\n\t area: true,\n\t base: true,\n\t basefont: true,\n\t bgsound: true,\n\t br: true,\n\t col: true,\n\t embed: true,\n\t frame: true,\n\t hr: true,\n\t img: true,\n\t input: true,\n\t keygen: true,\n\t link: true,\n\t meta: true,\n\t param: true,\n\t source: true,\n\t track: true,\n\t wbr: true\n\t};\n\n\tvar extraNewLine = {\n\t /* Removed in https://github.com/whatwg/html/issues/944\n\t pre: true,\n\t textarea: true,\n\t listing: true\n\t */\n\t};\n\n\tconst ESCAPE_REGEXP = /[&<>\\u00A0]/g;\n\tconst ESCAPE_ATTR_REGEXP = /[&\"<>\\u00A0]/g;\n\n\tfunction escape(s) {\n\t if (!ESCAPE_REGEXP.test(s)) {\n\t // nothing to do, fast path\n\t return s;\n\t }\n\n\t return s.replace(ESCAPE_REGEXP, (c) => {\n\t switch (c) {\n\t case \"&\":\n\t return \"&\";\n\t case \"<\":\n\t return \"<\";\n\t case \">\":\n\t return \">\";\n\t case \"\\u00A0\":\n\t return \" \";\n\t }\n\t });\n\t}\n\n\tfunction escapeAttr(s) {\n\t if (!ESCAPE_ATTR_REGEXP.test(s)) {\n\t // nothing to do, fast path\n\t return s;\n\t }\n\n\t return s.replace(ESCAPE_ATTR_REGEXP, (c) => {\n\t switch (c) {\n\t case \"<\":\n\t return \"<\";\n\t case \">\":\n\t return \">\";\n\t case \"&\":\n\t return \"&\";\n\t case '\"':\n\t return \""\";\n\t case \"\\u00A0\":\n\t return \" \";\n\t }\n\t });\n\t}\n\n\tfunction attrname(a) {\n\t var ns = a.namespaceURI;\n\t if (!ns)\n\t return a.localName;\n\t if (ns === NAMESPACE.XML)\n\t return 'xml:' + a.localName;\n\t if (ns === NAMESPACE.XLINK)\n\t return 'xlink:' + a.localName;\n\n\t if (ns === NAMESPACE.XMLNS) {\n\t if (a.localName === 'xmlns') return 'xmlns';\n\t else return 'xmlns:' + a.localName;\n\t }\n\t return a.name;\n\t}\n\n\t/**\n\t * Escapes matching closing tag in a raw text.\n\t *\n\t * For example, given `<style>#text(</style><script></script>)</style>`,\n\t * the parent tag would by \"style\" and the raw text is\n\t * \"</style><script></script>\". If we come across a matching closing tag\n\t * (in out case `</style>`) - replace `<` with `<` to avoid unexpected\n\t * and unsafe behavior after de-serialization.\n\t */\n\tfunction escapeMatchingClosingTag(rawText, parentTag) {\n\t const parentClosingTag = '</' + parentTag;\n\t if (!rawText.toLowerCase().includes(parentClosingTag)) {\n\t return rawText; // fast path\n\t }\n\t const result = [...rawText];\n\t const matches = rawText.matchAll(new RegExp(parentClosingTag, 'ig'));\n\t for (const match of matches) {\n\t result[match.index] = '<';\n\t }\n\t return result.join('');\n\t}\n\n\tconst CLOSING_COMMENT_REGEXP = /--!?>/;\n\n\t/**\n\t * Escapes closing comment tag in a comment content.\n\t *\n\t * For example, given `#comment('-->')`, the content of a comment would be\n\t * updated to `-->` to avoid unexpected and unsafe behavior after\n\t * de-serialization.\n\t */\n\tfunction escapeClosingCommentTag(rawContent) {\n\t if (!CLOSING_COMMENT_REGEXP.test(rawContent)) {\n\t return rawContent; // fast path\n\t }\n\t return rawContent.replace(/(--\\!?)>/g, '$1>');\n\t}\n\n\t/**\n\t * Escapes processing instruction content by replacing `>` with `>`.\n\t */\n\tfunction escapeProcessingInstructionContent(rawContent) {\n\t return rawContent.includes('>')\n\t ? rawContent.replaceAll('>', '>')\n\t : rawContent;\n\t}\n\n\tfunction serializeOne(kid, parent) {\n\t var s = '';\n\t switch(kid.nodeType) {\n\t case 1: //ELEMENT_NODE\n\t var ns = kid.namespaceURI;\n\t var html = ns === NAMESPACE.HTML;\n\t var tagname = (html || ns === NAMESPACE.SVG || ns === NAMESPACE.MATHML) ? kid.localName : kid.tagName;\n\n\t s += '<' + tagname;\n\n\t for(var j = 0, k = kid._numattrs; j < k; j++) {\n\t var a = kid._attr(j);\n\t s += ' ' + attrname(a);\n\t if (a.value !== undefined) s += '=\"' + escapeAttr(a.value) + '\"';\n\t }\n\t s += '>';\n\n\t if (!(html && emptyElements[tagname])) {\n\t var ss = kid.serialize();\n\t // If an element can have raw content, this content may\n\t // potentially require escaping to avoid XSS.\n\t if (hasRawContent[tagname.toUpperCase()]) {\n\t ss = escapeMatchingClosingTag(ss, tagname);\n\t }\n\t if (html && extraNewLine[tagname] && ss.charAt(0)==='\\n') s += '\\n';\n\t // Serialize children and add end tag for all others\n\t s += ss;\n\t s += '</' + tagname + '>';\n\t }\n\t break;\n\t case 3: //TEXT_NODE\n\t case 4: //CDATA_SECTION_NODE\n\t var parenttag;\n\t if (parent.nodeType === 1 /*ELEMENT_NODE*/ &&\n\t parent.namespaceURI === NAMESPACE.HTML)\n\t parenttag = parent.tagName;\n\t else\n\t parenttag = '';\n\n\t if (hasRawContent[parenttag] ||\n\t (parenttag==='NOSCRIPT' && parent.ownerDocument._scripting_enabled)) {\n\t s += kid.data;\n\t } else {\n\t s += escape(kid.data);\n\t }\n\t break;\n\t case 8: //COMMENT_NODE\n\t s += '<!--' + escapeClosingCommentTag(kid.data) + '-->';\n\t break;\n\t case 7: //PROCESSING_INSTRUCTION_NODE\n\t const content = escapeProcessingInstructionContent(kid.data);\n\t s += '<?' + kid.target + ' ' + content + '?>';\n\t break;\n\t case 10: //DOCUMENT_TYPE_NODE\n\t s += '<!DOCTYPE ' + kid.name;\n\n\t s += '>';\n\t break;\n\t default:\n\t utils.InvalidStateError();\n\t }\n\t return s;\n\t}\n\treturn NodeUtils;\n}\n\nvar Node_1;\nvar hasRequiredNode;\n\nfunction requireNode () {\n\tif (hasRequiredNode) return Node_1;\n\thasRequiredNode = 1;\n\tNode_1 = Node;\n\n\tvar EventTarget = requireEventTarget();\n\tvar LinkedList = requireLinkedList();\n\tvar NodeUtils = requireNodeUtils();\n\tvar utils = requireUtils();\n\n\t// All nodes have a nodeType and an ownerDocument.\n\t// Once inserted, they also have a parentNode.\n\t// This is an abstract class; all nodes in a document are instances\n\t// of a subtype, so all the properties are defined by more specific\n\t// constructors.\n\tfunction Node() {\n\t EventTarget.call(this);\n\t this.parentNode = null;\n\t this._nextSibling = this._previousSibling = this;\n\t this._index = undefined;\n\t}\n\n\tvar ELEMENT_NODE = Node.ELEMENT_NODE = 1;\n\tvar ATTRIBUTE_NODE = Node.ATTRIBUTE_NODE = 2;\n\tvar TEXT_NODE = Node.TEXT_NODE = 3;\n\tvar CDATA_SECTION_NODE = Node.CDATA_SECTION_NODE = 4;\n\tvar ENTITY_REFERENCE_NODE = Node.ENTITY_REFERENCE_NODE = 5;\n\tvar ENTITY_NODE = Node.ENTITY_NODE = 6;\n\tvar PROCESSING_INSTRUCTION_NODE = Node.PROCESSING_INSTRUCTION_NODE = 7;\n\tvar COMMENT_NODE = Node.COMMENT_NODE = 8;\n\tvar DOCUMENT_NODE = Node.DOCUMENT_NODE = 9;\n\tvar DOCUMENT_TYPE_NODE = Node.DOCUMENT_TYPE_NODE = 10;\n\tvar DOCUMENT_FRAGMENT_NODE = Node.DOCUMENT_FRAGMENT_NODE = 11;\n\tvar NOTATION_NODE = Node.NOTATION_NODE = 12;\n\n\tvar DOCUMENT_POSITION_DISCONNECTED = Node.DOCUMENT_POSITION_DISCONNECTED = 0x01;\n\tvar DOCUMENT_POSITION_PRECEDING = Node.DOCUMENT_POSITION_PRECEDING = 0x02;\n\tvar DOCUMENT_POSITION_FOLLOWING = Node.DOCUMENT_POSITION_FOLLOWING = 0x04;\n\tvar DOCUMENT_POSITION_CONTAINS = Node.DOCUMENT_POSITION_CONTAINS = 0x08;\n\tvar DOCUMENT_POSITION_CONTAINED_BY = Node.DOCUMENT_POSITION_CONTAINED_BY = 0x10;\n\tvar DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;\n\n\tNode.prototype = Object.create(EventTarget.prototype, {\n\n\t // Node that are not inserted into the tree inherit a null parent\n\n\t // XXX: the baseURI attribute is defined by dom core, but\n\t // a correct implementation of it requires HTML features, so\n\t // we'll come back to this later.\n\t baseURI: { get: utils.nyi },\n\n\t parentElement: { get: function() {\n\t return (this.parentNode && this.parentNode.nodeType===ELEMENT_NODE) ? this.parentNode : null;\n\t }},\n\n\t hasChildNodes: { value: utils.shouldOverride },\n\n\t firstChild: { get: utils.shouldOverride },\n\n\t lastChild: { get: utils.shouldOverride },\n\n\t isConnected: {\n\t get: function () {\n\t let node = this;\n\t while (node != null) {\n\t if (node.nodeType === Node.DOCUMENT_NODE) {\n\t return true;\n\t }\n\n\t node = node.parentNode;\n\t if (node != null && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t node = node.host;\n\t }\n\t }\n\t return false;\n\t },\n\t },\n\n\t previousSibling: { get: function() {\n\t var parent = this.parentNode;\n\t if (!parent) return null;\n\t if (this === parent.firstChild) return null;\n\t return this._previousSibling;\n\t }},\n\n\t nextSibling: { get: function() {\n\t var parent = this.parentNode, next = this._nextSibling;\n\t if (!parent) return null;\n\t if (next === parent.firstChild) return null;\n\t return next;\n\t }},\n\n\t textContent: {\n\t // Should override for DocumentFragment/Element/Attr/Text/PI/Comment\n\t get: function() { return null; },\n\t set: function(v) { /* do nothing */ },\n\t },\n\n\t innerText: {\n\t // Should override for DocumentFragment/Element/Attr/Text/PI/Comment\n\t get: function() { return null; },\n\t set: function(v) { /* do nothing */ },\n\t },\n\n\t _countChildrenOfType: { value: function(type) {\n\t var sum = 0;\n\t for (var kid = this.firstChild; kid !== null; kid = kid.nextSibling) {\n\t if (kid.nodeType === type) sum++;\n\t }\n\t return sum;\n\t }},\n\n\t _ensureInsertValid: { value: function _ensureInsertValid(node, child, isPreinsert) {\n\t var parent = this, i, kid;\n\t if (!node.nodeType) throw new TypeError('not a node');\n\t // 1. If parent is not a Document, DocumentFragment, or Element\n\t // node, throw a HierarchyRequestError.\n\t switch (parent.nodeType) {\n\t case DOCUMENT_NODE:\n\t case DOCUMENT_FRAGMENT_NODE:\n\t case ELEMENT_NODE:\n\t break;\n\t default: utils.HierarchyRequestError();\n\t }\n\t // 2. If node is a host-including inclusive ancestor of parent,\n\t // throw a HierarchyRequestError.\n\t if (node.isAncestor(parent)) utils.HierarchyRequestError();\n\t // 3. If child is not null and its parent is not parent, then\n\t // throw a NotFoundError. (replaceChild omits the 'child is not null'\n\t // and throws a TypeError here if child is null.)\n\t if (child !== null || !isPreinsert) {\n\t if (child.parentNode !== parent) utils.NotFoundError();\n\t }\n\t // 4. If node is not a DocumentFragment, DocumentType, Element,\n\t // Text, ProcessingInstruction, or Comment node, throw a\n\t // HierarchyRequestError.\n\t switch (node.nodeType) {\n\t case DOCUMENT_FRAGMENT_NODE:\n\t case DOCUMENT_TYPE_NODE:\n\t case ELEMENT_NODE:\n\t case TEXT_NODE:\n\t case PROCESSING_INSTRUCTION_NODE:\n\t case COMMENT_NODE:\n\t break;\n\t default: utils.HierarchyRequestError();\n\t }\n\t // 5. If either node is a Text node and parent is a document, or\n\t // node is a doctype and parent is not a document, throw a\n\t // HierarchyRequestError.\n\t // 6. If parent is a document, and any of the statements below, switched\n\t // on node, are true, throw a HierarchyRequestError.\n\t if (parent.nodeType === DOCUMENT_NODE) {\n\t switch (node.nodeType) {\n\t case TEXT_NODE:\n\t utils.HierarchyRequestError();\n\t break;\n\t case DOCUMENT_FRAGMENT_NODE:\n\t // 6a1. If node has more than one element child or has a Text\n\t // node child.\n\t if (node._countChildrenOfType(TEXT_NODE) > 0)\n\t utils.HierarchyRequestError();\n\t switch (node._countChildrenOfType(ELEMENT_NODE)) {\n\t case 0:\n\t break;\n\t case 1:\n\t // 6a2. Otherwise, if node has one element child and either\n\t // parent has an element child, child is a doctype, or child\n\t // is not null and a doctype is following child. [preinsert]\n\t // 6a2. Otherwise, if node has one element child and either\n\t // parent has an element child that is not child or a\n\t // doctype is following child. [replaceWith]\n\t if (child !== null /* always true here for replaceWith */) {\n\t if (isPreinsert && child.nodeType === DOCUMENT_TYPE_NODE)\n\t utils.HierarchyRequestError();\n\t for (kid = child.nextSibling; kid !== null; kid = kid.nextSibling) {\n\t if (kid.nodeType === DOCUMENT_TYPE_NODE)\n\t utils.HierarchyRequestError();\n\t }\n\t }\n\t i = parent._countChildrenOfType(ELEMENT_NODE);\n\t if (isPreinsert) {\n\t // \"parent has an element child\"\n\t if (i > 0)\n\t utils.HierarchyRequestError();\n\t } else {\n\t // \"parent has an element child that is not child\"\n\t if (i > 1 || (i === 1 && child.nodeType !== ELEMENT_NODE))\n\t utils.HierarchyRequestError();\n\t }\n\t break;\n\t default: // 6a1, continued. (more than one Element child)\n\t utils.HierarchyRequestError();\n\t }\n\t break;\n\t case ELEMENT_NODE:\n\t // 6b. parent has an element child, child is a doctype, or\n\t // child is not null and a doctype is following child. [preinsert]\n\t // 6b. parent has an element child that is not child or a\n\t // doctype is following child. [replaceWith]\n\t if (child !== null /* always true here for replaceWith */) {\n\t if (isPreinsert && child.nodeType === DOCUMENT_TYPE_NODE)\n\t utils.HierarchyRequestError();\n\t for (kid = child.nextSibling; kid !== null; kid = kid.nextSibling) {\n\t if (kid.nodeType === DOCUMENT_TYPE_NODE)\n\t utils.HierarchyRequestError();\n\t }\n\t }\n\t i = parent._countChildrenOfType(ELEMENT_NODE);\n\t if (isPreinsert) {\n\t // \"parent has an element child\"\n\t if (i > 0)\n\t utils.HierarchyRequestError();\n\t } else {\n\t // \"parent has an element child that is not child\"\n\t if (i > 1 || (i === 1 && child.nodeType !== ELEMENT_NODE))\n\t utils.HierarchyRequestError();\n\t }\n\t break;\n\t case DOCUMENT_TYPE_NODE:\n\t // 6c. parent has a doctype child, child is non-null and an\n\t // element is preceding child, or child is null and parent has\n\t // an element child. [preinsert]\n\t // 6c. parent has a doctype child that is not child, or an\n\t // element is preceding child. [replaceWith]\n\t if (child === null) {\n\t if (parent._countChildrenOfType(ELEMENT_NODE))\n\t utils.HierarchyRequestError();\n\t } else {\n\t // child is always non-null for [replaceWith] case\n\t for (kid = parent.firstChild; kid !== null; kid = kid.nextSibling) {\n\t if (kid === child) break;\n\t if (kid.nodeType === ELEMENT_NODE)\n\t utils.HierarchyRequestError();\n\t }\n\t }\n\t i = parent._countChildrenOfType(DOCUMENT_TYPE_NODE);\n\t if (isPreinsert) {\n\t // \"parent has an doctype child\"\n\t if (i > 0)\n\t utils.HierarchyRequestError();\n\t } else {\n\t // \"parent has an doctype child that is not child\"\n\t if (i > 1 || (i === 1 && child.nodeType !== DOCUMENT_TYPE_NODE))\n\t utils.HierarchyRequestError();\n\t }\n\t break;\n\t }\n\t } else {\n\t // 5, continued: (parent is not a document)\n\t if (node.nodeType === DOCUMENT_TYPE_NODE) utils.HierarchyRequestError();\n\t }\n\t }},\n\n\t insertBefore: { value: function insertBefore(node, child) {\n\t var parent = this;\n\t // 1. Ensure pre-insertion validity\n\t parent._ensureInsertValid(node, child, true);\n\t // 2. Let reference child be child.\n\t var refChild = child;\n\t // 3. If reference child is node, set it to node's next sibling\n\t if (refChild === node) { refChild = node.nextSibling; }\n\t // 4. Adopt node into parent's node document.\n\t parent.doc.adoptNode(node);\n\t // 5. Insert node into parent before reference child.\n\t node._insertOrReplace(parent, refChild, false);\n\t // 6. Return node\n\t return node;\n\t }},\n\n\n\t appendChild: { value: function(child) {\n\t // This invokes _appendChild after doing validity checks.\n\t return this.insertBefore(child, null);\n\t }},\n\n\t _appendChild: { value: function(child) {\n\t child._insertOrReplace(this, null, false);\n\t }},\n\n\t removeChild: { value: function removeChild(child) {\n\t var parent = this;\n\t if (!child.nodeType) throw new TypeError('not a node');\n\t if (child.parentNode !== parent) utils.NotFoundError();\n\t child.remove();\n\t return child;\n\t }},\n\n\t // To replace a `child` with `node` within a `parent` (this)\n\t replaceChild: { value: function replaceChild(node, child) {\n\t var parent = this;\n\t // Ensure validity (slight differences from pre-insertion check)\n\t parent._ensureInsertValid(node, child, false);\n\t // Adopt node into parent's node document.\n\t if (node.doc !== parent.doc) {\n\t // XXX adoptNode has side-effect of removing node from its parent\n\t // and generating a mutation event, thus causing the _insertOrReplace\n\t // to generate two deletes and an insert instead of a 'move'\n\t // event. It looks like the new MutationObserver stuff avoids\n\t // this problem, but for now let's only adopt (ie, remove `node`\n\t // from its parent) here if we need to.\n\t parent.doc.adoptNode(node);\n\t }\n\t // Do the replace.\n\t node._insertOrReplace(parent, child, true);\n\t return child;\n\t }},\n\n\t // See: http://ejohn.org/blog/comparing-document-position/\n\t contains: { value: function contains(node) {\n\t if (node === null) { return false; }\n\t if (this === node) { return true; /* inclusive descendant */ }\n\t /* jshint bitwise: false */\n\t return (this.compareDocumentPosition(node) &\n\t DOCUMENT_POSITION_CONTAINED_BY) !== 0;\n\t }},\n\n\t compareDocumentPosition: { value: function compareDocumentPosition(that){\n\t // Basic algorithm for finding the relative position of two nodes.\n\t // Make a list the ancestors of each node, starting with the\n\t // document element and proceeding down to the nodes themselves.\n\t // Then, loop through the lists, looking for the first element\n\t // that differs. The order of those two elements give the\n\t // order of their descendant nodes. Or, if one list is a prefix\n\t // of the other one, then that node contains the other.\n\n\t if (this === that) return 0;\n\n\t // If they're not owned by the same document or if one is rooted\n\t // and one is not, then they're disconnected.\n\t if (this.doc !== that.doc ||\n\t this.rooted !== that.rooted)\n\t return (DOCUMENT_POSITION_DISCONNECTED +\n\t DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC);\n\n\t // Get arrays of ancestors for this and that\n\t var these = [], those = [];\n\t for(var n = this; n !== null; n = n.parentNode) these.push(n);\n\t for(n = that; n !== null; n = n.parentNode) those.push(n);\n\t these.reverse(); // So we start with the outermost\n\t those.reverse();\n\n\t if (these[0] !== those[0]) // No common ancestor\n\t return (DOCUMENT_POSITION_DISCONNECTED +\n\t DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC);\n\n\t n = Math.min(these.length, those.length);\n\t for(var i = 1; i < n; i++) {\n\t if (these[i] !== those[i]) {\n\t // We found two different ancestors, so compare\n\t // their positions\n\t if (these[i].index < those[i].index)\n\t return DOCUMENT_POSITION_FOLLOWING;\n\t else\n\t return DOCUMENT_POSITION_PRECEDING;\n\t }\n\t }\n\n\t // If we get to here, then one of the nodes (the one with the\n\t // shorter list of ancestors) contains the other one.\n\t if (these.length < those.length)\n\t return (DOCUMENT_POSITION_FOLLOWING +\n\t DOCUMENT_POSITION_CONTAINED_BY);\n\t else\n\t return (DOCUMENT_POSITION_PRECEDING +\n\t DOCUMENT_POSITION_CONTAINS);\n\t }},\n\n\t isSameNode: {value : function isSameNode(node) {\n\t return this === node;\n\t }},\n\n\n\t // This method implements the generic parts of node equality testing\n\t // and defers to the (non-recursive) type-specific isEqual() method\n\t // defined by subclasses\n\t isEqualNode: { value: function isEqualNode(node) {\n\t if (!node) return false;\n\t if (node.nodeType !== this.nodeType) return false;\n\n\t // Check type-specific properties for equality\n\t if (!this.isEqual(node)) return false;\n\n\t // Now check children for number and equality\n\t for (var c1 = this.firstChild, c2 = node.firstChild;\n\t c1 && c2;\n\t c1 = c1.nextSibling, c2 = c2.nextSibling) {\n\t if (!c1.isEqualNode(c2)) return false;\n\t }\n\t return c1 === null && c2 === null;\n\t }},\n\n\t // This method delegates shallow cloning to a clone() method\n\t // that each concrete subclass must implement\n\t cloneNode: { value: function(deep) {\n\t // Clone this node\n\t var clone = this.clone();\n\n\t // Handle the recursive case if necessary\n\t if (deep) {\n\t for (var kid = this.firstChild; kid !== null; kid = kid.nextSibling) {\n\t clone._appendChild(kid.cloneNode(true));\n\t }\n\t }\n\n\t return clone;\n\t }},\n\n\t lookupPrefix: { value: function lookupPrefix(ns) {\n\t var e;\n\t if (ns === '' || ns === null || ns === undefined) return null;\n\t switch(this.nodeType) {\n\t case ELEMENT_NODE:\n\t return this._lookupNamespacePrefix(ns, this);\n\t case DOCUMENT_NODE:\n\t e = this.documentElement;\n\t return e ? e.lookupPrefix(ns) : null;\n\t case ENTITY_NODE:\n\t case NOTATION_NODE:\n\t case DOCUMENT_FRAGMENT_NODE:\n\t case DOCUMENT_TYPE_NODE:\n\t return null;\n\t case ATTRIBUTE_NODE:\n\t e = this.ownerElement;\n\t return e ? e.lookupPrefix(ns) : null;\n\t default:\n\t e = this.parentElement;\n\t return e ? e.lookupPrefix(ns) : null;\n\t }\n\t }},\n\n\n\t lookupNamespaceURI: {value: function lookupNamespaceURI(prefix) {\n\t if (prefix === '' || prefix === undefined) { prefix = null; }\n\t var e;\n\t switch(this.nodeType) {\n\t case ELEMENT_NODE:\n\t return utils.shouldOverride();\n\t case DOCUMENT_NODE:\n\t e = this.documentElement;\n\t return e ? e.lookupNamespaceURI(prefix) : null;\n\t case ENTITY_NODE:\n\t case NOTATION_NODE:\n\t case DOCUMENT_TYPE_NODE:\n\t case DOCUMENT_FRAGMENT_NODE:\n\t return null;\n\t case ATTRIBUTE_NODE:\n\t e = this.ownerElement;\n\t return e ? e.lookupNamespaceURI(prefix) : null;\n\t default:\n\t e = this.parentElement;\n\t return e ? e.lookupNamespaceURI(prefix) : null;\n\t }\n\t }},\n\n\t isDefaultNamespace: { value: function isDefaultNamespace(ns) {\n\t if (ns === '' || ns === undefined) { ns = null; }\n\t var defaultNamespace = this.lookupNamespaceURI(null);\n\t return (defaultNamespace === ns);\n\t }},\n\n\t // Utility methods for nodes. Not part of the DOM\n\n\t // Return the index of this node in its parent.\n\t // Throw if no parent, or if this node is not a child of its parent\n\t index: { get: function() {\n\t var parent = this.parentNode;\n\t if (this === parent.firstChild) return 0; // fast case\n\t var kids = parent.childNodes;\n\t if (this._index === undefined || kids[this._index] !== this) {\n\t // Ensure that we don't have an O(N^2) blowup if none of the\n\t // kids have defined indices yet and we're traversing via\n\t // nextSibling or previousSibling\n\t for (var i=0; i<kids.length; i++) {\n\t kids[i]._index = i;\n\t }\n\t utils.assert(kids[this._index] === this);\n\t }\n\t return this._index;\n\t }},\n\n\t // Return true if this node is equal to or is an ancestor of that node\n\t // Note that nodes are considered to be ancestors of themselves\n\t isAncestor: { value: function(that) {\n\t // If they belong to different documents, then they're unrelated.\n\t if (this.doc !== that.doc) return false;\n\t // If one is rooted and one isn't then they're not related\n\t if (this.rooted !== that.rooted) return false;\n\n\t // Otherwise check by traversing the parentNode chain\n\t for(var e = that; e; e = e.parentNode) {\n\t if (e === this) return true;\n\t }\n\t return false;\n\t }},\n\n\t // DOMINO Changed the behavior to conform with the specs. See:\n\t // https://groups.google.com/d/topic/mozilla.dev.platform/77sIYcpdDmc/discussion\n\t ensureSameDoc: { value: function(that) {\n\t if (that.ownerDocument === null) {\n\t that.ownerDocument = this.doc;\n\t }\n\t else if(that.ownerDocument !== this.doc) {\n\t utils.WrongDocumentError();\n\t }\n\t }},\n\n\t removeChildren: { value: utils.shouldOverride },\n\n\t // Insert this node as a child of parent before the specified child,\n\t // or insert as the last child of parent if specified child is null,\n\t // or replace the specified child with this node, firing mutation events as\n\t // necessary\n\t _insertOrReplace: { value: function _insertOrReplace(parent, before, isReplace) {\n\t var child = this, before_index, i;\n\n\t if (child.nodeType === DOCUMENT_FRAGMENT_NODE && child.rooted) {\n\t utils.HierarchyRequestError();\n\t }\n\n\t /* Ensure index of `before` is cached before we (possibly) remove it. */\n\t if (parent._childNodes) {\n\t before_index = (before === null) ? parent._childNodes.length :\n\t before.index; /* ensure _index is cached */\n\n\t // If we are already a child of the specified parent, then\n\t // the index may have to be adjusted.\n\t if (child.parentNode === parent) {\n\t var child_index = child.index;\n\t // If the child is before the spot it is to be inserted at,\n\t // then when it is removed, the index of that spot will be\n\t // reduced.\n\t if (child_index < before_index) {\n\t before_index--;\n\t }\n\t }\n\t }\n\n\t // Delete the old child\n\t if (isReplace) {\n\t if (before.rooted) before.doc.mutateRemove(before);\n\t before.parentNode = null;\n\t }\n\n\t var n = before;\n\t if (n === null) { n = parent.firstChild; }\n\n\t // If both the child and the parent are rooted, then we want to\n\t // transplant the child without uprooting and rerooting it.\n\t var bothRooted = child.rooted && parent.rooted;\n\t if (child.nodeType === DOCUMENT_FRAGMENT_NODE) {\n\t var spliceArgs = [0, isReplace ? 1 : 0], next;\n\t for (var kid = child.firstChild; kid !== null; kid = next) {\n\t next = kid.nextSibling;\n\t spliceArgs.push(kid);\n\t kid.parentNode = parent;\n\t }\n\t var len = spliceArgs.length;\n\t // Add all nodes to the new parent, overwriting the old child\n\t if (isReplace) {\n\t LinkedList.replace(n, len > 2 ? spliceArgs[2] : null);\n\t } else if (len > 2 && n !== null) {\n\t LinkedList.insertBefore(spliceArgs[2], n);\n\t }\n\t if (parent._childNodes) {\n\t spliceArgs[0] = (before === null) ?\n\t parent._childNodes.length : before._index;\n\t parent._childNodes.splice.apply(parent._childNodes, spliceArgs);\n\t for (i=2; i<len; i++) {\n\t spliceArgs[i]._index = spliceArgs[0] + (i - 2);\n\t }\n\t } else if (parent._firstChild === before) {\n\t if (len > 2) {\n\t parent._firstChild = spliceArgs[2];\n\t } else if (isReplace) {\n\t parent._firstChild = null;\n\t }\n\t }\n\t // Remove all nodes from the document fragment\n\t if (child._childNodes) {\n\t child._childNodes.length = 0;\n\t } else {\n\t child._firstChild = null;\n\t }\n\t // Call the mutation handlers\n\t // Use spliceArgs since the original array has been destroyed. The\n\t // liveness guarantee requires us to clone the array so that\n\t // references to the childNodes of the DocumentFragment will be empty\n\t // when the insertion handlers are called.\n\t if (parent.rooted) {\n\t parent.modify();\n\t for (i = 2; i < len; i++) {\n\t parent.doc.mutateInsert(spliceArgs[i]);\n\t }\n\t }\n\t } else {\n\t if (before === child) { return; }\n\t if (bothRooted) {\n\t // Remove the child from its current position in the tree\n\t // without calling remove(), since we don't want to uproot it.\n\t child._remove();\n\t } else if (child.parentNode) {\n\t child.remove();\n\t }\n\n\t // Insert it as a child of its new parent\n\t child.parentNode = parent;\n\t if (isReplace) {\n\t LinkedList.replace(n, child);\n\t if (parent._childNodes) {\n\t child._index = before_index;\n\t parent._childNodes[before_index] = child;\n\t } else if (parent._firstChild === before) {\n\t parent._firstChild = child;\n\t }\n\t } else {\n\t if (n !== null) {\n\t LinkedList.insertBefore(child, n);\n\t }\n\t if (parent._childNodes) {\n\t child._index = before_index;\n\t parent._childNodes.splice(before_index, 0, child);\n\t } else if (parent._firstChild === before) {\n\t parent._firstChild = child;\n\t }\n\t }\n\t if (bothRooted) {\n\t parent.modify();\n\t // Generate a move mutation event\n\t parent.doc.mutateMove(child);\n\t } else if (parent.rooted) {\n\t parent.modify();\n\t parent.doc.mutateInsert(child);\n\t }\n\t }\n\t }},\n\n\n\t // Return the lastModTime value for this node. (For use as a\n\t // cache invalidation mechanism. If the node does not already\n\t // have one, initialize it from the owner document's modclock\n\t // property. (Note that modclock does not return the actual\n\t // time; it is simply a counter incremented on each document\n\t // modification)\n\t lastModTime: { get: function() {\n\t if (!this._lastModTime) {\n\t this._lastModTime = this.doc.modclock;\n\t }\n\t return this._lastModTime;\n\t }},\n\n\t // Increment the owner document's modclock and use the new\n\t // value to update the lastModTime value for this node and\n\t // all of its ancestors. Nodes that have never had their\n\t // lastModTime value queried do not need to have a\n\t // lastModTime property set on them since there is no\n\t // previously queried value to ever compare the new value\n\t // against, so only update nodes that already have a\n\t // _lastModTime property.\n\t modify: { value: function() {\n\t if (this.doc.modclock) { // Skip while doc.modclock == 0\n\t var time = ++this.doc.modclock;\n\t for(var n = this; n; n = n.parentElement) {\n\t if (n._lastModTime) {\n\t n._lastModTime = time;\n\t }\n\t }\n\t }\n\t }},\n\n\t // This attribute is not part of the DOM but is quite helpful.\n\t // It returns the document with which a node is associated. Usually\n\t // this is the ownerDocument. But ownerDocument is null for the\n\t // document object itself, so this is a handy way to get the document\n\t // regardless of the node type\n\t doc: { get: function() {\n\t return this.ownerDocument || this;\n\t }},\n\n\n\t // If the node has a nid (node id), then it is rooted in a document\n\t rooted: { get: function() {\n\t return !!this._nid;\n\t }},\n\n\t normalize: { value: function() {\n\t var next;\n\t for (var child=this.firstChild; child !== null; child=next) {\n\t next = child.nextSibling;\n\n\t if (child.normalize) {\n\t child.normalize();\n\t }\n\n\t if (child.nodeType !== Node.TEXT_NODE) {\n\t continue;\n\t }\n\n\t if (child.nodeValue === \"\") {\n\t this.removeChild(child);\n\t continue;\n\t }\n\n\t var prevChild = child.previousSibling;\n\t if (prevChild === null) {\n\t continue;\n\t } else if (prevChild.nodeType === Node.TEXT_NODE) {\n\t // merge this with previous and remove the child\n\t prevChild.appendData(child.nodeValue);\n\t this.removeChild(child);\n\t }\n\t }\n\t }},\n\n\t // Convert the children of a node to an HTML string.\n\t // This is used by the innerHTML getter\n\t // The serialization spec is at:\n\t // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#serializing-html-fragments\n\t //\n\t // The serialization logic is intentionally implemented in a separate\n\t // `NodeUtils` helper instead of the more obvious choice of a private\n\t // `_serializeOne()` method on the `Node.prototype` in order to avoid\n\t // the megamorphic `this._serializeOne` property access, which reduces\n\t // performance unnecessarily. If you need specialized behavior for a\n\t // certain subclass, you'll need to implement that in `NodeUtils`.\n\t // See https://github.com/fgnass/domino/pull/142 for more information.\n\t serialize: { value: function() {\n\t if (this._innerHTML) {\n\t return this._innerHTML;\n\t }\n\t var s = '';\n\t for (var kid = this.firstChild; kid !== null; kid = kid.nextSibling) {\n\t s += NodeUtils.serializeOne(kid, this);\n\t }\n\t return s;\n\t }},\n\n\t // Non-standard, but often useful for debugging.\n\t outerHTML: {\n\t get: function() {\n\t return NodeUtils.serializeOne(this, { nodeType: 0 });\n\t },\n\t set: utils.nyi,\n\t },\n\n\t // mirror node type properties in the prototype, so they are present\n\t // in instances of Node (and subclasses)\n\t ELEMENT_NODE: { value: ELEMENT_NODE },\n\t ATTRIBUTE_NODE: { value: ATTRIBUTE_NODE },\n\t TEXT_NODE: { value: TEXT_NODE },\n\t CDATA_SECTION_NODE: { value: CDATA_SECTION_NODE },\n\t ENTITY_REFERENCE_NODE: { value: ENTITY_REFERENCE_NODE },\n\t ENTITY_NODE: { value: ENTITY_NODE },\n\t PROCESSING_INSTRUCTION_NODE: { value: PROCESSING_INSTRUCTION_NODE },\n\t COMMENT_NODE: { value: COMMENT_NODE },\n\t DOCUMENT_NODE: { value: DOCUMENT_NODE },\n\t DOCUMENT_TYPE_NODE: { value: DOCUMENT_TYPE_NODE },\n\t DOCUMENT_FRAGMENT_NODE: { value: DOCUMENT_FRAGMENT_NODE },\n\t NOTATION_NODE: { value: NOTATION_NODE },\n\n\t DOCUMENT_POSITION_DISCONNECTED: { value: DOCUMENT_POSITION_DISCONNECTED },\n\t DOCUMENT_POSITION_PRECEDING: { value: DOCUMENT_POSITION_PRECEDING },\n\t DOCUMENT_POSITION_FOLLOWING: { value: DOCUMENT_POSITION_FOLLOWING },\n\t DOCUMENT_POSITION_CONTAINS: { value: DOCUMENT_POSITION_CONTAINS },\n\t DOCUMENT_POSITION_CONTAINED_BY: { value: DOCUMENT_POSITION_CONTAINED_BY },\n\t DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { value: DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC },\n\t});\n\treturn Node_1;\n}\n\n/* jshint esversion: 6 */\n\nvar NodeList_es6;\nvar hasRequiredNodeList_es6;\n\nfunction requireNodeList_es6 () {\n\tif (hasRequiredNodeList_es6) return NodeList_es6;\n\thasRequiredNodeList_es6 = 1;\n\n\tNodeList_es6 = class NodeList extends Array {\n\t constructor(a) {\n\t super((a && a.length) || 0);\n\t if (a) {\n\t for (var idx in a) { this[idx] = a[idx]; }\n\t }\n\t }\n\t item(i) { return this[i] || null; }\n\t};\n\treturn NodeList_es6;\n}\n\nvar NodeList_es5;\nvar hasRequiredNodeList_es5;\n\nfunction requireNodeList_es5 () {\n\tif (hasRequiredNodeList_es5) return NodeList_es5;\n\thasRequiredNodeList_es5 = 1;\n\n\t// No support for subclassing array, return an actual Array object.\n\tfunction item(i) {\n\t /* jshint validthis: true */\n\t return this[i] || null;\n\t}\n\n\tfunction NodeList(a) {\n\t if (!a) a = [];\n\t a.item = item;\n\t return a;\n\t}\n\n\tNodeList_es5 = NodeList;\n\treturn NodeList_es5;\n}\n\nvar NodeList_1;\nvar hasRequiredNodeList;\n\nfunction requireNodeList () {\n\tif (hasRequiredNodeList) return NodeList_1;\n\thasRequiredNodeList = 1;\n\n\tvar NodeList;\n\n\ttry {\n\t // Attempt to use ES6-style Array subclass if possible.\n\t NodeList = requireNodeList_es6();\n\t} catch (e) {\n\t // No support for subclassing array, return an actual Array object.\n\t NodeList = requireNodeList_es5();\n\t}\n\n\tNodeList_1 = NodeList;\n\treturn NodeList_1;\n}\n\nvar ContainerNode_1;\nvar hasRequiredContainerNode;\n\nfunction requireContainerNode () {\n\tif (hasRequiredContainerNode) return ContainerNode_1;\n\thasRequiredContainerNode = 1;\n\tContainerNode_1 = ContainerNode;\n\n\tvar Node = requireNode();\n\tvar NodeList = requireNodeList();\n\n\t// This class defines common functionality for node subtypes that\n\t// can have children\n\n\tfunction ContainerNode() {\n\t Node.call(this);\n\t this._firstChild = this._childNodes = null;\n\t}\n\n\t// Primary representation is a circular linked list of siblings\n\tContainerNode.prototype = Object.create(Node.prototype, {\n\n\t hasChildNodes: { value: function() {\n\t if (this._childNodes) {\n\t return this._childNodes.length > 0;\n\t }\n\t return this._firstChild !== null;\n\t }},\n\n\t childNodes: { get: function() {\n\t this._ensureChildNodes();\n\t return this._childNodes;\n\t }},\n\n\t firstChild: { get: function() {\n\t if (this._childNodes) {\n\t return this._childNodes.length === 0 ? null : this._childNodes[0];\n\t }\n\t return this._firstChild;\n\t }},\n\n\t lastChild: { get: function() {\n\t var kids = this._childNodes, first;\n\t if (kids) {\n\t return kids.length === 0 ? null: kids[kids.length-1];\n\t }\n\t first = this._firstChild;\n\t if (first === null) { return null; }\n\t return first._previousSibling; // circular linked list\n\t }},\n\n\t _ensureChildNodes: { value: function() {\n\t if (this._childNodes) { return; }\n\t var first = this._firstChild,\n\t kid = first,\n\t childNodes = this._childNodes = new NodeList();\n\t if (first) do {\n\t childNodes.push(kid);\n\t kid = kid._nextSibling;\n\t } while (kid !== first); // circular linked list\n\t this._firstChild = null; // free memory\n\t }},\n\n\t // Remove all of this node's children. This is a minor\n\t // optimization that only calls modify() once.\n\t removeChildren: { value: function removeChildren() {\n\t var root = this.rooted ? this.ownerDocument : null,\n\t next = this.firstChild,\n\t kid;\n\t while (next !== null) {\n\t kid = next;\n\t next = kid.nextSibling;\n\n\t if (root) root.mutateRemove(kid);\n\t kid.parentNode = null;\n\t }\n\t if (this._childNodes) {\n\t this._childNodes.length = 0;\n\t } else {\n\t this._firstChild = null;\n\t }\n\t this.modify(); // Update last modified type once only\n\t }},\n\n\t});\n\treturn ContainerNode_1;\n}\n\nvar xmlnames = {};\n\nvar hasRequiredXmlnames;\n\nfunction requireXmlnames () {\n\tif (hasRequiredXmlnames) return xmlnames;\n\thasRequiredXmlnames = 1;\n\t// This grammar is from the XML and XML Namespace specs. It specifies whether\n\t// a string (such as an element or attribute name) is a valid Name or QName.\n\t//\n\t// Name ::= NameStartChar (NameChar)*\n\t// NameStartChar ::= \":\" | [A-Z] | \"_\" | [a-z] |\n\t// [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] |\n\t// [#x370-#x37D] | [#x37F-#x1FFF] |\n\t// [#x200C-#x200D] | [#x2070-#x218F] |\n\t// [#x2C00-#x2FEF] | [#x3001-#xD7FF] |\n\t// [#xF900-#xFDCF] | [#xFDF0-#xFFFD] |\n\t// [#x10000-#xEFFFF]\n\t//\n\t// NameChar ::= NameStartChar | \"-\" | \".\" | [0-9] |\n\t// #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n\t//\n\t// QName ::= PrefixedName| UnprefixedName\n\t// PrefixedName ::= Prefix ':' LocalPart\n\t// UnprefixedName ::= LocalPart\n\t// Prefix ::= NCName\n\t// LocalPart ::= NCName\n\t// NCName ::= Name - (Char* ':' Char*)\n\t// # An XML Name, minus the \":\"\n\t//\n\n\txmlnames.isValidName = isValidName;\n\txmlnames.isValidQName = isValidQName;\n\n\t// Most names will be ASCII only. Try matching against simple regexps first\n\tvar simplename = /^[_:A-Za-z][-.:\\w]+$/;\n\tvar simpleqname = /^([_A-Za-z][-.\\w]+|[_A-Za-z][-.\\w]+:[_A-Za-z][-.\\w]+)$/;\n\n\t// If the regular expressions above fail, try more complex ones that work\n\t// for any identifiers using codepoints from the Unicode BMP\n\tvar ncnamestartchars = \"_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02ff\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\";\n\tvar ncnamechars = \"-._A-Za-z0-9\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02ff\\u0300-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u203f\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\";\n\n\tvar ncname = \"[\" + ncnamestartchars + \"][\" + ncnamechars + \"]*\";\n\tvar namestartchars = ncnamestartchars + \":\";\n\tvar namechars = ncnamechars + \":\";\n\tvar name = new RegExp(\"^[\" + namestartchars + \"]\" + \"[\" + namechars + \"]*$\");\n\tvar qname = new RegExp(\"^(\" + ncname + \"|\" + ncname + \":\" + ncname + \")$\");\n\n\t// XML says that these characters are also legal:\n\t// [#x10000-#xEFFFF]. So if the patterns above fail, and the\n\t// target string includes surrogates, then try the following\n\t// patterns that allow surrogates and then run an extra validation\n\t// step to make sure that the surrogates are in valid pairs and in\n\t// the right range. Note that since the characters \\uf0000 to \\u1f0000\n\t// are not allowed, it means that the high surrogate can only go up to\n\t// \\uDB7f instead of \\uDBFF.\n\tvar hassurrogates = /[\\uD800-\\uDB7F\\uDC00-\\uDFFF]/;\n\tvar surrogatechars = /[\\uD800-\\uDB7F\\uDC00-\\uDFFF]/g;\n\tvar surrogatepairs = /[\\uD800-\\uDB7F][\\uDC00-\\uDFFF]/g;\n\n\t// Modify the variables above to allow surrogates\n\tncnamestartchars += \"\\uD800-\\uDB7F\\uDC00-\\uDFFF\";\n\tncnamechars += \"\\uD800-\\uDB7F\\uDC00-\\uDFFF\";\n\tncname = \"[\" + ncnamestartchars + \"][\" + ncnamechars + \"]*\";\n\tnamestartchars = ncnamestartchars + \":\";\n\tnamechars = ncnamechars + \":\";\n\n\t// Build another set of regexps that include surrogates\n\tvar surrogatename = new RegExp(\"^[\" + namestartchars + \"]\" + \"[\" + namechars + \"]*$\");\n\tvar surrogateqname = new RegExp(\"^(\" + ncname + \"|\" + ncname + \":\" + ncname + \")$\");\n\n\tfunction isValidName(s) {\n\t if (simplename.test(s)) return true; // Plain ASCII\n\t if (name.test(s)) return true; // Unicode BMP\n\n\t // Maybe the tests above failed because s includes surrogate pairs\n\t // Most likely, though, they failed for some more basic syntax problem\n\t if (!hassurrogates.test(s)) return false;\n\n\t // Is the string a valid name if we allow surrogates?\n\t if (!surrogatename.test(s)) return false;\n\n\t // Finally, are the surrogates all correctly paired up?\n\t var chars = s.match(surrogatechars), pairs = s.match(surrogatepairs);\n\t return pairs !== null && 2*pairs.length === chars.length;\n\t}\n\n\tfunction isValidQName(s) {\n\t if (simpleqname.test(s)) return true; // Plain ASCII\n\t if (qname.test(s)) return true; // Unicode BMP\n\n\t if (!hassurrogates.test(s)) return false;\n\t if (!surrogateqname.test(s)) return false;\n\t var chars = s.match(surrogatechars), pairs = s.match(surrogatepairs);\n\t return pairs !== null && 2*pairs.length === chars.length;\n\t}\n\treturn xmlnames;\n}\n\nvar attributes = {};\n\nvar hasRequiredAttributes;\n\nfunction requireAttributes () {\n\tif (hasRequiredAttributes) return attributes;\n\thasRequiredAttributes = 1;\n\tvar utils = requireUtils();\n\n\tattributes.property = function(attr) {\n\t if (Array.isArray(attr.type)) {\n\t var valid = Object.create(null);\n\t attr.type.forEach(function(val) {\n\t valid[val.value || val] = val.alias || val;\n\t });\n\t var missingValueDefault = attr.missing;\n\t if (missingValueDefault===undefined) { missingValueDefault = null; }\n\t var invalidValueDefault = attr.invalid;\n\t if (invalidValueDefault===undefined) { invalidValueDefault = missingValueDefault; }\n\t return {\n\t get: function() {\n\t var v = this._getattr(attr.name);\n\t if (v === null) return missingValueDefault;\n\n\t v = valid[v.toLowerCase()];\n\t if (v !== undefined) return v;\n\t if (invalidValueDefault !== null) return invalidValueDefault;\n\t return v;\n\t },\n\t set: function(v) {\n\t this._setattr(attr.name, v);\n\t }\n\t };\n\t }\n\t else if (attr.type === Boolean) {\n\t return {\n\t get: function() {\n\t return this.hasAttribute(attr.name);\n\t },\n\t set: function(v) {\n\t if (v) {\n\t this._setattr(attr.name, '');\n\t }\n\t else {\n\t this.removeAttribute(attr.name);\n\t }\n\t }\n\t };\n\t }\n\t else if (attr.type === Number ||\n\t attr.type === \"long\" ||\n\t attr.type === \"unsigned long\" ||\n\t attr.type === \"limited unsigned long with fallback\") {\n\t return numberPropDesc(attr);\n\t }\n\t else if (!attr.type || attr.type === String) {\n\t return {\n\t get: function() { return this._getattr(attr.name) || ''; },\n\t set: function(v) {\n\t if (attr.treatNullAsEmptyString && v === null) { v = ''; }\n\t this._setattr(attr.name, v);\n\t }\n\t };\n\t }\n\t else if (typeof attr.type === 'function') {\n\t return attr.type(attr.name, attr);\n\t }\n\t throw new Error('Invalid attribute definition');\n\t};\n\n\t// See http://www.whatwg.org/specs/web-apps/current-work/#reflect\n\t//\n\t// defval is the default value. If it is a function, then that function\n\t// will be invoked as a method of the element to obtain the default.\n\t// If no default is specified for a given attribute, then the default\n\t// depends on the type of the attribute, but since this function handles\n\t// 4 integer cases, you must specify the default value in each call\n\t//\n\t// min and max define a valid range for getting the attribute.\n\t//\n\t// setmin defines a minimum value when setting. If the value is less\n\t// than that, then throw INDEX_SIZE_ERR.\n\t//\n\t// Conveniently, JavaScript's parseInt function appears to be\n\t// compatible with HTML's 'rules for parsing integers'\n\tfunction numberPropDesc(a) {\n\t var def;\n\t if(typeof a.default === 'function') {\n\t def = a.default;\n\t }\n\t else if(typeof a.default === 'number') {\n\t def = function() { return a.default; };\n\t }\n\t else {\n\t def = function() { utils.assert(false, typeof a.default); };\n\t }\n\t var unsigned_long = (a.type === 'unsigned long');\n\t var signed_long = (a.type === 'long');\n\t var unsigned_fallback = (a.type === 'limited unsigned long with fallback');\n\t var min = a.min, max = a.max, setmin = a.setmin;\n\t if (min === undefined) {\n\t if (unsigned_long) min = 0;\n\t if (signed_long) min = -2147483648;\n\t if (unsigned_fallback) min = 1;\n\t }\n\t if (max === undefined) {\n\t if (unsigned_long || signed_long || unsigned_fallback) max = 0x7FFFFFFF;\n\t }\n\n\t return {\n\t get: function() {\n\t var v = this._getattr(a.name);\n\t var n = a.float ? parseFloat(v) : parseInt(v, 10);\n\t if (v === null || !isFinite(n) || (min !== undefined && n < min) || (max !== undefined && n > max)) {\n\t return def.call(this);\n\t }\n\t if (unsigned_long || signed_long || unsigned_fallback) {\n\t if (!/^[ \\t\\n\\f\\r]*[-+]?[0-9]/.test(v)) { return def.call(this); }\n\t n = n|0; // jshint ignore:line\n\t }\n\t return n;\n\t },\n\t set: function(v) {\n\t if (!a.float) { v = Math.floor(v); }\n\t if (setmin !== undefined && v < setmin) {\n\t utils.IndexSizeError(a.name + ' set to ' + v);\n\t }\n\t if (unsigned_long) {\n\t v = (v < 0 || v > 0x7FFFFFFF) ? def.call(this) :\n\t (v|0); // jshint ignore:line\n\t } else if (unsigned_fallback) {\n\t v = (v < 1 || v > 0x7FFFFFFF) ? def.call(this) :\n\t (v|0); // jshint ignore:line\n\t } else if (signed_long) {\n\t v = (v < -2147483648 || v > 0x7FFFFFFF) ? def.call(this) :\n\t (v|0); // jshint ignore:line\n\t }\n\t this._setattr(a.name, String(v));\n\t }\n\t };\n\t}\n\n\t// This is a utility function for setting up change handler functions\n\t// for attributes like 'id' that require special handling when they change.\n\tattributes.registerChangeHandler = function(c, name, handler) {\n\t var p = c.prototype;\n\n\t // If p does not already have its own _attributeChangeHandlers\n\t // then create one for it, inheriting from the inherited\n\t // _attributeChangeHandlers. At the top (for the Element class) the\n\t // _attributeChangeHandlers object will be created with a null prototype.\n\t if (!Object.prototype.hasOwnProperty.call(p, '_attributeChangeHandlers')) {\n\t p._attributeChangeHandlers =\n\t Object.create(p._attributeChangeHandlers || null);\n\t }\n\n\t p._attributeChangeHandlers[name] = handler;\n\t};\n\treturn attributes;\n}\n\nvar FilteredElementList_1;\nvar hasRequiredFilteredElementList;\n\nfunction requireFilteredElementList () {\n\tif (hasRequiredFilteredElementList) return FilteredElementList_1;\n\thasRequiredFilteredElementList = 1;\n\tFilteredElementList_1 = FilteredElementList;\n\n\tvar Node = requireNode();\n\n\t//\n\t// This file defines node list implementation that lazily traverses\n\t// the document tree (or a subtree rooted at any element) and includes\n\t// only those elements for which a specified filter function returns true.\n\t// It is used to implement the\n\t// {Document,Element}.getElementsBy{TagName,ClassName}{,NS} methods.\n\t//\n\t// XXX this should inherit from NodeList\n\n\tfunction FilteredElementList(root, filter) {\n\t this.root = root;\n\t this.filter = filter;\n\t this.lastModTime = root.lastModTime;\n\t this.done = false;\n\t this.cache = [];\n\t this.traverse();\n\t}\n\n\tFilteredElementList.prototype = Object.create(Object.prototype, {\n\t length: { get: function() {\n\t this.checkcache();\n\t if (!this.done) this.traverse();\n\t return this.cache.length;\n\t } },\n\n\t item: { value: function(n) {\n\t this.checkcache();\n\t if (!this.done && n >= this.cache.length) {\n\t // This can lead to O(N^2) behavior if we stop when we get to n\n\t // and the caller is iterating through the items in order; so\n\t // be sure to do the full traverse here.\n\t this.traverse(/*n*/);\n\t }\n\t return this.cache[n];\n\t } },\n\n\t checkcache: { value: function() {\n\t if (this.lastModTime !== this.root.lastModTime) {\n\t // subtree has changed, so invalidate cache\n\t for (var i = this.cache.length-1; i>=0; i--) {\n\t this[i] = undefined;\n\t }\n\t this.cache.length = 0;\n\t this.done = false;\n\t this.lastModTime = this.root.lastModTime;\n\t }\n\t } },\n\n\t // If n is specified, then traverse the tree until we've found the nth\n\t // item (or until we've found all items). If n is not specified,\n\t // traverse until we've found all items.\n\t traverse: { value: function(n) {\n\t // increment n so we can compare to length, and so it is never falsy\n\t if (n !== undefined) n++;\n\n\t var elt;\n\t while ((elt = this.next()) !== null) {\n\t this[this.cache.length] = elt; //XXX Use proxy instead\n\t this.cache.push(elt);\n\t if (n && this.cache.length === n) return;\n\t }\n\n\t // no next element, so we've found everything\n\t this.done = true;\n\t } },\n\n\t // Return the next element under root that matches filter\n\t next: { value: function() {\n\t var start = (this.cache.length === 0) ? this.root // Start at the root or at\n\t : this.cache[this.cache.length-1]; // the last element we found\n\n\t var elt;\n\t if (start.nodeType === Node.DOCUMENT_NODE)\n\t elt = start.documentElement;\n\t else\n\t elt = start.nextElement(this.root);\n\n\t while(elt) {\n\t if (this.filter(elt)) {\n\t return elt;\n\t }\n\n\t elt = elt.nextElement(this.root);\n\t }\n\t return null;\n\t } },\n\t});\n\treturn FilteredElementList_1;\n}\n\nvar DOMTokenList_1;\nvar hasRequiredDOMTokenList;\n\nfunction requireDOMTokenList () {\n\tif (hasRequiredDOMTokenList) return DOMTokenList_1;\n\thasRequiredDOMTokenList = 1;\n\t// DOMTokenList implementation based on https://github.com/Raynos/DOM-shim\n\tvar utils = requireUtils();\n\n\tDOMTokenList_1 = DOMTokenList;\n\n\tfunction DOMTokenList(getter, setter) {\n\t this._getString = getter;\n\t this._setString = setter;\n\t this._length = 0;\n\t this._lastStringValue = '';\n\t this._update();\n\t}\n\n\tObject.defineProperties(DOMTokenList.prototype, {\n\t length: { get: function() { return this._length; } },\n\t item: { value: function(index) {\n\t var list = getList(this);\n\t if (index < 0 || index >= list.length) {\n\t return null;\n\t }\n\t return list[index];\n\t }},\n\n\t contains: { value: function(token) {\n\t token = String(token); // no error checking for contains()\n\t var list = getList(this);\n\t return list.indexOf(token) > -1;\n\t }},\n\n\t add: { value: function() {\n\t var list = getList(this);\n\t for (var i = 0, len = arguments.length; i < len; i++) {\n\t var token = handleErrors(arguments[i]);\n\t if (list.indexOf(token) < 0) {\n\t list.push(token);\n\t }\n\t }\n\t // Note: as per spec, if handleErrors() throws any errors, we never\n\t // make it here and none of the changes take effect.\n\t // Also per spec: we run the \"update steps\" even if no change was\n\t // made (ie, if the token already existed)\n\t this._update(list);\n\t }},\n\n\t remove: { value: function() {\n\t var list = getList(this);\n\t for (var i = 0, len = arguments.length; i < len; i++) {\n\t var token = handleErrors(arguments[i]);\n\t var index = list.indexOf(token);\n\t if (index > -1) {\n\t list.splice(index, 1);\n\t }\n\t }\n\t // Note: as per spec, if handleErrors() throws any errors, we never\n\t // make it here and none of the changes take effect.\n\t // Also per spec: we run the \"update steps\" even if no change was\n\t // made (ie, if the token wasn't previously present)\n\t this._update(list);\n\t }},\n\n\t toggle: { value: function toggle(token, force) {\n\t token = handleErrors(token);\n\t if (this.contains(token)) {\n\t if (force === undefined || force === false) {\n\t this.remove(token);\n\t return false;\n\t }\n\t return true;\n\t } else {\n\t if (force === undefined || force === true) {\n\t this.add(token);\n\t return true;\n\t }\n\t return false;\n\t }\n\t }},\n\n\t replace: { value: function replace(token, newToken) {\n\t // weird corner case of spec: if `token` contains whitespace, but\n\t // `newToken` is the empty string, we must throw SyntaxError not\n\t // InvalidCharacterError (sigh)\n\t if (String(newToken)==='') { utils.SyntaxError(); }\n\t token = handleErrors(token);\n\t newToken = handleErrors(newToken);\n\t var list = getList(this);\n\t var idx = list.indexOf(token);\n\t if (idx < 0) {\n\t // Note that, per spec, we do not run the update steps on this path.\n\t return false;\n\t }\n\t var idx2 = list.indexOf(newToken);\n\t if (idx2 < 0) {\n\t list[idx] = newToken;\n\t } else {\n\t // \"replace the first instance of either `token` or `newToken` with\n\t // `newToken` and remove all other instances\"\n\t if (idx < idx2) {\n\t list[idx] = newToken;\n\t list.splice(idx2, 1);\n\t } else {\n\t // idx2 is already `newToken`\n\t list.splice(idx, 1);\n\t }\n\t }\n\t this._update(list);\n\t return true;\n\t }},\n\n\t toString: { value: function() {\n\t return this._getString();\n\t }},\n\n\t value: {\n\t get: function() {\n\t return this._getString();\n\t },\n\t set: function(v) {\n\t this._setString(v);\n\t this._update();\n\t }\n\t },\n\n\t // Called when the setter is called from outside this interface.\n\t _update: { value: function(list) {\n\t if (list) {\n\t fixIndex(this, list);\n\t this._setString(list.join(\" \").trim());\n\t } else {\n\t fixIndex(this, getList(this));\n\t }\n\t this._lastStringValue = this._getString();\n\t } },\n\t});\n\n\tfunction fixIndex(clist, list) {\n\t var oldLength = clist._length;\n\t var i;\n\t clist._length = list.length;\n\t for (i = 0; i < list.length; i++) {\n\t clist[i] = list[i];\n\t }\n\t // Clear/free old entries.\n\t for (; i < oldLength; i++) {\n\t clist[i] = undefined;\n\t }\n\t}\n\n\tfunction handleErrors(token) {\n\t token = String(token);\n\t if (token === \"\") {\n\t utils.SyntaxError();\n\t }\n\t if (/[ \\t\\r\\n\\f]/.test(token)) {\n\t utils.InvalidCharacterError();\n\t }\n\t return token;\n\t}\n\n\tfunction toArray(clist) {\n\t var length = clist._length;\n\t var arr = Array(length);\n\t for (var i = 0; i < length; i++) {\n\t arr[i] = clist[i];\n\t }\n\t return arr;\n\t}\n\n\tfunction getList(clist) {\n\t var strProp = clist._getString();\n\t if (strProp === clist._lastStringValue) {\n\t return toArray(clist);\n\t }\n\t var str = strProp.replace(/(^[ \\t\\r\\n\\f]+)|([ \\t\\r\\n\\f]+$)/g, '');\n\t if (str === \"\") {\n\t return [];\n\t } else {\n\t var seen = Object.create(null);\n\t return str.split(/[ \\t\\r\\n\\f]+/g).filter(function(n) {\n\t var key = '$' + n;\n\t if (seen[key]) { return false; }\n\t seen[key] = true;\n\t return true;\n\t });\n\t }\n\t}\n\treturn DOMTokenList_1;\n}\n\nvar select = {exports: {}};\n\nvar hasRequiredSelect;\n\nfunction requireSelect () {\n\tif (hasRequiredSelect) return select.exports;\n\thasRequiredSelect = 1;\n\t(function (module, exports) {\n\t\t/* jshint eqnull: true */\n\t\t/**\n\t\t * Zest (https://github.com/chjj/zest)\n\t\t * A css selector engine.\n\t\t * Copyright (c) 2011-2012, Christopher Jeffrey. (MIT Licensed)\n\t\t * Domino version based on Zest v0.1.3 with bugfixes applied.\n\t\t */\n\n\t\t/**\n\t\t * Helpers\n\t\t */\n\n\t\tvar window = Object.create(null, {\n\t\t location: { get: function() {\n\t\t throw new Error('window.location is not supported.');\n\t\t } }\n\t\t});\n\n\t\tvar compareDocumentPosition = function(a, b) {\n\t\t return a.compareDocumentPosition(b);\n\t\t};\n\n\t\tvar order = function(a, b) {\n\t\t /* jshint bitwise: false */\n\t\t return compareDocumentPosition(a, b) & 2 ? 1 : -1;\n\t\t};\n\n\t\tvar next = function(el) {\n\t\t while ((el = el.nextSibling)\n\t\t && el.nodeType !== 1);\n\t\t return el;\n\t\t};\n\n\t\tvar prev = function(el) {\n\t\t while ((el = el.previousSibling)\n\t\t && el.nodeType !== 1);\n\t\t return el;\n\t\t};\n\n\t\tvar child = function(el) {\n\t\t /*jshint -W084 */\n\t\t if (el = el.firstChild) {\n\t\t while (el.nodeType !== 1\n\t\t && (el = el.nextSibling));\n\t\t }\n\t\t return el;\n\t\t};\n\n\t\tvar lastChild = function(el) {\n\t\t /*jshint -W084 */\n\t\t if (el = el.lastChild) {\n\t\t while (el.nodeType !== 1\n\t\t && (el = el.previousSibling));\n\t\t }\n\t\t return el;\n\t\t};\n\n\t\tvar parentIsElement = function(n) {\n\t\t if (!n.parentNode) { return false; }\n\t\t var nodeType = n.parentNode.nodeType;\n\t\t // The root `html` element can be a first- or last-child, too.\n\t\t return nodeType === 1 || nodeType === 9;\n\t\t};\n\n\t\tvar unquote = function(str) {\n\t\t if (!str) return str;\n\t\t var ch = str[0];\n\t\t if (ch === '\"' || ch === '\\'') {\n\t\t if (str[str.length-1] === ch) {\n\t\t str = str.slice(1, -1);\n\t\t } else {\n\t\t // bad string.\n\t\t str = str.slice(1);\n\t\t }\n\t\t return str.replace(rules.str_escape, function(s) {\n\t\t var m = /^\\\\(?:([0-9A-Fa-f]+)|([\\r\\n\\f]+))/.exec(s);\n\t\t if (!m) { return s.slice(1); }\n\t\t if (m[2]) { return ''; /* escaped newlines are ignored in strings. */ }\n\t\t var cp = parseInt(m[1], 16);\n\t\t return String.fromCodePoint ? String.fromCodePoint(cp) :\n\t\t // Not all JavaScript implementations have String.fromCodePoint yet.\n\t\t String.fromCharCode(cp);\n\t\t });\n\t\t } else if (rules.ident.test(str)) {\n\t\t return decodeid(str);\n\t\t } else {\n\t\t // NUMBER, PERCENTAGE, DIMENSION, etc\n\t\t return str;\n\t\t }\n\t\t};\n\n\t\tvar decodeid = function(str) {\n\t\t return str.replace(rules.escape, function(s) {\n\t\t var m = /^\\\\([0-9A-Fa-f]+)/.exec(s);\n\t\t if (!m) { return s[1]; }\n\t\t var cp = parseInt(m[1], 16);\n\t\t return String.fromCodePoint ? String.fromCodePoint(cp) :\n\t\t // Not all JavaScript implementations have String.fromCodePoint yet.\n\t\t String.fromCharCode(cp);\n\t\t });\n\t\t};\n\n\t\tvar indexOf = (function() {\n\t\t if (Array.prototype.indexOf) {\n\t\t return Array.prototype.indexOf;\n\t\t }\n\t\t return function(obj, item) {\n\t\t var i = this.length;\n\t\t while (i--) {\n\t\t if (this[i] === item) return i;\n\t\t }\n\t\t return -1;\n\t\t };\n\t\t})();\n\n\t\tvar makeInside = function(start, end) {\n\t\t var regex = rules.inside.source\n\t\t .replace(/</g, start)\n\t\t .replace(/>/g, end);\n\n\t\t return new RegExp(regex);\n\t\t};\n\n\t\tvar replace = function(regex, name, val) {\n\t\t regex = regex.source;\n\t\t regex = regex.replace(name, val.source || val);\n\t\t return new RegExp(regex);\n\t\t};\n\n\t\tvar truncateUrl = function(url, num) {\n\t\t return url\n\t\t .replace(/^(?:\\w+:\\/\\/|\\/+)/, '')\n\t\t .replace(/(?:\\/+|\\/*#.*?)$/, '')\n\t\t .split('/', num)\n\t\t .join('/');\n\t\t};\n\n\t\t/**\n\t\t * Handle `nth` Selectors\n\t\t */\n\n\t\tvar parseNth = function(param_, test) {\n\t\t var param = param_.replace(/\\s+/g, '')\n\t\t , cap;\n\n\t\t if (param === 'even') {\n\t\t param = '2n+0';\n\t\t } else if (param === 'odd') {\n\t\t param = '2n+1';\n\t\t } else if (param.indexOf('n') === -1) {\n\t\t param = '0n' + param;\n\t\t }\n\n\t\t cap = /^([+-])?(\\d+)?n([+-])?(\\d+)?$/.exec(param);\n\n\t\t return {\n\t\t group: cap[1] === '-'\n\t\t ? -(cap[2] || 1)\n\t\t : +(cap[2] || 1),\n\t\t offset: cap[4]\n\t\t ? (cap[3] === '-' ? -cap[4] : +cap[4])\n\t\t : 0\n\t\t };\n\t\t};\n\n\t\tvar nth = function(param_, test, last) {\n\t\t var param = parseNth(param_)\n\t\t , group = param.group\n\t\t , offset = param.offset\n\t\t , find = !last ? child : lastChild\n\t\t , advance = !last ? next : prev;\n\n\t\t return function(el) {\n\t\t if (!parentIsElement(el)) return;\n\n\t\t var rel = find(el.parentNode)\n\t\t , pos = 0;\n\n\t\t while (rel) {\n\t\t if (test(rel, el)) pos++;\n\t\t if (rel === el) {\n\t\t pos -= offset;\n\t\t return group && pos\n\t\t ? (pos % group) === 0 && (pos < 0 === group < 0)\n\t\t : !pos;\n\t\t }\n\t\t rel = advance(rel);\n\t\t }\n\t\t };\n\t\t};\n\n\t\t/**\n\t\t * Simple Selectors\n\t\t */\n\n\t\tvar selectors = {\n\t\t '*': (function() {\n\t\t return function() {\n\t\t return true;\n\t\t };\n\t\t })(),\n\t\t 'type': function(type) {\n\t\t type = type.toLowerCase();\n\t\t return function(el) {\n\t\t return el.nodeName.toLowerCase() === type;\n\t\t };\n\t\t },\n\t\t 'attr': function(key, op, val, i) {\n\t\t op = operators[op];\n\t\t return function(el) {\n\t\t var attr;\n\t\t switch (key) {\n\t\t case 'for':\n\t\t attr = el.htmlFor;\n\t\t break;\n\t\t case 'class':\n\t\t // className is '' when non-existent\n\t\t // getAttribute('class') is null\n\t\t attr = el.className;\n\t\t if (attr === '' && el.getAttribute('class') == null) {\n\t\t attr = null;\n\t\t }\n\t\t break;\n\t\t case 'href':\n\t\t case 'src':\n\t\t attr = el.getAttribute(key, 2);\n\t\t break;\n\t\t case 'title':\n\t\t // getAttribute('title') can be '' when non-existent sometimes?\n\t\t attr = el.getAttribute('title') || null;\n\t\t break;\n\t\t // careful with attributes with special getter functions\n\t\t case 'id':\n\t\t case 'lang':\n\t\t case 'dir':\n\t\t case 'accessKey':\n\t\t case 'hidden':\n\t\t case 'tabIndex':\n\t\t case 'style':\n\t\t if (el.getAttribute) {\n\t\t attr = el.getAttribute(key);\n\t\t break;\n\t\t }\n\t\t /* falls through */\n\t\t default:\n\t\t if (el.hasAttribute && !el.hasAttribute(key)) {\n\t\t break;\n\t\t }\n\t\t attr = el[key] != null\n\t\t ? el[key]\n\t\t : el.getAttribute && el.getAttribute(key);\n\t\t break;\n\t\t }\n\t\t if (attr == null) return;\n\t\t attr = attr + '';\n\t\t if (i) {\n\t\t attr = attr.toLowerCase();\n\t\t val = val.toLowerCase();\n\t\t }\n\t\t return op(attr, val);\n\t\t };\n\t\t },\n\t\t ':first-child': function(el) {\n\t\t return !prev(el) && parentIsElement(el);\n\t\t },\n\t\t ':last-child': function(el) {\n\t\t return !next(el) && parentIsElement(el);\n\t\t },\n\t\t ':only-child': function(el) {\n\t\t return !prev(el) && !next(el) && parentIsElement(el);\n\t\t },\n\t\t ':nth-child': function(param, last) {\n\t\t return nth(param, function() {\n\t\t return true;\n\t\t }, last);\n\t\t },\n\t\t ':nth-last-child': function(param) {\n\t\t return selectors[':nth-child'](param, true);\n\t\t },\n\t\t ':root': function(el) {\n\t\t return el.ownerDocument.documentElement === el;\n\t\t },\n\t\t ':empty': function(el) {\n\t\t return !el.firstChild;\n\t\t },\n\t\t ':not': function(sel) {\n\t\t var test = compileGroup(sel);\n\t\t return function(el) {\n\t\t return !test(el);\n\t\t };\n\t\t },\n\t\t ':first-of-type': function(el) {\n\t\t if (!parentIsElement(el)) return;\n\t\t var type = el.nodeName;\n\t\t /*jshint -W084 */\n\t\t while (el = prev(el)) {\n\t\t if (el.nodeName === type) return;\n\t\t }\n\t\t return true;\n\t\t },\n\t\t ':last-of-type': function(el) {\n\t\t if (!parentIsElement(el)) return;\n\t\t var type = el.nodeName;\n\t\t /*jshint -W084 */\n\t\t while (el = next(el)) {\n\t\t if (el.nodeName === type) return;\n\t\t }\n\t\t return true;\n\t\t },\n\t\t ':only-of-type': function(el) {\n\t\t return selectors[':first-of-type'](el)\n\t\t && selectors[':last-of-type'](el);\n\t\t },\n\t\t ':nth-of-type': function(param, last) {\n\t\t return nth(param, function(rel, el) {\n\t\t return rel.nodeName === el.nodeName;\n\t\t }, last);\n\t\t },\n\t\t ':nth-last-of-type': function(param) {\n\t\t return selectors[':nth-of-type'](param, true);\n\t\t },\n\t\t ':checked': function(el) {\n\t\t return !!(el.checked || el.selected);\n\t\t },\n\t\t ':indeterminate': function(el) {\n\t\t return !selectors[':checked'](el);\n\t\t },\n\t\t ':enabled': function(el) {\n\t\t return !el.disabled && el.type !== 'hidden';\n\t\t },\n\t\t ':disabled': function(el) {\n\t\t return !!el.disabled;\n\t\t },\n\t\t ':target': function(el) {\n\t\t return el.id === window.location.hash.substring(1);\n\t\t },\n\t\t ':focus': function(el) {\n\t\t return el === el.ownerDocument.activeElement;\n\t\t },\n\t\t ':is': function(sel) {\n\t\t return compileGroup(sel);\n\t\t },\n\t\t // :matches is an older name for :is; see\n\t\t // https://github.com/w3c/csswg-drafts/issues/3258\n\t\t ':matches': function(sel) {\n\t\t return selectors[':is'](sel);\n\t\t },\n\t\t ':nth-match': function(param, last) {\n\t\t var args = param.split(/\\s*,\\s*/)\n\t\t , arg = args.shift()\n\t\t , test = compileGroup(args.join(','));\n\n\t\t return nth(arg, test, last);\n\t\t },\n\t\t ':nth-last-match': function(param) {\n\t\t return selectors[':nth-match'](param, true);\n\t\t },\n\t\t ':links-here': function(el) {\n\t\t return el + '' === window.location + '';\n\t\t },\n\t\t ':lang': function(param) {\n\t\t return function(el) {\n\t\t while (el) {\n\t\t if (el.lang) return el.lang.indexOf(param) === 0;\n\t\t el = el.parentNode;\n\t\t }\n\t\t };\n\t\t },\n\t\t ':dir': function(param) {\n\t\t return function(el) {\n\t\t while (el) {\n\t\t if (el.dir) return el.dir === param;\n\t\t el = el.parentNode;\n\t\t }\n\t\t };\n\t\t },\n\t\t ':scope': function(el, con) {\n\t\t var context = con || el.ownerDocument;\n\t\t if (context.nodeType === 9) {\n\t\t return el === context.documentElement;\n\t\t }\n\t\t return el === context;\n\t\t },\n\t\t ':any-link': function(el) {\n\t\t return typeof el.href === 'string';\n\t\t },\n\t\t ':local-link': function(el) {\n\t\t if (el.nodeName) {\n\t\t return el.href && el.host === window.location.host;\n\t\t }\n\t\t var param = +el + 1;\n\t\t return function(el) {\n\t\t if (!el.href) return;\n\n\t\t var url = window.location + ''\n\t\t , href = el + '';\n\n\t\t return truncateUrl(url, param) === truncateUrl(href, param);\n\t\t };\n\t\t },\n\t\t ':default': function(el) {\n\t\t return !!el.defaultSelected;\n\t\t },\n\t\t ':valid': function(el) {\n\t\t return el.willValidate || (el.validity && el.validity.valid);\n\t\t },\n\t\t ':invalid': function(el) {\n\t\t return !selectors[':valid'](el);\n\t\t },\n\t\t ':in-range': function(el) {\n\t\t return el.value > el.min && el.value <= el.max;\n\t\t },\n\t\t ':out-of-range': function(el) {\n\t\t return !selectors[':in-range'](el);\n\t\t },\n\t\t ':required': function(el) {\n\t\t return !!el.required;\n\t\t },\n\t\t ':optional': function(el) {\n\t\t return !el.required;\n\t\t },\n\t\t ':read-only': function(el) {\n\t\t if (el.readOnly) return true;\n\n\t\t var attr = el.getAttribute('contenteditable')\n\t\t , prop = el.contentEditable\n\t\t , name = el.nodeName.toLowerCase();\n\n\t\t name = name !== 'input' && name !== 'textarea';\n\n\t\t return (name || el.disabled) && attr == null && prop !== 'true';\n\t\t },\n\t\t ':read-write': function(el) {\n\t\t return !selectors[':read-only'](el);\n\t\t },\n\t\t ':hover': function() {\n\t\t throw new Error(':hover is not supported.');\n\t\t },\n\t\t ':active': function() {\n\t\t throw new Error(':active is not supported.');\n\t\t },\n\t\t ':link': function() {\n\t\t throw new Error(':link is not supported.');\n\t\t },\n\t\t ':visited': function() {\n\t\t throw new Error(':visited is not supported.');\n\t\t },\n\t\t ':column': function() {\n\t\t throw new Error(':column is not supported.');\n\t\t },\n\t\t ':nth-column': function() {\n\t\t throw new Error(':nth-column is not supported.');\n\t\t },\n\t\t ':nth-last-column': function() {\n\t\t throw new Error(':nth-last-column is not supported.');\n\t\t },\n\t\t ':current': function() {\n\t\t throw new Error(':current is not supported.');\n\t\t },\n\t\t ':past': function() {\n\t\t throw new Error(':past is not supported.');\n\t\t },\n\t\t ':future': function() {\n\t\t throw new Error(':future is not supported.');\n\t\t },\n\t\t // Non-standard, for compatibility purposes.\n\t\t ':contains': function(param) {\n\t\t return function(el) {\n\t\t var text = el.innerText || el.textContent || el.value || '';\n\t\t return text.indexOf(param) !== -1;\n\t\t };\n\t\t },\n\t\t ':has': function(param) {\n\t\t return function(el) {\n\t\t return find(param, el).length > 0;\n\t\t };\n\t\t }\n\t\t // Potentially add more pseudo selectors for\n\t\t // compatibility with sizzle and most other\n\t\t // selector engines (?).\n\t\t};\n\n\t\t/**\n\t\t * Attribute Operators\n\t\t */\n\n\t\tvar operators = {\n\t\t '-': function() {\n\t\t return true;\n\t\t },\n\t\t '=': function(attr, val) {\n\t\t return attr === val;\n\t\t },\n\t\t '*=': function(attr, val) {\n\t\t return attr.indexOf(val) !== -1;\n\t\t },\n\t\t '~=': function(attr, val) {\n\t\t var i\n\t\t , s\n\t\t , f\n\t\t , l;\n\n\t\t for (s = 0; true; s = i + 1) {\n\t\t i = attr.indexOf(val, s);\n\t\t if (i === -1) return false;\n\t\t f = attr[i - 1];\n\t\t l = attr[i + val.length];\n\t\t if ((!f || f === ' ') && (!l || l === ' ')) return true;\n\t\t }\n\t\t },\n\t\t '|=': function(attr, val) {\n\t\t var i = attr.indexOf(val)\n\t\t , l;\n\n\t\t if (i !== 0) return;\n\t\t l = attr[i + val.length];\n\n\t\t return l === '-' || !l;\n\t\t },\n\t\t '^=': function(attr, val) {\n\t\t return attr.indexOf(val) === 0;\n\t\t },\n\t\t '$=': function(attr, val) {\n\t\t var i = attr.lastIndexOf(val);\n\t\t return i !== -1 && i + val.length === attr.length;\n\t\t },\n\t\t // non-standard\n\t\t '!=': function(attr, val) {\n\t\t return attr !== val;\n\t\t }\n\t\t};\n\n\t\t/**\n\t\t * Combinator Logic\n\t\t */\n\n\t\tvar combinators = {\n\t\t ' ': function(test) {\n\t\t return function(el) {\n\t\t /*jshint -W084 */\n\t\t while (el = el.parentNode) {\n\t\t if (test(el)) return el;\n\t\t }\n\t\t };\n\t\t },\n\t\t '>': function(test) {\n\t\t return function(el) {\n\t\t /*jshint -W084 */\n\t\t if (el = el.parentNode) {\n\t\t return test(el) && el;\n\t\t }\n\t\t };\n\t\t },\n\t\t '+': function(test) {\n\t\t return function(el) {\n\t\t /*jshint -W084 */\n\t\t if (el = prev(el)) {\n\t\t return test(el) && el;\n\t\t }\n\t\t };\n\t\t },\n\t\t '~': function(test) {\n\t\t return function(el) {\n\t\t /*jshint -W084 */\n\t\t while (el = prev(el)) {\n\t\t if (test(el)) return el;\n\t\t }\n\t\t };\n\t\t },\n\t\t 'noop': function(test) {\n\t\t return function(el) {\n\t\t return test(el) && el;\n\t\t };\n\t\t },\n\t\t 'ref': function(test, name) {\n\t\t var node;\n\n\t\t function ref(el) {\n\t\t var doc = el.ownerDocument\n\t\t , nodes = doc.getElementsByTagName('*')\n\t\t , i = nodes.length;\n\n\t\t while (i--) {\n\t\t node = nodes[i];\n\t\t if (ref.test(el)) {\n\t\t node = null;\n\t\t return true;\n\t\t }\n\t\t }\n\n\t\t node = null;\n\t\t }\n\n\t\t ref.combinator = function(el) {\n\t\t if (!node || !node.getAttribute) return;\n\n\t\t var attr = node.getAttribute(name) || '';\n\t\t if (attr[0] === '#') attr = attr.substring(1);\n\n\t\t if (attr === el.id && test(node)) {\n\t\t return node;\n\t\t }\n\t\t };\n\n\t\t return ref;\n\t\t }\n\t\t};\n\n\t\t/**\n\t\t * Grammar\n\t\t */\n\n\t\tvar rules = {\n\t\t escape: /\\\\(?:[^0-9A-Fa-f\\r\\n]|[0-9A-Fa-f]{1,6}[\\r\\n\\t ]?)/g,\n\t\t str_escape: /(escape)|\\\\(\\n|\\r\\n?|\\f)/g,\n\t\t nonascii: /[\\u00A0-\\uFFFF]/,\n\t\t cssid: /(?:(?!-?[0-9])(?:escape|nonascii|[-_a-zA-Z0-9])+)/,\n\t\t qname: /^ *(cssid|\\*)/,\n\t\t simple: /^(?:([.#]cssid)|pseudo|attr)/,\n\t\t ref: /^ *\\/(cssid)\\/ */,\n\t\t combinator: /^(?: +([^ \\w*.#\\\\]) +|( )+|([^ \\w*.#\\\\]))(?! *$)/,\n\t\t attr: /^\\[(cssid)(?:([^\\w]?=)(inside))?\\]/,\n\t\t pseudo: /^(:cssid)(?:\\((inside)\\))?/,\n\t\t inside: /(?:\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|<[^\"'>]*>|\\\\[\"'>]|[^\"'>])*/,\n\t\t ident: /^(cssid)$/\n\t\t};\n\n\t\trules.cssid = replace(rules.cssid, 'nonascii', rules.nonascii);\n\t\trules.cssid = replace(rules.cssid, 'escape', rules.escape);\n\t\trules.qname = replace(rules.qname, 'cssid', rules.cssid);\n\t\trules.simple = replace(rules.simple, 'cssid', rules.cssid);\n\t\trules.ref = replace(rules.ref, 'cssid', rules.cssid);\n\t\trules.attr = replace(rules.attr, 'cssid', rules.cssid);\n\t\trules.pseudo = replace(rules.pseudo, 'cssid', rules.cssid);\n\t\trules.inside = replace(rules.inside, '[^\"\\'>]*', rules.inside);\n\t\trules.attr = replace(rules.attr, 'inside', makeInside('\\\\[', '\\\\]'));\n\t\trules.pseudo = replace(rules.pseudo, 'inside', makeInside('\\\\(', '\\\\)'));\n\t\trules.simple = replace(rules.simple, 'pseudo', rules.pseudo);\n\t\trules.simple = replace(rules.simple, 'attr', rules.attr);\n\t\trules.ident = replace(rules.ident, 'cssid', rules.cssid);\n\t\trules.str_escape = replace(rules.str_escape, 'escape', rules.escape);\n\n\t\t/**\n\t\t * Compiling\n\t\t */\n\n\t\tvar compile = function(sel_) {\n\t\t var sel = sel_.replace(/^\\s+|\\s+$/g, '')\n\t\t , test\n\t\t , filter = []\n\t\t , buff = []\n\t\t , subject\n\t\t , qname\n\t\t , cap\n\t\t , op\n\t\t , ref;\n\n\t\t /*jshint -W084 */\n\t\t while (sel) {\n\t\t if (cap = rules.qname.exec(sel)) {\n\t\t sel = sel.substring(cap[0].length);\n\t\t qname = decodeid(cap[1]);\n\t\t buff.push(tok(qname, true));\n\t\t } else if (cap = rules.simple.exec(sel)) {\n\t\t sel = sel.substring(cap[0].length);\n\t\t qname = '*';\n\t\t buff.push(tok(qname, true));\n\t\t buff.push(tok(cap));\n\t\t } else {\n\t\t throw new SyntaxError('Invalid selector.');\n\t\t }\n\n\t\t while (cap = rules.simple.exec(sel)) {\n\t\t sel = sel.substring(cap[0].length);\n\t\t buff.push(tok(cap));\n\t\t }\n\n\t\t if (sel[0] === '!') {\n\t\t sel = sel.substring(1);\n\t\t subject = makeSubject();\n\t\t subject.qname = qname;\n\t\t buff.push(subject.simple);\n\t\t }\n\n\t\t if (cap = rules.ref.exec(sel)) {\n\t\t sel = sel.substring(cap[0].length);\n\t\t ref = combinators.ref(makeSimple(buff), decodeid(cap[1]));\n\t\t filter.push(ref.combinator);\n\t\t buff = [];\n\t\t continue;\n\t\t }\n\n\t\t if (cap = rules.combinator.exec(sel)) {\n\t\t sel = sel.substring(cap[0].length);\n\t\t op = cap[1] || cap[2] || cap[3];\n\t\t if (op === ',') {\n\t\t filter.push(combinators.noop(makeSimple(buff)));\n\t\t break;\n\t\t }\n\t\t } else {\n\t\t op = 'noop';\n\t\t }\n\n\t\t if (!combinators[op]) { throw new SyntaxError('Bad combinator.'); }\n\t\t filter.push(combinators[op](makeSimple(buff)));\n\t\t buff = [];\n\t\t }\n\n\t\t test = makeTest(filter);\n\t\t test.qname = qname;\n\t\t test.sel = sel;\n\n\t\t if (subject) {\n\t\t subject.lname = test.qname;\n\n\t\t subject.test = test;\n\t\t subject.qname = subject.qname;\n\t\t subject.sel = test.sel;\n\t\t test = subject;\n\t\t }\n\n\t\t if (ref) {\n\t\t ref.test = test;\n\t\t ref.qname = test.qname;\n\t\t ref.sel = test.sel;\n\t\t test = ref;\n\t\t }\n\n\t\t return test;\n\t\t};\n\n\t\tvar tok = function(cap, qname) {\n\t\t // qname\n\t\t if (qname) {\n\t\t return cap === '*'\n\t\t ? selectors['*']\n\t\t : selectors.type(cap);\n\t\t }\n\n\t\t // class/id\n\t\t if (cap[1]) {\n\t\t return cap[1][0] === '.'\n\t\t\t // XXX unescape here? or in attr?\n\t\t ? selectors.attr('class', '~=', decodeid(cap[1].substring(1)), false)\n\t\t : selectors.attr('id', '=', decodeid(cap[1].substring(1)), false);\n\t\t }\n\n\t\t // pseudo-name\n\t\t // inside-pseudo\n\t\t if (cap[2]) {\n\t\t return cap[3]\n\t\t ? selectors[decodeid(cap[2])](unquote(cap[3]))\n\t\t : selectors[decodeid(cap[2])];\n\t\t }\n\n\t\t // attr name\n\t\t // attr op\n\t\t // attr value\n\t\t if (cap[4]) {\n\t\t var value = cap[6];\n\t\t var i = /[\"'\\s]\\s*I$/i.test(value);\n\t\t if (i) {\n\t\t value = value.replace(/\\s*I$/i, '');\n\t\t }\n\t\t return selectors.attr(decodeid(cap[4]), cap[5] || '-', unquote(value), i);\n\t\t }\n\n\t\t throw new SyntaxError('Unknown Selector.');\n\t\t};\n\n\t\tvar makeSimple = function(func) {\n\t\t var l = func.length\n\t\t , i;\n\n\t\t // Potentially make sure\n\t\t // `el` is truthy.\n\t\t if (l < 2) return func[0];\n\n\t\t return function(el) {\n\t\t if (!el) return;\n\t\t for (i = 0; i < l; i++) {\n\t\t if (!func[i](el)) return;\n\t\t }\n\t\t return true;\n\t\t };\n\t\t};\n\n\t\tvar makeTest = function(func) {\n\t\t if (func.length < 2) {\n\t\t return function(el) {\n\t\t return !!func[0](el);\n\t\t };\n\t\t }\n\t\t return function(el) {\n\t\t var i = func.length;\n\t\t while (i--) {\n\t\t if (!(el = func[i](el))) return;\n\t\t }\n\t\t return true;\n\t\t };\n\t\t};\n\n\t\tvar makeSubject = function() {\n\t\t var target;\n\n\t\t function subject(el) {\n\t\t var node = el.ownerDocument\n\t\t , scope = node.getElementsByTagName(subject.lname)\n\t\t , i = scope.length;\n\n\t\t while (i--) {\n\t\t if (subject.test(scope[i]) && target === el) {\n\t\t target = null;\n\t\t return true;\n\t\t }\n\t\t }\n\n\t\t target = null;\n\t\t }\n\n\t\t subject.simple = function(el) {\n\t\t target = el;\n\t\t return true;\n\t\t };\n\n\t\t return subject;\n\t\t};\n\n\t\tvar compileGroup = function(sel) {\n\t\t var test = compile(sel)\n\t\t , tests = [ test ];\n\n\t\t while (test.sel) {\n\t\t test = compile(test.sel);\n\t\t tests.push(test);\n\t\t }\n\n\t\t if (tests.length < 2) return test;\n\n\t\t return function(el) {\n\t\t var l = tests.length\n\t\t , i = 0;\n\n\t\t for (; i < l; i++) {\n\t\t if (tests[i](el)) return true;\n\t\t }\n\t\t };\n\t\t};\n\n\t\t/**\n\t\t * Selection\n\t\t */\n\n\t\tvar find = function(sel, node) {\n\t\t var results = []\n\t\t , test = compile(sel)\n\t\t , scope = node.getElementsByTagName(test.qname)\n\t\t , i = 0\n\t\t , el;\n\n\t\t /*jshint -W084 */\n\t\t while (el = scope[i++]) {\n\t\t if (test(el)) results.push(el);\n\t\t }\n\n\t\t if (test.sel) {\n\t\t while (test.sel) {\n\t\t test = compile(test.sel);\n\t\t scope = node.getElementsByTagName(test.qname);\n\t\t i = 0;\n\t\t /*jshint -W084 */\n\t\t while (el = scope[i++]) {\n\t\t if (test(el) && indexOf.call(results, el) === -1) {\n\t\t results.push(el);\n\t\t }\n\t\t }\n\t\t }\n\t\t results.sort(order);\n\t\t }\n\n\t\t return results;\n\t\t};\n\n\t\t/**\n\t\t * Expose\n\t\t */\n\n\t\tmodule.exports = exports = function(sel, context) {\n\t\t /* when context isn't a DocumentFragment and the selector is simple: */\n\t\t var id, r;\n\t\t if (context.nodeType !== 11 && sel.indexOf(' ') === -1) {\n\t\t if (sel[0] === '#' && context.rooted && /^#[A-Z_][-A-Z0-9_]*$/i.test(sel)) {\n\t\t if (context.doc._hasMultipleElementsWithId) {\n\t\t id = sel.substring(1);\n\t\t if (!context.doc._hasMultipleElementsWithId(id)) {\n\t\t r = context.doc.getElementById(id);\n\t\t return r ? [r] : [];\n\t\t }\n\t\t }\n\t\t }\n\t\t if (sel[0] === '.' && /^\\.\\w+$/.test(sel)) {\n\t\t return context.getElementsByClassName(sel.substring(1));\n\t\t }\n\t\t if (/^\\w+$/.test(sel)) {\n\t\t return context.getElementsByTagName(sel);\n\t\t }\n\t\t }\n\t\t /* do things the hard/slow way */\n\t\t return find(sel, context);\n\t\t};\n\n\t\texports.selectors = selectors;\n\t\texports.operators = operators;\n\t\texports.combinators = combinators;\n\n\t\texports.matches = function(el, sel) {\n\t\t var test = { sel: sel };\n\t\t do {\n\t\t test = compile(test.sel);\n\t\t if (test(el)) { return true; }\n\t\t } while (test.sel);\n\t\t return false;\n\t\t}; \n\t} (select, select.exports));\n\treturn select.exports;\n}\n\nvar ChildNode_1;\nvar hasRequiredChildNode;\n\nfunction requireChildNode () {\n\tif (hasRequiredChildNode) return ChildNode_1;\n\thasRequiredChildNode = 1;\n\n\tvar Node = requireNode();\n\tvar LinkedList = requireLinkedList();\n\n\tvar createDocumentFragmentFromArguments = function(document, args) {\n\t var docFrag = document.createDocumentFragment();\n\n\t for (var i=0; i<args.length; i++) {\n\t var argItem = args[i];\n\t var isNode = argItem instanceof Node;\n\t docFrag.appendChild(isNode ? argItem :\n\t document.createTextNode(String(argItem)));\n\t }\n\n\t return docFrag;\n\t};\n\n\t// The ChildNode interface contains methods that are particular to `Node`\n\t// objects that can have a parent. It is implemented by `Element`,\n\t// `DocumentType`, and `CharacterData` objects.\n\tvar ChildNode = {\n\n\t // Inserts a set of Node or String objects in the children list of this\n\t // ChildNode's parent, just after this ChildNode. String objects are\n\t // inserted as the equivalent Text nodes.\n\t after: { value: function after() {\n\t var argArr = Array.prototype.slice.call(arguments);\n\t var parentNode = this.parentNode, nextSibling = this.nextSibling;\n\t if (parentNode === null) { return; }\n\t // Find \"viable next sibling\"; that is, next one not in argArr\n\t while (nextSibling && argArr.some(function(v) { return v===nextSibling; }))\n\t nextSibling = nextSibling.nextSibling;\n\t // ok, parent and sibling are saved away since this node could itself\n\t // appear in argArr and we're about to move argArr to a document fragment.\n\t var docFrag = createDocumentFragmentFromArguments(this.doc, argArr);\n\n\t parentNode.insertBefore(docFrag, nextSibling);\n\t }},\n\n\t // Inserts a set of Node or String objects in the children list of this\n\t // ChildNode's parent, just before this ChildNode. String objects are\n\t // inserted as the equivalent Text nodes.\n\t before: { value: function before() {\n\t var argArr = Array.prototype.slice.call(arguments);\n\t var parentNode = this.parentNode, prevSibling = this.previousSibling;\n\t if (parentNode === null) { return; }\n\t // Find \"viable prev sibling\"; that is, prev one not in argArr\n\t while (prevSibling && argArr.some(function(v) { return v===prevSibling; }))\n\t prevSibling = prevSibling.previousSibling;\n\t // ok, parent and sibling are saved away since this node could itself\n\t // appear in argArr and we're about to move argArr to a document fragment.\n\t var docFrag = createDocumentFragmentFromArguments(this.doc, argArr);\n\n\t var nextSibling =\n\t prevSibling ? prevSibling.nextSibling : parentNode.firstChild;\n\t parentNode.insertBefore(docFrag, nextSibling);\n\t }},\n\n\t // Remove this node from its parent\n\t remove: { value: function remove() {\n\t if (this.parentNode === null) return;\n\n\t // Send mutation events if necessary\n\t if (this.doc) {\n\t this.doc._preremoveNodeIterators(this);\n\t if (this.rooted) {\n\t this.doc.mutateRemove(this);\n\t }\n\t }\n\n\t // Remove this node from its parents array of children\n\t // and update the structure id for all ancestors\n\t this._remove();\n\n\t // Forget this node's parent\n\t this.parentNode = null;\n\t }},\n\n\t // Remove this node w/o uprooting or sending mutation events\n\t // (But do update the structure id for all ancestors)\n\t _remove: { value: function _remove() {\n\t var parent = this.parentNode;\n\t if (parent === null) return;\n\t if (parent._childNodes) {\n\t parent._childNodes.splice(this.index, 1);\n\t } else if (parent._firstChild === this) {\n\t if (this._nextSibling === this) {\n\t parent._firstChild = null;\n\t } else {\n\t parent._firstChild = this._nextSibling;\n\t }\n\t }\n\t LinkedList.remove(this);\n\t parent.modify();\n\t }},\n\n\t // Replace this node with the nodes or strings provided as arguments.\n\t replaceWith: { value: function replaceWith() {\n\t var argArr = Array.prototype.slice.call(arguments);\n\t var parentNode = this.parentNode, nextSibling = this.nextSibling;\n\t if (parentNode === null) { return; }\n\t // Find \"viable next sibling\"; that is, next one not in argArr\n\t while (nextSibling && argArr.some(function(v) { return v===nextSibling; }))\n\t nextSibling = nextSibling.nextSibling;\n\t // ok, parent and sibling are saved away since this node could itself\n\t // appear in argArr and we're about to move argArr to a document fragment.\n\t var docFrag = createDocumentFragmentFromArguments(this.doc, argArr);\n\t if (this.parentNode === parentNode) {\n\t parentNode.replaceChild(docFrag, this);\n\t } else {\n\t // `this` was inserted into docFrag\n\t parentNode.insertBefore(docFrag, nextSibling);\n\t }\n\t }},\n\n\t};\n\n\tChildNode_1 = ChildNode;\n\treturn ChildNode_1;\n}\n\nvar NonDocumentTypeChildNode_1;\nvar hasRequiredNonDocumentTypeChildNode;\n\nfunction requireNonDocumentTypeChildNode () {\n\tif (hasRequiredNonDocumentTypeChildNode) return NonDocumentTypeChildNode_1;\n\thasRequiredNonDocumentTypeChildNode = 1;\n\tvar Node = requireNode();\n\n\tvar NonDocumentTypeChildNode = {\n\n\t nextElementSibling: { get: function() {\n\t if (this.parentNode) {\n\t for (var kid = this.nextSibling; kid !== null; kid = kid.nextSibling) {\n\t if (kid.nodeType === Node.ELEMENT_NODE) return kid;\n\t }\n\t }\n\t return null;\n\t }},\n\n\t previousElementSibling: { get: function() {\n\t if (this.parentNode) {\n\t for (var kid = this.previousSibling; kid !== null; kid = kid.previousSibling) {\n\t if (kid.nodeType === Node.ELEMENT_NODE) return kid;\n\t }\n\t }\n\t return null;\n\t }}\n\n\t};\n\n\tNonDocumentTypeChildNode_1 = NonDocumentTypeChildNode;\n\treturn NonDocumentTypeChildNode_1;\n}\n\nvar NamedNodeMap_1;\nvar hasRequiredNamedNodeMap;\n\nfunction requireNamedNodeMap () {\n\tif (hasRequiredNamedNodeMap) return NamedNodeMap_1;\n\thasRequiredNamedNodeMap = 1;\n\tNamedNodeMap_1 = NamedNodeMap;\n\n\tvar utils = requireUtils();\n\n\t/* This is a hacky implementation of NamedNodeMap, intended primarily to\n\t * satisfy clients (like dompurify and the web-platform-tests) which check\n\t * to ensure that Node#attributes instanceof NamedNodeMap. */\n\n\tfunction NamedNodeMap(element) {\n\t this.element = element;\n\t}\n\tObject.defineProperties(NamedNodeMap.prototype, {\n\t length: { get: utils.shouldOverride },\n\t item: { value: utils.shouldOverride },\n\n\t getNamedItem: { value: function getNamedItem(qualifiedName) {\n\t return this.element.getAttributeNode(qualifiedName);\n\t } },\n\t getNamedItemNS: { value: function getNamedItemNS(namespace, localName) {\n\t return this.element.getAttributeNodeNS(namespace, localName);\n\t } },\n\t setNamedItem: { value: utils.nyi },\n\t setNamedItemNS: { value: utils.nyi },\n\t removeNamedItem: { value: function removeNamedItem(qualifiedName) {\n\t var attr = this.element.getAttributeNode(qualifiedName);\n\t if (attr) {\n\t this.element.removeAttribute(qualifiedName);\n\t return attr;\n\t }\n\t utils.NotFoundError();\n\t } },\n\t removeNamedItemNS: { value: function removeNamedItemNS(ns, lname) {\n\t var attr = this.element.getAttributeNodeNS(ns, lname);\n\t if (attr) {\n\t this.element.removeAttributeNS(ns, lname);\n\t return attr;\n\t }\n\t utils.NotFoundError();\n\t } },\n\t});\n\treturn NamedNodeMap_1;\n}\n\nvar Element_1;\nvar hasRequiredElement;\n\nfunction requireElement () {\n\tif (hasRequiredElement) return Element_1;\n\thasRequiredElement = 1;\n\tElement_1 = Element;\n\n\tvar xml = requireXmlnames();\n\tvar utils = requireUtils();\n\tvar NAMESPACE = utils.NAMESPACE;\n\tvar attributes = requireAttributes();\n\tvar Node = requireNode();\n\tvar NodeList = requireNodeList();\n\tvar NodeUtils = requireNodeUtils();\n\tvar FilteredElementList = requireFilteredElementList();\n\tvar DOMTokenList = requireDOMTokenList();\n\tvar select = requireSelect();\n\tvar ContainerNode = requireContainerNode();\n\tvar ChildNode = requireChildNode();\n\tvar NonDocumentTypeChildNode = requireNonDocumentTypeChildNode();\n\tvar NamedNodeMap = requireNamedNodeMap();\n\n\tvar uppercaseCache = Object.create(null);\n\n\tfunction Element(doc, localName, namespaceURI, prefix) {\n\t ContainerNode.call(this);\n\t this.nodeType = Node.ELEMENT_NODE;\n\t this.ownerDocument = doc;\n\t this.localName = localName;\n\t this.namespaceURI = namespaceURI;\n\t this.prefix = prefix;\n\t this._tagName = undefined;\n\n\t // These properties maintain the set of attributes\n\t this._attrsByQName = Object.create(null); // The qname->Attr map\n\t this._attrsByLName = Object.create(null); // The ns|lname->Attr map\n\t this._attrKeys = []; // attr index -> ns|lname\n\t}\n\n\tfunction recursiveGetText(node, a) {\n\t if (node.nodeType === Node.TEXT_NODE) {\n\t a.push(node._data);\n\t }\n\t else {\n\t for(var i = 0, n = node.childNodes.length; i < n; i++)\n\t recursiveGetText(node.childNodes[i], a);\n\t }\n\t}\n\n\tElement.prototype = Object.create(ContainerNode.prototype, {\n\t isHTML: { get: function isHTML() {\n\t return this.namespaceURI === NAMESPACE.HTML && this.ownerDocument.isHTML;\n\t }},\n\t tagName: { get: function tagName() {\n\t if (this._tagName === undefined) {\n\t var tn;\n\t if (this.prefix === null) {\n\t tn = this.localName;\n\t } else {\n\t tn = this.prefix + ':' + this.localName;\n\t }\n\t if (this.isHTML) {\n\t var up = uppercaseCache[tn];\n\t if (!up) {\n\t // Converting to uppercase can be slow, so cache the conversion.\n\t uppercaseCache[tn] = up = utils.toASCIIUpperCase(tn);\n\t }\n\t tn = up;\n\t }\n\t this._tagName = tn;\n\t }\n\t return this._tagName;\n\t }},\n\t nodeName: { get: function() { return this.tagName; }},\n\t nodeValue: {\n\t get: function() {\n\t return null;\n\t },\n\t set: function() {}\n\t },\n\t textContent: {\n\t get: function() {\n\t var strings = [];\n\t recursiveGetText(this, strings);\n\t return strings.join('');\n\t },\n\t set: function(newtext) {\n\t this.removeChildren();\n\t if (newtext !== null && newtext !== undefined && newtext !== '') {\n\t this._appendChild(this.ownerDocument.createTextNode(newtext));\n\t }\n\t }\n\t },\n\t innerText: {\n\t get: function() {\n\t var strings = [];\n\t recursiveGetText(this, strings);\n\t // Strip and collapse whitespace\n\t // This doesn't 100% match the browser behavior,\n\t // but should cover most of the cases. This is also similar to\n\t // how Angular's renderer used to work: the `textContent` and `innerText`\n\t // were almost equivalent from the renderer perspective.\n\t // See: https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent#differences_from_innertext\n\t return strings.join('').replace(/[ \\t\\n\\f\\r]+/g, ' ').trim();\n\t },\n\t set: function(newtext) {\n\t this.removeChildren();\n\t if (newtext !== null && newtext !== undefined && newtext !== '') {\n\t this._appendChild(this.ownerDocument.createTextNode(newtext));\n\t }\n\t }\n\t },\n\t innerHTML: {\n\t get: function() {\n\t return this.serialize();\n\t },\n\t set: utils.nyi\n\t },\n\t outerHTML: {\n\t get: function() {\n\t // \"the attribute must return the result of running the HTML fragment\n\t // serialization algorithm on a fictional node whose only child is\n\t // the context object\"\n\t //\n\t // The serialization logic is intentionally implemented in a separate\n\t // `NodeUtils` helper instead of the more obvious choice of a private\n\t // `_serializeOne()` method on the `Node.prototype` in order to avoid\n\t // the megamorphic `this._serializeOne` property access, which reduces\n\t // performance unnecessarily. If you need specialized behavior for a\n\t // certain subclass, you'll need to implement that in `NodeUtils`.\n\t // See https://github.com/fgnass/domino/pull/142 for more information.\n\t return NodeUtils.serializeOne(this, { nodeType: 0 });\n\t },\n\t set: function(v) {\n\t var document = this.ownerDocument;\n\t var parent = this.parentNode;\n\t if (parent === null) { return; }\n\t if (parent.nodeType === Node.DOCUMENT_NODE) {\n\t utils.NoModificationAllowedError();\n\t }\n\t if (parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t parent = parent.ownerDocument.createElement(\"body\");\n\t }\n\t var parser = document.implementation.mozHTMLParser(\n\t document._address,\n\t parent\n\t );\n\t parser.parse(v===null?'':String(v), true);\n\t this.replaceWith(parser._asDocumentFragment());\n\t },\n\t },\n\n\t _insertAdjacent: { value: function _insertAdjacent(position, node) {\n\t var first = false;\n\t switch(position) {\n\t case 'beforebegin':\n\t first = true;\n\t /* falls through */\n\t case 'afterend':\n\t var parent = this.parentNode;\n\t if (parent === null) { return null; }\n\t return parent.insertBefore(node, first ? this : this.nextSibling);\n\t case 'afterbegin':\n\t first = true;\n\t /* falls through */\n\t case 'beforeend':\n\t return this.insertBefore(node, first ? this.firstChild : null);\n\t default:\n\t return utils.SyntaxError();\n\t }\n\t }},\n\n\t insertAdjacentElement: { value: function insertAdjacentElement(position, element) {\n\t if (element.nodeType !== Node.ELEMENT_NODE) {\n\t throw new TypeError('not an element');\n\t }\n\t position = utils.toASCIILowerCase(String(position));\n\t return this._insertAdjacent(position, element);\n\t }},\n\n\t insertAdjacentText: { value: function insertAdjacentText(position, data) {\n\t var textNode = this.ownerDocument.createTextNode(data);\n\t position = utils.toASCIILowerCase(String(position));\n\t this._insertAdjacent(position, textNode);\n\t // \"This method returns nothing because it existed before we had a chance\n\t // to design it.\"\n\t }},\n\n\t insertAdjacentHTML: { value: function insertAdjacentHTML(position, text) {\n\t position = utils.toASCIILowerCase(String(position));\n\t text = String(text);\n\t var context;\n\t switch(position) {\n\t case 'beforebegin':\n\t case 'afterend':\n\t context = this.parentNode;\n\t if (context === null || context.nodeType === Node.DOCUMENT_NODE) {\n\t utils.NoModificationAllowedError();\n\t }\n\t break;\n\t case 'afterbegin':\n\t case 'beforeend':\n\t context = this;\n\t break;\n\t default:\n\t utils.SyntaxError();\n\t }\n\t if ( (!(context instanceof Element)) || (\n\t context.ownerDocument.isHTML &&\n\t context.localName === 'html' &&\n\t context.namespaceURI === NAMESPACE.HTML\n\t ) ) {\n\t context = context.ownerDocument.createElementNS(NAMESPACE.HTML, 'body');\n\t }\n\t var parser = this.ownerDocument.implementation.mozHTMLParser(\n\t this.ownerDocument._address, context\n\t );\n\t parser.parse(text, true);\n\t this._insertAdjacent(position, parser._asDocumentFragment());\n\t }},\n\n\t children: { get: function() {\n\t if (!this._children) {\n\t this._children = new ChildrenCollection(this);\n\t }\n\t return this._children;\n\t }},\n\n\t attributes: { get: function() {\n\t if (!this._attributes) {\n\t this._attributes = new AttributesArray(this);\n\t }\n\t return this._attributes;\n\t }},\n\n\n\t firstElementChild: { get: function() {\n\t for (var kid = this.firstChild; kid !== null; kid = kid.nextSibling) {\n\t if (kid.nodeType === Node.ELEMENT_NODE) return kid;\n\t }\n\t return null;\n\t }},\n\n\t lastElementChild: { get: function() {\n\t for (var kid = this.lastChild; kid !== null; kid = kid.previousSibling) {\n\t if (kid.nodeType === Node.ELEMENT_NODE) return kid;\n\t }\n\t return null;\n\t }},\n\n\t childElementCount: { get: function() {\n\t return this.children.length;\n\t }},\n\n\n\t // Return the next element, in source order, after this one or\n\t // null if there are no more. If root element is specified,\n\t // then don't traverse beyond its subtree.\n\t //\n\t // This is not a DOM method, but is convenient for\n\t // lazy traversals of the tree.\n\t nextElement: { value: function(root) {\n\t if (!root) root = this.ownerDocument.documentElement;\n\t var next = this.firstElementChild;\n\t if (!next) {\n\t // don't use sibling if we're at root\n\t if (this===root) return null;\n\t next = this.nextElementSibling;\n\t }\n\t if (next) return next;\n\n\t // If we can't go down or across, then we have to go up\n\t // and across to the parent sibling or another ancestor's\n\t // sibling. Be careful, though: if we reach the root\n\t // element, or if we reach the documentElement, then\n\t // the traversal ends.\n\t for(var parent = this.parentElement;\n\t parent && parent !== root;\n\t parent = parent.parentElement) {\n\n\t next = parent.nextElementSibling;\n\t if (next) return next;\n\t }\n\n\t return null;\n\t }},\n\n\t // XXX:\n\t // Tests are currently failing for this function.\n\t // Awaiting resolution of:\n\t // http://lists.w3.org/Archives/Public/www-dom/2011JulSep/0016.html\n\t getElementsByTagName: { value: function getElementsByTagName(lname) {\n\t var filter;\n\t if (!lname) return new NodeList();\n\t if (lname === '*')\n\t filter = function() { return true; };\n\t else if (this.isHTML)\n\t filter = htmlLocalNameElementFilter(lname);\n\t else\n\t filter = localNameElementFilter(lname);\n\n\t return new FilteredElementList(this, filter);\n\t }},\n\n\t getElementsByTagNameNS: { value: function getElementsByTagNameNS(ns, lname){\n\t var filter;\n\t if (ns === '*' && lname === '*')\n\t filter = function() { return true; };\n\t else if (ns === '*')\n\t filter = localNameElementFilter(lname);\n\t else if (lname === '*')\n\t filter = namespaceElementFilter(ns);\n\t else\n\t filter = namespaceLocalNameElementFilter(ns, lname);\n\n\t return new FilteredElementList(this, filter);\n\t }},\n\n\t getElementsByClassName: { value: function getElementsByClassName(names){\n\t names = String(names).trim();\n\t if (names === '') {\n\t var result = new NodeList(); // Empty node list\n\t return result;\n\t }\n\t names = names.split(/[ \\t\\r\\n\\f]+/); // Split on ASCII whitespace\n\t return new FilteredElementList(this, classNamesElementFilter(names));\n\t }},\n\n\t getElementsByName: { value: function getElementsByName(name) {\n\t return new FilteredElementList(this, elementNameFilter(String(name)));\n\t }},\n\n\t // Utility methods used by the public API methods above\n\t clone: { value: function clone() {\n\t var e;\n\n\t // XXX:\n\t // Modify this to use the constructor directly or\n\t // avoid error checking in some other way. In case we try\n\t // to clone an invalid node that the parser inserted.\n\t //\n\t if (this.namespaceURI !== NAMESPACE.HTML || this.prefix || !this.ownerDocument.isHTML) {\n\t e = this.ownerDocument.createElementNS(\n\t this.namespaceURI, (this.prefix !== null) ?\n\t (this.prefix + ':' + this.localName) : this.localName\n\t );\n\t } else {\n\t e = this.ownerDocument.createElement(this.localName);\n\t }\n\n\t for(var i = 0, n = this._attrKeys.length; i < n; i++) {\n\t var lname = this._attrKeys[i];\n\t var a = this._attrsByLName[lname];\n\t var b = a.cloneNode();\n\t b._setOwnerElement(e);\n\t e._attrsByLName[lname] = b;\n\t e._addQName(b);\n\t }\n\t e._attrKeys = this._attrKeys.concat();\n\n\t return e;\n\t }},\n\n\t isEqual: { value: function isEqual(that) {\n\t if (this.localName !== that.localName ||\n\t this.namespaceURI !== that.namespaceURI ||\n\t this.prefix !== that.prefix ||\n\t this._numattrs !== that._numattrs)\n\t return false;\n\n\t // Compare the sets of attributes, ignoring order\n\t // and ignoring attribute prefixes.\n\t for(var i = 0, n = this._numattrs; i < n; i++) {\n\t var a = this._attr(i);\n\t if (!that.hasAttributeNS(a.namespaceURI, a.localName))\n\t return false;\n\t if (that.getAttributeNS(a.namespaceURI,a.localName) !== a.value)\n\t return false;\n\t }\n\n\t return true;\n\t }},\n\n\t // This is the 'locate a namespace prefix' algorithm from the\n\t // DOM specification. It is used by Node.lookupPrefix()\n\t // (Be sure to compare DOM3 and DOM4 versions of spec.)\n\t _lookupNamespacePrefix: { value: function _lookupNamespacePrefix(ns, originalElement) {\n\t if (\n\t this.namespaceURI &&\n\t this.namespaceURI === ns &&\n\t this.prefix !== null &&\n\t originalElement.lookupNamespaceURI(this.prefix) === ns\n\t ) {\n\t return this.prefix;\n\t }\n\n\t for(var i = 0, n = this._numattrs; i < n; i++) {\n\t var a = this._attr(i);\n\t if (\n\t a.prefix === 'xmlns' &&\n\t a.value === ns &&\n\t originalElement.lookupNamespaceURI(a.localName) === ns\n\t ) {\n\t return a.localName;\n\t }\n\t }\n\n\t var parent = this.parentElement;\n\t return parent ? parent._lookupNamespacePrefix(ns, originalElement) : null;\n\t }},\n\n\t // This is the 'locate a namespace' algorithm for Element nodes\n\t // from the DOM Core spec. It is used by Node#lookupNamespaceURI()\n\t lookupNamespaceURI: { value: function lookupNamespaceURI(prefix) {\n\t if (prefix === '' || prefix === undefined) { prefix = null; }\n\t if (this.namespaceURI !== null && this.prefix === prefix)\n\t return this.namespaceURI;\n\n\t for(var i = 0, n = this._numattrs; i < n; i++) {\n\t var a = this._attr(i);\n\t if (a.namespaceURI === NAMESPACE.XMLNS) {\n\t if (\n\t (a.prefix === 'xmlns' && a.localName === prefix) ||\n\t (prefix === null && a.prefix === null && a.localName === 'xmlns')\n\t ) {\n\t return a.value || null;\n\t }\n\t }\n\t }\n\n\t var parent = this.parentElement;\n\t return parent ? parent.lookupNamespaceURI(prefix) : null;\n\t }},\n\n\t //\n\t // Attribute handling methods and utilities\n\t //\n\n\t /*\n\t * Attributes in the DOM are tricky:\n\t *\n\t * - there are the 8 basic get/set/has/removeAttribute{NS} methods\n\t *\n\t * - but many HTML attributes are also 'reflected' through IDL\n\t * attributes which means that they can be queried and set through\n\t * regular properties of the element. There is just one attribute\n\t * value, but two ways to get and set it.\n\t *\n\t * - Different HTML element types have different sets of reflected\n\t attributes.\n\t *\n\t * - attributes can also be queried and set through the .attributes\n\t * property of an element. This property behaves like an array of\n\t * Attr objects. The value property of each Attr is writeable, so\n\t * this is a third way to read and write attributes.\n\t *\n\t * - for efficiency, we really want to store attributes in some kind\n\t * of name->attr map. But the attributes[] array is an array, not a\n\t * map, which is kind of unnatural.\n\t *\n\t * - When using namespaces and prefixes, and mixing the NS methods\n\t * with the non-NS methods, it is apparently actually possible for\n\t * an attributes[] array to have more than one attribute with the\n\t * same qualified name. And certain methods must operate on only\n\t * the first attribute with such a name. So for these methods, an\n\t * inefficient array-like data structure would be easier to\n\t * implement.\n\t *\n\t * - The attributes[] array is live, not a snapshot, so changes to the\n\t * attributes must be immediately visible through existing arrays.\n\t *\n\t * - When attributes are queried and set through IDL properties\n\t * (instead of the get/setAttributes() method or the attributes[]\n\t * array) they may be subject to type conversions, URL\n\t * normalization, etc., so some extra processing is required in that\n\t * case.\n\t *\n\t * - But access through IDL properties is probably the most common\n\t * case, so we'd like that to be as fast as possible.\n\t *\n\t * - We can't just store attribute values in their parsed idl form,\n\t * because setAttribute() has to return whatever string is passed to\n\t * getAttribute even if it is not a legal, parseable value. So\n\t * attribute values must be stored in unparsed string form.\n\t *\n\t * - We need to be able to send change notifications or mutation\n\t * events of some sort to the renderer whenever an attribute value\n\t * changes, regardless of the way in which it changes.\n\t *\n\t * - Some attributes, such as id and class affect other parts of the\n\t * DOM API, like getElementById and getElementsByClassName and so\n\t * for efficiency, we need to specially track changes to these\n\t * special attributes.\n\t *\n\t * - Some attributes like class have different names (className) when\n\t * reflected.\n\t *\n\t * - Attributes whose names begin with the string 'data-' are treated\n\t specially.\n\t *\n\t * - Reflected attributes that have a boolean type in IDL have special\n\t * behavior: setting them to false (in IDL) is the same as removing\n\t * them with removeAttribute()\n\t *\n\t * - numeric attributes (like HTMLElement.tabIndex) can have default\n\t * values that must be returned by the idl getter even if the\n\t * content attribute does not exist. (The default tabIndex value\n\t * actually varies based on the type of the element, so that is a\n\t * tricky one).\n\t *\n\t * See\n\t * http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#reflect\n\t * for rules on how attributes are reflected.\n\t *\n\t */\n\n\t getAttribute: { value: function getAttribute(qname) {\n\t var attr = this.getAttributeNode(qname);\n\t return attr ? attr.value : null;\n\t }},\n\n\t getAttributeNS: { value: function getAttributeNS(ns, lname) {\n\t var attr = this.getAttributeNodeNS(ns, lname);\n\t return attr ? attr.value : null;\n\t }},\n\n\t getAttributeNode: { value: function getAttributeNode(qname) {\n\t qname = String(qname);\n\t if (/[A-Z]/.test(qname) && this.isHTML)\n\t qname = utils.toASCIILowerCase(qname);\n\t var attr = this._attrsByQName[qname];\n\t if (!attr) return null;\n\n\t if (Array.isArray(attr)) // If there is more than one\n\t attr = attr[0]; // use the first\n\n\t return attr;\n\t }},\n\n\t getAttributeNodeNS: { value: function getAttributeNodeNS(ns, lname) {\n\t ns = (ns === undefined || ns === null) ? '' : String(ns);\n\t lname = String(lname);\n\t var attr = this._attrsByLName[ns + '|' + lname];\n\t return attr ? attr : null;\n\t }},\n\n\t hasAttribute: { value: function hasAttribute(qname) {\n\t qname = String(qname);\n\t if (/[A-Z]/.test(qname) && this.isHTML)\n\t qname = utils.toASCIILowerCase(qname);\n\t return this._attrsByQName[qname] !== undefined;\n\t }},\n\n\t hasAttributeNS: { value: function hasAttributeNS(ns, lname) {\n\t ns = (ns === undefined || ns === null) ? '' : String(ns);\n\t lname = String(lname);\n\t var key = ns + '|' + lname;\n\t return this._attrsByLName[key] !== undefined;\n\t }},\n\n\t hasAttributes: { value: function hasAttributes() {\n\t return this._numattrs > 0;\n\t }},\n\n\t toggleAttribute: { value: function toggleAttribute(qname, force) {\n\t qname = String(qname);\n\t if (!xml.isValidName(qname)) utils.InvalidCharacterError();\n\t if (/[A-Z]/.test(qname) && this.isHTML)\n\t qname = utils.toASCIILowerCase(qname);\n\t var a = this._attrsByQName[qname];\n\t if (a === undefined) {\n\t if (force === undefined || force === true) {\n\t this._setAttribute(qname, '');\n\t return true;\n\t }\n\t return false;\n\t } else {\n\t if (force === undefined || force === false) {\n\t this.removeAttribute(qname);\n\t return false;\n\t }\n\t return true;\n\t }\n\t }},\n\n\t // Set the attribute without error checking. The parser uses this.\n\t _setAttribute: { value: function _setAttribute(qname, value) {\n\t // XXX: the spec says that this next search should be done\n\t // on the local name, but I think that is an error.\n\t // email pending on www-dom about it.\n\t var attr = this._attrsByQName[qname];\n\t var isnew;\n\t if (!attr) {\n\t attr = this._newattr(qname);\n\t isnew = true;\n\t }\n\t else {\n\t if (Array.isArray(attr)) attr = attr[0];\n\t }\n\n\t // Now set the attribute value on the new or existing Attr object.\n\t // The Attr.value setter method handles mutation events, etc.\n\t attr.value = value;\n\t if (this._attributes) this._attributes[qname] = attr;\n\t if (isnew && this._newattrhook) this._newattrhook(qname, value);\n\t }},\n\n\t // Check for errors, and then set the attribute\n\t setAttribute: { value: function setAttribute(qname, value) {\n\t qname = String(qname);\n\t if (!xml.isValidName(qname)) utils.InvalidCharacterError();\n\t if (/[A-Z]/.test(qname) && this.isHTML)\n\t qname = utils.toASCIILowerCase(qname);\n\t this._setAttribute(qname, String(value));\n\t }},\n\n\n\t // The version with no error checking used by the parser\n\t _setAttributeNS: { value: function _setAttributeNS(ns, qname, value) {\n\t var pos = qname.indexOf(':'), prefix, lname;\n\t if (pos < 0) {\n\t prefix = null;\n\t lname = qname;\n\t }\n\t else {\n\t prefix = qname.substring(0, pos);\n\t lname = qname.substring(pos+1);\n\t }\n\n\t if (ns === '' || ns === undefined) ns = null;\n\t var key = (ns === null ? '' : ns) + '|' + lname;\n\n\t var attr = this._attrsByLName[key];\n\t var isnew;\n\t if (!attr) {\n\t attr = new Attr(this, lname, prefix, ns);\n\t isnew = true;\n\t this._attrsByLName[key] = attr;\n\t if (this._attributes) {\n\t this._attributes[this._attrKeys.length] = attr;\n\t }\n\t this._attrKeys.push(key);\n\n\t // We also have to make the attr searchable by qname.\n\t // But we have to be careful because there may already\n\t // be an attr with this qname.\n\t this._addQName(attr);\n\t }\n\t attr.value = value; // Automatically sends mutation event\n\t if (isnew && this._newattrhook) this._newattrhook(qname, value);\n\t }},\n\n\t // Do error checking then call _setAttributeNS\n\t setAttributeNS: { value: function setAttributeNS(ns, qname, value) {\n\t // Convert parameter types according to WebIDL\n\t ns = (ns === null || ns === undefined || ns === '') ? null : String(ns);\n\t qname = String(qname);\n\t if (!xml.isValidQName(qname)) utils.InvalidCharacterError();\n\n\t var pos = qname.indexOf(':');\n\t var prefix = (pos < 0) ? null : qname.substring(0, pos);\n\n\t if ((prefix !== null && ns === null) ||\n\t (prefix === 'xml' && ns !== NAMESPACE.XML) ||\n\t ((qname === 'xmlns' || prefix === 'xmlns') &&\n\t (ns !== NAMESPACE.XMLNS)) ||\n\t (ns === NAMESPACE.XMLNS &&\n\t !(qname === 'xmlns' || prefix === 'xmlns')))\n\t utils.NamespaceError();\n\n\t this._setAttributeNS(ns, qname, String(value));\n\t }},\n\n\t setAttributeNode: { value: function setAttributeNode(attr) {\n\t if (attr.ownerElement !== null && attr.ownerElement !== this) {\n\t utils.InUseAttributeError();\n\t }\n\t var result = null;\n\t var oldAttrs = this._attrsByQName[attr.name];\n\t if (oldAttrs) {\n\t if (!Array.isArray(oldAttrs)) { oldAttrs = [ oldAttrs ]; }\n\t if (oldAttrs.some(function(a) { return a===attr; })) {\n\t return attr;\n\t } else if (attr.ownerElement !== null) {\n\t utils.InUseAttributeError();\n\t }\n\t oldAttrs.forEach(function(a) { this.removeAttributeNode(a); }, this);\n\t result = oldAttrs[0];\n\t }\n\t this.setAttributeNodeNS(attr);\n\t return result;\n\t }},\n\n\t setAttributeNodeNS: { value: function setAttributeNodeNS(attr) {\n\t if (attr.ownerElement !== null) {\n\t utils.InUseAttributeError();\n\t }\n\t var ns = attr.namespaceURI;\n\t var key = (ns === null ? '' : ns) + '|' + attr.localName;\n\t var oldAttr = this._attrsByLName[key];\n\t if (oldAttr) { this.removeAttributeNode(oldAttr); }\n\t attr._setOwnerElement(this);\n\t this._attrsByLName[key] = attr;\n\t if (this._attributes) {\n\t this._attributes[this._attrKeys.length] = attr;\n\t }\n\t this._attrKeys.push(key);\n\t this._addQName(attr);\n\t if (this._newattrhook) this._newattrhook(attr.name, attr.value);\n\t return oldAttr || null;\n\t }},\n\n\t removeAttribute: { value: function removeAttribute(qname) {\n\t qname = String(qname);\n\t if (/[A-Z]/.test(qname) && this.isHTML)\n\t qname = utils.toASCIILowerCase(qname);\n\n\t var attr = this._attrsByQName[qname];\n\t if (!attr) return;\n\n\t // If there is more than one match for this qname\n\t // so don't delete the qname mapping, just remove the first\n\t // element from it.\n\t if (Array.isArray(attr)) {\n\t if (attr.length > 2) {\n\t attr = attr.shift(); // remove it from the array\n\t }\n\t else {\n\t this._attrsByQName[qname] = attr[1];\n\t attr = attr[0];\n\t }\n\t }\n\t else {\n\t // only a single match, so remove the qname mapping\n\t this._attrsByQName[qname] = undefined;\n\t }\n\n\t var ns = attr.namespaceURI;\n\t // Now attr is the removed attribute. Figure out its\n\t // ns+lname key and remove it from the other mapping as well.\n\t var key = (ns === null ? '' : ns) + '|' + attr.localName;\n\t this._attrsByLName[key] = undefined;\n\n\t var i = this._attrKeys.indexOf(key);\n\t if (this._attributes) {\n\t Array.prototype.splice.call(this._attributes, i, 1);\n\t this._attributes[qname] = undefined;\n\t }\n\t this._attrKeys.splice(i, 1);\n\n\t // Onchange handler for the attribute\n\t var onchange = attr.onchange;\n\t attr._setOwnerElement(null);\n\t if (onchange) {\n\t onchange.call(attr, this, attr.localName, attr.value, null);\n\t }\n\t // Mutation event\n\t if (this.rooted) this.ownerDocument.mutateRemoveAttr(attr);\n\t }},\n\n\t removeAttributeNS: { value: function removeAttributeNS(ns, lname) {\n\t ns = (ns === undefined || ns === null) ? '' : String(ns);\n\t lname = String(lname);\n\t var key = ns + '|' + lname;\n\t var attr = this._attrsByLName[key];\n\t if (!attr) return;\n\n\t this._attrsByLName[key] = undefined;\n\n\t var i = this._attrKeys.indexOf(key);\n\t if (this._attributes) {\n\t Array.prototype.splice.call(this._attributes, i, 1);\n\t }\n\t this._attrKeys.splice(i, 1);\n\n\t // Now find the same Attr object in the qname mapping and remove it\n\t // But be careful because there may be more than one match.\n\t this._removeQName(attr);\n\n\t // Onchange handler for the attribute\n\t var onchange = attr.onchange;\n\t attr._setOwnerElement(null);\n\t if (onchange) {\n\t onchange.call(attr, this, attr.localName, attr.value, null);\n\t }\n\t // Mutation event\n\t if (this.rooted) this.ownerDocument.mutateRemoveAttr(attr);\n\t }},\n\n\t removeAttributeNode: { value: function removeAttributeNode(attr) {\n\t var ns = attr.namespaceURI;\n\t var key = (ns === null ? '' : ns) + '|' + attr.localName;\n\t if (this._attrsByLName[key] !== attr) {\n\t utils.NotFoundError();\n\t }\n\t this.removeAttributeNS(ns, attr.localName);\n\t return attr;\n\t }},\n\n\t getAttributeNames: { value: function getAttributeNames() {\n\t var elt = this;\n\t return this._attrKeys.map(function(key) {\n\t return elt._attrsByLName[key].name;\n\t });\n\t }},\n\n\t // This 'raw' version of getAttribute is used by the getter functions\n\t // of reflected attributes. It skips some error checking and\n\t // namespace steps\n\t _getattr: { value: function _getattr(qname) {\n\t // Assume that qname is already lowercased, so don't do it here.\n\t // Also don't check whether attr is an array: a qname with no\n\t // prefix will never have two matching Attr objects (because\n\t // setAttributeNS doesn't allow a non-null namespace with a\n\t // null prefix.\n\t var attr = this._attrsByQName[qname];\n\t return attr ? attr.value : null;\n\t }},\n\n\t // The raw version of setAttribute for reflected idl attributes.\n\t _setattr: { value: function _setattr(qname, value) {\n\t var attr = this._attrsByQName[qname];\n\t var isnew;\n\t if (!attr) {\n\t attr = this._newattr(qname);\n\t isnew = true;\n\t }\n\t attr.value = String(value);\n\t if (this._attributes) this._attributes[qname] = attr;\n\t if (isnew && this._newattrhook) this._newattrhook(qname, value);\n\t }},\n\n\t // Create a new Attr object, insert it, and return it.\n\t // Used by setAttribute() and by set()\n\t _newattr: { value: function _newattr(qname) {\n\t var attr = new Attr(this, qname, null, null);\n\t var key = '|' + qname;\n\t this._attrsByQName[qname] = attr;\n\t this._attrsByLName[key] = attr;\n\t if (this._attributes) {\n\t this._attributes[this._attrKeys.length] = attr;\n\t }\n\t this._attrKeys.push(key);\n\t return attr;\n\t }},\n\n\t // Add a qname->Attr mapping to the _attrsByQName object, taking into\n\t // account that there may be more than one attr object with the\n\t // same qname\n\t _addQName: { value: function(attr) {\n\t var qname = attr.name;\n\t var existing = this._attrsByQName[qname];\n\t if (!existing) {\n\t this._attrsByQName[qname] = attr;\n\t }\n\t else if (Array.isArray(existing)) {\n\t existing.push(attr);\n\t }\n\t else {\n\t this._attrsByQName[qname] = [existing, attr];\n\t }\n\t if (this._attributes) this._attributes[qname] = attr;\n\t }},\n\n\t // Remove a qname->Attr mapping to the _attrsByQName object, taking into\n\t // account that there may be more than one attr object with the\n\t // same qname\n\t _removeQName: { value: function(attr) {\n\t var qname = attr.name;\n\t var target = this._attrsByQName[qname];\n\n\t if (Array.isArray(target)) {\n\t var idx = target.indexOf(attr);\n\t utils.assert(idx !== -1); // It must be here somewhere\n\t if (target.length === 2) {\n\t this._attrsByQName[qname] = target[1-idx];\n\t if (this._attributes) {\n\t this._attributes[qname] = this._attrsByQName[qname];\n\t }\n\t } else {\n\t target.splice(idx, 1);\n\t if (this._attributes && this._attributes[qname] === attr) {\n\t this._attributes[qname] = target[0];\n\t }\n\t }\n\t }\n\t else {\n\t utils.assert(target === attr); // If only one, it must match\n\t this._attrsByQName[qname] = undefined;\n\t if (this._attributes) {\n\t this._attributes[qname] = undefined;\n\t }\n\t }\n\t }},\n\n\t // Return the number of attributes\n\t _numattrs: { get: function() { return this._attrKeys.length; }},\n\t // Return the nth Attr object\n\t _attr: { value: function(n) {\n\t return this._attrsByLName[this._attrKeys[n]];\n\t }},\n\n\t // Define getters and setters for an 'id' property that reflects\n\t // the content attribute 'id'.\n\t id: attributes.property({name: 'id'}),\n\n\t // Define getters and setters for a 'className' property that reflects\n\t // the content attribute 'class'.\n\t className: attributes.property({name: 'class'}),\n\n\t classList: { get: function() {\n\t var self = this;\n\t if (this._classList) {\n\t return this._classList;\n\t }\n\t var dtlist = new DOMTokenList(\n\t function() {\n\t return self.className || \"\";\n\t },\n\t function(v) {\n\t self.className = v;\n\t }\n\t );\n\t this._classList = dtlist;\n\t return dtlist;\n\t }, set: function(v) { this.className = v; }},\n\n\t matches: { value: function(selector) {\n\t return select.matches(this, selector);\n\t }},\n\n\t closest: { value: function(selector) {\n\t var el = this;\n\t\tdo {\n\t\t if (el.matches && el.matches(selector)) { return el; }\n\t\t el = el.parentElement || el.parentNode;\n\t\t} while (el !== null && el.nodeType === Node.ELEMENT_NODE);\n\t\treturn null;\n\t }},\n\n\t querySelector: { value: function(selector) {\n\t return select(selector, this)[0];\n\t }},\n\n\t querySelectorAll: { value: function(selector) {\n\t var nodes = select(selector, this);\n\t return nodes.item ? nodes : new NodeList(nodes);\n\t }}\n\n\t});\n\n\tObject.defineProperties(Element.prototype, ChildNode);\n\tObject.defineProperties(Element.prototype, NonDocumentTypeChildNode);\n\n\t// Register special handling for the id attribute\n\tattributes.registerChangeHandler(Element, 'id',\n\t function(element, lname, oldval, newval) {\n\t if (element.rooted) {\n\t if (oldval) {\n\t element.ownerDocument.delId(oldval, element);\n\t }\n\t if (newval) {\n\t element.ownerDocument.addId(newval, element);\n\t }\n\t }\n\t }\n\t);\n\tattributes.registerChangeHandler(Element, 'class',\n\t function(element, lname, oldval, newval) {\n\t if (element._classList) { element._classList._update(); }\n\t }\n\t);\n\n\t// The Attr class represents a single attribute. The values in\n\t// _attrsByQName and _attrsByLName are instances of this class.\n\tfunction Attr(elt, lname, prefix, namespace, value) {\n\t // localName and namespace are constant for any attr object.\n\t // But value may change. And so can prefix, and so, therefore can name.\n\t this.localName = lname;\n\t this.prefix = (prefix===null || prefix==='') ? null : ('' + prefix);\n\t this.namespaceURI = (namespace===null || namespace==='') ? null : ('' + namespace);\n\t this.data = value;\n\t // Set ownerElement last to ensure it is hooked up to onchange handler\n\t this._setOwnerElement(elt);\n\t}\n\n\t// In DOM 3 Attr was supposed to extend Node; in DOM 4 that was abandoned.\n\tAttr.prototype = Object.create(Object.prototype, {\n\t ownerElement: {\n\t get: function() { return this._ownerElement; },\n\t },\n\t _setOwnerElement: { value: function _setOwnerElement(elt) {\n\t this._ownerElement = elt;\n\t if (this.prefix === null && this.namespaceURI === null && elt) {\n\t this.onchange = elt._attributeChangeHandlers[this.localName];\n\t } else {\n\t this.onchange = null;\n\t }\n\t }},\n\n\t name: { get: function() {\n\t return this.prefix ? this.prefix + ':' + this.localName : this.localName;\n\t }},\n\n\t specified: { get: function() {\n\t // Deprecated\n\t return true;\n\t }},\n\n\t value: {\n\t get: function() {\n\t return this.data;\n\t },\n\t set: function(value) {\n\t var oldval = this.data;\n\t value = (value === undefined) ? '' : value + '';\n\t if (value === oldval) return;\n\n\t this.data = value;\n\n\t // Run the onchange hook for the attribute\n\t // if there is one.\n\t if (this.ownerElement) {\n\t if (this.onchange)\n\t this.onchange(this.ownerElement,this.localName, oldval, value);\n\n\t // Generate a mutation event if the element is rooted\n\t if (this.ownerElement.rooted)\n\t this.ownerElement.ownerDocument.mutateAttr(this, oldval);\n\t }\n\t },\n\t },\n\n\t cloneNode: { value: function cloneNode(deep) {\n\t // Both this method and Document#createAttribute*() create unowned Attrs\n\t return new Attr(\n\t null, this.localName, this.prefix, this.namespaceURI, this.data\n\t );\n\t }},\n\n\t // Legacy aliases (see gh#70 and https://dom.spec.whatwg.org/#interface-attr)\n\t nodeType: { get: function() { return Node.ATTRIBUTE_NODE; } },\n\t nodeName: { get: function() { return this.name; } },\n\t nodeValue: {\n\t get: function() { return this.value; },\n\t set: function(v) { this.value = v; },\n\t },\n\t textContent: {\n\t get: function() { return this.value; },\n\t set: function(v) {\n\t if (v === null || v === undefined) { v = ''; }\n\t this.value = v;\n\t },\n\t },\n\t innerText: {\n\t get: function() { return this.value; },\n\t set: function(v) {\n\t if (v === null || v === undefined) { v = ''; }\n\t this.value = v;\n\t },\n\t },\n\t});\n\t// Sneakily export this class for use by Document.createAttribute()\n\tElement._Attr = Attr;\n\n\t// The attributes property of an Element will be an instance of this class.\n\t// This class is really just a dummy, though. It only defines a length\n\t// property and an item() method. The AttrArrayProxy that\n\t// defines the public API just uses the Element object itself.\n\tfunction AttributesArray(elt) {\n\t NamedNodeMap.call(this, elt);\n\t for (var name in elt._attrsByQName) {\n\t this[name] = elt._attrsByQName[name];\n\t }\n\t for (var i = 0; i < elt._attrKeys.length; i++) {\n\t this[i] = elt._attrsByLName[elt._attrKeys[i]];\n\t }\n\t}\n\tAttributesArray.prototype = Object.create(NamedNodeMap.prototype, {\n\t length: { get: function() {\n\t return this.element._attrKeys.length;\n\t }, set: function() { /* ignore */ } },\n\t item: { value: function(n) {\n\t /* jshint bitwise: false */\n\t n = n >>> 0;\n\t if (n >= this.length) { return null; }\n\t return this.element._attrsByLName[this.element._attrKeys[n]];\n\t /* jshint bitwise: true */\n\t } },\n\t});\n\n\t// We can't make direct array access work (without Proxies, node >=6)\n\t// but we can make `Array.from(node.attributes)` and for-of loops work.\n\tif (globalThis.Symbol?.iterator) {\n\t AttributesArray.prototype[globalThis.Symbol.iterator] = function() {\n\t var i=0, n=this.length, self=this;\n\t return {\n\t next: function() {\n\t if (i<n) return { value: self.item(i++) };\n\t return { done: true };\n\t }\n\t };\n\t };\n\t}\n\n\n\t// The children property of an Element will be an instance of this class.\n\t// It defines length, item() and namedItem() and will be wrapped by an\n\t// HTMLCollection when exposed through the DOM.\n\tfunction ChildrenCollection(e) {\n\t this.element = e;\n\t this.updateCache();\n\t}\n\n\tChildrenCollection.prototype = Object.create(Object.prototype, {\n\t length: { get: function() {\n\t this.updateCache();\n\t return this.childrenByNumber.length;\n\t } },\n\t item: { value: function item(n) {\n\t this.updateCache();\n\t return this.childrenByNumber[n] || null;\n\t } },\n\n\t namedItem: { value: function namedItem(name) {\n\t this.updateCache();\n\t return this.childrenByName[name] || null;\n\t } },\n\n\t // This attribute returns the entire name->element map.\n\t // It is not part of the HTMLCollection API, but we need it in\n\t // src/HTMLCollectionProxy\n\t namedItems: { get: function() {\n\t this.updateCache();\n\t return this.childrenByName;\n\t } },\n\n\t updateCache: { value: function updateCache() {\n\t var namedElts = /^(a|applet|area|embed|form|frame|frameset|iframe|img|object)$/;\n\t if (this.lastModTime !== this.element.lastModTime) {\n\t this.lastModTime = this.element.lastModTime;\n\n\t var n = this.childrenByNumber && this.childrenByNumber.length || 0;\n\t for(var i = 0; i < n; i++) {\n\t this[i] = undefined;\n\t }\n\n\t this.childrenByNumber = [];\n\t this.childrenByName = Object.create(null);\n\n\t for (var c = this.element.firstChild; c !== null; c = c.nextSibling) {\n\t if (c.nodeType === Node.ELEMENT_NODE) {\n\n\t this[this.childrenByNumber.length] = c;\n\t this.childrenByNumber.push(c);\n\n\t // XXX Are there any requirements about the namespace\n\t // of the id property?\n\t var id = c.getAttribute('id');\n\n\t // If there is an id that is not already in use...\n\t if (id && !this.childrenByName[id])\n\t this.childrenByName[id] = c;\n\n\t // For certain HTML elements we check the name attribute\n\t var name = c.getAttribute('name');\n\t if (name &&\n\t this.element.namespaceURI === NAMESPACE.HTML &&\n\t namedElts.test(this.element.localName) &&\n\t !this.childrenByName[name])\n\t this.childrenByName[id] = c;\n\t }\n\t }\n\t }\n\t } },\n\t});\n\n\t// These functions return predicates for filtering elements.\n\t// They're used by the Document and Element classes for methods like\n\t// getElementsByTagName and getElementsByClassName\n\n\tfunction localNameElementFilter(lname) {\n\t return function(e) { return e.localName === lname; };\n\t}\n\n\tfunction htmlLocalNameElementFilter(lname) {\n\t var lclname = utils.toASCIILowerCase(lname);\n\t if (lclname === lname)\n\t return localNameElementFilter(lname);\n\n\t return function(e) {\n\t return e.isHTML ? e.localName === lclname : e.localName === lname;\n\t };\n\t}\n\n\tfunction namespaceElementFilter(ns) {\n\t return function(e) { return e.namespaceURI === ns; };\n\t}\n\n\tfunction namespaceLocalNameElementFilter(ns, lname) {\n\t return function(e) {\n\t return e.namespaceURI === ns && e.localName === lname;\n\t };\n\t}\n\n\tfunction classNamesElementFilter(names) {\n\t return function(e) {\n\t return names.every(function(n) { return e.classList.contains(n); });\n\t };\n\t}\n\n\tfunction elementNameFilter(name) {\n\t return function(e) {\n\t // All the *HTML elements* in the document with the given name attribute\n\t if (e.namespaceURI !== NAMESPACE.HTML) { return false; }\n\t return e.getAttribute('name') === name;\n\t };\n\t}\n\treturn Element_1;\n}\n\nvar Leaf_1;\nvar hasRequiredLeaf;\n\nfunction requireLeaf () {\n\tif (hasRequiredLeaf) return Leaf_1;\n\thasRequiredLeaf = 1;\n\tLeaf_1 = Leaf;\n\n\tvar Node = requireNode();\n\tvar NodeList = requireNodeList();\n\tvar utils = requireUtils();\n\tvar HierarchyRequestError = utils.HierarchyRequestError;\n\tvar NotFoundError = utils.NotFoundError;\n\n\t// This class defines common functionality for node subtypes that\n\t// can never have children\n\tfunction Leaf() {\n\t Node.call(this);\n\t}\n\n\tLeaf.prototype = Object.create(Node.prototype, {\n\t hasChildNodes: { value: function() { return false; }},\n\t firstChild: { value: null },\n\t lastChild: { value: null },\n\t insertBefore: { value: function(node, child) {\n\t if (!node.nodeType) throw new TypeError('not a node');\n\t HierarchyRequestError();\n\t }},\n\t replaceChild: { value: function(node, child) {\n\t if (!node.nodeType) throw new TypeError('not a node');\n\t HierarchyRequestError();\n\t }},\n\t removeChild: { value: function(node) {\n\t if (!node.nodeType) throw new TypeError('not a node');\n\t NotFoundError();\n\t }},\n\t removeChildren: { value: function() { /* no op */ }},\n\t childNodes: { get: function() {\n\t if (!this._childNodes) this._childNodes = new NodeList();\n\t return this._childNodes;\n\t }}\n\t});\n\treturn Leaf_1;\n}\n\n/* jshint bitwise: false */\n\nvar CharacterData_1;\nvar hasRequiredCharacterData;\n\nfunction requireCharacterData () {\n\tif (hasRequiredCharacterData) return CharacterData_1;\n\thasRequiredCharacterData = 1;\n\tCharacterData_1 = CharacterData;\n\n\tvar Leaf = requireLeaf();\n\tvar utils = requireUtils();\n\tvar ChildNode = requireChildNode();\n\tvar NonDocumentTypeChildNode = requireNonDocumentTypeChildNode();\n\n\tfunction CharacterData() {\n\t Leaf.call(this);\n\t}\n\n\tCharacterData.prototype = Object.create(Leaf.prototype, {\n\t // DOMString substringData(unsigned long offset,\n\t // unsigned long count);\n\t // The substringData(offset, count) method must run these steps:\n\t //\n\t // If offset is greater than the context object's\n\t // length, throw an INDEX_SIZE_ERR exception and\n\t // terminate these steps.\n\t //\n\t // If offset+count is greater than the context\n\t // object's length, return a DOMString whose value is\n\t // the UTF-16 code units from the offsetth UTF-16 code\n\t // unit to the end of data.\n\t //\n\t // Return a DOMString whose value is the UTF-16 code\n\t // units from the offsetth UTF-16 code unit to the\n\t // offset+countth UTF-16 code unit in data.\n\t substringData: { value: function substringData(offset, count) {\n\t if (arguments.length < 2) { throw new TypeError(\"Not enough arguments\"); }\n\t // Convert arguments to WebIDL \"unsigned long\"\n\t offset = offset >>> 0;\n\t count = count >>> 0;\n\t if (offset > this.data.length || offset < 0 || count < 0) {\n\t utils.IndexSizeError();\n\t }\n\t return this.data.substring(offset, offset+count);\n\t }},\n\n\t // void appendData(DOMString data);\n\t // The appendData(data) method must append data to the context\n\t // object's data.\n\t appendData: { value: function appendData(data) {\n\t if (arguments.length < 1) { throw new TypeError(\"Not enough arguments\"); }\n\t this.data += String(data);\n\t }},\n\n\t // void insertData(unsigned long offset, DOMString data);\n\t // The insertData(offset, data) method must run these steps:\n\t //\n\t // If offset is greater than the context object's\n\t // length, throw an INDEX_SIZE_ERR exception and\n\t // terminate these steps.\n\t //\n\t // Insert data into the context object's data after\n\t // offset UTF-16 code units.\n\t //\n\t insertData: { value: function insertData(offset, data) {\n\t return this.replaceData(offset, 0, data);\n\t }},\n\n\n\t // void deleteData(unsigned long offset, unsigned long count);\n\t // The deleteData(offset, count) method must run these steps:\n\t //\n\t // If offset is greater than the context object's\n\t // length, throw an INDEX_SIZE_ERR exception and\n\t // terminate these steps.\n\t //\n\t // If offset+count is greater than the context\n\t // object's length var count be length-offset.\n\t //\n\t // Starting from offset UTF-16 code units remove count\n\t // UTF-16 code units from the context object's data.\n\t deleteData: { value: function deleteData(offset, count) {\n\t return this.replaceData(offset, count, '');\n\t }},\n\n\n\t // void replaceData(unsigned long offset, unsigned long count,\n\t // DOMString data);\n\t //\n\t // The replaceData(offset, count, data) method must act as\n\t // if the deleteData() method is invoked with offset and\n\t // count as arguments followed by the insertData() method\n\t // with offset and data as arguments and re-throw any\n\t // exceptions these methods might have thrown.\n\t replaceData: { value: function replaceData(offset, count, data) {\n\t var curtext = this.data, len = curtext.length;\n\t // Convert arguments to correct WebIDL type\n\t offset = offset >>> 0;\n\t count = count >>> 0;\n\t data = String(data);\n\n\t if (offset > len || offset < 0) utils.IndexSizeError();\n\n\t if (offset+count > len)\n\t count = len - offset;\n\n\t var prefix = curtext.substring(0, offset),\n\t suffix = curtext.substring(offset+count);\n\n\t this.data = prefix + data + suffix;\n\t }},\n\n\t // Utility method that Node.isEqualNode() calls to test Text and\n\t // Comment nodes for equality. It is okay to put it here, since\n\t // Node will have already verified that nodeType is equal\n\t isEqual: { value: function isEqual(n) {\n\t return this._data === n._data;\n\t }},\n\n\t length: { get: function() { return this.data.length; }}\n\n\t});\n\n\tObject.defineProperties(CharacterData.prototype, ChildNode);\n\tObject.defineProperties(CharacterData.prototype, NonDocumentTypeChildNode);\n\treturn CharacterData_1;\n}\n\nvar Text_1;\nvar hasRequiredText;\n\nfunction requireText () {\n\tif (hasRequiredText) return Text_1;\n\thasRequiredText = 1;\n\tText_1 = Text;\n\n\tvar utils = requireUtils();\n\tvar Node = requireNode();\n\tvar CharacterData = requireCharacterData();\n\n\tfunction Text(doc, data) {\n\t CharacterData.call(this);\n\t this.nodeType = Node.TEXT_NODE;\n\t this.ownerDocument = doc;\n\t this._data = data;\n\t this._index = undefined;\n\t}\n\n\tvar nodeValue = {\n\t get: function() { return this._data; },\n\t set: function(v) {\n\t if (v === null || v === undefined) { v = ''; } else { v = String(v); }\n\t if (v === this._data) return;\n\t this._data = v;\n\t if (this.rooted)\n\t this.ownerDocument.mutateValue(this);\n\t if (this.parentNode &&\n\t this.parentNode._textchangehook)\n\t this.parentNode._textchangehook(this);\n\t }\n\t};\n\n\tText.prototype = Object.create(CharacterData.prototype, {\n\t nodeName: { value: \"#text\" },\n\t // These three attributes are all the same.\n\t // The data attribute has a [TreatNullAs=EmptyString] but we'll\n\t // implement that at the interface level\n\t nodeValue: nodeValue,\n\t textContent: nodeValue,\n\t innerText: nodeValue,\n\t data: {\n\t get: nodeValue.get,\n\t set: function(v) {\n\t nodeValue.set.call(this, v===null ? '' : String(v));\n\t },\n\t },\n\n\t splitText: { value: function splitText(offset) {\n\t if (offset > this._data.length || offset < 0) utils.IndexSizeError();\n\n\t var newdata = this._data.substring(offset),\n\t newnode = this.ownerDocument.createTextNode(newdata);\n\t this.data = this.data.substring(0, offset);\n\n\t var parent = this.parentNode;\n\t if (parent !== null)\n\t parent.insertBefore(newnode, this.nextSibling);\n\n\t return newnode;\n\t }},\n\n\t wholeText: { get: function wholeText() {\n\t var result = this.textContent;\n\t for (var next = this.nextSibling; next; next = next.nextSibling) {\n\t if (next.nodeType !== Node.TEXT_NODE) { break; }\n\t result += next.textContent;\n\t }\n\t return result;\n\t }},\n\t // Obsolete, removed from spec.\n\t replaceWholeText: { value: utils.nyi },\n\n\t // Utility methods\n\t clone: { value: function clone() {\n\t return new Text(this.ownerDocument, this._data);\n\t }},\n\n\t});\n\treturn Text_1;\n}\n\nvar Comment_1;\nvar hasRequiredComment;\n\nfunction requireComment () {\n\tif (hasRequiredComment) return Comment_1;\n\thasRequiredComment = 1;\n\tComment_1 = Comment;\n\n\tvar Node = requireNode();\n\tvar CharacterData = requireCharacterData();\n\n\tfunction Comment(doc, data) {\n\t CharacterData.call(this);\n\t this.nodeType = Node.COMMENT_NODE;\n\t this.ownerDocument = doc;\n\t this._data = data;\n\t}\n\n\tvar nodeValue = {\n\t get: function() { return this._data; },\n\t set: function(v) {\n\t if (v === null || v === undefined) { v = ''; } else { v = String(v); }\n\t this._data = v;\n\t if (this.rooted)\n\t this.ownerDocument.mutateValue(this);\n\t }\n\t};\n\n\tComment.prototype = Object.create(CharacterData.prototype, {\n\t nodeName: { value: '#comment' },\n\t nodeValue: nodeValue,\n\t textContent: nodeValue,\n\t innerText: nodeValue,\n\t data: {\n\t get: nodeValue.get,\n\t set: function(v) {\n\t nodeValue.set.call(this, v===null ? '' : String(v));\n\t },\n\t },\n\n\t // Utility methods\n\t clone: { value: function clone() {\n\t return new Comment(this.ownerDocument, this._data);\n\t }},\n\t});\n\treturn Comment_1;\n}\n\nvar DocumentFragment_1;\nvar hasRequiredDocumentFragment;\n\nfunction requireDocumentFragment () {\n\tif (hasRequiredDocumentFragment) return DocumentFragment_1;\n\thasRequiredDocumentFragment = 1;\n\tDocumentFragment_1 = DocumentFragment;\n\n\tvar Node = requireNode();\n\tvar NodeList = requireNodeList();\n\tvar ContainerNode = requireContainerNode();\n\tvar Element = requireElement();\n\tvar select = requireSelect();\n\tvar utils = requireUtils();\n\n\tfunction DocumentFragment(doc) {\n\t ContainerNode.call(this);\n\t this.nodeType = Node.DOCUMENT_FRAGMENT_NODE;\n\t this.ownerDocument = doc;\n\t}\n\n\tDocumentFragment.prototype = Object.create(ContainerNode.prototype, {\n\t nodeName: { value: '#document-fragment' },\n\t nodeValue: {\n\t get: function() {\n\t return null;\n\t },\n\t set: function() {}\n\t },\n\t // Copy the text content getter/setter from Element\n\t textContent: Object.getOwnPropertyDescriptor(Element.prototype, 'textContent'),\n\n\t // Copy the text content getter/setter from Element\n\t innerText: Object.getOwnPropertyDescriptor(Element.prototype, 'innerText'),\n\n\t querySelector: { value: function(selector) {\n\t // implement in terms of querySelectorAll\n\t var nodes = this.querySelectorAll(selector);\n\t return nodes.length ? nodes[0] : null;\n\t }},\n\t querySelectorAll: { value: function(selector) {\n\t // create a context\n\t var context = Object.create(this);\n\t // add some methods to the context for zest implementation, without\n\t // adding them to the public DocumentFragment API\n\t context.isHTML = true; // in HTML namespace (case-insensitive match)\n\t context.getElementsByTagName = Element.prototype.getElementsByTagName;\n\t context.nextElement =\n\t Object.getOwnPropertyDescriptor(Element.prototype, 'firstElementChild').\n\t get;\n\t // invoke zest\n\t var nodes = select(selector, context);\n\t return nodes.item ? nodes : new NodeList(nodes);\n\t }},\n\n\t // Utility methods\n\t clone: { value: function clone() {\n\t return new DocumentFragment(this.ownerDocument);\n\t }},\n\t isEqual: { value: function isEqual(n) {\n\t // Any two document fragments are shallowly equal.\n\t // Node.isEqualNode() will test their children for equality\n\t return true;\n\t }},\n\n\t // Non-standard, but useful (github issue #73)\n\t innerHTML: {\n\t get: function() { return this.serialize(); },\n\t set: utils.nyi\n\t },\n\t outerHTML: {\n\t get: function() { return this.serialize(); },\n\t set: utils.nyi\n\t },\n\n\t});\n\treturn DocumentFragment_1;\n}\n\nvar ProcessingInstruction_1;\nvar hasRequiredProcessingInstruction;\n\nfunction requireProcessingInstruction () {\n\tif (hasRequiredProcessingInstruction) return ProcessingInstruction_1;\n\thasRequiredProcessingInstruction = 1;\n\tProcessingInstruction_1 = ProcessingInstruction;\n\n\tvar Node = requireNode();\n\tvar CharacterData = requireCharacterData();\n\n\tfunction ProcessingInstruction(doc, target, data) {\n\t CharacterData.call(this);\n\t this.nodeType = Node.PROCESSING_INSTRUCTION_NODE;\n\t this.ownerDocument = doc;\n\t this.target = target;\n\t this._data = data;\n\t}\n\n\tvar nodeValue = {\n\t get: function() { return this._data; },\n\t set: function(v) {\n\t if (v === null || v === undefined) { v = ''; } else { v = String(v); }\n\t this._data = v;\n\t if (this.rooted) this.ownerDocument.mutateValue(this);\n\t }\n\t};\n\n\tProcessingInstruction.prototype = Object.create(CharacterData.prototype, {\n\t nodeName: { get: function() { return this.target; }},\n\t nodeValue: nodeValue,\n\t textContent: nodeValue,\n\t innerText: nodeValue,\n\t data: {\n\t get: nodeValue.get,\n\t set: function(v) {\n\t nodeValue.set.call(this, v===null ? '' : String(v));\n\t },\n\t },\n\n\t // Utility methods\n\t clone: { value: function clone() {\n\t return new ProcessingInstruction(this.ownerDocument, this.target, this._data);\n\t }},\n\t isEqual: { value: function isEqual(n) {\n\t return this.target === n.target && this._data === n._data;\n\t }}\n\n\t});\n\treturn ProcessingInstruction_1;\n}\n\nvar NodeFilter_1;\nvar hasRequiredNodeFilter;\n\nfunction requireNodeFilter () {\n\tif (hasRequiredNodeFilter) return NodeFilter_1;\n\thasRequiredNodeFilter = 1;\n\tvar NodeFilter = {\n\t // Constants for acceptNode()\n\t FILTER_ACCEPT: 1,\n\t FILTER_REJECT: 2,\n\t FILTER_SKIP: 3,\n\n\t // Constants for whatToShow\n\t SHOW_ALL: 0xFFFFFFFF,\n\t SHOW_ELEMENT: 0x1,\n\t SHOW_ATTRIBUTE: 0x2, // historical\n\t SHOW_TEXT: 0x4,\n\t SHOW_CDATA_SECTION: 0x8, // historical\n\t SHOW_ENTITY_REFERENCE: 0x10, // historical\n\t SHOW_ENTITY: 0x20, // historical\n\t SHOW_PROCESSING_INSTRUCTION: 0x40,\n\t SHOW_COMMENT: 0x80,\n\t SHOW_DOCUMENT: 0x100,\n\t SHOW_DOCUMENT_TYPE: 0x200,\n\t SHOW_DOCUMENT_FRAGMENT: 0x400,\n\t SHOW_NOTATION: 0x800 // historical\n\t};\n\n\tNodeFilter_1 = (NodeFilter.constructor = NodeFilter.prototype = NodeFilter);\n\treturn NodeFilter_1;\n}\n\nvar NodeTraversal = {exports: {}};\n\nvar hasRequiredNodeTraversal;\n\nfunction requireNodeTraversal () {\n\tif (hasRequiredNodeTraversal) return NodeTraversal.exports;\n\thasRequiredNodeTraversal = 1;\n\t/* exported NodeTraversal */\n\tNodeTraversal.exports = {\n\t nextSkippingChildren: nextSkippingChildren,\n\t nextAncestorSibling: nextAncestorSibling,\n\t next: next,\n\t previous: previous,\n\t deepLastChild: deepLastChild\n\t};\n\n\t/**\n\t * @based on WebKit's NodeTraversal::nextSkippingChildren\n\t * https://trac.webkit.org/browser/trunk/Source/WebCore/dom/NodeTraversal.h?rev=179143#L109\n\t */\n\tfunction nextSkippingChildren(node, stayWithin) {\n\t if (node === stayWithin) {\n\t return null;\n\t }\n\t if (node.nextSibling !== null) {\n\t return node.nextSibling;\n\t }\n\t return nextAncestorSibling(node, stayWithin);\n\t}\n\n\t/**\n\t * @based on WebKit's NodeTraversal::nextAncestorSibling\n\t * https://trac.webkit.org/browser/trunk/Source/WebCore/dom/NodeTraversal.cpp?rev=179143#L93\n\t */\n\tfunction nextAncestorSibling(node, stayWithin) {\n\t for (node = node.parentNode; node !== null; node = node.parentNode) {\n\t if (node === stayWithin) {\n\t return null;\n\t }\n\t if (node.nextSibling !== null) {\n\t return node.nextSibling;\n\t }\n\t }\n\t return null;\n\t}\n\n\t/**\n\t * @based on WebKit's NodeTraversal::next\n\t * https://trac.webkit.org/browser/trunk/Source/WebCore/dom/NodeTraversal.h?rev=179143#L99\n\t */\n\tfunction next(node, stayWithin) {\n\t var n;\n\t n = node.firstChild;\n\t if (n !== null) {\n\t return n;\n\t }\n\t if (node === stayWithin) {\n\t return null;\n\t }\n\t n = node.nextSibling;\n\t if (n !== null) {\n\t return n;\n\t }\n\t return nextAncestorSibling(node, stayWithin);\n\t}\n\n\t/**\n\t * @based on WebKit's NodeTraversal::deepLastChild\n\t * https://trac.webkit.org/browser/trunk/Source/WebCore/dom/NodeTraversal.cpp?rev=179143#L116\n\t */\n\tfunction deepLastChild(node) {\n\t while (node.lastChild) {\n\t node = node.lastChild;\n\t }\n\t return node;\n\t}\n\n\t/**\n\t * @based on WebKit's NodeTraversal::previous\n\t * https://trac.webkit.org/browser/trunk/Source/WebCore/dom/NodeTraversal.h?rev=179143#L121\n\t */\n\tfunction previous(node, stayWithin) {\n\t var p;\n\t p = node.previousSibling;\n\t if (p !== null) {\n\t return deepLastChild(p);\n\t }\n\t p = node.parentNode;\n\t if (p === stayWithin) {\n\t return null;\n\t }\n\t return p;\n\t}\n\treturn NodeTraversal.exports;\n}\n\nvar TreeWalker_1;\nvar hasRequiredTreeWalker;\n\nfunction requireTreeWalker () {\n\tif (hasRequiredTreeWalker) return TreeWalker_1;\n\thasRequiredTreeWalker = 1;\n\tTreeWalker_1 = TreeWalker;\n\n\tvar Node = requireNode();\n\tvar NodeFilter = requireNodeFilter();\n\tvar NodeTraversal = requireNodeTraversal();\n\tvar utils = requireUtils();\n\n\tvar mapChild = {\n\t first: 'firstChild',\n\t last: 'lastChild',\n\t next: 'firstChild',\n\t previous: 'lastChild'\n\t};\n\n\tvar mapSibling = {\n\t first: 'nextSibling',\n\t last: 'previousSibling',\n\t next: 'nextSibling',\n\t previous: 'previousSibling'\n\t};\n\n\t/* Private methods and helpers */\n\n\t/**\n\t * @spec https://dom.spec.whatwg.org/#concept-traverse-children\n\t * @method\n\t * @access private\n\t * @param {TreeWalker} tw\n\t * @param {string} type One of 'first' or 'last'.\n\t * @return {Node|null}\n\t */\n\tfunction traverseChildren(tw, type) {\n\t var child, node, parent, result, sibling;\n\t node = tw._currentNode[mapChild[type]];\n\t while (node !== null) {\n\t result = tw._internalFilter(node);\n\t if (result === NodeFilter.FILTER_ACCEPT) {\n\t tw._currentNode = node;\n\t return node;\n\t }\n\t if (result === NodeFilter.FILTER_SKIP) {\n\t child = node[mapChild[type]];\n\t if (child !== null) {\n\t node = child;\n\t continue;\n\t }\n\t }\n\t while (node !== null) {\n\t sibling = node[mapSibling[type]];\n\t if (sibling !== null) {\n\t node = sibling;\n\t break;\n\t }\n\t parent = node.parentNode;\n\t if (parent === null || parent === tw.root || parent === tw._currentNode) {\n\t return null;\n\t } else {\n\t node = parent;\n\t }\n\t }\n\t }\n\t return null;\n\t}\n\n\t/**\n\t * @spec https://dom.spec.whatwg.org/#concept-traverse-siblings\n\t * @method\n\t * @access private\n\t * @param {TreeWalker} tw\n\t * @param {TreeWalker} type One of 'next' or 'previous'.\n\t * @return {Node|nul}\n\t */\n\tfunction traverseSiblings(tw, type) {\n\t var node, result, sibling;\n\t node = tw._currentNode;\n\t if (node === tw.root) {\n\t return null;\n\t }\n\t while (true) {\n\t sibling = node[mapSibling[type]];\n\t while (sibling !== null) {\n\t node = sibling;\n\t result = tw._internalFilter(node);\n\t if (result === NodeFilter.FILTER_ACCEPT) {\n\t tw._currentNode = node;\n\t return node;\n\t }\n\t sibling = node[mapChild[type]];\n\t if (result === NodeFilter.FILTER_REJECT || sibling === null) {\n\t sibling = node[mapSibling[type]];\n\t }\n\t }\n\t node = node.parentNode;\n\t if (node === null || node === tw.root) {\n\t return null;\n\t }\n\t if (tw._internalFilter(node) === NodeFilter.FILTER_ACCEPT) {\n\t return null;\n\t }\n\t }\n\t}\n\n\n\t/* Public API */\n\n\t/**\n\t * Latest version: https://dom.spec.whatwg.org/#treewalker\n\t *\n\t * @constructor\n\t * @param {Node} root\n\t * @param {number} whatToShow [optional]\n\t * @param {Function|NodeFilter} filter [optional]\n\t * @throws Error\n\t */\n\tfunction TreeWalker(root, whatToShow, filter) {\n\t if (!root || !root.nodeType) {\n\t utils.NotSupportedError();\n\t }\n\n\t // Read-only properties\n\t this._root = root;\n\t this._whatToShow = Number(whatToShow) || 0;\n\t this._filter = filter || null;\n\t this._active = false;\n\t // Read-write property\n\t this._currentNode = root;\n\t}\n\n\tObject.defineProperties(TreeWalker.prototype, {\n\t root: { get: function() { return this._root; } },\n\t whatToShow: { get: function() { return this._whatToShow; } },\n\t filter: { get: function() { return this._filter; } },\n\n\t currentNode: {\n\t get: function currentNode() {\n\t return this._currentNode;\n\t },\n\t set: function setCurrentNode(v) {\n\t if (!(v instanceof Node)) {\n\t throw new TypeError(\"Not a Node\"); // `null` is also not a node\n\t }\n\t this._currentNode = v;\n\t },\n\t },\n\n\t /**\n\t * @method\n\t * @param {Node} node\n\t * @return {Number} Constant NodeFilter.FILTER_ACCEPT,\n\t * NodeFilter.FILTER_REJECT or NodeFilter.FILTER_SKIP.\n\t */\n\t _internalFilter: { value: function _internalFilter(node) {\n\t /* jshint bitwise: false */\n\t var result, filter;\n\t if (this._active) {\n\t utils.InvalidStateError();\n\t }\n\n\t // Maps nodeType to whatToShow\n\t if (!(((1 << (node.nodeType - 1)) & this._whatToShow))) {\n\t return NodeFilter.FILTER_SKIP;\n\t }\n\n\t filter = this._filter;\n\t if (filter === null) {\n\t result = NodeFilter.FILTER_ACCEPT;\n\t } else {\n\t this._active = true;\n\t try {\n\t if (typeof filter === 'function') {\n\t result = filter(node);\n\t } else {\n\t result = filter.acceptNode(node);\n\t }\n\t } finally {\n\t this._active = false;\n\t }\n\t }\n\n\t // Note that coercing to a number means that\n\t // `true` becomes `1` (which is NodeFilter.FILTER_ACCEPT)\n\t // `false` becomes `0` (neither accept, reject, or skip)\n\t return (+result);\n\t }},\n\n\t /**\n\t * @spec https://dom.spec.whatwg.org/#dom-treewalker-parentnode\n\t * @based on WebKit's TreeWalker::parentNode\n\t * https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/dom/TreeWalker.cpp?rev=220453#L50\n\t * @method\n\t * @return {Node|null}\n\t */\n\t parentNode: { value: function parentNode() {\n\t var node = this._currentNode;\n\t while (node !== this.root) {\n\t node = node.parentNode;\n\t if (node === null) {\n\t return null;\n\t }\n\t if (this._internalFilter(node) === NodeFilter.FILTER_ACCEPT) {\n\t this._currentNode = node;\n\t return node;\n\t }\n\t }\n\t return null;\n\t }},\n\n\t /**\n\t * @spec https://dom.spec.whatwg.org/#dom-treewalker-firstchild\n\t * @method\n\t * @return {Node|null}\n\t */\n\t firstChild: { value: function firstChild() {\n\t return traverseChildren(this, 'first');\n\t }},\n\n\t /**\n\t * @spec https://dom.spec.whatwg.org/#dom-treewalker-lastchild\n\t * @method\n\t * @return {Node|null}\n\t */\n\t lastChild: { value: function lastChild() {\n\t return traverseChildren(this, 'last');\n\t }},\n\n\t /**\n\t * @spec http://www.w3.org/TR/dom/#dom-treewalker-previoussibling\n\t * @method\n\t * @return {Node|null}\n\t */\n\t previousSibling: { value: function previousSibling() {\n\t return traverseSiblings(this, 'previous');\n\t }},\n\n\t /**\n\t * @spec http://www.w3.org/TR/dom/#dom-treewalker-nextsibling\n\t * @method\n\t * @return {Node|null}\n\t */\n\t nextSibling: { value: function nextSibling() {\n\t return traverseSiblings(this, 'next');\n\t }},\n\n\t /**\n\t * @spec https://dom.spec.whatwg.org/#dom-treewalker-previousnode\n\t * @based on WebKit's TreeWalker::previousNode\n\t * https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/dom/TreeWalker.cpp?rev=220453#L181\n\t * @method\n\t * @return {Node|null}\n\t */\n\t previousNode: { value: function previousNode() {\n\t var node, result, previousSibling, lastChild;\n\t node = this._currentNode;\n\t while (node !== this._root) {\n\t for (previousSibling = node.previousSibling;\n\t previousSibling;\n\t previousSibling = node.previousSibling) {\n\t node = previousSibling;\n\t result = this._internalFilter(node);\n\t if (result === NodeFilter.FILTER_REJECT) {\n\t continue;\n\t }\n\t for (lastChild = node.lastChild;\n\t lastChild;\n\t lastChild = node.lastChild) {\n\t node = lastChild;\n\t result = this._internalFilter(node);\n\t if (result === NodeFilter.FILTER_REJECT) {\n\t break;\n\t }\n\t }\n\t if (result === NodeFilter.FILTER_ACCEPT) {\n\t this._currentNode = node;\n\t return node;\n\t }\n\t }\n\t if (node === this.root || node.parentNode === null) {\n\t return null;\n\t }\n\t node = node.parentNode;\n\t if (this._internalFilter(node) === NodeFilter.FILTER_ACCEPT) {\n\t this._currentNode = node;\n\t return node;\n\t }\n\t }\n\t return null;\n\t }},\n\n\t /**\n\t * @spec https://dom.spec.whatwg.org/#dom-treewalker-nextnode\n\t * @based on WebKit's TreeWalker::nextNode\n\t * https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/dom/TreeWalker.cpp?rev=220453#L228\n\t * @method\n\t * @return {Node|null}\n\t */\n\t nextNode: { value: function nextNode() {\n\t var node, result, firstChild, nextSibling;\n\t node = this._currentNode;\n\t result = NodeFilter.FILTER_ACCEPT;\n\n\t CHILDREN:\n\t while (true) {\n\t for (firstChild = node.firstChild;\n\t firstChild;\n\t firstChild = node.firstChild) {\n\t node = firstChild;\n\t result = this._internalFilter(node);\n\t if (result === NodeFilter.FILTER_ACCEPT) {\n\t this._currentNode = node;\n\t return node;\n\t } else if (result === NodeFilter.FILTER_REJECT) {\n\t break;\n\t }\n\t }\n\t for (nextSibling = NodeTraversal.nextSkippingChildren(node, this.root);\n\t nextSibling;\n\t nextSibling = NodeTraversal.nextSkippingChildren(node, this.root)) {\n\t node = nextSibling;\n\t result = this._internalFilter(node);\n\t if (result === NodeFilter.FILTER_ACCEPT) {\n\t this._currentNode = node;\n\t return node;\n\t } else if (result === NodeFilter.FILTER_SKIP) {\n\t continue CHILDREN;\n\t }\n\t }\n\t return null;\n\t }\n\t }},\n\n\t /** For compatibility with web-platform-tests. */\n\t toString: { value: function toString() {\n\t return \"[object TreeWalker]\";\n\t }},\n\t});\n\treturn TreeWalker_1;\n}\n\nvar NodeIterator_1;\nvar hasRequiredNodeIterator;\n\nfunction requireNodeIterator () {\n\tif (hasRequiredNodeIterator) return NodeIterator_1;\n\thasRequiredNodeIterator = 1;\n\tNodeIterator_1 = NodeIterator;\n\n\tvar NodeFilter = requireNodeFilter();\n\tvar NodeTraversal = requireNodeTraversal();\n\tvar utils = requireUtils();\n\n\t/* Private methods and helpers */\n\n\t/**\n\t * @based on WebKit's NodeIterator::moveToNext and NodeIterator::moveToPrevious\n\t * https://trac.webkit.org/browser/trunk/Source/WebCore/dom/NodeIterator.cpp?rev=186279#L51\n\t */\n\tfunction move(node, stayWithin, directionIsNext) {\n\t if (directionIsNext) {\n\t return NodeTraversal.next(node, stayWithin);\n\t } else {\n\t if (node === stayWithin) {\n\t return null;\n\t }\n\t return NodeTraversal.previous(node, null);\n\t }\n\t}\n\n\tfunction isInclusiveAncestor(node, possibleChild) {\n\t for ( ; possibleChild; possibleChild = possibleChild.parentNode) {\n\t if (node === possibleChild) { return true; }\n\t }\n\t return false;\n\t}\n\n\t/**\n\t * @spec http://www.w3.org/TR/dom/#concept-nodeiterator-traverse\n\t * @method\n\t * @access private\n\t * @param {NodeIterator} ni\n\t * @param {string} direction One of 'next' or 'previous'.\n\t * @return {Node|null}\n\t */\n\tfunction traverse(ni, directionIsNext) {\n\t var node, beforeNode;\n\t node = ni._referenceNode;\n\t beforeNode = ni._pointerBeforeReferenceNode;\n\t while (true) {\n\t if (beforeNode === directionIsNext) {\n\t beforeNode = !beforeNode;\n\t } else {\n\t node = move(node, ni._root, directionIsNext);\n\t if (node === null) {\n\t return null;\n\t }\n\t }\n\t var result = ni._internalFilter(node);\n\t if (result === NodeFilter.FILTER_ACCEPT) {\n\t break;\n\t }\n\t }\n\t ni._referenceNode = node;\n\t ni._pointerBeforeReferenceNode = beforeNode;\n\t return node;\n\t}\n\n\t/* Public API */\n\n\t/**\n\t * Implemented version: http://www.w3.org/TR/2015/WD-dom-20150618/#nodeiterator\n\t * Latest version: http://www.w3.org/TR/dom/#nodeiterator\n\t *\n\t * @constructor\n\t * @param {Node} root\n\t * @param {number} whatToShow [optional]\n\t * @param {Function|NodeFilter} filter [optional]\n\t * @throws Error\n\t */\n\tfunction NodeIterator(root, whatToShow, filter) {\n\t if (!root || !root.nodeType) {\n\t utils.NotSupportedError();\n\t }\n\n\t // Read-only properties\n\t this._root = root;\n\t this._referenceNode = root;\n\t this._pointerBeforeReferenceNode = true;\n\t this._whatToShow = Number(whatToShow) || 0;\n\t this._filter = filter || null;\n\t this._active = false;\n\t // Record active node iterators in the document, in order to perform\n\t // \"node iterator pre-removal steps\".\n\t root.doc._attachNodeIterator(this);\n\t}\n\n\tObject.defineProperties(NodeIterator.prototype, {\n\t root: { get: function root() {\n\t return this._root;\n\t } },\n\t referenceNode: { get: function referenceNode() {\n\t return this._referenceNode;\n\t } },\n\t pointerBeforeReferenceNode: { get: function pointerBeforeReferenceNode() {\n\t return this._pointerBeforeReferenceNode;\n\t } },\n\t whatToShow: { get: function whatToShow() {\n\t return this._whatToShow;\n\t } },\n\t filter: { get: function filter() {\n\t return this._filter;\n\t } },\n\n\t /**\n\t * @method\n\t * @param {Node} node\n\t * @return {Number} Constant NodeFilter.FILTER_ACCEPT,\n\t * NodeFilter.FILTER_REJECT or NodeFilter.FILTER_SKIP.\n\t */\n\t _internalFilter: { value: function _internalFilter(node) {\n\t /* jshint bitwise: false */\n\t var result, filter;\n\t if (this._active) {\n\t utils.InvalidStateError();\n\t }\n\n\t // Maps nodeType to whatToShow\n\t if (!(((1 << (node.nodeType - 1)) & this._whatToShow))) {\n\t return NodeFilter.FILTER_SKIP;\n\t }\n\n\t filter = this._filter;\n\t if (filter === null) {\n\t result = NodeFilter.FILTER_ACCEPT;\n\t } else {\n\t this._active = true;\n\t try {\n\t if (typeof filter === 'function') {\n\t result = filter(node);\n\t } else {\n\t result = filter.acceptNode(node);\n\t }\n\t } finally {\n\t this._active = false;\n\t }\n\t }\n\n\t // Note that coercing to a number means that\n\t // `true` becomes `1` (which is NodeFilter.FILTER_ACCEPT)\n\t // `false` becomes `0` (neither accept, reject, or skip)\n\t return (+result);\n\t } },\n\n\t /**\n\t * @spec https://dom.spec.whatwg.org/#nodeiterator-pre-removing-steps\n\t * @method\n\t * @return void\n\t */\n\t _preremove: { value: function _preremove(toBeRemovedNode) {\n\t if (isInclusiveAncestor(toBeRemovedNode, this._root)) { return; }\n\t if (!isInclusiveAncestor(toBeRemovedNode, this._referenceNode)) { return; }\n\t if (this._pointerBeforeReferenceNode) {\n\t var next = toBeRemovedNode;\n\t while (next.lastChild) {\n\t next = next.lastChild;\n\t }\n\t next = NodeTraversal.next(next, this.root);\n\t if (next) {\n\t this._referenceNode = next;\n\t return;\n\t }\n\t this._pointerBeforeReferenceNode = false;\n\t // fall through\n\t }\n\t if (toBeRemovedNode.previousSibling === null) {\n\t this._referenceNode = toBeRemovedNode.parentNode;\n\t } else {\n\t this._referenceNode = toBeRemovedNode.previousSibling;\n\t var lastChild;\n\t for (lastChild = this._referenceNode.lastChild;\n\t lastChild;\n\t lastChild = this._referenceNode.lastChild) {\n\t this._referenceNode = lastChild;\n\t }\n\t }\n\t } },\n\n\t /**\n\t * @spec http://www.w3.org/TR/dom/#dom-nodeiterator-nextnode\n\t * @method\n\t * @return {Node|null}\n\t */\n\t nextNode: { value: function nextNode() {\n\t return traverse(this, true);\n\t } },\n\n\t /**\n\t * @spec http://www.w3.org/TR/dom/#dom-nodeiterator-previousnode\n\t * @method\n\t * @return {Node|null}\n\t */\n\t previousNode: { value: function previousNode() {\n\t return traverse(this, false);\n\t } },\n\n\t /**\n\t * @spec http://www.w3.org/TR/dom/#dom-nodeiterator-detach\n\t * @method\n\t * @return void\n\t */\n\t detach: { value: function detach() {\n\t /* \"The detach() method must do nothing.\n\t * Its functionality (disabling a NodeIterator object) was removed,\n\t * but the method itself is preserved for compatibility.\n\t */\n\t } },\n\n\t /** For compatibility with web-platform-tests. */\n\t toString: { value: function toString() {\n\t return \"[object NodeIterator]\";\n\t } },\n\t});\n\treturn NodeIterator_1;\n}\n\nvar URL_1;\nvar hasRequiredURL;\n\nfunction requireURL () {\n\tif (hasRequiredURL) return URL_1;\n\thasRequiredURL = 1;\n\tURL_1 = URL;\n\n\tfunction URL(url) {\n\t if (!url) return Object.create(URL.prototype);\n\t // Can't use String.trim() since it defines whitespace differently than HTML\n\t this.url = url.replace(/^[ \\t\\n\\r\\f]+|[ \\t\\n\\r\\f]+$/g, \"\");\n\n\t // See http://tools.ietf.org/html/rfc3986#appendix-B\n\t // and https://url.spec.whatwg.org/#parsing\n\t var match = URL.pattern.exec(this.url);\n\t if (match) {\n\t if (match[2]) this.scheme = match[2];\n\t if (match[4]) {\n\t // parse username/password\n\t var userinfo = match[4].match(URL.userinfoPattern);\n\t if (userinfo) {\n\t this.username = userinfo[1];\n\t this.password = userinfo[3];\n\t match[4] = match[4].substring(userinfo[0].length);\n\t }\n\t if (match[4].match(URL.portPattern)) {\n\t var pos = match[4].lastIndexOf(':');\n\t this.host = match[4].substring(0, pos);\n\t this.port = match[4].substring(pos+1);\n\t }\n\t else {\n\t this.host = match[4];\n\t }\n\t }\n\t if (match[5]) this.path = match[5];\n\t if (match[6]) this.query = match[7];\n\t if (match[8]) this.fragment = match[9];\n\t }\n\t}\n\n\tURL.pattern = /^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/;\n\tURL.userinfoPattern = /^([^@:]*)(:([^@]*))?@/;\n\tURL.portPattern = /:\\d+$/;\n\tURL.authorityPattern = /^[^:\\/?#]+:\\/\\//;\n\tURL.hierarchyPattern = /^[^:\\/?#]+:\\//;\n\n\t// Return a percentEncoded version of s.\n\t// S should be a single-character string\n\t// XXX: needs to do utf-8 encoding?\n\tURL.percentEncode = function percentEncode(s) {\n\t var c = s.charCodeAt(0);\n\t if (c < 256) return \"%\" + c.toString(16);\n\t else throw Error(\"can't percent-encode codepoints > 255 yet\");\n\t};\n\n\tURL.prototype = {\n\t constructor: URL,\n\n\t // XXX: not sure if this is the precise definition of absolute\n\t isAbsolute: function() { return !!this.scheme; },\n\t isAuthorityBased: function() {\n\t return URL.authorityPattern.test(this.url);\n\t },\n\t isHierarchical: function() {\n\t return URL.hierarchyPattern.test(this.url);\n\t },\n\n\t toString: function() {\n\t var s = \"\";\n\t if (this.scheme !== undefined) s += this.scheme + \":\";\n\t if (this.isAbsolute()) {\n\t s += '//';\n\t if (this.username || this.password) {\n\t s += this.username || '';\n\t if (this.password) {\n\t s += ':' + this.password;\n\t }\n\t s += '@';\n\t }\n\t if (this.host) {\n\t s += this.host;\n\t }\n\t }\n\t if (this.port !== undefined) s += \":\" + this.port;\n\t if (this.path !== undefined) s += this.path;\n\t if (this.query !== undefined) s += \"?\" + this.query;\n\t if (this.fragment !== undefined) s += \"#\" + this.fragment;\n\t return s;\n\t },\n\n\t // See: http://tools.ietf.org/html/rfc3986#section-5.2\n\t // and https://url.spec.whatwg.org/#constructors\n\t resolve: function(relative) {\n\t var base = this; // The base url we're resolving against\n\t var r = new URL(relative); // The relative reference url to resolve\n\t var t = new URL(); // The absolute target url we will return\n\n\t if (r.scheme !== undefined) {\n\t t.scheme = r.scheme;\n\t t.username = r.username;\n\t t.password = r.password;\n\t t.host = r.host;\n\t t.port = r.port;\n\t t.path = remove_dot_segments(r.path);\n\t t.query = r.query;\n\t }\n\t else {\n\t t.scheme = base.scheme;\n\t if (r.host !== undefined) {\n\t t.username = r.username;\n\t t.password = r.password;\n\t t.host = r.host;\n\t t.port = r.port;\n\t t.path = remove_dot_segments(r.path);\n\t t.query = r.query;\n\t }\n\t else {\n\t t.username = base.username;\n\t t.password = base.password;\n\t t.host = base.host;\n\t t.port = base.port;\n\t if (!r.path) { // undefined or empty\n\t t.path = base.path;\n\t if (r.query !== undefined)\n\t t.query = r.query;\n\t else\n\t t.query = base.query;\n\t }\n\t else {\n\t if (r.path.charAt(0) === \"/\") {\n\t t.path = remove_dot_segments(r.path);\n\t }\n\t else {\n\t t.path = merge(base.path, r.path);\n\t t.path = remove_dot_segments(t.path);\n\t }\n\t t.query = r.query;\n\t }\n\t }\n\t }\n\t t.fragment = r.fragment;\n\n\t return t.toString();\n\n\n\t function merge(basepath, refpath) {\n\t if (base.host !== undefined && !base.path)\n\t return \"/\" + refpath;\n\n\t var lastslash = basepath.lastIndexOf(\"/\");\n\t if (lastslash === -1)\n\t return refpath;\n\t else\n\t return basepath.substring(0, lastslash+1) + refpath;\n\t }\n\n\t function remove_dot_segments(path) {\n\t if (!path) return path; // For \"\" or undefined\n\n\t var output = \"\";\n\t while(path.length > 0) {\n\t if (path === \".\" || path === \"..\") {\n\t path = \"\";\n\t break;\n\t }\n\n\t var twochars = path.substring(0,2);\n\t var threechars = path.substring(0,3);\n\t var fourchars = path.substring(0,4);\n\t if (threechars === \"../\") {\n\t path = path.substring(3);\n\t }\n\t else if (twochars === \"./\") {\n\t path = path.substring(2);\n\t }\n\t else if (threechars === \"/./\") {\n\t path = \"/\" + path.substring(3);\n\t }\n\t else if (twochars === \"/.\" && path.length === 2) {\n\t path = \"/\";\n\t }\n\t else if (fourchars === \"/../\" ||\n\t (threechars === \"/..\" && path.length === 3)) {\n\t path = \"/\" + path.substring(4);\n\n\t output = output.replace(/\\/?[^\\/]*$/, \"\");\n\t }\n\t else {\n\t var segment = path.match(/(\\/?([^\\/]*))/)[0];\n\t output += segment;\n\t path = path.substring(segment.length);\n\t }\n\t }\n\n\t return output;\n\t }\n\t },\n\t};\n\treturn URL_1;\n}\n\nvar CustomEvent_1;\nvar hasRequiredCustomEvent;\n\nfunction requireCustomEvent () {\n\tif (hasRequiredCustomEvent) return CustomEvent_1;\n\thasRequiredCustomEvent = 1;\n\tCustomEvent_1 = CustomEvent;\n\n\tvar Event = requireEvent();\n\n\tfunction CustomEvent(type, dictionary) {\n\t // Just use the superclass constructor to initialize\n\t Event.call(this, type, dictionary);\n\t}\n\tCustomEvent.prototype = Object.create(Event.prototype, {\n\t constructor: { value: CustomEvent }\n\t});\n\treturn CustomEvent_1;\n}\n\nvar events;\nvar hasRequiredEvents;\n\nfunction requireEvents () {\n\tif (hasRequiredEvents) return events;\n\thasRequiredEvents = 1;\n\tevents = {\n\t Event: requireEvent(),\n\t UIEvent: requireUIEvent(),\n\t MouseEvent: requireMouseEvent(),\n\t CustomEvent: requireCustomEvent()\n\t};\n\treturn events;\n}\n\nvar htmlelts = {};\n\nvar style_parser = {};\n\nvar hasRequiredStyle_parser;\n\nfunction requireStyle_parser () {\n\tif (hasRequiredStyle_parser) return style_parser;\n\thasRequiredStyle_parser = 1;\n\t/**\n\t * @license\n\t * Copyright Google LLC All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\n\t// The below is a compiled copy of https://github.com/angular/angular/blob/92e41e9cb417223d9888a4c23b4c0e73188f87d0/packages/compiler/src/render3/view/style_parser.ts\n\n\tObject.defineProperty(style_parser, \"__esModule\", { value: true });\n\tstyle_parser.hyphenate = style_parser.parse = void 0;\n\t/**\n\t * Parses string representation of a style and converts it into object literal.\n\t *\n\t * @param value string representation of style as used in the `style` attribute in HTML.\n\t * Example: `color: red; height: auto`.\n\t * @returns An array of style property name and value pairs, e.g. `['color', 'red', 'height',\n\t * 'auto']`\n\t */\n\tfunction parse(value) {\n\t // we use a string array here instead of a string map\n\t // because a string-map is not guaranteed to retain the\n\t // order of the entries whereas a string array can be\n\t // constructed in a [key, value, key, value] format.\n\t const styles = [];\n\t let i = 0;\n\t let parenDepth = 0;\n\t let quote = 0; /* Char.QuoteNone */\n\t let valueStart = 0;\n\t let propStart = 0;\n\t let currentProp = null;\n\t while (i < value.length) {\n\t const token = value.charCodeAt(i++);\n\t switch (token) {\n\t case 40 /* Char.OpenParen */:\n\t parenDepth++;\n\t break;\n\t case 41 /* Char.CloseParen */:\n\t parenDepth--;\n\t break;\n\t case 39 /* Char.QuoteSingle */:\n\t // valueStart needs to be there since prop values don't\n\t // have quotes in CSS\n\t if (quote === 0 /* Char.QuoteNone */) {\n\t quote = 39 /* Char.QuoteSingle */;\n\t } else if (\n\t quote === 39 /* Char.QuoteSingle */ &&\n\t value.charCodeAt(i - 1) !== 92 /* Char.BackSlash */\n\t ) {\n\t quote = 0 /* Char.QuoteNone */;\n\t }\n\t break;\n\t case 34 /* Char.QuoteDouble */:\n\t // same logic as above\n\t if (quote === 0 /* Char.QuoteNone */) {\n\t quote = 34 /* Char.QuoteDouble */;\n\t } else if (\n\t quote === 34 /* Char.QuoteDouble */ &&\n\t value.charCodeAt(i - 1) !== 92 /* Char.BackSlash */\n\t ) {\n\t quote = 0 /* Char.QuoteNone */;\n\t }\n\t break;\n\t case 58 /* Char.Colon */:\n\t if (\n\t !currentProp &&\n\t parenDepth === 0 &&\n\t quote === 0 /* Char.QuoteNone */\n\t ) {\n\t currentProp = hyphenate(value.substring(propStart, i - 1).trim());\n\t valueStart = i;\n\t }\n\t break;\n\t case 59 /* Char.Semicolon */:\n\t if (\n\t currentProp &&\n\t valueStart > 0 &&\n\t parenDepth === 0 &&\n\t quote === 0 /* Char.QuoteNone */\n\t ) {\n\t const styleVal = value.substring(valueStart, i - 1).trim();\n\t styles.push(currentProp, styleVal);\n\t propStart = i;\n\t valueStart = 0;\n\t currentProp = null;\n\t }\n\t break;\n\t }\n\t }\n\t if (currentProp && valueStart) {\n\t const styleVal = value.slice(valueStart).trim();\n\t styles.push(currentProp, styleVal);\n\t }\n\t return styles;\n\t}\n\tstyle_parser.parse = parse;\n\tfunction hyphenate(value) {\n\t return value\n\t .replace(/[a-z][A-Z]/g, (v) => {\n\t return v.charAt(0) + \"-\" + v.charAt(1);\n\t })\n\t .toLowerCase();\n\t}\n\tstyle_parser.hyphenate = hyphenate;\n\treturn style_parser;\n}\n\nvar CSSStyleDeclaration_1;\nvar hasRequiredCSSStyleDeclaration;\n\nfunction requireCSSStyleDeclaration () {\n\tif (hasRequiredCSSStyleDeclaration) return CSSStyleDeclaration_1;\n\thasRequiredCSSStyleDeclaration = 1;\n\n\tconst { parse } = requireStyle_parser();\n\n\tCSSStyleDeclaration_1 = function (elt) {\n\t const style = new CSSStyleDeclaration(elt);\n\t const handler = {\n\t get: function(target, property) {\n\t return property in target ? target[property] : target.getPropertyValue(dasherizeProperty(property));\n\t },\n\t has: function(target, key) {\n\t return true;\n\t },\n\t set: function(target, property, value) {\n\t if (property in target) {\n\t target[property] = value;\n\t } else {\n\t target.setProperty(dasherizeProperty(property), value ?? undefined);\n\t }\n\n\t return true;\n\t }\n\t };\n\n\t return new Proxy(style, handler);\n\t};\n\n\tfunction dasherizeProperty(property) {\n\t return property.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n\t}\n\n\n\tfunction CSSStyleDeclaration(elt) {\n\t this._element = elt;\n\t}\n\n\tconst IMPORTANT_BANG = '!important';\n\n\t// Utility function for parsing style declarations\n\t// Pass in a string like \"margin-left: 5px; border-style: solid\"\n\t// and this function returns an object like\n\t// {\"margin-left\":\"5px\", \"border-style\":\"solid\"}\n\tfunction parseStyles(value) {\n\t const result = {\n\t property: {},\n\t priority: {},\n\t };\n\n\t if (!value) {\n\t return result;\n\t }\n\n\t const styleValues = parse(value);\n\t if (styleValues.length < 2) {\n\t return result;\n\t }\n\n\t for (let i = 0; i < styleValues.length; i += 2) {\n\t const name = styleValues[i];\n\t let value = styleValues[i+1];\n\n\t if (value.endsWith(IMPORTANT_BANG)) {\n\t result.priority[name] = 'important';\n\t value = value.slice(0, -IMPORTANT_BANG.length).trim();\n\t }\n\n\t result.property[name] = value;\n\t }\n\n\t return result;\n\t}\n\n\tvar NO_CHANGE = {}; // Private marker object\n\n\tCSSStyleDeclaration.prototype = Object.create(Object.prototype, {\n\n\t // Return the parsed form of the element's style attribute.\n\t // If the element's style attribute has never been parsed\n\t // or if it has changed since the last parse, then reparse it\n\t // Note that the styles don't get parsed until they're actually needed\n\t _parsed: { get: function() {\n\t if (!this._parsedStyles || this.cssText !== this._lastParsedText) {\n\t var text = this.cssText;\n\t this._parsedStyles = parseStyles(text);\n\t this._lastParsedText = text;\n\t delete this._names;\n\t }\n\t return this._parsedStyles;\n\t }},\n\n\t // Call this method any time the parsed representation of the\n\t // style changes. It converts the style properties to a string and\n\t // sets cssText and the element's style attribute\n\t _serialize: { value: function() {\n\t var styles = this._parsed;\n\t var s = \"\";\n\n\t for(var name in styles.property) {\n\t if (s) s += \" \";\n\t s += name + \": \" + styles.property[name];\n\t if (styles.priority[name]) {\n\t s += \" !\" + styles.priority[name];\n\t }\n\t s += \";\";\n\t }\n\n\t this.cssText = s; // also sets the style attribute\n\t this._lastParsedText = s; // so we don't reparse\n\t delete this._names;\n\t }},\n\n\t cssText: {\n\t get: function() {\n\t // XXX: this is a CSSStyleDeclaration for an element.\n\t // A different impl might be necessary for a set of styles\n\t // associated returned by getComputedStyle(), e.g.\n\t return this._element.getAttribute(\"style\");\n\t },\n\t set: function(value) {\n\t // XXX: I should parse and serialize the value to\n\t // normalize it and remove errors. FF and chrome do that.\n\t this._element.setAttribute(\"style\", value);\n\t }\n\t },\n\n\t length: { get: function() {\n\t if (!this._names)\n\t this._names = Object.getOwnPropertyNames(this._parsed.property);\n\t return this._names.length;\n\t }},\n\n\t item: { value: function(n) {\n\t if (!this._names)\n\t this._names = Object.getOwnPropertyNames(this._parsed.property);\n\t return this._names[n];\n\t }},\n\n\t getPropertyValue: { value: function(property) {\n\t property = property.toLowerCase();\n\t return this._parsed.property[property] || \"\";\n\t }},\n\n\t getPropertyPriority: { value: function(property) {\n\t property = property.toLowerCase();\n\t return this._parsed.priority[property] || \"\";\n\t }},\n\n\t setProperty: { value: function(property, value, priority) {\n\t property = property.toLowerCase();\n\t if (value === null || value === undefined) {\n\t value = \"\";\n\t }\n\t if (priority === null || priority === undefined) {\n\t priority = \"\";\n\t }\n\n\t // String coercion\n\t if (value !== NO_CHANGE) {\n\t value = \"\" + value;\n\t }\n\n\t value = value.trim();\n\t if (value === \"\") {\n\t this.removeProperty(property);\n\t return;\n\t }\n\n\t if (priority !== \"\" && priority !== NO_CHANGE &&\n\t !/^important$/i.test(priority)) {\n\t return;\n\t }\n\n\t var styles = this._parsed;\n\t if (value === NO_CHANGE) {\n\t if (!styles.property[property]) {\n\t return; // Not a valid property name.\n\t }\n\t if (priority !== \"\") {\n\t styles.priority[property] = \"important\";\n\t } else {\n\t delete styles.priority[property];\n\t }\n\t } else {\n\t // We don't just accept the property value. Instead\n\t // we parse it to ensure that it is something valid.\n\t // If it contains a semicolon it is invalid, except base64-encoded\n\t // URLs (e.g. `background-image: url(data:image/png;base64,...`)\n\t if (value.includes(\";\") && !value.includes(\"data:\")) return;\n\n\t var newprops = parseStyles(property + \":\" + value);\n\t if (Object.getOwnPropertyNames(newprops.property).length === 0) {\n\t return; // no valid property found\n\t }\n\t if (Object.getOwnPropertyNames(newprops.priority).length !== 0) {\n\t return; // if the value included '!important' it wasn't valid.\n\t }\n\n\t // XXX handle shorthand properties\n\n\t for (var p in newprops.property) {\n\t styles.property[p] = newprops.property[p];\n\t if (priority === NO_CHANGE) {\n\t continue;\n\t } else if (priority !== \"\") {\n\t styles.priority[p] = \"important\";\n\t } else if (styles.priority[p]) {\n\t delete styles.priority[p];\n\t }\n\t }\n\t }\n\n\t // Serialize and update cssText and element.style!\n\t this._serialize();\n\t }},\n\n\t setPropertyValue: { value: function(property, value) {\n\t return this.setProperty(property, value, NO_CHANGE);\n\t }},\n\n\t setPropertyPriority: { value: function(property, priority) {\n\t return this.setProperty(property, NO_CHANGE, priority);\n\t }},\n\n\t removeProperty: { value: function(property) {\n\t property = property.toLowerCase();\n\t var styles = this._parsed;\n\t if (property in styles.property) {\n\t delete styles.property[property];\n\t delete styles.priority[property];\n\n\t // Serialize and update cssText and element.style!\n\t this._serialize();\n\t }\n\t }},\n\t});\n\treturn CSSStyleDeclaration_1;\n}\n\nvar URLUtils_1;\nvar hasRequiredURLUtils;\n\nfunction requireURLUtils () {\n\tif (hasRequiredURLUtils) return URLUtils_1;\n\thasRequiredURLUtils = 1;\n\tvar URL = requireURL();\n\n\tURLUtils_1 = URLUtils;\n\n\t// Allow the `x == null` pattern. This is eslint's \"null: 'ignore'\" option,\n\t// but jshint doesn't support this.\n\t/* jshint eqeqeq: false */\n\n\t// This is an abstract superclass for Location, HTMLAnchorElement and\n\t// other types that have the standard complement of \"URL decomposition\n\t// IDL attributes\". This is now standardized as URLUtils, see:\n\t// https://url.spec.whatwg.org/#urlutils\n\t// Subclasses must define a getter/setter on href.\n\t// The getter and setter methods parse and rebuild the URL on each\n\t// invocation; there is no attempt to cache the value and be more efficient\n\tfunction URLUtils() {}\n\tURLUtils.prototype = Object.create(Object.prototype, {\n\n\t _url: { get: function() {\n\t // XXX: this should do the \"Reinitialize url\" steps, and \"null\" should\n\t // be a valid return value.\n\t return new URL(this.href);\n\t } },\n\n\t protocol: {\n\t get: function() {\n\t var url = this._url;\n\t if (url && url.scheme) return url.scheme + \":\";\n\t else return \":\";\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\t if (url.isAbsolute()) {\n\t v = v.replace(/:+$/, \"\");\n\t v = v.replace(/[^-+\\.a-zA-Z0-9]/g, URL.percentEncode);\n\t if (v.length > 0) {\n\t url.scheme = v;\n\t output = url.toString();\n\t }\n\t }\n\t this.href = output;\n\t },\n\t },\n\n\t host: {\n\t get: function() {\n\t var url = this._url;\n\t if (url.isAbsolute() && url.isAuthorityBased())\n\t return url.host + (url.port ? (\":\" + url.port) : \"\");\n\t else\n\t return \"\";\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\t if (url.isAbsolute() && url.isAuthorityBased()) {\n\t v = v.replace(/[^-+\\._~!$&'()*,;:=a-zA-Z0-9]/g, URL.percentEncode);\n\t if (v.length > 0) {\n\t url.host = v;\n\t delete url.port;\n\t output = url.toString();\n\t }\n\t }\n\t this.href = output;\n\t },\n\t },\n\n\t hostname: {\n\t get: function() {\n\t var url = this._url;\n\t if (url.isAbsolute() && url.isAuthorityBased())\n\t return url.host;\n\t else\n\t return \"\";\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\t if (url.isAbsolute() && url.isAuthorityBased()) {\n\t v = v.replace(/^\\/+/, \"\");\n\t v = v.replace(/[^-+\\._~!$&'()*,;:=a-zA-Z0-9]/g, URL.percentEncode);\n\t if (v.length > 0) {\n\t url.host = v;\n\t output = url.toString();\n\t }\n\t }\n\t this.href = output;\n\t },\n\t },\n\n\t port: {\n\t get: function() {\n\t var url = this._url;\n\t if (url.isAbsolute() && url.isAuthorityBased() && url.port!==undefined)\n\t return url.port;\n\t else\n\t return \"\";\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\t if (url.isAbsolute() && url.isAuthorityBased()) {\n\t v = '' + v;\n\t v = v.replace(/[^0-9].*$/, \"\");\n\t v = v.replace(/^0+/, \"\");\n\t if (v.length === 0) v = \"0\";\n\t if (parseInt(v, 10) <= 65535) {\n\t url.port = v;\n\t output = url.toString();\n\t }\n\t }\n\t this.href = output;\n\t },\n\t },\n\n\t pathname: {\n\t get: function() {\n\t var url = this._url;\n\t if (url.isAbsolute() && url.isHierarchical())\n\t return url.path;\n\t else\n\t return \"\";\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\t if (url.isAbsolute() && url.isHierarchical()) {\n\t if (v.charAt(0) !== \"/\")\n\t v = \"/\" + v;\n\t v = v.replace(/[^-+\\._~!$&'()*,;:=@\\/a-zA-Z0-9]/g, URL.percentEncode);\n\t url.path = v;\n\t output = url.toString();\n\t }\n\t this.href = output;\n\t },\n\t },\n\n\t search: {\n\t get: function() {\n\t var url = this._url;\n\t if (url.isAbsolute() && url.isHierarchical() && url.query!==undefined)\n\t return \"?\" + url.query;\n\t else\n\t return \"\";\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\t if (url.isAbsolute() && url.isHierarchical()) {\n\t if (v.charAt(0) === \"?\") v = v.substring(1);\n\t v = v.replace(/[^-+\\._~!$&'()*,;:=@\\/?a-zA-Z0-9]/g, URL.percentEncode);\n\t url.query = v;\n\t output = url.toString();\n\t }\n\t this.href = output;\n\t },\n\t },\n\n\t hash: {\n\t get: function() {\n\t var url = this._url;\n\t if (url == null || url.fragment == null || url.fragment === '') {\n\t return \"\";\n\t } else {\n\t return \"#\" + url.fragment;\n\t }\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\n\t if (v.charAt(0) === \"#\") v = v.substring(1);\n\t v = v.replace(/[^-+\\._~!$&'()*,;:=@\\/?a-zA-Z0-9]/g, URL.percentEncode);\n\t url.fragment = v;\n\t output = url.toString();\n\n\t this.href = output;\n\t },\n\t },\n\n\t username: {\n\t get: function() {\n\t var url = this._url;\n\t return url.username || '';\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\t if (url.isAbsolute()) {\n\t v = v.replace(/[\\x00-\\x1F\\x7F-\\uFFFF \"#<>?`\\/@\\\\:]/g, URL.percentEncode);\n\t url.username = v;\n\t output = url.toString();\n\t }\n\t this.href = output;\n\t },\n\t },\n\n\t password: {\n\t get: function() {\n\t var url = this._url;\n\t return url.password || '';\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\t if (url.isAbsolute()) {\n\t if (v==='') {\n\t url.password = null;\n\t } else {\n\t v = v.replace(/[\\x00-\\x1F\\x7F-\\uFFFF \"#<>?`\\/@\\\\]/g, URL.percentEncode);\n\t url.password = v;\n\t }\n\t output = url.toString();\n\t }\n\t this.href = output;\n\t },\n\t },\n\n\t origin: { get: function() {\n\t var url = this._url;\n\t if (url == null) { return ''; }\n\t var originForPort = function(defaultPort) {\n\t var origin = [url.scheme, url.host, +url.port || defaultPort];\n\t // XXX should be \"unicode serialization\"\n\t return origin[0] + '://' + origin[1] +\n\t (origin[2] === defaultPort ? '' : (':' + origin[2]));\n\t };\n\t switch (url.scheme) {\n\t case 'ftp':\n\t return originForPort(21);\n\t case 'gopher':\n\t return originForPort(70);\n\t case 'http':\n\t case 'ws':\n\t return originForPort(80);\n\t case 'https':\n\t case 'wss':\n\t return originForPort(443);\n\t default:\n\t // this is what chrome does\n\t return url.scheme + '://';\n\t }\n\t } },\n\n\t /*\n\t searchParams: {\n\t get: function() {\n\t var url = this._url;\n\t // XXX\n\t },\n\t set: function(v) {\n\t var output = this.href;\n\t var url = new URL(output);\n\t // XXX\n\t this.href = output;\n\t },\n\t },\n\t */\n\t});\n\n\tURLUtils._inherit = function(proto) {\n\t // copy getters/setters from URLUtils to o.\n\t Object.getOwnPropertyNames(URLUtils.prototype).forEach(function(p) {\n\t if (p==='constructor' || p==='href') { return; }\n\t var desc = Object.getOwnPropertyDescriptor(URLUtils.prototype, p);\n\t Object.defineProperty(proto, p, desc);\n\t });\n\t};\n\treturn URLUtils_1;\n}\n\nvar defineElement;\nvar hasRequiredDefineElement;\n\nfunction requireDefineElement () {\n\tif (hasRequiredDefineElement) return defineElement;\n\thasRequiredDefineElement = 1;\n\n\tvar attributes = requireAttributes();\n\tvar isApiWritable = requireConfig().isApiWritable;\n\n\tdefineElement = function(spec, defaultConstructor, tagList, tagNameToImpl) {\n\t var c = spec.ctor;\n\t if (c) {\n\t var props = spec.props || {};\n\n\t if (spec.attributes) {\n\t for (var n in spec.attributes) {\n\t var attr = spec.attributes[n];\n\t if (typeof attr !== 'object' || Array.isArray(attr)) attr = {type: attr};\n\t if (!attr.name) attr.name = n.toLowerCase();\n\t props[n] = attributes.property(attr);\n\t }\n\t }\n\n\t props.constructor = { value : c, writable: isApiWritable };\n\t c.prototype = Object.create((spec.superclass || defaultConstructor).prototype, props);\n\t if (spec.events) {\n\t addEventHandlers(c, spec.events);\n\t }\n\t tagList[spec.name] = c;\n\t }\n\t else {\n\t c = defaultConstructor;\n\t }\n\n\t (spec.tags || spec.tag && [spec.tag] || []).forEach(function(tag) {\n\t tagNameToImpl[tag] = c;\n\t });\n\n\t return c;\n\t};\n\n\tfunction EventHandlerBuilder(body, document, form, element) {\n\t this.body = body;\n\t this.document = document;\n\t this.form = form;\n\t this.element = element;\n\t}\n\n\tEventHandlerBuilder.prototype.build = function () {\n\t return () => {};\n\t};\n\n\tfunction EventHandlerChangeHandler(elt, name, oldval, newval) {\n\t var doc = elt.ownerDocument || Object.create(null);\n\t var form = elt.form || Object.create(null);\n\t elt[name] = new EventHandlerBuilder(newval, doc, form, elt).build();\n\t}\n\n\tfunction addEventHandlers(c, eventHandlerTypes) {\n\t var p = c.prototype;\n\t eventHandlerTypes.forEach(function(type) {\n\t // Define the event handler registration IDL attribute for this type\n\t Object.defineProperty(p, \"on\" + type, {\n\t get: function() {\n\t return this._getEventHandler(type);\n\t },\n\t set: function(v) {\n\t this._setEventHandler(type, v);\n\t },\n\t });\n\n\t // Define special behavior for the content attribute as well\n\t attributes.registerChangeHandler(c, \"on\" + type, EventHandlerChangeHandler);\n\t });\n\t}\n\treturn defineElement;\n}\n\nvar hasRequiredHtmlelts;\n\nfunction requireHtmlelts () {\n\tif (hasRequiredHtmlelts) return htmlelts;\n\thasRequiredHtmlelts = 1;\n\tvar Node = requireNode();\n\tvar Element = requireElement();\n\tvar CSSStyleDeclaration = requireCSSStyleDeclaration();\n\tvar utils = requireUtils();\n\tvar URLUtils = requireURLUtils();\n\tvar defineElement = requireDefineElement();\n\n\tvar htmlElements = htmlelts.elements = {};\n\tvar htmlNameToImpl = Object.create(null);\n\n\thtmlelts.createElement = function(doc, localName, prefix) {\n\t var impl = htmlNameToImpl[localName] || HTMLUnknownElement;\n\t return new impl(doc, localName, prefix);\n\t};\n\n\tfunction define(spec) {\n\t return defineElement(spec, HTMLElement, htmlElements, htmlNameToImpl);\n\t}\n\n\tfunction URL(attr) {\n\t return {\n\t get: function() {\n\t var v = this._getattr(attr);\n\t if (v === null) { return ''; }\n\t var url = this.doc._resolve(v);\n\t return (url === null) ? v : url;\n\t },\n\t set: function(value) {\n\t this._setattr(attr, value);\n\t }\n\t };\n\t}\n\n\tfunction CORS(attr) {\n\t return {\n\t get: function() {\n\t var v = this._getattr(attr);\n\t if (v === null) { return null; }\n\t if (v.toLowerCase() === 'use-credentials') { return 'use-credentials'; }\n\t return 'anonymous';\n\t },\n\t set: function(value) {\n\t if (value===null || value===undefined) {\n\t this.removeAttribute(attr);\n\t } else {\n\t this._setattr(attr, value);\n\t }\n\t }\n\t };\n\t}\n\n\tconst REFERRER = {\n\t type: [\"\", \"no-referrer\", \"no-referrer-when-downgrade\", \"same-origin\", \"origin\", \"strict-origin\", \"origin-when-cross-origin\", \"strict-origin-when-cross-origin\", \"unsafe-url\"],\n\t missing: '',\n\t};\n\n\n\t// XXX: the default value for tabIndex should be 0 if the element is\n\t// focusable and -1 if it is not. But the full definition of focusable\n\t// is actually hard to compute, so for now, I'll follow Firefox and\n\t// just base the default value on the type of the element.\n\tvar focusableElements = {\n\t \"A\":true, \"LINK\":true, \"BUTTON\":true, \"INPUT\":true,\n\t \"SELECT\":true, \"TEXTAREA\":true, \"COMMAND\":true\n\t};\n\n\tvar HTMLFormElement = function(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t this._form = null; // Prevent later deoptimization\n\t};\n\n\tvar HTMLElement = htmlelts.HTMLElement = define({\n\t superclass: Element,\n\t name: 'HTMLElement',\n\t ctor: function HTMLElement(doc, localName, prefix) {\n\t Element.call(this, doc, localName, utils.NAMESPACE.HTML, prefix);\n\t },\n\t props: {\n\t dangerouslySetInnerHTML: {\n\t set: function (v) {\n\t this._innerHTML = v;\n\t },\n\t },\n\t innerHTML: {\n\t get: function() {\n\t return this.serialize();\n\t },\n\t set: function(v) {\n\t var parser = this.ownerDocument.implementation.mozHTMLParser(\n\t this.ownerDocument._address,\n\t this);\n\t parser.parse(v===null ? '' : String(v), true);\n\n\t // Remove any existing children of this node\n\t var target = (this instanceof htmlNameToImpl.template) ?\n\t this.content : this;\n\t while(target.hasChildNodes())\n\t target.removeChild(target.firstChild);\n\n\t // Now copy newly parsed children to this node\n\t target.appendChild(parser._asDocumentFragment());\n\t }\n\t },\n\t style: { get: function() {\n\t if (!this._style)\n\t this._style = new CSSStyleDeclaration(this);\n\t return this._style;\n\t }, set: function(v) {\n\t if (v===null||v===undefined) { v = ''; }\n\t this._setattr('style', String(v));\n\t }},\n\n\t // These can't really be implemented server-side in a reasonable way.\n\t blur: { value: function() {}},\n\t focus: { value: function() {}},\n\t forceSpellCheck: { value: function() {}},\n\n\t click: { value: function() {\n\t if (this._click_in_progress) return;\n\t this._click_in_progress = true;\n\t try {\n\t if (this._pre_click_activation_steps)\n\t this._pre_click_activation_steps();\n\n\t var event = this.ownerDocument.createEvent(\"MouseEvent\");\n\t event.initMouseEvent(\"click\", true, true,\n\t this.ownerDocument.defaultView, 1,\n\t 0, 0, 0, 0,\n\t // These 4 should be initialized with\n\t // the actually current keyboard state\n\t // somehow...\n\t false, false, false, false,\n\t 0, null\n\t );\n\n\t // Dispatch this as an untrusted event since it is synthetic\n\t var success = this.dispatchEvent(event);\n\n\t if (success) {\n\t if (this._post_click_activation_steps)\n\t this._post_click_activation_steps(event);\n\t }\n\t else {\n\t if (this._cancelled_activation_steps)\n\t this._cancelled_activation_steps();\n\t }\n\t }\n\t finally {\n\t this._click_in_progress = false;\n\t }\n\t }},\n\t submit: { value: utils.nyi },\n\t },\n\t attributes: {\n\t title: String,\n\t lang: String,\n\t dir: {type: [\"ltr\", \"rtl\", \"auto\"], missing: ''},\n\t draggable: {type: [\"true\", \"false\"], treatNullAsEmptyString: true },\n\t spellcheck: {type: [\"true\", \"false\"], missing: ''},\n\t enterKeyHint: {type: [\"enter\", \"done\", \"go\", \"next\", \"previous\", \"search\", \"send\"], missing: ''},\n\t autoCapitalize: {type: [\"off\", \"on\", \"none\", \"sentences\", \"words\", \"characters\"], missing: '' },\n\t autoFocus: Boolean,\n\t accessKey: String,\n\t nonce: String,\n\t hidden: Boolean,\n\t translate: {type: [\"no\", \"yes\"], missing: '' },\n\t tabIndex: {type: \"long\", default: function() {\n\t if (this.tagName in focusableElements ||\n\t this.contentEditable)\n\t return 0;\n\t else\n\t return -1;\n\t }}\n\t },\n\t events: [\n\t \"abort\", \"canplay\", \"canplaythrough\", \"change\", \"click\", \"contextmenu\",\n\t \"cuechange\", \"dblclick\", \"drag\", \"dragend\", \"dragenter\", \"dragleave\",\n\t \"dragover\", \"dragstart\", \"drop\", \"durationchange\", \"emptied\", \"ended\",\n\t \"input\", \"invalid\", \"keydown\", \"keypress\", \"keyup\", \"loadeddata\",\n\t \"loadedmetadata\", \"loadstart\", \"mousedown\", \"mousemove\", \"mouseout\",\n\t \"mouseover\", \"mouseup\", \"mousewheel\", \"pause\", \"play\", \"playing\",\n\t \"progress\", \"ratechange\", \"readystatechange\", \"reset\", \"seeked\",\n\t \"seeking\", \"select\", \"show\", \"stalled\", \"submit\", \"suspend\",\n\t \"timeupdate\", \"volumechange\", \"waiting\",\n\n\t // These last 5 event types will be overriden by HTMLBodyElement\n\t \"blur\", \"error\", \"focus\", \"load\", \"scroll\"\n\t ]\n\t});\n\n\n\t// XXX: reflect contextmenu as contextMenu, with element type\n\n\n\t// style: the spec doesn't call this a reflected attribute.\n\t// may want to handle it manually.\n\n\t// contentEditable: enumerated, not clear if it is actually\n\t// reflected or requires custom getter/setter. Not listed as\n\t// \"limited to known values\". Raises syntax_err on bad setting,\n\t// so I think this is custom.\n\n\t// contextmenu: content is element id, idl type is an element\n\t// draggable: boolean, but not a reflected attribute\n\t// dropzone: reflected SettableTokenList, experimental, so don't\n\t// implement it right away.\n\n\t// data-* attributes: need special handling in setAttribute?\n\t// Or maybe that isn't necessary. Can I just scan the attribute list\n\t// when building the dataset? Liveness and caching issues?\n\n\t// microdata attributes: many are simple reflected attributes, but\n\t// I'm not going to implement this now.\n\n\n\tvar HTMLUnknownElement = define({\n\t name: 'HTMLUnknownElement',\n\t ctor: function HTMLUnknownElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t }\n\t});\n\n\n\tvar formAssociatedProps = {\n\t // See http://www.w3.org/TR/html5/association-of-controls-and-forms.html#form-owner\n\t form: { get: function() {\n\t return this._form;\n\t }}\n\t};\n\n\tdefine({\n\t tag: 'a',\n\t name: 'HTMLAnchorElement',\n\t ctor: function HTMLAnchorElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t _post_click_activation_steps: { value: function(e) {\n\t if (this.href) {\n\t // Follow the link\n\t // XXX: this is just a quick hack\n\t // XXX: the HTML spec probably requires more than this\n\t this.ownerDocument.defaultView.location = this.href;\n\t }\n\t }},\n\t },\n\t attributes: {\n\t href: URL,\n\t ping: String,\n\t download: String,\n\t target: String,\n\t rel: String,\n\t media: String,\n\t hreflang: String,\n\t type: String,\n\t referrerPolicy: REFERRER,\n\t // Obsolete\n\t coords: String,\n\t charset: String,\n\t name: String,\n\t rev: String,\n\t shape: String,\n\t }\n\t});\n\t// Latest WhatWG spec says these methods come via HTMLHyperlinkElementUtils\n\tURLUtils._inherit(htmlNameToImpl.a.prototype);\n\n\tdefine({\n\t tag: 'area',\n\t name: 'HTMLAreaElement',\n\t ctor: function HTMLAreaElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t alt: String,\n\t target: String,\n\t download: String,\n\t rel: String,\n\t media: String,\n\t href: URL,\n\t hreflang: String,\n\t type: String,\n\t shape: String,\n\t coords: String,\n\t ping: String,\n\t // XXX: also reflect relList\n\t referrerPolicy: REFERRER,\n\t // Obsolete\n\t noHref: Boolean,\n\t }\n\t});\n\t// Latest WhatWG spec says these methods come via HTMLHyperlinkElementUtils\n\tURLUtils._inherit(htmlNameToImpl.area.prototype);\n\n\tdefine({\n\t tag: 'br',\n\t name: 'HTMLBRElement',\n\t ctor: function HTMLBRElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // Obsolete\n\t clear: String\n\t },\n\t});\n\n\tdefine({\n\t tag: 'base',\n\t name: 'HTMLBaseElement',\n\t ctor: function HTMLBaseElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t \"target\": String\n\t }\n\t});\n\n\n\tdefine({\n\t tag: 'body',\n\t name: 'HTMLBodyElement',\n\t ctor: function HTMLBodyElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t // Certain event handler attributes on a <body> tag actually set\n\t // handlers for the window rather than just that element. Define\n\t // getters and setters for those here. Note that some of these override\n\t // properties on HTMLElement.prototype.\n\t // XXX: If I add support for <frameset>, these have to go there, too\n\t // XXX\n\t // When the Window object is implemented, these attribute will have\n\t // to work with the same-named attributes on the Window.\n\t events: [\n\t \"afterprint\", \"beforeprint\", \"beforeunload\", \"blur\", \"error\",\n\t \"focus\",\"hashchange\", \"load\", \"message\", \"offline\", \"online\",\n\t \"pagehide\", \"pageshow\",\"popstate\",\"resize\",\"scroll\",\"storage\",\"unload\",\n\t ],\n\t attributes: {\n\t // Obsolete\n\t text: { type: String, treatNullAsEmptyString: true },\n\t link: { type: String, treatNullAsEmptyString: true },\n\t vLink: { type: String, treatNullAsEmptyString: true },\n\t aLink: { type: String, treatNullAsEmptyString: true },\n\t bgColor: { type: String, treatNullAsEmptyString: true },\n\t background: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'button',\n\t name: 'HTMLButtonElement',\n\t ctor: function HTMLButtonElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: formAssociatedProps,\n\t attributes: {\n\t name: String,\n\t value: String,\n\t disabled: Boolean,\n\t autofocus: Boolean,\n\t type: { type:[\"submit\", \"reset\", \"button\", \"menu\"], missing: 'submit' },\n\t formTarget: String,\n\t formAction: URL,\n\t formNoValidate: Boolean,\n\t formMethod: { type: [\"get\", \"post\", \"dialog\"], invalid: 'get', missing: '' },\n\t formEnctype: { type: [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"], invalid: \"application/x-www-form-urlencoded\", missing: '' },\n\t }\n\t});\n\n\tdefine({\n\t tag: 'dl',\n\t name: 'HTMLDListElement',\n\t ctor: function HTMLDListElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // Obsolete\n\t compact: Boolean,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'data',\n\t name: 'HTMLDataElement',\n\t ctor: function HTMLDataElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t value: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'datalist',\n\t name: 'HTMLDataListElement',\n\t ctor: function HTMLDataListElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t }\n\t});\n\n\tdefine({\n\t tag: 'details',\n\t name: 'HTMLDetailsElement',\n\t ctor: function HTMLDetailsElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t \"open\": Boolean\n\t }\n\t});\n\n\tdefine({\n\t tag: 'div',\n\t name: 'HTMLDivElement',\n\t ctor: function HTMLDivElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // Obsolete\n\t align: String\n\t }\n\t});\n\n\tdefine({\n\t tag: 'embed',\n\t name: 'HTMLEmbedElement',\n\t ctor: function HTMLEmbedElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t src: URL,\n\t type: String,\n\t width: String,\n\t height: String,\n\t // Obsolete\n\t align: String,\n\t name: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'fieldset',\n\t name: 'HTMLFieldSetElement',\n\t ctor: function HTMLFieldSetElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: formAssociatedProps,\n\t attributes: {\n\t disabled: Boolean,\n\t name: String\n\t }\n\t});\n\n\tdefine({\n\t tag: 'form',\n\t name: 'HTMLFormElement',\n\t ctor: function HTMLFormElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t action: String,\n\t autocomplete: {type:['on', 'off'], missing: 'on'},\n\t name: String,\n\t acceptCharset: {name: \"accept-charset\"},\n\t target: String,\n\t noValidate: Boolean,\n\t method: { type: [\"get\", \"post\", \"dialog\"], invalid: 'get', missing: 'get' },\n\t // Both enctype and encoding reflect the enctype content attribute\n\t enctype: { type: [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"], invalid: \"application/x-www-form-urlencoded\", missing: \"application/x-www-form-urlencoded\" },\n\t encoding: {name: 'enctype', type: [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"], invalid: \"application/x-www-form-urlencoded\", missing: \"application/x-www-form-urlencoded\" },\n\t }\n\t});\n\n\tdefine({\n\t tag: 'hr',\n\t name: 'HTMLHRElement',\n\t ctor: function HTMLHRElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // Obsolete\n\t align: String,\n\t color: String,\n\t noShade: Boolean,\n\t size: String,\n\t width: String,\n\t },\n\t});\n\n\tdefine({\n\t tag: 'head',\n\t name: 'HTMLHeadElement',\n\t ctor: function HTMLHeadElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t }\n\t});\n\n\tdefine({\n\t tags: ['h1','h2','h3','h4','h5','h6'],\n\t name: 'HTMLHeadingElement',\n\t ctor: function HTMLHeadingElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // Obsolete\n\t align: String,\n\t },\n\t});\n\n\tdefine({\n\t tag: 'html',\n\t name: 'HTMLHtmlElement',\n\t ctor: function HTMLHtmlElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t xmlns: URL,\n\t // Obsolete\n\t version: String\n\t }\n\t});\n\n\tdefine({\n\t tag: 'iframe',\n\t name: 'HTMLIFrameElement',\n\t ctor: function HTMLIFrameElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t src: URL,\n\t srcdoc: String,\n\t name: String,\n\t width: String,\n\t height: String,\n\t // XXX: sandbox is a reflected settable token list\n\t seamless: Boolean,\n\t allow: Boolean,\n\t allowFullscreen: Boolean,\n\t allowUserMedia: Boolean,\n\t allowPaymentRequest: Boolean,\n\t referrerPolicy: REFERRER,\n\t loading: { type:['eager','lazy'], treatNullAsEmptyString: true },\n\t // Obsolete\n\t align: String,\n\t scrolling: String,\n\t frameBorder: String,\n\t longDesc: URL,\n\t marginHeight: { type: String, treatNullAsEmptyString: true },\n\t marginWidth: { type: String, treatNullAsEmptyString: true },\n\t }\n\t});\n\n\tdefine({\n\t tag: 'img',\n\t name: 'HTMLImageElement',\n\t ctor: function HTMLImageElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t alt: String,\n\t src: URL,\n\t srcset: String,\n\t crossOrigin: CORS,\n\t useMap: String,\n\t isMap: Boolean,\n\t sizes: String,\n\t height: { type: \"unsigned long\", default: 0 },\n\t width: { type: \"unsigned long\", default: 0 },\n\t referrerPolicy: REFERRER,\n\t loading: { type:['eager','lazy'], missing: '' },\n\t // Obsolete:\n\t name: String,\n\t lowsrc: URL,\n\t align: String,\n\t hspace: { type: \"unsigned long\", default: 0 },\n\t vspace: { type: \"unsigned long\", default: 0 },\n\t longDesc: URL,\n\t border: { type: String, treatNullAsEmptyString: true },\n\t }\n\t});\n\n\tdefine({\n\t tag: 'input',\n\t name: 'HTMLInputElement',\n\t ctor: function HTMLInputElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t form: formAssociatedProps.form,\n\t _post_click_activation_steps: { value: function(e) {\n\t if (this.type === 'checkbox') {\n\t this.checked = !this.checked;\n\t }\n\t else if (this.type === 'radio') {\n\t var group = this.form.getElementsByName(this.name);\n\t for (var i=group.length-1; i >= 0; i--) {\n\t var el = group[i];\n\t el.checked = (el === this);\n\t }\n\t }\n\t }},\n\t },\n\t attributes: {\n\t name: String,\n\t disabled: Boolean,\n\t autofocus: Boolean,\n\t accept: String,\n\t alt: String,\n\t max: String,\n\t min: String,\n\t pattern: String,\n\t placeholder: String,\n\t step: String,\n\t dirName: String,\n\t defaultValue: {name: 'value'},\n\t multiple: Boolean,\n\t required: Boolean,\n\t readOnly: Boolean,\n\t checked: Boolean,\n\t value: String,\n\t src: URL,\n\t defaultChecked: {name: 'checked', type: Boolean},\n\t size: {type: 'unsigned long', default: 20, min: 1, setmin: 1},\n\t width: {type: 'unsigned long', min: 0, setmin: 0, default: 0},\n\t height: {type: 'unsigned long', min: 0, setmin: 0, default: 0},\n\t minLength: {type: 'unsigned long', min: 0, setmin: 0, default: -1},\n\t maxLength: {type: 'unsigned long', min: 0, setmin: 0, default: -1},\n\t autocomplete: String, // It's complicated\n\t type: { type:\n\t [\"text\", \"hidden\", \"search\", \"tel\", \"url\", \"email\", \"password\",\n\t \"datetime\", \"date\", \"month\", \"week\", \"time\", \"datetime-local\",\n\t \"number\", \"range\", \"color\", \"checkbox\", \"radio\", \"file\", \"submit\",\n\t \"image\", \"reset\", \"button\"],\n\t missing: 'text' },\n\t formTarget: String,\n\t formNoValidate: Boolean,\n\t formMethod: { type: [\"get\", \"post\"], invalid: 'get', missing: '' },\n\t formEnctype: { type: [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"], invalid: \"application/x-www-form-urlencoded\", missing: '' },\n\t inputMode: { type: [ \"verbatim\", \"latin\", \"latin-name\", \"latin-prose\", \"full-width-latin\", \"kana\", \"kana-name\", \"katakana\", \"numeric\", \"tel\", \"email\", \"url\" ], missing: '' },\n\t // Obsolete\n\t align: String,\n\t useMap: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'keygen',\n\t name: 'HTMLKeygenElement',\n\t ctor: function HTMLKeygenElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: formAssociatedProps,\n\t attributes: {\n\t name: String,\n\t disabled: Boolean,\n\t autofocus: Boolean,\n\t challenge: String,\n\t keytype: { type:[\"rsa\"], missing: '' },\n\t }\n\t});\n\n\tdefine({\n\t tag: 'li',\n\t name: 'HTMLLIElement',\n\t ctor: function HTMLLIElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t value: {type: \"long\", default: 0},\n\t // Obsolete\n\t type: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'label',\n\t name: 'HTMLLabelElement',\n\t ctor: function HTMLLabelElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: formAssociatedProps,\n\t attributes: {\n\t htmlFor: {name: 'for', type: String}\n\t }\n\t});\n\n\tdefine({\n\t tag: 'legend',\n\t name: 'HTMLLegendElement',\n\t ctor: function HTMLLegendElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // Obsolete\n\t align: String\n\t },\n\t});\n\n\tdefine({\n\t tag: 'link',\n\t name: 'HTMLLinkElement',\n\t ctor: function HTMLLinkElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // XXX Reflect DOMSettableTokenList sizes also DOMTokenList relList\n\t href: URL,\n\t rel: String,\n\t media: String,\n\t hreflang: String,\n\t type: String,\n\t crossOrigin: CORS,\n\t nonce: String,\n\t integrity: String,\n\t referrerPolicy: REFERRER,\n\t imageSizes: String,\n\t imageSrcset: String,\n\t // Obsolete\n\t charset: String,\n\t rev: String,\n\t target: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'map',\n\t name: 'HTMLMapElement',\n\t ctor: function HTMLMapElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t name: String\n\t }\n\t});\n\n\tdefine({\n\t tag: 'menu',\n\t name: 'HTMLMenuElement',\n\t ctor: function HTMLMenuElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // XXX: not quite right, default should be popup if parent element is\n\t // popup.\n\t type: { type: [ 'context', 'popup', 'toolbar' ], missing: 'toolbar' },\n\t label: String,\n\t // Obsolete\n\t compact: Boolean,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'meta',\n\t name: 'HTMLMetaElement',\n\t ctor: function HTMLMetaElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t name: String,\n\t content: String,\n\t httpEquiv: {name: 'http-equiv', type: String},\n\t // Obsolete\n\t scheme: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'meter',\n\t name: 'HTMLMeterElement',\n\t ctor: function HTMLMeterElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: formAssociatedProps\n\t});\n\n\tdefine({\n\t tags: ['ins', 'del'],\n\t name: 'HTMLModElement',\n\t ctor: function HTMLModElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t cite: URL,\n\t dateTime: String\n\t }\n\t});\n\n\tdefine({\n\t tag: 'ol',\n\t name: 'HTMLOListElement',\n\t ctor: function HTMLOListElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t // Utility function (see the start attribute default value). Returns\n\t // the number of <li> children of this element\n\t _numitems: { get: function() {\n\t var items = 0;\n\t this.childNodes.forEach(function(n) {\n\t if (n.nodeType === Node.ELEMENT_NODE && n.tagName === \"LI\")\n\t items++;\n\t });\n\t return items;\n\t }}\n\t },\n\t attributes: {\n\t type: String,\n\t reversed: Boolean,\n\t start: {\n\t type: \"long\",\n\t default: function() {\n\t // The default value of the start attribute is 1 unless the list is\n\t // reversed. Then it is the # of li children\n\t if (this.reversed)\n\t return this._numitems;\n\t else\n\t return 1;\n\t }\n\t },\n\t // Obsolete\n\t compact: Boolean,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'object',\n\t name: 'HTMLObjectElement',\n\t ctor: function HTMLObjectElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: formAssociatedProps,\n\t attributes: {\n\t data: URL,\n\t type: String,\n\t name: String,\n\t useMap: String,\n\t typeMustMatch: Boolean,\n\t width: String,\n\t height: String,\n\t // Obsolete\n\t align: String,\n\t archive: String,\n\t code: String,\n\t declare: Boolean,\n\t hspace: { type: \"unsigned long\", default: 0 },\n\t standby: String,\n\t vspace: { type: \"unsigned long\", default: 0 },\n\t codeBase: URL,\n\t codeType: String,\n\t border: { type: String, treatNullAsEmptyString: true },\n\t }\n\t});\n\n\tdefine({\n\t tag: 'optgroup',\n\t name: 'HTMLOptGroupElement',\n\t ctor: function HTMLOptGroupElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t disabled: Boolean,\n\t label: String\n\t }\n\t});\n\n\tdefine({\n\t tag: 'option',\n\t name: 'HTMLOptionElement',\n\t ctor: function HTMLOptionElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t form: { get: function() {\n\t var p = this.parentNode;\n\t while (p && p.nodeType === Node.ELEMENT_NODE) {\n\t if (p.localName === 'select') return p.form;\n\t p = p.parentNode;\n\t }\n\t }},\n\t value: {\n\t get: function() { return this._getattr('value') || this.text; },\n\t set: function(v) { this._setattr('value', v); },\n\t },\n\t text: {\n\t get: function() {\n\t // Strip and collapse whitespace\n\t return this.textContent.replace(/[ \\t\\n\\f\\r]+/g, ' ').trim();\n\t },\n\t set: function(v) { this.textContent = v; },\n\t },\n\t // missing: index\n\t },\n\t attributes: {\n\t disabled: Boolean,\n\t defaultSelected: {name: 'selected', type: Boolean},\n\t label: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'output',\n\t name: 'HTMLOutputElement',\n\t ctor: function HTMLOutputElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: formAssociatedProps,\n\t attributes: {\n\t // XXX Reflect for/htmlFor as a settable token list\n\t name: String\n\t }\n\t});\n\n\tdefine({\n\t tag: 'p',\n\t name: 'HTMLParagraphElement',\n\t ctor: function HTMLParagraphElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // Obsolete\n\t align: String\n\t }\n\t});\n\n\tdefine({\n\t tag: 'param',\n\t name: 'HTMLParamElement',\n\t ctor: function HTMLParamElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t name: String,\n\t value: String,\n\t // Obsolete\n\t type: String,\n\t valueType: String,\n\t }\n\t});\n\n\tdefine({\n\t tags: ['pre',/*legacy elements:*/'listing','xmp'],\n\t name: 'HTMLPreElement',\n\t ctor: function HTMLPreElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // Obsolete\n\t width: { type: \"long\", default: 0 },\n\t }\n\t});\n\n\tdefine({\n\t tag: 'progress',\n\t name: 'HTMLProgressElement',\n\t ctor: function HTMLProgressElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: formAssociatedProps,\n\t attributes: {\n\t max: {type: Number, float: true, default: 1.0, min: 0}\n\t }\n\t});\n\n\tdefine({\n\t tags: ['q', 'blockquote'],\n\t name: 'HTMLQuoteElement',\n\t ctor: function HTMLQuoteElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t cite: URL\n\t }\n\t});\n\n\tdefine({\n\t tag: 'script',\n\t name: 'HTMLScriptElement',\n\t ctor: function HTMLScriptElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t text: {\n\t get: function() {\n\t var s = \"\";\n\t for(var i = 0, n = this.childNodes.length; i < n; i++) {\n\t var child = this.childNodes[i];\n\t if (child.nodeType === Node.TEXT_NODE)\n\t s += child._data;\n\t }\n\t return s;\n\t },\n\t set: function(value) {\n\t this.removeChildren();\n\t if (value !== null && value !== \"\") {\n\t this.appendChild(this.ownerDocument.createTextNode(value));\n\t }\n\t }\n\t }\n\t },\n\t attributes: {\n\t src: URL,\n\t type: String,\n\t charset: String,\n\t referrerPolicy: REFERRER,\n\t defer: Boolean,\n\t async: Boolean,\n\t nomodule: Boolean,\n\t crossOrigin: CORS,\n\t nonce: String,\n\t integrity: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'select',\n\t name: 'HTMLSelectElement',\n\t ctor: function HTMLSelectElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t form: formAssociatedProps.form,\n\t options: { get: function() {\n\t return this.getElementsByTagName('option');\n\t }}\n\t },\n\t attributes: {\n\t autocomplete: String, // It's complicated\n\t name: String,\n\t disabled: Boolean,\n\t autofocus: Boolean,\n\t multiple: Boolean,\n\t required: Boolean,\n\t size: {type: \"unsigned long\", default: 0}\n\t }\n\t});\n\n\tdefine({\n\t tag: 'span',\n\t name: 'HTMLSpanElement',\n\t ctor: function HTMLSpanElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t }\n\t});\n\n\tdefine({\n\t tag: 'style',\n\t name: 'HTMLStyleElement',\n\t ctor: function HTMLStyleElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t media: String,\n\t type: String,\n\t scoped: Boolean\n\t }\n\t});\n\n\tdefine({\n\t tag: 'caption',\n\t name: 'HTMLTableCaptionElement',\n\t ctor: function HTMLTableCaptionElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t // Obsolete\n\t align: String,\n\t }\n\t});\n\n\n\tdefine({\n\t name: 'HTMLTableCellElement',\n\t ctor: function HTMLTableCellElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t colSpan: {type: \"unsigned long\", default: 1},\n\t rowSpan: {type: \"unsigned long\", default: 1},\n\t //XXX Also reflect settable token list headers\n\t scope: { type: ['row','col','rowgroup','colgroup'], missing: '' },\n\t abbr: String,\n\t // Obsolete\n\t align: String,\n\t axis: String,\n\t height: String,\n\t width: String,\n\t ch: { name: 'char', type: String },\n\t chOff: { name: 'charoff', type: String },\n\t noWrap: Boolean,\n\t vAlign: String,\n\t bgColor: { type: String, treatNullAsEmptyString: true },\n\t }\n\t});\n\n\tdefine({\n\t tags: ['col', 'colgroup'],\n\t name: 'HTMLTableColElement',\n\t ctor: function HTMLTableColElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t span: {type: 'limited unsigned long with fallback', default: 1, min: 1},\n\t // Obsolete\n\t align: String,\n\t ch: { name: 'char', type: String },\n\t chOff: { name: 'charoff', type: String },\n\t vAlign: String,\n\t width: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'table',\n\t name: 'HTMLTableElement',\n\t ctor: function HTMLTableElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t rows: { get: function() {\n\t return this.getElementsByTagName('tr');\n\t }}\n\t },\n\t attributes: {\n\t // Obsolete\n\t align: String,\n\t border: String,\n\t frame: String,\n\t rules: String,\n\t summary: String,\n\t width: String,\n\t bgColor: { type: String, treatNullAsEmptyString: true },\n\t cellPadding: { type: String, treatNullAsEmptyString: true },\n\t cellSpacing: { type: String, treatNullAsEmptyString: true },\n\t }\n\t});\n\n\tdefine({\n\t tag: 'template',\n\t name: 'HTMLTemplateElement',\n\t ctor: function HTMLTemplateElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t this._contentFragment = doc._templateDoc.createDocumentFragment();\n\t },\n\t props: {\n\t content: { get: function() { return this._contentFragment; } },\n\t serialize: { value: function() { return this.content.serialize(); } }\n\t }\n\t});\n\n\tdefine({\n\t tag: 'tr',\n\t name: 'HTMLTableRowElement',\n\t ctor: function HTMLTableRowElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t cells: { get: function() {\n\t return this.querySelectorAll('td,th');\n\t }}\n\t },\n\t attributes: {\n\t // Obsolete\n\t align: String,\n\t ch: { name: 'char', type: String },\n\t chOff: { name: 'charoff', type: String },\n\t vAlign: String,\n\t bgColor: { type: String, treatNullAsEmptyString: true },\n\t },\n\t});\n\n\tdefine({\n\t tags: ['thead', 'tfoot', 'tbody'],\n\t name: 'HTMLTableSectionElement',\n\t ctor: function HTMLTableSectionElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t rows: { get: function() {\n\t return this.getElementsByTagName('tr');\n\t }}\n\t },\n\t attributes: {\n\t // Obsolete\n\t align: String,\n\t ch: { name: 'char', type: String },\n\t chOff: { name: 'charoff', type: String },\n\t vAlign: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'textarea',\n\t name: 'HTMLTextAreaElement',\n\t ctor: function HTMLTextAreaElement(doc, localName, prefix) {\n\t HTMLFormElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t form: formAssociatedProps.form,\n\t type: { get: function() { return 'textarea'; } },\n\t defaultValue: {\n\t get: function() { return this.textContent; },\n\t set: function(v) { this.textContent = v; },\n\t },\n\t value: {\n\t get: function() { return this.defaultValue; /* never dirty */ },\n\t set: function(v) {\n\t // This isn't completely correct: according to the spec, this\n\t // should \"dirty\" the API value, and result in\n\t // `this.value !== this.defaultValue`. But for most of what\n\t // folks want to do, this implementation should be fine:\n\t this.defaultValue = v;\n\t },\n\t },\n\t textLength: { get: function() { return this.value.length; } },\n\t },\n\t attributes: {\n\t autocomplete: String, // It's complicated\n\t name: String,\n\t disabled: Boolean,\n\t autofocus: Boolean,\n\t placeholder: String,\n\t wrap: String,\n\t dirName: String,\n\t required: Boolean,\n\t readOnly: Boolean,\n\t rows: {type: 'limited unsigned long with fallback', default: 2 },\n\t cols: {type: 'limited unsigned long with fallback', default: 20 },\n\t maxLength: {type: 'unsigned long', min: 0, setmin: 0, default: -1},\n\t minLength: {type: 'unsigned long', min: 0, setmin: 0, default: -1},\n\t inputMode: { type: [ \"verbatim\", \"latin\", \"latin-name\", \"latin-prose\", \"full-width-latin\", \"kana\", \"kana-name\", \"katakana\", \"numeric\", \"tel\", \"email\", \"url\" ], missing: '' },\n\t }\n\t});\n\n\tdefine({\n\t tag: 'time',\n\t name: 'HTMLTimeElement',\n\t ctor: function HTMLTimeElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t dateTime: String,\n\t pubDate: Boolean\n\t }\n\t});\n\n\tdefine({\n\t tag: 'title',\n\t name: 'HTMLTitleElement',\n\t ctor: function HTMLTitleElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t text: { get: function() {\n\t return this.textContent;\n\t }}\n\t }\n\t});\n\n\tdefine({\n\t tag: 'ul',\n\t name: 'HTMLUListElement',\n\t ctor: function HTMLUListElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t type: String,\n\t // Obsolete\n\t compact: Boolean,\n\t }\n\t});\n\n\tdefine({\n\t name: 'HTMLMediaElement',\n\t ctor: function HTMLMediaElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t src: URL,\n\t crossOrigin: CORS,\n\t preload: { type:[\"metadata\", \"none\", \"auto\", {value: \"\", alias: \"auto\"}], missing: 'auto' },\n\t loop: Boolean,\n\t autoplay: Boolean,\n\t mediaGroup: String,\n\t controls: Boolean,\n\t defaultMuted: {name: \"muted\", type: Boolean}\n\t }\n\t});\n\n\tdefine({\n\t name: 'HTMLAudioElement',\n\t tag: 'audio',\n\t superclass: htmlElements.HTMLMediaElement,\n\t ctor: function HTMLAudioElement(doc, localName, prefix) {\n\t htmlElements.HTMLMediaElement.call(this, doc, localName, prefix);\n\t }\n\t});\n\n\tdefine({\n\t name: 'HTMLVideoElement',\n\t tag: 'video',\n\t superclass: htmlElements.HTMLMediaElement,\n\t ctor: function HTMLVideoElement(doc, localName, prefix) {\n\t htmlElements.HTMLMediaElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t poster: URL,\n\t width: {type: \"unsigned long\", min: 0, default: 0 },\n\t height: {type: \"unsigned long\", min: 0, default: 0 }\n\t }\n\t});\n\n\tdefine({\n\t tag: 'td',\n\t name: 'HTMLTableDataCellElement',\n\t superclass: htmlElements.HTMLTableCellElement,\n\t ctor: function HTMLTableDataCellElement(doc, localName, prefix) {\n\t htmlElements.HTMLTableCellElement.call(this, doc, localName, prefix);\n\t }\n\t});\n\n\tdefine({\n\t tag: 'th',\n\t name: 'HTMLTableHeaderCellElement',\n\t superclass: htmlElements.HTMLTableCellElement,\n\t ctor: function HTMLTableHeaderCellElement(doc, localName, prefix) {\n\t htmlElements.HTMLTableCellElement.call(this, doc, localName, prefix);\n\t },\n\t});\n\n\tdefine({\n\t tag: 'frameset',\n\t name: 'HTMLFrameSetElement',\n\t ctor: function HTMLFrameSetElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t }\n\t});\n\n\tdefine({\n\t tag: 'frame',\n\t name: 'HTMLFrameElement',\n\t ctor: function HTMLFrameElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t }\n\t});\n\n\tdefine({\n\t tag: 'canvas',\n\t name: 'HTMLCanvasElement',\n\t ctor: function HTMLCanvasElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t getContext: { value: utils.nyi },\n\t probablySupportsContext: { value: utils.nyi },\n\t setContext: { value: utils.nyi },\n\t transferControlToProxy: { value: utils.nyi },\n\t toDataURL: { value: utils.nyi },\n\t toBlob: { value: utils.nyi }\n\t },\n\t attributes: {\n\t width: { type: \"unsigned long\", default: 300},\n\t height: { type: \"unsigned long\", default: 150}\n\t }\n\t});\n\n\tdefine({\n\t tag: 'dialog',\n\t name: 'HTMLDialogElement',\n\t ctor: function HTMLDialogElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t show: { value: utils.nyi },\n\t showModal: { value: utils.nyi },\n\t close: { value: utils.nyi }\n\t },\n\t attributes: {\n\t open: Boolean,\n\t returnValue: String\n\t }\n\t});\n\n\tdefine({\n\t tag: 'menuitem',\n\t name: 'HTMLMenuItemElement',\n\t ctor: function HTMLMenuItemElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t props: {\n\t // The menuitem's label\n\t _label: {\n\t get: function() {\n\t var val = this._getattr('label');\n\t if (val !== null && val !== '') { return val; }\n\t val = this.textContent;\n\t // Strip and collapse whitespace\n\t return val.replace(/[ \\t\\n\\f\\r]+/g, ' ').trim();\n\t }\n\t },\n\t // The menuitem label IDL attribute\n\t label: {\n\t get: function() {\n\t var val = this._getattr('label');\n\t if (val !== null) { return val; }\n\t return this._label;\n\t },\n\t set: function(v) {\n\t this._setattr('label', v);\n\t },\n\t }\n\t },\n\t attributes: {\n\t type: { type: [\"command\",\"checkbox\",\"radio\"], missing: 'command' },\n\t icon: URL,\n\t disabled: Boolean,\n\t checked: Boolean,\n\t radiogroup: String,\n\t default: Boolean\n\t }\n\t});\n\n\tdefine({\n\t tag: 'source',\n\t name: 'HTMLSourceElement',\n\t ctor: function HTMLSourceElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t srcset: String,\n\t sizes: String,\n\t media: String,\n\t src: URL,\n\t type: String,\n\t width: String,\n\t height: String,\n\t }\n\t});\n\n\tdefine({\n\t tag: 'track',\n\t name: 'HTMLTrackElement',\n\t ctor: function HTMLTrackElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t src: URL,\n\t srclang: String,\n\t label: String,\n\t default: Boolean,\n\t kind: { type: [\"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\"], missing: 'subtitles', invalid: 'metadata' },\n\t },\n\t props: {\n\t NONE: { get: function() { return 0; } },\n\t LOADING: { get: function() { return 1; } },\n\t LOADED: { get: function() { return 2; } },\n\t ERROR: { get: function() { return 3; } },\n\t readyState: { get: utils.nyi },\n\t track: { get: utils.nyi }\n\t }\n\t});\n\n\tdefine({\n\t // obsolete\n\t tag: 'font',\n\t name: 'HTMLFontElement',\n\t ctor: function HTMLFontElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t color: { type: String, treatNullAsEmptyString: true },\n\t face: { type: String },\n\t size: { type: String },\n\t },\n\t});\n\n\tdefine({\n\t // obsolete\n\t tag: 'dir',\n\t name: 'HTMLDirectoryElement',\n\t ctor: function HTMLDirectoryElement(doc, localName, prefix) {\n\t HTMLElement.call(this, doc, localName, prefix);\n\t },\n\t attributes: {\n\t compact: Boolean,\n\t },\n\t});\n\n\tdefine({\n\t tags: [\n\t \"abbr\", \"address\", \"article\", \"aside\", \"b\", \"bdi\", \"bdo\", \"cite\", \"content\", \"code\",\n\t \"dd\", \"dfn\", \"dt\", \"em\", \"figcaption\", \"figure\", \"footer\", \"header\", \"hgroup\", \"i\", \"kbd\",\n\t \"main\", \"mark\", \"nav\", \"noscript\", \"rb\", \"rp\", \"rt\", \"rtc\",\n\t \"ruby\", \"s\", \"samp\", \"section\", \"small\", \"strong\", \"sub\", \"summary\", \"sup\", \"u\", \"var\", \"wbr\",\n\t // Legacy elements\n\t \"acronym\", \"basefont\", \"big\", \"center\", \"nobr\", \"noembed\", \"noframes\",\n\t \"plaintext\", \"strike\", \"tt\"\n\t ]\n\t});\n\treturn htmlelts;\n}\n\nvar svg = {};\n\nvar hasRequiredSvg;\n\nfunction requireSvg () {\n\tif (hasRequiredSvg) return svg;\n\thasRequiredSvg = 1;\n\t(function (exports) {\n\t\tvar Element = requireElement();\n\t\tvar defineElement = requireDefineElement();\n\t\tvar utils = requireUtils();\n\t\tvar CSSStyleDeclaration = requireCSSStyleDeclaration();\n\n\t\tvar svgElements = exports.elements = {};\n\t\tvar svgNameToImpl = Object.create(null);\n\n\t\texports.createElement = function(doc, localName, prefix) {\n\t\t var impl = svgNameToImpl[localName] || SVGElement;\n\t\t return new impl(doc, localName, prefix);\n\t\t};\n\n\t\tfunction define(spec) {\n\t\t return defineElement(spec, SVGElement, svgElements, svgNameToImpl);\n\t\t}\n\n\t\tvar SVGElement = define({\n\t\t superclass: Element,\n\t\t name: 'SVGElement',\n\t\t ctor: function SVGElement(doc, localName, prefix) {\n\t\t Element.call(this, doc, localName, utils.NAMESPACE.SVG, prefix);\n\t\t },\n\t\t props: {\n\t\t style: { get: function() {\n\t\t if (!this._style)\n\t\t this._style = new CSSStyleDeclaration(this);\n\t\t return this._style;\n\t\t }}\n\t\t }\n\t\t});\n\n\t\tdefine({\n\t\t name: 'SVGSVGElement',\n\t\t ctor: function SVGSVGElement(doc, localName, prefix) {\n\t\t SVGElement.call(this, doc, localName, prefix);\n\t\t },\n\t\t tag: 'svg',\n\t\t props: {\n\t\t createSVGRect: { value: function () {\n\t\t return exports.createElement(this.ownerDocument, 'rect', null);\n\t\t } }\n\t\t }\n\t\t});\n\n\t\tdefine({\n\t\t tags: [\n\t\t 'a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform',\n\t\t 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColorMatrix',\n\t\t 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight',\n\t\t 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode',\n\t\t 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter',\n\t\t 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignObject', 'g',\n\t\t 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'linearGradient', 'marker', 'mask', 'metadata', 'missing-glyph',\n\t\t 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style',\n\t\t 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'\n\t\t ]\n\t\t}); \n\t} (svg));\n\treturn svg;\n}\n\nvar MutationConstants;\nvar hasRequiredMutationConstants;\n\nfunction requireMutationConstants () {\n\tif (hasRequiredMutationConstants) return MutationConstants;\n\thasRequiredMutationConstants = 1;\n\tMutationConstants = {\n\t VALUE: 1, // The value of a Text, Comment or PI node changed\n\t ATTR: 2, // A new attribute was added or an attribute value and/or prefix changed\n\t REMOVE_ATTR: 3, // An attribute was removed\n\t REMOVE: 4, // A node was removed\n\t MOVE: 5, // A node was moved\n\t INSERT: 6 // A node (or a subtree of nodes) was inserted\n\t};\n\treturn MutationConstants;\n}\n\nvar Document_1;\nvar hasRequiredDocument;\n\nfunction requireDocument () {\n\tif (hasRequiredDocument) return Document_1;\n\thasRequiredDocument = 1;\n\tDocument_1 = Document;\n\n\tvar Node = requireNode();\n\tvar NodeList = requireNodeList();\n\tvar ContainerNode = requireContainerNode();\n\tvar Element = requireElement();\n\tvar Text = requireText();\n\tvar Comment = requireComment();\n\tvar Event = requireEvent();\n\tvar DocumentFragment = requireDocumentFragment();\n\tvar ProcessingInstruction = requireProcessingInstruction();\n\tvar DOMImplementation = requireDOMImplementation();\n\tvar TreeWalker = requireTreeWalker();\n\tvar NodeIterator = requireNodeIterator();\n\tvar NodeFilter = requireNodeFilter();\n\tvar URL = requireURL();\n\tvar select = requireSelect();\n\tvar events = requireEvents();\n\tvar xml = requireXmlnames();\n\tvar html = requireHtmlelts();\n\tvar svg = requireSvg();\n\tvar utils = requireUtils();\n\tvar MUTATE = requireMutationConstants();\n\tvar NAMESPACE = utils.NAMESPACE;\n\tvar isApiWritable = requireConfig().isApiWritable;\n\n\tfunction Document(isHTML, address) {\n\t ContainerNode.call(this);\n\t this.nodeType = Node.DOCUMENT_NODE;\n\t this.isHTML = isHTML;\n\t this._address = address || 'about:blank';\n\t this.readyState = 'loading';\n\t this.implementation = new DOMImplementation(this);\n\n\t // DOMCore says that documents are always associated with themselves\n\t this.ownerDocument = null; // ... but W3C tests expect null\n\t this._contentType = isHTML ? 'text/html' : 'application/xml';\n\n\t // These will be initialized by our custom versions of\n\t // appendChild and insertBefore that override the inherited\n\t // Node methods.\n\t // XXX: override those methods!\n\t this.doctype = null;\n\t this.documentElement = null;\n\n\t // \"Associated inert template document\"\n\t this._templateDocCache = null;\n\t // List of active NodeIterators, see NodeIterator#_preremove()\n\t this._nodeIterators = null;\n\n\t // Documents are always rooted, by definition\n\t this._nid = 1;\n\t this._nextnid = 2; // For numbering children of the document\n\t this._nodes = [null, this]; // nid to node map\n\n\t // This maintains the mapping from element ids to element nodes.\n\t // We may need to update this mapping every time a node is rooted\n\t // or uprooted, and any time an attribute is added, removed or changed\n\t // on a rooted element.\n\t this.byId = Object.create(null);\n\n\t // This property holds a monotonically increasing value akin to\n\t // a timestamp used to record the last modification time of nodes\n\t // and their subtrees. See the lastModTime attribute and modify()\n\t // method of the Node class. And see FilteredElementList for an example\n\t // of the use of lastModTime\n\t this.modclock = 0;\n\t}\n\n\t// Map from lowercase event category names (used as arguments to\n\t// createEvent()) to the property name in the impl object of the\n\t// event constructor.\n\tvar supportedEvents = {\n\t event: 'Event',\n\t customevent: 'CustomEvent',\n\t uievent: 'UIEvent',\n\t mouseevent: 'MouseEvent'\n\t};\n\n\t// Certain arguments to document.createEvent() must be treated specially\n\tvar replacementEvent = {\n\t events: 'event',\n\t htmlevents: 'event',\n\t mouseevents: 'mouseevent',\n\t mutationevents: 'mutationevent',\n\t uievents: 'uievent'\n\t};\n\n\tvar mirrorAttr = function(f, name, defaultValue) {\n\t return {\n\t get: function() {\n\t var o = f.call(this);\n\t if (o) { return o[name]; }\n\t return defaultValue;\n\t },\n\t set: function(value) {\n\t var o = f.call(this);\n\t if (o) { o[name] = value; }\n\t },\n\t };\n\t};\n\n\t/** @spec https://dom.spec.whatwg.org/#validate-and-extract */\n\tfunction validateAndExtract(namespace, qualifiedName) {\n\t var prefix, localName, pos;\n\t if (namespace==='') { namespace = null; }\n\t // See https://github.com/whatwg/dom/issues/671\n\t // and https://github.com/whatwg/dom/issues/319\n\t if (!xml.isValidQName(qualifiedName)) {\n\t utils.InvalidCharacterError();\n\t }\n\t prefix = null;\n\t localName = qualifiedName;\n\n\t pos = qualifiedName.indexOf(':');\n\t if (pos >= 0) {\n\t prefix = qualifiedName.substring(0, pos);\n\t localName = qualifiedName.substring(pos+1);\n\t }\n\t if (prefix !== null && namespace === null) {\n\t utils.NamespaceError();\n\t }\n\t if (prefix === 'xml' && namespace !== NAMESPACE.XML) {\n\t utils.NamespaceError();\n\t }\n\t if ((prefix === 'xmlns' || qualifiedName === 'xmlns') &&\n\t namespace !== NAMESPACE.XMLNS) {\n\t utils.NamespaceError();\n\t }\n\t if (namespace === NAMESPACE.XMLNS && !(prefix==='xmlns' || qualifiedName==='xmlns')) {\n\t utils.NamespaceError();\n\t }\n\t return { namespace: namespace, prefix: prefix, localName: localName };\n\t}\n\n\tDocument.prototype = Object.create(ContainerNode.prototype, {\n\t // This method allows dom.js to communicate with a renderer\n\t // that displays the document in some way\n\t // XXX: I should probably move this to the window object\n\t _setMutationHandler: { value: function(handler) {\n\t this.mutationHandler = handler;\n\t }},\n\n\t // This method allows dom.js to receive event notifications\n\t // from the renderer.\n\t // XXX: I should probably move this to the window object\n\t _dispatchRendererEvent: { value: function(targetNid, type, details) {\n\t var target = this._nodes[targetNid];\n\t if (!target) return;\n\t target._dispatchEvent(new Event(type, details), true);\n\t }},\n\n\t nodeName: { value: '#document'},\n\t nodeValue: {\n\t get: function() {\n\t return null;\n\t },\n\t set: function() {}\n\t },\n\n\t // XXX: DOMCore may remove documentURI, so it is NYI for now\n\t documentURI: { get: function() { return this._address; }, set: utils.nyi },\n\t compatMode: { get: function() {\n\t // The _quirks property is set by the HTML parser\n\t return this._quirks ? 'BackCompat' : 'CSS1Compat';\n\t }},\n\n\t createTextNode: { value: function(data) {\n\t return new Text(this, String(data));\n\t }},\n\t createComment: { value: function(data) {\n\t return new Comment(this, data);\n\t }},\n\t createDocumentFragment: { value: function() {\n\t return new DocumentFragment(this);\n\t }},\n\t createProcessingInstruction: { value: function(target, data) {\n\t if (!xml.isValidName(target) || data.indexOf('?>') !== -1)\n\t utils.InvalidCharacterError();\n\t return new ProcessingInstruction(this, target, data);\n\t }},\n\n\t createAttribute: { value: function(localName) {\n\t localName = String(localName);\n\t if (!xml.isValidName(localName)) utils.InvalidCharacterError();\n\t if (this.isHTML) {\n\t localName = utils.toASCIILowerCase(localName);\n\t }\n\t return new Element._Attr(null, localName, null, null, '');\n\t }},\n\t createAttributeNS: { value: function(namespace, qualifiedName) {\n\t // Convert parameter types according to WebIDL\n\t namespace =\n\t (namespace === null || namespace === undefined || namespace === '') ? null :\n\t String(namespace);\n\t qualifiedName = String(qualifiedName);\n\t var ve = validateAndExtract(namespace, qualifiedName);\n\t return new Element._Attr(null, ve.localName, ve.prefix, ve.namespace, '');\n\t }},\n\n\t createElement: { value: function(localName) {\n\t localName = String(localName);\n\t if (!xml.isValidName(localName)) utils.InvalidCharacterError();\n\t // Per spec, namespace should be HTML namespace if \"context object is\n\t // an HTML document or context object's content type is\n\t // \"application/xhtml+xml\", and null otherwise.\n\t if (this.isHTML) {\n\t if (/[A-Z]/.test(localName))\n\t localName = utils.toASCIILowerCase(localName);\n\t return html.createElement(this, localName, null);\n\t } else if (this.contentType === 'application/xhtml+xml') {\n\t return html.createElement(this, localName, null);\n\t } else {\n\t return new Element(this, localName, null, null);\n\t }\n\t }, writable: isApiWritable },\n\n\t createElementNS: { value: function(namespace, qualifiedName) {\n\t // Convert parameter types according to WebIDL\n\t namespace =\n\t (namespace === null || namespace === undefined || namespace === '') ? null :\n\t String(namespace);\n\t qualifiedName = String(qualifiedName);\n\t var ve = validateAndExtract(namespace, qualifiedName);\n\t return this._createElementNS(ve.localName, ve.namespace, ve.prefix);\n\t }, writable: isApiWritable },\n\n\t // This is used directly by HTML parser, which allows it to create\n\t // elements with localNames containing ':' and non-default namespaces\n\t _createElementNS: { value: function(localName, namespace, prefix) {\n\t if (namespace === NAMESPACE.HTML) {\n\t return html.createElement(this, localName, prefix);\n\t }\n\t else if (namespace === NAMESPACE.SVG) {\n\t return svg.createElement(this, localName, prefix);\n\t }\n\n\t return new Element(this, localName, namespace, prefix);\n\t }},\n\n\t createEvent: { value: function createEvent(interfaceName) {\n\t interfaceName = interfaceName.toLowerCase();\n\t var name = replacementEvent[interfaceName] || interfaceName;\n\t var constructor = events[supportedEvents[name]];\n\n\t if (constructor) {\n\t var e = new constructor();\n\t e._initialized = false;\n\t return e;\n\t }\n\t else {\n\t utils.NotSupportedError();\n\t }\n\t }},\n\n\t // See: http://www.w3.org/TR/dom/#dom-document-createtreewalker\n\t createTreeWalker: {value: function (root, whatToShow, filter) {\n\t if (!root) { throw new TypeError(\"root argument is required\"); }\n\t if (!(root instanceof Node)) { throw new TypeError(\"root not a node\"); }\n\t whatToShow = whatToShow === undefined ? NodeFilter.SHOW_ALL : (+whatToShow);\n\t filter = filter === undefined ? null : filter;\n\n\t return new TreeWalker(root, whatToShow, filter);\n\t }},\n\n\t // See: http://www.w3.org/TR/dom/#dom-document-createnodeiterator\n\t createNodeIterator: {value: function (root, whatToShow, filter) {\n\t if (!root) { throw new TypeError(\"root argument is required\"); }\n\t if (!(root instanceof Node)) { throw new TypeError(\"root not a node\"); }\n\t whatToShow = whatToShow === undefined ? NodeFilter.SHOW_ALL : (+whatToShow);\n\t filter = filter === undefined ? null : filter;\n\n\t return new NodeIterator(root, whatToShow, filter);\n\t }},\n\n\t _attachNodeIterator: { value: function(ni) {\n\t // XXX ideally this should be a weak reference from Document to NodeIterator\n\t if (!this._nodeIterators) { this._nodeIterators = []; }\n\t this._nodeIterators.push(ni);\n\t }},\n\n\t _detachNodeIterator: { value: function(ni) {\n\t // ni should always be in list of node iterators\n\t var idx = this._nodeIterators.indexOf(ni);\n\t this._nodeIterators.splice(idx, 1);\n\t }},\n\n\t _preremoveNodeIterators: { value: function(toBeRemoved) {\n\t if (this._nodeIterators) {\n\t this._nodeIterators.forEach(function(ni) { ni._preremove(toBeRemoved); });\n\t }\n\t }},\n\n\t // Maintain the documentElement and\n\t // doctype properties of the document. Each of the following\n\t // methods chains to the Node implementation of the method\n\t // to do the actual inserting, removal or replacement.\n\n\t _updateDocTypeElement: { value: function _updateDocTypeElement() {\n\t this.doctype = this.documentElement = null;\n\t for (var kid = this.firstChild; kid !== null; kid = kid.nextSibling) {\n\t if (kid.nodeType === Node.DOCUMENT_TYPE_NODE)\n\t this.doctype = kid;\n\t else if (kid.nodeType === Node.ELEMENT_NODE)\n\t this.documentElement = kid;\n\t }\n\t }},\n\n\t insertBefore: { value: function insertBefore(child, refChild) {\n\t Node.prototype.insertBefore.call(this, child, refChild);\n\t this._updateDocTypeElement();\n\t return child;\n\t }},\n\n\t replaceChild: { value: function replaceChild(node, child) {\n\t Node.prototype.replaceChild.call(this, node, child);\n\t this._updateDocTypeElement();\n\t return child;\n\t }},\n\n\t removeChild: { value: function removeChild(child) {\n\t Node.prototype.removeChild.call(this, child);\n\t this._updateDocTypeElement();\n\t return child;\n\t }},\n\n\t getElementById: { value: function(id) {\n\t var n = this.byId[id];\n\t if (!n) return null;\n\t if (n instanceof MultiId) { // there was more than one element with this id\n\t return n.getFirst();\n\t }\n\t return n;\n\t }},\n\n\t _hasMultipleElementsWithId: { value: function(id) {\n\t // Used internally by querySelectorAll optimization\n\t return (this.byId[id] instanceof MultiId);\n\t }},\n\n\t // Just copy this method from the Element prototype\n\t getElementsByName: { value: Element.prototype.getElementsByName },\n\t getElementsByTagName: { value: Element.prototype.getElementsByTagName },\n\t getElementsByTagNameNS: { value: Element.prototype.getElementsByTagNameNS },\n\t getElementsByClassName: { value: Element.prototype.getElementsByClassName },\n\n\t adoptNode: { value: function adoptNode(node) {\n\t if (node.nodeType === Node.DOCUMENT_NODE) utils.NotSupportedError();\n\t if (node.nodeType === Node.ATTRIBUTE_NODE) { return node; }\n\n\t if (node.parentNode) node.parentNode.removeChild(node);\n\n\t if (node.ownerDocument !== this)\n\t recursivelySetOwner(node, this);\n\n\t return node;\n\t }},\n\n\t importNode: { value: function importNode(node, deep) {\n\t return this.adoptNode(node.cloneNode(deep));\n\t }, writable: isApiWritable },\n\n\t // The following attributes and methods are from the HTML spec\n\t origin: { get: function origin() { return null; } },\n\t characterSet: { get: function characterSet() { return \"UTF-8\"; } },\n\t contentType: { get: function contentType() { return this._contentType; } },\n\t URL: { get: function URL() { return this._address; } },\n\t domain: { get: utils.nyi, set: utils.nyi },\n\t referrer: { get: utils.nyi },\n\t cookie: { get: utils.nyi, set: utils.nyi },\n\t lastModified: { get: utils.nyi },\n\t location: {\n\t\tget: function() {\n\t\t return this.defaultView ? this.defaultView.location : null; // gh #75\n\t\t},\n\t\tset: utils.nyi\n\t },\n\t _titleElement: {\n\t get: function() {\n\t // The title element of a document is the first title element in the\n\t // document in tree order, if there is one, or null otherwise.\n\t return this.getElementsByTagName('title').item(0) || null;\n\t }\n\t },\n\t title: {\n\t get: function() {\n\t var elt = this._titleElement;\n\t // The child text content of the title element, or '' if null.\n\t var value = elt ? elt.textContent : '';\n\t // Strip and collapse whitespace in value\n\t return value.replace(/[ \\t\\n\\r\\f]+/g, ' ').replace(/(^ )|( $)/g, '');\n\t },\n\t set: function(value) {\n\t var elt = this._titleElement;\n\t var head = this.head;\n\t if (!elt && !head) { return; /* according to spec */ }\n\t if (!elt) {\n\t elt = this.createElement('title');\n\t head.appendChild(elt);\n\t }\n\t elt.textContent = value;\n\t }\n\t },\n\t dir: mirrorAttr(function() {\n\t var htmlElement = this.documentElement;\n\t if (htmlElement && htmlElement.tagName === 'HTML') { return htmlElement; }\n\t }, 'dir', ''),\n\t fgColor: mirrorAttr(function() { return this.body; }, 'text', ''),\n\t linkColor: mirrorAttr(function() { return this.body; }, 'link', ''),\n\t vlinkColor: mirrorAttr(function() { return this.body; }, 'vLink', ''),\n\t alinkColor: mirrorAttr(function() { return this.body; }, 'aLink', ''),\n\t bgColor: mirrorAttr(function() { return this.body; }, 'bgColor', ''),\n\n\t // Historical aliases of Document#characterSet\n\t charset: { get: function() { return this.characterSet; } },\n\t inputEncoding: { get: function() { return this.characterSet; } },\n\n\t scrollingElement: {\n\t get: function() {\n\t return this._quirks ? this.body : this.documentElement;\n\t }\n\t },\n\n\t // Return the first <body> child of the document element.\n\t // XXX For now, setting this attribute is not implemented.\n\t body: {\n\t get: function() {\n\t return namedHTMLChild(this.documentElement, 'body');\n\t },\n\t set: utils.nyi\n\t },\n\t // Return the first <head> child of the document element.\n\t head: { get: function() {\n\t return namedHTMLChild(this.documentElement, 'head');\n\t }},\n\t images: { get: utils.nyi },\n\t embeds: { get: utils.nyi },\n\t plugins: { get: utils.nyi },\n\t links: { get: utils.nyi },\n\t forms: { get: utils.nyi },\n\t scripts: { get: utils.nyi },\n\t applets: { get: function() { return []; } },\n\t activeElement: { get: function() { return null; } },\n\t innerHTML: {\n\t get: function() { return this.serialize(); },\n\t set: utils.nyi\n\t },\n\t outerHTML: {\n\t get: function() { return this.serialize(); },\n\t set: utils.nyi\n\t },\n\n\t write: { value: function(args) {\n\t if (!this.isHTML) utils.InvalidStateError();\n\n\t // XXX: still have to implement the ignore part\n\t if (!this._parser /* && this._ignore_destructive_writes > 0 */ )\n\t return;\n\n\t if (!this._parser) ;\n\n\t var s = arguments.join('');\n\n\t // If the Document object's reload override flag is set, then\n\t // append the string consisting of the concatenation of all the\n\t // arguments to the method to the Document's reload override\n\t // buffer.\n\t // XXX: don't know what this is about. Still have to do it\n\n\t // If there is no pending parsing-blocking script, have the\n\t // tokenizer process the characters that were inserted, one at a\n\t // time, processing resulting tokens as they are emitted, and\n\t // stopping when the tokenizer reaches the insertion point or when\n\t // the processing of the tokenizer is aborted by the tree\n\t // construction stage (this can happen if a script end tag token is\n\t // emitted by the tokenizer).\n\n\t // XXX: still have to do the above. Sounds as if we don't\n\t // always call parse() here. If we're blocked, then we just\n\t // insert the text into the stream but don't parse it reentrantly...\n\n\t // Invoke the parser reentrantly\n\t this._parser.parse(s);\n\t }},\n\n\t writeln: { value: function writeln(args) {\n\t this.write(Array.prototype.join.call(arguments, '') + '\\n');\n\t }},\n\n\t open: { value: function() {\n\t this.documentElement = null;\n\t }},\n\n\t close: { value: function() {\n\t this.readyState = 'interactive';\n\t this._dispatchEvent(new Event('readystatechange'), true);\n\t this._dispatchEvent(new Event('DOMContentLoaded'), true);\n\t this.readyState = 'complete';\n\t this._dispatchEvent(new Event('readystatechange'), true);\n\t if (this.defaultView) {\n\t this.defaultView._dispatchEvent(new Event('load'), true);\n\t }\n\t }},\n\n\t // Utility methods\n\t clone: { value: function clone() {\n\t var d = new Document(this.isHTML, this._address);\n\t d._quirks = this._quirks;\n\t d._contentType = this._contentType;\n\t return d;\n\t }},\n\n\t // We need to adopt the nodes if we do a deep clone\n\t cloneNode: { value: function cloneNode(deep) {\n\t var clone = Node.prototype.cloneNode.call(this, false);\n\t if (deep) {\n\t for (var kid = this.firstChild; kid !== null; kid = kid.nextSibling) {\n\t clone._appendChild(clone.importNode(kid, true));\n\t }\n\t }\n\t clone._updateDocTypeElement();\n\t return clone;\n\t }},\n\n\t isEqual: { value: function isEqual(n) {\n\t // Any two documents are shallowly equal.\n\t // Node.isEqualNode will also test the children\n\t return true;\n\t }},\n\n\t // Implementation-specific function. Called when a text, comment,\n\t // or pi value changes.\n\t mutateValue: { value: function(node) {\n\t if (this.mutationHandler) {\n\t this.mutationHandler({\n\t type: MUTATE.VALUE,\n\t target: node,\n\t data: node.data\n\t });\n\t }\n\t }},\n\n\t // Invoked when an attribute's value changes. Attr holds the new\n\t // value. oldval is the old value. Attribute mutations can also\n\t // involve changes to the prefix (and therefore the qualified name)\n\t mutateAttr: { value: function(attr, oldval) {\n\t // Manage id->element mapping for getElementsById()\n\t // XXX: this special case id handling should not go here,\n\t // but in the attribute declaration for the id attribute\n\t /*\n\t if (attr.localName === 'id' && attr.namespaceURI === null) {\n\t if (oldval) delId(oldval, attr.ownerElement);\n\t addId(attr.value, attr.ownerElement);\n\t }\n\t */\n\t if (this.mutationHandler) {\n\t this.mutationHandler({\n\t type: MUTATE.ATTR,\n\t target: attr.ownerElement,\n\t attr: attr\n\t });\n\t }\n\t }},\n\n\t // Used by removeAttribute and removeAttributeNS for attributes.\n\t mutateRemoveAttr: { value: function(attr) {\n\t/*\n\t* This is now handled in Attributes.js\n\t // Manage id to element mapping\n\t if (attr.localName === 'id' && attr.namespaceURI === null) {\n\t this.delId(attr.value, attr.ownerElement);\n\t }\n\t*/\n\t if (this.mutationHandler) {\n\t this.mutationHandler({\n\t type: MUTATE.REMOVE_ATTR,\n\t target: attr.ownerElement,\n\t attr: attr\n\t });\n\t }\n\t }},\n\n\t // Called by Node.removeChild, etc. to remove a rooted element from\n\t // the tree. Only needs to generate a single mutation event when a\n\t // node is removed, but must recursively mark all descendants as not\n\t // rooted.\n\t mutateRemove: { value: function(node) {\n\t // Send a single mutation event\n\t if (this.mutationHandler) {\n\t this.mutationHandler({\n\t type: MUTATE.REMOVE,\n\t target: node.parentNode,\n\t node: node\n\t });\n\t }\n\n\t // Mark this and all descendants as not rooted\n\t recursivelyUproot(node);\n\t }},\n\n\t // Called when a new element becomes rooted. It must recursively\n\t // generate mutation events for each of the children, and mark them all\n\t // as rooted.\n\t mutateInsert: { value: function(node) {\n\t // Mark node and its descendants as rooted\n\t recursivelyRoot(node);\n\n\t // Send a single mutation event\n\t if (this.mutationHandler) {\n\t this.mutationHandler({\n\t type: MUTATE.INSERT,\n\t target: node.parentNode,\n\t node: node\n\t });\n\t }\n\t }},\n\n\t // Called when a rooted element is moved within the document\n\t mutateMove: { value: function(node) {\n\t if (this.mutationHandler) {\n\t this.mutationHandler({\n\t type: MUTATE.MOVE,\n\t target: node\n\t });\n\t }\n\t }},\n\n\n\t // Add a mapping from id to n for n.ownerDocument\n\t addId: { value: function addId(id, n) {\n\t var val = this.byId[id];\n\t if (!val) {\n\t this.byId[id] = n;\n\t }\n\t else {\n\t // TODO: Add a way to opt-out console warnings\n\t //console.warn('Duplicate element id ' + id);\n\t if (!(val instanceof MultiId)) {\n\t val = new MultiId(val);\n\t this.byId[id] = val;\n\t }\n\t val.add(n);\n\t }\n\t }},\n\n\t // Delete the mapping from id to n for n.ownerDocument\n\t delId: { value: function delId(id, n) {\n\t var val = this.byId[id];\n\t utils.assert(val);\n\n\t if (val instanceof MultiId) {\n\t val.del(n);\n\t if (val.length === 1) { // convert back to a single node\n\t this.byId[id] = val.downgrade();\n\t }\n\t }\n\t else {\n\t this.byId[id] = undefined;\n\t }\n\t }},\n\n\t _resolve: { value: function(href) {\n\t //XXX: Cache the URL\n\t return new URL(this._documentBaseURL).resolve(href);\n\t }},\n\n\t _documentBaseURL: { get: function() {\n\t // XXX: This is not implemented correctly yet\n\t var url = this._address;\n\t if (url === 'about:blank') url = '/';\n\n\t var base = this.querySelector('base[href]');\n\t if (base) {\n\t return new URL(url).resolve(base.getAttribute('href'));\n\t }\n\t return url;\n\n\t // The document base URL of a Document object is the\n\t // absolute URL obtained by running these substeps:\n\n\t // Let fallback base url be the document's address.\n\n\t // If fallback base url is about:blank, and the\n\t // Document's browsing context has a creator browsing\n\t // context, then let fallback base url be the document\n\t // base URL of the creator Document instead.\n\n\t // If the Document is an iframe srcdoc document, then\n\t // let fallback base url be the document base URL of\n\t // the Document's browsing context's browsing context\n\t // container's Document instead.\n\n\t // If there is no base element that has an href\n\t // attribute, then the document base URL is fallback\n\t // base url; abort these steps. Otherwise, let url be\n\t // the value of the href attribute of the first such\n\t // element.\n\n\t // Resolve url relative to fallback base url (thus,\n\t // the base href attribute isn't affected by xml:base\n\t // attributes).\n\n\t // The document base URL is the result of the previous\n\t // step if it was successful; otherwise it is fallback\n\t // base url.\n\t }},\n\n\t _templateDoc: { get: function() {\n\t if (!this._templateDocCache) {\n\t // \"associated inert template document\"\n\t var newDoc = new Document(this.isHTML, this._address);\n\t this._templateDocCache = newDoc._templateDocCache = newDoc;\n\t }\n\t return this._templateDocCache;\n\t }},\n\n\t querySelector: { value: function(selector) {\n\t return select(selector, this)[0];\n\t }},\n\n\t querySelectorAll: { value: function(selector) {\n\t var nodes = select(selector, this);\n\t return nodes.item ? nodes : new NodeList(nodes);\n\t }}\n\n\t});\n\n\n\tvar eventHandlerTypes = [\n\t 'abort', 'canplay', 'canplaythrough', 'change', 'click', 'contextmenu',\n\t 'cuechange', 'dblclick', 'drag', 'dragend', 'dragenter', 'dragleave',\n\t 'dragover', 'dragstart', 'drop', 'durationchange', 'emptied', 'ended',\n\t 'input', 'invalid', 'keydown', 'keypress', 'keyup', 'loadeddata',\n\t 'loadedmetadata', 'loadstart', 'mousedown', 'mousemove', 'mouseout',\n\t 'mouseover', 'mouseup', 'mousewheel', 'pause', 'play', 'playing',\n\t 'progress', 'ratechange', 'readystatechange', 'reset', 'seeked',\n\t 'seeking', 'select', 'show', 'stalled', 'submit', 'suspend',\n\t 'timeupdate', 'volumechange', 'waiting',\n\n\t 'blur', 'error', 'focus', 'load', 'scroll'\n\t];\n\n\t// Add event handler idl attribute getters and setters to Document\n\teventHandlerTypes.forEach(function(type) {\n\t // Define the event handler registration IDL attribute for this type\n\t Object.defineProperty(Document.prototype, 'on' + type, {\n\t get: function() {\n\t return this._getEventHandler(type);\n\t },\n\t set: function(v) {\n\t this._setEventHandler(type, v);\n\t }\n\t });\n\t});\n\n\tfunction namedHTMLChild(parent, name) {\n\t if (parent && parent.isHTML) {\n\t for (var kid = parent.firstChild; kid !== null; kid = kid.nextSibling) {\n\t if (kid.nodeType === Node.ELEMENT_NODE &&\n\t kid.localName === name &&\n\t kid.namespaceURI === NAMESPACE.HTML) {\n\t return kid;\n\t }\n\t }\n\t }\n\t return null;\n\t}\n\n\tfunction root(n) {\n\t n._nid = n.ownerDocument._nextnid++;\n\t n.ownerDocument._nodes[n._nid] = n;\n\t // Manage id to element mapping\n\t if (n.nodeType === Node.ELEMENT_NODE) {\n\t var id = n.getAttribute('id');\n\t if (id) n.ownerDocument.addId(id, n);\n\n\t // Script elements need to know when they're inserted\n\t // into the document\n\t if (n._roothook) n._roothook();\n\t }\n\t}\n\n\tfunction uproot(n) {\n\t // Manage id to element mapping\n\t if (n.nodeType === Node.ELEMENT_NODE) {\n\t var id = n.getAttribute('id');\n\t if (id) n.ownerDocument.delId(id, n);\n\t }\n\t n.ownerDocument._nodes[n._nid] = undefined;\n\t n._nid = undefined;\n\t}\n\n\tfunction recursivelyRoot(node) {\n\t root(node);\n\t // XXX:\n\t // accessing childNodes on a leaf node creates a new array the\n\t // first time, so be careful to write this loop so that it\n\t // doesn't do that. node is polymorphic, so maybe this is hard to\n\t // optimize? Try switching on nodeType?\n\t/*\n\t if (node.hasChildNodes()) {\n\t var kids = node.childNodes;\n\t for(var i = 0, n = kids.length; i < n; i++)\n\t recursivelyRoot(kids[i]);\n\t }\n\t*/\n\t if (node.nodeType === Node.ELEMENT_NODE) {\n\t for (var kid = node.firstChild; kid !== null; kid = kid.nextSibling)\n\t recursivelyRoot(kid);\n\t }\n\t}\n\n\tfunction recursivelyUproot(node) {\n\t uproot(node);\n\t for (var kid = node.firstChild; kid !== null; kid = kid.nextSibling)\n\t recursivelyUproot(kid);\n\t}\n\n\tfunction recursivelySetOwner(node, owner) {\n\t node.ownerDocument = owner;\n\t node._lastModTime = undefined; // mod times are document-based\n\t if (Object.prototype.hasOwnProperty.call(node, '_tagName')) {\n\t node._tagName = undefined; // Element subclasses might need to change case\n\t }\n\t for (var kid = node.firstChild; kid !== null; kid = kid.nextSibling)\n\t recursivelySetOwner(kid, owner);\n\t}\n\n\t// A class for storing multiple nodes with the same ID\n\tfunction MultiId(node) {\n\t this.nodes = Object.create(null);\n\t this.nodes[node._nid] = node;\n\t this.length = 1;\n\t this.firstNode = undefined;\n\t}\n\n\t// Add a node to the list, with O(1) time\n\tMultiId.prototype.add = function(node) {\n\t if (!this.nodes[node._nid]) {\n\t this.nodes[node._nid] = node;\n\t this.length++;\n\t this.firstNode = undefined;\n\t }\n\t};\n\n\t// Remove a node from the list, with O(1) time\n\tMultiId.prototype.del = function(node) {\n\t if (this.nodes[node._nid]) {\n\t delete this.nodes[node._nid];\n\t this.length--;\n\t this.firstNode = undefined;\n\t }\n\t};\n\n\t// Get the first node from the list, in the document order\n\t// Takes O(N) time in the size of the list, with a cache that is invalidated\n\t// when the list is modified.\n\tMultiId.prototype.getFirst = function() {\n\t /* jshint bitwise: false */\n\t if (!this.firstNode) {\n\t var nid;\n\t for (nid in this.nodes) {\n\t if (this.firstNode === undefined ||\n\t this.firstNode.compareDocumentPosition(this.nodes[nid]) & Node.DOCUMENT_POSITION_PRECEDING) {\n\t this.firstNode = this.nodes[nid];\n\t }\n\t }\n\t }\n\t return this.firstNode;\n\t};\n\n\t// If there is only one node left, return it. Otherwise return \"this\".\n\tMultiId.prototype.downgrade = function() {\n\t if (this.length === 1) {\n\t var nid;\n\t for (nid in this.nodes) {\n\t return this.nodes[nid];\n\t }\n\t }\n\t return this;\n\t};\n\treturn Document_1;\n}\n\nvar DocumentType_1;\nvar hasRequiredDocumentType;\n\nfunction requireDocumentType () {\n\tif (hasRequiredDocumentType) return DocumentType_1;\n\thasRequiredDocumentType = 1;\n\tDocumentType_1 = DocumentType;\n\n\tvar Node = requireNode();\n\tvar Leaf = requireLeaf();\n\tvar ChildNode = requireChildNode();\n\n\tfunction DocumentType(ownerDocument, name, publicId, systemId) {\n\t Leaf.call(this);\n\t this.nodeType = Node.DOCUMENT_TYPE_NODE;\n\t this.ownerDocument = ownerDocument || null;\n\t this.name = name;\n\t this.publicId = publicId || \"\";\n\t this.systemId = systemId || \"\";\n\t}\n\n\tDocumentType.prototype = Object.create(Leaf.prototype, {\n\t nodeName: { get: function() { return this.name; }},\n\t nodeValue: {\n\t get: function() { return null; },\n\t set: function() {}\n\t },\n\n\t // Utility methods\n\t clone: { value: function clone() {\n\t return new DocumentType(this.ownerDocument, this.name, this.publicId, this.systemId);\n\t }},\n\n\t isEqual: { value: function isEqual(n) {\n\t return this.name === n.name &&\n\t this.publicId === n.publicId &&\n\t this.systemId === n.systemId;\n\t }}\n\t});\n\n\tObject.defineProperties(DocumentType.prototype, ChildNode);\n\treturn DocumentType_1;\n}\n\nvar HTMLParser_1;\nvar hasRequiredHTMLParser;\n\nfunction requireHTMLParser () {\n\tif (hasRequiredHTMLParser) return HTMLParser_1;\n\thasRequiredHTMLParser = 1;\n\tHTMLParser_1 = HTMLParser;\n\n\tvar Document = requireDocument();\n\tvar DocumentType = requireDocumentType();\n\tvar Node = requireNode();\n\tvar NAMESPACE = requireUtils().NAMESPACE;\n\tvar html = requireHtmlelts();\n\tvar impl = html.elements;\n\n\tvar pushAll = Function.prototype.apply.bind(Array.prototype.push);\n\n\t/*\n\t * This file contains an implementation of the HTML parsing algorithm.\n\t * The algorithm and the implementation are complex because HTML\n\t * explicitly defines how the parser should behave for all possible\n\t * valid and invalid inputs.\n\t *\n\t * Usage:\n\t *\n\t * The file defines a single HTMLParser() function, which dom.js exposes\n\t * publicly as document.implementation.mozHTMLParser(). This is a\n\t * factory function, not a constructor.\n\t *\n\t * When you call document.implementation.mozHTMLParser(), it returns\n\t * an object that has parse() and document() methods. To parse HTML text,\n\t * pass the text (in one or more chunks) to the parse() method. When\n\t * you've passed all the text (on the last chunk, or afterward) pass\n\t * true as the second argument to parse() to tell the parser that there\n\t * is no more coming. Call document() to get the document object that\n\t * the parser is parsing into. You can call this at any time, before\n\t * or after calling parse().\n\t *\n\t * The first argument to mozHTMLParser is the absolute URL of the document.\n\t *\n\t * The second argument is optional and is for internal use only. Pass an\n\t * element as the fragmentContext to do innerHTML parsing for the\n\t * element. To do innerHTML parsing on a document, pass null. Otherwise,\n\t * omit the 2nd argument. See HTMLElement.innerHTML for an example. Note\n\t * that if you pass a context element, the end() method will return an\n\t * unwrapped document instead of a wrapped one.\n\t *\n\t * Implementation details:\n\t *\n\t * This is a long file of almost 7000 lines. It is structured as one\n\t * big function nested within another big function. The outer\n\t * function defines a bunch of constant data, utility functions\n\t * that use that data, and a couple of classes used by the parser.\n\t * The outer function also defines and returns the\n\t * inner function. This inner function is the HTMLParser factory\n\t * function that implements the parser and holds all the parser state\n\t * as local variables. The HTMLParser function is quite big because\n\t * it defines many nested functions that use those local variables.\n\t *\n\t * There are three tightly coupled parser stages: a scanner, a\n\t * tokenizer and a tree builder. In a (possibly misguided) attempt at\n\t * efficiency, the stages are not implemented as separate classes:\n\t * everything shares state and is (mostly) implemented in imperative\n\t * (rather than OO) style.\n\t *\n\t * The stages of the parser work like this: When the client code calls\n\t * the parser's parse() method, the specified string is passed to\n\t * scanChars(). The scanner loops through that string and passes characters\n\t * (sometimes one at a time, sometimes in chunks) to the tokenizer stage.\n\t * The tokenizer groups the characters into tokens: tags, endtags, runs\n\t * of text, comments, doctype declarations, and the end-of-file (EOF)\n\t * token. These tokens are then passed to the tree building stage via\n\t * the insertToken() function. The tree building stage builds up the\n\t * document tree.\n\t *\n\t * The tokenizer stage is a finite state machine. Each state is\n\t * implemented as a function with a name that ends in \"_state\". The\n\t * initial state is data_state(). The current tokenizer state is stored\n\t * in the variable 'tokenizer'. Most state functions expect a single\n\t * integer argument which represents a single UTF-16 codepoint. Some\n\t * states want more characters and set a lookahead property on\n\t * themselves. The scanChars() function in the scanner checks for this\n\t * lookahead property. If it doesn't exist, then scanChars() just passes\n\t * the next input character to the current tokenizer state function.\n\t * Otherwise, scanChars() looks ahead (a given # of characters, or for a\n\t * matching string, or for a matching regexp) and passes a string of\n\t * characters to the current tokenizer state function.\n\t *\n\t * As a shortcut, certain states of the tokenizer use regular expressions\n\t * to look ahead in the scanner's input buffer for runs of text, simple\n\t * tags and attributes. For well-formed input, these shortcuts skip a\n\t * lot of state transitions and speed things up a bit.\n\t *\n\t * When a tokenizer state function has consumed a complete token, it\n\t * emits that token, by calling insertToken(), or by calling a utility\n\t * function that itself calls insertToken(). These tokens are passed to\n\t * the tree building stage, which is also a state machine. Like the\n\t * tokenizer, the tree building states are implemented as functions, and\n\t * these functions have names that end with _mode (because the HTML spec\n\t * refers to them as insertion modes). The current insertion mode is held\n\t * by the 'parser' variable. Each insertion mode function takes up to 4\n\t * arguments. The first is a token type, represented by the constants\n\t * TAG, ENDTAG, TEXT, COMMENT, DOCTYPE and EOF. The second argument is\n\t * the value of the token: the text or comment data, or tagname or\n\t * doctype. For tags, the 3rd argument is an array of attributes. For\n\t * DOCTYPES it is the optional public id. For tags, the 4th argument is\n\t * true if the tag is self-closing. For doctypes, the 4th argument is the\n\t * optional system id.\n\t *\n\t * Search for \"***\" to find the major sub-divisions in the code.\n\t */\n\n\n\t/***\n\t * Data prolog. Lots of constants declared here, including some\n\t * very large objects. They're used throughout the code that follows\n\t */\n\t// Token types for the tree builder.\n\tvar EOF = -1;\n\tvar TEXT = 1;\n\tvar TAG = 2;\n\tvar ENDTAG = 3;\n\tvar COMMENT = 4;\n\tvar DOCTYPE = 5;\n\n\t// A re-usable empty array\n\tvar NOATTRS = [];\n\n\t// These DTD public ids put the browser in quirks mode\n\tvar quirkyPublicIds = /^HTML$|^-\\/\\/W3O\\/\\/DTD W3 HTML Strict 3\\.0\\/\\/EN\\/\\/$|^-\\/W3C\\/DTD HTML 4\\.0 Transitional\\/EN$|^\\+\\/\\/Silmaril\\/\\/dtd html Pro v0r11 19970101\\/\\/|^-\\/\\/AdvaSoft Ltd\\/\\/DTD HTML 3\\.0 asWedit \\+ extensions\\/\\/|^-\\/\\/AS\\/\\/DTD HTML 3\\.0 asWedit \\+ extensions\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 2\\.0 Level 1\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 2\\.0 Level 2\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 2\\.0 Strict Level 1\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 2\\.0 Strict Level 2\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 2\\.0 Strict\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 2\\.0\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 2\\.1E\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 3\\.0\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 3\\.2 Final\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 3\\.2\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML 3\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML Level 0\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML Level 1\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML Level 2\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML Level 3\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML Strict Level 0\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML Strict Level 1\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML Strict Level 2\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML Strict Level 3\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML Strict\\/\\/|^-\\/\\/IETF\\/\\/DTD HTML\\/\\/|^-\\/\\/Metrius\\/\\/DTD Metrius Presentational\\/\\/|^-\\/\\/Microsoft\\/\\/DTD Internet Explorer 2\\.0 HTML Strict\\/\\/|^-\\/\\/Microsoft\\/\\/DTD Internet Explorer 2\\.0 HTML\\/\\/|^-\\/\\/Microsoft\\/\\/DTD Internet Explorer 2\\.0 Tables\\/\\/|^-\\/\\/Microsoft\\/\\/DTD Internet Explorer 3\\.0 HTML Strict\\/\\/|^-\\/\\/Microsoft\\/\\/DTD Internet Explorer 3\\.0 HTML\\/\\/|^-\\/\\/Microsoft\\/\\/DTD Internet Explorer 3\\.0 Tables\\/\\/|^-\\/\\/Netscape Comm\\. Corp\\.\\/\\/DTD HTML\\/\\/|^-\\/\\/Netscape Comm\\. Corp\\.\\/\\/DTD Strict HTML\\/\\/|^-\\/\\/O'Reilly and Associates\\/\\/DTD HTML 2\\.0\\/\\/|^-\\/\\/O'Reilly and Associates\\/\\/DTD HTML Extended 1\\.0\\/\\/|^-\\/\\/O'Reilly and Associates\\/\\/DTD HTML Extended Relaxed 1\\.0\\/\\/|^-\\/\\/SoftQuad Software\\/\\/DTD HoTMetaL PRO 6\\.0::19990601::extensions to HTML 4\\.0\\/\\/|^-\\/\\/SoftQuad\\/\\/DTD HoTMetaL PRO 4\\.0::19971010::extensions to HTML 4\\.0\\/\\/|^-\\/\\/Spyglass\\/\\/DTD HTML 2\\.0 Extended\\/\\/|^-\\/\\/SQ\\/\\/DTD HTML 2\\.0 HoTMetaL \\+ extensions\\/\\/|^-\\/\\/Sun Microsystems Corp\\.\\/\\/DTD HotJava HTML\\/\\/|^-\\/\\/Sun Microsystems Corp\\.\\/\\/DTD HotJava Strict HTML\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML 3 1995-03-24\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML 3\\.2 Draft\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML 3\\.2 Final\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML 3\\.2\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML 3\\.2S Draft\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML 4\\.0 Frameset\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML 4\\.0 Transitional\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML Experimental 19960712\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML Experimental 970421\\/\\/|^-\\/\\/W3C\\/\\/DTD W3 HTML\\/\\/|^-\\/\\/W3O\\/\\/DTD W3 HTML 3\\.0\\/\\/|^-\\/\\/WebTechs\\/\\/DTD Mozilla HTML 2\\.0\\/\\/|^-\\/\\/WebTechs\\/\\/DTD Mozilla HTML\\/\\//i;\n\n\tvar quirkySystemId = \"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\";\n\n\tvar conditionallyQuirkyPublicIds = /^-\\/\\/W3C\\/\\/DTD HTML 4\\.01 Frameset\\/\\/|^-\\/\\/W3C\\/\\/DTD HTML 4\\.01 Transitional\\/\\//i;\n\n\t// These DTD public ids put the browser in limited quirks mode\n\tvar limitedQuirkyPublicIds = /^-\\/\\/W3C\\/\\/DTD XHTML 1\\.0 Frameset\\/\\/|^-\\/\\/W3C\\/\\/DTD XHTML 1\\.0 Transitional\\/\\//i;\n\n\n\t// Element sets below. See the isA() function for a way to test\n\t// whether an element is a member of a set\n\tvar specialSet = Object.create(null);\n\tspecialSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"address\":true, \"applet\":true, \"area\":true, \"article\":true,\n\t \"aside\":true, \"base\":true, \"basefont\":true, \"bgsound\":true,\n\t \"blockquote\":true, \"body\":true, \"br\":true, \"button\":true,\n\t \"caption\":true, \"center\":true, \"col\":true, \"colgroup\":true,\n\t \"dd\":true, \"details\":true, \"dir\":true,\n\t \"div\":true, \"dl\":true, \"dt\":true, \"embed\":true,\n\t \"fieldset\":true, \"figcaption\":true, \"figure\":true, \"footer\":true,\n\t \"form\":true, \"frame\":true, \"frameset\":true, \"h1\":true,\n\t \"h2\":true, \"h3\":true, \"h4\":true, \"h5\":true,\n\t \"h6\":true, \"head\":true, \"header\":true, \"hgroup\":true,\n\t \"hr\":true, \"html\":true, \"iframe\":true, \"img\":true,\n\t \"input\":true, \"li\":true, \"link\":true,\n\t \"listing\":true, \"main\":true, \"marquee\":true, \"menu\":true, \"meta\":true,\n\t \"nav\":true, \"noembed\":true, \"noframes\":true, \"noscript\":true,\n\t \"object\":true, \"ol\":true, \"p\":true, \"param\":true,\n\t \"plaintext\":true, \"pre\":true, \"script\":true, \"section\":true,\n\t \"select\":true, \"source\":true, \"style\":true, \"summary\":true, \"table\":true,\n\t \"tbody\":true, \"td\":true, \"template\":true, \"textarea\":true, \"tfoot\":true,\n\t \"th\":true, \"thead\":true, \"title\":true, \"tr\":true, \"track\":true,\n\t // Note that \"xmp\" was removed from the \"special\" set in the latest\n\t // spec, apparently by accident; see\n\t // https://github.com/whatwg/html/pull/1919\n\t \"ul\":true, \"wbr\":true, \"xmp\":true\n\t};\n\tspecialSet[NAMESPACE.SVG] = {\n\t __proto__: null,\n\t \"foreignObject\": true, \"desc\": true, \"title\": true\n\t};\n\tspecialSet[NAMESPACE.MATHML] = {\n\t __proto__: null,\n\t \"mi\":true, \"mo\":true, \"mn\":true, \"ms\":true,\n\t \"mtext\":true, \"annotation-xml\":true\n\t};\n\n\t// The set of address, div, and p HTML tags\n\tvar addressdivpSet = Object.create(null);\n\taddressdivpSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"address\":true, \"div\":true, \"p\":true\n\t};\n\n\tvar dddtSet = Object.create(null);\n\tdddtSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"dd\":true, \"dt\":true\n\t};\n\n\tvar tablesectionrowSet = Object.create(null);\n\ttablesectionrowSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"table\":true, \"thead\":true, \"tbody\":true, \"tfoot\":true, \"tr\":true\n\t};\n\n\tvar impliedEndTagsSet = Object.create(null);\n\timpliedEndTagsSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"dd\": true, \"dt\": true, \"li\": true, \"menuitem\": true, \"optgroup\": true,\n\t \"option\": true, \"p\": true, \"rb\": true, \"rp\": true, \"rt\": true, \"rtc\": true\n\t};\n\n\tvar thoroughImpliedEndTagsSet = Object.create(null);\n\tthoroughImpliedEndTagsSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"caption\": true, \"colgroup\": true, \"dd\": true, \"dt\": true, \"li\": true,\n\t \"optgroup\": true, \"option\": true, \"p\": true, \"rb\": true, \"rp\": true,\n\t \"rt\": true, \"rtc\": true, \"tbody\": true, \"td\": true, \"tfoot\": true,\n\t \"th\": true, \"thead\": true, \"tr\": true\n\t};\n\n\tvar tableContextSet = Object.create(null);\n\ttableContextSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"table\": true, \"template\": true, \"html\": true\n\t};\n\n\tvar tableBodyContextSet = Object.create(null);\n\ttableBodyContextSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"tbody\": true, \"tfoot\": true, \"thead\": true, \"template\": true, \"html\": true\n\t};\n\n\tvar tableRowContextSet = Object.create(null);\n\ttableRowContextSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"tr\": true, \"template\": true, \"html\": true\n\t};\n\n\t// See http://www.w3.org/TR/html5/forms.html#form-associated-element\n\tvar formassociatedSet = Object.create(null);\n\tformassociatedSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"button\": true, \"fieldset\": true, \"input\": true, \"keygen\": true,\n\t \"object\": true, \"output\": true, \"select\": true, \"textarea\": true,\n\t \"img\": true\n\t};\n\n\tvar inScopeSet = Object.create(null);\n\tinScopeSet[NAMESPACE.HTML]= {\n\t __proto__: null,\n\t \"applet\":true, \"caption\":true, \"html\":true, \"table\":true,\n\t \"td\":true, \"th\":true, \"marquee\":true, \"object\":true,\n\t \"template\":true\n\t};\n\tinScopeSet[NAMESPACE.MATHML] = {\n\t __proto__: null,\n\t \"mi\":true, \"mo\":true, \"mn\":true, \"ms\":true,\n\t \"mtext\":true, \"annotation-xml\":true\n\t};\n\tinScopeSet[NAMESPACE.SVG] = {\n\t __proto__: null,\n\t \"foreignObject\":true, \"desc\":true, \"title\":true\n\t};\n\n\tvar inListItemScopeSet = Object.create(inScopeSet);\n\tinListItemScopeSet[NAMESPACE.HTML] =\n\t Object.create(inScopeSet[NAMESPACE.HTML]);\n\tinListItemScopeSet[NAMESPACE.HTML].ol = true;\n\tinListItemScopeSet[NAMESPACE.HTML].ul = true;\n\n\tvar inButtonScopeSet = Object.create(inScopeSet);\n\tinButtonScopeSet[NAMESPACE.HTML] =\n\t Object.create(inScopeSet[NAMESPACE.HTML]);\n\tinButtonScopeSet[NAMESPACE.HTML].button = true;\n\n\tvar inTableScopeSet = Object.create(null);\n\tinTableScopeSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"html\":true, \"table\":true, \"template\":true\n\t};\n\n\t// The set of elements for select scope is the everything *except* these\n\tvar invertedSelectScopeSet = Object.create(null);\n\tinvertedSelectScopeSet[NAMESPACE.HTML] = {\n\t __proto__: null,\n\t \"optgroup\":true, \"option\":true\n\t};\n\n\tvar mathmlTextIntegrationPointSet = Object.create(null);\n\tmathmlTextIntegrationPointSet[NAMESPACE.MATHML] = {\n\t __proto__: null,\n\t mi: true,\n\t mo: true,\n\t mn: true,\n\t ms: true,\n\t mtext: true\n\t};\n\n\tvar htmlIntegrationPointSet = Object.create(null);\n\thtmlIntegrationPointSet[NAMESPACE.SVG] = {\n\t __proto__: null,\n\t foreignObject: true,\n\t desc: true,\n\t title: true\n\t};\n\n\tvar foreignAttributes = {\n\t __proto__: null,\n\t \"xlink:actuate\": NAMESPACE.XLINK, \"xlink:arcrole\": NAMESPACE.XLINK,\n\t \"xlink:href\": NAMESPACE.XLINK, \"xlink:role\": NAMESPACE.XLINK,\n\t \"xlink:show\": NAMESPACE.XLINK, \"xlink:title\": NAMESPACE.XLINK,\n\t \"xlink:type\": NAMESPACE.XLINK, \"xml:base\": NAMESPACE.XML,\n\t \"xml:lang\": NAMESPACE.XML, \"xml:space\": NAMESPACE.XML,\n\t \"xmlns\": NAMESPACE.XMLNS, \"xmlns:xlink\": NAMESPACE.XMLNS\n\t};\n\n\n\t// Lowercase to mixed case mapping for SVG attributes and tagnames\n\tvar svgAttrAdjustments = {\n\t __proto__: null,\n\t attributename: \"attributeName\", attributetype: \"attributeType\",\n\t basefrequency: \"baseFrequency\", baseprofile: \"baseProfile\",\n\t calcmode: \"calcMode\", clippathunits: \"clipPathUnits\",\n\t diffuseconstant: \"diffuseConstant\",\n\t edgemode: \"edgeMode\",\n\t filterunits: \"filterUnits\",\n\t glyphref: \"glyphRef\", gradienttransform: \"gradientTransform\",\n\t gradientunits: \"gradientUnits\", kernelmatrix: \"kernelMatrix\",\n\t kernelunitlength: \"kernelUnitLength\", keypoints: \"keyPoints\",\n\t keysplines: \"keySplines\", keytimes: \"keyTimes\",\n\t lengthadjust: \"lengthAdjust\", limitingconeangle: \"limitingConeAngle\",\n\t markerheight: \"markerHeight\", markerunits: \"markerUnits\",\n\t markerwidth: \"markerWidth\", maskcontentunits: \"maskContentUnits\",\n\t maskunits: \"maskUnits\", numoctaves: \"numOctaves\",\n\t pathlength: \"pathLength\", patterncontentunits: \"patternContentUnits\",\n\t patterntransform: \"patternTransform\", patternunits: \"patternUnits\",\n\t pointsatx: \"pointsAtX\", pointsaty: \"pointsAtY\",\n\t pointsatz: \"pointsAtZ\", preservealpha: \"preserveAlpha\",\n\t preserveaspectratio: \"preserveAspectRatio\",\n\t primitiveunits: \"primitiveUnits\", refx: \"refX\",\n\t refy: \"refY\", repeatcount: \"repeatCount\",\n\t repeatdur: \"repeatDur\", requiredextensions: \"requiredExtensions\",\n\t requiredfeatures: \"requiredFeatures\",\n\t specularconstant: \"specularConstant\",\n\t specularexponent: \"specularExponent\", spreadmethod: \"spreadMethod\",\n\t startoffset: \"startOffset\", stddeviation: \"stdDeviation\",\n\t stitchtiles: \"stitchTiles\", surfacescale: \"surfaceScale\",\n\t systemlanguage: \"systemLanguage\", tablevalues: \"tableValues\",\n\t targetx: \"targetX\", targety: \"targetY\",\n\t textlength: \"textLength\", viewbox: \"viewBox\",\n\t viewtarget: \"viewTarget\", xchannelselector: \"xChannelSelector\",\n\t ychannelselector: \"yChannelSelector\", zoomandpan: \"zoomAndPan\"\n\t};\n\n\tvar svgTagNameAdjustments = {\n\t __proto__: null,\n\t altglyph: \"altGlyph\", altglyphdef: \"altGlyphDef\",\n\t altglyphitem: \"altGlyphItem\", animatecolor: \"animateColor\",\n\t animatemotion: \"animateMotion\", animatetransform: \"animateTransform\",\n\t clippath: \"clipPath\", feblend: \"feBlend\",\n\t fecolormatrix: \"feColorMatrix\",\n\t fecomponenttransfer: \"feComponentTransfer\", fecomposite: \"feComposite\",\n\t feconvolvematrix: \"feConvolveMatrix\",\n\t fediffuselighting: \"feDiffuseLighting\",\n\t fedisplacementmap: \"feDisplacementMap\",\n\t fedistantlight: \"feDistantLight\", feflood: \"feFlood\",\n\t fefunca: \"feFuncA\", fefuncb: \"feFuncB\",\n\t fefuncg: \"feFuncG\", fefuncr: \"feFuncR\",\n\t fegaussianblur: \"feGaussianBlur\", feimage: \"feImage\",\n\t femerge: \"feMerge\", femergenode: \"feMergeNode\",\n\t femorphology: \"feMorphology\", feoffset: \"feOffset\",\n\t fepointlight: \"fePointLight\", fespecularlighting: \"feSpecularLighting\",\n\t fespotlight: \"feSpotLight\", fetile: \"feTile\",\n\t feturbulence: \"feTurbulence\", foreignobject: \"foreignObject\",\n\t glyphref: \"glyphRef\", lineargradient: \"linearGradient\",\n\t radialgradient: \"radialGradient\", textpath: \"textPath\"\n\t};\n\n\n\t// Data for parsing numeric and named character references\n\t// These next 3 objects are direct translations of tables\n\t// in the HTML spec into JavaScript object format\n\tvar numericCharRefReplacements = {\n\t __proto__: null,\n\t 0x00:0xFFFD, 0x80:0x20AC, 0x82:0x201A, 0x83:0x0192, 0x84:0x201E,\n\t 0x85:0x2026, 0x86:0x2020, 0x87:0x2021, 0x88:0x02C6, 0x89:0x2030,\n\t 0x8A:0x0160, 0x8B:0x2039, 0x8C:0x0152, 0x8E:0x017D, 0x91:0x2018,\n\t 0x92:0x2019, 0x93:0x201C, 0x94:0x201D, 0x95:0x2022, 0x96:0x2013,\n\t 0x97:0x2014, 0x98:0x02DC, 0x99:0x2122, 0x9A:0x0161, 0x9B:0x203A,\n\t 0x9C:0x0153, 0x9E:0x017E, 0x9F:0x0178\n\t};\n\n\t/*\n\t * This table is generated with test/tools/update-entities.js\n\t */\n\tvar namedCharRefs = {\n\t __proto__: null,\n\t \"AElig\":0xc6, \"AElig;\":0xc6,\n\t \"AMP\":0x26, \"AMP;\":0x26,\n\t \"Aacute\":0xc1, \"Aacute;\":0xc1,\n\t \"Abreve;\":0x102, \"Acirc\":0xc2,\n\t \"Acirc;\":0xc2, \"Acy;\":0x410,\n\t \"Afr;\":[0xd835,0xdd04], \"Agrave\":0xc0,\n\t \"Agrave;\":0xc0, \"Alpha;\":0x391,\n\t \"Amacr;\":0x100, \"And;\":0x2a53,\n\t \"Aogon;\":0x104, \"Aopf;\":[0xd835,0xdd38],\n\t \"ApplyFunction;\":0x2061, \"Aring\":0xc5,\n\t \"Aring;\":0xc5, \"Ascr;\":[0xd835,0xdc9c],\n\t \"Assign;\":0x2254, \"Atilde\":0xc3,\n\t \"Atilde;\":0xc3, \"Auml\":0xc4,\n\t \"Auml;\":0xc4, \"Backslash;\":0x2216,\n\t \"Barv;\":0x2ae7, \"Barwed;\":0x2306,\n\t \"Bcy;\":0x411, \"Because;\":0x2235,\n\t \"Bernoullis;\":0x212c, \"Beta;\":0x392,\n\t \"Bfr;\":[0xd835,0xdd05], \"Bopf;\":[0xd835,0xdd39],\n\t \"Breve;\":0x2d8, \"Bscr;\":0x212c,\n\t \"Bumpeq;\":0x224e, \"CHcy;\":0x427,\n\t \"COPY\":0xa9, \"COPY;\":0xa9,\n\t \"Cacute;\":0x106, \"Cap;\":0x22d2,\n\t \"CapitalDifferentialD;\":0x2145, \"Cayleys;\":0x212d,\n\t \"Ccaron;\":0x10c, \"Ccedil\":0xc7,\n\t \"Ccedil;\":0xc7, \"Ccirc;\":0x108,\n\t \"Cconint;\":0x2230, \"Cdot;\":0x10a,\n\t \"Cedilla;\":0xb8, \"CenterDot;\":0xb7,\n\t \"Cfr;\":0x212d, \"Chi;\":0x3a7,\n\t \"CircleDot;\":0x2299, \"CircleMinus;\":0x2296,\n\t \"CirclePlus;\":0x2295, \"CircleTimes;\":0x2297,\n\t \"ClockwiseContourIntegral;\":0x2232, \"CloseCurlyDoubleQuote;\":0x201d,\n\t \"CloseCurlyQuote;\":0x2019, \"Colon;\":0x2237,\n\t \"Colone;\":0x2a74, \"Congruent;\":0x2261,\n\t \"Conint;\":0x222f, \"ContourIntegral;\":0x222e,\n\t \"Copf;\":0x2102, \"Coproduct;\":0x2210,\n\t \"CounterClockwiseContourIntegral;\":0x2233, \"Cross;\":0x2a2f,\n\t \"Cscr;\":[0xd835,0xdc9e], \"Cup;\":0x22d3,\n\t \"CupCap;\":0x224d, \"DD;\":0x2145,\n\t \"DDotrahd;\":0x2911, \"DJcy;\":0x402,\n\t \"DScy;\":0x405, \"DZcy;\":0x40f,\n\t \"Dagger;\":0x2021, \"Darr;\":0x21a1,\n\t \"Dashv;\":0x2ae4, \"Dcaron;\":0x10e,\n\t \"Dcy;\":0x414, \"Del;\":0x2207,\n\t \"Delta;\":0x394, \"Dfr;\":[0xd835,0xdd07],\n\t \"DiacriticalAcute;\":0xb4, \"DiacriticalDot;\":0x2d9,\n\t \"DiacriticalDoubleAcute;\":0x2dd, \"DiacriticalGrave;\":0x60,\n\t \"DiacriticalTilde;\":0x2dc, \"Diamond;\":0x22c4,\n\t \"DifferentialD;\":0x2146, \"Dopf;\":[0xd835,0xdd3b],\n\t \"Dot;\":0xa8, \"DotDot;\":0x20dc,\n\t \"DotEqual;\":0x2250, \"DoubleContourIntegral;\":0x222f,\n\t \"DoubleDot;\":0xa8, \"DoubleDownArrow;\":0x21d3,\n\t \"DoubleLeftArrow;\":0x21d0, \"DoubleLeftRightArrow;\":0x21d4,\n\t \"DoubleLeftTee;\":0x2ae4, \"DoubleLongLeftArrow;\":0x27f8,\n\t \"DoubleLongLeftRightArrow;\":0x27fa, \"DoubleLongRightArrow;\":0x27f9,\n\t \"DoubleRightArrow;\":0x21d2, \"DoubleRightTee;\":0x22a8,\n\t \"DoubleUpArrow;\":0x21d1, \"DoubleUpDownArrow;\":0x21d5,\n\t \"DoubleVerticalBar;\":0x2225, \"DownArrow;\":0x2193,\n\t \"DownArrowBar;\":0x2913, \"DownArrowUpArrow;\":0x21f5,\n\t \"DownBreve;\":0x311, \"DownLeftRightVector;\":0x2950,\n\t \"DownLeftTeeVector;\":0x295e, \"DownLeftVector;\":0x21bd,\n\t \"DownLeftVectorBar;\":0x2956, \"DownRightTeeVector;\":0x295f,\n\t \"DownRightVector;\":0x21c1, \"DownRightVectorBar;\":0x2957,\n\t \"DownTee;\":0x22a4, \"DownTeeArrow;\":0x21a7,\n\t \"Downarrow;\":0x21d3, \"Dscr;\":[0xd835,0xdc9f],\n\t \"Dstrok;\":0x110, \"ENG;\":0x14a,\n\t \"ETH\":0xd0, \"ETH;\":0xd0,\n\t \"Eacute\":0xc9, \"Eacute;\":0xc9,\n\t \"Ecaron;\":0x11a, \"Ecirc\":0xca,\n\t \"Ecirc;\":0xca, \"Ecy;\":0x42d,\n\t \"Edot;\":0x116, \"Efr;\":[0xd835,0xdd08],\n\t \"Egrave\":0xc8, \"Egrave;\":0xc8,\n\t \"Element;\":0x2208, \"Emacr;\":0x112,\n\t \"EmptySmallSquare;\":0x25fb, \"EmptyVerySmallSquare;\":0x25ab,\n\t \"Eogon;\":0x118, \"Eopf;\":[0xd835,0xdd3c],\n\t \"Epsilon;\":0x395, \"Equal;\":0x2a75,\n\t \"EqualTilde;\":0x2242, \"Equilibrium;\":0x21cc,\n\t \"Escr;\":0x2130, \"Esim;\":0x2a73,\n\t \"Eta;\":0x397, \"Euml\":0xcb,\n\t \"Euml;\":0xcb, \"Exists;\":0x2203,\n\t \"ExponentialE;\":0x2147, \"Fcy;\":0x424,\n\t \"Ffr;\":[0xd835,0xdd09], \"FilledSmallSquare;\":0x25fc,\n\t \"FilledVerySmallSquare;\":0x25aa, \"Fopf;\":[0xd835,0xdd3d],\n\t \"ForAll;\":0x2200, \"Fouriertrf;\":0x2131,\n\t \"Fscr;\":0x2131, \"GJcy;\":0x403,\n\t \"GT\":0x3e, \"GT;\":0x3e,\n\t \"Gamma;\":0x393, \"Gammad;\":0x3dc,\n\t \"Gbreve;\":0x11e, \"Gcedil;\":0x122,\n\t \"Gcirc;\":0x11c, \"Gcy;\":0x413,\n\t \"Gdot;\":0x120, \"Gfr;\":[0xd835,0xdd0a],\n\t \"Gg;\":0x22d9, \"Gopf;\":[0xd835,0xdd3e],\n\t \"GreaterEqual;\":0x2265, \"GreaterEqualLess;\":0x22db,\n\t \"GreaterFullEqual;\":0x2267, \"GreaterGreater;\":0x2aa2,\n\t \"GreaterLess;\":0x2277, \"GreaterSlantEqual;\":0x2a7e,\n\t \"GreaterTilde;\":0x2273, \"Gscr;\":[0xd835,0xdca2],\n\t \"Gt;\":0x226b, \"HARDcy;\":0x42a,\n\t \"Hacek;\":0x2c7, \"Hat;\":0x5e,\n\t \"Hcirc;\":0x124, \"Hfr;\":0x210c,\n\t \"HilbertSpace;\":0x210b, \"Hopf;\":0x210d,\n\t \"HorizontalLine;\":0x2500, \"Hscr;\":0x210b,\n\t \"Hstrok;\":0x126, \"HumpDownHump;\":0x224e,\n\t \"HumpEqual;\":0x224f, \"IEcy;\":0x415,\n\t \"IJlig;\":0x132, \"IOcy;\":0x401,\n\t \"Iacute\":0xcd, \"Iacute;\":0xcd,\n\t \"Icirc\":0xce, \"Icirc;\":0xce,\n\t \"Icy;\":0x418, \"Idot;\":0x130,\n\t \"Ifr;\":0x2111, \"Igrave\":0xcc,\n\t \"Igrave;\":0xcc, \"Im;\":0x2111,\n\t \"Imacr;\":0x12a, \"ImaginaryI;\":0x2148,\n\t \"Implies;\":0x21d2, \"Int;\":0x222c,\n\t \"Integral;\":0x222b, \"Intersection;\":0x22c2,\n\t \"InvisibleComma;\":0x2063, \"InvisibleTimes;\":0x2062,\n\t \"Iogon;\":0x12e, \"Iopf;\":[0xd835,0xdd40],\n\t \"Iota;\":0x399, \"Iscr;\":0x2110,\n\t \"Itilde;\":0x128, \"Iukcy;\":0x406,\n\t \"Iuml\":0xcf, \"Iuml;\":0xcf,\n\t \"Jcirc;\":0x134, \"Jcy;\":0x419,\n\t \"Jfr;\":[0xd835,0xdd0d], \"Jopf;\":[0xd835,0xdd41],\n\t \"Jscr;\":[0xd835,0xdca5], \"Jsercy;\":0x408,\n\t \"Jukcy;\":0x404, \"KHcy;\":0x425,\n\t \"KJcy;\":0x40c, \"Kappa;\":0x39a,\n\t \"Kcedil;\":0x136, \"Kcy;\":0x41a,\n\t \"Kfr;\":[0xd835,0xdd0e], \"Kopf;\":[0xd835,0xdd42],\n\t \"Kscr;\":[0xd835,0xdca6], \"LJcy;\":0x409,\n\t \"LT\":0x3c, \"LT;\":0x3c,\n\t \"Lacute;\":0x139, \"Lambda;\":0x39b,\n\t \"Lang;\":0x27ea, \"Laplacetrf;\":0x2112,\n\t \"Larr;\":0x219e, \"Lcaron;\":0x13d,\n\t \"Lcedil;\":0x13b, \"Lcy;\":0x41b,\n\t \"LeftAngleBracket;\":0x27e8, \"LeftArrow;\":0x2190,\n\t \"LeftArrowBar;\":0x21e4, \"LeftArrowRightArrow;\":0x21c6,\n\t \"LeftCeiling;\":0x2308, \"LeftDoubleBracket;\":0x27e6,\n\t \"LeftDownTeeVector;\":0x2961, \"LeftDownVector;\":0x21c3,\n\t \"LeftDownVectorBar;\":0x2959, \"LeftFloor;\":0x230a,\n\t \"LeftRightArrow;\":0x2194, \"LeftRightVector;\":0x294e,\n\t \"LeftTee;\":0x22a3, \"LeftTeeArrow;\":0x21a4,\n\t \"LeftTeeVector;\":0x295a, \"LeftTriangle;\":0x22b2,\n\t \"LeftTriangleBar;\":0x29cf, \"LeftTriangleEqual;\":0x22b4,\n\t \"LeftUpDownVector;\":0x2951, \"LeftUpTeeVector;\":0x2960,\n\t \"LeftUpVector;\":0x21bf, \"LeftUpVectorBar;\":0x2958,\n\t \"LeftVector;\":0x21bc, \"LeftVectorBar;\":0x2952,\n\t \"Leftarrow;\":0x21d0, \"Leftrightarrow;\":0x21d4,\n\t \"LessEqualGreater;\":0x22da, \"LessFullEqual;\":0x2266,\n\t \"LessGreater;\":0x2276, \"LessLess;\":0x2aa1,\n\t \"LessSlantEqual;\":0x2a7d, \"LessTilde;\":0x2272,\n\t \"Lfr;\":[0xd835,0xdd0f], \"Ll;\":0x22d8,\n\t \"Lleftarrow;\":0x21da, \"Lmidot;\":0x13f,\n\t \"LongLeftArrow;\":0x27f5, \"LongLeftRightArrow;\":0x27f7,\n\t \"LongRightArrow;\":0x27f6, \"Longleftarrow;\":0x27f8,\n\t \"Longleftrightarrow;\":0x27fa, \"Longrightarrow;\":0x27f9,\n\t \"Lopf;\":[0xd835,0xdd43], \"LowerLeftArrow;\":0x2199,\n\t \"LowerRightArrow;\":0x2198, \"Lscr;\":0x2112,\n\t \"Lsh;\":0x21b0, \"Lstrok;\":0x141,\n\t \"Lt;\":0x226a, \"Map;\":0x2905,\n\t \"Mcy;\":0x41c, \"MediumSpace;\":0x205f,\n\t \"Mellintrf;\":0x2133, \"Mfr;\":[0xd835,0xdd10],\n\t \"MinusPlus;\":0x2213, \"Mopf;\":[0xd835,0xdd44],\n\t \"Mscr;\":0x2133, \"Mu;\":0x39c,\n\t \"NJcy;\":0x40a, \"Nacute;\":0x143,\n\t \"Ncaron;\":0x147, \"Ncedil;\":0x145,\n\t \"Ncy;\":0x41d, \"NegativeMediumSpace;\":0x200b,\n\t \"NegativeThickSpace;\":0x200b, \"NegativeThinSpace;\":0x200b,\n\t \"NegativeVeryThinSpace;\":0x200b, \"NestedGreaterGreater;\":0x226b,\n\t \"NestedLessLess;\":0x226a, \"NewLine;\":0xa,\n\t \"Nfr;\":[0xd835,0xdd11], \"NoBreak;\":0x2060,\n\t \"NonBreakingSpace;\":0xa0, \"Nopf;\":0x2115,\n\t \"Not;\":0x2aec, \"NotCongruent;\":0x2262,\n\t \"NotCupCap;\":0x226d, \"NotDoubleVerticalBar;\":0x2226,\n\t \"NotElement;\":0x2209, \"NotEqual;\":0x2260,\n\t \"NotEqualTilde;\":[0x2242,0x338], \"NotExists;\":0x2204,\n\t \"NotGreater;\":0x226f, \"NotGreaterEqual;\":0x2271,\n\t \"NotGreaterFullEqual;\":[0x2267,0x338], \"NotGreaterGreater;\":[0x226b,0x338],\n\t \"NotGreaterLess;\":0x2279, \"NotGreaterSlantEqual;\":[0x2a7e,0x338],\n\t \"NotGreaterTilde;\":0x2275, \"NotHumpDownHump;\":[0x224e,0x338],\n\t \"NotHumpEqual;\":[0x224f,0x338], \"NotLeftTriangle;\":0x22ea,\n\t \"NotLeftTriangleBar;\":[0x29cf,0x338], \"NotLeftTriangleEqual;\":0x22ec,\n\t \"NotLess;\":0x226e, \"NotLessEqual;\":0x2270,\n\t \"NotLessGreater;\":0x2278, \"NotLessLess;\":[0x226a,0x338],\n\t \"NotLessSlantEqual;\":[0x2a7d,0x338], \"NotLessTilde;\":0x2274,\n\t \"NotNestedGreaterGreater;\":[0x2aa2,0x338], \"NotNestedLessLess;\":[0x2aa1,0x338],\n\t \"NotPrecedes;\":0x2280, \"NotPrecedesEqual;\":[0x2aaf,0x338],\n\t \"NotPrecedesSlantEqual;\":0x22e0, \"NotReverseElement;\":0x220c,\n\t \"NotRightTriangle;\":0x22eb, \"NotRightTriangleBar;\":[0x29d0,0x338],\n\t \"NotRightTriangleEqual;\":0x22ed, \"NotSquareSubset;\":[0x228f,0x338],\n\t \"NotSquareSubsetEqual;\":0x22e2, \"NotSquareSuperset;\":[0x2290,0x338],\n\t \"NotSquareSupersetEqual;\":0x22e3, \"NotSubset;\":[0x2282,0x20d2],\n\t \"NotSubsetEqual;\":0x2288, \"NotSucceeds;\":0x2281,\n\t \"NotSucceedsEqual;\":[0x2ab0,0x338], \"NotSucceedsSlantEqual;\":0x22e1,\n\t \"NotSucceedsTilde;\":[0x227f,0x338], \"NotSuperset;\":[0x2283,0x20d2],\n\t \"NotSupersetEqual;\":0x2289, \"NotTilde;\":0x2241,\n\t \"NotTildeEqual;\":0x2244, \"NotTildeFullEqual;\":0x2247,\n\t \"NotTildeTilde;\":0x2249, \"NotVerticalBar;\":0x2224,\n\t \"Nscr;\":[0xd835,0xdca9], \"Ntilde\":0xd1,\n\t \"Ntilde;\":0xd1, \"Nu;\":0x39d,\n\t \"OElig;\":0x152, \"Oacute\":0xd3,\n\t \"Oacute;\":0xd3, \"Ocirc\":0xd4,\n\t \"Ocirc;\":0xd4, \"Ocy;\":0x41e,\n\t \"Odblac;\":0x150, \"Ofr;\":[0xd835,0xdd12],\n\t \"Ograve\":0xd2, \"Ograve;\":0xd2,\n\t \"Omacr;\":0x14c, \"Omega;\":0x3a9,\n\t \"Omicron;\":0x39f, \"Oopf;\":[0xd835,0xdd46],\n\t \"OpenCurlyDoubleQuote;\":0x201c, \"OpenCurlyQuote;\":0x2018,\n\t \"Or;\":0x2a54, \"Oscr;\":[0xd835,0xdcaa],\n\t \"Oslash\":0xd8, \"Oslash;\":0xd8,\n\t \"Otilde\":0xd5, \"Otilde;\":0xd5,\n\t \"Otimes;\":0x2a37, \"Ouml\":0xd6,\n\t \"Ouml;\":0xd6, \"OverBar;\":0x203e,\n\t \"OverBrace;\":0x23de, \"OverBracket;\":0x23b4,\n\t \"OverParenthesis;\":0x23dc, \"PartialD;\":0x2202,\n\t \"Pcy;\":0x41f, \"Pfr;\":[0xd835,0xdd13],\n\t \"Phi;\":0x3a6, \"Pi;\":0x3a0,\n\t \"PlusMinus;\":0xb1, \"Poincareplane;\":0x210c,\n\t \"Popf;\":0x2119, \"Pr;\":0x2abb,\n\t \"Precedes;\":0x227a, \"PrecedesEqual;\":0x2aaf,\n\t \"PrecedesSlantEqual;\":0x227c, \"PrecedesTilde;\":0x227e,\n\t \"Prime;\":0x2033, \"Product;\":0x220f,\n\t \"Proportion;\":0x2237, \"Proportional;\":0x221d,\n\t \"Pscr;\":[0xd835,0xdcab], \"Psi;\":0x3a8,\n\t \"QUOT\":0x22, \"QUOT;\":0x22,\n\t \"Qfr;\":[0xd835,0xdd14], \"Qopf;\":0x211a,\n\t \"Qscr;\":[0xd835,0xdcac], \"RBarr;\":0x2910,\n\t \"REG\":0xae, \"REG;\":0xae,\n\t \"Racute;\":0x154, \"Rang;\":0x27eb,\n\t \"Rarr;\":0x21a0, \"Rarrtl;\":0x2916,\n\t \"Rcaron;\":0x158, \"Rcedil;\":0x156,\n\t \"Rcy;\":0x420, \"Re;\":0x211c,\n\t \"ReverseElement;\":0x220b, \"ReverseEquilibrium;\":0x21cb,\n\t \"ReverseUpEquilibrium;\":0x296f, \"Rfr;\":0x211c,\n\t \"Rho;\":0x3a1, \"RightAngleBracket;\":0x27e9,\n\t \"RightArrow;\":0x2192, \"RightArrowBar;\":0x21e5,\n\t \"RightArrowLeftArrow;\":0x21c4, \"RightCeiling;\":0x2309,\n\t \"RightDoubleBracket;\":0x27e7, \"RightDownTeeVector;\":0x295d,\n\t \"RightDownVector;\":0x21c2, \"RightDownVectorBar;\":0x2955,\n\t \"RightFloor;\":0x230b, \"RightTee;\":0x22a2,\n\t \"RightTeeArrow;\":0x21a6, \"RightTeeVector;\":0x295b,\n\t \"RightTriangle;\":0x22b3, \"RightTriangleBar;\":0x29d0,\n\t \"RightTriangleEqual;\":0x22b5, \"RightUpDownVector;\":0x294f,\n\t \"RightUpTeeVector;\":0x295c, \"RightUpVector;\":0x21be,\n\t \"RightUpVectorBar;\":0x2954, \"RightVector;\":0x21c0,\n\t \"RightVectorBar;\":0x2953, \"Rightarrow;\":0x21d2,\n\t \"Ropf;\":0x211d, \"RoundImplies;\":0x2970,\n\t \"Rrightarrow;\":0x21db, \"Rscr;\":0x211b,\n\t \"Rsh;\":0x21b1, \"RuleDelayed;\":0x29f4,\n\t \"SHCHcy;\":0x429, \"SHcy;\":0x428,\n\t \"SOFTcy;\":0x42c, \"Sacute;\":0x15a,\n\t \"Sc;\":0x2abc, \"Scaron;\":0x160,\n\t \"Scedil;\":0x15e, \"Scirc;\":0x15c,\n\t \"Scy;\":0x421, \"Sfr;\":[0xd835,0xdd16],\n\t \"ShortDownArrow;\":0x2193, \"ShortLeftArrow;\":0x2190,\n\t \"ShortRightArrow;\":0x2192, \"ShortUpArrow;\":0x2191,\n\t \"Sigma;\":0x3a3, \"SmallCircle;\":0x2218,\n\t \"Sopf;\":[0xd835,0xdd4a], \"Sqrt;\":0x221a,\n\t \"Square;\":0x25a1, \"SquareIntersection;\":0x2293,\n\t \"SquareSubset;\":0x228f, \"SquareSubsetEqual;\":0x2291,\n\t \"SquareSuperset;\":0x2290, \"SquareSupersetEqual;\":0x2292,\n\t \"SquareUnion;\":0x2294, \"Sscr;\":[0xd835,0xdcae],\n\t \"Star;\":0x22c6, \"Sub;\":0x22d0,\n\t \"Subset;\":0x22d0, \"SubsetEqual;\":0x2286,\n\t \"Succeeds;\":0x227b, \"SucceedsEqual;\":0x2ab0,\n\t \"SucceedsSlantEqual;\":0x227d, \"SucceedsTilde;\":0x227f,\n\t \"SuchThat;\":0x220b, \"Sum;\":0x2211,\n\t \"Sup;\":0x22d1, \"Superset;\":0x2283,\n\t \"SupersetEqual;\":0x2287, \"Supset;\":0x22d1,\n\t \"THORN\":0xde, \"THORN;\":0xde,\n\t \"TRADE;\":0x2122, \"TSHcy;\":0x40b,\n\t \"TScy;\":0x426, \"Tab;\":0x9,\n\t \"Tau;\":0x3a4, \"Tcaron;\":0x164,\n\t \"Tcedil;\":0x162, \"Tcy;\":0x422,\n\t \"Tfr;\":[0xd835,0xdd17], \"Therefore;\":0x2234,\n\t \"Theta;\":0x398, \"ThickSpace;\":[0x205f,0x200a],\n\t \"ThinSpace;\":0x2009, \"Tilde;\":0x223c,\n\t \"TildeEqual;\":0x2243, \"TildeFullEqual;\":0x2245,\n\t \"TildeTilde;\":0x2248, \"Topf;\":[0xd835,0xdd4b],\n\t \"TripleDot;\":0x20db, \"Tscr;\":[0xd835,0xdcaf],\n\t \"Tstrok;\":0x166, \"Uacute\":0xda,\n\t \"Uacute;\":0xda, \"Uarr;\":0x219f,\n\t \"Uarrocir;\":0x2949, \"Ubrcy;\":0x40e,\n\t \"Ubreve;\":0x16c, \"Ucirc\":0xdb,\n\t \"Ucirc;\":0xdb, \"Ucy;\":0x423,\n\t \"Udblac;\":0x170, \"Ufr;\":[0xd835,0xdd18],\n\t \"Ugrave\":0xd9, \"Ugrave;\":0xd9,\n\t \"Umacr;\":0x16a, \"UnderBar;\":0x5f,\n\t \"UnderBrace;\":0x23df, \"UnderBracket;\":0x23b5,\n\t \"UnderParenthesis;\":0x23dd, \"Union;\":0x22c3,\n\t \"UnionPlus;\":0x228e, \"Uogon;\":0x172,\n\t \"Uopf;\":[0xd835,0xdd4c], \"UpArrow;\":0x2191,\n\t \"UpArrowBar;\":0x2912, \"UpArrowDownArrow;\":0x21c5,\n\t \"UpDownArrow;\":0x2195, \"UpEquilibrium;\":0x296e,\n\t \"UpTee;\":0x22a5, \"UpTeeArrow;\":0x21a5,\n\t \"Uparrow;\":0x21d1, \"Updownarrow;\":0x21d5,\n\t \"UpperLeftArrow;\":0x2196, \"UpperRightArrow;\":0x2197,\n\t \"Upsi;\":0x3d2, \"Upsilon;\":0x3a5,\n\t \"Uring;\":0x16e, \"Uscr;\":[0xd835,0xdcb0],\n\t \"Utilde;\":0x168, \"Uuml\":0xdc,\n\t \"Uuml;\":0xdc, \"VDash;\":0x22ab,\n\t \"Vbar;\":0x2aeb, \"Vcy;\":0x412,\n\t \"Vdash;\":0x22a9, \"Vdashl;\":0x2ae6,\n\t \"Vee;\":0x22c1, \"Verbar;\":0x2016,\n\t \"Vert;\":0x2016, \"VerticalBar;\":0x2223,\n\t \"VerticalLine;\":0x7c, \"VerticalSeparator;\":0x2758,\n\t \"VerticalTilde;\":0x2240, \"VeryThinSpace;\":0x200a,\n\t \"Vfr;\":[0xd835,0xdd19], \"Vopf;\":[0xd835,0xdd4d],\n\t \"Vscr;\":[0xd835,0xdcb1], \"Vvdash;\":0x22aa,\n\t \"Wcirc;\":0x174, \"Wedge;\":0x22c0,\n\t \"Wfr;\":[0xd835,0xdd1a], \"Wopf;\":[0xd835,0xdd4e],\n\t \"Wscr;\":[0xd835,0xdcb2], \"Xfr;\":[0xd835,0xdd1b],\n\t \"Xi;\":0x39e, \"Xopf;\":[0xd835,0xdd4f],\n\t \"Xscr;\":[0xd835,0xdcb3], \"YAcy;\":0x42f,\n\t \"YIcy;\":0x407, \"YUcy;\":0x42e,\n\t \"Yacute\":0xdd, \"Yacute;\":0xdd,\n\t \"Ycirc;\":0x176, \"Ycy;\":0x42b,\n\t \"Yfr;\":[0xd835,0xdd1c], \"Yopf;\":[0xd835,0xdd50],\n\t \"Yscr;\":[0xd835,0xdcb4], \"Yuml;\":0x178,\n\t \"ZHcy;\":0x416, \"Zacute;\":0x179,\n\t \"Zcaron;\":0x17d, \"Zcy;\":0x417,\n\t \"Zdot;\":0x17b, \"ZeroWidthSpace;\":0x200b,\n\t \"Zeta;\":0x396, \"Zfr;\":0x2128,\n\t \"Zopf;\":0x2124, \"Zscr;\":[0xd835,0xdcb5],\n\t \"aacute\":0xe1, \"aacute;\":0xe1,\n\t \"abreve;\":0x103, \"ac;\":0x223e,\n\t \"acE;\":[0x223e,0x333], \"acd;\":0x223f,\n\t \"acirc\":0xe2, \"acirc;\":0xe2,\n\t \"acute\":0xb4, \"acute;\":0xb4,\n\t \"acy;\":0x430, \"aelig\":0xe6,\n\t \"aelig;\":0xe6, \"af;\":0x2061,\n\t \"afr;\":[0xd835,0xdd1e], \"agrave\":0xe0,\n\t \"agrave;\":0xe0, \"alefsym;\":0x2135,\n\t \"aleph;\":0x2135, \"alpha;\":0x3b1,\n\t \"amacr;\":0x101, \"amalg;\":0x2a3f,\n\t \"amp\":0x26, \"amp;\":0x26,\n\t \"and;\":0x2227, \"andand;\":0x2a55,\n\t \"andd;\":0x2a5c, \"andslope;\":0x2a58,\n\t \"andv;\":0x2a5a, \"ang;\":0x2220,\n\t \"ange;\":0x29a4, \"angle;\":0x2220,\n\t \"angmsd;\":0x2221, \"angmsdaa;\":0x29a8,\n\t \"angmsdab;\":0x29a9, \"angmsdac;\":0x29aa,\n\t \"angmsdad;\":0x29ab, \"angmsdae;\":0x29ac,\n\t \"angmsdaf;\":0x29ad, \"angmsdag;\":0x29ae,\n\t \"angmsdah;\":0x29af, \"angrt;\":0x221f,\n\t \"angrtvb;\":0x22be, \"angrtvbd;\":0x299d,\n\t \"angsph;\":0x2222, \"angst;\":0xc5,\n\t \"angzarr;\":0x237c, \"aogon;\":0x105,\n\t \"aopf;\":[0xd835,0xdd52], \"ap;\":0x2248,\n\t \"apE;\":0x2a70, \"apacir;\":0x2a6f,\n\t \"ape;\":0x224a, \"apid;\":0x224b,\n\t \"apos;\":0x27, \"approx;\":0x2248,\n\t \"approxeq;\":0x224a, \"aring\":0xe5,\n\t \"aring;\":0xe5, \"ascr;\":[0xd835,0xdcb6],\n\t \"ast;\":0x2a, \"asymp;\":0x2248,\n\t \"asympeq;\":0x224d, \"atilde\":0xe3,\n\t \"atilde;\":0xe3, \"auml\":0xe4,\n\t \"auml;\":0xe4, \"awconint;\":0x2233,\n\t \"awint;\":0x2a11, \"bNot;\":0x2aed,\n\t \"backcong;\":0x224c, \"backepsilon;\":0x3f6,\n\t \"backprime;\":0x2035, \"backsim;\":0x223d,\n\t \"backsimeq;\":0x22cd, \"barvee;\":0x22bd,\n\t \"barwed;\":0x2305, \"barwedge;\":0x2305,\n\t \"bbrk;\":0x23b5, \"bbrktbrk;\":0x23b6,\n\t \"bcong;\":0x224c, \"bcy;\":0x431,\n\t \"bdquo;\":0x201e, \"becaus;\":0x2235,\n\t \"because;\":0x2235, \"bemptyv;\":0x29b0,\n\t \"bepsi;\":0x3f6, \"bernou;\":0x212c,\n\t \"beta;\":0x3b2, \"beth;\":0x2136,\n\t \"between;\":0x226c, \"bfr;\":[0xd835,0xdd1f],\n\t \"bigcap;\":0x22c2, \"bigcirc;\":0x25ef,\n\t \"bigcup;\":0x22c3, \"bigodot;\":0x2a00,\n\t \"bigoplus;\":0x2a01, \"bigotimes;\":0x2a02,\n\t \"bigsqcup;\":0x2a06, \"bigstar;\":0x2605,\n\t \"bigtriangledown;\":0x25bd, \"bigtriangleup;\":0x25b3,\n\t \"biguplus;\":0x2a04, \"bigvee;\":0x22c1,\n\t \"bigwedge;\":0x22c0, \"bkarow;\":0x290d,\n\t \"blacklozenge;\":0x29eb, \"blacksquare;\":0x25aa,\n\t \"blacktriangle;\":0x25b4, \"blacktriangledown;\":0x25be,\n\t \"blacktriangleleft;\":0x25c2, \"blacktriangleright;\":0x25b8,\n\t \"blank;\":0x2423, \"blk12;\":0x2592,\n\t \"blk14;\":0x2591, \"blk34;\":0x2593,\n\t \"block;\":0x2588, \"bne;\":[0x3d,0x20e5],\n\t \"bnequiv;\":[0x2261,0x20e5], \"bnot;\":0x2310,\n\t \"bopf;\":[0xd835,0xdd53], \"bot;\":0x22a5,\n\t \"bottom;\":0x22a5, \"bowtie;\":0x22c8,\n\t \"boxDL;\":0x2557, \"boxDR;\":0x2554,\n\t \"boxDl;\":0x2556, \"boxDr;\":0x2553,\n\t \"boxH;\":0x2550, \"boxHD;\":0x2566,\n\t \"boxHU;\":0x2569, \"boxHd;\":0x2564,\n\t \"boxHu;\":0x2567, \"boxUL;\":0x255d,\n\t \"boxUR;\":0x255a, \"boxUl;\":0x255c,\n\t \"boxUr;\":0x2559, \"boxV;\":0x2551,\n\t \"boxVH;\":0x256c, \"boxVL;\":0x2563,\n\t \"boxVR;\":0x2560, \"boxVh;\":0x256b,\n\t \"boxVl;\":0x2562, \"boxVr;\":0x255f,\n\t \"boxbox;\":0x29c9, \"boxdL;\":0x2555,\n\t \"boxdR;\":0x2552, \"boxdl;\":0x2510,\n\t \"boxdr;\":0x250c, \"boxh;\":0x2500,\n\t \"boxhD;\":0x2565, \"boxhU;\":0x2568,\n\t \"boxhd;\":0x252c, \"boxhu;\":0x2534,\n\t \"boxminus;\":0x229f, \"boxplus;\":0x229e,\n\t \"boxtimes;\":0x22a0, \"boxuL;\":0x255b,\n\t \"boxuR;\":0x2558, \"boxul;\":0x2518,\n\t \"boxur;\":0x2514, \"boxv;\":0x2502,\n\t \"boxvH;\":0x256a, \"boxvL;\":0x2561,\n\t \"boxvR;\":0x255e, \"boxvh;\":0x253c,\n\t \"boxvl;\":0x2524, \"boxvr;\":0x251c,\n\t \"bprime;\":0x2035, \"breve;\":0x2d8,\n\t \"brvbar\":0xa6, \"brvbar;\":0xa6,\n\t \"bscr;\":[0xd835,0xdcb7], \"bsemi;\":0x204f,\n\t \"bsim;\":0x223d, \"bsime;\":0x22cd,\n\t \"bsol;\":0x5c, \"bsolb;\":0x29c5,\n\t \"bsolhsub;\":0x27c8, \"bull;\":0x2022,\n\t \"bullet;\":0x2022, \"bump;\":0x224e,\n\t \"bumpE;\":0x2aae, \"bumpe;\":0x224f,\n\t \"bumpeq;\":0x224f, \"cacute;\":0x107,\n\t \"cap;\":0x2229, \"capand;\":0x2a44,\n\t \"capbrcup;\":0x2a49, \"capcap;\":0x2a4b,\n\t \"capcup;\":0x2a47, \"capdot;\":0x2a40,\n\t \"caps;\":[0x2229,0xfe00], \"caret;\":0x2041,\n\t \"caron;\":0x2c7, \"ccaps;\":0x2a4d,\n\t \"ccaron;\":0x10d, \"ccedil\":0xe7,\n\t \"ccedil;\":0xe7, \"ccirc;\":0x109,\n\t \"ccups;\":0x2a4c, \"ccupssm;\":0x2a50,\n\t \"cdot;\":0x10b, \"cedil\":0xb8,\n\t \"cedil;\":0xb8, \"cemptyv;\":0x29b2,\n\t \"cent\":0xa2, \"cent;\":0xa2,\n\t \"centerdot;\":0xb7, \"cfr;\":[0xd835,0xdd20],\n\t \"chcy;\":0x447, \"check;\":0x2713,\n\t \"checkmark;\":0x2713, \"chi;\":0x3c7,\n\t \"cir;\":0x25cb, \"cirE;\":0x29c3,\n\t \"circ;\":0x2c6, \"circeq;\":0x2257,\n\t \"circlearrowleft;\":0x21ba, \"circlearrowright;\":0x21bb,\n\t \"circledR;\":0xae, \"circledS;\":0x24c8,\n\t \"circledast;\":0x229b, \"circledcirc;\":0x229a,\n\t \"circleddash;\":0x229d, \"cire;\":0x2257,\n\t \"cirfnint;\":0x2a10, \"cirmid;\":0x2aef,\n\t \"cirscir;\":0x29c2, \"clubs;\":0x2663,\n\t \"clubsuit;\":0x2663, \"colon;\":0x3a,\n\t \"colone;\":0x2254, \"coloneq;\":0x2254,\n\t \"comma;\":0x2c, \"commat;\":0x40,\n\t \"comp;\":0x2201, \"compfn;\":0x2218,\n\t \"complement;\":0x2201, \"complexes;\":0x2102,\n\t \"cong;\":0x2245, \"congdot;\":0x2a6d,\n\t \"conint;\":0x222e, \"copf;\":[0xd835,0xdd54],\n\t \"coprod;\":0x2210, \"copy\":0xa9,\n\t \"copy;\":0xa9, \"copysr;\":0x2117,\n\t \"crarr;\":0x21b5, \"cross;\":0x2717,\n\t \"cscr;\":[0xd835,0xdcb8], \"csub;\":0x2acf,\n\t \"csube;\":0x2ad1, \"csup;\":0x2ad0,\n\t \"csupe;\":0x2ad2, \"ctdot;\":0x22ef,\n\t \"cudarrl;\":0x2938, \"cudarrr;\":0x2935,\n\t \"cuepr;\":0x22de, \"cuesc;\":0x22df,\n\t \"cularr;\":0x21b6, \"cularrp;\":0x293d,\n\t \"cup;\":0x222a, \"cupbrcap;\":0x2a48,\n\t \"cupcap;\":0x2a46, \"cupcup;\":0x2a4a,\n\t \"cupdot;\":0x228d, \"cupor;\":0x2a45,\n\t \"cups;\":[0x222a,0xfe00], \"curarr;\":0x21b7,\n\t \"curarrm;\":0x293c, \"curlyeqprec;\":0x22de,\n\t \"curlyeqsucc;\":0x22df, \"curlyvee;\":0x22ce,\n\t \"curlywedge;\":0x22cf, \"curren\":0xa4,\n\t \"curren;\":0xa4, \"curvearrowleft;\":0x21b6,\n\t \"curvearrowright;\":0x21b7, \"cuvee;\":0x22ce,\n\t \"cuwed;\":0x22cf, \"cwconint;\":0x2232,\n\t \"cwint;\":0x2231, \"cylcty;\":0x232d,\n\t \"dArr;\":0x21d3, \"dHar;\":0x2965,\n\t \"dagger;\":0x2020, \"daleth;\":0x2138,\n\t \"darr;\":0x2193, \"dash;\":0x2010,\n\t \"dashv;\":0x22a3, \"dbkarow;\":0x290f,\n\t \"dblac;\":0x2dd, \"dcaron;\":0x10f,\n\t \"dcy;\":0x434, \"dd;\":0x2146,\n\t \"ddagger;\":0x2021, \"ddarr;\":0x21ca,\n\t \"ddotseq;\":0x2a77, \"deg\":0xb0,\n\t \"deg;\":0xb0, \"delta;\":0x3b4,\n\t \"demptyv;\":0x29b1, \"dfisht;\":0x297f,\n\t \"dfr;\":[0xd835,0xdd21], \"dharl;\":0x21c3,\n\t \"dharr;\":0x21c2, \"diam;\":0x22c4,\n\t \"diamond;\":0x22c4, \"diamondsuit;\":0x2666,\n\t \"diams;\":0x2666, \"die;\":0xa8,\n\t \"digamma;\":0x3dd, \"disin;\":0x22f2,\n\t \"div;\":0xf7, \"divide\":0xf7,\n\t \"divide;\":0xf7, \"divideontimes;\":0x22c7,\n\t \"divonx;\":0x22c7, \"djcy;\":0x452,\n\t \"dlcorn;\":0x231e, \"dlcrop;\":0x230d,\n\t \"dollar;\":0x24, \"dopf;\":[0xd835,0xdd55],\n\t \"dot;\":0x2d9, \"doteq;\":0x2250,\n\t \"doteqdot;\":0x2251, \"dotminus;\":0x2238,\n\t \"dotplus;\":0x2214, \"dotsquare;\":0x22a1,\n\t \"doublebarwedge;\":0x2306, \"downarrow;\":0x2193,\n\t \"downdownarrows;\":0x21ca, \"downharpoonleft;\":0x21c3,\n\t \"downharpoonright;\":0x21c2, \"drbkarow;\":0x2910,\n\t \"drcorn;\":0x231f, \"drcrop;\":0x230c,\n\t \"dscr;\":[0xd835,0xdcb9], \"dscy;\":0x455,\n\t \"dsol;\":0x29f6, \"dstrok;\":0x111,\n\t \"dtdot;\":0x22f1, \"dtri;\":0x25bf,\n\t \"dtrif;\":0x25be, \"duarr;\":0x21f5,\n\t \"duhar;\":0x296f, \"dwangle;\":0x29a6,\n\t \"dzcy;\":0x45f, \"dzigrarr;\":0x27ff,\n\t \"eDDot;\":0x2a77, \"eDot;\":0x2251,\n\t \"eacute\":0xe9, \"eacute;\":0xe9,\n\t \"easter;\":0x2a6e, \"ecaron;\":0x11b,\n\t \"ecir;\":0x2256, \"ecirc\":0xea,\n\t \"ecirc;\":0xea, \"ecolon;\":0x2255,\n\t \"ecy;\":0x44d, \"edot;\":0x117,\n\t \"ee;\":0x2147, \"efDot;\":0x2252,\n\t \"efr;\":[0xd835,0xdd22], \"eg;\":0x2a9a,\n\t \"egrave\":0xe8, \"egrave;\":0xe8,\n\t \"egs;\":0x2a96, \"egsdot;\":0x2a98,\n\t \"el;\":0x2a99, \"elinters;\":0x23e7,\n\t \"ell;\":0x2113, \"els;\":0x2a95,\n\t \"elsdot;\":0x2a97, \"emacr;\":0x113,\n\t \"empty;\":0x2205, \"emptyset;\":0x2205,\n\t \"emptyv;\":0x2205, \"emsp13;\":0x2004,\n\t \"emsp14;\":0x2005, \"emsp;\":0x2003,\n\t \"eng;\":0x14b, \"ensp;\":0x2002,\n\t \"eogon;\":0x119, \"eopf;\":[0xd835,0xdd56],\n\t \"epar;\":0x22d5, \"eparsl;\":0x29e3,\n\t \"eplus;\":0x2a71, \"epsi;\":0x3b5,\n\t \"epsilon;\":0x3b5, \"epsiv;\":0x3f5,\n\t \"eqcirc;\":0x2256, \"eqcolon;\":0x2255,\n\t \"eqsim;\":0x2242, \"eqslantgtr;\":0x2a96,\n\t \"eqslantless;\":0x2a95, \"equals;\":0x3d,\n\t \"equest;\":0x225f, \"equiv;\":0x2261,\n\t \"equivDD;\":0x2a78, \"eqvparsl;\":0x29e5,\n\t \"erDot;\":0x2253, \"erarr;\":0x2971,\n\t \"escr;\":0x212f, \"esdot;\":0x2250,\n\t \"esim;\":0x2242, \"eta;\":0x3b7,\n\t \"eth\":0xf0, \"eth;\":0xf0,\n\t \"euml\":0xeb, \"euml;\":0xeb,\n\t \"euro;\":0x20ac, \"excl;\":0x21,\n\t \"exist;\":0x2203, \"expectation;\":0x2130,\n\t \"exponentiale;\":0x2147, \"fallingdotseq;\":0x2252,\n\t \"fcy;\":0x444, \"female;\":0x2640,\n\t \"ffilig;\":0xfb03, \"fflig;\":0xfb00,\n\t \"ffllig;\":0xfb04, \"ffr;\":[0xd835,0xdd23],\n\t \"filig;\":0xfb01, \"fjlig;\":[0x66,0x6a],\n\t \"flat;\":0x266d, \"fllig;\":0xfb02,\n\t \"fltns;\":0x25b1, \"fnof;\":0x192,\n\t \"fopf;\":[0xd835,0xdd57], \"forall;\":0x2200,\n\t \"fork;\":0x22d4, \"forkv;\":0x2ad9,\n\t \"fpartint;\":0x2a0d, \"frac12\":0xbd,\n\t \"frac12;\":0xbd, \"frac13;\":0x2153,\n\t \"frac14\":0xbc, \"frac14;\":0xbc,\n\t \"frac15;\":0x2155, \"frac16;\":0x2159,\n\t \"frac18;\":0x215b, \"frac23;\":0x2154,\n\t \"frac25;\":0x2156, \"frac34\":0xbe,\n\t \"frac34;\":0xbe, \"frac35;\":0x2157,\n\t \"frac38;\":0x215c, \"frac45;\":0x2158,\n\t \"frac56;\":0x215a, \"frac58;\":0x215d,\n\t \"frac78;\":0x215e, \"frasl;\":0x2044,\n\t \"frown;\":0x2322, \"fscr;\":[0xd835,0xdcbb],\n\t \"gE;\":0x2267, \"gEl;\":0x2a8c,\n\t \"gacute;\":0x1f5, \"gamma;\":0x3b3,\n\t \"gammad;\":0x3dd, \"gap;\":0x2a86,\n\t \"gbreve;\":0x11f, \"gcirc;\":0x11d,\n\t \"gcy;\":0x433, \"gdot;\":0x121,\n\t \"ge;\":0x2265, \"gel;\":0x22db,\n\t \"geq;\":0x2265, \"geqq;\":0x2267,\n\t \"geqslant;\":0x2a7e, \"ges;\":0x2a7e,\n\t \"gescc;\":0x2aa9, \"gesdot;\":0x2a80,\n\t \"gesdoto;\":0x2a82, \"gesdotol;\":0x2a84,\n\t \"gesl;\":[0x22db,0xfe00], \"gesles;\":0x2a94,\n\t \"gfr;\":[0xd835,0xdd24], \"gg;\":0x226b,\n\t \"ggg;\":0x22d9, \"gimel;\":0x2137,\n\t \"gjcy;\":0x453, \"gl;\":0x2277,\n\t \"glE;\":0x2a92, \"gla;\":0x2aa5,\n\t \"glj;\":0x2aa4, \"gnE;\":0x2269,\n\t \"gnap;\":0x2a8a, \"gnapprox;\":0x2a8a,\n\t \"gne;\":0x2a88, \"gneq;\":0x2a88,\n\t \"gneqq;\":0x2269, \"gnsim;\":0x22e7,\n\t \"gopf;\":[0xd835,0xdd58], \"grave;\":0x60,\n\t \"gscr;\":0x210a, \"gsim;\":0x2273,\n\t \"gsime;\":0x2a8e, \"gsiml;\":0x2a90,\n\t \"gt\":0x3e, \"gt;\":0x3e,\n\t \"gtcc;\":0x2aa7, \"gtcir;\":0x2a7a,\n\t \"gtdot;\":0x22d7, \"gtlPar;\":0x2995,\n\t \"gtquest;\":0x2a7c, \"gtrapprox;\":0x2a86,\n\t \"gtrarr;\":0x2978, \"gtrdot;\":0x22d7,\n\t \"gtreqless;\":0x22db, \"gtreqqless;\":0x2a8c,\n\t \"gtrless;\":0x2277, \"gtrsim;\":0x2273,\n\t \"gvertneqq;\":[0x2269,0xfe00], \"gvnE;\":[0x2269,0xfe00],\n\t \"hArr;\":0x21d4, \"hairsp;\":0x200a,\n\t \"half;\":0xbd, \"hamilt;\":0x210b,\n\t \"hardcy;\":0x44a, \"harr;\":0x2194,\n\t \"harrcir;\":0x2948, \"harrw;\":0x21ad,\n\t \"hbar;\":0x210f, \"hcirc;\":0x125,\n\t \"hearts;\":0x2665, \"heartsuit;\":0x2665,\n\t \"hellip;\":0x2026, \"hercon;\":0x22b9,\n\t \"hfr;\":[0xd835,0xdd25], \"hksearow;\":0x2925,\n\t \"hkswarow;\":0x2926, \"hoarr;\":0x21ff,\n\t \"homtht;\":0x223b, \"hookleftarrow;\":0x21a9,\n\t \"hookrightarrow;\":0x21aa, \"hopf;\":[0xd835,0xdd59],\n\t \"horbar;\":0x2015, \"hscr;\":[0xd835,0xdcbd],\n\t \"hslash;\":0x210f, \"hstrok;\":0x127,\n\t \"hybull;\":0x2043, \"hyphen;\":0x2010,\n\t \"iacute\":0xed, \"iacute;\":0xed,\n\t \"ic;\":0x2063, \"icirc\":0xee,\n\t \"icirc;\":0xee, \"icy;\":0x438,\n\t \"iecy;\":0x435, \"iexcl\":0xa1,\n\t \"iexcl;\":0xa1, \"iff;\":0x21d4,\n\t \"ifr;\":[0xd835,0xdd26], \"igrave\":0xec,\n\t \"igrave;\":0xec, \"ii;\":0x2148,\n\t \"iiiint;\":0x2a0c, \"iiint;\":0x222d,\n\t \"iinfin;\":0x29dc, \"iiota;\":0x2129,\n\t \"ijlig;\":0x133, \"imacr;\":0x12b,\n\t \"image;\":0x2111, \"imagline;\":0x2110,\n\t \"imagpart;\":0x2111, \"imath;\":0x131,\n\t \"imof;\":0x22b7, \"imped;\":0x1b5,\n\t \"in;\":0x2208, \"incare;\":0x2105,\n\t \"infin;\":0x221e, \"infintie;\":0x29dd,\n\t \"inodot;\":0x131, \"int;\":0x222b,\n\t \"intcal;\":0x22ba, \"integers;\":0x2124,\n\t \"intercal;\":0x22ba, \"intlarhk;\":0x2a17,\n\t \"intprod;\":0x2a3c, \"iocy;\":0x451,\n\t \"iogon;\":0x12f, \"iopf;\":[0xd835,0xdd5a],\n\t \"iota;\":0x3b9, \"iprod;\":0x2a3c,\n\t \"iquest\":0xbf, \"iquest;\":0xbf,\n\t \"iscr;\":[0xd835,0xdcbe], \"isin;\":0x2208,\n\t \"isinE;\":0x22f9, \"isindot;\":0x22f5,\n\t \"isins;\":0x22f4, \"isinsv;\":0x22f3,\n\t \"isinv;\":0x2208, \"it;\":0x2062,\n\t \"itilde;\":0x129, \"iukcy;\":0x456,\n\t \"iuml\":0xef, \"iuml;\":0xef,\n\t \"jcirc;\":0x135, \"jcy;\":0x439,\n\t \"jfr;\":[0xd835,0xdd27], \"jmath;\":0x237,\n\t \"jopf;\":[0xd835,0xdd5b], \"jscr;\":[0xd835,0xdcbf],\n\t \"jsercy;\":0x458, \"jukcy;\":0x454,\n\t \"kappa;\":0x3ba, \"kappav;\":0x3f0,\n\t \"kcedil;\":0x137, \"kcy;\":0x43a,\n\t \"kfr;\":[0xd835,0xdd28], \"kgreen;\":0x138,\n\t \"khcy;\":0x445, \"kjcy;\":0x45c,\n\t \"kopf;\":[0xd835,0xdd5c], \"kscr;\":[0xd835,0xdcc0],\n\t \"lAarr;\":0x21da, \"lArr;\":0x21d0,\n\t \"lAtail;\":0x291b, \"lBarr;\":0x290e,\n\t \"lE;\":0x2266, \"lEg;\":0x2a8b,\n\t \"lHar;\":0x2962, \"lacute;\":0x13a,\n\t \"laemptyv;\":0x29b4, \"lagran;\":0x2112,\n\t \"lambda;\":0x3bb, \"lang;\":0x27e8,\n\t \"langd;\":0x2991, \"langle;\":0x27e8,\n\t \"lap;\":0x2a85, \"laquo\":0xab,\n\t \"laquo;\":0xab, \"larr;\":0x2190,\n\t \"larrb;\":0x21e4, \"larrbfs;\":0x291f,\n\t \"larrfs;\":0x291d, \"larrhk;\":0x21a9,\n\t \"larrlp;\":0x21ab, \"larrpl;\":0x2939,\n\t \"larrsim;\":0x2973, \"larrtl;\":0x21a2,\n\t \"lat;\":0x2aab, \"latail;\":0x2919,\n\t \"late;\":0x2aad, \"lates;\":[0x2aad,0xfe00],\n\t \"lbarr;\":0x290c, \"lbbrk;\":0x2772,\n\t \"lbrace;\":0x7b, \"lbrack;\":0x5b,\n\t \"lbrke;\":0x298b, \"lbrksld;\":0x298f,\n\t \"lbrkslu;\":0x298d, \"lcaron;\":0x13e,\n\t \"lcedil;\":0x13c, \"lceil;\":0x2308,\n\t \"lcub;\":0x7b, \"lcy;\":0x43b,\n\t \"ldca;\":0x2936, \"ldquo;\":0x201c,\n\t \"ldquor;\":0x201e, \"ldrdhar;\":0x2967,\n\t \"ldrushar;\":0x294b, \"ldsh;\":0x21b2,\n\t \"le;\":0x2264, \"leftarrow;\":0x2190,\n\t \"leftarrowtail;\":0x21a2, \"leftharpoondown;\":0x21bd,\n\t \"leftharpoonup;\":0x21bc, \"leftleftarrows;\":0x21c7,\n\t \"leftrightarrow;\":0x2194, \"leftrightarrows;\":0x21c6,\n\t \"leftrightharpoons;\":0x21cb, \"leftrightsquigarrow;\":0x21ad,\n\t \"leftthreetimes;\":0x22cb, \"leg;\":0x22da,\n\t \"leq;\":0x2264, \"leqq;\":0x2266,\n\t \"leqslant;\":0x2a7d, \"les;\":0x2a7d,\n\t \"lescc;\":0x2aa8, \"lesdot;\":0x2a7f,\n\t \"lesdoto;\":0x2a81, \"lesdotor;\":0x2a83,\n\t \"lesg;\":[0x22da,0xfe00], \"lesges;\":0x2a93,\n\t \"lessapprox;\":0x2a85, \"lessdot;\":0x22d6,\n\t \"lesseqgtr;\":0x22da, \"lesseqqgtr;\":0x2a8b,\n\t \"lessgtr;\":0x2276, \"lesssim;\":0x2272,\n\t \"lfisht;\":0x297c, \"lfloor;\":0x230a,\n\t \"lfr;\":[0xd835,0xdd29], \"lg;\":0x2276,\n\t \"lgE;\":0x2a91, \"lhard;\":0x21bd,\n\t \"lharu;\":0x21bc, \"lharul;\":0x296a,\n\t \"lhblk;\":0x2584, \"ljcy;\":0x459,\n\t \"ll;\":0x226a, \"llarr;\":0x21c7,\n\t \"llcorner;\":0x231e, \"llhard;\":0x296b,\n\t \"lltri;\":0x25fa, \"lmidot;\":0x140,\n\t \"lmoust;\":0x23b0, \"lmoustache;\":0x23b0,\n\t \"lnE;\":0x2268, \"lnap;\":0x2a89,\n\t \"lnapprox;\":0x2a89, \"lne;\":0x2a87,\n\t \"lneq;\":0x2a87, \"lneqq;\":0x2268,\n\t \"lnsim;\":0x22e6, \"loang;\":0x27ec,\n\t \"loarr;\":0x21fd, \"lobrk;\":0x27e6,\n\t \"longleftarrow;\":0x27f5, \"longleftrightarrow;\":0x27f7,\n\t \"longmapsto;\":0x27fc, \"longrightarrow;\":0x27f6,\n\t \"looparrowleft;\":0x21ab, \"looparrowright;\":0x21ac,\n\t \"lopar;\":0x2985, \"lopf;\":[0xd835,0xdd5d],\n\t \"loplus;\":0x2a2d, \"lotimes;\":0x2a34,\n\t \"lowast;\":0x2217, \"lowbar;\":0x5f,\n\t \"loz;\":0x25ca, \"lozenge;\":0x25ca,\n\t \"lozf;\":0x29eb, \"lpar;\":0x28,\n\t \"lparlt;\":0x2993, \"lrarr;\":0x21c6,\n\t \"lrcorner;\":0x231f, \"lrhar;\":0x21cb,\n\t \"lrhard;\":0x296d, \"lrm;\":0x200e,\n\t \"lrtri;\":0x22bf, \"lsaquo;\":0x2039,\n\t \"lscr;\":[0xd835,0xdcc1], \"lsh;\":0x21b0,\n\t \"lsim;\":0x2272, \"lsime;\":0x2a8d,\n\t \"lsimg;\":0x2a8f, \"lsqb;\":0x5b,\n\t \"lsquo;\":0x2018, \"lsquor;\":0x201a,\n\t \"lstrok;\":0x142, \"lt\":0x3c,\n\t \"lt;\":0x3c, \"ltcc;\":0x2aa6,\n\t \"ltcir;\":0x2a79, \"ltdot;\":0x22d6,\n\t \"lthree;\":0x22cb, \"ltimes;\":0x22c9,\n\t \"ltlarr;\":0x2976, \"ltquest;\":0x2a7b,\n\t \"ltrPar;\":0x2996, \"ltri;\":0x25c3,\n\t \"ltrie;\":0x22b4, \"ltrif;\":0x25c2,\n\t \"lurdshar;\":0x294a, \"luruhar;\":0x2966,\n\t \"lvertneqq;\":[0x2268,0xfe00], \"lvnE;\":[0x2268,0xfe00],\n\t \"mDDot;\":0x223a, \"macr\":0xaf,\n\t \"macr;\":0xaf, \"male;\":0x2642,\n\t \"malt;\":0x2720, \"maltese;\":0x2720,\n\t \"map;\":0x21a6, \"mapsto;\":0x21a6,\n\t \"mapstodown;\":0x21a7, \"mapstoleft;\":0x21a4,\n\t \"mapstoup;\":0x21a5, \"marker;\":0x25ae,\n\t \"mcomma;\":0x2a29, \"mcy;\":0x43c,\n\t \"mdash;\":0x2014, \"measuredangle;\":0x2221,\n\t \"mfr;\":[0xd835,0xdd2a], \"mho;\":0x2127,\n\t \"micro\":0xb5, \"micro;\":0xb5,\n\t \"mid;\":0x2223, \"midast;\":0x2a,\n\t \"midcir;\":0x2af0, \"middot\":0xb7,\n\t \"middot;\":0xb7, \"minus;\":0x2212,\n\t \"minusb;\":0x229f, \"minusd;\":0x2238,\n\t \"minusdu;\":0x2a2a, \"mlcp;\":0x2adb,\n\t \"mldr;\":0x2026, \"mnplus;\":0x2213,\n\t \"models;\":0x22a7, \"mopf;\":[0xd835,0xdd5e],\n\t \"mp;\":0x2213, \"mscr;\":[0xd835,0xdcc2],\n\t \"mstpos;\":0x223e, \"mu;\":0x3bc,\n\t \"multimap;\":0x22b8, \"mumap;\":0x22b8,\n\t \"nGg;\":[0x22d9,0x338], \"nGt;\":[0x226b,0x20d2],\n\t \"nGtv;\":[0x226b,0x338], \"nLeftarrow;\":0x21cd,\n\t \"nLeftrightarrow;\":0x21ce, \"nLl;\":[0x22d8,0x338],\n\t \"nLt;\":[0x226a,0x20d2], \"nLtv;\":[0x226a,0x338],\n\t \"nRightarrow;\":0x21cf, \"nVDash;\":0x22af,\n\t \"nVdash;\":0x22ae, \"nabla;\":0x2207,\n\t \"nacute;\":0x144, \"nang;\":[0x2220,0x20d2],\n\t \"nap;\":0x2249, \"napE;\":[0x2a70,0x338],\n\t \"napid;\":[0x224b,0x338], \"napos;\":0x149,\n\t \"napprox;\":0x2249, \"natur;\":0x266e,\n\t \"natural;\":0x266e, \"naturals;\":0x2115,\n\t \"nbsp\":0xa0, \"nbsp;\":0xa0,\n\t \"nbump;\":[0x224e,0x338], \"nbumpe;\":[0x224f,0x338],\n\t \"ncap;\":0x2a43, \"ncaron;\":0x148,\n\t \"ncedil;\":0x146, \"ncong;\":0x2247,\n\t \"ncongdot;\":[0x2a6d,0x338], \"ncup;\":0x2a42,\n\t \"ncy;\":0x43d, \"ndash;\":0x2013,\n\t \"ne;\":0x2260, \"neArr;\":0x21d7,\n\t \"nearhk;\":0x2924, \"nearr;\":0x2197,\n\t \"nearrow;\":0x2197, \"nedot;\":[0x2250,0x338],\n\t \"nequiv;\":0x2262, \"nesear;\":0x2928,\n\t \"nesim;\":[0x2242,0x338], \"nexist;\":0x2204,\n\t \"nexists;\":0x2204, \"nfr;\":[0xd835,0xdd2b],\n\t \"ngE;\":[0x2267,0x338], \"nge;\":0x2271,\n\t \"ngeq;\":0x2271, \"ngeqq;\":[0x2267,0x338],\n\t \"ngeqslant;\":[0x2a7e,0x338], \"nges;\":[0x2a7e,0x338],\n\t \"ngsim;\":0x2275, \"ngt;\":0x226f,\n\t \"ngtr;\":0x226f, \"nhArr;\":0x21ce,\n\t \"nharr;\":0x21ae, \"nhpar;\":0x2af2,\n\t \"ni;\":0x220b, \"nis;\":0x22fc,\n\t \"nisd;\":0x22fa, \"niv;\":0x220b,\n\t \"njcy;\":0x45a, \"nlArr;\":0x21cd,\n\t \"nlE;\":[0x2266,0x338], \"nlarr;\":0x219a,\n\t \"nldr;\":0x2025, \"nle;\":0x2270,\n\t \"nleftarrow;\":0x219a, \"nleftrightarrow;\":0x21ae,\n\t \"nleq;\":0x2270, \"nleqq;\":[0x2266,0x338],\n\t \"nleqslant;\":[0x2a7d,0x338], \"nles;\":[0x2a7d,0x338],\n\t \"nless;\":0x226e, \"nlsim;\":0x2274,\n\t \"nlt;\":0x226e, \"nltri;\":0x22ea,\n\t \"nltrie;\":0x22ec, \"nmid;\":0x2224,\n\t \"nopf;\":[0xd835,0xdd5f], \"not\":0xac,\n\t \"not;\":0xac, \"notin;\":0x2209,\n\t \"notinE;\":[0x22f9,0x338], \"notindot;\":[0x22f5,0x338],\n\t \"notinva;\":0x2209, \"notinvb;\":0x22f7,\n\t \"notinvc;\":0x22f6, \"notni;\":0x220c,\n\t \"notniva;\":0x220c, \"notnivb;\":0x22fe,\n\t \"notnivc;\":0x22fd, \"npar;\":0x2226,\n\t \"nparallel;\":0x2226, \"nparsl;\":[0x2afd,0x20e5],\n\t \"npart;\":[0x2202,0x338], \"npolint;\":0x2a14,\n\t \"npr;\":0x2280, \"nprcue;\":0x22e0,\n\t \"npre;\":[0x2aaf,0x338], \"nprec;\":0x2280,\n\t \"npreceq;\":[0x2aaf,0x338], \"nrArr;\":0x21cf,\n\t \"nrarr;\":0x219b, \"nrarrc;\":[0x2933,0x338],\n\t \"nrarrw;\":[0x219d,0x338], \"nrightarrow;\":0x219b,\n\t \"nrtri;\":0x22eb, \"nrtrie;\":0x22ed,\n\t \"nsc;\":0x2281, \"nsccue;\":0x22e1,\n\t \"nsce;\":[0x2ab0,0x338], \"nscr;\":[0xd835,0xdcc3],\n\t \"nshortmid;\":0x2224, \"nshortparallel;\":0x2226,\n\t \"nsim;\":0x2241, \"nsime;\":0x2244,\n\t \"nsimeq;\":0x2244, \"nsmid;\":0x2224,\n\t \"nspar;\":0x2226, \"nsqsube;\":0x22e2,\n\t \"nsqsupe;\":0x22e3, \"nsub;\":0x2284,\n\t \"nsubE;\":[0x2ac5,0x338], \"nsube;\":0x2288,\n\t \"nsubset;\":[0x2282,0x20d2], \"nsubseteq;\":0x2288,\n\t \"nsubseteqq;\":[0x2ac5,0x338], \"nsucc;\":0x2281,\n\t \"nsucceq;\":[0x2ab0,0x338], \"nsup;\":0x2285,\n\t \"nsupE;\":[0x2ac6,0x338], \"nsupe;\":0x2289,\n\t \"nsupset;\":[0x2283,0x20d2], \"nsupseteq;\":0x2289,\n\t \"nsupseteqq;\":[0x2ac6,0x338], \"ntgl;\":0x2279,\n\t \"ntilde\":0xf1, \"ntilde;\":0xf1,\n\t \"ntlg;\":0x2278, \"ntriangleleft;\":0x22ea,\n\t \"ntrianglelefteq;\":0x22ec, \"ntriangleright;\":0x22eb,\n\t \"ntrianglerighteq;\":0x22ed, \"nu;\":0x3bd,\n\t \"num;\":0x23, \"numero;\":0x2116,\n\t \"numsp;\":0x2007, \"nvDash;\":0x22ad,\n\t \"nvHarr;\":0x2904, \"nvap;\":[0x224d,0x20d2],\n\t \"nvdash;\":0x22ac, \"nvge;\":[0x2265,0x20d2],\n\t \"nvgt;\":[0x3e,0x20d2], \"nvinfin;\":0x29de,\n\t \"nvlArr;\":0x2902, \"nvle;\":[0x2264,0x20d2],\n\t \"nvlt;\":[0x3c,0x20d2], \"nvltrie;\":[0x22b4,0x20d2],\n\t \"nvrArr;\":0x2903, \"nvrtrie;\":[0x22b5,0x20d2],\n\t \"nvsim;\":[0x223c,0x20d2], \"nwArr;\":0x21d6,\n\t \"nwarhk;\":0x2923, \"nwarr;\":0x2196,\n\t \"nwarrow;\":0x2196, \"nwnear;\":0x2927,\n\t \"oS;\":0x24c8, \"oacute\":0xf3,\n\t \"oacute;\":0xf3, \"oast;\":0x229b,\n\t \"ocir;\":0x229a, \"ocirc\":0xf4,\n\t \"ocirc;\":0xf4, \"ocy;\":0x43e,\n\t \"odash;\":0x229d, \"odblac;\":0x151,\n\t \"odiv;\":0x2a38, \"odot;\":0x2299,\n\t \"odsold;\":0x29bc, \"oelig;\":0x153,\n\t \"ofcir;\":0x29bf, \"ofr;\":[0xd835,0xdd2c],\n\t \"ogon;\":0x2db, \"ograve\":0xf2,\n\t \"ograve;\":0xf2, \"ogt;\":0x29c1,\n\t \"ohbar;\":0x29b5, \"ohm;\":0x3a9,\n\t \"oint;\":0x222e, \"olarr;\":0x21ba,\n\t \"olcir;\":0x29be, \"olcross;\":0x29bb,\n\t \"oline;\":0x203e, \"olt;\":0x29c0,\n\t \"omacr;\":0x14d, \"omega;\":0x3c9,\n\t \"omicron;\":0x3bf, \"omid;\":0x29b6,\n\t \"ominus;\":0x2296, \"oopf;\":[0xd835,0xdd60],\n\t \"opar;\":0x29b7, \"operp;\":0x29b9,\n\t \"oplus;\":0x2295, \"or;\":0x2228,\n\t \"orarr;\":0x21bb, \"ord;\":0x2a5d,\n\t \"order;\":0x2134, \"orderof;\":0x2134,\n\t \"ordf\":0xaa, \"ordf;\":0xaa,\n\t \"ordm\":0xba, \"ordm;\":0xba,\n\t \"origof;\":0x22b6, \"oror;\":0x2a56,\n\t \"orslope;\":0x2a57, \"orv;\":0x2a5b,\n\t \"oscr;\":0x2134, \"oslash\":0xf8,\n\t \"oslash;\":0xf8, \"osol;\":0x2298,\n\t \"otilde\":0xf5, \"otilde;\":0xf5,\n\t \"otimes;\":0x2297, \"otimesas;\":0x2a36,\n\t \"ouml\":0xf6, \"ouml;\":0xf6,\n\t \"ovbar;\":0x233d, \"par;\":0x2225,\n\t \"para\":0xb6, \"para;\":0xb6,\n\t \"parallel;\":0x2225, \"parsim;\":0x2af3,\n\t \"parsl;\":0x2afd, \"part;\":0x2202,\n\t \"pcy;\":0x43f, \"percnt;\":0x25,\n\t \"period;\":0x2e, \"permil;\":0x2030,\n\t \"perp;\":0x22a5, \"pertenk;\":0x2031,\n\t \"pfr;\":[0xd835,0xdd2d], \"phi;\":0x3c6,\n\t \"phiv;\":0x3d5, \"phmmat;\":0x2133,\n\t \"phone;\":0x260e, \"pi;\":0x3c0,\n\t \"pitchfork;\":0x22d4, \"piv;\":0x3d6,\n\t \"planck;\":0x210f, \"planckh;\":0x210e,\n\t \"plankv;\":0x210f, \"plus;\":0x2b,\n\t \"plusacir;\":0x2a23, \"plusb;\":0x229e,\n\t \"pluscir;\":0x2a22, \"plusdo;\":0x2214,\n\t \"plusdu;\":0x2a25, \"pluse;\":0x2a72,\n\t \"plusmn\":0xb1, \"plusmn;\":0xb1,\n\t \"plussim;\":0x2a26, \"plustwo;\":0x2a27,\n\t \"pm;\":0xb1, \"pointint;\":0x2a15,\n\t \"popf;\":[0xd835,0xdd61], \"pound\":0xa3,\n\t \"pound;\":0xa3, \"pr;\":0x227a,\n\t \"prE;\":0x2ab3, \"prap;\":0x2ab7,\n\t \"prcue;\":0x227c, \"pre;\":0x2aaf,\n\t \"prec;\":0x227a, \"precapprox;\":0x2ab7,\n\t \"preccurlyeq;\":0x227c, \"preceq;\":0x2aaf,\n\t \"precnapprox;\":0x2ab9, \"precneqq;\":0x2ab5,\n\t \"precnsim;\":0x22e8, \"precsim;\":0x227e,\n\t \"prime;\":0x2032, \"primes;\":0x2119,\n\t \"prnE;\":0x2ab5, \"prnap;\":0x2ab9,\n\t \"prnsim;\":0x22e8, \"prod;\":0x220f,\n\t \"profalar;\":0x232e, \"profline;\":0x2312,\n\t \"profsurf;\":0x2313, \"prop;\":0x221d,\n\t \"propto;\":0x221d, \"prsim;\":0x227e,\n\t \"prurel;\":0x22b0, \"pscr;\":[0xd835,0xdcc5],\n\t \"psi;\":0x3c8, \"puncsp;\":0x2008,\n\t \"qfr;\":[0xd835,0xdd2e], \"qint;\":0x2a0c,\n\t \"qopf;\":[0xd835,0xdd62], \"qprime;\":0x2057,\n\t \"qscr;\":[0xd835,0xdcc6], \"quaternions;\":0x210d,\n\t \"quatint;\":0x2a16, \"quest;\":0x3f,\n\t \"questeq;\":0x225f, \"quot\":0x22,\n\t \"quot;\":0x22, \"rAarr;\":0x21db,\n\t \"rArr;\":0x21d2, \"rAtail;\":0x291c,\n\t \"rBarr;\":0x290f, \"rHar;\":0x2964,\n\t \"race;\":[0x223d,0x331], \"racute;\":0x155,\n\t \"radic;\":0x221a, \"raemptyv;\":0x29b3,\n\t \"rang;\":0x27e9, \"rangd;\":0x2992,\n\t \"range;\":0x29a5, \"rangle;\":0x27e9,\n\t \"raquo\":0xbb, \"raquo;\":0xbb,\n\t \"rarr;\":0x2192, \"rarrap;\":0x2975,\n\t \"rarrb;\":0x21e5, \"rarrbfs;\":0x2920,\n\t \"rarrc;\":0x2933, \"rarrfs;\":0x291e,\n\t \"rarrhk;\":0x21aa, \"rarrlp;\":0x21ac,\n\t \"rarrpl;\":0x2945, \"rarrsim;\":0x2974,\n\t \"rarrtl;\":0x21a3, \"rarrw;\":0x219d,\n\t \"ratail;\":0x291a, \"ratio;\":0x2236,\n\t \"rationals;\":0x211a, \"rbarr;\":0x290d,\n\t \"rbbrk;\":0x2773, \"rbrace;\":0x7d,\n\t \"rbrack;\":0x5d, \"rbrke;\":0x298c,\n\t \"rbrksld;\":0x298e, \"rbrkslu;\":0x2990,\n\t \"rcaron;\":0x159, \"rcedil;\":0x157,\n\t \"rceil;\":0x2309, \"rcub;\":0x7d,\n\t \"rcy;\":0x440, \"rdca;\":0x2937,\n\t \"rdldhar;\":0x2969, \"rdquo;\":0x201d,\n\t \"rdquor;\":0x201d, \"rdsh;\":0x21b3,\n\t \"real;\":0x211c, \"realine;\":0x211b,\n\t \"realpart;\":0x211c, \"reals;\":0x211d,\n\t \"rect;\":0x25ad, \"reg\":0xae,\n\t \"reg;\":0xae, \"rfisht;\":0x297d,\n\t \"rfloor;\":0x230b, \"rfr;\":[0xd835,0xdd2f],\n\t \"rhard;\":0x21c1, \"rharu;\":0x21c0,\n\t \"rharul;\":0x296c, \"rho;\":0x3c1,\n\t \"rhov;\":0x3f1, \"rightarrow;\":0x2192,\n\t \"rightarrowtail;\":0x21a3, \"rightharpoondown;\":0x21c1,\n\t \"rightharpoonup;\":0x21c0, \"rightleftarrows;\":0x21c4,\n\t \"rightleftharpoons;\":0x21cc, \"rightrightarrows;\":0x21c9,\n\t \"rightsquigarrow;\":0x219d, \"rightthreetimes;\":0x22cc,\n\t \"ring;\":0x2da, \"risingdotseq;\":0x2253,\n\t \"rlarr;\":0x21c4, \"rlhar;\":0x21cc,\n\t \"rlm;\":0x200f, \"rmoust;\":0x23b1,\n\t \"rmoustache;\":0x23b1, \"rnmid;\":0x2aee,\n\t \"roang;\":0x27ed, \"roarr;\":0x21fe,\n\t \"robrk;\":0x27e7, \"ropar;\":0x2986,\n\t \"ropf;\":[0xd835,0xdd63], \"roplus;\":0x2a2e,\n\t \"rotimes;\":0x2a35, \"rpar;\":0x29,\n\t \"rpargt;\":0x2994, \"rppolint;\":0x2a12,\n\t \"rrarr;\":0x21c9, \"rsaquo;\":0x203a,\n\t \"rscr;\":[0xd835,0xdcc7], \"rsh;\":0x21b1,\n\t \"rsqb;\":0x5d, \"rsquo;\":0x2019,\n\t \"rsquor;\":0x2019, \"rthree;\":0x22cc,\n\t \"rtimes;\":0x22ca, \"rtri;\":0x25b9,\n\t \"rtrie;\":0x22b5, \"rtrif;\":0x25b8,\n\t \"rtriltri;\":0x29ce, \"ruluhar;\":0x2968,\n\t \"rx;\":0x211e, \"sacute;\":0x15b,\n\t \"sbquo;\":0x201a, \"sc;\":0x227b,\n\t \"scE;\":0x2ab4, \"scap;\":0x2ab8,\n\t \"scaron;\":0x161, \"sccue;\":0x227d,\n\t \"sce;\":0x2ab0, \"scedil;\":0x15f,\n\t \"scirc;\":0x15d, \"scnE;\":0x2ab6,\n\t \"scnap;\":0x2aba, \"scnsim;\":0x22e9,\n\t \"scpolint;\":0x2a13, \"scsim;\":0x227f,\n\t \"scy;\":0x441, \"sdot;\":0x22c5,\n\t \"sdotb;\":0x22a1, \"sdote;\":0x2a66,\n\t \"seArr;\":0x21d8, \"searhk;\":0x2925,\n\t \"searr;\":0x2198, \"searrow;\":0x2198,\n\t \"sect\":0xa7, \"sect;\":0xa7,\n\t \"semi;\":0x3b, \"seswar;\":0x2929,\n\t \"setminus;\":0x2216, \"setmn;\":0x2216,\n\t \"sext;\":0x2736, \"sfr;\":[0xd835,0xdd30],\n\t \"sfrown;\":0x2322, \"sharp;\":0x266f,\n\t \"shchcy;\":0x449, \"shcy;\":0x448,\n\t \"shortmid;\":0x2223, \"shortparallel;\":0x2225,\n\t \"shy\":0xad, \"shy;\":0xad,\n\t \"sigma;\":0x3c3, \"sigmaf;\":0x3c2,\n\t \"sigmav;\":0x3c2, \"sim;\":0x223c,\n\t \"simdot;\":0x2a6a, \"sime;\":0x2243,\n\t \"simeq;\":0x2243, \"simg;\":0x2a9e,\n\t \"simgE;\":0x2aa0, \"siml;\":0x2a9d,\n\t \"simlE;\":0x2a9f, \"simne;\":0x2246,\n\t \"simplus;\":0x2a24, \"simrarr;\":0x2972,\n\t \"slarr;\":0x2190, \"smallsetminus;\":0x2216,\n\t \"smashp;\":0x2a33, \"smeparsl;\":0x29e4,\n\t \"smid;\":0x2223, \"smile;\":0x2323,\n\t \"smt;\":0x2aaa, \"smte;\":0x2aac,\n\t \"smtes;\":[0x2aac,0xfe00], \"softcy;\":0x44c,\n\t \"sol;\":0x2f, \"solb;\":0x29c4,\n\t \"solbar;\":0x233f, \"sopf;\":[0xd835,0xdd64],\n\t \"spades;\":0x2660, \"spadesuit;\":0x2660,\n\t \"spar;\":0x2225, \"sqcap;\":0x2293,\n\t \"sqcaps;\":[0x2293,0xfe00], \"sqcup;\":0x2294,\n\t \"sqcups;\":[0x2294,0xfe00], \"sqsub;\":0x228f,\n\t \"sqsube;\":0x2291, \"sqsubset;\":0x228f,\n\t \"sqsubseteq;\":0x2291, \"sqsup;\":0x2290,\n\t \"sqsupe;\":0x2292, \"sqsupset;\":0x2290,\n\t \"sqsupseteq;\":0x2292, \"squ;\":0x25a1,\n\t \"square;\":0x25a1, \"squarf;\":0x25aa,\n\t \"squf;\":0x25aa, \"srarr;\":0x2192,\n\t \"sscr;\":[0xd835,0xdcc8], \"ssetmn;\":0x2216,\n\t \"ssmile;\":0x2323, \"sstarf;\":0x22c6,\n\t \"star;\":0x2606, \"starf;\":0x2605,\n\t \"straightepsilon;\":0x3f5, \"straightphi;\":0x3d5,\n\t \"strns;\":0xaf, \"sub;\":0x2282,\n\t \"subE;\":0x2ac5, \"subdot;\":0x2abd,\n\t \"sube;\":0x2286, \"subedot;\":0x2ac3,\n\t \"submult;\":0x2ac1, \"subnE;\":0x2acb,\n\t \"subne;\":0x228a, \"subplus;\":0x2abf,\n\t \"subrarr;\":0x2979, \"subset;\":0x2282,\n\t \"subseteq;\":0x2286, \"subseteqq;\":0x2ac5,\n\t \"subsetneq;\":0x228a, \"subsetneqq;\":0x2acb,\n\t \"subsim;\":0x2ac7, \"subsub;\":0x2ad5,\n\t \"subsup;\":0x2ad3, \"succ;\":0x227b,\n\t \"succapprox;\":0x2ab8, \"succcurlyeq;\":0x227d,\n\t \"succeq;\":0x2ab0, \"succnapprox;\":0x2aba,\n\t \"succneqq;\":0x2ab6, \"succnsim;\":0x22e9,\n\t \"succsim;\":0x227f, \"sum;\":0x2211,\n\t \"sung;\":0x266a, \"sup1\":0xb9,\n\t \"sup1;\":0xb9, \"sup2\":0xb2,\n\t \"sup2;\":0xb2, \"sup3\":0xb3,\n\t \"sup3;\":0xb3, \"sup;\":0x2283,\n\t \"supE;\":0x2ac6, \"supdot;\":0x2abe,\n\t \"supdsub;\":0x2ad8, \"supe;\":0x2287,\n\t \"supedot;\":0x2ac4, \"suphsol;\":0x27c9,\n\t \"suphsub;\":0x2ad7, \"suplarr;\":0x297b,\n\t \"supmult;\":0x2ac2, \"supnE;\":0x2acc,\n\t \"supne;\":0x228b, \"supplus;\":0x2ac0,\n\t \"supset;\":0x2283, \"supseteq;\":0x2287,\n\t \"supseteqq;\":0x2ac6, \"supsetneq;\":0x228b,\n\t \"supsetneqq;\":0x2acc, \"supsim;\":0x2ac8,\n\t \"supsub;\":0x2ad4, \"supsup;\":0x2ad6,\n\t \"swArr;\":0x21d9, \"swarhk;\":0x2926,\n\t \"swarr;\":0x2199, \"swarrow;\":0x2199,\n\t \"swnwar;\":0x292a, \"szlig\":0xdf,\n\t \"szlig;\":0xdf, \"target;\":0x2316,\n\t \"tau;\":0x3c4, \"tbrk;\":0x23b4,\n\t \"tcaron;\":0x165, \"tcedil;\":0x163,\n\t \"tcy;\":0x442, \"tdot;\":0x20db,\n\t \"telrec;\":0x2315, \"tfr;\":[0xd835,0xdd31],\n\t \"there4;\":0x2234, \"therefore;\":0x2234,\n\t \"theta;\":0x3b8, \"thetasym;\":0x3d1,\n\t \"thetav;\":0x3d1, \"thickapprox;\":0x2248,\n\t \"thicksim;\":0x223c, \"thinsp;\":0x2009,\n\t \"thkap;\":0x2248, \"thksim;\":0x223c,\n\t \"thorn\":0xfe, \"thorn;\":0xfe,\n\t \"tilde;\":0x2dc, \"times\":0xd7,\n\t \"times;\":0xd7, \"timesb;\":0x22a0,\n\t \"timesbar;\":0x2a31, \"timesd;\":0x2a30,\n\t \"tint;\":0x222d, \"toea;\":0x2928,\n\t \"top;\":0x22a4, \"topbot;\":0x2336,\n\t \"topcir;\":0x2af1, \"topf;\":[0xd835,0xdd65],\n\t \"topfork;\":0x2ada, \"tosa;\":0x2929,\n\t \"tprime;\":0x2034, \"trade;\":0x2122,\n\t \"triangle;\":0x25b5, \"triangledown;\":0x25bf,\n\t \"triangleleft;\":0x25c3, \"trianglelefteq;\":0x22b4,\n\t \"triangleq;\":0x225c, \"triangleright;\":0x25b9,\n\t \"trianglerighteq;\":0x22b5, \"tridot;\":0x25ec,\n\t \"trie;\":0x225c, \"triminus;\":0x2a3a,\n\t \"triplus;\":0x2a39, \"trisb;\":0x29cd,\n\t \"tritime;\":0x2a3b, \"trpezium;\":0x23e2,\n\t \"tscr;\":[0xd835,0xdcc9], \"tscy;\":0x446,\n\t \"tshcy;\":0x45b, \"tstrok;\":0x167,\n\t \"twixt;\":0x226c, \"twoheadleftarrow;\":0x219e,\n\t \"twoheadrightarrow;\":0x21a0, \"uArr;\":0x21d1,\n\t \"uHar;\":0x2963, \"uacute\":0xfa,\n\t \"uacute;\":0xfa, \"uarr;\":0x2191,\n\t \"ubrcy;\":0x45e, \"ubreve;\":0x16d,\n\t \"ucirc\":0xfb, \"ucirc;\":0xfb,\n\t \"ucy;\":0x443, \"udarr;\":0x21c5,\n\t \"udblac;\":0x171, \"udhar;\":0x296e,\n\t \"ufisht;\":0x297e, \"ufr;\":[0xd835,0xdd32],\n\t \"ugrave\":0xf9, \"ugrave;\":0xf9,\n\t \"uharl;\":0x21bf, \"uharr;\":0x21be,\n\t \"uhblk;\":0x2580, \"ulcorn;\":0x231c,\n\t \"ulcorner;\":0x231c, \"ulcrop;\":0x230f,\n\t \"ultri;\":0x25f8, \"umacr;\":0x16b,\n\t \"uml\":0xa8, \"uml;\":0xa8,\n\t \"uogon;\":0x173, \"uopf;\":[0xd835,0xdd66],\n\t \"uparrow;\":0x2191, \"updownarrow;\":0x2195,\n\t \"upharpoonleft;\":0x21bf, \"upharpoonright;\":0x21be,\n\t \"uplus;\":0x228e, \"upsi;\":0x3c5,\n\t \"upsih;\":0x3d2, \"upsilon;\":0x3c5,\n\t \"upuparrows;\":0x21c8, \"urcorn;\":0x231d,\n\t \"urcorner;\":0x231d, \"urcrop;\":0x230e,\n\t \"uring;\":0x16f, \"urtri;\":0x25f9,\n\t \"uscr;\":[0xd835,0xdcca], \"utdot;\":0x22f0,\n\t \"utilde;\":0x169, \"utri;\":0x25b5,\n\t \"utrif;\":0x25b4, \"uuarr;\":0x21c8,\n\t \"uuml\":0xfc, \"uuml;\":0xfc,\n\t \"uwangle;\":0x29a7, \"vArr;\":0x21d5,\n\t \"vBar;\":0x2ae8, \"vBarv;\":0x2ae9,\n\t \"vDash;\":0x22a8, \"vangrt;\":0x299c,\n\t \"varepsilon;\":0x3f5, \"varkappa;\":0x3f0,\n\t \"varnothing;\":0x2205, \"varphi;\":0x3d5,\n\t \"varpi;\":0x3d6, \"varpropto;\":0x221d,\n\t \"varr;\":0x2195, \"varrho;\":0x3f1,\n\t \"varsigma;\":0x3c2, \"varsubsetneq;\":[0x228a,0xfe00],\n\t \"varsubsetneqq;\":[0x2acb,0xfe00], \"varsupsetneq;\":[0x228b,0xfe00],\n\t \"varsupsetneqq;\":[0x2acc,0xfe00], \"vartheta;\":0x3d1,\n\t \"vartriangleleft;\":0x22b2, \"vartriangleright;\":0x22b3,\n\t \"vcy;\":0x432, \"vdash;\":0x22a2,\n\t \"vee;\":0x2228, \"veebar;\":0x22bb,\n\t \"veeeq;\":0x225a, \"vellip;\":0x22ee,\n\t \"verbar;\":0x7c, \"vert;\":0x7c,\n\t \"vfr;\":[0xd835,0xdd33], \"vltri;\":0x22b2,\n\t \"vnsub;\":[0x2282,0x20d2], \"vnsup;\":[0x2283,0x20d2],\n\t \"vopf;\":[0xd835,0xdd67], \"vprop;\":0x221d,\n\t \"vrtri;\":0x22b3, \"vscr;\":[0xd835,0xdccb],\n\t \"vsubnE;\":[0x2acb,0xfe00], \"vsubne;\":[0x228a,0xfe00],\n\t \"vsupnE;\":[0x2acc,0xfe00], \"vsupne;\":[0x228b,0xfe00],\n\t \"vzigzag;\":0x299a, \"wcirc;\":0x175,\n\t \"wedbar;\":0x2a5f, \"wedge;\":0x2227,\n\t \"wedgeq;\":0x2259, \"weierp;\":0x2118,\n\t \"wfr;\":[0xd835,0xdd34], \"wopf;\":[0xd835,0xdd68],\n\t \"wp;\":0x2118, \"wr;\":0x2240,\n\t \"wreath;\":0x2240, \"wscr;\":[0xd835,0xdccc],\n\t \"xcap;\":0x22c2, \"xcirc;\":0x25ef,\n\t \"xcup;\":0x22c3, \"xdtri;\":0x25bd,\n\t \"xfr;\":[0xd835,0xdd35], \"xhArr;\":0x27fa,\n\t \"xharr;\":0x27f7, \"xi;\":0x3be,\n\t \"xlArr;\":0x27f8, \"xlarr;\":0x27f5,\n\t \"xmap;\":0x27fc, \"xnis;\":0x22fb,\n\t \"xodot;\":0x2a00, \"xopf;\":[0xd835,0xdd69],\n\t \"xoplus;\":0x2a01, \"xotime;\":0x2a02,\n\t \"xrArr;\":0x27f9, \"xrarr;\":0x27f6,\n\t \"xscr;\":[0xd835,0xdccd], \"xsqcup;\":0x2a06,\n\t \"xuplus;\":0x2a04, \"xutri;\":0x25b3,\n\t \"xvee;\":0x22c1, \"xwedge;\":0x22c0,\n\t \"yacute\":0xfd, \"yacute;\":0xfd,\n\t \"yacy;\":0x44f, \"ycirc;\":0x177,\n\t \"ycy;\":0x44b, \"yen\":0xa5,\n\t \"yen;\":0xa5, \"yfr;\":[0xd835,0xdd36],\n\t \"yicy;\":0x457, \"yopf;\":[0xd835,0xdd6a],\n\t \"yscr;\":[0xd835,0xdcce], \"yucy;\":0x44e,\n\t \"yuml\":0xff, \"yuml;\":0xff,\n\t \"zacute;\":0x17a, \"zcaron;\":0x17e,\n\t \"zcy;\":0x437, \"zdot;\":0x17c,\n\t \"zeetrf;\":0x2128, \"zeta;\":0x3b6,\n\t \"zfr;\":[0xd835,0xdd37], \"zhcy;\":0x436,\n\t \"zigrarr;\":0x21dd, \"zopf;\":[0xd835,0xdd6b],\n\t \"zscr;\":[0xd835,0xdccf], \"zwj;\":0x200d,\n\t \"zwnj;\":0x200c,\n\t};\n\t/*\n\t * This regexp is generated with test/tools/update-entities.js\n\t * It will always match at least one character -- but note that there\n\t * are no entities whose names are a single character long.\n\t */\n\tvar NAMEDCHARREF = /(A(?:Elig;?|MP;?|acute;?|breve;|c(?:irc;?|y;)|fr;|grave;?|lpha;|macr;|nd;|o(?:gon;|pf;)|pplyFunction;|ring;?|s(?:cr;|sign;)|tilde;?|uml;?)|B(?:a(?:ckslash;|r(?:v;|wed;))|cy;|e(?:cause;|rnoullis;|ta;)|fr;|opf;|reve;|scr;|umpeq;)|C(?:Hcy;|OPY;?|a(?:cute;|p(?:;|italDifferentialD;)|yleys;)|c(?:aron;|edil;?|irc;|onint;)|dot;|e(?:dilla;|nterDot;)|fr;|hi;|ircle(?:Dot;|Minus;|Plus;|Times;)|lo(?:ckwiseContourIntegral;|seCurly(?:DoubleQuote;|Quote;))|o(?:lon(?:;|e;)|n(?:gruent;|int;|tourIntegral;)|p(?:f;|roduct;)|unterClockwiseContourIntegral;)|ross;|scr;|up(?:;|Cap;))|D(?:D(?:;|otrahd;)|Jcy;|Scy;|Zcy;|a(?:gger;|rr;|shv;)|c(?:aron;|y;)|el(?:;|ta;)|fr;|i(?:a(?:critical(?:Acute;|Do(?:t;|ubleAcute;)|Grave;|Tilde;)|mond;)|fferentialD;)|o(?:pf;|t(?:;|Dot;|Equal;)|uble(?:ContourIntegral;|Do(?:t;|wnArrow;)|L(?:eft(?:Arrow;|RightArrow;|Tee;)|ong(?:Left(?:Arrow;|RightArrow;)|RightArrow;))|Right(?:Arrow;|Tee;)|Up(?:Arrow;|DownArrow;)|VerticalBar;)|wn(?:Arrow(?:;|Bar;|UpArrow;)|Breve;|Left(?:RightVector;|TeeVector;|Vector(?:;|Bar;))|Right(?:TeeVector;|Vector(?:;|Bar;))|Tee(?:;|Arrow;)|arrow;))|s(?:cr;|trok;))|E(?:NG;|TH;?|acute;?|c(?:aron;|irc;?|y;)|dot;|fr;|grave;?|lement;|m(?:acr;|pty(?:SmallSquare;|VerySmallSquare;))|o(?:gon;|pf;)|psilon;|qu(?:al(?:;|Tilde;)|ilibrium;)|s(?:cr;|im;)|ta;|uml;?|x(?:ists;|ponentialE;))|F(?:cy;|fr;|illed(?:SmallSquare;|VerySmallSquare;)|o(?:pf;|rAll;|uriertrf;)|scr;)|G(?:Jcy;|T;?|amma(?:;|d;)|breve;|c(?:edil;|irc;|y;)|dot;|fr;|g;|opf;|reater(?:Equal(?:;|Less;)|FullEqual;|Greater;|Less;|SlantEqual;|Tilde;)|scr;|t;)|H(?:ARDcy;|a(?:cek;|t;)|circ;|fr;|ilbertSpace;|o(?:pf;|rizontalLine;)|s(?:cr;|trok;)|ump(?:DownHump;|Equal;))|I(?:Ecy;|Jlig;|Ocy;|acute;?|c(?:irc;?|y;)|dot;|fr;|grave;?|m(?:;|a(?:cr;|ginaryI;)|plies;)|n(?:t(?:;|e(?:gral;|rsection;))|visible(?:Comma;|Times;))|o(?:gon;|pf;|ta;)|scr;|tilde;|u(?:kcy;|ml;?))|J(?:c(?:irc;|y;)|fr;|opf;|s(?:cr;|ercy;)|ukcy;)|K(?:Hcy;|Jcy;|appa;|c(?:edil;|y;)|fr;|opf;|scr;)|L(?:Jcy;|T;?|a(?:cute;|mbda;|ng;|placetrf;|rr;)|c(?:aron;|edil;|y;)|e(?:ft(?:A(?:ngleBracket;|rrow(?:;|Bar;|RightArrow;))|Ceiling;|Do(?:ubleBracket;|wn(?:TeeVector;|Vector(?:;|Bar;)))|Floor;|Right(?:Arrow;|Vector;)|T(?:ee(?:;|Arrow;|Vector;)|riangle(?:;|Bar;|Equal;))|Up(?:DownVector;|TeeVector;|Vector(?:;|Bar;))|Vector(?:;|Bar;)|arrow;|rightarrow;)|ss(?:EqualGreater;|FullEqual;|Greater;|Less;|SlantEqual;|Tilde;))|fr;|l(?:;|eftarrow;)|midot;|o(?:ng(?:Left(?:Arrow;|RightArrow;)|RightArrow;|left(?:arrow;|rightarrow;)|rightarrow;)|pf;|wer(?:LeftArrow;|RightArrow;))|s(?:cr;|h;|trok;)|t;)|M(?:ap;|cy;|e(?:diumSpace;|llintrf;)|fr;|inusPlus;|opf;|scr;|u;)|N(?:Jcy;|acute;|c(?:aron;|edil;|y;)|e(?:gative(?:MediumSpace;|Thi(?:ckSpace;|nSpace;)|VeryThinSpace;)|sted(?:GreaterGreater;|LessLess;)|wLine;)|fr;|o(?:Break;|nBreakingSpace;|pf;|t(?:;|C(?:ongruent;|upCap;)|DoubleVerticalBar;|E(?:lement;|qual(?:;|Tilde;)|xists;)|Greater(?:;|Equal;|FullEqual;|Greater;|Less;|SlantEqual;|Tilde;)|Hump(?:DownHump;|Equal;)|Le(?:ftTriangle(?:;|Bar;|Equal;)|ss(?:;|Equal;|Greater;|Less;|SlantEqual;|Tilde;))|Nested(?:GreaterGreater;|LessLess;)|Precedes(?:;|Equal;|SlantEqual;)|R(?:everseElement;|ightTriangle(?:;|Bar;|Equal;))|S(?:quareSu(?:bset(?:;|Equal;)|perset(?:;|Equal;))|u(?:bset(?:;|Equal;)|cceeds(?:;|Equal;|SlantEqual;|Tilde;)|perset(?:;|Equal;)))|Tilde(?:;|Equal;|FullEqual;|Tilde;)|VerticalBar;))|scr;|tilde;?|u;)|O(?:Elig;|acute;?|c(?:irc;?|y;)|dblac;|fr;|grave;?|m(?:acr;|ega;|icron;)|opf;|penCurly(?:DoubleQuote;|Quote;)|r;|s(?:cr;|lash;?)|ti(?:lde;?|mes;)|uml;?|ver(?:B(?:ar;|rac(?:e;|ket;))|Parenthesis;))|P(?:artialD;|cy;|fr;|hi;|i;|lusMinus;|o(?:incareplane;|pf;)|r(?:;|ecedes(?:;|Equal;|SlantEqual;|Tilde;)|ime;|o(?:duct;|portion(?:;|al;)))|s(?:cr;|i;))|Q(?:UOT;?|fr;|opf;|scr;)|R(?:Barr;|EG;?|a(?:cute;|ng;|rr(?:;|tl;))|c(?:aron;|edil;|y;)|e(?:;|verse(?:E(?:lement;|quilibrium;)|UpEquilibrium;))|fr;|ho;|ight(?:A(?:ngleBracket;|rrow(?:;|Bar;|LeftArrow;))|Ceiling;|Do(?:ubleBracket;|wn(?:TeeVector;|Vector(?:;|Bar;)))|Floor;|T(?:ee(?:;|Arrow;|Vector;)|riangle(?:;|Bar;|Equal;))|Up(?:DownVector;|TeeVector;|Vector(?:;|Bar;))|Vector(?:;|Bar;)|arrow;)|o(?:pf;|undImplies;)|rightarrow;|s(?:cr;|h;)|uleDelayed;)|S(?:H(?:CHcy;|cy;)|OFTcy;|acute;|c(?:;|aron;|edil;|irc;|y;)|fr;|hort(?:DownArrow;|LeftArrow;|RightArrow;|UpArrow;)|igma;|mallCircle;|opf;|q(?:rt;|uare(?:;|Intersection;|Su(?:bset(?:;|Equal;)|perset(?:;|Equal;))|Union;))|scr;|tar;|u(?:b(?:;|set(?:;|Equal;))|c(?:ceeds(?:;|Equal;|SlantEqual;|Tilde;)|hThat;)|m;|p(?:;|erset(?:;|Equal;)|set;)))|T(?:HORN;?|RADE;|S(?:Hcy;|cy;)|a(?:b;|u;)|c(?:aron;|edil;|y;)|fr;|h(?:e(?:refore;|ta;)|i(?:ckSpace;|nSpace;))|ilde(?:;|Equal;|FullEqual;|Tilde;)|opf;|ripleDot;|s(?:cr;|trok;))|U(?:a(?:cute;?|rr(?:;|ocir;))|br(?:cy;|eve;)|c(?:irc;?|y;)|dblac;|fr;|grave;?|macr;|n(?:der(?:B(?:ar;|rac(?:e;|ket;))|Parenthesis;)|ion(?:;|Plus;))|o(?:gon;|pf;)|p(?:Arrow(?:;|Bar;|DownArrow;)|DownArrow;|Equilibrium;|Tee(?:;|Arrow;)|arrow;|downarrow;|per(?:LeftArrow;|RightArrow;)|si(?:;|lon;))|ring;|scr;|tilde;|uml;?)|V(?:Dash;|bar;|cy;|dash(?:;|l;)|e(?:e;|r(?:bar;|t(?:;|ical(?:Bar;|Line;|Separator;|Tilde;))|yThinSpace;))|fr;|opf;|scr;|vdash;)|W(?:circ;|edge;|fr;|opf;|scr;)|X(?:fr;|i;|opf;|scr;)|Y(?:Acy;|Icy;|Ucy;|acute;?|c(?:irc;|y;)|fr;|opf;|scr;|uml;)|Z(?:Hcy;|acute;|c(?:aron;|y;)|dot;|e(?:roWidthSpace;|ta;)|fr;|opf;|scr;)|a(?:acute;?|breve;|c(?:;|E;|d;|irc;?|ute;?|y;)|elig;?|f(?:;|r;)|grave;?|l(?:e(?:fsym;|ph;)|pha;)|m(?:a(?:cr;|lg;)|p;?)|n(?:d(?:;|and;|d;|slope;|v;)|g(?:;|e;|le;|msd(?:;|a(?:a;|b;|c;|d;|e;|f;|g;|h;))|rt(?:;|vb(?:;|d;))|s(?:ph;|t;)|zarr;))|o(?:gon;|pf;)|p(?:;|E;|acir;|e;|id;|os;|prox(?:;|eq;))|ring;?|s(?:cr;|t;|ymp(?:;|eq;))|tilde;?|uml;?|w(?:conint;|int;))|b(?:Not;|a(?:ck(?:cong;|epsilon;|prime;|sim(?:;|eq;))|r(?:vee;|wed(?:;|ge;)))|brk(?:;|tbrk;)|c(?:ong;|y;)|dquo;|e(?:caus(?:;|e;)|mptyv;|psi;|rnou;|t(?:a;|h;|ween;))|fr;|ig(?:c(?:ap;|irc;|up;)|o(?:dot;|plus;|times;)|s(?:qcup;|tar;)|triangle(?:down;|up;)|uplus;|vee;|wedge;)|karow;|l(?:a(?:ck(?:lozenge;|square;|triangle(?:;|down;|left;|right;))|nk;)|k(?:1(?:2;|4;)|34;)|ock;)|n(?:e(?:;|quiv;)|ot;)|o(?:pf;|t(?:;|tom;)|wtie;|x(?:D(?:L;|R;|l;|r;)|H(?:;|D;|U;|d;|u;)|U(?:L;|R;|l;|r;)|V(?:;|H;|L;|R;|h;|l;|r;)|box;|d(?:L;|R;|l;|r;)|h(?:;|D;|U;|d;|u;)|minus;|plus;|times;|u(?:L;|R;|l;|r;)|v(?:;|H;|L;|R;|h;|l;|r;)))|prime;|r(?:eve;|vbar;?)|s(?:cr;|emi;|im(?:;|e;)|ol(?:;|b;|hsub;))|u(?:ll(?:;|et;)|mp(?:;|E;|e(?:;|q;))))|c(?:a(?:cute;|p(?:;|and;|brcup;|c(?:ap;|up;)|dot;|s;)|r(?:et;|on;))|c(?:a(?:ps;|ron;)|edil;?|irc;|ups(?:;|sm;))|dot;|e(?:dil;?|mptyv;|nt(?:;|erdot;|))|fr;|h(?:cy;|eck(?:;|mark;)|i;)|ir(?:;|E;|c(?:;|eq;|le(?:arrow(?:left;|right;)|d(?:R;|S;|ast;|circ;|dash;)))|e;|fnint;|mid;|scir;)|lubs(?:;|uit;)|o(?:lon(?:;|e(?:;|q;))|m(?:ma(?:;|t;)|p(?:;|fn;|le(?:ment;|xes;)))|n(?:g(?:;|dot;)|int;)|p(?:f;|rod;|y(?:;|sr;|)))|r(?:arr;|oss;)|s(?:cr;|u(?:b(?:;|e;)|p(?:;|e;)))|tdot;|u(?:darr(?:l;|r;)|e(?:pr;|sc;)|larr(?:;|p;)|p(?:;|brcap;|c(?:ap;|up;)|dot;|or;|s;)|r(?:arr(?:;|m;)|ly(?:eq(?:prec;|succ;)|vee;|wedge;)|ren;?|vearrow(?:left;|right;))|vee;|wed;)|w(?:conint;|int;)|ylcty;)|d(?:Arr;|Har;|a(?:gger;|leth;|rr;|sh(?:;|v;))|b(?:karow;|lac;)|c(?:aron;|y;)|d(?:;|a(?:gger;|rr;)|otseq;)|e(?:g;?|lta;|mptyv;)|f(?:isht;|r;)|har(?:l;|r;)|i(?:am(?:;|ond(?:;|suit;)|s;)|e;|gamma;|sin;|v(?:;|ide(?:;|ontimes;|)|onx;))|jcy;|lc(?:orn;|rop;)|o(?:llar;|pf;|t(?:;|eq(?:;|dot;)|minus;|plus;|square;)|ublebarwedge;|wn(?:arrow;|downarrows;|harpoon(?:left;|right;)))|r(?:bkarow;|c(?:orn;|rop;))|s(?:c(?:r;|y;)|ol;|trok;)|t(?:dot;|ri(?:;|f;))|u(?:arr;|har;)|wangle;|z(?:cy;|igrarr;))|e(?:D(?:Dot;|ot;)|a(?:cute;?|ster;)|c(?:aron;|ir(?:;|c;?)|olon;|y;)|dot;|e;|f(?:Dot;|r;)|g(?:;|rave;?|s(?:;|dot;))|l(?:;|inters;|l;|s(?:;|dot;))|m(?:acr;|pty(?:;|set;|v;)|sp(?:1(?:3;|4;)|;))|n(?:g;|sp;)|o(?:gon;|pf;)|p(?:ar(?:;|sl;)|lus;|si(?:;|lon;|v;))|q(?:c(?:irc;|olon;)|s(?:im;|lant(?:gtr;|less;))|u(?:als;|est;|iv(?:;|DD;))|vparsl;)|r(?:Dot;|arr;)|s(?:cr;|dot;|im;)|t(?:a;|h;?)|u(?:ml;?|ro;)|x(?:cl;|ist;|p(?:ectation;|onentiale;)))|f(?:allingdotseq;|cy;|emale;|f(?:ilig;|l(?:ig;|lig;)|r;)|ilig;|jlig;|l(?:at;|lig;|tns;)|nof;|o(?:pf;|r(?:all;|k(?:;|v;)))|partint;|r(?:a(?:c(?:1(?:2;?|3;|4;?|5;|6;|8;)|2(?:3;|5;)|3(?:4;?|5;|8;)|45;|5(?:6;|8;)|78;)|sl;)|own;)|scr;)|g(?:E(?:;|l;)|a(?:cute;|mma(?:;|d;)|p;)|breve;|c(?:irc;|y;)|dot;|e(?:;|l;|q(?:;|q;|slant;)|s(?:;|cc;|dot(?:;|o(?:;|l;))|l(?:;|es;)))|fr;|g(?:;|g;)|imel;|jcy;|l(?:;|E;|a;|j;)|n(?:E;|ap(?:;|prox;)|e(?:;|q(?:;|q;))|sim;)|opf;|rave;|s(?:cr;|im(?:;|e;|l;))|t(?:;|c(?:c;|ir;)|dot;|lPar;|quest;|r(?:a(?:pprox;|rr;)|dot;|eq(?:less;|qless;)|less;|sim;)|)|v(?:ertneqq;|nE;))|h(?:Arr;|a(?:irsp;|lf;|milt;|r(?:dcy;|r(?:;|cir;|w;)))|bar;|circ;|e(?:arts(?:;|uit;)|llip;|rcon;)|fr;|ks(?:earow;|warow;)|o(?:arr;|mtht;|ok(?:leftarrow;|rightarrow;)|pf;|rbar;)|s(?:cr;|lash;|trok;)|y(?:bull;|phen;))|i(?:acute;?|c(?:;|irc;?|y;)|e(?:cy;|xcl;?)|f(?:f;|r;)|grave;?|i(?:;|i(?:int;|nt;)|nfin;|ota;)|jlig;|m(?:a(?:cr;|g(?:e;|line;|part;)|th;)|of;|ped;)|n(?:;|care;|fin(?:;|tie;)|odot;|t(?:;|cal;|e(?:gers;|rcal;)|larhk;|prod;))|o(?:cy;|gon;|pf;|ta;)|prod;|quest;?|s(?:cr;|in(?:;|E;|dot;|s(?:;|v;)|v;))|t(?:;|ilde;)|u(?:kcy;|ml;?))|j(?:c(?:irc;|y;)|fr;|math;|opf;|s(?:cr;|ercy;)|ukcy;)|k(?:appa(?:;|v;)|c(?:edil;|y;)|fr;|green;|hcy;|jcy;|opf;|scr;)|l(?:A(?:arr;|rr;|tail;)|Barr;|E(?:;|g;)|Har;|a(?:cute;|emptyv;|gran;|mbda;|ng(?:;|d;|le;)|p;|quo;?|rr(?:;|b(?:;|fs;)|fs;|hk;|lp;|pl;|sim;|tl;)|t(?:;|ail;|e(?:;|s;)))|b(?:arr;|brk;|r(?:ac(?:e;|k;)|k(?:e;|sl(?:d;|u;))))|c(?:aron;|e(?:dil;|il;)|ub;|y;)|d(?:ca;|quo(?:;|r;)|r(?:dhar;|ushar;)|sh;)|e(?:;|ft(?:arrow(?:;|tail;)|harpoon(?:down;|up;)|leftarrows;|right(?:arrow(?:;|s;)|harpoons;|squigarrow;)|threetimes;)|g;|q(?:;|q;|slant;)|s(?:;|cc;|dot(?:;|o(?:;|r;))|g(?:;|es;)|s(?:approx;|dot;|eq(?:gtr;|qgtr;)|gtr;|sim;)))|f(?:isht;|loor;|r;)|g(?:;|E;)|h(?:ar(?:d;|u(?:;|l;))|blk;)|jcy;|l(?:;|arr;|corner;|hard;|tri;)|m(?:idot;|oust(?:;|ache;))|n(?:E;|ap(?:;|prox;)|e(?:;|q(?:;|q;))|sim;)|o(?:a(?:ng;|rr;)|brk;|ng(?:left(?:arrow;|rightarrow;)|mapsto;|rightarrow;)|oparrow(?:left;|right;)|p(?:ar;|f;|lus;)|times;|w(?:ast;|bar;)|z(?:;|enge;|f;))|par(?:;|lt;)|r(?:arr;|corner;|har(?:;|d;)|m;|tri;)|s(?:aquo;|cr;|h;|im(?:;|e;|g;)|q(?:b;|uo(?:;|r;))|trok;)|t(?:;|c(?:c;|ir;)|dot;|hree;|imes;|larr;|quest;|r(?:Par;|i(?:;|e;|f;))|)|ur(?:dshar;|uhar;)|v(?:ertneqq;|nE;))|m(?:DDot;|a(?:cr;?|l(?:e;|t(?:;|ese;))|p(?:;|sto(?:;|down;|left;|up;))|rker;)|c(?:omma;|y;)|dash;|easuredangle;|fr;|ho;|i(?:cro;?|d(?:;|ast;|cir;|dot;?)|nus(?:;|b;|d(?:;|u;)))|l(?:cp;|dr;)|nplus;|o(?:dels;|pf;)|p;|s(?:cr;|tpos;)|u(?:;|ltimap;|map;))|n(?:G(?:g;|t(?:;|v;))|L(?:eft(?:arrow;|rightarrow;)|l;|t(?:;|v;))|Rightarrow;|V(?:Dash;|dash;)|a(?:bla;|cute;|ng;|p(?:;|E;|id;|os;|prox;)|tur(?:;|al(?:;|s;)))|b(?:sp;?|ump(?:;|e;))|c(?:a(?:p;|ron;)|edil;|ong(?:;|dot;)|up;|y;)|dash;|e(?:;|Arr;|ar(?:hk;|r(?:;|ow;))|dot;|quiv;|s(?:ear;|im;)|xist(?:;|s;))|fr;|g(?:E;|e(?:;|q(?:;|q;|slant;)|s;)|sim;|t(?:;|r;))|h(?:Arr;|arr;|par;)|i(?:;|s(?:;|d;)|v;)|jcy;|l(?:Arr;|E;|arr;|dr;|e(?:;|ft(?:arrow;|rightarrow;)|q(?:;|q;|slant;)|s(?:;|s;))|sim;|t(?:;|ri(?:;|e;)))|mid;|o(?:pf;|t(?:;|in(?:;|E;|dot;|v(?:a;|b;|c;))|ni(?:;|v(?:a;|b;|c;))|))|p(?:ar(?:;|allel;|sl;|t;)|olint;|r(?:;|cue;|e(?:;|c(?:;|eq;))))|r(?:Arr;|arr(?:;|c;|w;)|ightarrow;|tri(?:;|e;))|s(?:c(?:;|cue;|e;|r;)|hort(?:mid;|parallel;)|im(?:;|e(?:;|q;))|mid;|par;|qsu(?:be;|pe;)|u(?:b(?:;|E;|e;|set(?:;|eq(?:;|q;)))|cc(?:;|eq;)|p(?:;|E;|e;|set(?:;|eq(?:;|q;)))))|t(?:gl;|ilde;?|lg;|riangle(?:left(?:;|eq;)|right(?:;|eq;)))|u(?:;|m(?:;|ero;|sp;))|v(?:Dash;|Harr;|ap;|dash;|g(?:e;|t;)|infin;|l(?:Arr;|e;|t(?:;|rie;))|r(?:Arr;|trie;)|sim;)|w(?:Arr;|ar(?:hk;|r(?:;|ow;))|near;))|o(?:S;|a(?:cute;?|st;)|c(?:ir(?:;|c;?)|y;)|d(?:ash;|blac;|iv;|ot;|sold;)|elig;|f(?:cir;|r;)|g(?:on;|rave;?|t;)|h(?:bar;|m;)|int;|l(?:arr;|c(?:ir;|ross;)|ine;|t;)|m(?:acr;|ega;|i(?:cron;|d;|nus;))|opf;|p(?:ar;|erp;|lus;)|r(?:;|arr;|d(?:;|er(?:;|of;)|f;?|m;?)|igof;|or;|slope;|v;)|s(?:cr;|lash;?|ol;)|ti(?:lde;?|mes(?:;|as;))|uml;?|vbar;)|p(?:ar(?:;|a(?:;|llel;|)|s(?:im;|l;)|t;)|cy;|er(?:cnt;|iod;|mil;|p;|tenk;)|fr;|h(?:i(?:;|v;)|mmat;|one;)|i(?:;|tchfork;|v;)|l(?:an(?:ck(?:;|h;)|kv;)|us(?:;|acir;|b;|cir;|d(?:o;|u;)|e;|mn;?|sim;|two;))|m;|o(?:intint;|pf;|und;?)|r(?:;|E;|ap;|cue;|e(?:;|c(?:;|approx;|curlyeq;|eq;|n(?:approx;|eqq;|sim;)|sim;))|ime(?:;|s;)|n(?:E;|ap;|sim;)|o(?:d;|f(?:alar;|line;|surf;)|p(?:;|to;))|sim;|urel;)|s(?:cr;|i;)|uncsp;)|q(?:fr;|int;|opf;|prime;|scr;|u(?:at(?:ernions;|int;)|est(?:;|eq;)|ot;?))|r(?:A(?:arr;|rr;|tail;)|Barr;|Har;|a(?:c(?:e;|ute;)|dic;|emptyv;|ng(?:;|d;|e;|le;)|quo;?|rr(?:;|ap;|b(?:;|fs;)|c;|fs;|hk;|lp;|pl;|sim;|tl;|w;)|t(?:ail;|io(?:;|nals;)))|b(?:arr;|brk;|r(?:ac(?:e;|k;)|k(?:e;|sl(?:d;|u;))))|c(?:aron;|e(?:dil;|il;)|ub;|y;)|d(?:ca;|ldhar;|quo(?:;|r;)|sh;)|e(?:al(?:;|ine;|part;|s;)|ct;|g;?)|f(?:isht;|loor;|r;)|h(?:ar(?:d;|u(?:;|l;))|o(?:;|v;))|i(?:ght(?:arrow(?:;|tail;)|harpoon(?:down;|up;)|left(?:arrows;|harpoons;)|rightarrows;|squigarrow;|threetimes;)|ng;|singdotseq;)|l(?:arr;|har;|m;)|moust(?:;|ache;)|nmid;|o(?:a(?:ng;|rr;)|brk;|p(?:ar;|f;|lus;)|times;)|p(?:ar(?:;|gt;)|polint;)|rarr;|s(?:aquo;|cr;|h;|q(?:b;|uo(?:;|r;)))|t(?:hree;|imes;|ri(?:;|e;|f;|ltri;))|uluhar;|x;)|s(?:acute;|bquo;|c(?:;|E;|a(?:p;|ron;)|cue;|e(?:;|dil;)|irc;|n(?:E;|ap;|sim;)|polint;|sim;|y;)|dot(?:;|b;|e;)|e(?:Arr;|ar(?:hk;|r(?:;|ow;))|ct;?|mi;|swar;|tm(?:inus;|n;)|xt;)|fr(?:;|own;)|h(?:arp;|c(?:hcy;|y;)|ort(?:mid;|parallel;)|y;?)|i(?:gma(?:;|f;|v;)|m(?:;|dot;|e(?:;|q;)|g(?:;|E;)|l(?:;|E;)|ne;|plus;|rarr;))|larr;|m(?:a(?:llsetminus;|shp;)|eparsl;|i(?:d;|le;)|t(?:;|e(?:;|s;)))|o(?:ftcy;|l(?:;|b(?:;|ar;))|pf;)|pa(?:des(?:;|uit;)|r;)|q(?:c(?:ap(?:;|s;)|up(?:;|s;))|su(?:b(?:;|e;|set(?:;|eq;))|p(?:;|e;|set(?:;|eq;)))|u(?:;|ar(?:e;|f;)|f;))|rarr;|s(?:cr;|etmn;|mile;|tarf;)|t(?:ar(?:;|f;)|r(?:aight(?:epsilon;|phi;)|ns;))|u(?:b(?:;|E;|dot;|e(?:;|dot;)|mult;|n(?:E;|e;)|plus;|rarr;|s(?:et(?:;|eq(?:;|q;)|neq(?:;|q;))|im;|u(?:b;|p;)))|cc(?:;|approx;|curlyeq;|eq;|n(?:approx;|eqq;|sim;)|sim;)|m;|ng;|p(?:1;?|2;?|3;?|;|E;|d(?:ot;|sub;)|e(?:;|dot;)|hs(?:ol;|ub;)|larr;|mult;|n(?:E;|e;)|plus;|s(?:et(?:;|eq(?:;|q;)|neq(?:;|q;))|im;|u(?:b;|p;))))|w(?:Arr;|ar(?:hk;|r(?:;|ow;))|nwar;)|zlig;?)|t(?:a(?:rget;|u;)|brk;|c(?:aron;|edil;|y;)|dot;|elrec;|fr;|h(?:e(?:re(?:4;|fore;)|ta(?:;|sym;|v;))|i(?:ck(?:approx;|sim;)|nsp;)|k(?:ap;|sim;)|orn;?)|i(?:lde;|mes(?:;|b(?:;|ar;)|d;|)|nt;)|o(?:ea;|p(?:;|bot;|cir;|f(?:;|ork;))|sa;)|prime;|r(?:ade;|i(?:angle(?:;|down;|left(?:;|eq;)|q;|right(?:;|eq;))|dot;|e;|minus;|plus;|sb;|time;)|pezium;)|s(?:c(?:r;|y;)|hcy;|trok;)|w(?:ixt;|ohead(?:leftarrow;|rightarrow;)))|u(?:Arr;|Har;|a(?:cute;?|rr;)|br(?:cy;|eve;)|c(?:irc;?|y;)|d(?:arr;|blac;|har;)|f(?:isht;|r;)|grave;?|h(?:ar(?:l;|r;)|blk;)|l(?:c(?:orn(?:;|er;)|rop;)|tri;)|m(?:acr;|l;?)|o(?:gon;|pf;)|p(?:arrow;|downarrow;|harpoon(?:left;|right;)|lus;|si(?:;|h;|lon;)|uparrows;)|r(?:c(?:orn(?:;|er;)|rop;)|ing;|tri;)|scr;|t(?:dot;|ilde;|ri(?:;|f;))|u(?:arr;|ml;?)|wangle;)|v(?:Arr;|Bar(?:;|v;)|Dash;|a(?:ngrt;|r(?:epsilon;|kappa;|nothing;|p(?:hi;|i;|ropto;)|r(?:;|ho;)|s(?:igma;|u(?:bsetneq(?:;|q;)|psetneq(?:;|q;)))|t(?:heta;|riangle(?:left;|right;))))|cy;|dash;|e(?:e(?:;|bar;|eq;)|llip;|r(?:bar;|t;))|fr;|ltri;|nsu(?:b;|p;)|opf;|prop;|rtri;|s(?:cr;|u(?:bn(?:E;|e;)|pn(?:E;|e;)))|zigzag;)|w(?:circ;|e(?:d(?:bar;|ge(?:;|q;))|ierp;)|fr;|opf;|p;|r(?:;|eath;)|scr;)|x(?:c(?:ap;|irc;|up;)|dtri;|fr;|h(?:Arr;|arr;)|i;|l(?:Arr;|arr;)|map;|nis;|o(?:dot;|p(?:f;|lus;)|time;)|r(?:Arr;|arr;)|s(?:cr;|qcup;)|u(?:plus;|tri;)|vee;|wedge;)|y(?:ac(?:ute;?|y;)|c(?:irc;|y;)|en;?|fr;|icy;|opf;|scr;|u(?:cy;|ml;?))|z(?:acute;|c(?:aron;|y;)|dot;|e(?:etrf;|ta;)|fr;|hcy;|igrarr;|opf;|scr;|w(?:j;|nj;)))|[\\s\\S]/g;\n\n\t// Regular expression constants used by the tokenizer and parser\n\n\t// Note that \\r is included in all of these regexps because it will need\n\t// to be converted to LF by the scanChars() function.\n\tvar DBLQUOTEATTRVAL = /[^\\r\"&\\u0000]+/g;\n\tvar SINGLEQUOTEATTRVAL = /[^\\r'&\\u0000]+/g;\n\tvar UNQUOTEDATTRVAL = /[^\\r\\t\\n\\f &>\\u0000]+/g;\n\tvar TAGNAME = /[^\\r\\t\\n\\f \\/>A-Z\\u0000]+/g;\n\tvar ATTRNAME = /[^\\r\\t\\n\\f \\/=>A-Z\\u0000]+/g;\n\n\tvar CDATATEXT = /[^\\]\\r\\u0000\\uffff]*/g;\n\tvar DATATEXT = /[^&<\\r\\u0000\\uffff]*/g;\n\tvar RAWTEXT = /[^<\\r\\u0000\\uffff]*/g;\n\tvar PLAINTEXT = /[^\\r\\u0000\\uffff]*/g;\n\t// Since we don't have the 'sticky tag', add '|.' to the end of SIMPLETAG\n\t// and SIMPLEATTR so that we are guaranteed to always match. This prevents\n\t// us from scanning past the lastIndex set. (Note that the desired matches\n\t// are always greater than 1 char long, so longest-match will ensure that .\n\t// is not matched unless the desired match fails.)\n\tvar SIMPLETAG = /(?:(\\/)?([a-z]+)>)|[\\s\\S]/g;\n\tvar SIMPLEATTR = /(?:([-a-z]+)[ \\t\\n\\f]*=[ \\t\\n\\f]*('[^'&\\r\\u0000]*'|\"[^\"&\\r\\u0000]*\"|[^\\t\\n\\r\\f \"&'\\u0000>][^&> \\t\\n\\r\\f\\u0000]*[ \\t\\n\\f]))|[\\s\\S]/g;\n\n\tvar NONWS = /[^\\x09\\x0A\\x0C\\x0D\\x20]/;\n\tvar ALLNONWS = /[^\\x09\\x0A\\x0C\\x0D\\x20]/g; // like above, with g flag\n\tvar NONWSNONNUL = /[^\\x00\\x09\\x0A\\x0C\\x0D\\x20]/; // don't allow NUL either\n\tvar LEADINGWS = /^[\\x09\\x0A\\x0C\\x0D\\x20]+/;\n\tvar NULCHARS = /\\x00/g;\n\n\t/***\n\t * These are utility functions that don't use any of the parser's\n\t * internal state.\n\t */\n\tfunction buf2str(buf) {\n\t var CHUNKSIZE=16384;\n\t if (buf.length < CHUNKSIZE) {\n\t return String.fromCharCode.apply(String, buf);\n\t }\n\t // special case for large strings, to avoid busting the stack.\n\t var result = '';\n\t for (var i = 0; i < buf.length; i += CHUNKSIZE) {\n\t result += String.fromCharCode.apply(String, buf.slice(i, i+CHUNKSIZE));\n\t }\n\t return result;\n\t}\n\n\tfunction str2buf(s) {\n\t var result = [];\n\t for (var i=0; i<s.length; i++) {\n\t result[i] = s.charCodeAt(i);\n\t }\n\t return result;\n\t}\n\n\t// Determine whether the element is a member of the set.\n\t// The set is an object that maps namespaces to objects. The objects\n\t// then map local tagnames to the value true if that tag is part of the set\n\tfunction isA(elt, set) {\n\t if (typeof set === 'string') {\n\t // convenience case for testing a particular HTML element\n\t return elt.namespaceURI === NAMESPACE.HTML &&\n\t elt.localName === set;\n\t }\n\t var tagnames = set[elt.namespaceURI];\n\t return tagnames && tagnames[elt.localName];\n\t}\n\n\tfunction isMathmlTextIntegrationPoint(n) {\n\t return isA(n, mathmlTextIntegrationPointSet);\n\t}\n\n\tfunction isHTMLIntegrationPoint(n) {\n\t if (isA(n, htmlIntegrationPointSet)) return true;\n\t if (n.namespaceURI === NAMESPACE.MATHML &&\n\t n.localName === \"annotation-xml\") {\n\t var encoding = n.getAttribute(\"encoding\");\n\t if (encoding) encoding = encoding.toLowerCase();\n\t if (encoding === \"text/html\" ||\n\t encoding === \"application/xhtml+xml\")\n\t return true;\n\t }\n\t return false;\n\t}\n\n\tfunction adjustSVGTagName(name) {\n\t if (name in svgTagNameAdjustments)\n\t return svgTagNameAdjustments[name];\n\t else\n\t return name;\n\t}\n\n\tfunction adjustSVGAttributes(attrs) {\n\t for(var i = 0, n = attrs.length; i < n; i++) {\n\t if (attrs[i][0] in svgAttrAdjustments) {\n\t attrs[i][0] = svgAttrAdjustments[attrs[i][0]];\n\t }\n\t }\n\t}\n\n\tfunction adjustMathMLAttributes(attrs) {\n\t for(var i = 0, n = attrs.length; i < n; i++) {\n\t if (attrs[i][0] === \"definitionurl\") {\n\t attrs[i][0] = \"definitionURL\";\n\t break;\n\t }\n\t }\n\t}\n\n\tfunction adjustForeignAttributes(attrs) {\n\t for(var i = 0, n = attrs.length; i < n; i++) {\n\t if (attrs[i][0] in foreignAttributes) {\n\t // Attributes with namespaces get a 3rd element:\n\t // [Qname, value, namespace]\n\t attrs[i].push(foreignAttributes[attrs[i][0]]);\n\t }\n\t }\n\t}\n\n\t// For each attribute in attrs, if elt doesn't have an attribute\n\t// by that name, add the attribute to elt\n\t// XXX: I'm ignoring namespaces for now\n\tfunction transferAttributes(attrs, elt) {\n\t for(var i = 0, n = attrs.length; i < n; i++) {\n\t var name = attrs[i][0], value = attrs[i][1];\n\t if (elt.hasAttribute(name)) continue;\n\t elt._setAttribute(name, value);\n\t }\n\t}\n\n\t/***\n\t * The ElementStack class\n\t */\n\tHTMLParser.ElementStack = function ElementStack() {\n\t this.elements = [];\n\t this.top = null; // stack.top is the \"current node\" in the spec\n\t};\n\n\t/*\n\t// This is for debugging only\n\tHTMLParser.ElementStack.prototype.toString = function(e) {\n\t return \"STACK: \" +\n\t this.elements.map(function(e) {return e.localName;}).join(\"-\");\n\t}\n\t*/\n\n\tHTMLParser.ElementStack.prototype.push = function(e) {\n\t this.elements.push(e);\n\t this.top = e;\n\t};\n\n\tHTMLParser.ElementStack.prototype.pop = function(e) {\n\t this.elements.pop();\n\t this.top = this.elements[this.elements.length-1];\n\t};\n\n\t// Pop elements off the stack up to and including the first\n\t// element with the specified (HTML) tagname\n\tHTMLParser.ElementStack.prototype.popTag = function(tag) {\n\t for(var i = this.elements.length-1; i > 0; i--) {\n\t var e = this.elements[i];\n\t if (isA(e, tag)) break;\n\t }\n\t this.elements.length = i;\n\t this.top = this.elements[i-1];\n\t};\n\n\t// Pop elements off the stack up to and including the first\n\t// element that is an instance of the specified type\n\tHTMLParser.ElementStack.prototype.popElementType = function(type) {\n\t for(var i = this.elements.length-1; i > 0; i--) {\n\t if (this.elements[i] instanceof type) break;\n\t }\n\t this.elements.length = i;\n\t this.top = this.elements[i-1];\n\t};\n\n\t// Pop elements off the stack up to and including the element e.\n\t// Note that this is very different from removeElement()\n\t// This requires that e is on the stack.\n\tHTMLParser.ElementStack.prototype.popElement = function(e) {\n\t for(var i = this.elements.length-1; i > 0; i--) {\n\t if (this.elements[i] === e) break;\n\t }\n\t this.elements.length = i;\n\t this.top = this.elements[i-1];\n\t};\n\n\t// Remove a specific element from the stack.\n\t// Do nothing if the element is not on the stack\n\tHTMLParser.ElementStack.prototype.removeElement = function(e) {\n\t if (this.top === e) this.pop();\n\t else {\n\t var idx = this.elements.lastIndexOf(e);\n\t if (idx !== -1)\n\t this.elements.splice(idx, 1);\n\t }\n\t};\n\n\tHTMLParser.ElementStack.prototype.clearToContext = function(set) {\n\t // Note that we don't loop to 0. Never pop the <html> elt off.\n\t for(var i = this.elements.length-1; i > 0; i--) {\n\t if (isA(this.elements[i], set)) break;\n\t }\n\t this.elements.length = i+1;\n\t this.top = this.elements[i];\n\t};\n\n\tHTMLParser.ElementStack.prototype.contains = function(tag) {\n\t return this.inSpecificScope(tag, Object.create(null));\n\t};\n\n\tHTMLParser.ElementStack.prototype.inSpecificScope = function(tag, set) {\n\t for(var i = this.elements.length-1; i >= 0; i--) {\n\t var elt = this.elements[i];\n\t if (isA(elt, tag)) return true;\n\t if (isA(elt, set)) return false;\n\t }\n\t return false;\n\t};\n\n\t// Like the above, but for a specific element, not a tagname\n\tHTMLParser.ElementStack.prototype.elementInSpecificScope = function(target, set) {\n\t for(var i = this.elements.length-1; i >= 0; i--) {\n\t var elt = this.elements[i];\n\t if (elt === target) return true;\n\t if (isA(elt, set)) return false;\n\t }\n\t return false;\n\t};\n\n\t// Like the above, but for an element interface, not a tagname\n\tHTMLParser.ElementStack.prototype.elementTypeInSpecificScope = function(target, set) {\n\t for(var i = this.elements.length-1; i >= 0; i--) {\n\t var elt = this.elements[i];\n\t if (elt instanceof target) return true;\n\t if (isA(elt, set)) return false;\n\t }\n\t return false;\n\t};\n\n\tHTMLParser.ElementStack.prototype.inScope = function(tag) {\n\t return this.inSpecificScope(tag, inScopeSet);\n\t};\n\n\tHTMLParser.ElementStack.prototype.elementInScope = function(e) {\n\t return this.elementInSpecificScope(e, inScopeSet);\n\t};\n\n\tHTMLParser.ElementStack.prototype.elementTypeInScope = function(type) {\n\t return this.elementTypeInSpecificScope(type, inScopeSet);\n\t};\n\n\tHTMLParser.ElementStack.prototype.inButtonScope = function(tag) {\n\t return this.inSpecificScope(tag, inButtonScopeSet);\n\t};\n\n\tHTMLParser.ElementStack.prototype.inListItemScope = function(tag) {\n\t return this.inSpecificScope(tag, inListItemScopeSet);\n\t};\n\n\tHTMLParser.ElementStack.prototype.inTableScope = function(tag) {\n\t return this.inSpecificScope(tag, inTableScopeSet);\n\t};\n\n\tHTMLParser.ElementStack.prototype.inSelectScope = function(tag) {\n\t // Can't implement this one with inSpecificScope, since it involves\n\t // a set defined by inverting another set. So implement manually.\n\t for(var i = this.elements.length-1; i >= 0; i--) {\n\t var elt = this.elements[i];\n\t if (elt.namespaceURI !== NAMESPACE.HTML) return false;\n\t var localname = elt.localName;\n\t if (localname === tag) return true;\n\t if (localname !== \"optgroup\" && localname !== \"option\")\n\t return false;\n\t }\n\t return false;\n\t};\n\n\tHTMLParser.ElementStack.prototype.generateImpliedEndTags = function(butnot, thorough) {\n\t var endTagSet = thorough ? thoroughImpliedEndTagsSet : impliedEndTagsSet;\n\t for(var i = this.elements.length-1; i >= 0; i--) {\n\t var e = this.elements[i];\n\t if (butnot && isA(e, butnot)) break;\n\t if (!isA(this.elements[i], endTagSet)) break;\n\t }\n\n\t this.elements.length = i+1;\n\t this.top = this.elements[i];\n\t};\n\n\t/***\n\t * The ActiveFormattingElements class\n\t */\n\tHTMLParser.ActiveFormattingElements = function AFE() {\n\t this.list = []; // elements\n\t this.attrs = []; // attribute tokens for cloning\n\t};\n\n\tHTMLParser.ActiveFormattingElements.prototype.MARKER = { localName: \"|\" };\n\n\t/*\n\t// For debugging\n\tHTMLParser.ActiveFormattingElements.prototype.toString = function() {\n\t return \"AFE: \" +\n\t this.list.map(function(e) { return e.localName; }).join(\"-\");\n\t}\n\t*/\n\n\tHTMLParser.ActiveFormattingElements.prototype.insertMarker = function() {\n\t this.list.push(this.MARKER);\n\t this.attrs.push(this.MARKER);\n\t};\n\n\tHTMLParser.ActiveFormattingElements.prototype.push = function(elt, attrs) {\n\t // Scan backwards: if there are already 3 copies of this element\n\t // before we encounter a marker, then drop the last one\n\t var count = 0;\n\t for(var i = this.list.length-1; i >= 0; i--) {\n\t if (this.list[i] === this.MARKER) break;\n\t // equal() is defined below\n\t if (equal(elt, this.list[i], this.attrs[i])) {\n\t count++;\n\t if (count === 3) {\n\t this.list.splice(i, 1);\n\t this.attrs.splice(i, 1);\n\t break;\n\t }\n\t }\n\t }\n\n\n\t // Now push the element onto the list\n\t this.list.push(elt);\n\n\t // Copy the attributes and push those on, too\n\t var attrcopy = [];\n\t for(var ii = 0; ii < attrs.length; ii++) {\n\t attrcopy[ii] = attrs[ii];\n\t }\n\n\t this.attrs.push(attrcopy);\n\n\t // This function defines equality of two elements for the purposes\n\t // of the AFE list. Note that it compares the new elements\n\t // attributes to the saved array of attributes associated with\n\t // the old element because a script could have changed the\n\t // old element's set of attributes\n\t function equal(newelt, oldelt, oldattrs) {\n\t if (newelt.localName !== oldelt.localName) return false;\n\t if (newelt._numattrs !== oldattrs.length) return false;\n\t for(var i = 0, n = oldattrs.length; i < n; i++) {\n\t var oldname = oldattrs[i][0];\n\t var oldval = oldattrs[i][1];\n\t if (!newelt.hasAttribute(oldname)) return false;\n\t if (newelt.getAttribute(oldname) !== oldval) return false;\n\t }\n\t return true;\n\t }\n\t};\n\n\tHTMLParser.ActiveFormattingElements.prototype.clearToMarker = function() {\n\t for(var i = this.list.length-1; i >= 0; i--) {\n\t if (this.list[i] === this.MARKER) break;\n\t }\n\t if (i < 0) i = 0;\n\t this.list.length = i;\n\t this.attrs.length = i;\n\t};\n\n\t// Find and return the last element with the specified tag between the\n\t// end of the list and the last marker on the list.\n\t// Used when parsing <a> in_body_mode()\n\tHTMLParser.ActiveFormattingElements.prototype.findElementByTag = function(tag) {\n\t for(var i = this.list.length-1; i >= 0; i--) {\n\t var elt = this.list[i];\n\t if (elt === this.MARKER) break;\n\t if (elt.localName === tag) return elt;\n\t }\n\t return null;\n\t};\n\n\tHTMLParser.ActiveFormattingElements.prototype.indexOf = function(e) {\n\t return this.list.lastIndexOf(e);\n\t};\n\n\t// Find the element e in the list and remove it\n\t// Used when parsing <a> in_body()\n\tHTMLParser.ActiveFormattingElements.prototype.remove = function(e) {\n\t var idx = this.list.lastIndexOf(e);\n\t if (idx !== -1) {\n\t this.list.splice(idx, 1);\n\t this.attrs.splice(idx, 1);\n\t }\n\t};\n\n\t// Find element a in the list and replace it with element b\n\t// XXX: Do I need to handle attributes here?\n\tHTMLParser.ActiveFormattingElements.prototype.replace = function(a, b, attrs) {\n\t var idx = this.list.lastIndexOf(a);\n\t if (idx !== -1) {\n\t this.list[idx] = b;\n\t this.attrs[idx] = attrs;\n\t }\n\t};\n\n\t// Find a in the list and insert b after it\n\t// This is only used for insert a bookmark object, so the\n\t// attrs array doesn't really matter\n\tHTMLParser.ActiveFormattingElements.prototype.insertAfter = function(a,b) {\n\t var idx = this.list.lastIndexOf(a);\n\t if (idx !== -1) {\n\t this.list.splice(idx, 0, b);\n\t this.attrs.splice(idx, 0, b);\n\t }\n\t};\n\n\n\n\n\t/***\n\t * This is the parser factory function. It is the return value of\n\t * the outer closure that it is defined within. Most of the parser\n\t * implementation details are inside this function.\n\t */\n\tfunction HTMLParser(address, fragmentContext, options) {\n\t /***\n\t * These are the parser's state variables\n\t */\n\t // Scanner state\n\t var chars = null;\n\t var numchars = 0; // Length of chars\n\t var nextchar = 0; // Index of next char\n\t var input_complete = false; // Becomes true when end() called.\n\t var scanner_skip_newline = false; // If previous char was CR\n\t var reentrant_invocations = 0;\n\t var saved_scanner_state = [];\n\t var leftovers = \"\";\n\t var first_batch = true;\n\t var paused = 0; // Becomes non-zero while loading scripts\n\n\n\t // Tokenizer state\n\t var tokenizer = data_state; // Current tokenizer state\n\t var return_state;\n\t var character_reference_code;\n\t var tagnamebuf = \"\";\n\t var lasttagname = \"\"; // holds the target end tag for text states\n\t var tempbuf = [];\n\t var attrnamebuf = \"\";\n\t var attrvaluebuf = \"\";\n\t var commentbuf = [];\n\t var doctypenamebuf = [];\n\t var doctypepublicbuf = [];\n\t var doctypesystembuf = [];\n\t var attributes = [];\n\t var is_end_tag = false;\n\n\t // Tree builder state\n\t var parser = initial_mode; // Current insertion mode\n\t var originalInsertionMode = null; // A saved insertion mode\n\t var templateInsertionModes = []; // Stack of template insertion modes.\n\t var stack = new HTMLParser.ElementStack(); // Stack of open elements\n\t var afe = new HTMLParser.ActiveFormattingElements(); // mis-nested tags\n\t var fragment = (fragmentContext!==undefined); // For innerHTML, etc.\n\t var head_element_pointer = null;\n\t var form_element_pointer = null;\n\t var scripting_enabled = true;\n\t if (fragmentContext) {\n\t\tscripting_enabled = fragmentContext.ownerDocument._scripting_enabled;\n\t }\n\t if (options && options.scripting_enabled === false)\n\t scripting_enabled = false;\n\t var frameset_ok = true;\n\t var force_quirks = false;\n\t var pending_table_text;\n\t var text_integration_mode; // XXX a spec bug workaround?\n\n\t // A single run of characters, buffered up to be sent to\n\t // the parser as a single string.\n\t var textrun = [];\n\t var textIncludesNUL = false;\n\t var ignore_linefeed = false;\n\n\t /***\n\t * This is the parser object that will be the return value of this\n\t * factory function, which is some 5000 lines below.\n\t * Note that the variable \"parser\" is the current state of the\n\t * parser's state machine. This variable \"htmlparser\" is the\n\t * return value and defines the public API of the parser\n\t */\n\t var htmlparser = {\n\t document: function() {\n\t return doc;\n\t },\n\n\t // Convenience function for internal use. Can only be called once,\n\t // as it removes the nodes from `doc` to add them to fragment.\n\t _asDocumentFragment: function() {\n\t var frag = doc.createDocumentFragment();\n\t var root = doc.firstChild;\n\t while(root.hasChildNodes()) {\n\t frag.appendChild(root.firstChild);\n\t }\n\t return frag;\n\t },\n\n\t // Internal function used from HTMLScriptElement to pause the\n\t // parser while a script is being loaded from the network\n\t pause: function() {\n\t // print(\"pausing parser\");\n\t paused++;\n\t },\n\n\t // Called when a script finishes loading\n\t resume: function() {\n\t // print(\"resuming parser\");\n\t paused--;\n\t // XXX: added this to force a resumption.\n\t // Is this the right thing to do?\n\t this.parse(\"\");\n\t },\n\n\t // Parse the HTML text s.\n\t // The second argument should be true if there is no more\n\t // text to be parsed, and should be false or omitted otherwise.\n\t // The second argument must not be set for recursive invocations\n\t // from document.write()\n\t parse: function(s, end, shouldPauseFunc) {\n\t var moreToDo;\n\n\t // If we're paused, remember the text to parse, but\n\t // don't parse it now.\n\t // (Don't invoke shouldPauseFunc because we haven't handled 'end' yet.)\n\t if (paused > 0) {\n\t leftovers += s;\n\t return true; // more to do\n\t }\n\n\n\t if (reentrant_invocations === 0) {\n\t // A normal, top-level invocation\n\t if (leftovers) {\n\t s = leftovers + s;\n\t leftovers = \"\";\n\t }\n\n\t // Add a special marker character to the end of\n\t // the buffer. If the scanner is at the end of\n\t // the buffer and input_complete is set, then this\n\t // character will transform into an EOF token.\n\t // Having an actual character that represents EOF\n\t // in the character buffer makes lookahead regexp\n\t // matching work more easily, and this is\n\t // important for character references.\n\t if (end) {\n\t s += \"\\uFFFF\";\n\t input_complete = true; // Makes scanChars() send EOF\n\t }\n\n\t chars = s;\n\t numchars = s.length;\n\t nextchar = 0;\n\n\t if (first_batch) {\n\t // We skip a leading Byte Order Mark (\\uFEFF)\n\t // on first batch of text we're given\n\t first_batch = false;\n\t if (chars.charCodeAt(0) === 0xFEFF) nextchar = 1;\n\t }\n\n\t reentrant_invocations++;\n\t moreToDo = scanChars(shouldPauseFunc);\n\t leftovers = chars.substring(nextchar, numchars);\n\t reentrant_invocations--;\n\t }\n\t else {\n\t // This is the re-entrant case, which we have to\n\t // handle a little differently.\n\t reentrant_invocations++;\n\n\t // Save current scanner state\n\t saved_scanner_state.push(chars, numchars, nextchar);\n\n\t // Set new scanner state\n\t chars = s;\n\t numchars = s.length;\n\t nextchar = 0;\n\n\t // Now scan as many of these new chars as we can\n\t scanChars();\n\t moreToDo = false;\n\n\t leftovers = chars.substring(nextchar, numchars);\n\n\t // restore old scanner state\n\t nextchar = saved_scanner_state.pop();\n\t numchars = saved_scanner_state.pop();\n\t chars = saved_scanner_state.pop();\n\n\t // If there were leftover chars from this invocation\n\t // insert them into the pending invocation's buffer\n\t // and trim already processed chars at the same time\n\t if (leftovers) {\n\t chars = leftovers + chars.substring(nextchar);\n\t numchars = chars.length;\n\t nextchar = 0;\n\t leftovers = \"\";\n\t }\n\n\t // Decrement the counter\n\t reentrant_invocations--;\n\t }\n\t return moreToDo;\n\t }\n\t };\n\n\n\t // This is the document we'll be building up\n\t var doc = new Document(true, address);\n\n\t // The document needs to know about the parser, for document.write().\n\t // This _parser property will be deleted when we're done parsing.\n\t doc._parser = htmlparser;\n\n\t // XXX I think that any document we use this parser on should support\n\t // scripts. But I may need to configure that through a parser parameter\n\t // Only documents with windows (\"browsing contexts\" to be precise)\n\t // allow scripting.\n\t doc._scripting_enabled = scripting_enabled;\n\n\n\t /***\n\t * The actual code of the HTMLParser() factory function begins here.\n\t */\n\n\t if (fragmentContext) { // for innerHTML parsing\n\t if (fragmentContext.ownerDocument._quirks)\n\t doc._quirks = true;\n\t if (fragmentContext.ownerDocument._limitedQuirks)\n\t doc._limitedQuirks = true;\n\n\t // Set the initial tokenizer state\n\t if (fragmentContext.namespaceURI === NAMESPACE.HTML) {\n\t switch(fragmentContext.localName) {\n\t case \"title\":\n\t case \"textarea\":\n\t tokenizer = rcdata_state;\n\t break;\n\t case \"style\":\n\t case \"xmp\":\n\t case \"iframe\":\n\t case \"noembed\":\n\t case \"noframes\":\n\t case \"script\":\n\t case \"plaintext\":\n\t tokenizer = plaintext_state;\n\t break;\n\t }\n\t }\n\n\t var root = doc.createElement(\"html\");\n\t doc._appendChild(root);\n\t stack.push(root);\n\t if (fragmentContext instanceof impl.HTMLTemplateElement) {\n\t templateInsertionModes.push(in_template_mode);\n\t }\n\t resetInsertionMode();\n\n\t for(var e = fragmentContext; e !== null; e = e.parentElement) {\n\t if (e instanceof impl.HTMLFormElement) {\n\t form_element_pointer = e;\n\t break;\n\t }\n\t }\n\t }\n\n\t /***\n\t * Scanner functions\n\t */\n\t // Loop through the characters in chars, and pass them one at a time\n\t // to the tokenizer FSM. Return when no more characters can be processed\n\t // (This may leave 1 or more characters in the buffer: like a CR\n\t // waiting to see if the next char is LF, or for states that require\n\t // lookahead...)\n\t function scanChars(shouldPauseFunc) {\n\t var codepoint, s, pattern, eof;\n\n\t while(nextchar < numchars) {\n\n\t // If we just tokenized a </script> tag, then the paused flag\n\t // may have been set to tell us to stop tokenizing while\n\t // the script is loading\n\t if (paused > 0 || (shouldPauseFunc && shouldPauseFunc())) {\n\t return true;\n\t }\n\n\n\t switch(typeof tokenizer.lookahead) {\n\t case 'undefined':\n\t codepoint = chars.charCodeAt(nextchar++);\n\t if (scanner_skip_newline) {\n\t scanner_skip_newline = false;\n\t if (codepoint === 0x000A) {\n\t nextchar++;\n\t continue;\n\t }\n\t }\n\t switch(codepoint) {\n\t case 0x000D:\n\t // CR always turns into LF, but if the next character\n\t // is LF, then that second LF is skipped.\n\t if (nextchar < numchars) {\n\t if (chars.charCodeAt(nextchar) === 0x000A)\n\t nextchar++;\n\t }\n\t else {\n\t // We don't know the next char right now, so we\n\t // can't check if it is a LF. So set a flag\n\t scanner_skip_newline = true;\n\t }\n\n\t // In either case, emit a LF\n\t tokenizer(0x000A);\n\n\t break;\n\t case 0xFFFF:\n\t if (input_complete && nextchar === numchars) {\n\t tokenizer(EOF); // codepoint will be 0xFFFF here\n\t break;\n\t }\n\t /* falls through */\n\t default:\n\t tokenizer(codepoint);\n\t break;\n\t }\n\t break;\n\n\t case 'number':\n\t codepoint = chars.charCodeAt(nextchar);\n\n\t // The only tokenizer states that require fixed lookahead\n\t // only consume alphanum characters, so we don't have\n\t // to worry about CR and LF in this case\n\n\t // tokenizer wants n chars of lookahead\n\t var n = tokenizer.lookahead;\n\t var needsString = true;\n\t if (n < 0) {\n\t needsString = false;\n\t n = -n;\n\t }\n\n\t if (n < numchars - nextchar) {\n\t // If we can look ahead that far\n\t s = needsString ? chars.substring(nextchar, nextchar+n) : null;\n\t eof = false;\n\t }\n\t else { // if we don't have that many characters\n\t if (input_complete) { // If no more are coming\n\t // Just return what we have\n\t s = needsString ? chars.substring(nextchar, numchars) : null;\n\t eof = true;\n\t if (codepoint === 0xFFFF && nextchar === numchars-1)\n\t codepoint = EOF;\n\t }\n\t else {\n\t // Return now and wait for more chars later\n\t return true;\n\t }\n\t }\n\t tokenizer(codepoint, s, eof);\n\t break;\n\t case 'string':\n\t codepoint = chars.charCodeAt(nextchar);\n\n\t // tokenizer wants characters up to a matching string\n\t pattern = tokenizer.lookahead;\n\t var pos = chars.indexOf(pattern, nextchar);\n\t if (pos !== -1) {\n\t s = chars.substring(nextchar, pos + pattern.length);\n\t eof = false;\n\t }\n\t else { // No match\n\t // If more characters coming, wait for them\n\t if (!input_complete) return true;\n\n\t // Otherwise, we've got to return what we've got\n\t s = chars.substring(nextchar, numchars);\n\t if (codepoint === 0xFFFF && nextchar === numchars-1)\n\t codepoint = EOF;\n\t eof = true;\n\t }\n\n\t // The tokenizer states that require this kind of\n\t // lookahead have to be careful to handle CR characters\n\t // correctly\n\t tokenizer(codepoint, s, eof);\n\t break;\n\t }\n\t }\n\t return false; // no more characters to scan!\n\t }\n\n\n\t /***\n\t * Tokenizer utility functions\n\t */\n\t function addAttribute(name,value) {\n\t // Make sure there isn't already an attribute with this name\n\t // If there is, ignore this one.\n\t for(var i = 0; i < attributes.length; i++) {\n\t if (attributes[i][0] === name) return;\n\t }\n\n\t if (value !== undefined) {\n\t attributes.push([name, value]);\n\t }\n\t else {\n\t attributes.push([name]);\n\t }\n\t }\n\n\t // Shortcut for simple attributes\n\t function handleSimpleAttribute() {\n\t SIMPLEATTR.lastIndex = nextchar-1;\n\t var matched = SIMPLEATTR.exec(chars);\n\t if (!matched) throw new Error(\"should never happen\");\n\t var name = matched[1];\n\t if (!name) return false;\n\t var value = matched[2];\n\t var len = value.length;\n\t switch(value[0]) {\n\t case '\"':\n\t case \"'\":\n\t value = value.substring(1, len-1);\n\t nextchar += (matched[0].length-1);\n\t tokenizer = after_attribute_value_quoted_state;\n\t break;\n\t default:\n\t tokenizer = before_attribute_name_state;\n\t nextchar += (matched[0].length-1);\n\t value = value.substring(0, len-1);\n\t break;\n\t }\n\n\t // Make sure there isn't already an attribute with this name\n\t // If there is, ignore this one.\n\t for(var i = 0; i < attributes.length; i++) {\n\t if (attributes[i][0] === name) return true;\n\t }\n\n\t attributes.push([name, value]);\n\t return true;\n\t }\n\n\t function beginTagName() {\n\t is_end_tag = false;\n\t tagnamebuf = \"\";\n\t attributes.length = 0;\n\t }\n\t function beginEndTagName() {\n\t is_end_tag = true;\n\t tagnamebuf = \"\";\n\t attributes.length = 0;\n\t }\n\n\t function beginTempBuf() { tempbuf.length = 0; }\n\t function beginAttrName() { attrnamebuf = \"\"; }\n\t function beginAttrValue() { attrvaluebuf = \"\"; }\n\t function beginComment() { commentbuf.length = 0; }\n\t function beginDoctype() {\n\t doctypenamebuf.length = 0;\n\t doctypepublicbuf = null;\n\t doctypesystembuf = null;\n\t }\n\t function beginDoctypePublicId() { doctypepublicbuf = []; }\n\t function beginDoctypeSystemId() { doctypesystembuf = []; }\n\t function forcequirks() { force_quirks = true; }\n\t function cdataAllowed() {\n\t return stack.top &&\n\t stack.top.namespaceURI !== \"http://www.w3.org/1999/xhtml\";\n\t }\n\n\t // Return true if the codepoints in the specified buffer match the\n\t // characters of lasttagname\n\t function appropriateEndTag(buf) {\n\t return lasttagname === buf;\n\t }\n\n\t function flushText() {\n\t if (textrun.length > 0) {\n\t var s = buf2str(textrun);\n\t textrun.length = 0;\n\n\t if (ignore_linefeed) {\n\t ignore_linefeed = false;\n\t if (s[0] === \"\\n\") s = s.substring(1);\n\t if (s.length === 0) return;\n\t }\n\n\t insertToken(TEXT, s);\n\t textIncludesNUL = false;\n\t }\n\t ignore_linefeed = false;\n\t }\n\n\t // Consume chars matched by the pattern and return them as a string. Starts\n\t // matching at the current position, so users should drop the current char\n\t // otherwise.\n\t function getMatchingChars(pattern) {\n\t pattern.lastIndex = nextchar - 1;\n\t var match = pattern.exec(chars);\n\t if (match && match.index === nextchar - 1) {\n\t match = match[0];\n\t nextchar += match.length - 1;\n\t /* Careful! Make sure we haven't matched the EOF character! */\n\t if (input_complete && nextchar === numchars) {\n\t // Oops, backup one.\n\t match = match.slice(0, -1);\n\t nextchar--;\n\t }\n\t return match;\n\t } else {\n\t throw new Error(\"should never happen\");\n\t }\n\t }\n\n\t // emit a string of chars that match a regexp\n\t // Returns false if no chars matched.\n\t function emitCharsWhile(pattern) {\n\t pattern.lastIndex = nextchar-1;\n\t var match = pattern.exec(chars)[0];\n\t if (!match) return false;\n\t emitCharString(match);\n\t nextchar += match.length - 1;\n\t return true;\n\t }\n\n\t // This is used by CDATA sections\n\t function emitCharString(s) {\n\t if (textrun.length > 0) flushText();\n\n\t if (ignore_linefeed) {\n\t ignore_linefeed = false;\n\t if (s[0] === \"\\n\") s = s.substring(1);\n\t if (s.length === 0) return;\n\t }\n\n\t insertToken(TEXT, s);\n\t }\n\n\t function emitTag() {\n\t if (is_end_tag) insertToken(ENDTAG, tagnamebuf);\n\t else {\n\t // Remember the last open tag we emitted\n\t var tagname = tagnamebuf;\n\t tagnamebuf = \"\";\n\t lasttagname = tagname;\n\t insertToken(TAG, tagname, attributes);\n\t }\n\t }\n\n\n\t // A shortcut: look ahead and if this is a open or close tag\n\t // in lowercase with no spaces and no attributes, just emit it now.\n\t function emitSimpleTag() {\n\t if (nextchar === numchars) { return false; /* not even 1 char left */ }\n\t SIMPLETAG.lastIndex = nextchar;\n\t var matched = SIMPLETAG.exec(chars);\n\t if (!matched) throw new Error(\"should never happen\");\n\t var tagname = matched[2];\n\t if (!tagname) return false;\n\t var endtag = matched[1];\n\t if (endtag) {\n\t nextchar += (tagname.length+2);\n\t insertToken(ENDTAG, tagname);\n\t }\n\t else {\n\t nextchar += (tagname.length+1);\n\t lasttagname = tagname;\n\t insertToken(TAG, tagname, NOATTRS);\n\t }\n\t return true;\n\t }\n\n\t function emitSelfClosingTag() {\n\t if (is_end_tag) insertToken(ENDTAG, tagnamebuf, null, true);\n\t else {\n\t insertToken(TAG, tagnamebuf, attributes, true);\n\t }\n\t }\n\n\t function emitDoctype() {\n\t insertToken(DOCTYPE,\n\t buf2str(doctypenamebuf),\n\t doctypepublicbuf ? buf2str(doctypepublicbuf) : undefined,\n\t doctypesystembuf ? buf2str(doctypesystembuf) : undefined);\n\t }\n\n\t function emitEOF() {\n\t flushText();\n\t parser(EOF); // EOF never goes to insertForeignContent()\n\t doc.modclock = 1; // Start tracking modifications\n\t }\n\n\t // Insert a token, either using the current parser insertion mode\n\t // (for HTML stuff) or using the insertForeignToken() method.\n\t var insertToken = htmlparser.insertToken = function insertToken(t, value, arg3, arg4) {\n\t flushText();\n\t var current = stack.top;\n\n\t if (!current || current.namespaceURI === NAMESPACE.HTML) {\n\t // This is the common case\n\t parser(t, value, arg3, arg4);\n\t }\n\t else {\n\t // Otherwise we may need to insert this token as foreign content\n\t if (t !== TAG && t !== TEXT) {\n\t insertForeignToken(t, value, arg3, arg4);\n\t }\n\t else {\n\t // But in some cases we treat it as regular content\n\t if ((isMathmlTextIntegrationPoint(current) &&\n\t (t === TEXT ||\n\t (t === TAG &&\n\t value !== \"mglyph\" && value !== \"malignmark\"))) ||\n\t (t === TAG &&\n\t value === \"svg\" &&\n\t current.namespaceURI === NAMESPACE.MATHML &&\n\t current.localName === \"annotation-xml\") ||\n\t isHTMLIntegrationPoint(current)) {\n\n\t // XXX: the text_integration_mode stuff is an\n\t // attempted bug workaround of mine\n\t text_integration_mode = true;\n\t parser(t, value, arg3, arg4);\n\t text_integration_mode = false;\n\t }\n\t // Otherwise it is foreign content\n\t else {\n\t insertForeignToken(t, value, arg3, arg4);\n\t }\n\t }\n\t }\n\t };\n\n\n\t /***\n\t * Tree building utility functions\n\t */\n\t function insertComment(data) {\n\t var parent = stack.top;\n\t if (foster_parent_mode && isA(parent, tablesectionrowSet)) {\n\t fosterParent(function(doc) { return doc.createComment(data); });\n\t } else {\n\t // \"If the adjusted insertion location is inside a template element,\n\t // let it instead be inside the template element's template contents\"\n\t if (parent instanceof impl.HTMLTemplateElement) {\n\t parent = parent.content;\n\t }\n\t parent._appendChild(parent.ownerDocument.createComment(data));\n\t }\n\t }\n\n\t function insertText(s) {\n\t var parent = stack.top;\n\t if (foster_parent_mode && isA(parent, tablesectionrowSet)) {\n\t fosterParent(function(doc) { return doc.createTextNode(s); });\n\t } else {\n\t // \"If the adjusted insertion location is inside a template element,\n\t // let it instead be inside the template element's template contents\"\n\t if (parent instanceof impl.HTMLTemplateElement) {\n\t parent = parent.content;\n\t }\n\t // \"If there is a Text node immediately before the adjusted insertion\n\t // location, then append data to that Text node's data.\"\n\t var lastChild = parent.lastChild;\n\t if (lastChild && lastChild.nodeType === Node.TEXT_NODE) {\n\t lastChild.appendData(s);\n\t } else {\n\t parent._appendChild(parent.ownerDocument.createTextNode(s));\n\t }\n\t }\n\t }\n\n\t function createHTMLElt(doc, name, attrs) {\n\t // Create the element this way, rather than with\n\t // doc.createElement because createElement() does error\n\t // checking on the element name that we need to avoid here.\n\t var elt = html.createElement(doc, name, null);\n\n\t if (attrs) {\n\t for(var i = 0, n = attrs.length; i < n; i++) {\n\t // Use the _ version to avoid testing the validity\n\t // of the attribute name\n\t elt._setAttribute(attrs[i][0], attrs[i][1]);\n\t }\n\t }\n\t // XXX\n\t // If the element is a resettable form element,\n\t // run its reset algorithm now\n\t // XXX\n\t // handle case where form-element-pointer is not null\n\t return elt;\n\t }\n\n\t // The in_table insertion mode turns on this flag, and that makes\n\t // insertHTMLElement use the foster parenting algorithm for elements\n\t // tags inside a table\n\t var foster_parent_mode = false;\n\n\t function insertHTMLElement(name, attrs) {\n\t var elt = insertElement(function(doc) {\n\t return createHTMLElt(doc, name, attrs);\n\t });\n\n\t // XXX\n\t // If this is a form element, set its form attribute property here\n\t if (isA(elt, formassociatedSet)) {\n\t elt._form = form_element_pointer;\n\t }\n\n\t return elt;\n\t }\n\n\t // Insert the element into the open element or foster parent it\n\t function insertElement(eltFunc) {\n\t var elt;\n\t if (foster_parent_mode && isA(stack.top, tablesectionrowSet)) {\n\t elt = fosterParent(eltFunc);\n\t }\n\t else if (stack.top instanceof impl.HTMLTemplateElement) {\n\t // \"If the adjusted insertion location is inside a template element,\n\t // let it instead be inside the template element's template contents\"\n\t elt = eltFunc(stack.top.content.ownerDocument);\n\t stack.top.content._appendChild(elt);\n\t } else {\n\t elt = eltFunc(stack.top.ownerDocument);\n\t stack.top._appendChild(elt);\n\t }\n\n\t stack.push(elt);\n\t return elt;\n\t }\n\n\t function insertForeignElement(name, attrs, ns) {\n\t return insertElement(function(doc) {\n\t // We need to prevent createElementNS from trying to parse `name` as a\n\t // `qname`, so use an internal Document#_createElementNS() interface.\n\t var elt = doc._createElementNS(name, ns, null);\n\t if (attrs) {\n\t for(var i = 0, n = attrs.length; i < n; i++) {\n\t var attr = attrs[i];\n\t if (attr.length === 2)\n\t elt._setAttribute(attr[0], attr[1]);\n\t else {\n\t elt._setAttributeNS(attr[2], attr[0], attr[1]);\n\t }\n\t }\n\t }\n\t return elt;\n\t });\n\t }\n\n\t function lastElementOfType(type) {\n\t for(var i = stack.elements.length-1; i >= 0; i--) {\n\t if (stack.elements[i] instanceof type) {\n\t return i;\n\t }\n\t }\n\t return -1;\n\t }\n\n\t function fosterParent(eltFunc) {\n\t var parent, before, lastTable = -1, lastTemplate = -1, elt;\n\n\t lastTable = lastElementOfType(impl.HTMLTableElement);\n\t lastTemplate = lastElementOfType(impl.HTMLTemplateElement);\n\n\t if (lastTemplate >= 0 && (lastTable < 0 || lastTemplate > lastTable)) {\n\t parent = stack.elements[lastTemplate];\n\t } else if (lastTable >= 0) {\n\t parent = stack.elements[lastTable].parentNode;\n\t if (parent) {\n\t before = stack.elements[lastTable];\n\t } else {\n\t parent = stack.elements[lastTable - 1];\n\t }\n\t }\n\t if (!parent) parent = stack.elements[0]; // the `html` element.\n\n\t // \"If the adjusted insertion location is inside a template element,\n\t // let it instead be inside the template element's template contents\"\n\t if (parent instanceof impl.HTMLTemplateElement) {\n\t parent = parent.content;\n\t }\n\t // Create element in the appropriate document.\n\t elt = eltFunc(parent.ownerDocument);\n\n\t if (elt.nodeType === Node.TEXT_NODE) {\n\t var prev;\n\t if (before) prev = before.previousSibling;\n\t else prev = parent.lastChild;\n\t if (prev && prev.nodeType === Node.TEXT_NODE) {\n\t prev.appendData(elt.data);\n\t return elt;\n\t }\n\t }\n\t if (before)\n\t parent.insertBefore(elt, before);\n\t else\n\t parent._appendChild(elt);\n\t return elt;\n\t }\n\n\n\t function resetInsertionMode() {\n\t var last = false;\n\t for(var i = stack.elements.length-1; i >= 0; i--) {\n\t var node = stack.elements[i];\n\t if (i === 0) {\n\t last = true;\n\t if (fragment) {\n\t node = fragmentContext;\n\t }\n\t }\n\t if (node.namespaceURI === NAMESPACE.HTML) {\n\t var tag = node.localName;\n\t switch(tag) {\n\t case \"select\":\n\t for(var j = i; j > 0; ) {\n\t var ancestor = stack.elements[--j];\n\t if (ancestor instanceof impl.HTMLTemplateElement) {\n\t break;\n\t } else if (ancestor instanceof impl.HTMLTableElement) {\n\t parser = in_select_in_table_mode;\n\t return;\n\t }\n\t }\n\t parser = in_select_mode;\n\t return;\n\t case \"tr\":\n\t parser = in_row_mode;\n\t return;\n\t case \"tbody\":\n\t case \"tfoot\":\n\t case \"thead\":\n\t parser = in_table_body_mode;\n\t return;\n\t case \"caption\":\n\t parser = in_caption_mode;\n\t return;\n\t case \"colgroup\":\n\t parser = in_column_group_mode;\n\t return;\n\t case \"table\":\n\t parser = in_table_mode;\n\t return;\n\t case \"template\":\n\t parser = templateInsertionModes[templateInsertionModes.length-1];\n\t return;\n\t case \"body\":\n\t parser = in_body_mode;\n\t return;\n\t case \"frameset\":\n\t parser = in_frameset_mode;\n\t return;\n\t case \"html\":\n\t if (head_element_pointer === null) {\n\t parser = before_head_mode;\n\t } else {\n\t parser = after_head_mode;\n\t }\n\t return;\n\t default:\n\t if (!last) {\n\t if (tag === \"head\") {\n\t parser = in_head_mode;\n\t return;\n\t }\n\t if (tag === \"td\" || tag === \"th\") {\n\t parser = in_cell_mode;\n\t return;\n\t }\n\t }\n\t }\n\t }\n\t if (last) {\n\t parser = in_body_mode;\n\t return;\n\t }\n\t }\n\t }\n\n\n\t function parseRawText(name, attrs) {\n\t insertHTMLElement(name, attrs);\n\t tokenizer = rawtext_state;\n\t originalInsertionMode = parser;\n\t parser = text_mode;\n\t }\n\n\t function parseRCDATA(name, attrs) {\n\t insertHTMLElement(name, attrs);\n\t tokenizer = rcdata_state;\n\t originalInsertionMode = parser;\n\t parser = text_mode;\n\t }\n\n\t // Make a copy of element i on the list of active formatting\n\t // elements, using its original attributes, not current\n\t // attributes (which may have been modified by a script)\n\t function afeclone(doc, i) {\n\t return {\n\t elt: createHTMLElt(doc, afe.list[i].localName, afe.attrs[i]),\n\t attrs: afe.attrs[i],\n\t };\n\t }\n\n\n\t function afereconstruct() {\n\t if (afe.list.length === 0) return;\n\t var entry = afe.list[afe.list.length-1];\n\t // If the last is a marker , do nothing\n\t if (entry === afe.MARKER) return;\n\t // Or if it is an open element, do nothing\n\t if (stack.elements.lastIndexOf(entry) !== -1) return;\n\n\t // Loop backward through the list until we find a marker or an\n\t // open element, and then move forward one from there.\n\t for(var i = afe.list.length-2; i >= 0; i--) {\n\t entry = afe.list[i];\n\t if (entry === afe.MARKER) break;\n\t if (stack.elements.lastIndexOf(entry) !== -1) break;\n\t }\n\n\t // Now loop forward, starting from the element after the current\n\t // one, recreating formatting elements and pushing them back onto\n\t // the list of open elements\n\t for(i = i+1; i < afe.list.length; i++) {\n\t var newelt = insertElement(function(doc) { return afeclone(doc, i).elt; });\n\t afe.list[i] = newelt;\n\t }\n\t }\n\n\t // Used by the adoptionAgency() function\n\t var BOOKMARK = {localName:\"BM\"};\n\n\t function adoptionAgency(tag) {\n\t // If the current node is an HTML element whose tag name is subject,\n\t // and the current node is not in the list of active formatting\n\t // elements, then pop the current node off the stack of open\n\t // elements and abort these steps.\n\t if (isA(stack.top, tag) && afe.indexOf(stack.top) === -1) {\n\t stack.pop();\n\t return true; // no more handling required\n\t }\n\n\t // Let outer loop counter be zero.\n\t var outer = 0;\n\n\t // Outer loop: If outer loop counter is greater than or\n\t // equal to eight, then abort these steps.\n\t while(outer < 8) {\n\t // Increment outer loop counter by one.\n\t outer++;\n\n\t // Let the formatting element be the last element in the list\n\t // of active formatting elements that: is between the end of\n\t // the list and the last scope marker in the list, if any, or\n\t // the start of the list otherwise, and has the same tag name\n\t // as the token.\n\t var fmtelt = afe.findElementByTag(tag);\n\n\t // If there is no such node, then abort these steps and instead\n\t // act as described in the \"any other end tag\" entry below.\n\t if (!fmtelt) {\n\t return false; // false means handle by the default case\n\t }\n\n\t // Otherwise, if there is such a node, but that node is not in\n\t // the stack of open elements, then this is a parse error;\n\t // remove the element from the list, and abort these steps.\n\t var index = stack.elements.lastIndexOf(fmtelt);\n\t if (index === -1) {\n\t afe.remove(fmtelt);\n\t return true; // true means no more handling required\n\t }\n\n\t // Otherwise, if there is such a node, and that node is also in\n\t // the stack of open elements, but the element is not in scope,\n\t // then this is a parse error; ignore the token, and abort\n\t // these steps.\n\t if (!stack.elementInScope(fmtelt)) {\n\t return true;\n\t }\n\n\t // Let the furthest block be the topmost node in the stack of\n\t // open elements that is lower in the stack than the formatting\n\t // element, and is an element in the special category. There\n\t // might not be one.\n\t var furthestblock = null, furthestblockindex;\n\t for(var i = index+1; i < stack.elements.length; i++) {\n\t if (isA(stack.elements[i], specialSet)) {\n\t furthestblock = stack.elements[i];\n\t furthestblockindex = i;\n\t break;\n\t }\n\t }\n\n\t // If there is no furthest block, then the UA must skip the\n\t // subsequent steps and instead just pop all the nodes from the\n\t // bottom of the stack of open elements, from the current node\n\t // up to and including the formatting element, and remove the\n\t // formatting element from the list of active formatting\n\t // elements.\n\t if (!furthestblock) {\n\t stack.popElement(fmtelt);\n\t afe.remove(fmtelt);\n\t return true;\n\t }\n\t else {\n\t // Let the common ancestor be the element immediately above\n\t // the formatting element in the stack of open elements.\n\t var ancestor = stack.elements[index-1];\n\n\t // Let a bookmark note the position of the formatting\n\t // element in the list of active formatting elements\n\t // relative to the elements on either side of it in the\n\t // list.\n\t afe.insertAfter(fmtelt, BOOKMARK);\n\n\t // Let node and last node be the furthest block.\n\t var node = furthestblock;\n\t var lastnode = furthestblock;\n\t var nodeindex = furthestblockindex;\n\t var nodeafeindex;\n\n\t // Let inner loop counter be zero.\n\t var inner = 0;\n\n\t while (true) {\n\n\t // Increment inner loop counter by one.\n\t inner++;\n\n\t // Let node be the element immediately above node in\n\t // the stack of open elements, or if node is no longer\n\t // in the stack of open elements (e.g. because it got\n\t // removed by this algorithm), the element that was\n\t // immediately above node in the stack of open elements\n\t // before node was removed.\n\t node = stack.elements[--nodeindex];\n\n\t // If node is the formatting element, then go\n\t // to the next step in the overall algorithm.\n\t if (node === fmtelt) break;\n\n\t // If the inner loop counter is greater than three and node\n\t // is in the list of active formatting elements, then remove\n\t // node from the list of active formatting elements.\n\t nodeafeindex = afe.indexOf(node);\n\t if (inner > 3 && nodeafeindex !== -1) {\n\t afe.remove(node);\n\t nodeafeindex = -1;\n\t }\n\n\t // If node is not in the list of active formatting\n\t // elements, then remove node from the stack of open\n\t // elements and then go back to the step labeled inner\n\t // loop.\n\t if (nodeafeindex === -1) {\n\t stack.removeElement(node);\n\t continue;\n\t }\n\n\t // Create an element for the token for which the\n\t // element node was created with common ancestor as\n\t // the intended parent, replace the entry for node\n\t // in the list of active formatting elements with an\n\t // entry for the new element, replace the entry for\n\t // node in the stack of open elements with an entry for\n\t // the new element, and let node be the new element.\n\t var newelt = afeclone(ancestor.ownerDocument, nodeafeindex);\n\t afe.replace(node, newelt.elt, newelt.attrs);\n\t stack.elements[nodeindex] = newelt.elt;\n\t node = newelt.elt;\n\n\t // If last node is the furthest block, then move the\n\t // aforementioned bookmark to be immediately after the\n\t // new node in the list of active formatting elements.\n\t if (lastnode === furthestblock) {\n\t afe.remove(BOOKMARK);\n\t afe.insertAfter(newelt.elt, BOOKMARK);\n\t }\n\n\t // Insert last node into node, first removing it from\n\t // its previous parent node if any.\n\t node._appendChild(lastnode);\n\n\t // Let last node be node.\n\t lastnode = node;\n\t }\n\n\t // If the common ancestor node is a table, tbody, tfoot,\n\t // thead, or tr element, then, foster parent whatever last\n\t // node ended up being in the previous step, first removing\n\t // it from its previous parent node if any.\n\t if (foster_parent_mode && isA(ancestor, tablesectionrowSet)) {\n\t fosterParent(function() { return lastnode; });\n\t }\n\t // Otherwise, append whatever last node ended up being in\n\t // the previous step to the common ancestor node, first\n\t // removing it from its previous parent node if any.\n\t else if (ancestor instanceof impl.HTMLTemplateElement) {\n\t ancestor.content._appendChild(lastnode);\n\t } else {\n\t ancestor._appendChild(lastnode);\n\t }\n\n\t // Create an element for the token for which the\n\t // formatting element was created, with furthest block\n\t // as the intended parent.\n\t var newelt2 = afeclone(furthestblock.ownerDocument, afe.indexOf(fmtelt));\n\n\t // Take all of the child nodes of the furthest block and\n\t // append them to the element created in the last step.\n\t while(furthestblock.hasChildNodes()) {\n\t newelt2.elt._appendChild(furthestblock.firstChild);\n\t }\n\n\t // Append that new element to the furthest block.\n\t furthestblock._appendChild(newelt2.elt);\n\n\t // Remove the formatting element from the list of active\n\t // formatting elements, and insert the new element into the\n\t // list of active formatting elements at the position of\n\t // the aforementioned bookmark.\n\t afe.remove(fmtelt);\n\t afe.replace(BOOKMARK, newelt2.elt, newelt2.attrs);\n\n\t // Remove the formatting element from the stack of open\n\t // elements, and insert the new element into the stack of\n\t // open elements immediately below the position of the\n\t // furthest block in that stack.\n\t stack.removeElement(fmtelt);\n\t var pos = stack.elements.lastIndexOf(furthestblock);\n\t stack.elements.splice(pos+1, 0, newelt2.elt);\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t // We do this when we get /script in in_text_mode\n\t function handleScriptEnd() {\n\t // XXX:\n\t // This is just a stub implementation right now and doesn't run scripts.\n\t // Getting this method right involves the event loop, URL resolution\n\t // script fetching etc. For now I just want to be able to parse\n\t // documents and test the parser.\n\n\t //var script = stack.top;\n\t stack.pop();\n\t parser = originalInsertionMode;\n\t //script._prepare();\n\t return;\n\n\t // XXX: here is what this method is supposed to do\n\n\t // Provide a stable state.\n\n\t // Let script be the current node (which will be a script\n\t // element).\n\n\t // Pop the current node off the stack of open elements.\n\n\t // Switch the insertion mode to the original insertion mode.\n\n\t // Let the old insertion point have the same value as the current\n\t // insertion point. Let the insertion point be just before the\n\t // next input character.\n\n\t // Increment the parser's script nesting level by one.\n\n\t // Prepare the script. This might cause some script to execute,\n\t // which might cause new characters to be inserted into the\n\t // tokenizer, and might cause the tokenizer to output more tokens,\n\t // resulting in a reentrant invocation of the parser.\n\n\t // Decrement the parser's script nesting level by one. If the\n\t // parser's script nesting level is zero, then set the parser\n\t // pause flag to false.\n\n\t // Let the insertion point have the value of the old insertion\n\t // point. (In other words, restore the insertion point to its\n\t // previous value. This value might be the \"undefined\" value.)\n\n\t // At this stage, if there is a pending parsing-blocking script,\n\t // then:\n\n\t // If the script nesting level is not zero:\n\n\t // Set the parser pause flag to true, and abort the processing\n\t // of any nested invocations of the tokenizer, yielding\n\t // control back to the caller. (Tokenization will resume when\n\t // the caller returns to the \"outer\" tree construction stage.)\n\n\t // The tree construction stage of this particular parser is\n\t // being called reentrantly, say from a call to\n\t // document.write().\n\n\t // Otherwise:\n\n\t // Run these steps:\n\n\t // Let the script be the pending parsing-blocking\n\t // script. There is no longer a pending\n\t // parsing-blocking script.\n\n\t // Block the tokenizer for this instance of the HTML\n\t // parser, such that the event loop will not run tasks\n\t // that invoke the tokenizer.\n\n\t // If the parser's Document has a style sheet that is\n\t // blocking scripts or the script's \"ready to be\n\t // parser-executed\" flag is not set: spin the event\n\t // loop until the parser's Document has no style sheet\n\t // that is blocking scripts and the script's \"ready to\n\t // be parser-executed\" flag is set.\n\n\t // Unblock the tokenizer for this instance of the HTML\n\t // parser, such that tasks that invoke the tokenizer\n\t // can again be run.\n\n\t // Let the insertion point be just before the next\n\t // input character.\n\n\t // Increment the parser's script nesting level by one\n\t // (it should be zero before this step, so this sets\n\t // it to one).\n\n\t // Execute the script.\n\n\t // Decrement the parser's script nesting level by\n\t // one. If the parser's script nesting level is zero\n\t // (which it always should be at this point), then set\n\t // the parser pause flag to false.\n\n\t // Let the insertion point be undefined again.\n\n\t // If there is once again a pending parsing-blocking\n\t // script, then repeat these steps from step 1.\n\n\n\t }\n\n\t function stopParsing() {\n\t // XXX This is just a temporary implementation to get the parser working.\n\t // A full implementation involves scripts and events and the event loop.\n\n\t // Remove the link from document to parser.\n\t // This is instead of \"set the insertion point to undefined\".\n\t // It means that document.write() can't write into the doc anymore.\n\t delete doc._parser;\n\n\t stack.elements.length = 0; // pop everything off\n\n\t // If there is a window object associated with the document\n\t // then trigger an load event on it\n\t if (doc.defaultView) {\n\t doc.defaultView.dispatchEvent(new impl.Event(\"load\",{}));\n\t }\n\n\t }\n\n\t /****\n\t * Tokenizer states\n\t */\n\n\t /**\n\t * This file was partially mechanically generated from\n\t * http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html\n\t *\n\t * After mechanical conversion, it was further converted from\n\t * prose to JS by hand, but the intent is that it is a very\n\t * faithful rendering of the HTML tokenization spec in\n\t * JavaScript.\n\t *\n\t * It is not a goal of this tokenizer to detect or report\n\t * parse errors.\n\t *\n\t * XXX The tokenizer is supposed to work with straight UTF32\n\t * codepoints. But I don't think it has any dependencies on\n\t * any character outside of the BMP so I think it is safe to\n\t * pass it UTF16 characters. I don't think it will ever change\n\t * state in the middle of a surrogate pair.\n\t */\n\n\t /*\n\t * Each state is represented by a function. For most states, the\n\t * scanner simply passes the next character (as an integer\n\t * codepoint) to the current state function and automatically\n\t * consumes the character. If the state function can't process\n\t * the character it can call pushback() to push it back to the\n\t * scanner.\n\t *\n\t * Some states require lookahead, though. If a state function has\n\t * a lookahead property, then it is invoked differently. In this\n\t * case, the scanner invokes the function with 3 arguments: 1) the\n\t * next codepoint 2) a string of lookahead text 3) a boolean that\n\t * is true if the lookahead goes all the way to the EOF. (XXX\n\t * actually maybe this third is not necessary... the lookahead\n\t * could just include \\uFFFF?)\n\t *\n\t * If the lookahead property of a state function is an integer, it\n\t * specifies the number of characters required. If it is a string,\n\t * then the scanner will scan for that string and return all\n\t * characters up to and including that sequence, or up to EOF. If\n\t * the lookahead property is a regexp, then the scanner will match\n\t * the regexp at the current point and return the matching string.\n\t *\n\t * States that require lookahead are responsible for explicitly\n\t * consuming the characters they process. They do this by\n\t * incrementing nextchar by the number of processed characters.\n\t */\n\t function reconsume(c, new_state) {\n\t tokenizer = new_state;\n\t nextchar--; // pushback\n\t }\n\n\t function data_state(c) {\n\t switch(c) {\n\t case 0x0026: // AMPERSAND\n\t return_state = data_state;\n\t tokenizer = character_reference_state;\n\t break;\n\t case 0x003C: // LESS-THAN SIGN\n\t if (emitSimpleTag()) // Shortcut for <p>, <dl>, </div> etc.\n\t break;\n\t tokenizer = tag_open_state;\n\t break;\n\t case 0x0000: // NULL\n\t // Usually null characters emitted by the tokenizer will be\n\t // ignored by the tree builder, but sometimes they'll be\n\t // converted to \\uFFFD. I don't want to have the search every\n\t // string emitted to replace NULs, so I'll set a flag\n\t // if I've emitted a NUL.\n\t textrun.push(c);\n\t textIncludesNUL = true;\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t // Instead of just pushing a single character and then\n\t // coming back to the very same place, lookahead and\n\t // emit everything we can at once.\n\t /*jshint -W030 */\n\t emitCharsWhile(DATATEXT) || textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function rcdata_state(c) {\n\t // Save the open tag so we can find a matching close tag\n\t switch(c) {\n\t case 0x0026: // AMPERSAND\n\t return_state = rcdata_state;\n\t tokenizer = character_reference_state;\n\t break;\n\t case 0x003C: // LESS-THAN SIGN\n\t tokenizer = rcdata_less_than_sign_state;\n\t break;\n\t case 0x0000: // NULL\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t textIncludesNUL = true;\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function rawtext_state(c) {\n\t switch(c) {\n\t case 0x003C: // LESS-THAN SIGN\n\t tokenizer = rawtext_less_than_sign_state;\n\t break;\n\t case 0x0000: // NULL\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t /*jshint -W030 */\n\t emitCharsWhile(RAWTEXT) || textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function script_data_state(c) {\n\t switch(c) {\n\t case 0x003C: // LESS-THAN SIGN\n\t tokenizer = script_data_less_than_sign_state;\n\t break;\n\t case 0x0000: // NULL\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t /*jshint -W030 */\n\t emitCharsWhile(RAWTEXT) || textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function plaintext_state(c) {\n\t switch(c) {\n\t case 0x0000: // NULL\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t /*jshint -W030 */\n\t emitCharsWhile(PLAINTEXT) || textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function tag_open_state(c) {\n\t switch(c) {\n\t case 0x0021: // EXCLAMATION MARK\n\t tokenizer = markup_declaration_open_state;\n\t break;\n\t case 0x002F: // SOLIDUS\n\t tokenizer = end_tag_open_state;\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t beginTagName();\n\t reconsume(c, tag_name_state);\n\t break;\n\t case 0x003F: // QUESTION MARK\n\t reconsume(c, bogus_comment_state);\n\t break;\n\t default:\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t reconsume(c, data_state);\n\t break;\n\t }\n\t }\n\n\t function end_tag_open_state(c) {\n\t switch(c) {\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t beginEndTagName();\n\t reconsume(c, tag_name_state);\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t break;\n\t case -1: // EOF\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x002F); // SOLIDUS\n\t emitEOF();\n\t break;\n\t default:\n\t reconsume(c, bogus_comment_state);\n\t break;\n\t }\n\t }\n\n\t function tag_name_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t tokenizer = before_attribute_name_state;\n\t break;\n\t case 0x002F: // SOLIDUS\n\t tokenizer = self_closing_start_tag_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t emitTag();\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t tagnamebuf += String.fromCharCode(c + 0x0020);\n\t break;\n\t case 0x0000: // NULL\n\t tagnamebuf += String.fromCharCode(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t tagnamebuf += getMatchingChars(TAGNAME);\n\t break;\n\t }\n\t }\n\n\t function rcdata_less_than_sign_state(c) {\n\t /* identical to the RAWTEXT less-than sign state, except s/RAWTEXT/RCDATA/g */\n\t if (c === 0x002F) { // SOLIDUS\n\t beginTempBuf();\n\t tokenizer = rcdata_end_tag_open_state;\n\t }\n\t else {\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t reconsume(c, rcdata_state);\n\t }\n\t }\n\n\t function rcdata_end_tag_open_state(c) {\n\t /* identical to the RAWTEXT (and Script data) end tag open state, except s/RAWTEXT/RCDATA/g */\n\t switch(c) {\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t beginEndTagName();\n\t reconsume(c, rcdata_end_tag_name_state);\n\t break;\n\t default:\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x002F); // SOLIDUS\n\t reconsume(c, rcdata_state);\n\t break;\n\t }\n\t }\n\n\t function rcdata_end_tag_name_state(c) {\n\t /* identical to the RAWTEXT (and Script data) end tag name state, except s/RAWTEXT/RCDATA/g */\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = before_attribute_name_state;\n\t return;\n\t }\n\t break;\n\t case 0x002F: // SOLIDUS\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = self_closing_start_tag_state;\n\t return;\n\t }\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = data_state;\n\t emitTag();\n\t return;\n\t }\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\n\t tagnamebuf += String.fromCharCode(c + 0x0020);\n\t tempbuf.push(c);\n\t return;\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\n\t tagnamebuf += String.fromCharCode(c);\n\t tempbuf.push(c);\n\t return;\n\t }\n\n\t // If we don't return in one of the cases above, then this was not\n\t // an appropriately matching close tag, so back out by emitting all\n\t // the characters as text\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x002F); // SOLIDUS\n\t pushAll(textrun, tempbuf);\n\t reconsume(c, rcdata_state);\n\t }\n\n\t function rawtext_less_than_sign_state(c) {\n\t /* identical to the RCDATA less-than sign state, except s/RCDATA/RAWTEXT/g\n\t */\n\t if (c === 0x002F) { // SOLIDUS\n\t beginTempBuf();\n\t tokenizer = rawtext_end_tag_open_state;\n\t }\n\t else {\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t reconsume(c, rawtext_state);\n\t }\n\t }\n\n\t function rawtext_end_tag_open_state(c) {\n\t /* identical to the RCDATA (and Script data) end tag open state, except s/RCDATA/RAWTEXT/g */\n\t switch(c) {\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t beginEndTagName();\n\t reconsume(c, rawtext_end_tag_name_state);\n\t break;\n\t default:\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x002F); // SOLIDUS\n\t reconsume(c, rawtext_state);\n\t break;\n\t }\n\t }\n\n\t function rawtext_end_tag_name_state(c) {\n\t /* identical to the RCDATA (and Script data) end tag name state, except s/RCDATA/RAWTEXT/g */\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = before_attribute_name_state;\n\t return;\n\t }\n\t break;\n\t case 0x002F: // SOLIDUS\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = self_closing_start_tag_state;\n\t return;\n\t }\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = data_state;\n\t emitTag();\n\t return;\n\t }\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t tagnamebuf += String.fromCharCode(c + 0x0020);\n\t tempbuf.push(c);\n\t return;\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t tagnamebuf += String.fromCharCode(c);\n\t tempbuf.push(c);\n\t return;\n\t }\n\n\t // If we don't return in one of the cases above, then this was not\n\t // an appropriately matching close tag, so back out by emitting all\n\t // the characters as text\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x002F); // SOLIDUS\n\t pushAll(textrun,tempbuf);\n\t reconsume(c, rawtext_state);\n\t }\n\n\t function script_data_less_than_sign_state(c) {\n\t switch(c) {\n\t case 0x002F: // SOLIDUS\n\t beginTempBuf();\n\t tokenizer = script_data_end_tag_open_state;\n\t break;\n\t case 0x0021: // EXCLAMATION MARK\n\t tokenizer = script_data_escape_start_state;\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x0021); // EXCLAMATION MARK\n\t break;\n\t default:\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t reconsume(c, script_data_state);\n\t break;\n\t }\n\t }\n\n\t function script_data_end_tag_open_state(c) {\n\t /* identical to the RCDATA (and RAWTEXT) end tag open state, except s/RCDATA/Script data/g */\n\t switch(c) {\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t beginEndTagName();\n\t reconsume(c, script_data_end_tag_name_state);\n\t break;\n\t default:\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x002F); // SOLIDUS\n\t reconsume(c, script_data_state);\n\t break;\n\t }\n\t }\n\n\t function script_data_end_tag_name_state(c) {\n\t /* identical to the RCDATA (and RAWTEXT) end tag name state, except s/RCDATA/Script data/g */\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = before_attribute_name_state;\n\t return;\n\t }\n\t break;\n\t case 0x002F: // SOLIDUS\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = self_closing_start_tag_state;\n\t return;\n\t }\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = data_state;\n\t emitTag();\n\t return;\n\t }\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\n\t tagnamebuf += String.fromCharCode(c + 0x0020);\n\t tempbuf.push(c);\n\t return;\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\n\t tagnamebuf += String.fromCharCode(c);\n\t tempbuf.push(c);\n\t return;\n\t }\n\n\t // If we don't return in one of the cases above, then this was not\n\t // an appropriately matching close tag, so back out by emitting all\n\t // the characters as text\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x002F); // SOLIDUS\n\t pushAll(textrun,tempbuf);\n\t reconsume(c, script_data_state);\n\t }\n\n\t function script_data_escape_start_state(c) {\n\t if (c === 0x002D) { // HYPHEN-MINUS\n\t tokenizer = script_data_escape_start_dash_state;\n\t textrun.push(0x002D); // HYPHEN-MINUS\n\t }\n\t else {\n\t reconsume(c, script_data_state);\n\t }\n\t }\n\n\t function script_data_escape_start_dash_state(c) {\n\t if (c === 0x002D) { // HYPHEN-MINUS\n\t tokenizer = script_data_escaped_dash_dash_state;\n\t textrun.push(0x002D); // HYPHEN-MINUS\n\t }\n\t else {\n\t reconsume(c, script_data_state);\n\t }\n\t }\n\n\t function script_data_escaped_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = script_data_escaped_dash_state;\n\t textrun.push(0x002D); // HYPHEN-MINUS\n\t break;\n\t case 0x003C: // LESS-THAN SIGN\n\t tokenizer = script_data_escaped_less_than_sign_state;\n\t break;\n\t case 0x0000: // NULL\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function script_data_escaped_dash_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = script_data_escaped_dash_dash_state;\n\t textrun.push(0x002D); // HYPHEN-MINUS\n\t break;\n\t case 0x003C: // LESS-THAN SIGN\n\t tokenizer = script_data_escaped_less_than_sign_state;\n\t break;\n\t case 0x0000: // NULL\n\t tokenizer = script_data_escaped_state;\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t tokenizer = script_data_escaped_state;\n\t textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function script_data_escaped_dash_dash_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t textrun.push(0x002D); // HYPHEN-MINUS\n\t break;\n\t case 0x003C: // LESS-THAN SIGN\n\t tokenizer = script_data_escaped_less_than_sign_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = script_data_state;\n\t textrun.push(0x003E); // GREATER-THAN SIGN\n\t break;\n\t case 0x0000: // NULL\n\t tokenizer = script_data_escaped_state;\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t tokenizer = script_data_escaped_state;\n\t textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function script_data_escaped_less_than_sign_state(c) {\n\t switch(c) {\n\t case 0x002F: // SOLIDUS\n\t beginTempBuf();\n\t tokenizer = script_data_escaped_end_tag_open_state;\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t beginTempBuf();\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t reconsume(c, script_data_double_escape_start_state);\n\t break;\n\t default:\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t reconsume(c, script_data_escaped_state);\n\t break;\n\t }\n\t }\n\n\t function script_data_escaped_end_tag_open_state(c) {\n\t switch(c) {\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t beginEndTagName();\n\t reconsume(c, script_data_escaped_end_tag_name_state);\n\t break;\n\t default:\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x002F); // SOLIDUS\n\t reconsume(c, script_data_escaped_state);\n\t break;\n\t }\n\t }\n\n\t function script_data_escaped_end_tag_name_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = before_attribute_name_state;\n\t return;\n\t }\n\t break;\n\t case 0x002F: // SOLIDUS\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = self_closing_start_tag_state;\n\t return;\n\t }\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t if (appropriateEndTag(tagnamebuf)) {\n\t tokenizer = data_state;\n\t emitTag();\n\t return;\n\t }\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t tagnamebuf += String.fromCharCode(c + 0x0020);\n\t tempbuf.push(c);\n\t return;\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t tagnamebuf += String.fromCharCode(c);\n\t tempbuf.push(c);\n\t return;\n\t }\n\n\t // We get here in the default case, and if the closing tagname\n\t // is not an appropriate tagname.\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t textrun.push(0x002F); // SOLIDUS\n\t pushAll(textrun,tempbuf);\n\t reconsume(c, script_data_escaped_state);\n\t }\n\n\t function script_data_double_escape_start_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t case 0x002F: // SOLIDUS\n\t case 0x003E: // GREATER-THAN SIGN\n\t if (buf2str(tempbuf) === \"script\") {\n\t tokenizer = script_data_double_escaped_state;\n\t }\n\t else {\n\t tokenizer = script_data_escaped_state;\n\t }\n\t textrun.push(c);\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t tempbuf.push(c + 0x0020);\n\t textrun.push(c);\n\t break;\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t tempbuf.push(c);\n\t textrun.push(c);\n\t break;\n\t default:\n\t reconsume(c, script_data_escaped_state);\n\t break;\n\t }\n\t }\n\n\t function script_data_double_escaped_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = script_data_double_escaped_dash_state;\n\t textrun.push(0x002D); // HYPHEN-MINUS\n\t break;\n\t case 0x003C: // LESS-THAN SIGN\n\t tokenizer = script_data_double_escaped_less_than_sign_state;\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t break;\n\t case 0x0000: // NULL\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function script_data_double_escaped_dash_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = script_data_double_escaped_dash_dash_state;\n\t textrun.push(0x002D); // HYPHEN-MINUS\n\t break;\n\t case 0x003C: // LESS-THAN SIGN\n\t tokenizer = script_data_double_escaped_less_than_sign_state;\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t break;\n\t case 0x0000: // NULL\n\t tokenizer = script_data_double_escaped_state;\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t tokenizer = script_data_double_escaped_state;\n\t textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function script_data_double_escaped_dash_dash_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t textrun.push(0x002D); // HYPHEN-MINUS\n\t break;\n\t case 0x003C: // LESS-THAN SIGN\n\t tokenizer = script_data_double_escaped_less_than_sign_state;\n\t textrun.push(0x003C); // LESS-THAN SIGN\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = script_data_state;\n\t textrun.push(0x003E); // GREATER-THAN SIGN\n\t break;\n\t case 0x0000: // NULL\n\t tokenizer = script_data_double_escaped_state;\n\t textrun.push(0xFFFD); // REPLACEMENT CHARACTER\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t tokenizer = script_data_double_escaped_state;\n\t textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function script_data_double_escaped_less_than_sign_state(c) {\n\t if (c === 0x002F) { // SOLIDUS\n\t beginTempBuf();\n\t tokenizer = script_data_double_escape_end_state;\n\t textrun.push(0x002F); // SOLIDUS\n\t }\n\t else {\n\t reconsume(c, script_data_double_escaped_state);\n\t }\n\t }\n\n\t function script_data_double_escape_end_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t case 0x002F: // SOLIDUS\n\t case 0x003E: // GREATER-THAN SIGN\n\t if (buf2str(tempbuf) === \"script\") {\n\t tokenizer = script_data_escaped_state;\n\t }\n\t else {\n\t tokenizer = script_data_double_escaped_state;\n\t }\n\t textrun.push(c);\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t tempbuf.push(c + 0x0020);\n\t textrun.push(c);\n\t break;\n\t case 0x0061: // [a-z]\n\t case 0x0062:case 0x0063:case 0x0064:case 0x0065:case 0x0066:\n\t case 0x0067:case 0x0068:case 0x0069:case 0x006A:case 0x006B:\n\t case 0x006C:case 0x006D:case 0x006E:case 0x006F:case 0x0070:\n\t case 0x0071:case 0x0072:case 0x0073:case 0x0074:case 0x0075:\n\t case 0x0076:case 0x0077:case 0x0078:case 0x0079:case 0x007A:\n\t tempbuf.push(c);\n\t textrun.push(c);\n\t break;\n\t default:\n\t reconsume(c, script_data_double_escaped_state);\n\t break;\n\t }\n\t }\n\n\t function before_attribute_name_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t /* Ignore the character. */\n\t break;\n\t // For SOLIDUS, GREATER-THAN SIGN, and EOF, spec says \"reconsume in\n\t // the after attribute name state\", but in our implementation that\n\t // state always has an active attribute in attrnamebuf. Just clone\n\t // the rules here, without the addAttribute business.\n\t case 0x002F: // SOLIDUS\n\t tokenizer = self_closing_start_tag_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t emitTag();\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t case 0x003D: // EQUALS SIGN\n\t beginAttrName();\n\t attrnamebuf += String.fromCharCode(c);\n\t tokenizer = attribute_name_state;\n\t break;\n\t default:\n\t if (handleSimpleAttribute()) break;\n\t beginAttrName();\n\t reconsume(c, attribute_name_state);\n\t break;\n\t }\n\t }\n\n\t // beginAttrName() must have been called before this point\n\t // There is an active attribute in attrnamebuf (but not attrvaluebuf)\n\t function attribute_name_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t case 0x002F: // SOLIDUS\n\t case 0x003E: // GREATER-THAN SIGN\n\t case -1: // EOF\n\t reconsume(c, after_attribute_name_state);\n\t break;\n\t case 0x003D: // EQUALS SIGN\n\t tokenizer = before_attribute_value_state;\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t attrnamebuf += String.fromCharCode(c + 0x0020);\n\t break;\n\t case 0x0000: // NULL\n\t attrnamebuf += String.fromCharCode(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case 0x0022: // QUOTATION MARK\n\t case 0x0027: // APOSTROPHE\n\t case 0x003C: // LESS-THAN SIGN\n\t /* falls through */\n\t default:\n\t attrnamebuf += getMatchingChars(ATTRNAME);\n\t break;\n\t }\n\t }\n\n\t // There is an active attribute in attrnamebuf, but not yet in attrvaluebuf.\n\t function after_attribute_name_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t /* Ignore the character. */\n\t break;\n\t case 0x002F: // SOLIDUS\n\t // Keep in sync with before_attribute_name_state.\n\t addAttribute(attrnamebuf);\n\t tokenizer = self_closing_start_tag_state;\n\t break;\n\t case 0x003D: // EQUALS SIGN\n\t tokenizer = before_attribute_value_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t // Keep in sync with before_attribute_name_state.\n\t tokenizer = data_state;\n\t addAttribute(attrnamebuf);\n\t emitTag();\n\t break;\n\t case -1: // EOF\n\t // Keep in sync with before_attribute_name_state.\n\t addAttribute(attrnamebuf);\n\t emitEOF();\n\t break;\n\t default:\n\t addAttribute(attrnamebuf);\n\t beginAttrName();\n\t reconsume(c, attribute_name_state);\n\t break;\n\t }\n\t }\n\n\t function before_attribute_value_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t /* Ignore the character. */\n\t break;\n\t case 0x0022: // QUOTATION MARK\n\t beginAttrValue();\n\t tokenizer = attribute_value_double_quoted_state;\n\t break;\n\t case 0x0027: // APOSTROPHE\n\t beginAttrValue();\n\t tokenizer = attribute_value_single_quoted_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t /* falls through */\n\t default:\n\t beginAttrValue();\n\t reconsume(c, attribute_value_unquoted_state);\n\t break;\n\t }\n\t }\n\n\t function attribute_value_double_quoted_state(c) {\n\t switch(c) {\n\t case 0x0022: // QUOTATION MARK\n\t addAttribute(attrnamebuf, attrvaluebuf);\n\t tokenizer = after_attribute_value_quoted_state;\n\t break;\n\t case 0x0026: // AMPERSAND\n\t return_state = attribute_value_double_quoted_state;\n\t tokenizer = character_reference_state;\n\t break;\n\t case 0x0000: // NULL\n\t attrvaluebuf += String.fromCharCode(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t case 0x000A: // LF\n\t // this could be a converted \\r, so don't use getMatchingChars\n\t attrvaluebuf += String.fromCharCode(c);\n\t break;\n\t default:\n\t attrvaluebuf += getMatchingChars(DBLQUOTEATTRVAL);\n\t break;\n\t }\n\t }\n\n\t function attribute_value_single_quoted_state(c) {\n\t switch(c) {\n\t case 0x0027: // APOSTROPHE\n\t addAttribute(attrnamebuf, attrvaluebuf);\n\t tokenizer = after_attribute_value_quoted_state;\n\t break;\n\t case 0x0026: // AMPERSAND\n\t return_state = attribute_value_single_quoted_state;\n\t tokenizer = character_reference_state;\n\t break;\n\t case 0x0000: // NULL\n\t attrvaluebuf += String.fromCharCode(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t case 0x000A: // LF\n\t // this could be a converted \\r, so don't use getMatchingChars\n\t attrvaluebuf += String.fromCharCode(c);\n\t break;\n\t default:\n\t attrvaluebuf += getMatchingChars(SINGLEQUOTEATTRVAL);\n\t break;\n\t }\n\t }\n\n\t function attribute_value_unquoted_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t addAttribute(attrnamebuf, attrvaluebuf);\n\t tokenizer = before_attribute_name_state;\n\t break;\n\t case 0x0026: // AMPERSAND\n\t return_state = attribute_value_unquoted_state;\n\t tokenizer = character_reference_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t addAttribute(attrnamebuf, attrvaluebuf);\n\t tokenizer = data_state;\n\t emitTag();\n\t break;\n\t case 0x0000: // NULL\n\t attrvaluebuf += String.fromCharCode(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case -1: // EOF\n\t nextchar--; // pushback\n\t tokenizer = data_state;\n\t break;\n\t case 0x0022: // QUOTATION MARK\n\t case 0x0027: // APOSTROPHE\n\t case 0x003C: // LESS-THAN SIGN\n\t case 0x003D: // EQUALS SIGN\n\t case 0x0060: // GRAVE ACCENT\n\t /* falls through */\n\t default:\n\t attrvaluebuf += getMatchingChars(UNQUOTEDATTRVAL);\n\t break;\n\t }\n\t }\n\n\t function after_attribute_value_quoted_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t tokenizer = before_attribute_name_state;\n\t break;\n\t case 0x002F: // SOLIDUS\n\t tokenizer = self_closing_start_tag_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t emitTag();\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t reconsume(c, before_attribute_name_state);\n\t break;\n\t }\n\t }\n\n\t function self_closing_start_tag_state(c) {\n\t switch(c) {\n\t case 0x003E: // GREATER-THAN SIGN\n\t // Set the <i>self-closing flag</i> of the current tag token.\n\t tokenizer = data_state;\n\t emitSelfClosingTag();\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t default:\n\t reconsume(c, before_attribute_name_state);\n\t break;\n\t }\n\t }\n\n\t function bogus_comment_state(c, lookahead, eof) {\n\t var len = lookahead.length;\n\n\t if (eof) {\n\t nextchar += len-1; // don't consume the eof\n\t }\n\t else {\n\t nextchar += len;\n\t }\n\n\t var comment = lookahead.substring(0, len-1);\n\n\t comment = comment.replace(/\\u0000/g,\"\\uFFFD\");\n\t comment = comment.replace(/\\u000D\\u000A/g,\"\\u000A\");\n\t comment = comment.replace(/\\u000D/g,\"\\u000A\");\n\n\t insertToken(COMMENT, comment);\n\t tokenizer = data_state;\n\t }\n\t bogus_comment_state.lookahead = \">\";\n\n\t function markup_declaration_open_state(c, lookahead, eof) {\n\t if (lookahead[0] === \"-\" && lookahead[1] === \"-\") {\n\t nextchar += 2;\n\t beginComment();\n\t tokenizer = comment_start_state;\n\t return;\n\t }\n\n\t if (lookahead.toUpperCase() === \"DOCTYPE\") {\n\t nextchar += 7;\n\t tokenizer = doctype_state;\n\t }\n\t else if (lookahead === \"[CDATA[\" && cdataAllowed()) {\n\t nextchar += 7;\n\t tokenizer = cdata_section_state;\n\t }\n\t else {\n\t tokenizer = bogus_comment_state;\n\t }\n\t }\n\t markup_declaration_open_state.lookahead = 7;\n\n\t function comment_start_state(c) {\n\t beginComment();\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = comment_start_dash_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t insertToken(COMMENT, buf2str(commentbuf));\n\t break; /* see comment in comment end state */\n\t default:\n\t reconsume(c, comment_state);\n\t break;\n\t }\n\t }\n\n\t function comment_start_dash_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = comment_end_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t insertToken(COMMENT, buf2str(commentbuf));\n\t break;\n\t case -1: // EOF\n\t insertToken(COMMENT, buf2str(commentbuf));\n\t emitEOF();\n\t break; /* see comment in comment end state */\n\t default:\n\t commentbuf.push(0x002D /* HYPHEN-MINUS */);\n\t reconsume(c, comment_state);\n\t break;\n\t }\n\t }\n\n\t function comment_state(c) {\n\t switch(c) {\n\t case 0x003C: // LESS-THAN SIGN\n\t commentbuf.push(c);\n\t tokenizer = comment_less_than_sign_state;\n\t break;\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = comment_end_dash_state;\n\t break;\n\t case 0x0000: // NULL\n\t commentbuf.push(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case -1: // EOF\n\t insertToken(COMMENT, buf2str(commentbuf));\n\t emitEOF();\n\t break; /* see comment in comment end state */\n\t default:\n\t commentbuf.push(c);\n\t break;\n\t }\n\t }\n\n\t function comment_less_than_sign_state(c) {\n\t switch(c) {\n\t case 0x0021: // EXCLAMATION MARK\n\t commentbuf.push(c);\n\t tokenizer = comment_less_than_sign_bang_state;\n\t break;\n\t case 0x003C: // LESS-THAN SIGN\n\t commentbuf.push(c);\n\t break;\n\t default:\n\t reconsume(c, comment_state);\n\t break;\n\t }\n\t }\n\n\t function comment_less_than_sign_bang_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = comment_less_than_sign_bang_dash_state;\n\t break;\n\t default:\n\t reconsume(c, comment_state);\n\t break;\n\t }\n\t }\n\n\t function comment_less_than_sign_bang_dash_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = comment_less_than_sign_bang_dash_dash_state;\n\t break;\n\t default:\n\t reconsume(c, comment_end_dash_state);\n\t break;\n\t }\n\t }\n\n\t function comment_less_than_sign_bang_dash_dash_state(c) {\n\t switch(c) {\n\t case 0x003E: // GREATER-THAN SIGN\n\t case -1: // EOF\n\t reconsume(c, comment_end_state);\n\t break;\n\t default:\n\t // parse error\n\t reconsume(c, comment_end_state);\n\t break;\n\t }\n\t }\n\n\t function comment_end_dash_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t tokenizer = comment_end_state;\n\t break;\n\t case -1: // EOF\n\t insertToken(COMMENT, buf2str(commentbuf));\n\t emitEOF();\n\t break; /* see comment in comment end state */\n\t default:\n\t commentbuf.push(0x002D /* HYPHEN-MINUS */);\n\t reconsume(c, comment_state);\n\t break;\n\t }\n\t }\n\n\t function comment_end_state(c) {\n\t switch(c) {\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t insertToken(COMMENT, buf2str(commentbuf));\n\t break;\n\t case 0x0021: // EXCLAMATION MARK\n\t tokenizer = comment_end_bang_state;\n\t break;\n\t case 0x002D: // HYPHEN-MINUS\n\t commentbuf.push(0x002D);\n\t break;\n\t case -1: // EOF\n\t insertToken(COMMENT, buf2str(commentbuf));\n\t emitEOF();\n\t break; /* For security reasons: otherwise, hostile user could put a script in a comment e.g. in a blog comment and then DOS the server so that the end tag isn't read, and then the commented script tag would be treated as live code */\n\t default:\n\t commentbuf.push(0x002D);\n\t commentbuf.push(0x002D);\n\t reconsume(c, comment_state);\n\t break;\n\t }\n\t }\n\n\t function comment_end_bang_state(c) {\n\t switch(c) {\n\t case 0x002D: // HYPHEN-MINUS\n\t commentbuf.push(0x002D);\n\t commentbuf.push(0x002D);\n\t commentbuf.push(0x0021);\n\t tokenizer = comment_end_dash_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t insertToken(COMMENT, buf2str(commentbuf));\n\t break;\n\t case -1: // EOF\n\t insertToken(COMMENT, buf2str(commentbuf));\n\t emitEOF();\n\t break; /* see comment in comment end state */\n\t default:\n\t commentbuf.push(0x002D);\n\t commentbuf.push(0x002D);\n\t commentbuf.push(0x0021);\n\t reconsume(c, comment_state);\n\t break;\n\t }\n\t }\n\n\t function doctype_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t tokenizer = before_doctype_name_state;\n\t break;\n\t case -1: // EOF\n\t beginDoctype();\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t reconsume(c, before_doctype_name_state);\n\t break;\n\t }\n\t }\n\n\t function before_doctype_name_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t /* Ignore the character. */\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t beginDoctype();\n\t doctypenamebuf.push(c + 0x0020);\n\t tokenizer = doctype_name_state;\n\t break;\n\t case 0x0000: // NULL\n\t beginDoctype();\n\t doctypenamebuf.push(0xFFFD);\n\t tokenizer = doctype_name_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t beginDoctype();\n\t forcequirks();\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t beginDoctype();\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t beginDoctype();\n\t doctypenamebuf.push(c);\n\t tokenizer = doctype_name_state;\n\t break;\n\t }\n\t }\n\n\t function doctype_name_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t tokenizer = after_doctype_name_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case 0x0041: // [A-Z]\n\t case 0x0042:case 0x0043:case 0x0044:case 0x0045:case 0x0046:\n\t case 0x0047:case 0x0048:case 0x0049:case 0x004A:case 0x004B:\n\t case 0x004C:case 0x004D:case 0x004E:case 0x004F:case 0x0050:\n\t case 0x0051:case 0x0052:case 0x0053:case 0x0054:case 0x0055:\n\t case 0x0056:case 0x0057:case 0x0058:case 0x0059:case 0x005A:\n\t doctypenamebuf.push(c + 0x0020);\n\t break;\n\t case 0x0000: // NULL\n\t doctypenamebuf.push(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t doctypenamebuf.push(c);\n\t break;\n\t }\n\t }\n\n\t function after_doctype_name_state(c, lookahead, eof) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t /* Ignore the character. */\n\t nextchar += 1;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t nextchar += 1;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t lookahead = lookahead.toUpperCase();\n\t if (lookahead === \"PUBLIC\") {\n\t nextchar += 6;\n\t tokenizer = after_doctype_public_keyword_state;\n\t }\n\t else if (lookahead === \"SYSTEM\") {\n\t nextchar += 6;\n\t tokenizer = after_doctype_system_keyword_state;\n\t }\n\t else {\n\t forcequirks();\n\t tokenizer = bogus_doctype_state;\n\t }\n\t break;\n\t }\n\t }\n\t after_doctype_name_state.lookahead = 6;\n\n\t function after_doctype_public_keyword_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t tokenizer = before_doctype_public_identifier_state;\n\t break;\n\t case 0x0022: // QUOTATION MARK\n\t beginDoctypePublicId();\n\t tokenizer = doctype_public_identifier_double_quoted_state;\n\t break;\n\t case 0x0027: // APOSTROPHE\n\t beginDoctypePublicId();\n\t tokenizer = doctype_public_identifier_single_quoted_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t forcequirks();\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t forcequirks();\n\t tokenizer = bogus_doctype_state;\n\t break;\n\t }\n\t }\n\n\t function before_doctype_public_identifier_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t /* Ignore the character. */\n\t break;\n\t case 0x0022: // QUOTATION MARK\n\t beginDoctypePublicId();\n\t tokenizer = doctype_public_identifier_double_quoted_state;\n\t break;\n\t case 0x0027: // APOSTROPHE\n\t beginDoctypePublicId();\n\t tokenizer = doctype_public_identifier_single_quoted_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t forcequirks();\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t forcequirks();\n\t tokenizer = bogus_doctype_state;\n\t break;\n\t }\n\t }\n\n\t function doctype_public_identifier_double_quoted_state(c) {\n\t switch(c) {\n\t case 0x0022: // QUOTATION MARK\n\t tokenizer = after_doctype_public_identifier_state;\n\t break;\n\t case 0x0000: // NULL\n\t doctypepublicbuf.push(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t forcequirks();\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t doctypepublicbuf.push(c);\n\t break;\n\t }\n\t }\n\n\t function doctype_public_identifier_single_quoted_state(c) {\n\t switch(c) {\n\t case 0x0027: // APOSTROPHE\n\t tokenizer = after_doctype_public_identifier_state;\n\t break;\n\t case 0x0000: // NULL\n\t doctypepublicbuf.push(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t forcequirks();\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t doctypepublicbuf.push(c);\n\t break;\n\t }\n\t }\n\n\t function after_doctype_public_identifier_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t tokenizer = between_doctype_public_and_system_identifiers_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case 0x0022: // QUOTATION MARK\n\t beginDoctypeSystemId();\n\t tokenizer = doctype_system_identifier_double_quoted_state;\n\t break;\n\t case 0x0027: // APOSTROPHE\n\t beginDoctypeSystemId();\n\t tokenizer = doctype_system_identifier_single_quoted_state;\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t forcequirks();\n\t tokenizer = bogus_doctype_state;\n\t break;\n\t }\n\t }\n\n\t function between_doctype_public_and_system_identifiers_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE Ignore the character.\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case 0x0022: // QUOTATION MARK\n\t beginDoctypeSystemId();\n\t tokenizer = doctype_system_identifier_double_quoted_state;\n\t break;\n\t case 0x0027: // APOSTROPHE\n\t beginDoctypeSystemId();\n\t tokenizer = doctype_system_identifier_single_quoted_state;\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t forcequirks();\n\t tokenizer = bogus_doctype_state;\n\t break;\n\t }\n\t }\n\n\t function after_doctype_system_keyword_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t tokenizer = before_doctype_system_identifier_state;\n\t break;\n\t case 0x0022: // QUOTATION MARK\n\t beginDoctypeSystemId();\n\t tokenizer = doctype_system_identifier_double_quoted_state;\n\t break;\n\t case 0x0027: // APOSTROPHE\n\t beginDoctypeSystemId();\n\t tokenizer = doctype_system_identifier_single_quoted_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t forcequirks();\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t forcequirks();\n\t tokenizer = bogus_doctype_state;\n\t break;\n\t }\n\t }\n\n\t function before_doctype_system_identifier_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE Ignore the character.\n\t break;\n\t case 0x0022: // QUOTATION MARK\n\t beginDoctypeSystemId();\n\t tokenizer = doctype_system_identifier_double_quoted_state;\n\t break;\n\t case 0x0027: // APOSTROPHE\n\t beginDoctypeSystemId();\n\t tokenizer = doctype_system_identifier_single_quoted_state;\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t forcequirks();\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t forcequirks();\n\t tokenizer = bogus_doctype_state;\n\t break;\n\t }\n\t }\n\n\t function doctype_system_identifier_double_quoted_state(c) {\n\t switch(c) {\n\t case 0x0022: // QUOTATION MARK\n\t tokenizer = after_doctype_system_identifier_state;\n\t break;\n\t case 0x0000: // NULL\n\t doctypesystembuf.push(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t forcequirks();\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t doctypesystembuf.push(c);\n\t break;\n\t }\n\t }\n\n\t function doctype_system_identifier_single_quoted_state(c) {\n\t switch(c) {\n\t case 0x0027: // APOSTROPHE\n\t tokenizer = after_doctype_system_identifier_state;\n\t break;\n\t case 0x0000: // NULL\n\t doctypesystembuf.push(0xFFFD /* REPLACEMENT CHARACTER */);\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t forcequirks();\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t doctypesystembuf.push(c);\n\t break;\n\t }\n\t }\n\n\t function after_doctype_system_identifier_state(c) {\n\t switch(c) {\n\t case 0x0009: // CHARACTER TABULATION (tab)\n\t case 0x000A: // LINE FEED (LF)\n\t case 0x000C: // FORM FEED (FF)\n\t case 0x0020: // SPACE\n\t /* Ignore the character. */\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t forcequirks();\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t default:\n\t tokenizer = bogus_doctype_state;\n\t /* This does *not* set the DOCTYPE token's force-quirks flag. */\n\t break;\n\t }\n\t }\n\n\t function bogus_doctype_state(c) {\n\t switch(c) {\n\t case 0x003E: // GREATER-THAN SIGN\n\t tokenizer = data_state;\n\t emitDoctype();\n\t break;\n\t case -1: // EOF\n\t emitDoctype();\n\t emitEOF();\n\t break;\n\t }\n\t }\n\n\t function cdata_section_state(c) {\n\t switch(c) {\n\t case 0x005D: // RIGHT SQUARE BRACKET\n\t tokenizer = cdata_section_bracket_state;\n\t break;\n\t case -1: // EOF\n\t emitEOF();\n\t break;\n\t case 0x0000: // NULL\n\t textIncludesNUL = true;\n\t /* fall through */\n\t default:\n\t // Instead of just pushing a single character and then\n\t // coming back to the very same place, lookahead and\n\t // emit everything we can at once.\n\t /*jshint -W030 */\n\t emitCharsWhile(CDATATEXT) || textrun.push(c);\n\t break;\n\t }\n\t }\n\n\t function cdata_section_bracket_state(c) {\n\t switch(c) {\n\t case 0x005D: // RIGHT SQUARE BRACKET\n\t tokenizer = cdata_section_end_state;\n\t break;\n\t default:\n\t textrun.push(0x005D);\n\t reconsume(c, cdata_section_state);\n\t break;\n\t }\n\t }\n\n\t function cdata_section_end_state(c) {\n\t switch(c) {\n\t case 0x005D: // RIGHT SQUARE BRACKET\n\t textrun.push(0x005D);\n\t break;\n\t case 0x003E: // GREATER-THAN SIGN\n\t flushText();\n\t tokenizer = data_state;\n\t break;\n\t default:\n\t textrun.push(0x005D);\n\t textrun.push(0x005D);\n\t reconsume(c, cdata_section_state);\n\t break;\n\t }\n\t }\n\n\t function character_reference_state(c) {\n\t beginTempBuf();\n\t tempbuf.push(0x0026);\n\t switch(c) {\n\t case 0x0009: // TAB\n\t case 0x000A: // LINE FEED\n\t case 0x000C: // FORM FEED\n\t case 0x0020: // SPACE\n\t case 0x003C: // LESS-THAN SIGN\n\t case 0x0026: // AMPERSAND\n\t case -1: // EOF\n\t reconsume(c, character_reference_end_state);\n\t break;\n\t case 0x0023: // NUMBER SIGN\n\t tempbuf.push(c);\n\t tokenizer = numeric_character_reference_state;\n\t break;\n\t default:\n\t reconsume(c, named_character_reference_state);\n\t break;\n\t }\n\t }\n\n\t function named_character_reference_state(c) {\n\t NAMEDCHARREF.lastIndex = nextchar; // w/ lookahead no char has been consumed\n\t var matched = NAMEDCHARREF.exec(chars);\n\t if (!matched) throw new Error(\"should never happen\");\n\t var name = matched[1];\n\t if (!name) {\n\t // If no match can be made, switch to the character reference end state\n\t tokenizer = character_reference_end_state;\n\t return;\n\t }\n\n\t // Consume the matched characters and append them to temporary buffer\n\t nextchar += name.length;\n\t pushAll(tempbuf, str2buf(name));\n\n\t switch(return_state) {\n\t case attribute_value_double_quoted_state:\n\t case attribute_value_single_quoted_state:\n\t case attribute_value_unquoted_state:\n\t // If the character reference was consumed as part of an attribute...\n\t if (name[name.length-1] !== ';') { // ...and the last char is not ;\n\t if (/[=A-Za-z0-9]/.test(chars[nextchar])) {\n\t tokenizer = character_reference_end_state;\n\t return;\n\t }\n\t }\n\t break;\n\t }\n\n\t beginTempBuf();\n\t var rv = namedCharRefs[name];\n\t if (typeof rv === 'number') {\n\t tempbuf.push(rv);\n\t } else {\n\t pushAll(tempbuf, rv);\n\t }\n\t tokenizer = character_reference_end_state;\n\t }\n\t // We might need to pause tokenization until we have enough characters\n\t // in the buffer for longest possible character reference.\n\t named_character_reference_state.lookahead = -32;\n\n\t function numeric_character_reference_state(c) {\n\t character_reference_code = 0;\n\t switch(c) {\n\t case 0x0078: // x\n\t case 0x0058: // X\n\t tempbuf.push(c);\n\t tokenizer = hexadecimal_character_reference_start_state;\n\t break;\n\t default:\n\t reconsume(c, decimal_character_reference_start_state);\n\t break;\n\t }\n\t }\n\n\t function hexadecimal_character_reference_start_state(c) {\n\t switch(c) {\n\t case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034:\n\t case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: // [0-9]\n\t case 0x0041: case 0x0042: case 0x0043: case 0x0044: case 0x0045:\n\t case 0x0046: // [A-F]\n\t case 0x0061: case 0x0062: case 0x0063: case 0x0064: case 0x0065:\n\t case 0x0066: // [a-f]\n\t reconsume(c, hexadecimal_character_reference_state);\n\t break;\n\t default:\n\t reconsume(c, character_reference_end_state);\n\t break;\n\t }\n\t }\n\n\t function decimal_character_reference_start_state(c) {\n\t switch(c) {\n\t case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034:\n\t case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: // [0-9]\n\t reconsume(c, decimal_character_reference_state);\n\t break;\n\t default:\n\t reconsume(c, character_reference_end_state);\n\t break;\n\t }\n\t }\n\n\t function hexadecimal_character_reference_state(c) {\n\t switch(c) {\n\t case 0x0041: case 0x0042: case 0x0043: case 0x0044: case 0x0045:\n\t case 0x0046: // [A-F]\n\t character_reference_code *= 16;\n\t character_reference_code += (c - 0x0037);\n\t break;\n\t case 0x0061: case 0x0062: case 0x0063: case 0x0064: case 0x0065:\n\t case 0x0066: // [a-f]\n\t character_reference_code *= 16;\n\t character_reference_code += (c - 0x0057);\n\t break;\n\t case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034:\n\t case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: // [0-9]\n\t character_reference_code *= 16;\n\t character_reference_code += (c - 0x0030);\n\t break;\n\t case 0x003B: // SEMICOLON\n\t tokenizer = numeric_character_reference_end_state;\n\t break;\n\t default:\n\t reconsume(c, numeric_character_reference_end_state);\n\t break;\n\t }\n\t }\n\n\t function decimal_character_reference_state(c) {\n\t switch(c) {\n\t case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034:\n\t case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: // [0-9]\n\t character_reference_code *= 10;\n\t character_reference_code += (c - 0x0030);\n\t break;\n\t case 0x003B: // SEMICOLON\n\t tokenizer = numeric_character_reference_end_state;\n\t break;\n\t default:\n\t reconsume(c, numeric_character_reference_end_state);\n\t break;\n\t }\n\t }\n\n\t function numeric_character_reference_end_state(c) {\n\t if (character_reference_code in numericCharRefReplacements) {\n\t character_reference_code = numericCharRefReplacements[character_reference_code];\n\t } else if (character_reference_code > 0x10FFFF || (character_reference_code >= 0xD800 && character_reference_code < 0xE000)) {\n\t character_reference_code = 0xFFFD;\n\t }\n\n\t beginTempBuf();\n\t if (character_reference_code <= 0xFFFF) {\n\t tempbuf.push(character_reference_code);\n\t } else {\n\t character_reference_code = character_reference_code - 0x10000;\n\t /* jshint bitwise: false */\n\t tempbuf.push(0xD800 + (character_reference_code >> 10));\n\t tempbuf.push(0xDC00 + (character_reference_code & 0x03FF));\n\t }\n\t reconsume(c, character_reference_end_state);\n\t }\n\n\t function character_reference_end_state(c) {\n\t switch(return_state) {\n\t case attribute_value_double_quoted_state:\n\t case attribute_value_single_quoted_state:\n\t case attribute_value_unquoted_state:\n\t // append each character to the current attribute's value\n\t attrvaluebuf += buf2str(tempbuf);\n\t break;\n\t default:\n\t pushAll(textrun, tempbuf);\n\t break;\n\t }\n\t reconsume(c, return_state);\n\t }\n\n\t /***\n\t * The tree builder insertion modes\n\t */\n\n\t // 11.2.5.4.1 The \"initial\" insertion mode\n\t function initial_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t value = value.replace(LEADINGWS, \"\"); // Ignore spaces\n\t if (value.length === 0) return; // Are we done?\n\t break; // Handle anything non-space text below\n\t case 4: // COMMENT\n\t doc._appendChild(doc.createComment(value));\n\t return;\n\t case 5: // DOCTYPE\n\t var name = value;\n\t var publicid = arg3;\n\t var systemid = arg4;\n\t // Use the constructor directly instead of\n\t // implementation.createDocumentType because the create\n\t // function throws errors on invalid characters, and\n\t // we don't want the parser to throw them.\n\t doc.appendChild(new DocumentType(doc, name, publicid, systemid));\n\n\t // Note that there is no public API for setting quirks mode We can\n\t // do this here because we have access to implementation details\n\t if (force_quirks ||\n\t name.toLowerCase() !== \"html\" ||\n\t quirkyPublicIds.test(publicid) ||\n\t (systemid && systemid.toLowerCase() === quirkySystemId) ||\n\t (systemid === undefined &&\n\t conditionallyQuirkyPublicIds.test(publicid)))\n\t doc._quirks = true;\n\t else if (limitedQuirkyPublicIds.test(publicid) ||\n\t (systemid !== undefined &&\n\t conditionallyQuirkyPublicIds.test(publicid)))\n\t doc._limitedQuirks = true;\n\t parser = before_html_mode;\n\t return;\n\t }\n\n\t // tags or non-whitespace text\n\t doc._quirks = true;\n\t parser = before_html_mode;\n\t parser(t,value,arg3,arg4);\n\t }\n\n\t // 11.2.5.4.2 The \"before html\" insertion mode\n\t function before_html_mode(t,value,arg3,arg4) {\n\t var elt;\n\t switch(t) {\n\t case 1: // TEXT\n\t value = value.replace(LEADINGWS, \"\"); // Ignore spaces\n\t if (value.length === 0) return; // Are we done?\n\t break; // Handle anything non-space text below\n\t case 5: // DOCTYPE\n\t /* ignore the token */\n\t return;\n\t case 4: // COMMENT\n\t doc._appendChild(doc.createComment(value));\n\t return;\n\t case 2: // TAG\n\t if (value === \"html\") {\n\t elt = createHTMLElt(doc, value, arg3);\n\t stack.push(elt);\n\t doc.appendChild(elt);\n\t // XXX: handle application cache here\n\t parser = before_head_mode;\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"html\":\n\t case \"head\":\n\t case \"body\":\n\t case \"br\":\n\t break; // fall through on these\n\t default:\n\t return; // ignore most end tags\n\t }\n\t }\n\n\t // Anything that didn't get handled above is handled like this:\n\t elt = createHTMLElt(doc, \"html\", null);\n\t stack.push(elt);\n\t doc.appendChild(elt);\n\t // XXX: handle application cache here\n\t parser = before_head_mode;\n\t parser(t,value,arg3,arg4);\n\t }\n\n\t // 11.2.5.4.3 The \"before head\" insertion mode\n\t function before_head_mode(t,value,arg3,arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t value = value.replace(LEADINGWS, \"\"); // Ignore spaces\n\t if (value.length === 0) return; // Are we done?\n\t break; // Handle anything non-space text below\n\t case 5: // DOCTYPE\n\t /* ignore the token */\n\t return;\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t in_body_mode(t,value,arg3,arg4);\n\t return;\n\t case \"head\":\n\t var elt = insertHTMLElement(value, arg3);\n\t head_element_pointer = elt;\n\t parser = in_head_mode;\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"html\":\n\t case \"head\":\n\t case \"body\":\n\t case \"br\":\n\t break;\n\t default:\n\t return; // ignore most end tags\n\t }\n\t }\n\n\t // If not handled explicitly above\n\t before_head_mode(TAG, \"head\", null); // create a head tag\n\t parser(t, value, arg3, arg4); // then try again with this token\n\t }\n\n\t function in_head_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t var ws = value.match(LEADINGWS);\n\t if (ws) {\n\t insertText(ws[0]);\n\t value = value.substring(ws[0].length);\n\t }\n\t if (value.length === 0) return;\n\t break; // Handle non-whitespace below\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case 5: // DOCTYPE\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case \"meta\":\n\t // XXX:\n\t // May need to change the encoding based on this tag\n\t /* falls through */\n\t case \"base\":\n\t case \"basefont\":\n\t case \"bgsound\":\n\t case \"link\":\n\t insertHTMLElement(value, arg3);\n\t stack.pop();\n\t return;\n\t case \"title\":\n\t parseRCDATA(value, arg3);\n\t return;\n\t case \"noscript\":\n\t if (!scripting_enabled) {\n\t insertHTMLElement(value, arg3);\n\t parser = in_head_noscript_mode;\n\t return;\n\t }\n\t // Otherwise, if scripting is enabled...\n\t /* falls through */\n\t case \"noframes\":\n\t case \"style\":\n\t parseRawText(value,arg3);\n\t return;\n\t case \"script\":\n\t insertElement(function(doc) {\n\t var elt = createHTMLElt(doc, value, arg3);\n\t elt._parser_inserted = true;\n\t elt._force_async = false;\n\t if (fragment) elt._already_started = true;\n\t flushText();\n\t return elt;\n\t });\n\t tokenizer = script_data_state;\n\t originalInsertionMode = parser;\n\t parser = text_mode;\n\t return;\n\t case \"template\":\n\t insertHTMLElement(value, arg3);\n\t afe.insertMarker();\n\t frameset_ok = false;\n\t parser = in_template_mode;\n\t templateInsertionModes.push(parser);\n\t return;\n\t case \"head\":\n\t return; // ignore it\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"head\":\n\t stack.pop();\n\t parser = after_head_mode;\n\t return;\n\t case \"body\":\n\t case \"html\":\n\t case \"br\":\n\t break; // handle these at the bottom of the function\n\t case \"template\":\n\t if (!stack.contains(\"template\")) {\n\t return;\n\t }\n\t stack.generateImpliedEndTags(null, \"thorough\");\n\t stack.popTag(\"template\");\n\t afe.clearToMarker();\n\t templateInsertionModes.pop();\n\t resetInsertionMode();\n\t return;\n\t default:\n\t // ignore any other end tag\n\t return;\n\t }\n\t break;\n\t }\n\n\t // If not handled above\n\t in_head_mode(ENDTAG, \"head\", null); // synthetic </head>\n\t parser(t, value, arg3, arg4); // Then redo this one\n\t }\n\n\t // 13.2.5.4.5 The \"in head noscript\" insertion mode\n\t function in_head_noscript_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 5: // DOCTYPE\n\t return;\n\t case 4: // COMMENT\n\t in_head_mode(t, value);\n\t return;\n\t case 1: // TEXT\n\t var ws = value.match(LEADINGWS);\n\t if (ws) {\n\t in_head_mode(t, ws[0]);\n\t value = value.substring(ws[0].length);\n\t }\n\t if (value.length === 0) return; // no more text\n\t break; // Handle non-whitespace below\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case \"basefont\":\n\t case \"bgsound\":\n\t case \"link\":\n\t case \"meta\":\n\t case \"noframes\":\n\t case \"style\":\n\t in_head_mode(t, value, arg3);\n\t return;\n\t case \"head\":\n\t case \"noscript\":\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"noscript\":\n\t stack.pop();\n\t parser = in_head_mode;\n\t return;\n\t case \"br\":\n\t break; // goes to the outer default\n\t default:\n\t return; // ignore other end tags\n\t }\n\t break;\n\t }\n\n\t // If not handled above\n\t in_head_noscript_mode(ENDTAG, \"noscript\", null);\n\t parser(t, value, arg3, arg4);\n\t }\n\n\t function after_head_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t var ws = value.match(LEADINGWS);\n\t if (ws) {\n\t insertText(ws[0]);\n\t value = value.substring(ws[0].length);\n\t }\n\t if (value.length === 0) return;\n\t break; // Handle non-whitespace below\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case 5: // DOCTYPE\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case \"body\":\n\t insertHTMLElement(value, arg3);\n\t frameset_ok = false;\n\t parser = in_body_mode;\n\t return;\n\t case \"frameset\":\n\t insertHTMLElement(value, arg3);\n\t parser = in_frameset_mode;\n\t return;\n\t case \"base\":\n\t case \"basefont\":\n\t case \"bgsound\":\n\t case \"link\":\n\t case \"meta\":\n\t case \"noframes\":\n\t case \"script\":\n\t case \"style\":\n\t case \"template\":\n\t case \"title\":\n\t stack.push(head_element_pointer);\n\t in_head_mode(TAG, value, arg3);\n\t stack.removeElement(head_element_pointer);\n\t return;\n\t case \"head\":\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"template\":\n\t return in_head_mode(t, value, arg3, arg4);\n\t case \"body\":\n\t case \"html\":\n\t case \"br\":\n\t break;\n\t default:\n\t return; // ignore any other end tag\n\t }\n\t break;\n\t }\n\n\t after_head_mode(TAG, \"body\", null);\n\t frameset_ok = true;\n\t parser(t, value, arg3, arg4);\n\t }\n\n\t // 13.2.5.4.7 The \"in body\" insertion mode\n\t function in_body_mode(t,value,arg3,arg4) {\n\t var body, i, node, elt;\n\t switch(t) {\n\t case 1: // TEXT\n\t if (textIncludesNUL) {\n\t value = value.replace(NULCHARS, \"\");\n\t if (value.length === 0) return;\n\t }\n\t // If any non-space characters\n\t if (frameset_ok && NONWS.test(value))\n\t frameset_ok = false;\n\t afereconstruct();\n\t insertText(value);\n\t return;\n\t case 5: // DOCTYPE\n\t return;\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case -1: // EOF\n\t if (templateInsertionModes.length) {\n\t return in_template_mode(t);\n\t }\n\t stopParsing();\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t if (stack.contains(\"template\")) {\n\t return;\n\t }\n\t transferAttributes(arg3, stack.elements[0]);\n\t return;\n\t case \"base\":\n\t case \"basefont\":\n\t case \"bgsound\":\n\t case \"link\":\n\t case \"meta\":\n\t case \"noframes\":\n\t case \"script\":\n\t case \"style\":\n\t case \"template\":\n\t case \"title\":\n\t in_head_mode(TAG, value, arg3);\n\t return;\n\t case \"body\":\n\t body = stack.elements[1];\n\t if (!body || !(body instanceof impl.HTMLBodyElement) ||\n\t stack.contains(\"template\"))\n\t return;\n\t frameset_ok = false;\n\t transferAttributes(arg3, body);\n\t return;\n\t case \"frameset\":\n\t if (!frameset_ok) return;\n\t body = stack.elements[1];\n\t if (!body || !(body instanceof impl.HTMLBodyElement))\n\t return;\n\t if (body.parentNode) body.parentNode.removeChild(body);\n\t while(!(stack.top instanceof impl.HTMLHtmlElement))\n\t stack.pop();\n\t insertHTMLElement(value, arg3);\n\t parser = in_frameset_mode;\n\t return;\n\n\t case \"address\":\n\t case \"article\":\n\t case \"aside\":\n\t case \"blockquote\":\n\t case \"center\":\n\t case \"details\":\n\t case \"dialog\":\n\t case \"dir\":\n\t case \"div\":\n\t case \"dl\":\n\t case \"fieldset\":\n\t case \"figcaption\":\n\t case \"figure\":\n\t case \"footer\":\n\t case \"header\":\n\t case \"hgroup\":\n\t case \"main\":\n\t case \"nav\":\n\t case \"ol\":\n\t case \"p\":\n\t case \"section\":\n\t case \"summary\":\n\t case \"ul\":\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t insertHTMLElement(value, arg3);\n\t return;\n\n\t case \"menu\":\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t if (isA(stack.top, 'menuitem')) {\n\t stack.pop();\n\t }\n\t insertHTMLElement(value, arg3);\n\t return;\n\n\t case \"h1\":\n\t case \"h2\":\n\t case \"h3\":\n\t case \"h4\":\n\t case \"h5\":\n\t case \"h6\":\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t if (stack.top instanceof impl.HTMLHeadingElement)\n\t stack.pop();\n\t insertHTMLElement(value, arg3);\n\t return;\n\n\t case \"pre\":\n\t case \"listing\":\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t insertHTMLElement(value, arg3);\n\t ignore_linefeed = true;\n\t frameset_ok = false;\n\t return;\n\n\t case \"form\":\n\t if (form_element_pointer && !stack.contains(\"template\")) return;\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t elt = insertHTMLElement(value, arg3);\n\t if (!stack.contains(\"template\"))\n\t form_element_pointer = elt;\n\t return;\n\n\t case \"li\":\n\t frameset_ok = false;\n\t for(i = stack.elements.length-1; i >= 0; i--) {\n\t node = stack.elements[i];\n\t if (node instanceof impl.HTMLLIElement) {\n\t in_body_mode(ENDTAG, \"li\");\n\t break;\n\t }\n\t if (isA(node, specialSet) && !isA(node, addressdivpSet))\n\t break;\n\t }\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t insertHTMLElement(value, arg3);\n\t return;\n\n\t case \"dd\":\n\t case \"dt\":\n\t frameset_ok = false;\n\t for(i = stack.elements.length-1; i >= 0; i--) {\n\t node = stack.elements[i];\n\t if (isA(node, dddtSet)) {\n\t in_body_mode(ENDTAG, node.localName);\n\t break;\n\t }\n\t if (isA(node, specialSet) && !isA(node, addressdivpSet))\n\t break;\n\t }\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t insertHTMLElement(value, arg3);\n\t return;\n\n\t case \"plaintext\":\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t insertHTMLElement(value, arg3);\n\t tokenizer = plaintext_state;\n\t return;\n\n\t case \"button\":\n\t if (stack.inScope(\"button\")) {\n\t in_body_mode(ENDTAG, \"button\");\n\t parser(t, value, arg3, arg4);\n\t }\n\t else {\n\t afereconstruct();\n\t insertHTMLElement(value, arg3);\n\t frameset_ok = false;\n\t }\n\t return;\n\n\t case \"a\":\n\t var activeElement = afe.findElementByTag(\"a\");\n\t if (activeElement) {\n\t in_body_mode(ENDTAG, value);\n\t afe.remove(activeElement);\n\t stack.removeElement(activeElement);\n\t }\n\t /* falls through */\n\t case \"b\":\n\t case \"big\":\n\t case \"code\":\n\t case \"em\":\n\t case \"font\":\n\t case \"i\":\n\t case \"s\":\n\t case \"small\":\n\t case \"strike\":\n\t case \"strong\":\n\t case \"tt\":\n\t case \"u\":\n\t afereconstruct();\n\t afe.push(insertHTMLElement(value,arg3), arg3);\n\t return;\n\n\t case \"nobr\":\n\t afereconstruct();\n\n\t if (stack.inScope(value)) {\n\t in_body_mode(ENDTAG, value);\n\t afereconstruct();\n\t }\n\t afe.push(insertHTMLElement(value,arg3), arg3);\n\t return;\n\n\t case \"applet\":\n\t case \"marquee\":\n\t case \"object\":\n\t afereconstruct();\n\t insertHTMLElement(value,arg3);\n\t afe.insertMarker();\n\t frameset_ok = false;\n\t return;\n\n\t case \"table\":\n\t if (!doc._quirks && stack.inButtonScope(\"p\")) {\n\t in_body_mode(ENDTAG, \"p\");\n\t }\n\t insertHTMLElement(value,arg3);\n\t frameset_ok = false;\n\t parser = in_table_mode;\n\t return;\n\n\t case \"area\":\n\t case \"br\":\n\t case \"embed\":\n\t case \"img\":\n\t case \"keygen\":\n\t case \"wbr\":\n\t afereconstruct();\n\t insertHTMLElement(value,arg3);\n\t stack.pop();\n\t frameset_ok = false;\n\t return;\n\n\t case \"input\":\n\t afereconstruct();\n\t elt = insertHTMLElement(value,arg3);\n\t stack.pop();\n\t var type = elt.getAttribute(\"type\");\n\t if (!type || type.toLowerCase() !== \"hidden\")\n\t frameset_ok = false;\n\t return;\n\n\t case \"param\":\n\t case \"source\":\n\t case \"track\":\n\t insertHTMLElement(value,arg3);\n\t stack.pop();\n\t return;\n\n\t case \"hr\":\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t if (isA(stack.top, 'menuitem')) {\n\t stack.pop();\n\t }\n\t insertHTMLElement(value,arg3);\n\t stack.pop();\n\t frameset_ok = false;\n\t return;\n\n\t case \"image\":\n\t in_body_mode(TAG, \"img\", arg3, arg4);\n\t return;\n\n\t case \"textarea\":\n\t insertHTMLElement(value,arg3);\n\t ignore_linefeed = true;\n\t frameset_ok = false;\n\t tokenizer = rcdata_state;\n\t originalInsertionMode = parser;\n\t parser = text_mode;\n\t return;\n\n\t case \"xmp\":\n\t if (stack.inButtonScope(\"p\")) in_body_mode(ENDTAG, \"p\");\n\t afereconstruct();\n\t frameset_ok = false;\n\t parseRawText(value, arg3);\n\t return;\n\n\t case \"iframe\":\n\t frameset_ok = false;\n\t parseRawText(value, arg3);\n\t return;\n\n\t case \"noembed\":\n\t parseRawText(value,arg3);\n\t return;\n\n\t case \"select\":\n\t afereconstruct();\n\t insertHTMLElement(value,arg3);\n\t frameset_ok = false;\n\t if (parser === in_table_mode ||\n\t parser === in_caption_mode ||\n\t parser === in_table_body_mode ||\n\t parser === in_row_mode ||\n\t parser === in_cell_mode)\n\t parser = in_select_in_table_mode;\n\t else\n\t parser = in_select_mode;\n\t return;\n\n\t case \"optgroup\":\n\t case \"option\":\n\t if (stack.top instanceof impl.HTMLOptionElement) {\n\t in_body_mode(ENDTAG, \"option\");\n\t }\n\t afereconstruct();\n\t insertHTMLElement(value,arg3);\n\t return;\n\n\t case \"menuitem\":\n\t if (isA(stack.top, 'menuitem')) {\n\t stack.pop();\n\t }\n\t afereconstruct();\n\t insertHTMLElement(value, arg3);\n\t return;\n\n\t case \"rb\":\n\t case \"rtc\":\n\t if (stack.inScope(\"ruby\")) {\n\t stack.generateImpliedEndTags();\n\t }\n\t insertHTMLElement(value,arg3);\n\t return;\n\n\t case \"rp\":\n\t case \"rt\":\n\t if (stack.inScope(\"ruby\")) {\n\t stack.generateImpliedEndTags(\"rtc\");\n\t }\n\t insertHTMLElement(value,arg3);\n\t return;\n\n\t case \"math\":\n\t afereconstruct();\n\t adjustMathMLAttributes(arg3);\n\t adjustForeignAttributes(arg3);\n\t insertForeignElement(value, arg3, NAMESPACE.MATHML);\n\t if (arg4) // self-closing flag\n\t stack.pop();\n\t return;\n\n\t case \"svg\":\n\t afereconstruct();\n\t adjustSVGAttributes(arg3);\n\t adjustForeignAttributes(arg3);\n\t insertForeignElement(value, arg3, NAMESPACE.SVG);\n\t if (arg4) // self-closing flag\n\t stack.pop();\n\t return;\n\n\t case \"caption\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"frame\":\n\t case \"head\":\n\t case \"tbody\":\n\t case \"td\":\n\t case \"tfoot\":\n\t case \"th\":\n\t case \"thead\":\n\t case \"tr\":\n\t // Ignore table tags if we're not in_table mode\n\t return;\n\t }\n\n\t // Handle any other start tag here\n\t // (and also noscript tags when scripting is disabled)\n\t afereconstruct();\n\t insertHTMLElement(value,arg3);\n\t return;\n\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"template\":\n\t in_head_mode(ENDTAG, value, arg3);\n\t return;\n\t case \"body\":\n\t if (!stack.inScope(\"body\")) return;\n\t parser = after_body_mode;\n\t return;\n\t case \"html\":\n\t if (!stack.inScope(\"body\")) return;\n\t parser = after_body_mode;\n\t parser(t, value, arg3);\n\t return;\n\n\t case \"address\":\n\t case \"article\":\n\t case \"aside\":\n\t case \"blockquote\":\n\t case \"button\":\n\t case \"center\":\n\t case \"details\":\n\t case \"dialog\":\n\t case \"dir\":\n\t case \"div\":\n\t case \"dl\":\n\t case \"fieldset\":\n\t case \"figcaption\":\n\t case \"figure\":\n\t case \"footer\":\n\t case \"header\":\n\t case \"hgroup\":\n\t case \"listing\":\n\t case \"main\":\n\t case \"menu\":\n\t case \"nav\":\n\t case \"ol\":\n\t case \"pre\":\n\t case \"section\":\n\t case \"summary\":\n\t case \"ul\":\n\t // Ignore if there is not a matching open tag\n\t if (!stack.inScope(value)) return;\n\t stack.generateImpliedEndTags();\n\t stack.popTag(value);\n\t return;\n\n\t case \"form\":\n\t if (!stack.contains(\"template\")) {\n\t var openform = form_element_pointer;\n\t form_element_pointer = null;\n\t if (!openform || !stack.elementInScope(openform)) return;\n\t stack.generateImpliedEndTags();\n\t stack.removeElement(openform);\n\t } else {\n\t if (!stack.inScope(\"form\")) return;\n\t stack.generateImpliedEndTags();\n\t stack.popTag(\"form\");\n\t }\n\t return;\n\n\t case \"p\":\n\t if (!stack.inButtonScope(value)) {\n\t in_body_mode(TAG, value, null);\n\t parser(t, value, arg3, arg4);\n\t }\n\t else {\n\t stack.generateImpliedEndTags(value);\n\t stack.popTag(value);\n\t }\n\t return;\n\n\t case \"li\":\n\t if (!stack.inListItemScope(value)) return;\n\t stack.generateImpliedEndTags(value);\n\t stack.popTag(value);\n\t return;\n\n\t case \"dd\":\n\t case \"dt\":\n\t if (!stack.inScope(value)) return;\n\t stack.generateImpliedEndTags(value);\n\t stack.popTag(value);\n\t return;\n\n\t case \"h1\":\n\t case \"h2\":\n\t case \"h3\":\n\t case \"h4\":\n\t case \"h5\":\n\t case \"h6\":\n\t if (!stack.elementTypeInScope(impl.HTMLHeadingElement)) return;\n\t stack.generateImpliedEndTags();\n\t stack.popElementType(impl.HTMLHeadingElement);\n\t return;\n\n\t case \"sarcasm\":\n\t // Take a deep breath, and then:\n\t break;\n\n\t case \"a\":\n\t case \"b\":\n\t case \"big\":\n\t case \"code\":\n\t case \"em\":\n\t case \"font\":\n\t case \"i\":\n\t case \"nobr\":\n\t case \"s\":\n\t case \"small\":\n\t case \"strike\":\n\t case \"strong\":\n\t case \"tt\":\n\t case \"u\":\n\t var result = adoptionAgency(value);\n\t if (result) return; // If we did something we're done\n\t break; // Go to the \"any other end tag\" case\n\n\t case \"applet\":\n\t case \"marquee\":\n\t case \"object\":\n\t if (!stack.inScope(value)) return;\n\t stack.generateImpliedEndTags();\n\t stack.popTag(value);\n\t afe.clearToMarker();\n\t return;\n\n\t case \"br\":\n\t in_body_mode(TAG, value, null); // Turn </br> into <br>\n\t return;\n\t }\n\n\t // Any other end tag goes here\n\t for(i = stack.elements.length-1; i >= 0; i--) {\n\t node = stack.elements[i];\n\t if (isA(node, value)) {\n\t stack.generateImpliedEndTags(value);\n\t stack.popElement(node);\n\t break;\n\t }\n\t else if (isA(node, specialSet)) {\n\t return;\n\t }\n\t }\n\n\t return;\n\t }\n\t }\n\n\t function text_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t insertText(value);\n\t return;\n\t case -1: // EOF\n\t if (stack.top instanceof impl.HTMLScriptElement)\n\t stack.top._already_started = true;\n\t stack.pop();\n\t parser = originalInsertionMode;\n\t parser(t);\n\t return;\n\t case 3: // ENDTAG\n\t if (value === \"script\") {\n\t handleScriptEnd();\n\t }\n\t else {\n\t stack.pop();\n\t parser = originalInsertionMode;\n\t }\n\t return;\n\t default:\n\t // We should never get any other token types\n\t return;\n\t }\n\t }\n\n\t function in_table_mode(t, value, arg3, arg4) {\n\t function getTypeAttr(attrs) {\n\t for(var i = 0, n = attrs.length; i < n; i++) {\n\t if (attrs[i][0] === \"type\")\n\t return attrs[i][1].toLowerCase();\n\t }\n\t return null;\n\t }\n\n\t switch(t) {\n\t case 1: // TEXT\n\t // XXX the text_integration_mode stuff is\n\t // just a hack I made up\n\t if (text_integration_mode) {\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\t else if (isA(stack.top, tablesectionrowSet)) {\n\t pending_table_text = [];\n\t originalInsertionMode = parser;\n\t parser = in_table_text_mode;\n\t parser(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case 5: // DOCTYPE\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"caption\":\n\t stack.clearToContext(tableContextSet);\n\t afe.insertMarker();\n\t insertHTMLElement(value,arg3);\n\t parser = in_caption_mode;\n\t return;\n\t case \"colgroup\":\n\t stack.clearToContext(tableContextSet);\n\t insertHTMLElement(value,arg3);\n\t parser = in_column_group_mode;\n\t return;\n\t case \"col\":\n\t in_table_mode(TAG, \"colgroup\", null);\n\t parser(t, value, arg3, arg4);\n\t return;\n\t case \"tbody\":\n\t case \"tfoot\":\n\t case \"thead\":\n\t stack.clearToContext(tableContextSet);\n\t insertHTMLElement(value,arg3);\n\t parser = in_table_body_mode;\n\t return;\n\t case \"td\":\n\t case \"th\":\n\t case \"tr\":\n\t in_table_mode(TAG, \"tbody\", null);\n\t parser(t, value, arg3, arg4);\n\t return;\n\n\t case \"table\":\n\t if (!stack.inTableScope(value)) {\n\t return; // Ignore the token\n\t }\n\t in_table_mode(ENDTAG, value);\n\t parser(t, value, arg3, arg4);\n\t return;\n\n\t case \"style\":\n\t case \"script\":\n\t case \"template\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\n\t case \"input\":\n\t var type = getTypeAttr(arg3);\n\t if (type !== \"hidden\") break; // to the anything else case\n\t insertHTMLElement(value,arg3);\n\t stack.pop();\n\t return;\n\n\t case \"form\":\n\t if (form_element_pointer || stack.contains(\"template\")) return;\n\t form_element_pointer = insertHTMLElement(value, arg3);\n\t stack.popElement(form_element_pointer);\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"table\":\n\t if (!stack.inTableScope(value)) return;\n\t stack.popTag(value);\n\t resetInsertionMode();\n\t return;\n\t case \"body\":\n\t case \"caption\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"html\":\n\t case \"tbody\":\n\t case \"td\":\n\t case \"tfoot\":\n\t case \"th\":\n\t case \"thead\":\n\t case \"tr\":\n\t return;\n\t case \"template\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\n\t break;\n\t case -1: // EOF\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\n\t // This is the anything else case\n\t foster_parent_mode = true;\n\t in_body_mode(t, value, arg3, arg4);\n\t foster_parent_mode = false;\n\t }\n\n\t function in_table_text_mode(t, value, arg3, arg4) {\n\t if (t === TEXT) {\n\t if (textIncludesNUL) {\n\t value = value.replace(NULCHARS, \"\");\n\t if (value.length === 0) return;\n\t }\n\t pending_table_text.push(value);\n\t }\n\t else {\n\t var s = pending_table_text.join(\"\");\n\t pending_table_text.length = 0;\n\t if (NONWS.test(s)) { // If any non-whitespace characters\n\t // This must be the same code as the \"anything else\"\n\t // case of the in_table mode above.\n\t foster_parent_mode = true;\n\t in_body_mode(TEXT, s);\n\t foster_parent_mode = false;\n\t }\n\t else {\n\t insertText(s);\n\t }\n\t parser = originalInsertionMode;\n\t parser(t, value, arg3, arg4);\n\t }\n\t }\n\n\n\t function in_caption_mode(t, value, arg3, arg4) {\n\t function end_caption() {\n\t if (!stack.inTableScope(\"caption\")) return false;\n\t stack.generateImpliedEndTags();\n\t stack.popTag(\"caption\");\n\t afe.clearToMarker();\n\t parser = in_table_mode;\n\t return true;\n\t }\n\n\t switch(t) {\n\t case 2: // TAG\n\t switch(value) {\n\t case \"caption\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"tbody\":\n\t case \"td\":\n\t case \"tfoot\":\n\t case \"th\":\n\t case \"thead\":\n\t case \"tr\":\n\t if (end_caption()) parser(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"caption\":\n\t end_caption();\n\t return;\n\t case \"table\":\n\t if (end_caption()) parser(t, value, arg3, arg4);\n\t return;\n\t case \"body\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"html\":\n\t case \"tbody\":\n\t case \"td\":\n\t case \"tfoot\":\n\t case \"th\":\n\t case \"thead\":\n\t case \"tr\":\n\t return;\n\t }\n\t break;\n\t }\n\n\t // The Anything Else case\n\t in_body_mode(t, value, arg3, arg4);\n\t }\n\n\t function in_column_group_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t var ws = value.match(LEADINGWS);\n\t if (ws) {\n\t insertText(ws[0]);\n\t value = value.substring(ws[0].length);\n\t }\n\t if (value.length === 0) return;\n\t break; // Handle non-whitespace below\n\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case 5: // DOCTYPE\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case \"col\":\n\t insertHTMLElement(value, arg3);\n\t stack.pop();\n\t return;\n\t case \"template\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"colgroup\":\n\t if (!isA(stack.top, 'colgroup')) {\n\t return; // Ignore the token.\n\t }\n\t stack.pop();\n\t parser = in_table_mode;\n\t return;\n\t case \"col\":\n\t return;\n\t case \"template\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t case -1: // EOF\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\n\t // Anything else\n\t if (!isA(stack.top, 'colgroup')) {\n\t return; // Ignore the token.\n\t }\n\t in_column_group_mode(ENDTAG, \"colgroup\");\n\t parser(t, value, arg3, arg4);\n\t }\n\n\t function in_table_body_mode(t, value, arg3, arg4) {\n\t function endsect() {\n\t if (!stack.inTableScope(\"tbody\") &&\n\t !stack.inTableScope(\"thead\") &&\n\t !stack.inTableScope(\"tfoot\"))\n\t return;\n\t stack.clearToContext(tableBodyContextSet);\n\t in_table_body_mode(ENDTAG, stack.top.localName, null);\n\t parser(t, value, arg3, arg4);\n\t }\n\n\t switch(t) {\n\t case 2: // TAG\n\t switch(value) {\n\t case \"tr\":\n\t stack.clearToContext(tableBodyContextSet);\n\t insertHTMLElement(value, arg3);\n\t parser = in_row_mode;\n\t return;\n\t case \"th\":\n\t case \"td\":\n\t in_table_body_mode(TAG, \"tr\", null);\n\t parser(t, value, arg3, arg4);\n\t return;\n\t case \"caption\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"tbody\":\n\t case \"tfoot\":\n\t case \"thead\":\n\t endsect();\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"table\":\n\t endsect();\n\t return;\n\t case \"tbody\":\n\t case \"tfoot\":\n\t case \"thead\":\n\t if (stack.inTableScope(value)) {\n\t stack.clearToContext(tableBodyContextSet);\n\t stack.pop();\n\t parser = in_table_mode;\n\t }\n\t return;\n\t case \"body\":\n\t case \"caption\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"html\":\n\t case \"td\":\n\t case \"th\":\n\t case \"tr\":\n\t return;\n\t }\n\t break;\n\t }\n\n\t // Anything else:\n\t in_table_mode(t, value, arg3, arg4);\n\t }\n\n\t function in_row_mode(t, value, arg3, arg4) {\n\t function endrow() {\n\t if (!stack.inTableScope(\"tr\")) return false;\n\t stack.clearToContext(tableRowContextSet);\n\t stack.pop();\n\t parser = in_table_body_mode;\n\t return true;\n\t }\n\n\t switch(t) {\n\t case 2: // TAG\n\t switch(value) {\n\t case \"th\":\n\t case \"td\":\n\t stack.clearToContext(tableRowContextSet);\n\t insertHTMLElement(value, arg3);\n\t parser = in_cell_mode;\n\t afe.insertMarker();\n\t return;\n\t case \"caption\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"tbody\":\n\t case \"tfoot\":\n\t case \"thead\":\n\t case \"tr\":\n\t if (endrow()) parser(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"tr\":\n\t endrow();\n\t return;\n\t case \"table\":\n\t if (endrow()) parser(t, value, arg3, arg4);\n\t return;\n\t case \"tbody\":\n\t case \"tfoot\":\n\t case \"thead\":\n\t if (stack.inTableScope(value)) {\n\t if (endrow()) parser(t, value, arg3, arg4);\n\t }\n\t return;\n\t case \"body\":\n\t case \"caption\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"html\":\n\t case \"td\":\n\t case \"th\":\n\t return;\n\t }\n\t break;\n\t }\n\n\t // anything else\n\t in_table_mode(t, value, arg3, arg4);\n\t }\n\n\t function in_cell_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 2: // TAG\n\t switch(value) {\n\t case \"caption\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"tbody\":\n\t case \"td\":\n\t case \"tfoot\":\n\t case \"th\":\n\t case \"thead\":\n\t case \"tr\":\n\t if (stack.inTableScope(\"td\")) {\n\t in_cell_mode(ENDTAG, \"td\");\n\t parser(t, value, arg3, arg4);\n\t }\n\t else if (stack.inTableScope(\"th\")) {\n\t in_cell_mode(ENDTAG, \"th\");\n\t parser(t, value, arg3, arg4);\n\t }\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"td\":\n\t case \"th\":\n\t if (!stack.inTableScope(value)) return;\n\t stack.generateImpliedEndTags();\n\t stack.popTag(value);\n\t afe.clearToMarker();\n\t parser = in_row_mode;\n\t return;\n\n\t case \"body\":\n\t case \"caption\":\n\t case \"col\":\n\t case \"colgroup\":\n\t case \"html\":\n\t return;\n\n\t case \"table\":\n\t case \"tbody\":\n\t case \"tfoot\":\n\t case \"thead\":\n\t case \"tr\":\n\t if (!stack.inTableScope(value)) return;\n\t in_cell_mode(ENDTAG, stack.inTableScope(\"td\") ? \"td\" : \"th\");\n\t parser(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t }\n\n\t // anything else\n\t in_body_mode(t, value, arg3, arg4);\n\t }\n\n\t function in_select_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t if (textIncludesNUL) {\n\t value = value.replace(NULCHARS, \"\");\n\t if (value.length === 0) return;\n\t }\n\t insertText(value);\n\t return;\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case 5: // DOCTYPE\n\t return;\n\t case -1: // EOF\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case \"option\":\n\t if (stack.top instanceof impl.HTMLOptionElement)\n\t in_select_mode(ENDTAG, value);\n\t insertHTMLElement(value, arg3);\n\t return;\n\t case \"optgroup\":\n\t if (stack.top instanceof impl.HTMLOptionElement)\n\t in_select_mode(ENDTAG, \"option\");\n\t if (stack.top instanceof impl.HTMLOptGroupElement)\n\t in_select_mode(ENDTAG, value);\n\t insertHTMLElement(value, arg3);\n\t return;\n\t case \"select\":\n\t in_select_mode(ENDTAG, value); // treat it as a close tag\n\t return;\n\n\t case \"input\":\n\t case \"keygen\":\n\t case \"textarea\":\n\t if (!stack.inSelectScope(\"select\")) return;\n\t in_select_mode(ENDTAG, \"select\");\n\t parser(t, value, arg3, arg4);\n\t return;\n\n\t case \"script\":\n\t case \"template\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"optgroup\":\n\t if (stack.top instanceof impl.HTMLOptionElement &&\n\t stack.elements[stack.elements.length-2] instanceof\n\t impl.HTMLOptGroupElement) {\n\t in_select_mode(ENDTAG, \"option\");\n\t }\n\t if (stack.top instanceof impl.HTMLOptGroupElement)\n\t stack.pop();\n\n\t return;\n\n\t case \"option\":\n\t if (stack.top instanceof impl.HTMLOptionElement)\n\t stack.pop();\n\t return;\n\n\t case \"select\":\n\t if (!stack.inSelectScope(value)) return;\n\t stack.popTag(value);\n\t resetInsertionMode();\n\t return;\n\n\t case \"template\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\n\t break;\n\t }\n\n\t // anything else: just ignore the token\n\t }\n\n\t function in_select_in_table_mode(t, value, arg3, arg4) {\n\t switch(value) {\n\t case \"caption\":\n\t case \"table\":\n\t case \"tbody\":\n\t case \"tfoot\":\n\t case \"thead\":\n\t case \"tr\":\n\t case \"td\":\n\t case \"th\":\n\t switch(t) {\n\t case 2: // TAG\n\t in_select_in_table_mode(ENDTAG, \"select\");\n\t parser(t, value, arg3, arg4);\n\t return;\n\t case 3: // ENDTAG\n\t if (stack.inTableScope(value)) {\n\t in_select_in_table_mode(ENDTAG, \"select\");\n\t parser(t, value, arg3, arg4);\n\t }\n\t return;\n\t }\n\t }\n\n\t // anything else\n\t in_select_mode(t, value, arg3, arg4);\n\t }\n\n\t function in_template_mode(t, value, arg3, arg4) {\n\t function switchModeAndReprocess(mode) {\n\t parser = mode;\n\t templateInsertionModes[templateInsertionModes.length-1] = parser;\n\t parser(t, value, arg3, arg4);\n\t }\n\t switch(t) {\n\t case 1: // TEXT\n\t case 4: // COMMENT\n\t case 5: // DOCTYPE\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case -1: // EOF\n\t if (!stack.contains(\"template\")) {\n\t stopParsing();\n\t } else {\n\t stack.popTag(\"template\");\n\t afe.clearToMarker();\n\t templateInsertionModes.pop();\n\t resetInsertionMode();\n\t parser(t, value, arg3, arg4);\n\t }\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"base\":\n\t case \"basefont\":\n\t case \"bgsound\":\n\t case \"link\":\n\t case \"meta\":\n\t case \"noframes\":\n\t case \"script\":\n\t case \"style\":\n\t case \"template\":\n\t case \"title\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t case \"caption\":\n\t case \"colgroup\":\n\t case \"tbody\":\n\t case \"tfoot\":\n\t case \"thead\":\n\t switchModeAndReprocess(in_table_mode);\n\t return;\n\t case \"col\":\n\t switchModeAndReprocess(in_column_group_mode);\n\t return;\n\t case \"tr\":\n\t switchModeAndReprocess(in_table_body_mode);\n\t return;\n\t case \"td\":\n\t case \"th\":\n\t switchModeAndReprocess(in_row_mode);\n\t return;\n\t }\n\t switchModeAndReprocess(in_body_mode);\n\t return;\n\t case 3: // ENDTAG\n\t switch(value) {\n\t case \"template\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t default:\n\t return;\n\t }\n\t }\n\t }\n\n\t function after_body_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t // If any non-space chars, handle below\n\t if (NONWS.test(value)) break;\n\t in_body_mode(t, value);\n\t return;\n\t case 4: // COMMENT\n\t // Append it to the <html> element\n\t stack.elements[0]._appendChild(doc.createComment(value));\n\t return;\n\t case 5: // DOCTYPE\n\t return;\n\t case -1: // EOF\n\t stopParsing();\n\t return;\n\t case 2: // TAG\n\t if (value === \"html\") {\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\t break; // for any other tags\n\t case 3: // ENDTAG\n\t if (value === \"html\") {\n\t if (fragment) return;\n\t parser = after_after_body_mode;\n\t return;\n\t }\n\t break; // for any other tags\n\t }\n\n\t // anything else\n\t parser = in_body_mode;\n\t parser(t, value, arg3, arg4);\n\t }\n\n\t function in_frameset_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t // Ignore any non-space characters\n\t value = value.replace(ALLNONWS, \"\");\n\t if (value.length > 0) insertText(value);\n\t return;\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case 5: // DOCTYPE\n\t return;\n\t case -1: // EOF\n\t stopParsing();\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case \"frameset\":\n\t insertHTMLElement(value, arg3);\n\t return;\n\t case \"frame\":\n\t insertHTMLElement(value, arg3);\n\t stack.pop();\n\t return;\n\t case \"noframes\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t if (value === \"frameset\") {\n\t if (fragment && stack.top instanceof impl.HTMLHtmlElement)\n\t return;\n\t stack.pop();\n\t if (!fragment &&\n\t !(stack.top instanceof impl.HTMLFrameSetElement))\n\t parser = after_frameset_mode;\n\t return;\n\t }\n\t break;\n\t }\n\n\t // ignore anything else\n\t }\n\n\t function after_frameset_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t // Ignore any non-space characters\n\t value = value.replace(ALLNONWS, \"\");\n\t if (value.length > 0) insertText(value);\n\t return;\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case 5: // DOCTYPE\n\t return;\n\t case -1: // EOF\n\t stopParsing();\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case \"noframes\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t case 3: // ENDTAG\n\t if (value === \"html\") {\n\t parser = after_after_frameset_mode;\n\t return;\n\t }\n\t break;\n\t }\n\n\t // ignore anything else\n\t }\n\n\t function after_after_body_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t // If any non-space chars, handle below\n\t if (NONWS.test(value)) break;\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case 4: // COMMENT\n\t doc._appendChild(doc.createComment(value));\n\t return;\n\t case 5: // DOCTYPE\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case -1: // EOF\n\t stopParsing();\n\t return;\n\t case 2: // TAG\n\t if (value === \"html\") {\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t }\n\n\t // anything else\n\t parser = in_body_mode;\n\t parser(t, value, arg3, arg4);\n\t }\n\n\t function after_after_frameset_mode(t, value, arg3, arg4) {\n\t switch(t) {\n\t case 1: // TEXT\n\t // Ignore any non-space characters\n\t value = value.replace(ALLNONWS, \"\");\n\t if (value.length > 0)\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case 4: // COMMENT\n\t doc._appendChild(doc.createComment(value));\n\t return;\n\t case 5: // DOCTYPE\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case -1: // EOF\n\t stopParsing();\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"html\":\n\t in_body_mode(t, value, arg3, arg4);\n\t return;\n\t case \"noframes\":\n\t in_head_mode(t, value, arg3, arg4);\n\t return;\n\t }\n\t break;\n\t }\n\n\t // ignore anything else\n\t }\n\n\n\t // 13.2.5.5 The rules for parsing tokens in foreign content\n\t //\n\t // This is like one of the insertion modes above, but is\n\t // invoked somewhat differently when the current token is not HTML.\n\t // See the insertToken() function.\n\t function insertForeignToken(t, value, arg3, arg4) {\n\t // A <font> tag is an HTML font tag if it has a color, font, or size\n\t // attribute. Otherwise we assume it is foreign content\n\t function isHTMLFont(attrs) {\n\t for(var i = 0, n = attrs.length; i < n; i++) {\n\t switch(attrs[i][0]) {\n\t case \"color\":\n\t case \"face\":\n\t case \"size\":\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\n\t var current;\n\n\t switch(t) {\n\t case 1: // TEXT\n\t // If any non-space, non-nul characters\n\t if (frameset_ok && NONWSNONNUL.test(value))\n\t frameset_ok = false;\n\t if (textIncludesNUL) {\n\t value = value.replace(NULCHARS, \"\\uFFFD\");\n\t }\n\t insertText(value);\n\t return;\n\t case 4: // COMMENT\n\t insertComment(value);\n\t return;\n\t case 5: // DOCTYPE\n\t // ignore it\n\t return;\n\t case 2: // TAG\n\t switch(value) {\n\t case \"font\":\n\t if (!isHTMLFont(arg3)) break;\n\t /* falls through */\n\t case \"b\":\n\t case \"big\":\n\t case \"blockquote\":\n\t case \"body\":\n\t case \"br\":\n\t case \"center\":\n\t case \"code\":\n\t case \"dd\":\n\t case \"div\":\n\t case \"dl\":\n\t case \"dt\":\n\t case \"em\":\n\t case \"embed\":\n\t case \"h1\":\n\t case \"h2\":\n\t case \"h3\":\n\t case \"h4\":\n\t case \"h5\":\n\t case \"h6\":\n\t case \"head\":\n\t case \"hr\":\n\t case \"i\":\n\t case \"img\":\n\t case \"li\":\n\t case \"listing\":\n\t case \"menu\":\n\t case \"meta\":\n\t case \"nobr\":\n\t case \"ol\":\n\t case \"p\":\n\t case \"pre\":\n\t case \"ruby\":\n\t case \"s\":\n\t case \"small\":\n\t case \"span\":\n\t case \"strong\":\n\t case \"strike\":\n\t case \"sub\":\n\t case \"sup\":\n\t case \"table\":\n\t case \"tt\":\n\t case \"u\":\n\t case \"ul\":\n\t case \"var\":\n\t if (fragment) {\n\t break;\n\t }\n\t do {\n\t stack.pop();\n\t current = stack.top;\n\t } while(current.namespaceURI !== NAMESPACE.HTML &&\n\t !isMathmlTextIntegrationPoint(current) &&\n\t !isHTMLIntegrationPoint(current));\n\n\t insertToken(t, value, arg3, arg4); // reprocess\n\t return;\n\t }\n\n\t // Any other start tag case goes here\n\t current = (stack.elements.length===1 && fragment) ? fragmentContext :\n\t stack.top;\n\t if (current.namespaceURI === NAMESPACE.MATHML) {\n\t adjustMathMLAttributes(arg3);\n\t }\n\t else if (current.namespaceURI === NAMESPACE.SVG) {\n\t value = adjustSVGTagName(value);\n\t adjustSVGAttributes(arg3);\n\t }\n\t adjustForeignAttributes(arg3);\n\n\t insertForeignElement(value, arg3, current.namespaceURI);\n\t if (arg4) { // the self-closing flag\n\t if (value === 'script' && current.namespaceURI === NAMESPACE.SVG) ;\n\t stack.pop();\n\t }\n\t return;\n\n\t case 3: // ENDTAG\n\t current = stack.top;\n\t if (value === \"script\" &&\n\t current.namespaceURI === NAMESPACE.SVG &&\n\t current.localName === \"script\") {\n\n\t stack.pop();\n\n\t // XXX\n\t // Deal with SVG scripts here\n\t }\n\t else {\n\t // The any other end tag case\n\t var i = stack.elements.length-1;\n\t var node = stack.elements[i];\n\t for(;;) {\n\t if (node.localName.toLowerCase() === value) {\n\t stack.popElement(node);\n\t break;\n\t }\n\t node = stack.elements[--i];\n\t // If non-html, keep looping\n\t if (node.namespaceURI !== NAMESPACE.HTML)\n\t continue;\n\t // Otherwise process the end tag as html\n\t parser(t, value, arg3, arg4);\n\t break;\n\t }\n\t }\n\t return;\n\t }\n\t }\n\n\t /***\n\t * Finally, this is the end of the HTMLParser() factory function.\n\t * It returns the htmlparser object with the append() and end() methods.\n\t */\n\n\t // Sneak another method into the htmlparser object to allow us to run\n\t // tokenizer tests. This can be commented out in production code.\n\t // This is a hook for testing the tokenizer. It has to be here\n\t // because the tokenizer details are all hidden away within the closure.\n\t // It should return an array of tokens generated while parsing the\n\t // input string.\n\t htmlparser.testTokenizer = function(input, initialState, lastStartTag, charbychar) {\n\t var tokens = [];\n\n\t switch(initialState) {\n\t case \"PCDATA state\":\n\t tokenizer = data_state;\n\t break;\n\t case \"RCDATA state\":\n\t tokenizer = rcdata_state;\n\t break;\n\t case \"RAWTEXT state\":\n\t tokenizer = rawtext_state;\n\t break;\n\t case \"PLAINTEXT state\":\n\t tokenizer = plaintext_state;\n\t break;\n\t }\n\n\t if (lastStartTag) {\n\t lasttagname = lastStartTag;\n\t }\n\n\t insertToken = function(t, value, arg3, arg4) {\n\t flushText();\n\t switch(t) {\n\t case 1: // TEXT\n\t if (tokens.length > 0 &&\n\t tokens[tokens.length-1][0] === \"Character\") {\n\t tokens[tokens.length-1][1] += value;\n\t }\n\t else tokens.push([\"Character\", value]);\n\t break;\n\t case 4: // COMMENT\n\t tokens.push([\"Comment\", value]);\n\t break;\n\t case 5: // DOCTYPE\n\t tokens.push([\"DOCTYPE\", value,\n\t arg3 === undefined ? null : arg3,\n\t arg4 === undefined ? null : arg4,\n\t !force_quirks]);\n\t break;\n\t case 2: // TAG\n\t var attrs = Object.create(null);\n\t for(var i = 0; i < arg3.length; i++) {\n\t // XXX: does attribute order matter?\n\t var a = arg3[i];\n\t if (a.length === 1) {\n\t attrs[a[0]] = \"\";\n\t }\n\t else {\n\t attrs[a[0]] = a[1];\n\t }\n\t }\n\t var token = [\"StartTag\", value, attrs];\n\t if (arg4) token.push(true);\n\t tokens.push(token);\n\t break;\n\t case 3: // ENDTAG\n\t tokens.push([\"EndTag\", value]);\n\t break;\n\t }\n\t };\n\n\t if (!charbychar) {\n\t this.parse(input, true);\n\t }\n\t else {\n\t for(var i = 0; i < input.length; i++) {\n\t this.parse(input[i]);\n\t }\n\t this.parse(\"\", true);\n\t }\n\t return tokens;\n\t };\n\n\t // Return the parser object from the HTMLParser() factory function\n\t return htmlparser;\n\t}\n\treturn HTMLParser_1;\n}\n\nvar DOMImplementation_1;\nvar hasRequiredDOMImplementation;\n\nfunction requireDOMImplementation () {\n\tif (hasRequiredDOMImplementation) return DOMImplementation_1;\n\thasRequiredDOMImplementation = 1;\n\tDOMImplementation_1 = DOMImplementation;\n\n\tvar Document = requireDocument();\n\tvar DocumentType = requireDocumentType();\n\tvar HTMLParser = requireHTMLParser();\n\tvar utils = requireUtils();\n\tvar xml = requireXmlnames();\n\n\t// Each document must have its own instance of the domimplementation object\n\tfunction DOMImplementation(contextObject) {\n\t this.contextObject = contextObject;\n\t}\n\n\n\t// Feature/version pairs that DOMImplementation.hasFeature() returns\n\t// true for. It returns false for anything else.\n\tvar supportedFeatures = {\n\t 'xml': { '': true, '1.0': true, '2.0': true }, // DOM Core\n\t 'core': { '': true, '2.0': true }, // DOM Core\n\t 'html': { '': true, '1.0': true, '2.0': true} , // HTML\n\t 'xhtml': { '': true, '1.0': true, '2.0': true} , // HTML\n\t};\n\n\tDOMImplementation.prototype = {\n\t hasFeature: function hasFeature(feature, version) {\n\t var f = supportedFeatures[(feature || '').toLowerCase()];\n\t return (f && f[version || '']) || false;\n\t },\n\n\t createDocumentType: function createDocumentType(qualifiedName, publicId, systemId) {\n\t if (!xml.isValidQName(qualifiedName)) utils.InvalidCharacterError();\n\n\t return new DocumentType(this.contextObject, qualifiedName, publicId, systemId);\n\t },\n\n\t createDocument: function createDocument(namespace, qualifiedName, doctype) {\n\t //\n\t // Note that the current DOMCore spec makes it impossible to\n\t // create an HTML document with this function, even if the\n\t // namespace and doctype are propertly set. See this thread:\n\t // http://lists.w3.org/Archives/Public/www-dom/2011AprJun/0132.html\n\t //\n\t var d = new Document(false, null);\n\t var e;\n\n\t if (qualifiedName)\n\t e = d.createElementNS(namespace, qualifiedName);\n\t else\n\t e = null;\n\n\t if (doctype) {\n\t d.appendChild(doctype);\n\t }\n\n\t if (e) d.appendChild(e);\n\t if (namespace === utils.NAMESPACE.HTML) {\n\t d._contentType = 'application/xhtml+xml';\n\t } else if (namespace === utils.NAMESPACE.SVG) {\n\t d._contentType = 'image/svg+xml';\n\t } else {\n\t d._contentType = 'application/xml';\n\t }\n\n\t return d;\n\t },\n\n\t createHTMLDocument: function createHTMLDocument(titleText) {\n\t var d = new Document(true, null);\n\t d.appendChild(new DocumentType(d, 'html'));\n\t var html = d.createElement('html');\n\t d.appendChild(html);\n\t var head = d.createElement('head');\n\t html.appendChild(head);\n\t if (titleText !== undefined) {\n\t var title = d.createElement('title');\n\t head.appendChild(title);\n\t title.appendChild(d.createTextNode(titleText));\n\t }\n\t html.appendChild(d.createElement('body'));\n\t d.modclock = 1; // Start tracking modifications\n\t return d;\n\t },\n\n\t mozSetOutputMutationHandler: function(doc, handler) {\n\t doc.mutationHandler = handler;\n\t },\n\n\t mozGetInputMutationHandler: function(doc) {\n\t utils.nyi();\n\t },\n\n\t mozHTMLParser: HTMLParser,\n\t};\n\treturn DOMImplementation_1;\n}\n\nvar Location_1;\nvar hasRequiredLocation;\n\nfunction requireLocation () {\n\tif (hasRequiredLocation) return Location_1;\n\thasRequiredLocation = 1;\n\tvar URL = requireURL();\n\tvar URLUtils = requireURLUtils();\n\n\tLocation_1 = Location;\n\n\tfunction Location(window, href) {\n\t this._window = window;\n\t this._href = href;\n\t}\n\n\tLocation.prototype = Object.create(URLUtils.prototype, {\n\t constructor: { value: Location },\n\n\t // Special behavior when href is set\n\t href: {\n\t get: function() { return this._href; },\n\t set: function(v) { this.assign(v); }\n\t },\n\n\t assign: { value: function(url) {\n\t // Resolve the new url against the current one\n\t // XXX:\n\t // This is not actually correct. It should be resolved against\n\t // the URL of the document of the script. For now, though, I only\n\t // support a single window and there is only one base url.\n\t // So this is good enough for now.\n\t var current = new URL(this._href);\n\t var newurl = current.resolve(url);\n\n\t // Save the new url\n\t this._href = newurl;\n\n\t // Start loading the new document!\n\t // XXX\n\t // This is just something hacked together.\n\t // The real algorithm is: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#navigate\n\t }},\n\n\t replace: { value: function(url) {\n\t // XXX\n\t // Since we aren't tracking history yet, replace is the same as assign\n\t this.assign(url);\n\t }},\n\n\t reload: { value: function() {\n\t // XXX:\n\t // Actually, the spec is a lot more complicated than this\n\t this.assign(this.href);\n\t }},\n\n\t toString: { value: function() {\n\t return this.href;\n\t }}\n\n\t});\n\treturn Location_1;\n}\n\nvar NavigatorID_1;\nvar hasRequiredNavigatorID;\n\nfunction requireNavigatorID () {\n\tif (hasRequiredNavigatorID) return NavigatorID_1;\n\thasRequiredNavigatorID = 1;\n\n\t// https://html.spec.whatwg.org/multipage/webappapis.html#navigatorid\n\tvar NavigatorID = Object.create(null, {\n\t appCodeName: { value: \"Mozilla\" },\n\t appName: { value: \"Netscape\" },\n\t appVersion: { value: \"4.0\" },\n\t platform: { value: \"\" },\n\t product: { value: \"Gecko\" },\n\t productSub: { value: \"20100101\" },\n\t userAgent: { value: \"\" },\n\t vendor: { value: \"\" },\n\t vendorSub: { value: \"\" },\n\t taintEnabled: { value: function() { return false; } }\n\t});\n\n\tNavigatorID_1 = NavigatorID;\n\treturn NavigatorID_1;\n}\n\nvar WindowTimers_1;\nvar hasRequiredWindowTimers;\n\nfunction requireWindowTimers () {\n\tif (hasRequiredWindowTimers) return WindowTimers_1;\n\thasRequiredWindowTimers = 1;\n\n\t// https://html.spec.whatwg.org/multipage/webappapis.html#windowtimers\n\tvar WindowTimers = {\n\t setTimeout: setTimeout,\n\t clearTimeout: clearTimeout,\n\t setInterval: setInterval,\n\t clearInterval: clearInterval\n\t};\n\n\tWindowTimers_1 = WindowTimers;\n\treturn WindowTimers_1;\n}\n\nvar impl = {exports: {}};\n\nvar hasRequiredImpl;\n\nfunction requireImpl () {\n\tif (hasRequiredImpl) return impl.exports;\n\thasRequiredImpl = 1;\n\t(function (module, exports) {\n\t\tvar utils = requireUtils();\n\n\t\texports = module.exports = {\n\t\t CSSStyleDeclaration: requireCSSStyleDeclaration(),\n\t\t CharacterData: requireCharacterData(),\n\t\t Comment: requireComment(),\n\t\t DOMImplementation: requireDOMImplementation(),\n\t\t DOMTokenList: requireDOMTokenList(),\n\t\t Document: requireDocument(),\n\t\t DocumentFragment: requireDocumentFragment(),\n\t\t DocumentType: requireDocumentType(),\n\t\t Element: requireElement(),\n\t\t HTMLParser: requireHTMLParser(),\n\t\t NamedNodeMap: requireNamedNodeMap(),\n\t\t Node: requireNode(),\n\t\t NodeList: requireNodeList(),\n\t\t NodeFilter: requireNodeFilter(),\n\t\t ProcessingInstruction: requireProcessingInstruction(),\n\t\t Text: requireText(),\n\t\t Window: requireWindow()\n\t\t};\n\n\t\tutils.merge(exports, requireEvents());\n\t\tutils.merge(exports, requireHtmlelts().elements);\n\t\tutils.merge(exports, requireSvg().elements); \n\t} (impl, impl.exports));\n\treturn impl.exports;\n}\n\nvar Window_1;\nvar hasRequiredWindow;\n\nfunction requireWindow () {\n\tif (hasRequiredWindow) return Window_1;\n\thasRequiredWindow = 1;\n\tvar DOMImplementation = requireDOMImplementation();\n\tvar EventTarget = requireEventTarget();\n\tvar Location = requireLocation();\n\tvar utils = requireUtils();\n\n\tWindow_1 = Window;\n\n\tfunction Window(document) {\n\t this.document = document || new DOMImplementation(null).createHTMLDocument(\"\");\n\t this.document._scripting_enabled = true;\n\t this.document.defaultView = this;\n\t this.location = new Location(this, this.document._address || 'about:blank');\n\t}\n\n\tWindow.prototype = Object.create(EventTarget.prototype, {\n\t console: { value: console },\n\t history: { value: {\n\t back: utils.nyi,\n\t forward: utils.nyi,\n\t go: utils.nyi\n\t }},\n\t navigator: { value: requireNavigatorID() },\n\n\t // Self-referential properties\n\t window: { get: function() { return this; }},\n\t self: { get: function() { return this; }},\n\t frames: { get: function() { return this; }},\n\n\t // Self-referential properties for a top-level window\n\t parent: { get: function() { return this; }},\n\t top: { get: function() { return this; }},\n\n\t // We don't support any other windows for now\n\t length: { value: 0 }, // no frames\n\t frameElement: { value: null }, // not part of a frame\n\t opener: { value: null }, // not opened by another window\n\n\t // The onload event handler.\n\t // XXX: need to support a bunch of other event types, too,\n\t // and have them interoperate with document.body.\n\n\t onload: {\n\t get: function() {\n\t return this._getEventHandler(\"load\");\n\t },\n\t set: function(v) {\n\t this._setEventHandler(\"load\", v);\n\t }\n\t },\n\n\t // XXX This is a completely broken implementation\n\t getComputedStyle: { value: function getComputedStyle(elt) {\n\t return elt.style;\n\t }}\n\n\t});\n\n\tutils.expose(requireWindowTimers(), Window);\n\tutils.expose(requireImpl(), Window);\n\treturn Window_1;\n}\n\nvar hasRequiredLib;\n\nfunction requireLib () {\n\tif (hasRequiredLib) return lib;\n\thasRequiredLib = 1;\n\t(function (exports) {\n\t\tvar DOMImplementation = requireDOMImplementation();\n\t\tvar HTMLParser = requireHTMLParser();\n\t\trequireWindow();\n\t\tvar impl = requireImpl();\n\n\t\texports.createDOMImplementation = function() {\n\t\t return new DOMImplementation(null);\n\t\t};\n\n\t\texports.createDocument = function(html, force) {\n\t\t // Previous API couldn't let you pass '' as a document, and that\n\t\t // yields a slightly different document than createHTMLDocument('')\n\t\t // does. The new `force` parameter lets you pass '' if you want to.\n\t\t if (html || force) {\n\t\t var parser = new HTMLParser();\n\t\t parser.parse(html || '', true);\n\t\t return parser.document();\n\t\t }\n\t\t return new DOMImplementation(null).createHTMLDocument(\"\");\n\t\t};\n\n\t\texports.createIncrementalHTMLParser = function() {\n\t\t var parser = new HTMLParser();\n\t\t /** API for incremental parser. */\n\t\t return {\n\t\t /** Provide an additional chunk of text to be parsed. */\n\t\t write: function(s) {\n\t\t if (s.length > 0) {\n\t\t parser.parse(s, false, function() { return true; });\n\t\t }\n\t\t },\n\t\t /**\n\t\t * Signal that we are done providing input text, optionally\n\t\t * providing one last chunk as a parameter.\n\t\t */\n\t\t end: function(s) {\n\t\t parser.parse(s || '', true, function() { return true; });\n\t\t },\n\t\t /**\n\t\t * Performs a chunk of parsing work, returning at the end of\n\t\t * the next token as soon as shouldPauseFunc() returns true.\n\t\t * Returns true iff there is more work to do.\n\t\t *\n\t\t * For example:\n\t\t * ```\n\t\t * var incrParser = domino.createIncrementalHTMLParser();\n\t\t * incrParser.end('...long html document...');\n\t\t * while (true) {\n\t\t * // Pause every 10ms\n\t\t * var start = Date.now();\n\t\t * var pauseIn10 = function() { return (Date.now() - start) >= 10; };\n\t\t * if (!incrParser.process(pauseIn10)) {\n\t\t * break;\n\t\t * }\n\t\t * ...yield to other tasks, do other housekeeping, etc...\n\t\t * }\n\t\t * ```\n\t\t */\n\t\t process: function(shouldPauseFunc) {\n\t\t return parser.parse('', false, shouldPauseFunc);\n\t\t },\n\t\t /**\n\t\t * Returns the result of the incremental parse. Valid after\n\t\t * `this.end()` has been called and `this.process()` has returned\n\t\t * false.\n\t\t */\n\t\t document: function() {\n\t\t return parser.document();\n\t\t },\n\t\t }; \n\t\t};\n\n\t\texports.createWindow = function(html, address) {\n\t\t var document = exports.createDocument(html);\n\t\t if (address !== undefined) { document._address = address; }\n\t\t return new impl.Window(document);\n\t\t};\n\n\t\texports.impl = impl; \n\t} (lib));\n\treturn lib;\n}\n\nvar libExports = requireLib();\nvar index = /*@__PURE__*/getDefaultExportFromCjs(libExports);\n\nexport { index as default };\n//# sourceMappingURL=bundled-domino.mjs.map\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\nimport {ɵBrowserDomAdapter as BrowserDomAdapter} from '@angular/platform-browser';\n\nimport domino from './bundled-domino';\n\nexport function setDomTypes() {\n // Make all Domino types available in the global env.\n // NB: Any changes here should also be done in `packages/platform-server/init/src/shims.ts`.\n Object.assign(globalThis, domino.impl);\n (globalThis as any)['KeyboardEvent'] = domino.impl.Event;\n}\n\n/**\n * Parses a document string to a Document object.\n */\nexport function parseDocument(html: string, url = '/') {\n let window = domino.createWindow(html, url);\n let doc = window.document;\n return doc;\n}\n\n/**\n * Serializes a document to string.\n */\nexport function serializeDocument(doc: Document): string {\n return (doc as any).serialize();\n}\n\n/**\n * DOM Adapter for the server platform based on https://github.com/fgnass/domino.\n */\nexport class DominoAdapter extends BrowserDomAdapter {\n static override makeCurrent() {\n setDomTypes();\n setRootDomAdapter(new DominoAdapter());\n }\n\n override readonly supportsDOMEvents = false;\n private static defaultDoc: Document;\n\n override createHtmlDocument(): Document {\n return parseDocument('<html><head><title>fakeTitle</title></head><body></body></html>');\n }\n\n override getDefaultDocument(): Document {\n if (!DominoAdapter.defaultDoc) {\n DominoAdapter.defaultDoc = domino.createDocument();\n }\n return DominoAdapter.defaultDoc;\n }\n\n override isElementNode(node: any): boolean {\n return node ? node.nodeType === DominoAdapter.defaultDoc.ELEMENT_NODE : false;\n }\n override isShadowRoot(node: any): boolean {\n return node.shadowRoot == node;\n }\n\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n override getGlobalEventTarget(doc: Document, target: string): EventTarget | null {\n if (target === 'window') {\n return doc.defaultView;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n\n override getBaseHref(doc: Document): string {\n const length = doc.head.children.length;\n\n // The `<base>` can only be a direct child of `<head>` so we can save some\n // execution time by looking through them directly instead of querying for it.\n // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/base\n // Note that we can't cache the `href` value itself, because this method gets called with a\n // different document every time which means that in theory the value can be different too.\n for (let i = 0; i < length; i++) {\n const child = doc.head.children[i];\n\n // Tag names are always uppercase for HTML nodes.\n if (child.tagName === 'BASE') {\n // TODO(alxhub): Need relative path logic from BrowserDomAdapter here?\n return child.getAttribute('href') || '';\n }\n }\n\n return '';\n }\n\n override dispatchEvent(el: Node, evt: any) {\n el.dispatchEvent(evt);\n\n // Dispatch the event to the window also.\n const doc = el.ownerDocument || el;\n const win = (doc as any).defaultView;\n if (win) {\n win.dispatchEvent(evt);\n }\n }\n\n override getUserAgent(): string {\n return 'Fake user agent';\n }\n\n override getCookie(name: string): string {\n throw new Error('getCookie has not been implemented');\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\n\n/**\n * Config object passed to initialize the platform.\n *\n * @publicApi\n */\nexport interface PlatformConfig {\n /**\n * The initial DOM to use to bootstrap the server application.\n * @default create a new DOM using Domino\n */\n document?: string;\n /**\n * The URL for the current application state. This is used for initializing\n * the platform's location. `protocol`, `hostname`, and `port` will be\n * overridden if `baseUrl` is set.\n * @default none\n */\n url?: string;\n}\n\n/**\n * The DI token for setting the initial config for the platform.\n *\n * @publicApi\n */\nexport const INITIAL_CONFIG = new InjectionToken<PlatformConfig>('Server.INITIAL_CONFIG');\n\n/**\n * A function that will be executed when calling `renderApplication` or\n * `renderModule` just before current platform state is rendered to string.\n *\n * @publicApi\n */\nexport const BEFORE_APP_SERIALIZED = new InjectionToken<ReadonlyArray<() => void | Promise<void>>>(\n 'Server.RENDER_MODULE_HOOK',\n);\n\nexport const ENABLE_DOM_EMULATION = new InjectionToken<boolean>('ENABLE_DOM_EMULATION');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {\n inject,\n Inject,\n Injectable,\n Injector,\n ɵstartMeasuring as startMeasuring,\n ɵstopMeasuring as stopMeasuring,\n} from '@angular/core';\n\nimport {serializeDocument} from './domino_adapter';\nimport {ENABLE_DOM_EMULATION} from './tokens';\n\n/**\n * Representation of the current platform state.\n *\n * @publicApi\n */\n@Injectable()\nexport class PlatformState {\n /* @internal */\n _enableDomEmulation = enableDomEmulation(inject(Injector));\n\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n\n /**\n * Renders the current state of the platform to string.\n */\n renderToString(): string {\n if (ngDevMode && !this._enableDomEmulation && !window?.document) {\n throw new Error('Disabled DOM emulation should only run in browser environments');\n }\n\n const measuringLabel = 'renderToString';\n startMeasuring(measuringLabel);\n const rendered = this._enableDomEmulation\n ? serializeDocument(this._doc)\n : // In the case we run/test the platform-server in a browser environment\n this._doc.documentElement.outerHTML;\n stopMeasuring(measuringLabel);\n return rendered;\n }\n\n /**\n * Returns the current DOM state.\n */\n getDocument(): any {\n return this._doc;\n }\n}\n\nexport function enableDomEmulation(injector: Injector): boolean {\n return injector.get(ENABLE_DOM_EMULATION, true);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {PlatformLocation, XhrFactory} from '@angular/common';\nimport {\n HttpEvent,\n HttpHandlerFn,\n HttpRequest,\n ɵHTTP_ROOT_INTERCEPTOR_FNS as HTTP_ROOT_INTERCEPTOR_FNS,\n} from '@angular/common/http';\nimport {inject, Injectable, Provider} from '@angular/core';\nimport {Observable} from 'rxjs';\n\n@Injectable()\nexport class ServerXhr implements XhrFactory {\n private xhrImpl: typeof import('xhr2') | undefined;\n\n // The `xhr2` dependency has a side-effect of accessing and modifying a\n // global scope. Loading `xhr2` dynamically allows us to delay the loading\n // and start the process once the global scope is established by the underlying\n // server platform (via shims, etc).\n private async ɵloadImpl(): Promise<void> {\n if (!this.xhrImpl) {\n const {default: xhr} = await import('xhr2');\n this.xhrImpl = xhr;\n }\n }\n\n build(): XMLHttpRequest {\n const impl = this.xhrImpl;\n if (!impl) {\n throw new Error('Unexpected state in ServerXhr: XHR implementation is not loaded.');\n }\n\n return new impl.XMLHttpRequest();\n }\n}\n\nfunction relativeUrlsTransformerInterceptorFn(\n request: HttpRequest<unknown>,\n next: HttpHandlerFn,\n): Observable<HttpEvent<unknown>> {\n const platformLocation = inject(PlatformLocation);\n const {href, protocol, hostname, port} = platformLocation;\n if (!protocol.startsWith('http')) {\n return next(request);\n }\n\n let urlPrefix = `${protocol}//${hostname}`;\n if (port) {\n urlPrefix += `:${port}`;\n }\n\n const baseHref = platformLocation.getBaseHrefFromDOM() || href;\n const baseUrl = new URL(baseHref, urlPrefix);\n const newUrl = new URL(request.url, baseUrl).toString();\n\n return next(request.clone({url: newUrl}));\n}\n\nexport const SERVER_HTTP_PROVIDERS: Provider[] = [\n {provide: XhrFactory, useClass: ServerXhr},\n {\n provide: HTTP_ROOT_INTERCEPTOR_FNS,\n useValue: relativeUrlsTransformerInterceptorFn,\n multi: true,\n },\n];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n DOCUMENT,\n LocationChangeEvent,\n LocationChangeListener,\n PlatformLocation,\n ɵgetDOM as getDOM,\n} from '@angular/common';\nimport {inject, Inject, Injectable, Optional, ɵWritable as Writable} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\n\nconst RESOLVE_PROTOCOL = 'resolve:';\n\nfunction parseUrl(urlStr: string): {\n hostname: string;\n protocol: string;\n port: string;\n pathname: string;\n search: string;\n hash: string;\n} {\n const {hostname, protocol, port, pathname, search, hash} = new URL(\n urlStr,\n RESOLVE_PROTOCOL + '//',\n );\n\n return {\n hostname,\n protocol: protocol === RESOLVE_PROTOCOL ? '' : protocol,\n port,\n pathname,\n search,\n hash,\n };\n}\n\n/**\n * Server-side implementation of URL state. Implements `pathname`, `search`, and `hash`\n * but not the state stack.\n */\n@Injectable()\nexport class ServerPlatformLocation implements PlatformLocation {\n public readonly href: string = '/';\n public readonly hostname: string = '/';\n public readonly protocol: string = '/';\n public readonly port: string = '/';\n public readonly pathname: string = '/';\n public readonly search: string = '';\n public readonly hash: string = '';\n private _hashUpdate = new Subject<LocationChangeEvent>();\n private _doc = inject(DOCUMENT);\n\n constructor() {\n const config = inject(INITIAL_CONFIG, {optional: true});\n if (!config) {\n return;\n }\n if (config.url) {\n const url = parseUrl(config.url);\n this.protocol = url.protocol;\n this.hostname = url.hostname;\n this.port = url.port;\n this.pathname = url.pathname;\n this.search = url.search;\n this.hash = url.hash;\n this.href = this._doc.location.href;\n }\n }\n\n getBaseHrefFromDOM(): string {\n return getDOM().getBaseHref(this._doc)!;\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n // No-op: a state stack is not implemented, so\n // no events will ever come.\n return () => {};\n }\n\n onHashChange(fn: LocationChangeListener): VoidFunction {\n const subscription = this._hashUpdate.subscribe(fn);\n return () => subscription.unsubscribe();\n }\n\n get url(): string {\n return `${this.pathname}${this.search}${this.hash}`;\n }\n\n private setHash(value: string, oldUrl: string) {\n if (this.hash === value) {\n // Don't fire events if the hash has not changed.\n return;\n }\n (this as Writable<this>).hash = value;\n const newUrl = this.url;\n queueMicrotask(() =>\n this._hashUpdate.next({\n type: 'hashchange',\n state: null,\n oldUrl,\n newUrl,\n } as LocationChangeEvent),\n );\n }\n\n replaceState(state: any, title: string, newUrl: string): void {\n const oldUrl = this.url;\n const parsedUrl = parseUrl(newUrl);\n (this as Writable<this>).pathname = parsedUrl.pathname;\n (this as Writable<this>).search = parsedUrl.search;\n this.setHash(parsedUrl.hash, oldUrl);\n }\n\n pushState(state: any, title: string, newUrl: string): void {\n this.replaceState(state, title, newUrl);\n }\n\n forward(): void {\n throw new Error('Not implemented');\n }\n\n back(): void {\n throw new Error('Not implemented');\n }\n\n // History API isn't available on server, therefore return undefined\n getState(): unknown {\n return undefined;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, type ListenerOptions} from '@angular/core';\nimport {EventManagerPlugin} from '@angular/platform-browser';\n\n@Injectable()\nexport class ServerEventManagerPlugin extends EventManagerPlugin {\n constructor(@Inject(DOCUMENT) private doc: any) {\n super(doc);\n }\n\n // Handle all events on the server.\n override supports(eventName: string) {\n return true;\n }\n\n override addEventListener(\n element: HTMLElement,\n eventName: string,\n handler: Function,\n options?: ListenerOptions,\n ): Function {\n return getDOM().onAndCancel(element, eventName, handler, options);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {\n APP_ID,\n inject,\n InjectionToken,\n Injector,\n Provider,\n TransferState,\n ɵstartMeasuring as startMeasuring,\n ɵstopMeasuring as stopMeasuring,\n} from '@angular/core';\n\nimport {BEFORE_APP_SERIALIZED} from './tokens';\n\n/** Tracks whether the server-side application transfer state has already been serialized. */\nconst TRANSFER_STATE_STATUS = new InjectionToken<{serialized: boolean}>(\n typeof ngDevMode === 'undefined' || ngDevMode ? 'TRANSFER_STATE_STATUS' : '',\n {\n providedIn: 'root',\n factory: () => ({serialized: false}),\n },\n);\n\nexport const TRANSFER_STATE_SERIALIZATION_PROVIDERS: Provider[] = [\n {\n provide: BEFORE_APP_SERIALIZED,\n useFactory: serializeTransferStateFactory,\n multi: true,\n },\n];\n\n/** TODO: Move this to a utils folder and convert to use SafeValues. */\nexport function createScript(\n doc: Document,\n textContent: string,\n nonce: string | null,\n): HTMLScriptElement {\n const script = doc.createElement('script');\n script.textContent = textContent;\n if (nonce) {\n script.setAttribute('nonce', nonce);\n }\n\n return script;\n}\n\nfunction warnIfStateTransferHappened(injector: Injector): void {\n const transferStateStatus = injector.get(TRANSFER_STATE_STATUS);\n\n if (transferStateStatus.serialized) {\n console.warn(\n `Angular detected an incompatible configuration, which causes duplicate serialization of the server-side application state.\\n\\n` +\n `This can happen if the server providers have been provided more than once using different mechanisms. For example:\\n\\n` +\n ` imports: [ServerModule], // Registers server providers\\n` +\n ` providers: [provideServerRendering()] // Also registers server providers\\n\\n` +\n `To fix this, ensure that the \\`provideServerRendering()\\` function is the only provider used and remove the other(s).`,\n );\n }\n\n transferStateStatus.serialized = true;\n}\n\nfunction serializeTransferStateFactory() {\n const doc = inject(DOCUMENT);\n const appId = inject(APP_ID);\n const transferStore = inject(TransferState);\n const injector = inject(Injector);\n\n return () => {\n const measuringLabel = 'serializeTransferStateFactory';\n startMeasuring(measuringLabel);\n // The `.toJSON` here causes the `onSerialize` callbacks to be called.\n // These callbacks can be used to provide the value for a given key.\n const content = transferStore.toJson();\n\n if (transferStore.isEmpty) {\n // The state is empty, nothing to transfer,\n // avoid creating an extra `<script>` tag in this case.\n return;\n }\n\n if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n warnIfStateTransferHappened(injector);\n }\n\n const script = createScript(\n doc,\n content,\n /**\n * `nonce` is not required for 'application/json'\n * See: https://html.spec.whatwg.org/multipage/scripting.html#attr-script-type\n */\n null,\n );\n script.id = appId + '-state';\n script.setAttribute('type', 'application/json');\n\n // It is intentional that we add the script at the very bottom. Angular CLI script tags for\n // bundles are always `type=\"module\"`. These are deferred by default and cause the\n // transfer data to be queried only after the browser has finished parsing the DOM.\n doc.body.appendChild(script);\n stopMeasuring(measuringLabel);\n };\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n DOCUMENT,\n PlatformLocation,\n ViewportScroller,\n ɵgetDOM as getDOM,\n ɵNullViewportScroller as NullViewportScroller,\n ɵPLATFORM_SERVER_ID as PLATFORM_SERVER_ID,\n} from '@angular/common';\nimport {\n createPlatformFactory,\n Injector,\n NgModule,\n PLATFORM_ID,\n PLATFORM_INITIALIZER,\n platformCore,\n PlatformRef,\n Provider,\n Testability,\n ɵsetDocument,\n ɵTESTABILITY as TESTABILITY,\n inject,\n StaticProvider,\n} from '@angular/core';\nimport {\n BrowserModule,\n EVENT_MANAGER_PLUGINS,\n ɵBrowserDomAdapter as BrowserDomAdapter,\n} from '@angular/platform-browser';\n\nimport {DominoAdapter, parseDocument} from './domino_adapter';\nimport {SERVER_HTTP_PROVIDERS} from './http';\nimport {ServerPlatformLocation} from './location';\nimport {enableDomEmulation, PlatformState} from './platform_state';\nimport {ServerEventManagerPlugin} from './server_events';\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\nimport {TRANSFER_STATE_SERIALIZATION_PROVIDERS} from './transfer_state';\n\nexport const INTERNAL_SERVER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: DOCUMENT, useFactory: _document},\n {provide: PLATFORM_ID, useValue: PLATFORM_SERVER_ID},\n {provide: PLATFORM_INITIALIZER, useFactory: initDominoAdapter, multi: true},\n {\n provide: PlatformLocation,\n useClass: ServerPlatformLocation,\n deps: [],\n },\n {provide: PlatformState, deps: [DOCUMENT]},\n];\n\nfunction initDominoAdapter() {\n const injector = inject(Injector);\n const _enableDomEmulation = enableDomEmulation(injector);\n return () => {\n if (_enableDomEmulation) {\n DominoAdapter.makeCurrent();\n } else {\n BrowserDomAdapter.makeCurrent();\n }\n };\n}\n\nexport const SERVER_RENDER_PROVIDERS: Provider[] = [\n {provide: EVENT_MANAGER_PLUGINS, multi: true, useClass: ServerEventManagerPlugin},\n];\n\nexport const PLATFORM_SERVER_PROVIDERS: Provider[] = [\n TRANSFER_STATE_SERIALIZATION_PROVIDERS,\n SERVER_RENDER_PROVIDERS,\n SERVER_HTTP_PROVIDERS,\n {provide: Testability, useValue: null}, // Keep for backwards-compatibility.\n {provide: TESTABILITY, useValue: null},\n {provide: ViewportScroller, useClass: NullViewportScroller},\n];\n\n/**\n * The ng module for the server.\n *\n * @publicApi\n */\n@NgModule({\n exports: [BrowserModule],\n providers: PLATFORM_SERVER_PROVIDERS,\n})\nexport class ServerModule {}\n\nfunction _document() {\n const injector = inject(Injector);\n const config: PlatformConfig | null = injector.get(INITIAL_CONFIG, null);\n const _enableDomEmulation = enableDomEmulation(injector);\n let document: Document;\n if (config && config.document) {\n document =\n typeof config.document === 'string'\n ? _enableDomEmulation\n ? parseDocument(config.document, config.url)\n : window.document\n : config.document;\n } else {\n document = getDOM().createHtmlDocument();\n }\n // Tell ivy about the global document\n ɵsetDocument(document);\n return document;\n}\n\n/**\n * Creates a server-side instance of an Angular platform.\n *\n * This platform should be used when performing server-side rendering of an Angular application.\n * Standalone applications can be bootstrapped on the server using the `bootstrapApplication`\n * function from `@angular/platform-browser`. When using `bootstrapApplication`, the `platformServer`\n * should be created first and passed to the bootstrap function using the `BootstrapContext`.\n *\n * @publicApi\n */\nexport function platformServer(extraProviders?: StaticProvider[] | undefined): PlatformRef {\n const noServerModeSet = typeof ngServerMode === 'undefined';\n if (noServerModeSet) {\n globalThis['ngServerMode'] = true;\n }\n\n const platform = createPlatformFactory(\n platformCore,\n 'server',\n INTERNAL_SERVER_PLATFORM_PROVIDERS,\n )(extraProviders);\n\n if (noServerModeSet) {\n platform.onDestroy(() => {\n globalThis['ngServerMode'] = undefined;\n });\n }\n\n return platform;\n}\n"],"names":["domino","BrowserDomAdapter","setRootDomAdapter","startMeasuring","stopMeasuring","HTTP_ROOT_INTERCEPTOR_FNS","getDOM","PLATFORM_SERVER_ID","TESTABILITY","NullViewportScroller","ɵsetDocument"],"mappings":"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"}
|