{"version":3,"file":"static/chunks/289-d1163dec0b5efdd9.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@videojs/vhs-utils/es/byte-helpers.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/codecs.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/mp4-helpers.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/opus-helpers.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/ebml-helpers.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/nal-helpers.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/containers.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/id3-helpers.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/media-types.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack://_N_E/./node_modules/@videojs/xhr/lib/http-handler.js","webpack://_N_E/./node_modules/@videojs/xhr/lib/index.js","webpack://_N_E/./node_modules/@videojs/xhr/lib/interceptors.js","webpack://_N_E/./node_modules/@videojs/xhr/lib/retry.js","webpack://_N_E/./node_modules/@xmldom/xmldom/lib/conventions.js","webpack://_N_E/./node_modules/@xmldom/xmldom/lib/dom-parser.js","webpack://_N_E/./node_modules/@xmldom/xmldom/lib/dom.js","webpack://_N_E/./node_modules/@xmldom/xmldom/lib/entities.js","webpack://_N_E/./node_modules/@xmldom/xmldom/lib/index.js","webpack://_N_E/./node_modules/@xmldom/xmldom/lib/sax.js","webpack://_N_E/./node_modules/base64-js/index.js","webpack://_N_E/./node_modules/buffer/index.js","webpack://_N_E/./node_modules/buffer/node_modules/isarray/index.js","webpack://_N_E/./node_modules/global/document.js","webpack://_N_E/./node_modules/global/window.js","webpack://_N_E/./node_modules/ieee754/index.js","webpack://_N_E/./node_modules/is-function/index.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/stream.js","webpack://_N_E/./node_modules/m3u8-parser/dist/m3u8-parser.es.js","webpack://_N_E/./node_modules/mpd-parser/dist/mpd-parser.es.js","webpack://_N_E/./node_modules/@videojs/vhs-utils/es/media-groups.js","webpack://_N_E/./node_modules/mux.js/lib/tools/parse-sidx.js","webpack://_N_E/./node_modules/mux.js/lib/utils/clock.js","webpack://_N_E/./node_modules/mux.js/lib/utils/numbers.js","webpack://_N_E/./node_modules/videojs-contrib-quality-levels/dist/videojs-contrib-quality-levels.js","webpack://_N_E/./node_modules/videojs-hls-quality-selector/dist/videojs-hls-quality-selector.js","webpack://_N_E/./node_modules/videojs-mux/dist/videojs-mux.js","webpack://_N_E/./node_modules/videojs-vtt.js/lib/browser-index.js","webpack://_N_E/./node_modules/videojs-vtt.js/lib/vtt.js","webpack://_N_E/./node_modules/videojs-vtt.js/lib/vttcue.js","webpack://_N_E/./node_modules/videojs-vtt.js/lib/vttregion.js","webpack://_N_E/./node_modules/videojs-youtube/dist/Youtube.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/extends.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/extends.js"],"sourcesContent":["import window from 'global/window'; // const log2 = Math.log2 ? Math.log2 : (x) => (Math.log(x) / Math.log(2));\n\nvar repeat = function repeat(str, len) {\n var acc = '';\n\n while (len--) {\n acc += str;\n }\n\n return acc;\n}; // count the number of bits it would take to represent a number\n// we used to do this with log2 but BigInt does not support builtin math\n// Math.ceil(log2(x));\n\n\nexport var countBits = function countBits(x) {\n return x.toString(2).length;\n}; // count the number of whole bytes it would take to represent a number\n\nexport var countBytes = function countBytes(x) {\n return Math.ceil(countBits(x) / 8);\n};\nexport var padStart = function padStart(b, len, str) {\n if (str === void 0) {\n str = ' ';\n }\n\n return (repeat(str, len) + b.toString()).slice(-len);\n};\nexport var isArrayBufferView = function isArrayBufferView(obj) {\n if (ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(obj);\n }\n\n return obj && obj.buffer instanceof ArrayBuffer;\n};\nexport var isTypedArray = function isTypedArray(obj) {\n return isArrayBufferView(obj);\n};\nexport var toUint8 = function toUint8(bytes) {\n if (bytes instanceof Uint8Array) {\n return bytes;\n }\n\n if (!Array.isArray(bytes) && !isTypedArray(bytes) && !(bytes instanceof ArrayBuffer)) {\n // any non-number or NaN leads to empty uint8array\n // eslint-disable-next-line\n if (typeof bytes !== 'number' || typeof bytes === 'number' && bytes !== bytes) {\n bytes = 0;\n } else {\n bytes = [bytes];\n }\n }\n\n return new Uint8Array(bytes && bytes.buffer || bytes, bytes && bytes.byteOffset || 0, bytes && bytes.byteLength || 0);\n};\nexport var toHexString = function toHexString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(16), 2, '0');\n }\n\n return str;\n};\nexport var toBinaryString = function toBinaryString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(2), 8, '0');\n }\n\n return str;\n};\nvar BigInt = window.BigInt || Number;\nvar BYTE_TABLE = [BigInt('0x1'), BigInt('0x100'), BigInt('0x10000'), BigInt('0x1000000'), BigInt('0x100000000'), BigInt('0x10000000000'), BigInt('0x1000000000000'), BigInt('0x100000000000000'), BigInt('0x10000000000000000')];\nexport var ENDIANNESS = function () {\n var a = new Uint16Array([0xFFCC]);\n var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n\n if (b[0] === 0xFF) {\n return 'big';\n }\n\n if (b[0] === 0xCC) {\n return 'little';\n }\n\n return 'unknown';\n}();\nexport var IS_BIG_ENDIAN = ENDIANNESS === 'big';\nexport var IS_LITTLE_ENDIAN = ENDIANNESS === 'little';\nexport var bytesToNumber = function bytesToNumber(bytes, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$signed = _ref.signed,\n signed = _ref$signed === void 0 ? false : _ref$signed,\n _ref$le = _ref.le,\n le = _ref$le === void 0 ? false : _ref$le;\n\n bytes = toUint8(bytes);\n var fn = le ? 'reduce' : 'reduceRight';\n var obj = bytes[fn] ? bytes[fn] : Array.prototype[fn];\n var number = obj.call(bytes, function (total, byte, i) {\n var exponent = le ? i : Math.abs(i + 1 - bytes.length);\n return total + BigInt(byte) * BYTE_TABLE[exponent];\n }, BigInt(0));\n\n if (signed) {\n var max = BYTE_TABLE[bytes.length] / BigInt(2) - BigInt(1);\n number = BigInt(number);\n\n if (number > max) {\n number -= max;\n number -= max;\n number -= BigInt(2);\n }\n }\n\n return Number(number);\n};\nexport var numberToBytes = function numberToBytes(number, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$le = _ref2.le,\n le = _ref2$le === void 0 ? false : _ref2$le;\n\n // eslint-disable-next-line\n if (typeof number !== 'bigint' && typeof number !== 'number' || typeof number === 'number' && number !== number) {\n number = 0;\n }\n\n number = BigInt(number);\n var byteCount = countBytes(number);\n var bytes = new Uint8Array(new ArrayBuffer(byteCount));\n\n for (var i = 0; i < byteCount; i++) {\n var byteIndex = le ? i : Math.abs(i + 1 - bytes.length);\n bytes[byteIndex] = Number(number / BYTE_TABLE[i] & BigInt(0xFF));\n\n if (number < 0) {\n bytes[byteIndex] = Math.abs(~bytes[byteIndex]);\n bytes[byteIndex] -= i === 0 ? 1 : 2;\n }\n }\n\n return bytes;\n};\nexport var bytesToString = function bytesToString(bytes) {\n if (!bytes) {\n return '';\n } // TODO: should toUint8 handle cases where we only have 8 bytes\n // but report more since this is a Uint16+ Array?\n\n\n bytes = Array.prototype.slice.call(bytes);\n var string = String.fromCharCode.apply(null, toUint8(bytes));\n\n try {\n return decodeURIComponent(escape(string));\n } catch (e) {// if decodeURIComponent/escape fails, we are dealing with partial\n // or full non string data. Just return the potentially garbled string.\n }\n\n return string;\n};\nexport var stringToBytes = function stringToBytes(string, stringIsBytes) {\n if (typeof string !== 'string' && string && typeof string.toString === 'function') {\n string = string.toString();\n }\n\n if (typeof string !== 'string') {\n return new Uint8Array();\n } // If the string already is bytes, we don't have to do this\n // otherwise we do this so that we split multi length characters\n // into individual bytes\n\n\n if (!stringIsBytes) {\n string = unescape(encodeURIComponent(string));\n }\n\n var view = new Uint8Array(string.length);\n\n for (var i = 0; i < string.length; i++) {\n view[i] = string.charCodeAt(i);\n }\n\n return view;\n};\nexport var concatTypedArrays = function concatTypedArrays() {\n for (var _len = arguments.length, buffers = new Array(_len), _key = 0; _key < _len; _key++) {\n buffers[_key] = arguments[_key];\n }\n\n buffers = buffers.filter(function (b) {\n return b && (b.byteLength || b.length) && typeof b !== 'string';\n });\n\n if (buffers.length <= 1) {\n // for 0 length we will return empty uint8\n // for 1 length we return the first uint8\n return toUint8(buffers[0]);\n }\n\n var totalLen = buffers.reduce(function (total, buf, i) {\n return total + (buf.byteLength || buf.length);\n }, 0);\n var tempBuffer = new Uint8Array(totalLen);\n var offset = 0;\n buffers.forEach(function (buf) {\n buf = toUint8(buf);\n tempBuffer.set(buf, offset);\n offset += buf.byteLength;\n });\n return tempBuffer;\n};\n/**\n * Check if the bytes \"b\" are contained within bytes \"a\".\n *\n * @param {Uint8Array|Array} a\n * Bytes to check in\n *\n * @param {Uint8Array|Array} b\n * Bytes to check for\n *\n * @param {Object} options\n * options\n *\n * @param {Array|Uint8Array} [offset=0]\n * offset to use when looking at bytes in a\n *\n * @param {Array|Uint8Array} [mask=[]]\n * mask to use on bytes before comparison.\n *\n * @return {boolean}\n * If all bytes in b are inside of a, taking into account\n * bit masks.\n */\n\nexport var bytesMatch = function bytesMatch(a, b, _temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$offset = _ref3.offset,\n offset = _ref3$offset === void 0 ? 0 : _ref3$offset,\n _ref3$mask = _ref3.mask,\n mask = _ref3$mask === void 0 ? [] : _ref3$mask;\n\n a = toUint8(a);\n b = toUint8(b); // ie 11 does not support uint8 every\n\n var fn = b.every ? b.every : Array.prototype.every;\n return b.length && a.length - offset >= b.length && // ie 11 doesn't support every on uin8\n fn.call(b, function (bByte, i) {\n var aByte = mask[i] ? mask[i] & a[offset + i] : a[offset + i];\n return bByte === aByte;\n });\n};\nexport var sliceBytes = function sliceBytes(src, start, end) {\n if (Uint8Array.prototype.slice) {\n return Uint8Array.prototype.slice.call(src, start, end);\n }\n\n return new Uint8Array(Array.prototype.slice.call(src, start, end));\n};\nexport var reverseBytes = function reverseBytes(src) {\n if (src.reverse) {\n return src.reverse();\n }\n\n return Array.prototype.reverse.call(src);\n};","import window from 'global/window';\nvar regexs = {\n // to determine mime types\n mp4: /^(av0?1|avc0?[1234]|vp0?9|flac|opus|mp3|mp4a|mp4v|stpp.ttml.im1t)/,\n webm: /^(vp0?[89]|av0?1|opus|vorbis)/,\n ogg: /^(vp0?[89]|theora|flac|opus|vorbis)/,\n // to determine if a codec is audio or video\n video: /^(av0?1|avc0?[1234]|vp0?[89]|hvc1|hev1|theora|mp4v)/,\n audio: /^(mp4a|flac|vorbis|opus|ac-[34]|ec-3|alac|mp3|speex|aac)/,\n text: /^(stpp.ttml.im1t)/,\n // mux.js support regex\n muxerVideo: /^(avc0?1)/,\n muxerAudio: /^(mp4a)/,\n // match nothing as muxer does not support text right now.\n // there cannot never be a character before the start of a string\n // so this matches nothing.\n muxerText: /a^/\n};\nvar mediaTypes = ['video', 'audio', 'text'];\nvar upperMediaTypes = ['Video', 'Audio', 'Text'];\n/**\n * Replace the old apple-style `avc1.
.
` codec string with the standard\n * `avc1.`\n *\n * @param {string} codec\n * Codec string to translate\n * @return {string}\n * The translated codec string\n */\n\nexport var translateLegacyCodec = function translateLegacyCodec(codec) {\n if (!codec) {\n return codec;\n }\n\n return codec.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (orig, profile, avcLevel) {\n var profileHex = ('00' + Number(profile).toString(16)).slice(-2);\n var avcLevelHex = ('00' + Number(avcLevel).toString(16)).slice(-2);\n return 'avc1.' + profileHex + '00' + avcLevelHex;\n });\n};\n/**\n * Replace the old apple-style `avc1.
.
` codec strings with the standard\n * `avc1.`\n *\n * @param {string[]} codecs\n * An array of codec strings to translate\n * @return {string[]}\n * The translated array of codec strings\n */\n\nexport var translateLegacyCodecs = function translateLegacyCodecs(codecs) {\n return codecs.map(translateLegacyCodec);\n};\n/**\n * Replace codecs in the codec string with the old apple-style `avc1.
.
` to the\n * standard `avc1.`.\n *\n * @param {string} codecString\n * The codec string\n * @return {string}\n * The codec string with old apple-style codecs replaced\n *\n * @private\n */\n\nexport var mapLegacyAvcCodecs = function mapLegacyAvcCodecs(codecString) {\n return codecString.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (match) {\n return translateLegacyCodecs([match])[0];\n });\n};\n/**\n * @typedef {Object} ParsedCodecInfo\n * @property {number} codecCount\n * Number of codecs parsed\n * @property {string} [videoCodec]\n * Parsed video codec (if found)\n * @property {string} [videoObjectTypeIndicator]\n * Video object type indicator (if found)\n * @property {string|null} audioProfile\n * Audio profile\n */\n\n/**\n * Parses a codec string to retrieve the number of codecs specified, the video codec and\n * object type indicator, and the audio profile.\n *\n * @param {string} [codecString]\n * The codec string to parse\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var parseCodecs = function parseCodecs(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n var codecs = codecString.split(',');\n var result = [];\n codecs.forEach(function (codec) {\n codec = codec.trim();\n var codecType;\n mediaTypes.forEach(function (name) {\n var match = regexs[name].exec(codec.toLowerCase());\n\n if (!match || match.length <= 1) {\n return;\n }\n\n codecType = name; // maintain codec case\n\n var type = codec.substring(0, match[1].length);\n var details = codec.replace(type, '');\n result.push({\n type: type,\n details: details,\n mediaType: name\n });\n });\n\n if (!codecType) {\n result.push({\n type: codec,\n details: '',\n mediaType: 'unknown'\n });\n }\n });\n return result;\n};\n/**\n * Returns a ParsedCodecInfo object for the default alternate audio playlist if there is\n * a default alternate audio playlist for the provided audio group.\n *\n * @param {Object} master\n * The master playlist\n * @param {string} audioGroupId\n * ID of the audio group for which to find the default codec info\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var codecsFromDefault = function codecsFromDefault(master, audioGroupId) {\n if (!master.mediaGroups.AUDIO || !audioGroupId) {\n return null;\n }\n\n var audioGroup = master.mediaGroups.AUDIO[audioGroupId];\n\n if (!audioGroup) {\n return null;\n }\n\n for (var name in audioGroup) {\n var audioType = audioGroup[name];\n\n if (audioType.default && audioType.playlists) {\n // codec should be the same for all playlists within the audio type\n return parseCodecs(audioType.playlists[0].attributes.CODECS);\n }\n }\n\n return null;\n};\nexport var isVideoCodec = function isVideoCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.video.test(codec.trim().toLowerCase());\n};\nexport var isAudioCodec = function isAudioCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.audio.test(codec.trim().toLowerCase());\n};\nexport var isTextCodec = function isTextCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.text.test(codec.trim().toLowerCase());\n};\nexport var getMimeForCodec = function getMimeForCodec(codecString) {\n if (!codecString || typeof codecString !== 'string') {\n return;\n }\n\n var codecs = codecString.toLowerCase().split(',').map(function (c) {\n return translateLegacyCodec(c.trim());\n }); // default to video type\n\n var type = 'video'; // only change to audio type if the only codec we have is\n // audio\n\n if (codecs.length === 1 && isAudioCodec(codecs[0])) {\n type = 'audio';\n } else if (codecs.length === 1 && isTextCodec(codecs[0])) {\n // text uses application/ for now\n type = 'application';\n } // default the container to mp4\n\n\n var container = 'mp4'; // every codec must be able to go into the container\n // for that container to be the correct one\n\n if (codecs.every(function (c) {\n return regexs.mp4.test(c);\n })) {\n container = 'mp4';\n } else if (codecs.every(function (c) {\n return regexs.webm.test(c);\n })) {\n container = 'webm';\n } else if (codecs.every(function (c) {\n return regexs.ogg.test(c);\n })) {\n container = 'ogg';\n }\n\n return type + \"/\" + container + \";codecs=\\\"\" + codecString + \"\\\"\";\n};\n/**\n * Tests whether the codec is supported by MediaSource. Optionally also tests ManagedMediaSource.\n *\n * @param {string} codecString\n * Codec to test\n * @param {boolean} [withMMS]\n * Whether to check if ManagedMediaSource supports it\n * @return {boolean}\n * Codec is supported\n */\n\nexport var browserSupportsCodec = function browserSupportsCodec(codecString, withMMS) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n if (withMMS === void 0) {\n withMMS = false;\n }\n\n return window.MediaSource && window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported(getMimeForCodec(codecString)) || withMMS && window.ManagedMediaSource && window.ManagedMediaSource.isTypeSupported && window.ManagedMediaSource.isTypeSupported(getMimeForCodec(codecString)) || false;\n};\nexport var muxerSupportsCodec = function muxerSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return codecString.toLowerCase().split(',').every(function (codec) {\n codec = codec.trim(); // any match is supported.\n\n for (var i = 0; i < upperMediaTypes.length; i++) {\n var type = upperMediaTypes[i];\n\n if (regexs[\"muxer\" + type].test(codec)) {\n return true;\n }\n }\n\n return false;\n });\n};\nexport var DEFAULT_AUDIO_CODEC = 'mp4a.40.2';\nexport var DEFAULT_VIDEO_CODEC = 'avc1.4d400d';","import { stringToBytes, toUint8, bytesMatch, bytesToString, toHexString, padStart, bytesToNumber } from './byte-helpers.js';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js';\nimport { parseOpusHead } from './opus-helpers.js';\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return stringToBytes(path);\n }\n\n if (typeof path === 'number') {\n return path;\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar DESCRIPTORS;\nexport var parseDescriptors = function parseDescriptors(bytes) {\n bytes = toUint8(bytes);\n var results = [];\n var i = 0;\n\n while (bytes.length > i) {\n var tag = bytes[i];\n var size = 0;\n var headerSize = 0; // tag\n\n headerSize++;\n var byte = bytes[headerSize]; // first byte\n\n headerSize++;\n\n while (byte & 0x80) {\n size = (byte & 0x7F) << 7;\n byte = bytes[headerSize];\n headerSize++;\n }\n\n size += byte & 0x7F;\n\n for (var z = 0; z < DESCRIPTORS.length; z++) {\n var _DESCRIPTORS$z = DESCRIPTORS[z],\n id = _DESCRIPTORS$z.id,\n parser = _DESCRIPTORS$z.parser;\n\n if (tag === id) {\n results.push(parser(bytes.subarray(headerSize, headerSize + size)));\n break;\n }\n }\n\n i += size + headerSize;\n }\n\n return results;\n};\nDESCRIPTORS = [{\n id: 0x03,\n parser: function parser(bytes) {\n var desc = {\n tag: 0x03,\n id: bytes[0] << 8 | bytes[1],\n flags: bytes[2],\n size: 3,\n dependsOnEsId: 0,\n ocrEsId: 0,\n descriptors: [],\n url: ''\n }; // depends on es id\n\n if (desc.flags & 0x80) {\n desc.dependsOnEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n } // url\n\n\n if (desc.flags & 0x40) {\n var len = bytes[desc.size];\n desc.url = bytesToString(bytes.subarray(desc.size + 1, desc.size + 1 + len));\n desc.size += len;\n } // ocr es id\n\n\n if (desc.flags & 0x20) {\n desc.ocrEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n }\n\n desc.descriptors = parseDescriptors(bytes.subarray(desc.size)) || [];\n return desc;\n }\n}, {\n id: 0x04,\n parser: function parser(bytes) {\n // DecoderConfigDescriptor\n var desc = {\n tag: 0x04,\n oti: bytes[0],\n streamType: bytes[1],\n bufferSize: bytes[2] << 16 | bytes[3] << 8 | bytes[4],\n maxBitrate: bytes[5] << 24 | bytes[6] << 16 | bytes[7] << 8 | bytes[8],\n avgBitrate: bytes[9] << 24 | bytes[10] << 16 | bytes[11] << 8 | bytes[12],\n descriptors: parseDescriptors(bytes.subarray(13))\n };\n return desc;\n }\n}, {\n id: 0x05,\n parser: function parser(bytes) {\n // DecoderSpecificInfo\n return {\n tag: 0x05,\n bytes: bytes\n };\n }\n}, {\n id: 0x06,\n parser: function parser(bytes) {\n // SLConfigDescriptor\n return {\n tag: 0x06,\n bytes: bytes\n };\n }\n}];\n/**\n * find any number of boxes by name given a path to it in an iso bmff\n * such as mp4.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {Uint8Array[]|string[]|string|Uint8Array} name\n * An array of paths or a single path representing the name\n * of boxes to search through in bytes. Paths may be\n * uint8 (character codes) or strings.\n *\n * @param {boolean} [complete=false]\n * Should we search only for complete boxes on the final path.\n * This is very useful when you do not want to get back partial boxes\n * in the case of streaming files.\n *\n * @return {Uint8Array[]}\n * An array of the end paths that we found.\n */\n\nexport var findBox = function findBox(bytes, paths, complete) {\n if (complete === void 0) {\n complete = false;\n }\n\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n // short-circuit the search for empty paths\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var size = (bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]) >>> 0;\n var type = bytes.subarray(i + 4, i + 8); // invalid box format.\n\n if (size === 0) {\n break;\n }\n\n var end = i + size;\n\n if (end > bytes.length) {\n // this box is bigger than the number of bytes we have\n // and complete is set, we cannot find any more boxes.\n if (complete) {\n break;\n }\n\n end = bytes.length;\n }\n\n var data = bytes.subarray(i + 8, end);\n\n if (bytesMatch(type, paths[0])) {\n if (paths.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next box along the path\n results.push.apply(results, findBox(data, paths.slice(1), complete));\n }\n }\n\n i = end;\n } // we've finished searching all of bytes\n\n\n return results;\n};\n/**\n * Search for a single matching box by name in an iso bmff format like\n * mp4. This function is useful for finding codec boxes which\n * can be placed arbitrarily in sample descriptions depending\n * on the version of the file or file type.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {string|Uint8Array} name\n * The name of the box to find.\n *\n * @return {Uint8Array[]}\n * a subarray of bytes representing the name boxed we found.\n */\n\nexport var findNamedBox = function findNamedBox(bytes, name) {\n name = normalizePath(name);\n\n if (!name.length) {\n // short-circuit the search for empty paths\n return bytes.subarray(bytes.length);\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n if (bytesMatch(bytes.subarray(i, i + name.length), name)) {\n var size = (bytes[i - 4] << 24 | bytes[i - 3] << 16 | bytes[i - 2] << 8 | bytes[i - 1]) >>> 0;\n var end = size > 1 ? i + size : bytes.byteLength;\n return bytes.subarray(i + 4, end);\n }\n\n i++;\n } // we've finished searching all of bytes\n\n\n return bytes.subarray(bytes.length);\n};\n\nvar parseSamples = function parseSamples(data, entrySize, parseEntry) {\n if (entrySize === void 0) {\n entrySize = 4;\n }\n\n if (parseEntry === void 0) {\n parseEntry = function parseEntry(d) {\n return bytesToNumber(d);\n };\n }\n\n var entries = [];\n\n if (!data || !data.length) {\n return entries;\n }\n\n var entryCount = bytesToNumber(data.subarray(4, 8));\n\n for (var i = 8; entryCount; i += entrySize, entryCount--) {\n entries.push(parseEntry(data.subarray(i, i + entrySize)));\n }\n\n return entries;\n};\n\nexport var buildFrameTable = function buildFrameTable(stbl, timescale) {\n var keySamples = parseSamples(findBox(stbl, ['stss'])[0]);\n var chunkOffsets = parseSamples(findBox(stbl, ['stco'])[0]);\n var timeToSamples = parseSamples(findBox(stbl, ['stts'])[0], 8, function (entry) {\n return {\n sampleCount: bytesToNumber(entry.subarray(0, 4)),\n sampleDelta: bytesToNumber(entry.subarray(4, 8))\n };\n });\n var samplesToChunks = parseSamples(findBox(stbl, ['stsc'])[0], 12, function (entry) {\n return {\n firstChunk: bytesToNumber(entry.subarray(0, 4)),\n samplesPerChunk: bytesToNumber(entry.subarray(4, 8)),\n sampleDescriptionIndex: bytesToNumber(entry.subarray(8, 12))\n };\n });\n var stsz = findBox(stbl, ['stsz'])[0]; // stsz starts with a 4 byte sampleSize which we don't need\n\n var sampleSizes = parseSamples(stsz && stsz.length && stsz.subarray(4) || null);\n var frames = [];\n\n for (var chunkIndex = 0; chunkIndex < chunkOffsets.length; chunkIndex++) {\n var samplesInChunk = void 0;\n\n for (var i = 0; i < samplesToChunks.length; i++) {\n var sampleToChunk = samplesToChunks[i];\n var isThisOne = chunkIndex + 1 >= sampleToChunk.firstChunk && (i + 1 >= samplesToChunks.length || chunkIndex + 1 < samplesToChunks[i + 1].firstChunk);\n\n if (isThisOne) {\n samplesInChunk = sampleToChunk.samplesPerChunk;\n break;\n }\n }\n\n var chunkOffset = chunkOffsets[chunkIndex];\n\n for (var _i = 0; _i < samplesInChunk; _i++) {\n var frameEnd = sampleSizes[frames.length]; // if we don't have key samples every frame is a keyframe\n\n var keyframe = !keySamples.length;\n\n if (keySamples.length && keySamples.indexOf(frames.length + 1) !== -1) {\n keyframe = true;\n }\n\n var frame = {\n keyframe: keyframe,\n start: chunkOffset,\n end: chunkOffset + frameEnd\n };\n\n for (var k = 0; k < timeToSamples.length; k++) {\n var _timeToSamples$k = timeToSamples[k],\n sampleCount = _timeToSamples$k.sampleCount,\n sampleDelta = _timeToSamples$k.sampleDelta;\n\n if (frames.length <= sampleCount) {\n // ms to ns\n var lastTimestamp = frames.length ? frames[frames.length - 1].timestamp : 0;\n frame.timestamp = lastTimestamp + sampleDelta / timescale * 1000;\n frame.duration = sampleDelta;\n break;\n }\n }\n\n frames.push(frame);\n chunkOffset += frameEnd;\n }\n }\n\n return frames;\n};\nexport var addSampleDescription = function addSampleDescription(track, bytes) {\n var codec = bytesToString(bytes.subarray(0, 4));\n\n if (track.type === 'video') {\n track.info = track.info || {};\n track.info.width = bytes[28] << 8 | bytes[29];\n track.info.height = bytes[30] << 8 | bytes[31];\n } else if (track.type === 'audio') {\n track.info = track.info || {};\n track.info.channels = bytes[20] << 8 | bytes[21];\n track.info.bitDepth = bytes[22] << 8 | bytes[23];\n track.info.sampleRate = bytes[28] << 8 | bytes[29];\n }\n\n if (codec === 'avc1') {\n var avcC = findNamedBox(bytes, 'avcC'); // AVCDecoderConfigurationRecord\n\n codec += \".\" + getAvcCodec(avcC);\n track.info.avcC = avcC; // TODO: do we need to parse all this?\n\n /* {\n configurationVersion: avcC[0],\n profile: avcC[1],\n profileCompatibility: avcC[2],\n level: avcC[3],\n lengthSizeMinusOne: avcC[4] & 0x3\n };\n let spsNalUnitCount = avcC[5] & 0x1F;\n const spsNalUnits = track.info.avc.spsNalUnits = [];\n // past spsNalUnitCount\n let offset = 6;\n while (spsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n spsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }\n let ppsNalUnitCount = avcC[offset];\n const ppsNalUnits = track.info.avc.ppsNalUnits = [];\n // past ppsNalUnitCount\n offset += 1;\n while (ppsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n ppsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }*/\n // HEVCDecoderConfigurationRecord\n } else if (codec === 'hvc1' || codec === 'hev1') {\n codec += \".\" + getHvcCodec(findNamedBox(bytes, 'hvcC'));\n } else if (codec === 'mp4a' || codec === 'mp4v') {\n var esds = findNamedBox(bytes, 'esds');\n var esDescriptor = parseDescriptors(esds.subarray(4))[0];\n var decoderConfig = esDescriptor && esDescriptor.descriptors.filter(function (_ref) {\n var tag = _ref.tag;\n return tag === 0x04;\n })[0];\n\n if (decoderConfig) {\n // most codecs do not have a further '.'\n // such as 0xa5 for ac-3 and 0xa6 for e-ac-3\n codec += '.' + toHexString(decoderConfig.oti);\n\n if (decoderConfig.oti === 0x40) {\n codec += '.' + (decoderConfig.descriptors[0].bytes[0] >> 3).toString();\n } else if (decoderConfig.oti === 0x20) {\n codec += '.' + decoderConfig.descriptors[0].bytes[4].toString();\n } else if (decoderConfig.oti === 0xdd) {\n codec = 'vorbis';\n }\n } else if (track.type === 'audio') {\n codec += '.40.2';\n } else {\n codec += '.20.9';\n }\n } else if (codec === 'av01') {\n // AV1DecoderConfigurationRecord\n codec += \".\" + getAv1Codec(findNamedBox(bytes, 'av1C'));\n } else if (codec === 'vp09') {\n // VPCodecConfigurationRecord\n var vpcC = findNamedBox(bytes, 'vpcC'); // https://www.webmproject.org/vp9/mp4/\n\n var profile = vpcC[0];\n var level = vpcC[1];\n var bitDepth = vpcC[2] >> 4;\n var chromaSubsampling = (vpcC[2] & 0x0F) >> 1;\n var videoFullRangeFlag = (vpcC[2] & 0x0F) >> 3;\n var colourPrimaries = vpcC[3];\n var transferCharacteristics = vpcC[4];\n var matrixCoefficients = vpcC[5];\n codec += \".\" + padStart(profile, 2, '0');\n codec += \".\" + padStart(level, 2, '0');\n codec += \".\" + padStart(bitDepth, 2, '0');\n codec += \".\" + padStart(chromaSubsampling, 2, '0');\n codec += \".\" + padStart(colourPrimaries, 2, '0');\n codec += \".\" + padStart(transferCharacteristics, 2, '0');\n codec += \".\" + padStart(matrixCoefficients, 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag, 2, '0');\n } else if (codec === 'theo') {\n codec = 'theora';\n } else if (codec === 'spex') {\n codec = 'speex';\n } else if (codec === '.mp3') {\n codec = 'mp4a.40.34';\n } else if (codec === 'msVo') {\n codec = 'vorbis';\n } else if (codec === 'Opus') {\n codec = 'opus';\n var dOps = findNamedBox(bytes, 'dOps');\n track.info.opus = parseOpusHead(dOps); // TODO: should this go into the webm code??\n // Firefox requires a codecDelay for opus playback\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1276238\n\n track.info.codecDelay = 6500000;\n } else {\n codec = codec.toLowerCase();\n }\n /* eslint-enable */\n // flac, ac-3, ec-3, opus\n\n\n track.codec = codec;\n};\nexport var parseTracks = function parseTracks(bytes, frameTable) {\n if (frameTable === void 0) {\n frameTable = true;\n }\n\n bytes = toUint8(bytes);\n var traks = findBox(bytes, ['moov', 'trak'], true);\n var tracks = [];\n traks.forEach(function (trak) {\n var track = {\n bytes: trak\n };\n var mdia = findBox(trak, ['mdia'])[0];\n var hdlr = findBox(mdia, ['hdlr'])[0];\n var trakType = bytesToString(hdlr.subarray(8, 12));\n\n if (trakType === 'soun') {\n track.type = 'audio';\n } else if (trakType === 'vide') {\n track.type = 'video';\n } else {\n track.type = trakType;\n }\n\n var tkhd = findBox(trak, ['tkhd'])[0];\n\n if (tkhd) {\n var view = new DataView(tkhd.buffer, tkhd.byteOffset, tkhd.byteLength);\n var tkhdVersion = view.getUint8(0);\n track.number = tkhdVersion === 0 ? view.getUint32(12) : view.getUint32(20);\n }\n\n var mdhd = findBox(mdia, ['mdhd'])[0];\n\n if (mdhd) {\n // mdhd is a FullBox, meaning it will have its own version as the first byte\n var version = mdhd[0];\n var index = version === 0 ? 12 : 20;\n track.timescale = (mdhd[index] << 24 | mdhd[index + 1] << 16 | mdhd[index + 2] << 8 | mdhd[index + 3]) >>> 0;\n }\n\n var stbl = findBox(mdia, ['minf', 'stbl'])[0];\n var stsd = findBox(stbl, ['stsd'])[0];\n var descriptionCount = bytesToNumber(stsd.subarray(4, 8));\n var offset = 8; // add codec and codec info\n\n while (descriptionCount--) {\n var len = bytesToNumber(stsd.subarray(offset, offset + 4));\n var sampleDescriptor = stsd.subarray(offset + 4, offset + 4 + len);\n addSampleDescription(track, sampleDescriptor);\n offset += 4 + len;\n }\n\n if (frameTable) {\n track.frameTable = buildFrameTable(stbl, track.timescale);\n } // codec has no sub parameters\n\n\n tracks.push(track);\n });\n return tracks;\n};\nexport var parseMediaInfo = function parseMediaInfo(bytes) {\n var mvhd = findBox(bytes, ['moov', 'mvhd'], true)[0];\n\n if (!mvhd || !mvhd.length) {\n return;\n }\n\n var info = {}; // ms to ns\n // mvhd v1 has 8 byte duration and other fields too\n\n if (mvhd[0] === 1) {\n info.timestampScale = bytesToNumber(mvhd.subarray(20, 24));\n info.duration = bytesToNumber(mvhd.subarray(24, 32));\n } else {\n info.timestampScale = bytesToNumber(mvhd.subarray(12, 16));\n info.duration = bytesToNumber(mvhd.subarray(16, 20));\n }\n\n info.bytes = mvhd;\n return info;\n};","export var OPUS_HEAD = new Uint8Array([// O, p, u, s\n0x4f, 0x70, 0x75, 0x73, // H, e, a, d\n0x48, 0x65, 0x61, 0x64]); // https://wiki.xiph.org/OggOpus\n// https://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html\n// https://opus-codec.org/docs/opusfile_api-0.7/structOpusHead.html\n\nexport var parseOpusHead = function parseOpusHead(bytes) {\n var view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var version = view.getUint8(0); // version 0, from mp4, does not use littleEndian.\n\n var littleEndian = version !== 0;\n var config = {\n version: version,\n channels: view.getUint8(1),\n preSkip: view.getUint16(2, littleEndian),\n sampleRate: view.getUint32(4, littleEndian),\n outputGain: view.getUint16(8, littleEndian),\n channelMappingFamily: view.getUint8(10)\n };\n\n if (config.channelMappingFamily > 0 && bytes.length > 10) {\n config.streamCount = view.getUint8(11);\n config.twoChannelStreamCount = view.getUint8(12);\n config.channelMapping = [];\n\n for (var c = 0; c < config.channels; c++) {\n config.channelMapping.push(view.getUint8(13 + c));\n }\n }\n\n return config;\n};\nexport var setOpusHead = function setOpusHead(config) {\n var size = config.channelMappingFamily <= 0 ? 11 : 12 + config.channels;\n var view = new DataView(new ArrayBuffer(size));\n var littleEndian = config.version !== 0;\n view.setUint8(0, config.version);\n view.setUint8(1, config.channels);\n view.setUint16(2, config.preSkip, littleEndian);\n view.setUint32(4, config.sampleRate, littleEndian);\n view.setUint16(8, config.outputGain, littleEndian);\n view.setUint8(10, config.channelMappingFamily);\n\n if (config.channelMappingFamily > 0) {\n view.setUint8(11, config.streamCount);\n config.channelMapping.foreach(function (cm, i) {\n view.setUint8(12 + i, cm);\n });\n }\n\n return new Uint8Array(view.buffer);\n};","import { toUint8, bytesToNumber, bytesMatch, bytesToString, numberToBytes, padStart } from './byte-helpers';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js'; // relevant specs for this parser:\n// https://matroska-org.github.io/libebml/specs.html\n// https://www.matroska.org/technical/elements.html\n// https://www.webmproject.org/docs/container/\n\nexport var EBML_TAGS = {\n EBML: toUint8([0x1A, 0x45, 0xDF, 0xA3]),\n DocType: toUint8([0x42, 0x82]),\n Segment: toUint8([0x18, 0x53, 0x80, 0x67]),\n SegmentInfo: toUint8([0x15, 0x49, 0xA9, 0x66]),\n Tracks: toUint8([0x16, 0x54, 0xAE, 0x6B]),\n Track: toUint8([0xAE]),\n TrackNumber: toUint8([0xd7]),\n DefaultDuration: toUint8([0x23, 0xe3, 0x83]),\n TrackEntry: toUint8([0xAE]),\n TrackType: toUint8([0x83]),\n FlagDefault: toUint8([0x88]),\n CodecID: toUint8([0x86]),\n CodecPrivate: toUint8([0x63, 0xA2]),\n VideoTrack: toUint8([0xe0]),\n AudioTrack: toUint8([0xe1]),\n // Not used yet, but will be used for live webm/mkv\n // see https://www.matroska.org/technical/basics.html#block-structure\n // see https://www.matroska.org/technical/basics.html#simpleblock-structure\n Cluster: toUint8([0x1F, 0x43, 0xB6, 0x75]),\n Timestamp: toUint8([0xE7]),\n TimestampScale: toUint8([0x2A, 0xD7, 0xB1]),\n BlockGroup: toUint8([0xA0]),\n BlockDuration: toUint8([0x9B]),\n Block: toUint8([0xA1]),\n SimpleBlock: toUint8([0xA3])\n};\n/**\n * This is a simple table to determine the length\n * of things in ebml. The length is one based (starts at 1,\n * rather than zero) and for every zero bit before a one bit\n * we add one to length. We also need this table because in some\n * case we have to xor all the length bits from another value.\n */\n\nvar LENGTH_TABLE = [128, 64, 32, 16, 8, 4, 2, 1];\n\nvar getLength = function getLength(byte) {\n var len = 1;\n\n for (var i = 0; i < LENGTH_TABLE.length; i++) {\n if (byte & LENGTH_TABLE[i]) {\n break;\n }\n\n len++;\n }\n\n return len;\n}; // length in ebml is stored in the first 4 to 8 bits\n// of the first byte. 4 for the id length and 8 for the\n// data size length. Length is measured by converting the number to binary\n// then 1 + the number of zeros before a 1 is encountered starting\n// from the left.\n\n\nvar getvint = function getvint(bytes, offset, removeLength, signed) {\n if (removeLength === void 0) {\n removeLength = true;\n }\n\n if (signed === void 0) {\n signed = false;\n }\n\n var length = getLength(bytes[offset]);\n var valueBytes = bytes.subarray(offset, offset + length); // NOTE that we do **not** subarray here because we need to copy these bytes\n // as they will be modified below to remove the dataSizeLen bits and we do not\n // want to modify the original data. normally we could just call slice on\n // uint8array but ie 11 does not support that...\n\n if (removeLength) {\n valueBytes = Array.prototype.slice.call(bytes, offset, offset + length);\n valueBytes[0] ^= LENGTH_TABLE[length - 1];\n }\n\n return {\n length: length,\n value: bytesToNumber(valueBytes, {\n signed: signed\n }),\n bytes: valueBytes\n };\n};\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return path.match(/.{1,2}/g).map(function (p) {\n return normalizePath(p);\n });\n }\n\n if (typeof path === 'number') {\n return numberToBytes(path);\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar getInfinityDataSize = function getInfinityDataSize(id, bytes, offset) {\n if (offset >= bytes.length) {\n return bytes.length;\n }\n\n var innerid = getvint(bytes, offset, false);\n\n if (bytesMatch(id.bytes, innerid.bytes)) {\n return offset;\n }\n\n var dataHeader = getvint(bytes, offset + innerid.length);\n return getInfinityDataSize(id, bytes, offset + dataHeader.length + dataHeader.value + innerid.length);\n};\n/**\n * Notes on the EBLM format.\n *\n * EBLM uses \"vints\" tags. Every vint tag contains\n * two parts\n *\n * 1. The length from the first byte. You get this by\n * converting the byte to binary and counting the zeros\n * before a 1. Then you add 1 to that. Examples\n * 00011111 = length 4 because there are 3 zeros before a 1.\n * 00100000 = length 3 because there are 2 zeros before a 1.\n * 00000011 = length 7 because there are 6 zeros before a 1.\n *\n * 2. The bits used for length are removed from the first byte\n * Then all the bytes are merged into a value. NOTE: this\n * is not the case for id ebml tags as there id includes\n * length bits.\n *\n */\n\n\nexport var findEbml = function findEbml(bytes, paths) {\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var id = getvint(bytes, i, false);\n var dataHeader = getvint(bytes, i + id.length);\n var dataStart = i + id.length + dataHeader.length; // dataSize is unknown or this is a live stream\n\n if (dataHeader.value === 0x7f) {\n dataHeader.value = getInfinityDataSize(id, bytes, dataStart);\n\n if (dataHeader.value !== bytes.length) {\n dataHeader.value -= dataStart;\n }\n }\n\n var dataEnd = dataStart + dataHeader.value > bytes.length ? bytes.length : dataStart + dataHeader.value;\n var data = bytes.subarray(dataStart, dataEnd);\n\n if (bytesMatch(paths[0], id.bytes)) {\n if (paths.length === 1) {\n // this is the end of the paths and we've found the tag we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next tag inside of the data\n // of this one\n results = results.concat(findEbml(data, paths.slice(1)));\n }\n }\n\n var totalLength = id.length + dataHeader.length + data.length; // move past this tag entirely, we are not looking for it\n\n i += totalLength;\n }\n\n return results;\n}; // see https://www.matroska.org/technical/basics.html#block-structure\n\nexport var decodeBlock = function decodeBlock(block, type, timestampScale, clusterTimestamp) {\n var duration;\n\n if (type === 'group') {\n duration = findEbml(block, [EBML_TAGS.BlockDuration])[0];\n\n if (duration) {\n duration = bytesToNumber(duration);\n duration = 1 / timestampScale * duration * timestampScale / 1000;\n }\n\n block = findEbml(block, [EBML_TAGS.Block])[0];\n type = 'block'; // treat data as a block after this point\n }\n\n var dv = new DataView(block.buffer, block.byteOffset, block.byteLength);\n var trackNumber = getvint(block, 0);\n var timestamp = dv.getInt16(trackNumber.length, false);\n var flags = block[trackNumber.length + 2];\n var data = block.subarray(trackNumber.length + 3); // pts/dts in seconds\n\n var ptsdts = 1 / timestampScale * (clusterTimestamp + timestamp) * timestampScale / 1000; // return the frame\n\n var parsed = {\n duration: duration,\n trackNumber: trackNumber.value,\n keyframe: type === 'simple' && flags >> 7 === 1,\n invisible: (flags & 0x08) >> 3 === 1,\n lacing: (flags & 0x06) >> 1,\n discardable: type === 'simple' && (flags & 0x01) === 1,\n frames: [],\n pts: ptsdts,\n dts: ptsdts,\n timestamp: timestamp\n };\n\n if (!parsed.lacing) {\n parsed.frames.push(data);\n return parsed;\n }\n\n var numberOfFrames = data[0] + 1;\n var frameSizes = [];\n var offset = 1; // Fixed\n\n if (parsed.lacing === 2) {\n var sizeOfFrame = (data.length - offset) / numberOfFrames;\n\n for (var i = 0; i < numberOfFrames; i++) {\n frameSizes.push(sizeOfFrame);\n }\n } // xiph\n\n\n if (parsed.lacing === 1) {\n for (var _i = 0; _i < numberOfFrames - 1; _i++) {\n var size = 0;\n\n do {\n size += data[offset];\n offset++;\n } while (data[offset - 1] === 0xFF);\n\n frameSizes.push(size);\n }\n } // ebml\n\n\n if (parsed.lacing === 3) {\n // first vint is unsinged\n // after that vints are singed and\n // based on a compounding size\n var _size = 0;\n\n for (var _i2 = 0; _i2 < numberOfFrames - 1; _i2++) {\n var vint = _i2 === 0 ? getvint(data, offset) : getvint(data, offset, true, true);\n _size += vint.value;\n frameSizes.push(_size);\n offset += vint.length;\n }\n }\n\n frameSizes.forEach(function (size) {\n parsed.frames.push(data.subarray(offset, offset + size));\n offset += size;\n });\n return parsed;\n}; // VP9 Codec Feature Metadata (CodecPrivate)\n// https://www.webmproject.org/docs/container/\n\nvar parseVp9Private = function parseVp9Private(bytes) {\n var i = 0;\n var params = {};\n\n while (i < bytes.length) {\n var id = bytes[i] & 0x7f;\n var len = bytes[i + 1];\n var val = void 0;\n\n if (len === 1) {\n val = bytes[i + 2];\n } else {\n val = bytes.subarray(i + 2, i + 2 + len);\n }\n\n if (id === 1) {\n params.profile = val;\n } else if (id === 2) {\n params.level = val;\n } else if (id === 3) {\n params.bitDepth = val;\n } else if (id === 4) {\n params.chromaSubsampling = val;\n } else {\n params[id] = val;\n }\n\n i += 2 + len;\n }\n\n return params;\n};\n\nexport var parseTracks = function parseTracks(bytes) {\n bytes = toUint8(bytes);\n var decodedTracks = [];\n var tracks = findEbml(bytes, [EBML_TAGS.Segment, EBML_TAGS.Tracks, EBML_TAGS.Track]);\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Tracks, EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n return decodedTracks;\n }\n\n tracks.forEach(function (track) {\n var trackType = findEbml(track, EBML_TAGS.TrackType)[0];\n\n if (!trackType || !trackType.length) {\n return;\n } // 1 is video, 2 is audio, 17 is subtitle\n // other values are unimportant in this context\n\n\n if (trackType[0] === 1) {\n trackType = 'video';\n } else if (trackType[0] === 2) {\n trackType = 'audio';\n } else if (trackType[0] === 17) {\n trackType = 'subtitle';\n } else {\n return;\n } // todo parse language\n\n\n var decodedTrack = {\n rawCodec: bytesToString(findEbml(track, [EBML_TAGS.CodecID])[0]),\n type: trackType,\n codecPrivate: findEbml(track, [EBML_TAGS.CodecPrivate])[0],\n number: bytesToNumber(findEbml(track, [EBML_TAGS.TrackNumber])[0]),\n defaultDuration: bytesToNumber(findEbml(track, [EBML_TAGS.DefaultDuration])[0]),\n default: findEbml(track, [EBML_TAGS.FlagDefault])[0],\n rawData: track\n };\n var codec = '';\n\n if (/V_MPEG4\\/ISO\\/AVC/.test(decodedTrack.rawCodec)) {\n codec = \"avc1.\" + getAvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEGH\\/ISO\\/HEVC/.test(decodedTrack.rawCodec)) {\n codec = \"hev1.\" + getHvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEG4\\/ISO\\/ASP/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4v.20.' + decodedTrack.codecPrivate[4].toString();\n } else {\n codec = 'mp4v.20.9';\n }\n } else if (/^V_THEORA/.test(decodedTrack.rawCodec)) {\n codec = 'theora';\n } else if (/^V_VP8/.test(decodedTrack.rawCodec)) {\n codec = 'vp8';\n } else if (/^V_VP9/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n var _parseVp9Private = parseVp9Private(decodedTrack.codecPrivate),\n profile = _parseVp9Private.profile,\n level = _parseVp9Private.level,\n bitDepth = _parseVp9Private.bitDepth,\n chromaSubsampling = _parseVp9Private.chromaSubsampling;\n\n codec = 'vp09.';\n codec += padStart(profile, 2, '0') + \".\";\n codec += padStart(level, 2, '0') + \".\";\n codec += padStart(bitDepth, 2, '0') + \".\";\n codec += \"\" + padStart(chromaSubsampling, 2, '0'); // Video -> Colour -> Ebml name\n\n var matrixCoefficients = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB1]])[0] || [];\n var videoFullRangeFlag = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB9]])[0] || [];\n var transferCharacteristics = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBA]])[0] || [];\n var colourPrimaries = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBB]])[0] || []; // if we find any optional codec parameter specify them all.\n\n if (matrixCoefficients.length || videoFullRangeFlag.length || transferCharacteristics.length || colourPrimaries.length) {\n codec += \".\" + padStart(colourPrimaries[0], 2, '0');\n codec += \".\" + padStart(transferCharacteristics[0], 2, '0');\n codec += \".\" + padStart(matrixCoefficients[0], 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag[0], 2, '0');\n }\n } else {\n codec = 'vp9';\n }\n } else if (/^V_AV1/.test(decodedTrack.rawCodec)) {\n codec = \"av01.\" + getAv1Codec(decodedTrack.codecPrivate);\n } else if (/A_ALAC/.test(decodedTrack.rawCodec)) {\n codec = 'alac';\n } else if (/A_MPEG\\/L2/.test(decodedTrack.rawCodec)) {\n codec = 'mp2';\n } else if (/A_MPEG\\/L3/.test(decodedTrack.rawCodec)) {\n codec = 'mp3';\n } else if (/^A_AAC/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4a.40.' + (decodedTrack.codecPrivate[0] >>> 3).toString();\n } else {\n codec = 'mp4a.40.2';\n }\n } else if (/^A_AC3/.test(decodedTrack.rawCodec)) {\n codec = 'ac-3';\n } else if (/^A_PCM/.test(decodedTrack.rawCodec)) {\n codec = 'pcm';\n } else if (/^A_MS\\/ACM/.test(decodedTrack.rawCodec)) {\n codec = 'speex';\n } else if (/^A_EAC3/.test(decodedTrack.rawCodec)) {\n codec = 'ec-3';\n } else if (/^A_VORBIS/.test(decodedTrack.rawCodec)) {\n codec = 'vorbis';\n } else if (/^A_FLAC/.test(decodedTrack.rawCodec)) {\n codec = 'flac';\n } else if (/^A_OPUS/.test(decodedTrack.rawCodec)) {\n codec = 'opus';\n }\n\n decodedTrack.codec = codec;\n decodedTracks.push(decodedTrack);\n });\n return decodedTracks.sort(function (a, b) {\n return a.number - b.number;\n });\n};\nexport var parseData = function parseData(data, tracks) {\n var allBlocks = [];\n var segment = findEbml(data, [EBML_TAGS.Segment])[0];\n var timestampScale = findEbml(segment, [EBML_TAGS.SegmentInfo, EBML_TAGS.TimestampScale])[0]; // in nanoseconds, defaults to 1ms\n\n if (timestampScale && timestampScale.length) {\n timestampScale = bytesToNumber(timestampScale);\n } else {\n timestampScale = 1000000;\n }\n\n var clusters = findEbml(segment, [EBML_TAGS.Cluster]);\n\n if (!tracks) {\n tracks = parseTracks(segment);\n }\n\n clusters.forEach(function (cluster, ci) {\n var simpleBlocks = findEbml(cluster, [EBML_TAGS.SimpleBlock]).map(function (b) {\n return {\n type: 'simple',\n data: b\n };\n });\n var blockGroups = findEbml(cluster, [EBML_TAGS.BlockGroup]).map(function (b) {\n return {\n type: 'group',\n data: b\n };\n });\n var timestamp = findEbml(cluster, [EBML_TAGS.Timestamp])[0] || 0;\n\n if (timestamp && timestamp.length) {\n timestamp = bytesToNumber(timestamp);\n } // get all blocks then sort them into the correct order\n\n\n var blocks = simpleBlocks.concat(blockGroups).sort(function (a, b) {\n return a.data.byteOffset - b.data.byteOffset;\n });\n blocks.forEach(function (block, bi) {\n var decoded = decodeBlock(block.data, block.type, timestampScale, timestamp);\n allBlocks.push(decoded);\n });\n });\n return {\n tracks: tracks,\n blocks: allBlocks\n };\n};","import { bytesMatch, toUint8 } from './byte-helpers.js';\nexport var NAL_TYPE_ONE = toUint8([0x00, 0x00, 0x00, 0x01]);\nexport var NAL_TYPE_TWO = toUint8([0x00, 0x00, 0x01]);\nexport var EMULATION_PREVENTION = toUint8([0x00, 0x00, 0x03]);\n/**\n * Expunge any \"Emulation Prevention\" bytes from a \"Raw Byte\n * Sequence Payload\"\n *\n * @param data {Uint8Array} the bytes of a RBSP from a NAL\n * unit\n * @return {Uint8Array} the RBSP without any Emulation\n * Prevention Bytes\n */\n\nexport var discardEmulationPreventionBytes = function discardEmulationPreventionBytes(bytes) {\n var positions = [];\n var i = 1; // Find all `Emulation Prevention Bytes`\n\n while (i < bytes.length - 2) {\n if (bytesMatch(bytes.subarray(i, i + 3), EMULATION_PREVENTION)) {\n positions.push(i + 2);\n i++;\n }\n\n i++;\n } // If no Emulation Prevention Bytes were found just return the original\n // array\n\n\n if (positions.length === 0) {\n return bytes;\n } // Create a new array to hold the NAL unit data\n\n\n var newLength = bytes.length - positions.length;\n var newData = new Uint8Array(newLength);\n var sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === positions[0]) {\n // Skip this byte\n sourceIndex++; // Remove this position index\n\n positions.shift();\n }\n\n newData[i] = bytes[sourceIndex];\n }\n\n return newData;\n};\nexport var findNal = function findNal(bytes, dataType, types, nalLimit) {\n if (nalLimit === void 0) {\n nalLimit = Infinity;\n }\n\n bytes = toUint8(bytes);\n types = [].concat(types);\n var i = 0;\n var nalStart;\n var nalsFound = 0; // keep searching until:\n // we reach the end of bytes\n // we reach the maximum number of nals they want to seach\n // NOTE: that we disregard nalLimit when we have found the start\n // of the nal we want so that we can find the end of the nal we want.\n\n while (i < bytes.length && (nalsFound < nalLimit || nalStart)) {\n var nalOffset = void 0;\n\n if (bytesMatch(bytes.subarray(i), NAL_TYPE_ONE)) {\n nalOffset = 4;\n } else if (bytesMatch(bytes.subarray(i), NAL_TYPE_TWO)) {\n nalOffset = 3;\n } // we are unsynced,\n // find the next nal unit\n\n\n if (!nalOffset) {\n i++;\n continue;\n }\n\n nalsFound++;\n\n if (nalStart) {\n return discardEmulationPreventionBytes(bytes.subarray(nalStart, i));\n }\n\n var nalType = void 0;\n\n if (dataType === 'h264') {\n nalType = bytes[i + nalOffset] & 0x1f;\n } else if (dataType === 'h265') {\n nalType = bytes[i + nalOffset] >> 1 & 0x3f;\n }\n\n if (types.indexOf(nalType) !== -1) {\n nalStart = i + nalOffset;\n } // nal header is 1 length for h264, and 2 for h265\n\n\n i += nalOffset + (dataType === 'h264' ? 1 : 2);\n }\n\n return bytes.subarray(0, 0);\n};\nexport var findH264Nal = function findH264Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h264', type, nalLimit);\n};\nexport var findH265Nal = function findH265Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h265', type, nalLimit);\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nimport { findBox } from './mp4-helpers.js';\nimport { findEbml, EBML_TAGS } from './ebml-helpers.js';\nimport { getId3Offset } from './id3-helpers.js';\nimport { findH264Nal, findH265Nal } from './nal-helpers.js';\nvar CONSTANTS = {\n // \"webm\" string literal in hex\n 'webm': toUint8([0x77, 0x65, 0x62, 0x6d]),\n // \"matroska\" string literal in hex\n 'matroska': toUint8([0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61]),\n // \"fLaC\" string literal in hex\n 'flac': toUint8([0x66, 0x4c, 0x61, 0x43]),\n // \"OggS\" string literal in hex\n 'ogg': toUint8([0x4f, 0x67, 0x67, 0x53]),\n // ac-3 sync byte, also works for ec-3 as that is simply a codec\n // of ac-3\n 'ac3': toUint8([0x0b, 0x77]),\n // \"RIFF\" string literal in hex used for wav and avi\n 'riff': toUint8([0x52, 0x49, 0x46, 0x46]),\n // \"AVI\" string literal in hex\n 'avi': toUint8([0x41, 0x56, 0x49]),\n // \"WAVE\" string literal in hex\n 'wav': toUint8([0x57, 0x41, 0x56, 0x45]),\n // \"ftyp3g\" string literal in hex\n '3gp': toUint8([0x66, 0x74, 0x79, 0x70, 0x33, 0x67]),\n // \"ftyp\" string literal in hex\n 'mp4': toUint8([0x66, 0x74, 0x79, 0x70]),\n // \"styp\" string literal in hex\n 'fmp4': toUint8([0x73, 0x74, 0x79, 0x70]),\n // \"ftypqt\" string literal in hex\n 'mov': toUint8([0x66, 0x74, 0x79, 0x70, 0x71, 0x74]),\n // moov string literal in hex\n 'moov': toUint8([0x6D, 0x6F, 0x6F, 0x76]),\n // moof string literal in hex\n 'moof': toUint8([0x6D, 0x6F, 0x6F, 0x66])\n};\nvar _isLikely = {\n aac: function aac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x10], {\n offset: offset,\n mask: [0xFF, 0x16]\n });\n },\n mp3: function mp3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x02], {\n offset: offset,\n mask: [0xFF, 0x06]\n });\n },\n webm: function webm(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is webm\n\n return bytesMatch(docType, CONSTANTS.webm);\n },\n mkv: function mkv(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is matroska\n\n return bytesMatch(docType, CONSTANTS.matroska);\n },\n mp4: function mp4(bytes) {\n // if this file is another base media file format, it is not mp4\n if (_isLikely['3gp'](bytes) || _isLikely.mov(bytes)) {\n return false;\n } // if this file starts with a ftyp or styp box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.mp4, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.fmp4, {\n offset: 4\n })) {\n return true;\n } // if this file starts with a moof/moov box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.moof, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.moov, {\n offset: 4\n })) {\n return true;\n }\n },\n mov: function mov(bytes) {\n return bytesMatch(bytes, CONSTANTS.mov, {\n offset: 4\n });\n },\n '3gp': function gp(bytes) {\n return bytesMatch(bytes, CONSTANTS['3gp'], {\n offset: 4\n });\n },\n ac3: function ac3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.ac3, {\n offset: offset\n });\n },\n ts: function ts(bytes) {\n if (bytes.length < 189 && bytes.length >= 1) {\n return bytes[0] === 0x47;\n }\n\n var i = 0; // check the first 376 bytes for two matching sync bytes\n\n while (i + 188 < bytes.length && i < 188) {\n if (bytes[i] === 0x47 && bytes[i + 188] === 0x47) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n flac: function flac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.flac, {\n offset: offset\n });\n },\n ogg: function ogg(bytes) {\n return bytesMatch(bytes, CONSTANTS.ogg);\n },\n avi: function avi(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.avi, {\n offset: 8\n });\n },\n wav: function wav(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.wav, {\n offset: 8\n });\n },\n 'h264': function h264(bytes) {\n // find seq_parameter_set_rbsp\n return findH264Nal(bytes, 7, 3).length;\n },\n 'h265': function h265(bytes) {\n // find video_parameter_set_rbsp or seq_parameter_set_rbsp\n return findH265Nal(bytes, [32, 33], 3).length;\n }\n}; // get all the isLikely functions\n// but make sure 'ts' is above h264 and h265\n// but below everything else as it is the least specific\n\nvar isLikelyTypes = Object.keys(_isLikely) // remove ts, h264, h265\n.filter(function (t) {\n return t !== 'ts' && t !== 'h264' && t !== 'h265';\n}) // add it back to the bottom\n.concat(['ts', 'h264', 'h265']); // make sure we are dealing with uint8 data.\n\nisLikelyTypes.forEach(function (type) {\n var isLikelyFn = _isLikely[type];\n\n _isLikely[type] = function (bytes) {\n return isLikelyFn(toUint8(bytes));\n };\n}); // export after wrapping\n\nexport var isLikely = _isLikely; // A useful list of file signatures can be found here\n// https://en.wikipedia.org/wiki/List_of_file_signatures\n\nexport var detectContainerForBytes = function detectContainerForBytes(bytes) {\n bytes = toUint8(bytes);\n\n for (var i = 0; i < isLikelyTypes.length; i++) {\n var type = isLikelyTypes[i];\n\n if (isLikely[type](bytes)) {\n return type;\n }\n }\n\n return '';\n}; // fmp4 is not a container\n\nexport var isLikelyFmp4MediaSegment = function isLikelyFmp4MediaSegment(bytes) {\n return findBox(bytes, ['moof']).length > 0;\n};","import window from 'global/window';\n\nvar atob = function atob(s) {\n return window.atob ? window.atob(s) : Buffer.from(s, 'base64').toString('binary');\n};\n\nexport default function decodeB64ToUint8Array(b64Text) {\n var decodedString = atob(b64Text);\n var array = new Uint8Array(decodedString.length);\n\n for (var i = 0; i < decodedString.length; i++) {\n array[i] = decodedString.charCodeAt(i);\n }\n\n return array;\n}","import { toUint8, bytesMatch } from './byte-helpers.js';\nvar ID3 = toUint8([0x49, 0x44, 0x33]);\nexport var getId3Size = function getId3Size(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n var flags = bytes[offset + 5];\n var returnSize = bytes[offset + 6] << 21 | bytes[offset + 7] << 14 | bytes[offset + 8] << 7 | bytes[offset + 9];\n var footerPresent = (flags & 16) >> 4;\n\n if (footerPresent) {\n return returnSize + 20;\n }\n\n return returnSize + 10;\n};\nexport var getId3Offset = function getId3Offset(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n\n if (bytes.length - offset < 10 || !bytesMatch(bytes, ID3, {\n offset: offset\n })) {\n return offset;\n }\n\n offset += getId3Size(bytes, offset); // recursive check for id3 tags as some files\n // have multiple ID3 tag sections even though\n // they should not.\n\n return getId3Offset(bytes, offset);\n};","var MPEGURL_REGEX = /^(audio|video|application)\\/(x-|vnd\\.apple\\.)?mpegurl/i;\nvar DASH_REGEX = /^application\\/dash\\+xml/i;\n/**\n * Returns a string that describes the type of source based on a video source object's\n * media type.\n *\n * @see {@link https://dev.w3.org/html5/pf-summary/video.html#dom-source-type|Source Type}\n *\n * @param {string} type\n * Video source object media type\n * @return {('hls'|'dash'|'vhs-json'|null)}\n * VHS source type string\n */\n\nexport var simpleTypeFromSourceType = function simpleTypeFromSourceType(type) {\n if (MPEGURL_REGEX.test(type)) {\n return 'hls';\n }\n\n if (DASH_REGEX.test(type)) {\n return 'dash';\n } // Denotes the special case of a manifest object passed to http-streaming instead of a\n // source URL.\n //\n // See https://en.wikipedia.org/wiki/Media_type for details on specifying media types.\n //\n // In this case, vnd stands for vendor, video.js for the organization, VHS for this\n // project, and the +json suffix identifies the structure of the media type.\n\n\n if (type === 'application/vnd.videojs.vhs+json') {\n return 'vhs-json';\n }\n\n return null;\n};","import window from 'global/window';\nvar DEFAULT_LOCATION = 'https://example.com';\n\nvar resolveUrl = function resolveUrl(baseUrl, relativeUrl) {\n // return early if we don't need to resolve\n if (/^[a-z]+:/i.test(relativeUrl)) {\n return relativeUrl;\n } // if baseUrl is a data URI, ignore it and resolve everything relative to window.location\n\n\n if (/^data:/.test(baseUrl)) {\n baseUrl = window.location && window.location.href || '';\n }\n\n var protocolLess = /^\\/\\//.test(baseUrl); // remove location if window.location isn't available (i.e. we're in node)\n // and if baseUrl isn't an absolute url\n\n var removeLocation = !window.location && !/\\/\\//i.test(baseUrl); // if the base URL is relative then combine with the current location\n\n baseUrl = new window.URL(baseUrl, window.location || DEFAULT_LOCATION);\n var newUrl = new URL(relativeUrl, baseUrl); // if we're a protocol-less url, remove the protocol\n // and if we're location-less, remove the location\n // otherwise, return the url unmodified\n\n if (removeLocation) {\n return newUrl.href.slice(DEFAULT_LOCATION.length);\n } else if (protocolLess) {\n return newUrl.href.slice(newUrl.protocol.length);\n }\n\n return newUrl.href;\n};\n\nexport default resolveUrl;","\"use strict\";\n\nvar window = require('global/window');\n\nvar httpResponseHandler = function httpResponseHandler(callback, decodeResponseBody) {\n if (decodeResponseBody === void 0) {\n decodeResponseBody = false;\n }\n\n return function (err, response, responseBody) {\n // if the XHR failed, return that error\n if (err) {\n callback(err);\n return;\n } // if the HTTP status code is 4xx or 5xx, the request also failed\n\n\n if (response.statusCode >= 400 && response.statusCode <= 599) {\n var cause = responseBody;\n\n if (decodeResponseBody) {\n if (window.TextDecoder) {\n var charset = getCharset(response.headers && response.headers['content-type']);\n\n try {\n cause = new TextDecoder(charset).decode(responseBody);\n } catch (e) {}\n } else {\n cause = String.fromCharCode.apply(null, new Uint8Array(responseBody));\n }\n }\n\n callback({\n cause: cause\n });\n return;\n } // otherwise, request succeeded\n\n\n callback(null, responseBody);\n };\n};\n\nfunction getCharset(contentTypeHeader) {\n if (contentTypeHeader === void 0) {\n contentTypeHeader = '';\n }\n\n return contentTypeHeader.toLowerCase().split(';').reduce(function (charset, contentType) {\n var _contentType$split = contentType.split('='),\n type = _contentType$split[0],\n value = _contentType$split[1];\n\n if (type.trim() === 'charset') {\n return value.trim();\n }\n\n return charset;\n }, 'utf-8');\n}\n\nmodule.exports = httpResponseHandler;","\"use strict\";\n\nvar window = require(\"global/window\");\n\nvar _extends = require(\"@babel/runtime/helpers/extends\");\n\nvar isFunction = require('is-function');\n\nvar InterceptorsStorage = require('./interceptors.js');\n\nvar RetryManager = require(\"./retry.js\");\n\ncreateXHR.httpHandler = require('./http-handler.js');\ncreateXHR.requestInterceptorsStorage = new InterceptorsStorage();\ncreateXHR.responseInterceptorsStorage = new InterceptorsStorage();\ncreateXHR.retryManager = new RetryManager();\n/**\n * @license\n * slighly modified parse-headers 2.0.2 \n * Copyright (c) 2014 David Björklund\n * Available under the MIT license\n * \n */\n\nvar parseHeaders = function parseHeaders(headers) {\n var result = {};\n\n if (!headers) {\n return result;\n }\n\n headers.trim().split('\\n').forEach(function (row) {\n var index = row.indexOf(':');\n var key = row.slice(0, index).trim().toLowerCase();\n var value = row.slice(index + 1).trim();\n\n if (typeof result[key] === 'undefined') {\n result[key] = value;\n } else if (Array.isArray(result[key])) {\n result[key].push(value);\n } else {\n result[key] = [result[key], value];\n }\n });\n return result;\n};\n\nmodule.exports = createXHR; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop;\ncreateXHR.XDomainRequest = \"withCredentials\" in new createXHR.XMLHttpRequest() ? createXHR.XMLHttpRequest : window.XDomainRequest;\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function (method) {\n createXHR[method === \"delete\" ? \"del\" : method] = function (uri, options, callback) {\n options = initParams(uri, options, callback);\n options.method = method.toUpperCase();\n return _createXHR(options);\n };\n});\n\nfunction forEachArray(array, iterator) {\n for (var i = 0; i < array.length; i++) {\n iterator(array[i]);\n }\n}\n\nfunction isEmpty(obj) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) return false;\n }\n\n return true;\n}\n\nfunction initParams(uri, options, callback) {\n var params = uri;\n\n if (isFunction(options)) {\n callback = options;\n\n if (typeof uri === \"string\") {\n params = {\n uri: uri\n };\n }\n } else {\n params = _extends({}, options, {\n uri: uri\n });\n }\n\n params.callback = callback;\n return params;\n}\n\nfunction createXHR(uri, options, callback) {\n options = initParams(uri, options, callback);\n return _createXHR(options);\n}\n\nfunction _createXHR(options) {\n if (typeof options.callback === \"undefined\") {\n throw new Error(\"callback argument missing\");\n } // call all registered request interceptors for a given request type:\n\n\n if (options.requestType && createXHR.requestInterceptorsStorage.getIsEnabled()) {\n var requestInterceptorPayload = {\n uri: options.uri || options.url,\n headers: options.headers || {},\n body: options.body,\n metadata: options.metadata || {},\n retry: options.retry,\n timeout: options.timeout\n };\n var updatedPayload = createXHR.requestInterceptorsStorage.execute(options.requestType, requestInterceptorPayload);\n options.uri = updatedPayload.uri;\n options.headers = updatedPayload.headers;\n options.body = updatedPayload.body;\n options.metadata = updatedPayload.metadata;\n options.retry = updatedPayload.retry;\n options.timeout = updatedPayload.timeout;\n }\n\n var called = false;\n\n var callback = function cbOnce(err, response, body) {\n if (!called) {\n called = true;\n options.callback(err, response, body);\n }\n };\n\n function readystatechange() {\n // do not call load 2 times when response interceptors are enabled\n // why do we even need this 2nd load?\n if (xhr.readyState === 4 && !createXHR.responseInterceptorsStorage.getIsEnabled()) {\n setTimeout(loadFunc, 0);\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined;\n\n if (xhr.response) {\n body = xhr.response;\n } else {\n body = xhr.responseText || getXml(xhr);\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body);\n } catch (e) {}\n }\n\n return body;\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer);\n clearTimeout(options.retryTimeout);\n\n if (!(evt instanceof Error)) {\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\"));\n }\n\n evt.statusCode = 0; // we would like to retry on error:\n\n if (!aborted && createXHR.retryManager.getIsEnabled() && options.retry && options.retry.shouldRetry()) {\n options.retryTimeout = setTimeout(function () {\n options.retry.moveToNextAttempt(); // we want to re-use the same options and the same xhr object:\n\n options.xhr = xhr;\n\n _createXHR(options);\n }, options.retry.getCurrentFuzzedDelay());\n return;\n } // call all registered response interceptors for a given request type:\n\n\n if (options.requestType && createXHR.responseInterceptorsStorage.getIsEnabled()) {\n var responseInterceptorPayload = {\n headers: failureResponse.headers || {},\n body: failureResponse.body,\n responseUrl: xhr.responseURL,\n responseType: xhr.responseType\n };\n\n var _updatedPayload = createXHR.responseInterceptorsStorage.execute(options.requestType, responseInterceptorPayload);\n\n failureResponse.body = _updatedPayload.body;\n failureResponse.headers = _updatedPayload.headers;\n }\n\n return callback(evt, failureResponse);\n } // will load the data & process the response in a special response object\n\n\n function loadFunc() {\n if (aborted) return;\n var status;\n clearTimeout(timeoutTimer);\n clearTimeout(options.retryTimeout);\n\n if (options.useXDR && xhr.status === undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200;\n } else {\n status = xhr.status === 1223 ? 204 : xhr.status;\n }\n\n var response = failureResponse;\n var err = null;\n\n if (status !== 0) {\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n };\n\n if (xhr.getAllResponseHeaders) {\n //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders());\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\");\n } // call all registered response interceptors for a given request type:\n\n\n if (options.requestType && createXHR.responseInterceptorsStorage.getIsEnabled()) {\n var responseInterceptorPayload = {\n headers: response.headers || {},\n body: response.body,\n responseUrl: xhr.responseURL,\n responseType: xhr.responseType\n };\n\n var _updatedPayload2 = createXHR.responseInterceptorsStorage.execute(options.requestType, responseInterceptorPayload);\n\n response.body = _updatedPayload2.body;\n response.headers = _updatedPayload2.headers;\n }\n\n return callback(err, response, response.body);\n }\n\n var xhr = options.xhr || null;\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest();\n } else {\n xhr = new createXHR.XMLHttpRequest();\n }\n }\n\n var key;\n var aborted;\n var uri = xhr.url = options.uri || options.url;\n var method = xhr.method = options.method || \"GET\";\n var body = options.body || options.data;\n var headers = xhr.headers = options.headers || {};\n var sync = !!options.sync;\n var isJson = false;\n var timeoutTimer;\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n };\n\n if (\"json\" in options && options.json !== false) {\n isJson = true;\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n body = JSON.stringify(options.json === true ? body : options.json);\n }\n }\n\n xhr.onreadystatechange = readystatechange;\n xhr.onload = loadFunc;\n xhr.onerror = errorFunc; // IE9 must have onprogress be set to a unique function.\n\n xhr.onprogress = function () {// IE must die\n };\n\n xhr.onabort = function () {\n aborted = true;\n clearTimeout(options.retryTimeout);\n };\n\n xhr.ontimeout = errorFunc;\n xhr.open(method, uri, !sync, options.username, options.password); //has to be after open\n\n if (!sync) {\n xhr.withCredentials = !!options.withCredentials;\n } // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n\n\n if (!sync && options.timeout > 0) {\n timeoutTimer = setTimeout(function () {\n if (aborted) return;\n aborted = true; //IE9 may still call readystatechange\n\n xhr.abort(\"timeout\");\n var e = new Error(\"XMLHttpRequest timeout\");\n e.code = \"ETIMEDOUT\";\n errorFunc(e);\n }, options.timeout);\n }\n\n if (xhr.setRequestHeader) {\n for (key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\");\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType;\n }\n\n if (\"beforeSend\" in options && typeof options.beforeSend === \"function\") {\n options.beforeSend(xhr);\n } // Microsoft Edge browser sends \"undefined\" when send is called with undefined value.\n // XMLHttpRequest spec says to pass null as body to indicate no body\n // See https://github.com/naugtur/xhr/issues/100.\n\n\n xhr.send(body || null);\n return xhr;\n}\n\nfunction getXml(xhr) {\n // xhr.responseXML will throw Exception \"InvalidStateError\" or \"DOMException\"\n // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML.\n try {\n if (xhr.responseType === \"document\") {\n return xhr.responseXML;\n }\n\n var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\";\n\n if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n return xhr.responseXML;\n }\n } catch (e) {}\n\n return null;\n}\n\nfunction noop() {}","\"use strict\";\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar InterceptorsStorage = /*#__PURE__*/function () {\n function InterceptorsStorage() {\n this.typeToInterceptorsMap_ = new Map();\n this.enabled_ = false;\n }\n\n var _proto = InterceptorsStorage.prototype;\n\n _proto.getIsEnabled = function getIsEnabled() {\n return this.enabled_;\n };\n\n _proto.enable = function enable() {\n this.enabled_ = true;\n };\n\n _proto.disable = function disable() {\n this.enabled_ = false;\n };\n\n _proto.reset = function reset() {\n this.typeToInterceptorsMap_ = new Map();\n this.enabled_ = false;\n };\n\n _proto.addInterceptor = function addInterceptor(type, interceptor) {\n if (!this.typeToInterceptorsMap_.has(type)) {\n this.typeToInterceptorsMap_.set(type, new Set());\n }\n\n var interceptorsSet = this.typeToInterceptorsMap_.get(type);\n\n if (interceptorsSet.has(interceptor)) {\n // already have this interceptor\n return false;\n }\n\n interceptorsSet.add(interceptor);\n return true;\n };\n\n _proto.removeInterceptor = function removeInterceptor(type, interceptor) {\n var interceptorsSet = this.typeToInterceptorsMap_.get(type);\n\n if (interceptorsSet && interceptorsSet.has(interceptor)) {\n interceptorsSet.delete(interceptor);\n return true;\n }\n\n return false;\n };\n\n _proto.clearInterceptorsByType = function clearInterceptorsByType(type) {\n var interceptorsSet = this.typeToInterceptorsMap_.get(type);\n\n if (!interceptorsSet) {\n return false;\n }\n\n this.typeToInterceptorsMap_.delete(type);\n this.typeToInterceptorsMap_.set(type, new Set());\n return true;\n };\n\n _proto.clear = function clear() {\n if (!this.typeToInterceptorsMap_.size) {\n return false;\n }\n\n this.typeToInterceptorsMap_ = new Map();\n return true;\n };\n\n _proto.getForType = function getForType(type) {\n return this.typeToInterceptorsMap_.get(type) || new Set();\n };\n\n _proto.execute = function execute(type, payload) {\n var interceptors = this.getForType(type);\n\n for (var _iterator = _createForOfIteratorHelperLoose(interceptors), _step; !(_step = _iterator()).done;) {\n var interceptor = _step.value;\n\n try {\n payload = interceptor(payload);\n } catch (e) {//ignore\n }\n }\n\n return payload;\n };\n\n return InterceptorsStorage;\n}();\n\nmodule.exports = InterceptorsStorage;","\"use strict\";\n\nvar RetryManager = /*#__PURE__*/function () {\n function RetryManager() {\n this.maxAttempts_ = 1;\n this.delayFactor_ = 0.1;\n this.fuzzFactor_ = 0.1;\n this.initialDelay_ = 1000;\n this.enabled_ = false;\n }\n\n var _proto = RetryManager.prototype;\n\n _proto.getIsEnabled = function getIsEnabled() {\n return this.enabled_;\n };\n\n _proto.enable = function enable() {\n this.enabled_ = true;\n };\n\n _proto.disable = function disable() {\n this.enabled_ = false;\n };\n\n _proto.reset = function reset() {\n this.maxAttempts_ = 1;\n this.delayFactor_ = 0.1;\n this.fuzzFactor_ = 0.1;\n this.initialDelay_ = 1000;\n this.enabled_ = false;\n };\n\n _proto.getMaxAttempts = function getMaxAttempts() {\n return this.maxAttempts_;\n };\n\n _proto.setMaxAttempts = function setMaxAttempts(maxAttempts) {\n this.maxAttempts_ = maxAttempts;\n };\n\n _proto.getDelayFactor = function getDelayFactor() {\n return this.delayFactor_;\n };\n\n _proto.setDelayFactor = function setDelayFactor(delayFactor) {\n this.delayFactor_ = delayFactor;\n };\n\n _proto.getFuzzFactor = function getFuzzFactor() {\n return this.fuzzFactor_;\n };\n\n _proto.setFuzzFactor = function setFuzzFactor(fuzzFactor) {\n this.fuzzFactor_ = fuzzFactor;\n };\n\n _proto.getInitialDelay = function getInitialDelay() {\n return this.initialDelay_;\n };\n\n _proto.setInitialDelay = function setInitialDelay(initialDelay) {\n this.initialDelay_ = initialDelay;\n };\n\n _proto.createRetry = function createRetry(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n maxAttempts = _ref.maxAttempts,\n delayFactor = _ref.delayFactor,\n fuzzFactor = _ref.fuzzFactor,\n initialDelay = _ref.initialDelay;\n\n return new Retry({\n maxAttempts: maxAttempts || this.maxAttempts_,\n delayFactor: delayFactor || this.delayFactor_,\n fuzzFactor: fuzzFactor || this.fuzzFactor_,\n initialDelay: initialDelay || this.initialDelay_\n });\n };\n\n return RetryManager;\n}();\n\nvar Retry = /*#__PURE__*/function () {\n function Retry(options) {\n this.maxAttempts_ = options.maxAttempts;\n this.delayFactor_ = options.delayFactor;\n this.fuzzFactor_ = options.fuzzFactor;\n this.currentDelay_ = options.initialDelay;\n this.currentAttempt_ = 1;\n }\n\n var _proto2 = Retry.prototype;\n\n _proto2.moveToNextAttempt = function moveToNextAttempt() {\n this.currentAttempt_++;\n var delayDelta = this.currentDelay_ * this.delayFactor_;\n this.currentDelay_ = this.currentDelay_ + delayDelta;\n };\n\n _proto2.shouldRetry = function shouldRetry() {\n return this.currentAttempt_ < this.maxAttempts_;\n };\n\n _proto2.getCurrentDelay = function getCurrentDelay() {\n return this.currentDelay_;\n };\n\n _proto2.getCurrentMinPossibleDelay = function getCurrentMinPossibleDelay() {\n return (1 - this.fuzzFactor_) * this.currentDelay_;\n };\n\n _proto2.getCurrentMaxPossibleDelay = function getCurrentMaxPossibleDelay() {\n return (1 + this.fuzzFactor_) * this.currentDelay_;\n }\n /**\n * For example fuzzFactor is 0.1\n * This means ±10% deviation\n * So if we have delay as 1000\n * This function can generate any value from 900 to 1100\n */\n ;\n\n _proto2.getCurrentFuzzedDelay = function getCurrentFuzzedDelay() {\n var lowValue = this.getCurrentMinPossibleDelay();\n var highValue = this.getCurrentMaxPossibleDelay();\n return lowValue + Math.random() * (highValue - lowValue);\n };\n\n return Retry;\n}();\n\nmodule.exports = RetryManager;","'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","var conventions = require(\"./conventions\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('')\n\t\tif(pos',start+4);\n\t\t\t//append comment source.substring(4,end)//\") { // (3) next characters must match \"-->\"\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed time stamp (time stamps must be separated by '-->'): \" +\n oInput);\n }\n input = input.substr(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n // 4.1 WebVTT cue settings list.\n skipWhitespace();\n consumeCueSettings(input, cue);\n}\n\n// When evaluating this file as part of a Webpack bundle for server\n// side rendering, `document` is an empty object.\nvar TEXTAREA_ELEMENT = document.createElement && document.createElement(\"textarea\");\n\nvar TAG_NAME = {\n c: \"span\",\n i: \"i\",\n b: \"b\",\n u: \"u\",\n ruby: \"ruby\",\n rt: \"rt\",\n v: \"span\",\n lang: \"span\"\n};\n\n// 5.1 default text color\n// 5.2 default text background color is equivalent to text color with bg_ prefix\nvar DEFAULT_COLOR_CLASS = {\n white: 'rgba(255,255,255,1)',\n lime: 'rgba(0,255,0,1)',\n cyan: 'rgba(0,255,255,1)',\n red: 'rgba(255,0,0,1)',\n yellow: 'rgba(255,255,0,1)',\n magenta: 'rgba(255,0,255,1)',\n blue: 'rgba(0,0,255,1)',\n black: 'rgba(0,0,0,1)'\n};\n\nvar TAG_ANNOTATION = {\n v: \"title\",\n lang: \"lang\"\n};\n\nvar NEEDS_PARENT = {\n rt: \"ruby\"\n};\n\n// Parse content into a document fragment.\nfunction parseContent(window, input) {\n function nextToken() {\n // Check for end-of-string.\n if (!input) {\n return null;\n }\n\n // Consume 'n' characters from the input.\n function consume(result) {\n input = input.substr(result.length);\n return result;\n }\n\n var m = input.match(/^([^<]*)(<[^>]*>?)?/);\n // If there is some text before the next tag, return it, otherwise return\n // the tag.\n return consume(m[1] ? m[1] : m[2]);\n }\n\n function unescape(s) {\n TEXTAREA_ELEMENT.innerHTML = s;\n s = TEXTAREA_ELEMENT.textContent;\n TEXTAREA_ELEMENT.textContent = \"\";\n return s;\n }\n\n function shouldAdd(current, element) {\n return !NEEDS_PARENT[element.localName] ||\n NEEDS_PARENT[element.localName] === current.localName;\n }\n\n // Create an element for this tag.\n function createElement(type, annotation) {\n var tagName = TAG_NAME[type];\n if (!tagName) {\n return null;\n }\n var element = window.document.createElement(tagName);\n var name = TAG_ANNOTATION[type];\n if (name && annotation) {\n element[name] = annotation.trim();\n }\n return element;\n }\n\n var rootDiv = window.document.createElement(\"div\"),\n current = rootDiv,\n t,\n tagStack = [];\n\n while ((t = nextToken()) !== null) {\n if (t[0] === '<') {\n if (t[1] === \"/\") {\n // If the closing tag matches, move back up to the parent node.\n if (tagStack.length &&\n tagStack[tagStack.length - 1] === t.substr(2).replace(\">\", \"\")) {\n tagStack.pop();\n current = current.parentNode;\n }\n // Otherwise just ignore the end tag.\n continue;\n }\n var ts = parseTimeStamp(t.substr(1, t.length - 2));\n var node;\n if (ts) {\n // Timestamps are lead nodes as well.\n node = window.document.createProcessingInstruction(\"timestamp\", ts);\n current.appendChild(node);\n continue;\n }\n var m = t.match(/^<([^.\\s/0-9>]+)(\\.[^\\s\\\\>]+)?([^>\\\\]+)?(\\\\?)>?$/);\n // If we can't parse the tag, skip to the next tag.\n if (!m) {\n continue;\n }\n // Try to construct an element, and ignore the tag if we couldn't.\n node = createElement(m[1], m[3]);\n if (!node) {\n continue;\n }\n // Determine if the tag should be added based on the context of where it\n // is placed in the cuetext.\n if (!shouldAdd(current, node)) {\n continue;\n }\n // Set the class list (as a list of classes, separated by space).\n if (m[2]) {\n var classes = m[2].split('.');\n\n classes.forEach(function(cl) {\n var bgColor = /^bg_/.test(cl);\n // slice out `bg_` if it's a background color\n var colorName = bgColor ? cl.slice(3) : cl;\n\n if (DEFAULT_COLOR_CLASS.hasOwnProperty(colorName)) {\n var propName = bgColor ? 'background-color' : 'color';\n var propValue = DEFAULT_COLOR_CLASS[colorName];\n\n node.style[propName] = propValue;\n }\n });\n\n node.className = classes.join(' ');\n }\n // Append the node to the current node, and enter the scope of the new\n // node.\n tagStack.push(m[1]);\n current.appendChild(node);\n current = node;\n continue;\n }\n\n // Text nodes are leaf nodes.\n current.appendChild(window.document.createTextNode(unescape(t)));\n }\n\n return rootDiv;\n}\n\n// This is a list of all the Unicode characters that have a strong\n// right-to-left category. What this means is that these characters are\n// written right-to-left for sure. It was generated by pulling all the strong\n// right-to-left characters out of the Unicode data table. That table can\n// found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\nvar strongRTLRanges = [[0x5be, 0x5be], [0x5c0, 0x5c0], [0x5c3, 0x5c3], [0x5c6, 0x5c6],\n [0x5d0, 0x5ea], [0x5f0, 0x5f4], [0x608, 0x608], [0x60b, 0x60b], [0x60d, 0x60d],\n [0x61b, 0x61b], [0x61e, 0x64a], [0x66d, 0x66f], [0x671, 0x6d5], [0x6e5, 0x6e6],\n [0x6ee, 0x6ef], [0x6fa, 0x70d], [0x70f, 0x710], [0x712, 0x72f], [0x74d, 0x7a5],\n [0x7b1, 0x7b1], [0x7c0, 0x7ea], [0x7f4, 0x7f5], [0x7fa, 0x7fa], [0x800, 0x815],\n [0x81a, 0x81a], [0x824, 0x824], [0x828, 0x828], [0x830, 0x83e], [0x840, 0x858],\n [0x85e, 0x85e], [0x8a0, 0x8a0], [0x8a2, 0x8ac], [0x200f, 0x200f],\n [0xfb1d, 0xfb1d], [0xfb1f, 0xfb28], [0xfb2a, 0xfb36], [0xfb38, 0xfb3c],\n [0xfb3e, 0xfb3e], [0xfb40, 0xfb41], [0xfb43, 0xfb44], [0xfb46, 0xfbc1],\n [0xfbd3, 0xfd3d], [0xfd50, 0xfd8f], [0xfd92, 0xfdc7], [0xfdf0, 0xfdfc],\n [0xfe70, 0xfe74], [0xfe76, 0xfefc], [0x10800, 0x10805], [0x10808, 0x10808],\n [0x1080a, 0x10835], [0x10837, 0x10838], [0x1083c, 0x1083c], [0x1083f, 0x10855],\n [0x10857, 0x1085f], [0x10900, 0x1091b], [0x10920, 0x10939], [0x1093f, 0x1093f],\n [0x10980, 0x109b7], [0x109be, 0x109bf], [0x10a00, 0x10a00], [0x10a10, 0x10a13],\n [0x10a15, 0x10a17], [0x10a19, 0x10a33], [0x10a40, 0x10a47], [0x10a50, 0x10a58],\n [0x10a60, 0x10a7f], [0x10b00, 0x10b35], [0x10b40, 0x10b55], [0x10b58, 0x10b72],\n [0x10b78, 0x10b7f], [0x10c00, 0x10c48], [0x1ee00, 0x1ee03], [0x1ee05, 0x1ee1f],\n [0x1ee21, 0x1ee22], [0x1ee24, 0x1ee24], [0x1ee27, 0x1ee27], [0x1ee29, 0x1ee32],\n [0x1ee34, 0x1ee37], [0x1ee39, 0x1ee39], [0x1ee3b, 0x1ee3b], [0x1ee42, 0x1ee42],\n [0x1ee47, 0x1ee47], [0x1ee49, 0x1ee49], [0x1ee4b, 0x1ee4b], [0x1ee4d, 0x1ee4f],\n [0x1ee51, 0x1ee52], [0x1ee54, 0x1ee54], [0x1ee57, 0x1ee57], [0x1ee59, 0x1ee59],\n [0x1ee5b, 0x1ee5b], [0x1ee5d, 0x1ee5d], [0x1ee5f, 0x1ee5f], [0x1ee61, 0x1ee62],\n [0x1ee64, 0x1ee64], [0x1ee67, 0x1ee6a], [0x1ee6c, 0x1ee72], [0x1ee74, 0x1ee77],\n [0x1ee79, 0x1ee7c], [0x1ee7e, 0x1ee7e], [0x1ee80, 0x1ee89], [0x1ee8b, 0x1ee9b],\n [0x1eea1, 0x1eea3], [0x1eea5, 0x1eea9], [0x1eeab, 0x1eebb], [0x10fffd, 0x10fffd]];\n\nfunction isStrongRTLChar(charCode) {\n for (var i = 0; i < strongRTLRanges.length; i++) {\n var currentRange = strongRTLRanges[i];\n if (charCode >= currentRange[0] && charCode <= currentRange[1]) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction determineBidi(cueDiv) {\n var nodeStack = [],\n text = \"\",\n charCode;\n\n if (!cueDiv || !cueDiv.childNodes) {\n return \"ltr\";\n }\n\n function pushNodes(nodeStack, node) {\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n nodeStack.push(node.childNodes[i]);\n }\n }\n\n function nextTextNode(nodeStack) {\n if (!nodeStack || !nodeStack.length) {\n return null;\n }\n\n var node = nodeStack.pop(),\n text = node.textContent || node.innerText;\n if (text) {\n // TODO: This should match all unicode type B characters (paragraph\n // separator characters). See issue #115.\n var m = text.match(/^.*(\\n|\\r)/);\n if (m) {\n nodeStack.length = 0;\n return m[0];\n }\n return text;\n }\n if (node.tagName === \"ruby\") {\n return nextTextNode(nodeStack);\n }\n if (node.childNodes) {\n pushNodes(nodeStack, node);\n return nextTextNode(nodeStack);\n }\n }\n\n pushNodes(nodeStack, cueDiv);\n while ((text = nextTextNode(nodeStack))) {\n for (var i = 0; i < text.length; i++) {\n charCode = text.charCodeAt(i);\n if (isStrongRTLChar(charCode)) {\n return \"rtl\";\n }\n }\n }\n return \"ltr\";\n}\n\nfunction computeLinePos(cue) {\n if (typeof cue.line === \"number\" &&\n (cue.snapToLines || (cue.line >= 0 && cue.line <= 100))) {\n return cue.line;\n }\n if (!cue.track || !cue.track.textTrackList ||\n !cue.track.textTrackList.mediaElement) {\n return -1;\n }\n var track = cue.track,\n trackList = track.textTrackList,\n count = 0;\n for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {\n if (trackList[i].mode === \"showing\") {\n count++;\n }\n }\n return ++count * -1;\n}\n\nfunction StyleBox() {\n}\n\n// Apply styles to a div. If there is no div passed then it defaults to the\n// div on 'this'.\nStyleBox.prototype.applyStyles = function(styles, div) {\n div = div || this.div;\n for (var prop in styles) {\n if (styles.hasOwnProperty(prop)) {\n div.style[prop] = styles[prop];\n }\n }\n};\n\nStyleBox.prototype.formatStyle = function(val, unit) {\n return val === 0 ? 0 : val + unit;\n};\n\n// Constructs the computed display state of the cue (a div). Places the div\n// into the overlay which should be a block level element (usually a div).\nfunction CueStyleBox(window, cue, styleOptions) {\n StyleBox.call(this);\n this.cue = cue;\n\n // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will\n // have inline positioning and will function as the cue background box.\n this.cueDiv = parseContent(window, cue.text);\n var styles = {\n color: \"rgba(255, 255, 255, 1)\",\n backgroundColor: \"rgba(0, 0, 0, 0.8)\",\n position: \"relative\",\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n display: \"inline\",\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\"\n };\n\n this.applyStyles(styles, this.cueDiv);\n\n // Create an absolutely positioned div that will be used to position the cue\n // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS\n // mirrors of them except middle instead of center on Safari.\n this.div = window.document.createElement(\"div\");\n styles = {\n direction: determineBidi(this.cueDiv),\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\",\n textAlign: cue.align === \"middle\" ? \"center\" : cue.align,\n font: styleOptions.font,\n whiteSpace: \"pre-line\",\n position: \"absolute\"\n };\n\n this.applyStyles(styles);\n this.div.appendChild(this.cueDiv);\n\n // Calculate the distance from the reference edge of the viewport to the text\n // position of the cue box. The reference edge will be resolved later when\n // the box orientation styles are applied.\n var textPos = 0;\n switch (cue.positionAlign) {\n case \"start\":\n case \"line-left\":\n textPos = cue.position;\n break;\n case \"center\":\n textPos = cue.position - (cue.size / 2);\n break;\n case \"end\":\n case \"line-right\":\n textPos = cue.position - cue.size;\n break;\n }\n\n // Horizontal box orientation; textPos is the distance from the left edge of the\n // area to the left edge of the box and cue.size is the distance extending to\n // the right from there.\n if (cue.vertical === \"\") {\n this.applyStyles({\n left: this.formatStyle(textPos, \"%\"),\n width: this.formatStyle(cue.size, \"%\")\n });\n // Vertical box orientation; textPos is the distance from the top edge of the\n // area to the top edge of the box and cue.size is the height extending\n // downwards from there.\n } else {\n this.applyStyles({\n top: this.formatStyle(textPos, \"%\"),\n height: this.formatStyle(cue.size, \"%\")\n });\n }\n\n this.move = function(box) {\n this.applyStyles({\n top: this.formatStyle(box.top, \"px\"),\n bottom: this.formatStyle(box.bottom, \"px\"),\n left: this.formatStyle(box.left, \"px\"),\n right: this.formatStyle(box.right, \"px\"),\n height: this.formatStyle(box.height, \"px\"),\n width: this.formatStyle(box.width, \"px\")\n });\n };\n}\nCueStyleBox.prototype = _objCreate(StyleBox.prototype);\nCueStyleBox.prototype.constructor = CueStyleBox;\n\n// Represents the co-ordinates of an Element in a way that we can easily\n// compute things with such as if it overlaps or intersects with another Element.\n// Can initialize it with either a StyleBox or another BoxPosition.\nfunction BoxPosition(obj) {\n // Either a BoxPosition was passed in and we need to copy it, or a StyleBox\n // was passed in and we need to copy the results of 'getBoundingClientRect'\n // as the object returned is readonly. All co-ordinate values are in reference\n // to the viewport origin (top left).\n var lh, height, width, top;\n if (obj.div) {\n height = obj.div.offsetHeight;\n width = obj.div.offsetWidth;\n top = obj.div.offsetTop;\n\n var rects = (rects = obj.div.childNodes) && (rects = rects[0]) &&\n rects.getClientRects && rects.getClientRects();\n obj = obj.div.getBoundingClientRect();\n // In certain cases the outter div will be slightly larger then the sum of\n // the inner div's lines. This could be due to bold text, etc, on some platforms.\n // In this case we should get the average line height and use that. This will\n // result in the desired behaviour.\n lh = rects ? Math.max((rects[0] && rects[0].height) || 0, obj.height / rects.length)\n : 0;\n\n }\n this.left = obj.left;\n this.right = obj.right;\n this.top = obj.top || top;\n this.height = obj.height || height;\n this.bottom = obj.bottom || (top + (obj.height || height));\n this.width = obj.width || width;\n this.lineHeight = lh !== undefined ? lh : obj.lineHeight;\n}\n\n// Move the box along a particular axis. Optionally pass in an amount to move\n// the box. If no amount is passed then the default is the line height of the\n// box.\nBoxPosition.prototype.move = function(axis, toMove) {\n toMove = toMove !== undefined ? toMove : this.lineHeight;\n switch (axis) {\n case \"+x\":\n this.left += toMove;\n this.right += toMove;\n break;\n case \"-x\":\n this.left -= toMove;\n this.right -= toMove;\n break;\n case \"+y\":\n this.top += toMove;\n this.bottom += toMove;\n break;\n case \"-y\":\n this.top -= toMove;\n this.bottom -= toMove;\n break;\n }\n};\n\n// Check if this box overlaps another box, b2.\nBoxPosition.prototype.overlaps = function(b2) {\n return this.left < b2.right &&\n this.right > b2.left &&\n this.top < b2.bottom &&\n this.bottom > b2.top;\n};\n\n// Check if this box overlaps any other boxes in boxes.\nBoxPosition.prototype.overlapsAny = function(boxes) {\n for (var i = 0; i < boxes.length; i++) {\n if (this.overlaps(boxes[i])) {\n return true;\n }\n }\n return false;\n};\n\n// Check if this box is within another box.\nBoxPosition.prototype.within = function(container) {\n return this.top >= container.top &&\n this.bottom <= container.bottom &&\n this.left >= container.left &&\n this.right <= container.right;\n};\n\n// Check if this box is entirely within the container or it is overlapping\n// on the edge opposite of the axis direction passed. For example, if \"+x\" is\n// passed and the box is overlapping on the left edge of the container, then\n// return true.\nBoxPosition.prototype.overlapsOppositeAxis = function(container, axis) {\n switch (axis) {\n case \"+x\":\n return this.left < container.left;\n case \"-x\":\n return this.right > container.right;\n case \"+y\":\n return this.top < container.top;\n case \"-y\":\n return this.bottom > container.bottom;\n }\n};\n\n// Find the percentage of the area that this box is overlapping with another\n// box.\nBoxPosition.prototype.intersectPercentage = function(b2) {\n var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),\n y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),\n intersectArea = x * y;\n return intersectArea / (this.height * this.width);\n};\n\n// Convert the positions from this box to CSS compatible positions using\n// the reference container's positions. This has to be done because this\n// box's positions are in reference to the viewport origin, whereas, CSS\n// values are in referecne to their respective edges.\nBoxPosition.prototype.toCSSCompatValues = function(reference) {\n return {\n top: this.top - reference.top,\n bottom: reference.bottom - this.bottom,\n left: this.left - reference.left,\n right: reference.right - this.right,\n height: this.height,\n width: this.width\n };\n};\n\n// Get an object that represents the box's position without anything extra.\n// Can pass a StyleBox, HTMLElement, or another BoxPositon.\nBoxPosition.getSimpleBoxPosition = function(obj) {\n var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;\n var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;\n var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;\n\n obj = obj.div ? obj.div.getBoundingClientRect() :\n obj.tagName ? obj.getBoundingClientRect() : obj;\n var ret = {\n left: obj.left,\n right: obj.right,\n top: obj.top || top,\n height: obj.height || height,\n bottom: obj.bottom || (top + (obj.height || height)),\n width: obj.width || width\n };\n return ret;\n};\n\n// Move a StyleBox to its specified, or next best, position. The containerBox\n// is the box that contains the StyleBox, such as a div. boxPositions are\n// a list of other boxes that the styleBox can't overlap with.\nfunction moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {\n\n // Find the best position for a cue box, b, on the video. The axis parameter\n // is a list of axis, the order of which, it will move the box along. For example:\n // Passing [\"+x\", \"-x\"] will move the box first along the x axis in the positive\n // direction. If it doesn't find a good position for it there it will then move\n // it along the x axis in the negative direction.\n function findBestPosition(b, axis) {\n var bestPosition,\n specifiedPosition = new BoxPosition(b),\n percentage = 1; // Highest possible so the first thing we get is better.\n\n for (var i = 0; i < axis.length; i++) {\n while (b.overlapsOppositeAxis(containerBox, axis[i]) ||\n (b.within(containerBox) && b.overlapsAny(boxPositions))) {\n b.move(axis[i]);\n }\n // We found a spot where we aren't overlapping anything. This is our\n // best position.\n if (b.within(containerBox)) {\n return b;\n }\n var p = b.intersectPercentage(containerBox);\n // If we're outside the container box less then we were on our last try\n // then remember this position as the best position.\n if (percentage > p) {\n bestPosition = new BoxPosition(b);\n percentage = p;\n }\n // Reset the box position to the specified position.\n b = new BoxPosition(specifiedPosition);\n }\n return bestPosition || specifiedPosition;\n }\n\n var boxPosition = new BoxPosition(styleBox),\n cue = styleBox.cue,\n linePos = computeLinePos(cue),\n axis = [];\n\n // If we have a line number to align the cue to.\n if (cue.snapToLines) {\n var size;\n switch (cue.vertical) {\n case \"\":\n axis = [ \"+y\", \"-y\" ];\n size = \"height\";\n break;\n case \"rl\":\n axis = [ \"+x\", \"-x\" ];\n size = \"width\";\n break;\n case \"lr\":\n axis = [ \"-x\", \"+x\" ];\n size = \"width\";\n break;\n }\n\n var step = boxPosition.lineHeight,\n position = step * Math.round(linePos),\n maxPosition = containerBox[size] + step,\n initialAxis = axis[0];\n\n // If the specified intial position is greater then the max position then\n // clamp the box to the amount of steps it would take for the box to\n // reach the max position.\n if (Math.abs(position) > maxPosition) {\n position = position < 0 ? -1 : 1;\n position *= Math.ceil(maxPosition / step) * step;\n }\n\n // If computed line position returns negative then line numbers are\n // relative to the bottom of the video instead of the top. Therefore, we\n // need to increase our initial position by the length or width of the\n // video, depending on the writing direction, and reverse our axis directions.\n if (linePos < 0) {\n position += cue.vertical === \"\" ? containerBox.height : containerBox.width;\n axis = axis.reverse();\n }\n\n // Move the box to the specified position. This may not be its best\n // position.\n boxPosition.move(initialAxis, position);\n\n } else {\n // If we have a percentage line value for the cue.\n var calculatedPercentage = (boxPosition.lineHeight / containerBox.height) * 100;\n\n switch (cue.lineAlign) {\n case \"center\":\n linePos -= (calculatedPercentage / 2);\n break;\n case \"end\":\n linePos -= calculatedPercentage;\n break;\n }\n\n // Apply initial line position to the cue box.\n switch (cue.vertical) {\n case \"\":\n styleBox.applyStyles({\n top: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"rl\":\n styleBox.applyStyles({\n left: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"lr\":\n styleBox.applyStyles({\n right: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n }\n\n axis = [ \"+y\", \"-x\", \"+x\", \"-y\" ];\n\n // Get the box position again after we've applied the specified positioning\n // to it.\n boxPosition = new BoxPosition(styleBox);\n }\n\n var bestPosition = findBestPosition(boxPosition, axis);\n styleBox.move(bestPosition.toCSSCompatValues(containerBox));\n}\n\nfunction WebVTT() {\n // Nothing\n}\n\n// Helper to allow strings to be decoded instead of the default binary utf8 data.\nWebVTT.StringDecoder = function() {\n return {\n decode: function(data) {\n if (!data) {\n return \"\";\n }\n if (typeof data !== \"string\") {\n throw new Error(\"Error - expected string data.\");\n }\n return decodeURIComponent(encodeURIComponent(data));\n }\n };\n};\n\nWebVTT.convertCueToDOMTree = function(window, cuetext) {\n if (!window || !cuetext) {\n return null;\n }\n return parseContent(window, cuetext);\n};\n\nvar FONT_SIZE_PERCENT = 0.05;\nvar FONT_STYLE = \"sans-serif\";\nvar CUE_BACKGROUND_PADDING = \"1.5%\";\n\n// Runs the processing model over the cues and regions passed to it.\n// @param overlay A block level element (usually a div) that the computed cues\n// and regions will be placed into.\nWebVTT.processCues = function(window, cues, overlay) {\n if (!window || !cues || !overlay) {\n return null;\n }\n\n // Remove all previous children.\n while (overlay.firstChild) {\n overlay.removeChild(overlay.firstChild);\n }\n\n var paddedOverlay = window.document.createElement(\"div\");\n paddedOverlay.style.position = \"absolute\";\n paddedOverlay.style.left = \"0\";\n paddedOverlay.style.right = \"0\";\n paddedOverlay.style.top = \"0\";\n paddedOverlay.style.bottom = \"0\";\n paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;\n overlay.appendChild(paddedOverlay);\n\n // Determine if we need to compute the display states of the cues. This could\n // be the case if a cue's state has been changed since the last computation or\n // if it has not been computed yet.\n function shouldCompute(cues) {\n for (var i = 0; i < cues.length; i++) {\n if (cues[i].hasBeenReset || !cues[i].displayState) {\n return true;\n }\n }\n return false;\n }\n\n // We don't need to recompute the cues' display states. Just reuse them.\n if (!shouldCompute(cues)) {\n for (var i = 0; i < cues.length; i++) {\n paddedOverlay.appendChild(cues[i].displayState);\n }\n return;\n }\n\n var boxPositions = [],\n containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),\n fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;\n var styleOptions = {\n font: fontSize + \"px \" + FONT_STYLE\n };\n\n (function() {\n var styleBox, cue;\n\n for (var i = 0; i < cues.length; i++) {\n cue = cues[i];\n\n // Compute the intial position and styles of the cue div.\n styleBox = new CueStyleBox(window, cue, styleOptions);\n paddedOverlay.appendChild(styleBox.div);\n\n // Move the cue div to it's correct line position.\n moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);\n\n // Remember the computed div so that we don't have to recompute it later\n // if we don't have too.\n cue.displayState = styleBox.div;\n\n boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));\n }\n })();\n};\n\nWebVTT.Parser = function(window, vttjs, decoder) {\n if (!decoder) {\n decoder = vttjs;\n vttjs = {};\n }\n if (!vttjs) {\n vttjs = {};\n }\n\n this.window = window;\n this.vttjs = vttjs;\n this.state = \"INITIAL\";\n this.buffer = \"\";\n this.decoder = decoder || new TextDecoder(\"utf8\");\n this.regionList = [];\n};\n\nWebVTT.Parser.prototype = {\n // If the error is a ParsingError then report it to the consumer if\n // possible. If it's not a ParsingError then throw it like normal.\n reportOrThrowError: function(e) {\n if (e instanceof ParsingError) {\n this.onparsingerror && this.onparsingerror(e);\n } else {\n throw e;\n }\n },\n parse: function (data) {\n var self = this;\n\n // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n if (data) {\n // Try to decode the data that we received.\n self.buffer += self.decoder.decode(data, {stream: true});\n }\n\n function collectNextLine() {\n var buffer = self.buffer;\n var pos = 0;\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n ++pos;\n }\n var line = buffer.substr(0, pos);\n // Advance the buffer early in case we fail below.\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n self.buffer = buffer.substr(pos);\n return line;\n }\n\n // 3.4 WebVTT region and WebVTT region settings syntax\n function parseRegion(input) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"id\":\n settings.set(k, v);\n break;\n case \"width\":\n settings.percent(k, v);\n break;\n case \"lines\":\n settings.integer(k, v);\n break;\n case \"regionanchor\":\n case \"viewportanchor\":\n var xy = v.split(',');\n if (xy.length !== 2) {\n break;\n }\n // We have to make sure both x and y parse, so use a temporary\n // settings object here.\n var anchor = new Settings();\n anchor.percent(\"x\", xy[0]);\n anchor.percent(\"y\", xy[1]);\n if (!anchor.has(\"x\") || !anchor.has(\"y\")) {\n break;\n }\n settings.set(k + \"X\", anchor.get(\"x\"));\n settings.set(k + \"Y\", anchor.get(\"y\"));\n break;\n case \"scroll\":\n settings.alt(k, v, [\"up\"]);\n break;\n }\n }, /=/, /\\s/);\n\n // Create the region, using default values for any values that were not\n // specified.\n if (settings.has(\"id\")) {\n var region = new (self.vttjs.VTTRegion || self.window.VTTRegion)();\n region.width = settings.get(\"width\", 100);\n region.lines = settings.get(\"lines\", 3);\n region.regionAnchorX = settings.get(\"regionanchorX\", 0);\n region.regionAnchorY = settings.get(\"regionanchorY\", 100);\n region.viewportAnchorX = settings.get(\"viewportanchorX\", 0);\n region.viewportAnchorY = settings.get(\"viewportanchorY\", 100);\n region.scroll = settings.get(\"scroll\", \"\");\n // Register the region.\n self.onregion && self.onregion(region);\n // Remember the VTTRegion for later in case we parse any VTTCues that\n // reference it.\n self.regionList.push({\n id: settings.get(\"id\"),\n region: region\n });\n }\n }\n\n // draft-pantos-http-live-streaming-20\n // https://tools.ietf.org/html/draft-pantos-http-live-streaming-20#section-3.5\n // 3.5 WebVTT\n function parseTimestampMap(input) {\n var settings = new Settings();\n\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"MPEGT\":\n settings.integer(k + 'S', v);\n break;\n case \"LOCA\":\n settings.set(k + 'L', parseTimeStamp(v));\n break;\n }\n }, /[^\\d]:/, /,/);\n\n self.ontimestampmap && self.ontimestampmap({\n \"MPEGTS\": settings.get(\"MPEGTS\"),\n \"LOCAL\": settings.get(\"LOCAL\")\n });\n }\n\n // 3.2 WebVTT metadata header syntax\n function parseHeader(input) {\n if (input.match(/X-TIMESTAMP-MAP/)) {\n // This line contains HLS X-TIMESTAMP-MAP metadata\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"X-TIMESTAMP-MAP\":\n parseTimestampMap(v);\n break;\n }\n }, /=/);\n } else {\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"Region\":\n // 3.3 WebVTT region metadata header syntax\n parseRegion(v);\n break;\n }\n }, /:/);\n }\n\n }\n\n // 5.1 WebVTT file parsing.\n try {\n var line;\n if (self.state === \"INITIAL\") {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n line = collectNextLine();\n\n var m = line.match(/^WEBVTT([ \\t].*)?$/);\n if (!m || !m[0]) {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n\n self.state = \"HEADER\";\n }\n\n var alreadyCollectedLine = false;\n while (self.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n\n switch (self.state) {\n case \"HEADER\":\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n self.state = \"ID\";\n }\n continue;\n case \"NOTE\":\n // Ignore NOTE blocks.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n case \"ID\":\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n self.state = \"NOTE\";\n break;\n }\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\n if (!line) {\n continue;\n }\n self.cue = new (self.vttjs.VTTCue || self.window.VTTCue)(0, 0, \"\");\n // Safari still uses the old middle value and won't accept center\n try {\n self.cue.align = \"center\";\n } catch (e) {\n self.cue.align = \"middle\";\n }\n self.state = \"CUE\";\n // 30-39 - Check if self line contains an optional identifier or timing data.\n if (line.indexOf(\"-->\") === -1) {\n self.cue.id = line;\n continue;\n }\n // Process line as start of a cue.\n /*falls through*/\n case \"CUE\":\n // 40 - Collect cue timings and settings.\n try {\n parseCue(line, self.cue, self.regionList);\n } catch (e) {\n self.reportOrThrowError(e);\n // In case of an error ignore rest of the cue.\n self.cue = null;\n self.state = \"BADCUE\";\n continue;\n }\n self.state = \"CUETEXT\";\n continue;\n case \"CUETEXT\":\n var hasSubstring = line.indexOf(\"-->\") !== -1;\n // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n // We are done parsing self cue.\n self.oncue && self.oncue(self.cue);\n self.cue = null;\n self.state = \"ID\";\n continue;\n }\n if (self.cue.text) {\n self.cue.text += \"\\n\";\n }\n self.cue.text += line.replace(/\\u2028/g, '\\n').replace(/u2029/g, '\\n');\n continue;\n case \"BADCUE\": // BADCUE\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n }\n }\n } catch (e) {\n self.reportOrThrowError(e);\n\n // If we are currently parsing a cue, report what we have.\n if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\n self.oncue(self.cue);\n }\n self.cue = null;\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n self.state = self.state === \"INITIAL\" ? \"BADWEBVTT\" : \"BADCUE\";\n }\n return this;\n },\n flush: function () {\n var self = this;\n try {\n // Finish decoding the stream.\n self.buffer += self.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (self.cue || self.state === \"HEADER\") {\n self.buffer += \"\\n\\n\";\n self.parse();\n }\n // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n if (self.state === \"INITIAL\") {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n } catch(e) {\n self.reportOrThrowError(e);\n }\n self.onflush && self.onflush();\n return this;\n }\n};\n\nmodule.exports = WebVTT;\n","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar autoKeyword = \"auto\";\nvar directionSetting = {\n \"\": 1,\n \"lr\": 1,\n \"rl\": 1\n};\nvar alignSetting = {\n \"start\": 1,\n \"center\": 1,\n \"end\": 1,\n \"left\": 1,\n \"right\": 1,\n \"auto\": 1,\n \"line-left\": 1,\n \"line-right\": 1\n};\n\nfunction findDirectionSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var dir = directionSetting[value.toLowerCase()];\n return dir ? value.toLowerCase() : false;\n}\n\nfunction findAlignSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var align = alignSetting[value.toLowerCase()];\n return align ? value.toLowerCase() : false;\n}\n\nfunction VTTCue(startTime, endTime, text) {\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n this.hasBeenReset = false;\n\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n var _id = \"\";\n var _pauseOnExit = false;\n var _startTime = startTime;\n var _endTime = endTime;\n var _text = text;\n var _region = null;\n var _vertical = \"\";\n var _snapToLines = true;\n var _line = \"auto\";\n var _lineAlign = \"start\";\n var _position = \"auto\";\n var _positionAlign = \"auto\";\n var _size = 100;\n var _align = \"center\";\n\n Object.defineProperties(this, {\n \"id\": {\n enumerable: true,\n get: function() {\n return _id;\n },\n set: function(value) {\n _id = \"\" + value;\n }\n },\n\n \"pauseOnExit\": {\n enumerable: true,\n get: function() {\n return _pauseOnExit;\n },\n set: function(value) {\n _pauseOnExit = !!value;\n }\n },\n\n \"startTime\": {\n enumerable: true,\n get: function() {\n return _startTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Start time must be set to a number.\");\n }\n _startTime = value;\n this.hasBeenReset = true;\n }\n },\n\n \"endTime\": {\n enumerable: true,\n get: function() {\n return _endTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"End time must be set to a number.\");\n }\n _endTime = value;\n this.hasBeenReset = true;\n }\n },\n\n \"text\": {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = \"\" + value;\n this.hasBeenReset = true;\n }\n },\n\n \"region\": {\n enumerable: true,\n get: function() {\n return _region;\n },\n set: function(value) {\n _region = value;\n this.hasBeenReset = true;\n }\n },\n\n \"vertical\": {\n enumerable: true,\n get: function() {\n return _vertical;\n },\n set: function(value) {\n var setting = findDirectionSetting(value);\n // Have to check for false because the setting an be an empty string.\n if (setting === false) {\n throw new SyntaxError(\"Vertical: an invalid or illegal direction string was specified.\");\n }\n _vertical = setting;\n this.hasBeenReset = true;\n }\n },\n\n \"snapToLines\": {\n enumerable: true,\n get: function() {\n return _snapToLines;\n },\n set: function(value) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n }\n },\n\n \"line\": {\n enumerable: true,\n get: function() {\n return _line;\n },\n set: function(value) {\n if (typeof value !== \"number\" && value !== autoKeyword) {\n throw new SyntaxError(\"Line: an invalid number or illegal string was specified.\");\n }\n _line = value;\n this.hasBeenReset = true;\n }\n },\n\n \"lineAlign\": {\n enumerable: true,\n get: function() {\n return _lineAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n console.warn(\"lineAlign: an invalid or illegal string was specified.\");\n } else {\n _lineAlign = setting;\n this.hasBeenReset = true;\n }\n }\n },\n\n \"position\": {\n enumerable: true,\n get: function() {\n return _position;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Position must be between 0 and 100.\");\n }\n _position = value;\n this.hasBeenReset = true;\n }\n },\n\n \"positionAlign\": {\n enumerable: true,\n get: function() {\n return _positionAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n console.warn(\"positionAlign: an invalid or illegal string was specified.\");\n } else {\n _positionAlign = setting;\n this.hasBeenReset = true;\n }\n }\n },\n\n \"size\": {\n enumerable: true,\n get: function() {\n return _size;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Size must be between 0 and 100.\");\n }\n _size = value;\n this.hasBeenReset = true;\n }\n },\n\n \"align\": {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"align: an invalid or illegal alignment string was specified.\");\n }\n _align = setting;\n this.hasBeenReset = true;\n }\n }\n });\n\n /**\n * Other spec defined properties\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n this.displayState = undefined;\n}\n\n/**\n * VTTCue methods\n */\n\nVTTCue.prototype.getCueAsHTML = function() {\n // Assume WebVTT.convertCueToDOMTree is on the global.\n return WebVTT.convertCueToDOMTree(window, this.text);\n};\n\nmodule.exports = VTTCue;\n","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar scrollSetting = {\n \"\": true,\n \"up\": true\n};\n\nfunction findScrollSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var scroll = scrollSetting[value.toLowerCase()];\n return scroll ? value.toLowerCase() : false;\n}\n\nfunction isValidPercentValue(value) {\n return typeof value === \"number\" && (value >= 0 && value <= 100);\n}\n\n// VTTRegion shim http://dev.w3.org/html5/webvtt/#vttregion-interface\nfunction VTTRegion() {\n var _width = 100;\n var _lines = 3;\n var _regionAnchorX = 0;\n var _regionAnchorY = 100;\n var _viewportAnchorX = 0;\n var _viewportAnchorY = 100;\n var _scroll = \"\";\n\n Object.defineProperties(this, {\n \"width\": {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"Width must be between 0 and 100.\");\n }\n _width = value;\n }\n },\n \"lines\": {\n enumerable: true,\n get: function() {\n return _lines;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Lines must be set to a number.\");\n }\n _lines = value;\n }\n },\n \"regionAnchorY\": {\n enumerable: true,\n get: function() {\n return _regionAnchorY;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"RegionAnchorX must be between 0 and 100.\");\n }\n _regionAnchorY = value;\n }\n },\n \"regionAnchorX\": {\n enumerable: true,\n get: function() {\n return _regionAnchorX;\n },\n set: function(value) {\n if(!isValidPercentValue(value)) {\n throw new Error(\"RegionAnchorY must be between 0 and 100.\");\n }\n _regionAnchorX = value;\n }\n },\n \"viewportAnchorY\": {\n enumerable: true,\n get: function() {\n return _viewportAnchorY;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"ViewportAnchorY must be between 0 and 100.\");\n }\n _viewportAnchorY = value;\n }\n },\n \"viewportAnchorX\": {\n enumerable: true,\n get: function() {\n return _viewportAnchorX;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"ViewportAnchorX must be between 0 and 100.\");\n }\n _viewportAnchorX = value;\n }\n },\n \"scroll\": {\n enumerable: true,\n get: function() {\n return _scroll;\n },\n set: function(value) {\n var setting = findScrollSetting(value);\n // Have to check for false as an empty string is a legal value.\n if (setting === false) {\n console.warn(\"Scroll: an invalid or illegal string was specified.\");\n } else {\n _scroll = setting;\n }\n }\n }\n });\n}\n\nmodule.exports = VTTRegion;\n","/* The MIT License (MIT)\n\nCopyright (c) 2014-2015 Benoit Tremblay \n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE. */\n/*global define, YT*/\n(function (root, factory) {\n if(typeof exports==='object' && typeof module!=='undefined') {\n var videojs = require('video.js');\n module.exports = factory(videojs.default || videojs);\n } else if(typeof define === 'function' && define.amd) {\n define(['videojs'], function(videojs){\n return (root.Youtube = factory(videojs));\n });\n } else {\n root.Youtube = factory(root.videojs);\n }\n}(this, function(videojs) {\n 'use strict';\n\n var _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_NATIVE_ANDROID;\n var Tech = videojs.getTech('Tech');\n\n class Youtube extends Tech {\n\n constructor(options, ready) {\n super(options, ready);\n\n this.setPoster(options.poster);\n this.setSrc(this.options_.source, true);\n\n // Set the vjs-youtube class to the player\n // Parent is not set yet so we have to wait a tick\n this.setTimeout(function() {\n if (this.el_) {\n this.el_.parentNode.className += ' vjs-youtube';\n\n if (_isOnMobile) {\n this.el_.parentNode.className += ' vjs-youtube-mobile';\n }\n\n if (Youtube.isApiReady) {\n this.initYTPlayer();\n } else {\n Youtube.apiReadyQueue.push(this);\n }\n }\n }.bind(this));\n }\n\n dispose() {\n if (this.ytPlayer) {\n //Dispose of the YouTube Player\n if (this.ytPlayer.stopVideo) {\n this.ytPlayer.stopVideo();\n }\n if (this.ytPlayer.destroy) {\n this.ytPlayer.destroy();\n }\n } else {\n //YouTube API hasn't finished loading or the player is already disposed\n var index = Youtube.apiReadyQueue.indexOf(this);\n if (index !== -1) {\n Youtube.apiReadyQueue.splice(index, 1);\n }\n }\n this.ytPlayer = null;\n\n this.el_.parentNode.className = this.el_.parentNode.className\n .replace(' vjs-youtube', '')\n .replace(' vjs-youtube-mobile', '');\n this.el_.parentNode.removeChild(this.el_);\n\n //Needs to be called after the YouTube player is destroyed, otherwise there will be a null reference exception\n Tech.prototype.dispose.call(this);\n }\n\n createEl() {\n var div = document.createElement('div');\n div.setAttribute('id', this.options_.techId);\n div.setAttribute('style', 'width:100%;height:100%;top:0;left:0;position:absolute');\n div.setAttribute('class', 'vjs-tech');\n\n var divWrapper = document.createElement('div');\n divWrapper.appendChild(div);\n\n if (!_isOnMobile && !this.options_.ytControls) {\n var divBlocker = document.createElement('div');\n divBlocker.setAttribute('class', 'vjs-iframe-blocker');\n divBlocker.setAttribute('style', 'position:absolute;top:0;left:0;width:100%;height:100%');\n\n // In case the blocker is still there and we want to pause\n divBlocker.onclick = function() {\n this.pause();\n }.bind(this);\n\n divWrapper.appendChild(divBlocker);\n }\n\n return divWrapper;\n }\n\n initYTPlayer() {\n var playerVars = {\n controls: 0,\n modestbranding: 1,\n rel: 0,\n showinfo: 0,\n loop: this.options_.loop ? 1 : 0\n };\n\n // Let the user set any YouTube parameter\n // https://developers.google.com/youtube/player_parameters?playerVersion=HTML5#Parameters\n // To use YouTube controls, you must use ytControls instead\n // To use the loop or autoplay, use the video.js settings\n\n if (typeof this.options_.autohide !== 'undefined') {\n playerVars.autohide = this.options_.autohide;\n }\n\n if (typeof this.options_['cc_load_policy'] !== 'undefined') {\n playerVars['cc_load_policy'] = this.options_['cc_load_policy'];\n }\n\n if (typeof this.options_.ytControls !== 'undefined') {\n playerVars.controls = this.options_.ytControls;\n }\n\n if (typeof this.options_.disablekb !== 'undefined') {\n playerVars.disablekb = this.options_.disablekb;\n }\n\n if (typeof this.options_.color !== 'undefined') {\n playerVars.color = this.options_.color;\n }\n\n if (!playerVars.controls) {\n // Let video.js handle the fullscreen unless it is the YouTube native controls\n playerVars.fs = 0;\n } else if (typeof this.options_.fs !== 'undefined') {\n playerVars.fs = this.options_.fs;\n }\n\n if (this.options_.source.src.indexOf('end=') !== -1) {\n var srcEndTime = this.options_.source.src.match(/end=([0-9]*)/);\n this.options_.end = parseInt(srcEndTime[1]);\n }\n\n if (typeof this.options_.end !== 'undefined') {\n playerVars.end = this.options_.end;\n }\n\n if (typeof this.options_.hl !== 'undefined') {\n playerVars.hl = this.options_.hl;\n } else if (typeof this.options_.language !== 'undefined') {\n // Set the YouTube player on the same language than video.js\n playerVars.hl = this.options_.language.substr(0, 2);\n }\n\n if (typeof this.options_['iv_load_policy'] !== 'undefined') {\n playerVars['iv_load_policy'] = this.options_['iv_load_policy'];\n }\n\n if (typeof this.options_.list !== 'undefined') {\n playerVars.list = this.options_.list;\n } else if (this.url && typeof this.url.listId !== 'undefined') {\n playerVars.list = this.url.listId;\n }\n\n if (typeof this.options_.listType !== 'undefined') {\n playerVars.listType = this.options_.listType;\n }\n\n if (typeof this.options_.modestbranding !== 'undefined') {\n playerVars.modestbranding = this.options_.modestbranding;\n }\n\n if (typeof this.options_.playlist !== 'undefined') {\n playerVars.playlist = this.options_.playlist;\n }\n\n if (typeof this.options_.playsinline !== 'undefined') {\n playerVars.playsinline = this.options_.playsinline;\n }\n\n if (typeof this.options_.rel !== 'undefined') {\n playerVars.rel = this.options_.rel;\n }\n\n if (typeof this.options_.showinfo !== 'undefined') {\n playerVars.showinfo = this.options_.showinfo;\n }\n\n if (this.options_.source.src.indexOf('start=') !== -1) {\n var srcStartTime = this.options_.source.src.match(/start=([0-9]*)/);\n this.options_.start = parseInt(srcStartTime[1]);\n }\n\n if (typeof this.options_.start !== 'undefined') {\n playerVars.start = this.options_.start;\n }\n\n if (typeof this.options_.theme !== 'undefined') {\n playerVars.theme = this.options_.theme;\n }\n\n // Allow undocumented options to be passed along via customVars\n if (typeof this.options_.customVars !== 'undefined') {\n var customVars = this.options_.customVars;\n Object.keys(customVars).forEach(function(key) {\n playerVars[key] = customVars[key];\n });\n }\n\n this.activeVideoId = this.url ? this.url.videoId : null;\n this.activeList = playerVars.list;\n\n var playerConfig = {\n videoId: this.activeVideoId,\n playerVars: playerVars,\n events: {\n onReady: this.onPlayerReady.bind(this),\n onPlaybackQualityChange: this.onPlayerPlaybackQualityChange.bind(this),\n onPlaybackRateChange: this.onPlayerPlaybackRateChange.bind(this),\n onStateChange: this.onPlayerStateChange.bind(this),\n onVolumeChange: this.onPlayerVolumeChange.bind(this),\n onError: this.onPlayerError.bind(this)\n }\n };\n\n if (typeof this.options_.enablePrivacyEnhancedMode !== 'undefined' && this.options_.enablePrivacyEnhancedMode) {\n playerConfig.host = 'https://www.youtube-nocookie.com';\n }\n\n this.ytPlayer = new YT.Player(this.options_.techId, playerConfig);\n }\n\n onPlayerReady() {\n if (this.options_.muted) {\n this.ytPlayer.mute();\n }\n\n var playbackRates = this.ytPlayer.getAvailablePlaybackRates();\n if (playbackRates.length > 1) {\n this.featuresPlaybackRate = true;\n }\n\n this.playerReady_ = true;\n this.triggerReady();\n\n if (this.playOnReady) {\n this.play();\n } else if (this.cueOnReady) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n }\n\n onPlayerPlaybackQualityChange() {\n\n }\n\n onPlayerPlaybackRateChange() {\n this.trigger('ratechange');\n }\n\n onPlayerStateChange(e) {\n var state = e.data;\n\n if (state === this.lastState || this.errorNumber) {\n return;\n }\n\n this.lastState = state;\n\n switch (state) {\n case -1:\n this.trigger('loadstart');\n this.trigger('loadedmetadata');\n this.trigger('durationchange');\n this.trigger('ratechange');\n break;\n\n case YT.PlayerState.ENDED:\n this.trigger('ended');\n break;\n\n case YT.PlayerState.PLAYING:\n this.trigger('timeupdate');\n this.trigger('durationchange');\n this.trigger('playing');\n this.trigger('play');\n\n if (this.isSeeking) {\n this.onSeeked();\n }\n break;\n\n case YT.PlayerState.PAUSED:\n this.trigger('canplay');\n if (this.isSeeking) {\n this.onSeeked();\n } else {\n this.trigger('pause');\n }\n break;\n\n case YT.PlayerState.BUFFERING:\n this.player_.trigger('timeupdate');\n this.player_.trigger('waiting');\n break;\n }\n }\n\n onPlayerVolumeChange() {\n this.trigger('volumechange');\n }\n\n onPlayerError(e) {\n this.errorNumber = e.data;\n this.trigger('pause');\n this.trigger('error');\n }\n\n error() {\n var code = 1000 + this.errorNumber; // as smaller codes are reserved\n switch (this.errorNumber) {\n case 5:\n return { code: code, message: 'Error while trying to play the video' };\n\n case 2:\n case 100:\n return { code: code, message: 'Unable to find the video' };\n\n case 101:\n case 150:\n return {\n code: code,\n message: 'Playback on other Websites has been disabled by the video owner.'\n };\n }\n\n return { code: code, message: 'YouTube unknown error (' + this.errorNumber + ')' };\n }\n\n loadVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.loadVideoById(options);\n }\n\n cueVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.cueVideoById(options);\n }\n\n src(src) {\n if (src) {\n this.setSrc({ src: src });\n }\n\n return this.source;\n }\n\n poster() {\n // You can't start programmaticlly a video with a mobile\n // through the iframe so we hide the poster and the play button (with CSS)\n if (_isOnMobile) {\n return null;\n }\n\n return this.poster_;\n }\n\n setPoster(poster) {\n this.poster_ = poster;\n }\n\n setSrc(source) {\n if (!source || !source.src) {\n return;\n }\n\n delete this.errorNumber;\n this.source = source;\n this.url = Youtube.parseUrl(source.src);\n\n if (!this.options_.poster) {\n if (this.url.videoId) {\n // Set the low resolution first\n this.poster_ = 'https://img.youtube.com/vi/' + this.url.videoId + '/0.jpg';\n this.trigger('posterchange');\n\n // Check if their is a high res\n this.checkHighResPoster();\n }\n }\n\n if (this.options_.autoplay && !_isOnMobile) {\n if (this.isReady_) {\n this.play();\n } else {\n this.playOnReady = true;\n }\n } else if (this.activeVideoId !== this.url.videoId) {\n if (this.isReady_) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n } else {\n this.cueOnReady = true;\n }\n }\n }\n\n autoplay() {\n return this.options_.autoplay;\n }\n\n setAutoplay(val) {\n this.options_.autoplay = val;\n }\n\n loop() {\n return this.options_.loop;\n }\n\n setLoop(val) {\n this.options_.loop = val;\n }\n\n play() {\n if (!this.url || !this.url.videoId) {\n return;\n }\n\n this.wasPausedBeforeSeek = false;\n\n if (this.isReady_) {\n if (this.url.listId) {\n if (this.activeList === this.url.listId) {\n this.ytPlayer.playVideo();\n } else {\n this.ytPlayer.loadPlaylist(this.url.listId);\n this.activeList = this.url.listId;\n }\n }\n\n if (this.activeVideoId === this.url.videoId) {\n this.ytPlayer.playVideo();\n } else {\n this.loadVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n } else {\n this.trigger('waiting');\n this.playOnReady = true;\n }\n }\n\n pause() {\n if (this.ytPlayer) {\n this.ytPlayer.pauseVideo();\n }\n }\n\n paused() {\n return (this.ytPlayer) ?\n (this.lastState !== YT.PlayerState.PLAYING && this.lastState !== YT.PlayerState.BUFFERING)\n : true;\n }\n\n currentTime() {\n return this.ytPlayer ? this.ytPlayer.getCurrentTime() : 0;\n }\n\n setCurrentTime(seconds) {\n if (this.lastState === YT.PlayerState.PAUSED) {\n this.timeBeforeSeek = this.currentTime();\n }\n\n if (!this.isSeeking) {\n this.wasPausedBeforeSeek = this.paused();\n }\n\n this.ytPlayer.seekTo(seconds, true);\n this.trigger('timeupdate');\n this.trigger('seeking');\n this.isSeeking = true;\n\n // A seek event during pause does not return an event to trigger a seeked event,\n // so run an interval timer to look for the currentTime to change\n if (this.lastState === YT.PlayerState.PAUSED && this.timeBeforeSeek !== seconds) {\n clearInterval(this.checkSeekedInPauseInterval);\n this.checkSeekedInPauseInterval = setInterval(function() {\n if (this.lastState !== YT.PlayerState.PAUSED || !this.isSeeking) {\n // If something changed while we were waiting for the currentTime to change,\n // clear the interval timer\n clearInterval(this.checkSeekedInPauseInterval);\n } else if (this.currentTime() !== this.timeBeforeSeek) {\n this.trigger('timeupdate');\n this.onSeeked();\n }\n }.bind(this), 250);\n }\n }\n\n seeking() {\n return this.isSeeking;\n }\n\n seekable() {\n if(!this.ytPlayer) {\n return videojs.createTimeRange();\n }\n\n return videojs.createTimeRange(0, this.ytPlayer.getDuration());\n }\n\n onSeeked() {\n clearInterval(this.checkSeekedInPauseInterval);\n this.isSeeking = false;\n\n if (this.wasPausedBeforeSeek) {\n this.pause();\n }\n\n this.trigger('seeked');\n }\n\n playbackRate() {\n return this.ytPlayer ? this.ytPlayer.getPlaybackRate() : 1;\n }\n\n setPlaybackRate(suggestedRate) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setPlaybackRate(suggestedRate);\n }\n\n duration() {\n return this.ytPlayer ? this.ytPlayer.getDuration() : 0;\n }\n\n currentSrc() {\n return this.source && this.source.src;\n }\n\n ended() {\n return this.ytPlayer ? (this.lastState === YT.PlayerState.ENDED) : false;\n }\n\n volume() {\n return this.ytPlayer ? this.ytPlayer.getVolume() / 100.0 : 1;\n }\n\n setVolume(percentAsDecimal) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setVolume(percentAsDecimal * 100.0);\n }\n\n muted() {\n return this.ytPlayer ? this.ytPlayer.isMuted() : false;\n }\n\n setMuted(mute) {\n if (!this.ytPlayer) {\n return;\n }\n else{\n this.muted(true);\n }\n\n if (mute) {\n this.ytPlayer.mute();\n } else {\n this.ytPlayer.unMute();\n }\n this.setTimeout( function(){\n this.trigger('volumechange');\n }, 50);\n }\n\n buffered() {\n if(!this.ytPlayer || !this.ytPlayer.getVideoLoadedFraction) {\n return videojs.createTimeRange();\n }\n\n var bufferedEnd = this.ytPlayer.getVideoLoadedFraction() * this.ytPlayer.getDuration();\n\n return videojs.createTimeRange(0, bufferedEnd);\n }\n\n // TODO: Can we really do something with this on YouTUbe?\n preload() {}\n load() {}\n reset() {}\n networkState() {\n if (!this.ytPlayer) {\n return 0; //NETWORK_EMPTY\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //NETWORK_EMPTY\n case 3: //buffering\n return 2; //NETWORK_LOADING\n default:\n return 1; //NETWORK_IDLE\n }\n }\n readyState() {\n if (!this.ytPlayer) {\n return 0; //HAVE_NOTHING\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //HAVE_NOTHING\n case 5: //video cued\n return 1; //HAVE_METADATA\n case 3: //buffering\n return 2; //HAVE_CURRENT_DATA\n default:\n return 4; //HAVE_ENOUGH_DATA\n }\n }\n\n supportsFullScreen() {\n return document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled;\n }\n\n // Tries to get the highest resolution thumbnail available for the video\n checkHighResPoster(){\n var uri = 'https://img.youtube.com/vi/' + this.url.videoId + '/maxresdefault.jpg';\n\n try {\n var image = new Image();\n image.onload = function(){\n // Onload may still be called if YouTube returns the 120x90 error thumbnail\n if('naturalHeight' in image){\n if (image.naturalHeight <= 90 || image.naturalWidth <= 120) {\n return;\n }\n } else if(image.height <= 90 || image.width <= 120) {\n return;\n }\n\n this.poster_ = uri;\n this.trigger('posterchange');\n }.bind(this);\n image.onerror = function(){};\n image.src = uri;\n }\n catch(e){}\n }\n }\n\n Youtube.isSupported = function() {\n return true;\n };\n\n Youtube.canPlaySource = function(e) {\n return Youtube.canPlayType(e.type);\n };\n\n Youtube.canPlayType = function(e) {\n return (e === 'video/youtube');\n };\n\n Youtube.parseUrl = function(url) {\n var result = {\n videoId: null\n };\n\n var regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\n var match = url.match(regex);\n\n if (match && match[2].length === 11) {\n result.videoId = match[2];\n }\n\n var regPlaylist = /[?&]list=([^#\\&\\?]+)/;\n match = url.match(regPlaylist);\n\n if(match && match[1]) {\n result.listId = match[1];\n }\n\n return result;\n };\n\n function apiLoaded() {\n YT.ready(function() {\n Youtube.isApiReady = true;\n\n for (var i = 0; i < Youtube.apiReadyQueue.length; ++i) {\n Youtube.apiReadyQueue[i].initYTPlayer();\n }\n });\n }\n\n function loadScript(src, callback) {\n var loaded = false;\n var tag = document.createElement('script');\n var firstScriptTag = document.getElementsByTagName('script')[0];\n if (!firstScriptTag) {\n // when loaded in jest without jsdom setup it doesn't get any element.\n // In jest it doesn't really make sense to do anything, because no one is watching youtube in jest\n return;\n }\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n tag.onload = function () {\n if (!loaded) {\n loaded = true;\n callback();\n }\n };\n tag.onreadystatechange = function () {\n if (!loaded && (this.readyState === 'complete' || this.readyState === 'loaded')) {\n loaded = true;\n callback();\n }\n };\n tag.src = src;\n }\n\n function injectCss() {\n var css = // iframe blocker to catch mouse events\n '.vjs-youtube .vjs-iframe-blocker { display: none; }' +\n '.vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }' +\n '.vjs-youtube .vjs-poster { background-size: cover; }' +\n '.vjs-youtube-mobile .vjs-big-play-button { display: none; }';\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (style.styleSheet){\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n\n Youtube.apiReadyQueue = [];\n\n if (typeof document !== 'undefined'){\n loadScript('https://www.youtube.com/iframe_api', apiLoaded);\n injectCss();\n }\n\n // Older versions of VJS5 doesn't have the registerTech function\n if (typeof videojs.registerTech !== 'undefined') {\n videojs.registerTech('Youtube', Youtube);\n } else {\n videojs.registerComponent('Youtube', Youtube);\n }\n}));\n","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };"],"names":["isArrayBufferView","obj","ArrayBuffer","isView","buffer","toUint8","bytes","Uint8Array","Array","isArray","byteOffset","byteLength","BigInt","Number","BYTE_TABLE","bytesToNumber","a","Uint16Array","b","_temp","_ref","_ref$signed","signed","_ref$le","le","fn","number","prototype","call","total","byte","i","exponent","Math","abs","length","max","numberToBytes","_temp2","_ref2$le","x","byteCount","ceil","toString","countBits","byteIndex","bytesToString","slice","string","String","fromCharCode","apply","decodeURIComponent","escape","e","stringToBytes","stringIsBytes","unescape","encodeURIComponent","view","charCodeAt","concatTypedArrays","_len","arguments","buffers","_key","filter","totalLen","reduce","buf","tempBuffer","offset","forEach","set","bytesMatch","_temp3","_ref3","_ref3$offset","_ref3$mask","mask","every","bByte","regexs","mp4","webm","ogg","video","audio","text","muxerVideo","muxerAudio","muxerText","mediaTypes","upperMediaTypes","translateLegacyCodec","codec","replace","orig","profile","avcLevel","parseCodecs","codecString","codecs","split","result","codecType","trim","name","match","exec","toLowerCase","type","substring","details","push","mediaType","codecsFromDefault","master","audioGroupId","mediaGroups","AUDIO","audioGroup","audioType","default","playlists","attributes","CODECS","isAudioCodec","test","getMimeForCodec","map","c","container","browserSupportsCodec","withMMS","muxerSupportsCodec","DEFAULT_AUDIO_CODEC","DEFAULT_VIDEO_CODEC","DESCRIPTORS","normalizePath","path","parseDescriptors","results","tag","size","headerSize","z","_DESCRIPTORS$z","id","parser","subarray","desc","flags","dependsOnEsId","ocrEsId","descriptors","url","len","oti","streamType","bufferSize","maxBitrate","avgBitrate","findBox","paths","complete","p","normalizePaths","end","data","EBML_TAGS","EBML","DocType","Segment","SegmentInfo","Tracks","Track","TrackNumber","DefaultDuration","TrackEntry","TrackType","FlagDefault","CodecID","CodecPrivate","VideoTrack","AudioTrack","Cluster","Timestamp","TimestampScale","BlockGroup","BlockDuration","Block","SimpleBlock","LENGTH_TABLE","getvint","removeLength","getLength","valueBytes","value","getInfinityDataSize","innerid","dataHeader","findEbml","dataStart","dataEnd","concat","NAL_TYPE_ONE","NAL_TYPE_TWO","EMULATION_PREVENTION","discardEmulationPreventionBytes","positions","newLength","newData","sourceIndex","shift","findNal","dataType","types","nalLimit","Infinity","nalStart","nalsFound","nalOffset","nalType","indexOf","CONSTANTS","_isLikely","aac","mp3","docType","mkv","matroska","mov","fmp4","moof","moov","ac3","ts","flac","avi","riff","wav","findH264Nal","findH265Nal","isLikelyTypes","Object","keys","t","isLikelyFn","isLikely","detectContainerForBytes","isLikelyFmp4MediaSegment","decodeB64ToUint8Array","b64Text","s","decodedString","Buffer","from","array","ID3","getId3Offset","returnSize","getId3Size","MPEGURL_REGEX","DASH_REGEX","simpleTypeFromSourceType","DEFAULT_LOCATION","baseUrl","relativeUrl","protocolLess","removeLocation","newUrl","URL","href","protocol","window","module","exports","callback","decodeResponseBody","err","response","responseBody","statusCode","cause","TextDecoder","charset","contentTypeHeader","contentType","_contentType$split","getCharset","headers","decode","_extends","isFunction","InterceptorsStorage","RetryManager","createXHR","httpHandler","requestInterceptorsStorage","responseInterceptorsStorage","retryManager","initParams","uri","options","params","_createXHR","Error","requestType","getIsEnabled","requestInterceptorPayload","body","metadata","retry","timeout","updatedPayload","execute","called","getBody","undefined","xhr","responseText","responseType","responseXML","firefoxBugTakenEffect","documentElement","nodeName","getXml","isJson","JSON","parse","errorFunc","evt","clearTimeout","timeoutTimer","retryTimeout","aborted","shouldRetry","responseInterceptorPayload","failureResponse","responseUrl","responseURL","_updatedPayload","setTimeout","moveToNextAttempt","getCurrentFuzzedDelay","loadFunc","status","useXDR","method","rawRequest","getAllResponseHeaders","row","index","key","parseHeaders","_updatedPayload2","cors","XDomainRequest","XMLHttpRequest","sync","json","stringify","onreadystatechange","readyState","onload","onerror","onprogress","onabort","ontimeout","open","username","password","withCredentials","abort","code","setRequestHeader","hasOwnProperty","isEmpty","beforeSend","send","iterator","forEachArray","toUpperCase","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","next","bind","minLen","_arrayLikeToArray","n","constructor","_unsupportedIterableToArray","done","TypeError","arr","arr2","this","typeToInterceptorsMap_","Map","enabled_","_proto","enable","disable","reset","addInterceptor","interceptor","has","Set","interceptorsSet","get","add","removeInterceptor","delete","clearInterceptorsByType","clear","getForType","payload","_step","_iterator","maxAttempts_","delayFactor_","fuzzFactor_","initialDelay_","getMaxAttempts","setMaxAttempts","maxAttempts","getDelayFactor","setDelayFactor","delayFactor","getFuzzFactor","setFuzzFactor","fuzzFactor","getInitialDelay","setInitialDelay","initialDelay","createRetry","Retry","currentDelay_","currentAttempt_","_proto2","delayDelta","getCurrentDelay","getCurrentMinPossibleDelay","getCurrentMaxPossibleDelay","lowValue","highValue","random","freeze","object","oc","MIME_TYPE","HTML","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","SVG","XML","XMLNS","assign","target","source","find","list","predicate","ac","item","conventions","dom","entities","sax","DOMImplementation","ParseError","XMLReader","normalizeLineEndings","input","DOMParser","locator","DOMHandler","cdata","position","node","lineNumber","columnNumber","_locator","l","systemId","_toString","chars","start","substr","java","lang","appendElement","hander","currentElement","appendChild","doc","parseFromString","mimeType","domBuilder","errorHandler","defaultNSMap","xmlns","entityMap","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","errorImpl","isCallback","Function","build","msg","buildErrorHandler","xml","normalize","error","startDocument","createDocument","documentURI","startElement","namespaceURI","localName","qName","attrs","el","createElementNS","getURI","getValue","attr","getQName","createAttributeNS","getLocator","nodeValue","setAttributeNode","endElement","current","tagName","parentNode","startPrefixMapping","prefix","endPrefixMapping","processingInstruction","ins","createProcessingInstruction","ignorableWhitespace","ch","characters","charNode","createCDATASection","createTextNode","skippedEntity","endDocument","comment","comm","createComment","startCDATA","endCDATA","startDTD","publicId","impl","implementation","createDocumentType","dt","doctype","warning","console","warn","fatalError","notEmptyString","orderedSetReducer","element","toOrderedSet","splitOnASCIIWhitespace","copy","src","dest","Class","Super","pt","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","DOMException","message","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","$$length","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","_nsMap","_onAddAttribute","_removeNamedNode","lastIndex","Node","_xmlEncoder","_visitNode","firstChild","nextSibling","Document","remove","_onUpdateChild","newChild","cs","childNodes","child","_removeChild","previous","previousSibling","lastChild","isDocTypeNode","nodeType","isElementNode","isTextNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","assertPreInsertionValidity1to5","parent","hasValidParentNodeType","hasInsertableNodeType","assertPreInsertionValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","assertPreReplacementValidityInDocument","_insertBefore","_inDocumentAssertion","cp","removeChild","newFirst","newLast","pre","Element","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","XMLSerializer","nodeSerializeToString","isHtml","nodeFilter","refNode","lookupPrefix","visibleNamespaces","namespace","serializeToString","join","needNamespaceDefine","ns","addSerializedAttribute","qualifiedName","prefixedNodeName","defaultNS","ai","nsi","pubid","sysid","sub","internalSubset","importNode","deep","node2","cloneNode","v","attrs2","_ownerElement","getNamedItem","setNamedItem","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","version","root","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importedNode","getElementById","rtv","getAttribute","getElementsByClassName","classNames","classNamesSet","base","nodeClassNames","matches","nodeClassNamesSet","createElement","createDocumentFragment","createAttribute","specified","createEntityReference","pl","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","count","insertData","replaceData","deleteData","splitText","newText","newNode","defineProperty","getTextContent","amp","apos","gt","lt","quot","Aacute","aacute","Abreve","abreve","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","AMP","And","and","andand","andd","andslope","andv","ang","ange","angle","angmsd","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","Aogon","aogon","Aopf","aopf","ap","apacir","apE","ape","apid","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","Barwed","barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","Because","because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxDL","boxDl","boxdL","boxdl","boxDR","boxDr","boxdR","boxdr","boxH","boxh","boxHD","boxHd","boxhD","boxhd","boxHU","boxHu","boxhU","boxhu","boxminus","boxplus","boxtimes","boxUL","boxUl","boxuL","boxul","boxUR","boxUr","boxuR","boxur","boxV","boxv","boxVH","boxVh","boxvH","boxvh","boxVL","boxVl","boxvL","boxvl","boxVR","boxVr","boxvR","boxvr","bprime","Breve","breve","brvbar","Bscr","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","Cap","cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","CenterDot","centerdot","Cfr","cfr","CHcy","chcy","check","checkmark","Chi","chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","Colon","colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","Conint","conint","ContourIntegral","Copf","copf","coprod","Coproduct","COPY","copysr","CounterClockwiseContourIntegral","crarr","Cross","cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","Cup","cup","cupbrcap","CupCap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","Dagger","dagger","daleth","Darr","dArr","darr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","DD","dd","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","Diamond","diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","Downarrow","downarrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","ecir","Ecirc","ecirc","ecolon","Ecy","ecy","eDDot","Edot","eDot","edot","ee","efDot","Efr","efr","eg","Egrave","egrave","egs","egsdot","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","lE","LeftAngleBracket","LeftArrow","Leftarrow","leftarrow","LeftArrowBar","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","LeftRightArrow","Leftrightarrow","leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","leftthreetimes","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","lEg","leg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","Lfr","lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","Ll","ll","llarr","llcorner","Lleftarrow","llhard","lltri","Lmidot","lmidot","lmoust","lmoustache","lnap","lnapprox","lnE","lne","lneq","lneqq","lnsim","loang","loarr","lobrk","LongLeftArrow","Longleftarrow","longleftarrow","LongLeftRightArrow","Longleftrightarrow","longleftrightarrow","longmapsto","LongRightArrow","Longrightarrow","longrightarrow","looparrowleft","looparrowright","lopar","Lopf","lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","Lscr","lscr","Lsh","lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","Lstrok","lstrok","Lt","LT","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","ne","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","ni","nis","nisd","niv","NJcy","njcy","nlArr","nlarr","nldr","nlE","nle","nLeftarrow","nleftarrow","nLeftrightarrow","nleftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nLt","nlt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","Nopf","nopf","Not","not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrArr","nrarr","nrarrc","nrarrw","nRightarrow","nrightarrow","nrtri","nrtrie","nsc","nsccue","nsce","Nscr","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","Ntilde","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","Nu","nu","num","numero","numsp","nvap","nVDash","nVdash","nvDash","nvdash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwArr","nwarr","nwarrow","nwnear","Oacute","oacute","oast","ocir","Ocirc","ocirc","Ocy","ocy","odash","Odblac","odblac","odiv","odot","odsold","OElig","oelig","ofcir","Ofr","ofr","ogon","Ograve","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","Omacr","omacr","Omega","omega","Omicron","omicron","omid","ominus","Oopf","oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","Or","or","orarr","ord","order","orderof","ordf","ordm","origof","oror","orslope","orv","oS","Oscr","oscr","Oslash","oslash","osol","Otilde","otilde","Otimes","otimes","otimesas","Ouml","ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","par","para","parallel","parsim","parsl","part","PartialD","Pcy","pcy","percnt","period","permil","perp","pertenk","Pfr","pfr","Phi","phi","phiv","phmmat","phone","Pi","pi","pitchfork","piv","planck","planckh","plankv","plus","plusacir","plusb","pluscir","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","Popf","popf","pound","Pr","pr","prap","prcue","prE","prec","precapprox","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","precsim","Prime","prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","prop","Proportion","Proportional","propto","prsim","prurel","Pscr","pscr","Psi","psi","puncsp","Qfr","qfr","qint","Qopf","qopf","qprime","Qscr","qscr","quaternions","quatint","quest","questeq","QUOT","rAarr","race","Racute","racute","radic","raemptyv","Rang","rang","rangd","range","rangle","raquo","Rarr","rArr","rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","Rarrtl","rarrtl","rarrw","rAtail","ratail","ratio","rationals","RBarr","rBarr","rbarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","Rcaron","rcaron","Rcedil","rcedil","rceil","rcub","Rcy","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","Re","real","realine","realpart","reals","rect","REG","reg","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","Rfr","rfr","rHar","rhard","rharu","rharul","Rho","rho","rhov","RightAngleBracket","RightArrow","Rightarrow","rightarrow","RightArrowBar","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTee","RightTeeArrow","RightTeeVector","rightthreetimes","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","Ropf","ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","Rscr","rscr","Rsh","rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","Sacute","sacute","sbquo","Sc","sc","scap","Scaron","scaron","sccue","scE","sce","Scedil","scedil","Scirc","scirc","scnap","scnE","scnsim","scpolint","scsim","Scy","scy","sdot","sdotb","sdote","searhk","seArr","searr","searrow","sect","semi","seswar","setminus","setmn","sext","Sfr","sfr","sfrown","sharp","SHCHcy","shchcy","SHcy","shcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","Sigma","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","SOFTcy","softcy","sol","solb","solbar","Sopf","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","Square","square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squf","srarr","Sscr","sscr","ssetmn","ssmile","sstarf","Star","star","starf","straightepsilon","straightphi","strns","Sub","subdot","subE","sube","subedot","submult","subnE","subne","subplus","subrarr","Subset","subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","nameStartChar","nameChar","RegExp","tagNamePattern","copyLocator","f","parseElementStartPart","currentNSMap","entityReplacer","addAttribute","qname","startIndex","attributeNames","addValue","attrName","charAt","setTagName","closed","localNSMap","nsp","nsPrefix","_copy","parseHtmlSpecialContent","elStartEnd","elEndStart","fixSelfClosed","closeMap","pos","lastIndexOf","parseDCC","matchs","lastMatch","endDTD","parseInstruction","ElementAttributes","defaultNSMapCopy","fixedFromCharCode","surrogate1","surrogate2","k","parseInt","appendText","xt","m","lineEnd","linePattern","lineStart","parseStack","tagStart","config","pop","endMatch","locator2","getLocalName","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","output","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","__proto__","arg","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","write","fromString","isBuffer","checked","val","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","g","foo","typedArraySupport","poolSize","_augment","species","configurable","alloc","fill","allocUnsafeSlow","_isBuffer","compare","y","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","stringtrim","base64clean","dst","doccy","topLevel","minDoc","document","win","self","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","NaN","rt","log","LN2","alert","confirm","prompt","Stream","listeners","on","listener","off","splice","trigger","callbacks","args","_length","_i","dispose","pipe","destination","LineStream","super","nextNewline","TAB","parseByterange","byterangeString","parseAttributes","parseResolution","resolution","width","height","ParseStream","customParsers","tagMappers","line","event","acc","mapper","mappedLine","newLine","tagType","duration","parseFloat","title","playlistType","allowed","URI","BYTERANGE","byterange","RESOLUTION","BANDWIDTH","dateTimeString","dateTimeObject","Date","IV","Uint32Array","PRECISE","subkey","clientAttributePattern","isHexaDecimal","isDecimalFloating","addParser","expression","customType","dataParser","segment","addTagMapper","camelCaseKeys","setHoldBack","manifest","serverControl","targetDuration","partTargetDuration","hb","phb","minTargetDuration","minPartDuration","Parser","opts","lineStream","parseStream","mainDefinitions","searchParams","lastProgramDateTime","uris","currentMap","currentUri","hasParts","noop","defaultMediaGroups","currentTimeline","allowCache","discontinuityStarts","dateRanges","iFramePlaylists","segments","lastByterangeEnd","lastPartByterangeEnd","dateRangeTags","preloadHints","timeline","preloadSegment","entry","mediaGroup","rendition","definitions","def","endlist","endList","inf","mediaSequence","discontinuitySequence","METHOD","KEYFORMAT","contentProtection","KEYID","schemeIdUri","keyId","pssh","iv","playlist","media","TYPE","NAME","mediaGroupType","DEFAULT","autoselect","AUTOSELECT","LANGUAGE","language","instreamId","CHARACTERISTICS","characteristics","FORCED","forced","discontinuity","getTime","reduceRight","programDateTime","targetduration","timeOffset","precise","cueOut","cueOutCont","cueIn","skip","warnOnMissingAttributes_","segmentIndex","partIndex","renditionReports","r","canBlockReload","canSkipDateranges","hint","isPart","otherHint","report","required","partInf","partTarget","dateRange","endDate","startDate","plannedDuration","endOnNextYes","endOnNext","class","newDateInSeconds","attribute","dateRangeWithSameId","findIndex","dateRangeToFind","independentSegments","iFramesOnly","requiredCompatibilityversion","contentSteering","define","addDef","QUERYPARAM","VALUE","IMPORT","custom","currentVersion","targetVersion","identifier","missing","chunk","isObject","merge","objects","values","flatten","lists","errors","urlTypeToSegment","indexRange","resolvedUri","ranges","startRange","endRange","MAX_SAFE_INTEGER","parseEndNumber","endNumber","segmentRange","static","timescale","sourceDuration","periodDuration","segmentDuration","dynamic","NOW","clientOffset","availabilityStartTime","periodStart","minimumUpdatePeriod","timeShiftBufferDepth","now","periodStartWC","segmentCount","availableStart","availableEnd","parseByDuration","startNumber","time","toSegments","sectionDuration","segmentsFromBase","initialization","presentationTime","initSegment","sourceURL","segmentTimeInfo","addSidxSegmentsToPlaylist$1","sidx","sidxByteRange","sidxEnd","mediaReferences","references","referenceType","firstOffset","reference","referencedSize","subsegmentDuration","endIndex","SUPPORTED_MEDIA_TYPES","getUniqueTimelineStarts","timelineStarts","keyFunction","sort","getMediaGroupPlaylists","mediaGroupPlaylists","properties","group","label","groupKey","labelKey","mediaProperties","updateMediaSequenceForPlaylist","positionManifestOnTimeline","oldManifest","newManifest","oldPlaylists","newPlaylists","oldPlaylist","findPlaylistWithName","firstNewSegment","oldMatchingSegmentIndex","oldSegment","unshift","updateSequenceNumbers","generateSidxKey","byteRangeToString","mergeDiscontiguousPlaylists","playlistsByBaseUrl","cur","allPlaylists","playlistGroup","mergedPlaylists","addSidxSegmentsToPlaylist","sidxMapping","sidxKey","sidxMatch","addSidxSegmentsToPlaylists","formatVideoPlaylist","SUBTITLES","bandwidth","frameRate","serviceLocation","videoOnly","audioOnly","vttOnly","flattenMediaGroupPlaylists","mediaGroupObject","labelContents","toM3u8","dashPlaylists","locations","previousManifest","eventStream","suggestedPresentationDelay","videoPlaylists","audioPlaylists","vttPlaylists","captions","captionServices","Boolean","VIDEO","isAudioOnly","organizedAudioGroup","mainPlaylist","formattedPlaylists","role","roleLabel","formatted","formatAudioPlaylist","organizeAudioPlaylists","organizedVttGroup","m3u8Attributes","vttPlaylist","formatVttPlaylist","organizeVttPlaylists","playlistTimelineStarts","subs","cc","svcObj","svc","service","channel","aspectRatio","easyReader","getLiveRValue","parseByTimeline","segmentTimeline","sIndex","S","repeat","segmentTime","nextS","identifierPattern","constructTemplateUrl","format","identifierReplacement","segmentsFromTemplate","templateValues","RepresentationID","Bandwidth","mapSegment","parseTemplateInfo","Time","presentationTimeOffset","segmentsFromList","segmentUrls","segmentUrlMap","segmentUrlObject","segmentUrl","mediaRange","SegmentURLToSegmentObject","generateSegments","segmentInfo","segmentAttributes","segmentsFn","template","segmentsInfo","findChildren","getContent","textContent","parseDuration","year","month","day","hour","minute","second","parsers","mediaPresentationDuration","prev","parseDivisionValue","parsedValue","parseFn","keySystemsMap","buildBaseUrls","baseUrlElements","baseUrlElement","initialBaseUrl","resolvedBaseUrl","finalBaseUrl","getSegmentInformation","adaptationSet","segmentTemplate","segmentList","segmentBase","segmentTimelineParentNode","segmentInitializationParentNode","segmentInitialization","toEventStream","eventStreamAttributes","eventAttributes","messageData","contentEncoding","toRepresentations","periodAttributes","periodBaseUrls","periodSegmentInfo","adaptationSetAttributes","adaptationSetBaseUrls","roleAttributes","accessibility","opt","parseCaptionServiceMetadata","labelVal","keySystem","psshNode","representations","adaptationSetSegmentInfo","representation","repBaseUrlElements","repBaseUrls","representationSegmentInfo","inheritBaseUrls","toAdaptationSets","mpdAttributes","mpdBaseUrls","adaptationSets","generateContentSteeringInformation","contentSteeringNodes","eventHandler","infoFromContentSteeringTag","serverURL","queryBeforeStart","stringToMpdXml","manifestString","mpd","parsedManifestInfo","manifestUri","periodNodes","periods","priorPeriod","priorPeriodAttributes","mpdType","getPeriodStart","contentSteeringInfo","representationInfo","inheritAttributes","parseUTCTiming","UTCTimingNode","parseUTCTimingScheme","getUint64","DataView","referenceId","getUint32","earliestPresentationTime","referenceCount","getUint16","startsWithSap","sapType","sapDeltaTime","secondsToVideoTs","secondsToAudioTs","videoTsToSeconds","audioTsToSeconds","audioTsToVideoTs","videoTsToAudioTs","metadataTsToSeconds","ONE_SECOND_IN_TS","seconds","sampleRate","timestamp","timelineStartPts","keepOriginalTimestamps","MAX_UINT32","dv","getBigUint64","videojs","_interopDefaultLegacy","videojs__default","QualityLevel","level","bitrate","enabled","QualityLevelList","EventTarget","levels_","selectedIndex_","addQualityLevel","qualityLevel","getQualityLevelById","removeQualityLevel","removed","allowedEvents_","change","addqualitylevel","removequalitylevel","initPlugin","player","originalPluginFn","qualityLevels","qualityLevelList","disposeHandler","VERSION","registerPlugin","factory","MenuButton","getComponent","Menu","Component","Dom","toTitleCase","ConcreteButton","localize","createItems","createMenu","menu","player_","menuButton","hideThreshold_","options_","titleEl","createEl","className","innerHTML","tabIndex","titleComponent","addItem","items","VideoJsMenuItemClass","ConcreteMenuItem","qualityButton","plugin","selectable","selected","handleClick","setQuality","Plugin","getPlugin","defaults","HlsQualitySelector","ready","addClass","createQualityButton","bindPlayerEvents","onAddQualityLevel","_qualityButton","placementIndex","controlBar","children","concreteButtonInstance","addChild","componentClass","displayCurrentQuality","setButtonInnerText","icon","vjsIconClass","menuButton_","$","removeClass","getQualityMenuItem","levels","levelItems","pixels","_existingItem","levelItem","update","quality","qualityList","_currentQuality","unpressButton","getCurrentQuality","__esModule","enumerable","globalThis","toStringTag","register","Da","create","u","getOwnPropertyDescriptor","getOwnPropertyNames","getPrototypeOf","h","_","hasInstance","w","T","currentTarget","handleEvent","dispatchEvent","E","D","_attributes","dataset","innerText","style","q","removeEventListener","addEventListener","focus","contains","A","initEvent","bubbles","cancelable","preventDefault","O","head","createEvent","P","R","N","I","L","return","C","H","M","performance","timing","navigationStart","round","B","crypto","getRandomValues","U","F","muxId","querySelector","V","W","G","Q","J","K","Y","trace","info","debug","X","doNotTrack","navigator","Z","ReferenceError","te","writable","ae","re","ie","setPrototypeOf","Reflect","oe","se","ue","construct","sham","Proxy","valueOf","de","ce","pe","exists","domContentLoadedEventEnd","he","fe","getOwnPropertySymbols","_e","getOwnPropertyDescriptors","defineProperties","me","ve","ye","be","search","we","loading","trequest","first","tfirst","tload","bytesLoaded","requestStart","responseStart","responseEnd","Te","xe","requestEndDate","requestStartDate","firstByteDate","getMetricsFor","HttpList","getDashMetrics","getHttpRequests","_responseHeaders","requestResponseStart","requestResponseEnd","requestBytesLoaded","requestResponseHeaders","requestMediaDuration","requestHostname","requestUrl","requestId","ke","getQualityFor","getCurrentTrackFor","bitrateList","currentLevel","renditionWidth","renditionHeight","renditionBitrate","Ee","De","getVersion","qe","Ae","_eventEmitterGuid","_listeners","Se","Oe","Pe","_playbackHeartbeatInterval","_playheadShouldBeProgressing","_startPlaybackHeartbeatInterval","_stopPlaybackHeartbeatInterval","player_is_paused","emit","clearInterval","viewer_time","setInterval","playbackHeartbeatTime","viewErrored","errorTranslator","player_error_code","player_error_message","player_error_context","player_error_severity","player_error_business_exception","mux","Ne","_watchTimeTrackerLastCheckedTime","_updateWatchTime","_clearWatchTimeState","Ie","_playbackTimeTrackerLastPlayheadPosition","_lastTime","_isAdPlaying","_callbackUpdatePlaybackTime","_startPlaybackTimeTracking","_stopPlaybackTimeTracking","_updatePlaybackTime","player_playhead_time","Le","_updatePlayheadTime","view_max_playhead_position","currentFragmentPDT","currentFragmentStart","player_program_time","_updateMaxPlayheadPosition","getPlayheadTime","je","Ce","disableRebufferTracking","view_rebuffer_duration","view_watch_time","view_rebuffer_count","view_rebuffer_frequency","view_rebuffer_percentage","one","He","disablePlayheadRebufferTracking","_lastCheckedTime","_lastPlayheadTime","_lastPlayheadTimeUpdatedTime","_checkIfRebuffering","_cleanupRebufferTracker","seekingTracker","isSeeking","adTracker","isAdBreak","playbackHeartbeat","sustainedRebufferThreshold","_rebuffering","_prepareRebufferTrackerState","minimumRebufferDuration","_clearRebufferTrackerState","Me","Be","view_id","view_program_changed","view_time_to_first_frame","_inPrerollPosition","calculateTimeToFirstFrame","view_content_playback_time","watchTimeTracker","player_autoplay_on","video_is_autoplay","NAVIGATION_START","view_aggregate_startup_time","view_start","Ue","_lastPlayheadPosition","_lastPlayerWidth","_lastSourceWidth","_lastPlayerHeight","_lastSourceHeight","view_max_upscale_percentage","view_max_downscale_percentage","player_width","player_height","video_source_width","video_source_height","Fe","view_max_seek_time","Ve","We","Ge","_currentAdRequestNumber","_currentAdResponseNumber","_adRequests","_adResponses","_adHasPlayed","_wouldBeNewAdPlay","_prerollPlayTime","_updateAdData","ad_request_id","inPrerollPosition","view_preroll_requested","findAdRequest","view_preroll_played","view_preroll_request_time","view_startup_preroll_request_time","view_preroll_load_time","view_startup_preroll_load_time","view_preroll_ad_tag_hostname","ad_tag_url","view_preroll_ad_tag_domain","view_preroll_ad_asset_hostname","ad_asset_url","view_preroll_ad_asset_domain","ad_creative_id","ad_id","ad_universal_id","Qe","Je","ze","lastWallClockTime","Ke","Ye","expires","setMilliseconds","getMilliseconds","cookie","toUTCString","domain","secure","getJSON","withConverter","Xe","$e","Ze","entries","et","mux_viewer_id","msn","mux_sample_number","tt","beaconCollectionDomain","beaconDomain","at","connection","mozConnection","webkitConnection","getConnectionFromAPI","nt","ot","ut","st","ad","ag","al","ar","as","au","av","bi","br","bw","by","bz","ca","cb","cd","cg","ck","cl","cn","co","cr","ct","cu","cx","cz","dg","dm","dn","do","dr","dp","du","ec","ed","en","em","er","ep","es","ev","ex","ez","fa","fi","fm","ft","fp","fq","fr","fs","ha","ho","hn","ht","ip","is","la","lb","li","ld","ma","md","mf","mi","ml","mm","mn","mo","mx","nm","no","os","pa","pb","pd","pf","pg","ph","pn","po","ps","py","ra","rd","rf","rm","ro","rp","rq","rs","sa","sd","sk","sm","so","sq","sr","su","sv","sw","sy","ta","tc","tg","th","ti","tl","to","ty","ug","un","up","ur","us","va","vd","vi","vw","vr","wd","wa","wt","maxBeaconSize","maxQueueLength","baseTimeBetweenBeacons","maxPayloadKBSize","_beaconUrl","_eventQueue","_postInFlight","_failureCount","_sendTimeout","_options","queueEvent","_startBeaconSending","flushEvents","_sendBeaconQueue","destroy","destroyed","_clearBeaconQueue","mux_view_message","_createPayload","mt","_roundTripTime","_getNextBeaconTime","transmission_timestamp","rtt_ms","events","Rt","_t","sendBeacon","fetch","keepalive","then","ok","catch","vt","yt","bt","Tt","envKey","previousBeaconData","lastEventTime","rateLimited","eventQueue","disableCookies","respectDoNotTrack","pageLevelData","mux_api_version","API_VERSION","mux_embed","mux_embed_version","viewer_application_name","platform","viewer_application_version","viewer_application_engine","layout","viewer_device_name","product","viewer_device_category","viewer_device_manufacturer","manufacturer","viewer_os_family","family","viewer_os_architecture","architecture","viewer_os_version","viewer_connection_type","page_url","location","viewerData","session_start","sst","session_id","sid","session_expires","sex","env_key","user_id","viewer_user_id","_deduplicateBeaconData","utils","WINDOW_UNLOADING","WINDOW_HIDDEN","objectHasChanged","eventRequiresKey","request_start","request_response_start","request_response_end","request_bytes_loaded","view_min_request_throughput","view_average_request_throughput","view_request_count","view_max_request_latency","view_average_request_latency","view_request_failed_count","view_request_canceled_count","kt","_lastEventTime","_resetView","Et","Dt","qt","DOM_CONTENT_LOADED_EVENT_END","emitTranslator","stateDataTranslator","property_key","getStateData","getAdData","playbackEventDispatcher","player_instance_id","mux_sample_rate","beacon_domain","view_sequence_number","player_sequence_number","_resetVideoData","_resetViewData","_resetErrorData","_updateStateData","_initializeViewData","visibilityState","persisted","_sanitizeData","errorTracker","player_init_time","player_startup_time","PLAYER_TRACKED","page_load_time","longResumeTracker","playheadTime","hlsjs","addHLSJS","dashjs","addDashJS","_destroyed","removeHLSJS","removeDashJS","_heartBeatTimeout","video_source_is_live","player_source_duration","video_source_duration","video_source_url","player_source_url","video_source_domain","video_source_hostname","_restartHeartBeat","secondsToMs","pdt","audioTracks","stats","networkDetails","sessionData","request_event_type","request_type","request_hostname","request_response_headers","request_rendition_lists","Events","MANIFEST_LOADED","fragments","request_current_level","video_holdback","holdBack","video_part_holdback","partHoldBack","video_part_target_duration","video_target_duration","live","player_manifest_newest_program_time","LEVEL_LOADED","AUDIO_TRACK_LOADED","frag","request_id","request_media_duration","request_url","request_video_width","request_video_height","request_labeled_bitrate","FRAG_LOADED","FRAG_CHANGED","fatal","ErrorDetails","MANIFEST_LOAD_ERROR","MANIFEST_LOAD_TIMEOUT","FRAG_LOAD_ERROR","FRAG_LOAD_TIMEOUT","LEVEL_LOAD_ERROR","LEVEL_LOAD_TIMEOUT","AUDIO_TRACK_LOAD_ERROR","AUDIO_TRACK_LOAD_TIMEOUT","SUBTITLE_LOAD_ERROR","SUBTITLE_LOAD_TIMEOUT","KEY_LOAD_ERROR","KEY_LOAD_TIMEOUT","request_error","request_error_code","request_error_text","reason","ERROR","_url","FRAG_LOAD_EMERGENCY_ABORTED","video_source_fps","video_source_bitrate","video_source_rendition_name","video_source_codec","videoCodec","LEVEL_SWITCHED","_stopMuxMonitor","DESTROYING","Hls","getRequests","state","fragmentModel","request","mediaInfo","request_media_start_time","totalBitrate","newQuality","getBitrateInfoListFor","qualityIndex","action","statusText","At","St","Ot","Pt","Nt","WeakMap","It","jt","Ct","Ht","Mt","Bt","Ut","process","processLine","zt","Wt","Ft","Kt","Vt","Jt","Qt","Yt","Xt","safeCall","safeIncrement","getComputedStyle","getPropertyValue","headersStringToObject","cdnHeadersToRequestId","extractHostnameAndDomain","extractHostname","manifestParser","generateShortID","generateUUID","findMediaElement","$t","PLAYER_READY","VIEW_INIT","VIDEO_CHANGE","PLAY","PAUSE","PLAYING","TIME_UPDATE","SEEKING","SEEKED","REBUFFER_START","REBUFFER_END","ENDED","RENDITION_CHANGE","ORIENTATION_CHANGE","AD_REQUEST","AD_RESPONSE","AD_BREAK_START","AD_PLAY","AD_PLAYING","AD_PAUSE","AD_FIRST_QUARTILE","AD_MID_POINT","AD_THIRD_QUARTILE","AD_ENDED","AD_BREAK_END","AD_ERROR","REQUEST_COMPLETED","REQUEST_FAILED","REQUEST_CANCELLED","HEARTBEAT","DESTROY","Zt","ea","loaded","monitor","currentTime","getSource","paused","autoplay","player_preload_on","preload","player_language_code","player_is_fullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","video_poster_url","poster","currentSrc","videoHeight","videoWidth","view_dropped_frame_count","getVideoPlaybackQuality","droppedVideoFrames","getStartDate","seekable","player_live_edge_program_time","automaticErrorTracking","player_software","player_mux_plugin_name","player_mux_plugin_version","deleted","updateData","swapElement","setEmitTranslator","setStateDataTranslator","setGetPlayheadTime","init","destroyMonitor","checkDoNotTrack","aa","ia","na","oa","ua","da","onRequest","beforeRequest","textTracks","tech","IWillNotUseThisInPlugins","vhs","hls","_a","ya","ga","ba","Ta","xa","ka","Ea","IS_IE8","player_software_name","player_software_version","video_source_mime_type","onceux","ima","getAd","getMediaUrl","mediaUrl","adId","creativeId","universalAdIdValue","settings","adTagUrl","google","AdEvent","Type","LOADED","STARTED","COMPLETE","PAUSED","RESUMED","SKIPPED","triggerAdRequest","linearAd","ima3","currentAd","serverUrl","adPlayer","FreeWheelPlugin","Html5","Flash","getTech","sourceHandlers","Vhs","handleSource","el_","hook","vttjs","WebVTT","VTTCue","VTTRegion","cueShim","regionShim","nativeVTTCue","nativeVTTRegion","shim","restore","_objCreate","ParsingError","errorData","parseTimeStamp","computeSeconds","Settings","parseOptions","keyValueDelim","groupDelim","groups","kv","parseCue","cue","regionList","oInput","consumeTimeStamp","Errors","BadTimeStamp","skipWhitespace","startTime","endTime","region","alt","vals","vals0","integer","percent","vertical","lineAlign","snapToLines","align","left","center","middle","right","positionAlign","consumeCueSettings","BadSignature","dflt","defaultKey","TEXTAREA_ELEMENT","TAG_NAME","ruby","DEFAULT_COLOR_CLASS","white","lime","cyan","red","yellow","magenta","blue","black","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","shouldAdd","annotation","rootDiv","tagStack","classes","bgColor","colorName","propName","propValue","strongRTLRanges","isStrongRTLChar","charCode","currentRange","determineBidi","cueDiv","nodeStack","pushNodes","nextTextNode","StyleBox","CueStyleBox","styleOptions","styles","color","backgroundColor","display","writingMode","unicodeBidi","applyStyles","direction","textAlign","font","whiteSpace","textPos","formatStyle","move","box","BoxPosition","lh","offsetHeight","offsetWidth","offsetTop","rects","getClientRects","getBoundingClientRect","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","track","textTrackList","mediaElement","trackList","mode","computeLinePos","axis","step","maxPosition","initialAxis","reverse","calculatedPercentage","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","unit","toMove","overlaps","b2","boxes","getSimpleBoxPosition","StringDecoder","convertCueToDOMTree","cuetext","processCues","cues","overlay","paddedOverlay","margin","hasBeenReset","displayState","shouldCompute","fontSize","decoder","reportOrThrowError","onparsingerror","collectNextLine","parseHeader","ontimestampmap","parseTimestampMap","xy","anchor","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","scroll","onregion","parseRegion","stream","alreadyCollectedLine","hasSubstring","oncue","flush","onflush","directionSetting","alignSetting","findAlignSetting","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","findDirectionSetting","SyntaxError","getCueAsHTML","scrollSetting","isValidPercentValue","_width","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","findScrollSetting","_isOnMobile","browser","IS_IOS","IS_NATIVE_ANDROID","Tech","Youtube","setPoster","setSrc","isApiReady","initYTPlayer","apiReadyQueue","ytPlayer","stopVideo","techId","divWrapper","ytControls","divBlocker","onclick","pause","playerVars","controls","modestbranding","rel","showinfo","loop","autohide","disablekb","srcEndTime","hl","listId","listType","playsinline","srcStartTime","theme","customVars","activeVideoId","videoId","activeList","playerConfig","onReady","onPlayerReady","onPlaybackQualityChange","onPlayerPlaybackQualityChange","onPlaybackRateChange","onPlayerPlaybackRateChange","onStateChange","onPlayerStateChange","onVolumeChange","onPlayerVolumeChange","onError","onPlayerError","enablePrivacyEnhancedMode","host","YT","Player","muted","mute","getAvailablePlaybackRates","featuresPlaybackRate","playerReady_","triggerReady","playOnReady","play","cueOnReady","cueVideoById_","lastState","errorNumber","PlayerState","onSeeked","BUFFERING","loadVideoById_","startSeconds","endSeconds","loadVideoById","cueVideoById","poster_","parseUrl","checkHighResPoster","isReady_","setAutoplay","setLoop","wasPausedBeforeSeek","playVideo","loadPlaylist","pauseVideo","getCurrentTime","setCurrentTime","timeBeforeSeek","seekTo","checkSeekedInPauseInterval","seeking","createTimeRange","getDuration","playbackRate","getPlaybackRate","setPlaybackRate","suggestedRate","ended","volume","getVolume","setVolume","percentAsDecimal","isMuted","setMuted","unMute","buffered","getVideoLoadedFraction","bufferedEnd","load","networkState","getPlayerState","supportsFullScreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","Image","naturalHeight","naturalWidth","apiLoaded","loadScript","firstScriptTag","injectCss","css","styleSheet","cssText","canPlaySource","canPlayType","regex","regPlaylist","registerTech","registerComponent"],"sourceRoot":""}