@openplayerjs/ads 3.0.0-beta.0 → 3.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.js +31 -10
- package/dist/index.js.map +1 -1
- package/dist/openplayer-ads.js +2 -0
- package/dist/openplayer-ads.js.map +1 -0
- package/dist/types/ads.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/openplayer-ads.umd.js +0 -2
- package/dist/openplayer-ads.umd.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openplayer-ads.umd.js","sources":["../../../node_modules/.pnpm/@dailymotion+vast-client@6.4.2/node_modules/@dailymotion/vast-client/dist/vast-client.min.js","../../../node_modules/.pnpm/@dailymotion+vmap@3.3.3/node_modules/@dailymotion/vmap/dist/vmap-js.js","../src/umd.ts","../src/ads.ts","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/conventions.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/dom.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/entities.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/sax.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/dom-parser.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.11/node_modules/@xmldom/xmldom/lib/index.js"],"sourcesContent":["function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:e.id||null,adId:e.adId||null,sequence:e.sequence||null,apiFramework:e.apiFramework||null,universalAdIds:[],creativeExtensions:[]}}const t=[\"ADCATEGORIES\",\"ADCOUNT\",\"ADPLAYHEAD\",\"ADSERVINGID\",\"ADTYPE\",\"APIFRAMEWORKS\",\"APPBUNDLE\",\"ASSETURI\",\"BLOCKEDADCATEGORIES\",\"BREAKMAXADLENGTH\",\"BREAKMAXADS\",\"BREAKMAXDURATION\",\"BREAKMINADLENGTH\",\"BREAKMINDURATION\",\"BREAKPOSITION\",\"CLICKPOS\",\"CLICKTYPE\",\"CLIENTUA\",\"CONTENTID\",\"CONTENTPLAYHEAD\",\"CONTENTURI\",\"DEVICEIP\",\"DEVICEUA\",\"DOMAIN\",\"EXTENSIONS\",\"GDPRCONSENT\",\"IFA\",\"IFATYPE\",\"INVENTORYSTATE\",\"LATLONG\",\"LIMITADTRACKING\",\"MEDIAMIME\",\"MEDIAPLAYHEAD\",\"OMIDPARTNER\",\"PAGEURL\",\"PLACEMENTTYPE\",\"PLAYERCAPABILITIES\",\"PLAYERSIZE\",\"PLAYERSTATE\",\"PODSEQUENCE\",\"REGULATIONS\",\"SERVERSIDE\",\"SERVERUA\",\"TRANSACTIONID\",\"UNIVERSALADID\",\"VASTVERSIONS\",\"VERIFICATIONVENDORS\"];function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=[],n=s(e);!t.ERRORCODE||r.isCustomCode||/^[0-9]{3}$/.test(t.ERRORCODE)||(t.ERRORCODE=900),t.CACHEBUSTING=d(Math.round(1e8*Math.random())),t.TIMESTAMP=(new Date).toISOString(),t.RANDOM=t.random=t.CACHEBUSTING;for(const e in t)t[e]=c(t[e]);for(const e in n){const r=n[e];\"string\"==typeof r&&a.push(i(r,t))}return a}function i(e,r){const i=(e=a(e,r)).match(/[^[\\]]+(?=])/g);if(!i)return e;let s=i.filter((e=>t.indexOf(e)>-1));return 0===s.length?e:(s=s.reduce(((e,t)=>(e[t]=-1,e)),{}),a(e,s))}function a(e,t){let r=e;for(const e in t){const i=t[e];r=r.replace(new RegExp(\"(?:\\\\[|%%)(\".concat(e,\")(?:\\\\]|%%)\"),\"g\"),i)}return r}function s(e){return Array.isArray(e)?e.map((e=>e&&e.hasOwnProperty(\"url\")?e.url:e)):e}function n(e){return/^(https?:\\/\\/|\\/\\/)/.test(e)}function o(e,t){for(let r=0;r<t.length;r++)if(l(t[r],e))return!0;return!1}function l(e,t){if(e&&t){const r=Object.getOwnPropertyNames(e),i=Object.getOwnPropertyNames(t);return r.length===i.length&&(e.id===t.id&&e.url===t.url)}return!1}function c(e){return encodeURIComponent(e).replace(/[!'()*]/g,(e=>\"%\".concat(e.charCodeAt(0).toString(16))))}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return e.toString().padStart(t,\"0\")}const u={track:function(e,t,i){r(e,t,i).forEach((e=>{if(\"undefined\"!=typeof window&&null!==window){(new Image).src=e}}))},resolveURLTemplates:r,extractURLsFromTemplates:s,filterUrlTemplates:function(e){return e.reduce(((e,t)=>{const r=t.url||t;return n(r)?e.validUrls.push(r):e.invalidUrls.push(r),e}),{validUrls:[],invalidUrls:[]})},containsTemplateObject:o,isTemplateObjectEqual:l,encodeURIComponentRFC3986:c,replaceUrlMacros:i,isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},flatten:function e(t){return t.reduce(((t,r)=>t.concat(Array.isArray(r)?e(r):r)),[])},joinArrayOfUniqueTemplateObjs:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const r=Array.isArray(e)?e:[],i=Array.isArray(t)?t:[];return r.concat(i).reduce(((e,t)=>(o(t,e)||e.push(t),e)),[])},isValidTimeValue:function(e){return Number.isFinite(e)&&e>=-2},addLeadingZeros:d,isValidUrl:n,isBrowserEnvironment:function(){return\"undefined\"!=typeof window},formatMacrosValues:function(e){return\"object\"!=typeof e?e:JSON.stringify(e)}};function h(e){return[\"true\",\"TRUE\",\"True\",\"1\"].includes(e)}function p(e){if(null==e)return-1;if(u.isNumeric(e))return parseInt(e);const t=e.split(\":\");if(3!==t.length)return-1;const r=t[2].split(\".\");let i=parseInt(r[0]);2===r.length&&(i+=parseFloat(\"0.\".concat(r[1])));const a=parseInt(60*t[1]),s=parseInt(60*t[0]*60);return isNaN(s)||isNaN(a)||isNaN(i)||a>3600||i>60?-1:s+a+i}const m={childByName:function(e,t){return Array.from(e.childNodes).find((e=>e.nodeName===t))},childrenByName:function(e,t){return Array.from(e.childNodes).filter((e=>e.nodeName===t))},resolveVastAdTagURI:function(e,t){if(!t)return e;if(e.startsWith(\"//\")){const{protocol:t}=location;return\"\".concat(t).concat(e)}if(!e.includes(\"://\")){const r=t.slice(0,t.lastIndexOf(\"/\"));return\"\".concat(r,\"/\").concat(e)}return e},parseBoolean:h,parseNodeText:function(e){return e&&(e.textContent||e.text||\"\").trim()},copyNodeAttribute:function(e,t,r){const i=t.getAttribute(e);i&&r.setAttribute(e,i)},parseAttributes:function(e){return Array.from(e.attributes).reduce(((e,t)=>(e[t.nodeName]=t.nodeValue,e)),{})},parseDuration:p,getStandAloneAds:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).filter((e=>!parseInt(e.sequence,10)))},getSortedAdPods:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).filter((e=>parseInt(e.sequence,10))).sort(((e,t)=>e.sequence-t.sequence))},assignAttributes:function(e,t){e&&Array.from(e).forEach((e=>{let{nodeName:r,nodeValue:i}=e;if(r&&i&&t.hasOwnProperty(r)){let e=i;\"boolean\"==typeof t[r]&&(e=h(e)),t[r]=e}}))},mergeWrapperAdData:function(e,t){var r;e.errorURLTemplates=t.errorURLTemplates.concat(e.errorURLTemplates),e.impressionURLTemplates=t.impressionURLTemplates.concat(e.impressionURLTemplates),e.extensions=t.extensions.concat(e.extensions),t.viewableImpression.length>0&&(e.viewableImpression=[...e.viewableImpression,...t.viewableImpression]),e.followAdditionalWrappers=t.followAdditionalWrappers,e.allowMultipleAds=t.allowMultipleAds,e.fallbackOnNoAd=t.fallbackOnNoAd;const i=(t.creatives||[]).filter((e=>e&&\"companion\"===e.type)),a=i.reduce(((e,t)=>((t.variations||[]).forEach((t=>{(t.companionClickTrackingURLTemplates||[]).forEach((t=>{u.containsTemplateObject(t,e)||e.push(t)}))})),e)),[]);e.creatives=i.concat(e.creatives);const s=t.videoClickTrackingURLTemplates&&t.videoClickTrackingURLTemplates.length,n=t.videoCustomClickURLTemplates&&t.videoCustomClickURLTemplates.length;if(e.creatives.forEach((e=>{if(t.trackingEvents&&t.trackingEvents[e.type])for(const r in t.trackingEvents[e.type]){const i=t.trackingEvents[e.type][r];Array.isArray(e.trackingEvents[r])||(e.trackingEvents[r]=[]),e.trackingEvents[r]=e.trackingEvents[r].concat(i)}\"linear\"===e.type&&(s&&(e.videoClickTrackingURLTemplates=e.videoClickTrackingURLTemplates.concat(t.videoClickTrackingURLTemplates)),n&&(e.videoCustomClickURLTemplates=e.videoCustomClickURLTemplates.concat(t.videoCustomClickURLTemplates)),!t.videoClickThroughURLTemplate||null!==e.videoClickThroughURLTemplate&&void 0!==e.videoClickThroughURLTemplate||(e.videoClickThroughURLTemplate=t.videoClickThroughURLTemplate)),\"companion\"===e.type&&a.length&&(e.variations||[]).forEach((e=>{e.companionClickTrackingURLTemplates=u.joinArrayOfUniqueTemplateObjs(e.companionClickTrackingURLTemplates,a)}))})),t.adVerifications&&(e.adVerifications=e.adVerifications.concat(t.adVerifications)),t.blockedAdCategories&&(e.blockedAdCategories=e.blockedAdCategories.concat(t.blockedAdCategories)),null!==(r=t.creatives)&&void 0!==r&&r.length){const r=t.creatives.filter((e=>{var t;return(null===(t=e.icons)||void 0===t?void 0:t.length)&&!e.mediaFiles.length}));r.length&&(e.creatives=e.creatives.concat(r))}}};function g(t,r){const i=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:r,adId:i,sequence:a,apiFramework:s}=e(t);return{id:r,adId:i,sequence:a,apiFramework:s,type:\"companion\",required:null,variations:[]}}(r);return i.required=t.getAttribute(\"required\")||null,i.variations=m.childrenByName(t,\"Companion\").map((e=>{const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:e.id||null,adType:\"companionAd\",width:e.width||0,height:e.height||0,assetWidth:e.assetWidth||null,assetHeight:e.assetHeight||null,expandedWidth:e.expandedWidth||null,expandedHeight:e.expandedHeight||null,apiFramework:e.apiFramework||null,adSlotId:e.adSlotId||null,pxratio:e.pxratio||\"1\",renderingMode:e.renderingMode||\"default\",staticResources:[],htmlResources:[],iframeResources:[],adParameters:null,altText:null,companionClickThroughURLTemplate:null,companionClickTrackingURLTemplates:[],trackingEvents:{}}}(m.parseAttributes(e));t.htmlResources=m.childrenByName(e,\"HTMLResource\").reduce(((e,t)=>{const r=m.parseNodeText(t);return r?e.concat(r):e}),[]),t.iframeResources=m.childrenByName(e,\"IFrameResource\").reduce(((e,t)=>{const r=m.parseNodeText(t);return r?e.concat(r):e}),[]),t.staticResources=m.childrenByName(e,\"StaticResource\").reduce(((e,t)=>{const r=m.parseNodeText(t);return r?e.concat({url:r,creativeType:t.getAttribute(\"creativeType\")||null}):e}),[]),t.altText=m.parseNodeText(m.childByName(e,\"AltText\"))||null;const r=m.childByName(e,\"TrackingEvents\");r&&m.childrenByName(r,\"Tracking\").forEach((e=>{const r=e.getAttribute(\"event\"),i=m.parseNodeText(e);r&&i&&(Array.isArray(t.trackingEvents[r])||(t.trackingEvents[r]=[]),t.trackingEvents[r].push(i))})),t.companionClickTrackingURLTemplates=m.childrenByName(e,\"CompanionClickTracking\").map((e=>({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)}))),t.companionClickThroughURLTemplate=m.parseNodeText(m.childByName(e,\"CompanionClickThrough\"))||null;const i=m.childByName(e,\"AdParameters\");return i&&(t.adParameters={value:m.parseNodeText(i),xmlEncoded:i.getAttribute(\"xmlEncoded\")||null}),t})),i}function v(t,r){let i;const a=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:r,adId:i,sequence:a,apiFramework:s}=e(t);return{id:r,adId:i,sequence:a,apiFramework:s,type:\"linear\",duration:0,skipDelay:null,mediaFiles:[],mezzanine:null,interactiveCreativeFile:null,closedCaptionFiles:[],videoClickThroughURLTemplate:null,videoClickTrackingURLTemplates:[],videoCustomClickURLTemplates:[],adParameters:null,icons:[],trackingEvents:{}}}(r);a.duration=m.parseDuration(m.parseNodeText(m.childByName(t,\"Duration\")));const s=t.getAttribute(\"skipoffset\");if(null==s)a.skipDelay=null;else if(\"%\"===s.charAt(s.length-1)&&-1!==a.duration){const e=parseInt(s,10);a.skipDelay=a.duration*(e/100)}else a.skipDelay=m.parseDuration(s);const n=m.childByName(t,\"VideoClicks\");if(n){const e=m.childByName(n,\"ClickThrough\");a.videoClickThroughURLTemplate=e?{id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)}:null,m.childrenByName(n,\"ClickTracking\").forEach((e=>{a.videoClickTrackingURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})})),m.childrenByName(n,\"CustomClick\").forEach((e=>{a.videoCustomClickURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})}))}const o=m.childByName(t,\"AdParameters\");o&&(a.adParameters={value:m.parseNodeText(o),xmlEncoded:o.getAttribute(\"xmlEncoded\")||null}),m.childrenByName(t,\"TrackingEvents\").forEach((e=>{m.childrenByName(e,\"Tracking\").forEach((e=>{let t=e.getAttribute(\"event\");const r=m.parseNodeText(e);if(t&&r){if(\"progress\"===t){if(i=e.getAttribute(\"offset\"),!i)return;t=\"%\"===i.charAt(i.length-1)?\"progress-\".concat(i):\"progress-\".concat(m.parseDuration(i))}Array.isArray(a.trackingEvents[t])||(a.trackingEvents[t]=[]),a.trackingEvents[t].push(r)}}))})),m.childrenByName(t,\"MediaFiles\").forEach((e=>{m.childrenByName(e,\"MediaFile\").forEach((e=>{a.mediaFiles.push(function(e){const t={id:null,fileURL:null,fileSize:0,deliveryType:\"progressive\",mimeType:null,mediaType:null,codec:null,bitrate:0,minBitrate:0,maxBitrate:0,width:0,height:0,apiFramework:null,scalable:null,maintainAspectRatio:null};t.id=e.getAttribute(\"id\"),t.fileURL=m.parseNodeText(e),t.deliveryType=e.getAttribute(\"delivery\"),t.codec=e.getAttribute(\"codec\"),t.mimeType=e.getAttribute(\"type\"),t.mediaType=e.getAttribute(\"mediaType\")||\"2D\",t.apiFramework=e.getAttribute(\"apiFramework\"),t.fileSize=parseInt(e.getAttribute(\"fileSize\")||0),t.bitrate=parseInt(e.getAttribute(\"bitrate\")||0),t.minBitrate=parseInt(e.getAttribute(\"minBitrate\")||0),t.maxBitrate=parseInt(e.getAttribute(\"maxBitrate\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.height=parseInt(e.getAttribute(\"height\")||0);const r=e.getAttribute(\"scalable\");r&&\"string\"==typeof r&&(t.scalable=m.parseBoolean(r));const i=e.getAttribute(\"maintainAspectRatio\");i&&\"string\"==typeof i&&(t.maintainAspectRatio=m.parseBoolean(i));return t}(e))}));const t=m.childByName(e,\"InteractiveCreativeFile\");t&&(a.interactiveCreativeFile=function(e){const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:e.type||null,apiFramework:e.apiFramework||null,variableDuration:m.parseBoolean(e.variableDuration),fileURL:null}}(m.parseAttributes(e));return t.fileURL=m.parseNodeText(e),t}(t));const r=m.childByName(e,\"ClosedCaptionFiles\");r&&m.childrenByName(r,\"ClosedCaptionFile\").forEach((e=>{const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:e.type||null,language:e.language||null,fileURL:null}}(m.parseAttributes(e));t.fileURL=m.parseNodeText(e),a.closedCaptionFiles.push(t)}));const i=m.childByName(e,\"Mezzanine\"),s=function(e,t){const r={};let i=!1;return t.forEach((t=>{e&&e.getAttribute(t)?r[t]=e.getAttribute(t):i=!0})),i?null:r}(i,[\"delivery\",\"type\",\"width\",\"height\"]);if(s){const e={id:null,fileURL:null,delivery:null,codec:null,type:null,width:0,height:0,fileSize:0,mediaType:\"2D\"};e.id=i.getAttribute(\"id\"),e.fileURL=m.parseNodeText(i),e.delivery=s.delivery,e.codec=i.getAttribute(\"codec\"),e.type=s.type,e.width=parseInt(s.width,10),e.height=parseInt(s.height,10),e.fileSize=parseInt(i.getAttribute(\"fileSize\"),10),e.mediaType=i.getAttribute(\"mediaType\")||\"2D\",a.mezzanine=e}}));const l=m.childByName(t,\"Icons\");return l&&m.childrenByName(l,\"Icon\").forEach((e=>{a.icons.push(function(e){const t={program:null,height:0,width:0,xPosition:0,yPosition:0,apiFramework:null,offset:null,duration:0,type:null,staticResource:null,htmlResource:null,iframeResource:null,pxratio:\"1\",iconClickThroughURLTemplate:null,iconClickTrackingURLTemplates:[],iconViewTrackingURLTemplate:null,iconClickFallbackImages:[],altText:null,hoverText:null};t.program=e.getAttribute(\"program\"),t.height=parseInt(e.getAttribute(\"height\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.xPosition=function(e){if(-1!==[\"left\",\"right\"].indexOf(e))return e;return parseInt(e||0)}(e.getAttribute(\"xPosition\")),t.yPosition=function(e){if(-1!==[\"top\",\"bottom\"].indexOf(e))return e;return parseInt(e||0)}(e.getAttribute(\"yPosition\")),t.apiFramework=e.getAttribute(\"apiFramework\"),t.pxratio=e.getAttribute(\"pxratio\")||\"1\",t.offset=m.parseDuration(e.getAttribute(\"offset\")),t.duration=m.parseDuration(e.getAttribute(\"duration\")),t.altText=e.getAttribute(\"altText\"),t.hoverText=e.getAttribute(\"hoverText\"),m.childrenByName(e,\"HTMLResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=m.parseNodeText(e)})),m.childrenByName(e,\"IFrameResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=m.parseNodeText(e)})),m.childrenByName(e,\"StaticResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=m.parseNodeText(e)}));const r=m.childByName(e,\"IconClicks\");if(r){t.iconClickThroughURLTemplate=m.parseNodeText(m.childByName(r,\"IconClickThrough\")),m.childrenByName(r,\"IconClickTracking\").forEach((e=>{t.iconClickTrackingURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})}));const e=m.childByName(r,\"IconClickFallbackImages\");e&&m.childrenByName(e,\"IconClickFallbackImage\").forEach((e=>{t.iconClickFallbackImages.push({url:m.parseNodeText(e)||null,width:e.getAttribute(\"width\")||null,height:e.getAttribute(\"height\")||null})}))}return t.iconViewTrackingURLTemplate=m.parseNodeText(m.childByName(e,\"IconViewTracking\")),t}(e))})),a}function f(t,r){const i=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{id:r,adId:i,sequence:a,apiFramework:s}=e(t);return{id:r,adId:i,sequence:a,apiFramework:s,type:\"nonlinear\",variations:[],trackingEvents:{}}}(r);return m.childrenByName(t,\"TrackingEvents\").forEach((e=>{let t,r;m.childrenByName(e,\"Tracking\").forEach((e=>{t=e.getAttribute(\"event\"),r=m.parseNodeText(e),t&&r&&(Array.isArray(i.trackingEvents[t])||(i.trackingEvents[t]=[]),i.trackingEvents[t].push(r))}))})),m.childrenByName(t,\"NonLinear\").forEach((e=>{const t={id:null,width:0,height:0,expandedWidth:0,expandedHeight:0,scalable:!0,maintainAspectRatio:!0,minSuggestedDuration:0,apiFramework:\"static\",adType:\"nonLinearAd\",type:null,staticResource:null,htmlResource:null,iframeResource:null,nonlinearClickThroughURLTemplate:null,nonlinearClickTrackingURLTemplates:[],adParameters:null};t.id=e.getAttribute(\"id\")||null,t.width=e.getAttribute(\"width\"),t.height=e.getAttribute(\"height\"),t.expandedWidth=e.getAttribute(\"expandedWidth\"),t.expandedHeight=e.getAttribute(\"expandedHeight\"),t.scalable=m.parseBoolean(e.getAttribute(\"scalable\")),t.maintainAspectRatio=m.parseBoolean(e.getAttribute(\"maintainAspectRatio\")),t.minSuggestedDuration=m.parseDuration(e.getAttribute(\"minSuggestedDuration\")),t.apiFramework=e.getAttribute(\"apiFramework\"),m.childrenByName(e,\"HTMLResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=m.parseNodeText(e)})),m.childrenByName(e,\"IFrameResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=m.parseNodeText(e)})),m.childrenByName(e,\"StaticResource\").forEach((e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=m.parseNodeText(e)}));const r=m.childByName(e,\"AdParameters\");r&&(t.adParameters={value:m.parseNodeText(r),xmlEncoded:r.getAttribute(\"xmlEncoded\")||null}),t.nonlinearClickThroughURLTemplate=m.parseNodeText(m.childByName(e,\"NonLinearClickThrough\")),m.childrenByName(e,\"NonLinearClickTracking\").forEach((e=>{t.nonlinearClickTrackingURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)})})),i.variations.push(t)})),i}function T(e){const t=[];return e.forEach((e=>{const r=A(e);r&&t.push(r)})),t}function A(e){if(\"#comment\"===e.nodeName)return null;const t={name:null,value:null,attributes:{},children:[]},r=e.attributes,i=e.childNodes;if(t.name=e.nodeName,e.attributes)for(const e in r)if(r.hasOwnProperty(e)){const i=r[e];i.nodeName&&i.nodeValue&&(t.attributes[i.nodeName]=i.nodeValue)}for(const e in i)if(i.hasOwnProperty(e)){const r=A(i[e]);r&&t.children.push(r)}if(0===t.children.length||1===t.children.length&&[\"#cdata-section\",\"#text\"].indexOf(t.children[0].name)>=0){const r=m.parseNodeText(e);\"\"!==r&&(t.value=r),t.children=[]}return null===(a=t).value&&0===Object.keys(a.attributes).length&&0===a.children.length?null:t;var a}function R(e){return e.getAttribute(\"AdID\")||e.getAttribute(\"adID\")||e.getAttribute(\"adId\")||null}const k={Wrapper:{subElements:[\"VASTAdTagURI\",\"Impression\"]},BlockedAdCategories:{attributes:[\"authority\"]},InLine:{subElements:[\"AdSystem\",\"AdTitle\",\"Impression\",\"AdServingId\",\"Creatives\"]},Category:{attributes:[\"authority\"]},Pricing:{attributes:[\"model\",\"currency\"]},Verification:{oneOfinLineResources:[\"JavaScriptResource\",\"ExecutableResource\"],attributes:[\"vendor\"]},UniversalAdId:{attributes:[\"idRegistry\"]},JavaScriptResource:{attributes:[\"apiFramework\",\"browserOptional\"]},ExecutableResource:{attributes:[\"apiFramework\",\"type\"]},Tracking:{attributes:[\"event\"]},Creatives:{subElements:[\"Creative\"]},Creative:{subElements:[\"UniversalAdId\"]},Linear:{subElements:[\"MediaFiles\",\"Duration\"]},MediaFiles:{subElements:[\"MediaFile\"]},MediaFile:{attributes:[\"delivery\",\"type\",\"width\",\"height\"]},Mezzanine:{attributes:[\"delivery\",\"type\",\"width\",\"height\"]},NonLinear:{oneOfinLineResources:[\"StaticResource\",\"IFrameResource\",\"HTMLResource\"],attributes:[\"width\",\"height\"]},Companion:{oneOfinLineResources:[\"StaticResource\",\"IFrameResource\",\"HTMLResource\"],attributes:[\"width\",\"height\"]},StaticResource:{attributes:[\"creativeType\"]},Icons:{subElements:[\"Icon\"]},Icon:{oneOfinLineResources:[\"StaticResource\",\"IFrameResource\",\"HTMLResource\"]}};function y(e,t){if(!k[e.nodeName]||!k[e.nodeName].attributes)return;const r=k[e.nodeName].attributes.filter((t=>!e.getAttribute(t)));r.length>0&&N({name:e.nodeName,parentName:e.parentNode.nodeName,attributes:r},t)}function E(e,t,r){const i=k[e.nodeName],a=!r&&\"Wrapper\"!==e.nodeName;if(!i||a)return;if(i.subElements){const r=i.subElements.filter((t=>!m.childByName(e,t)));r.length>0&&N({name:e.nodeName,parentName:e.parentNode.nodeName,subElements:r},t)}if(!r||!i.oneOfinLineResources)return;i.oneOfinLineResources.some((t=>m.childByName(e,t)))||N({name:e.nodeName,parentName:e.parentNode.nodeName,oneOfResources:i.oneOfinLineResources},t)}function b(e){return e.children&&0!==e.children.length}function N(e,t){let{name:r,parentName:i,attributes:a,subElements:s,oneOfResources:n}=e,o=\"Element '\".concat(r,\"'\");o+=a?\" missing required attribute(s) '\".concat(a.join(\", \"),\"' \"):s?\" missing required sub element(s) '\".concat(s.join(\", \"),\"' \"):n?\" must provide one of the following '\".concat(n.join(\", \"),\"' \"):\" is empty\",t(\"VAST-warning\",{message:o,parentElement:i,specVersion:4.1})}const w={verifyRequiredValues:function e(t,r,i){if(t&&t.nodeName)if(\"InLine\"===t.nodeName&&(i=!0),y(t,r),b(t)){E(t,r,i);for(let a=0;a<t.children.length;a++)e(t.children[a],r,i)}else 0===m.parseNodeText(t).length&&N({name:t.nodeName,parentName:t.parentNode.nodeName},r)},hasSubElements:b,emitMissingValueWarning:N,verifyRequiredAttributes:y,verifyRequiredSubElements:E};function L(e,t){let{allowMultipleAds:r,followAdditionalWrappers:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=Array.from(e.childNodes).filter((e=>{const t=e.nodeName.toLowerCase();return\"inline\"===t||!1!==i&&\"wrapper\"===t}));for(const i of a){if(m.copyNodeAttribute(\"id\",e,i),m.copyNodeAttribute(\"sequence\",e,i),m.copyNodeAttribute(\"adType\",e,i),\"Wrapper\"===i.nodeName)return{ad:I(i,t),type:\"WRAPPER\"};if(\"InLine\"===i.nodeName)return{ad:C(i,t,{allowMultipleAds:r}),type:\"INLINE\"};const a=i.nodeName.toLowerCase();t(\"VAST-warning\",{message:\"<\".concat(i.nodeName,\"inline\"===a?\"> must be written <InLine>\":\"> must be written <Wrapper>\"),wrongNode:i})}}function C(e,t){let{allowMultipleAds:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return!1===r&&e.getAttribute(\"sequence\")?null:U(e,t)}function U(e,t){let r=[];t&&w.verifyRequiredValues(e,t);const i=Array.from(e.childNodes),a=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:e.id||null,sequence:e.sequence||null,adType:e.adType||null,adServingId:null,categories:[],expires:null,viewableImpression:[],system:null,title:null,description:null,advertiser:null,pricing:null,survey:null,errorURLTemplates:[],impressionURLTemplates:[],creatives:[],extensions:[],adVerifications:[],blockedAdCategories:[],followAdditionalWrappers:!0,allowMultipleAds:!1,fallbackOnNoAd:null}}(m.parseAttributes(e));return i.forEach((e=>{switch(e.nodeName){case\"Error\":a.errorURLTemplates.push(m.parseNodeText(e));break;case\"Impression\":a.impressionURLTemplates.push({id:e.getAttribute(\"id\")||null,url:m.parseNodeText(e)});break;case\"Creatives\":a.creatives=function(e){const t=[];return e.forEach((e=>{const r={id:e.getAttribute(\"id\")||null,adId:R(e),sequence:e.getAttribute(\"sequence\")||null,apiFramework:e.getAttribute(\"apiFramework\")||null},i=[];let a;m.childrenByName(e,\"UniversalAdId\").forEach((e=>{const t={idRegistry:e.getAttribute(\"idRegistry\")||\"unknown\",value:m.parseNodeText(e)};i.push(t)}));const s=m.childByName(e,\"CreativeExtensions\");s&&(a=T(m.childrenByName(s,\"CreativeExtension\")));for(const s in e.childNodes){const n=e.childNodes[s];let o;switch(n.nodeName){case\"Linear\":o=v(n,r);break;case\"NonLinearAds\":o=f(n,r);break;case\"CompanionAds\":o=g(n,r)}o&&(i&&(o.universalAdIds=i),a&&(o.creativeExtensions=a),t.push(o))}})),t}(m.childrenByName(e,\"Creative\"));break;case\"Extensions\":{const t=m.childrenByName(e,\"Extension\");a.extensions=T(t),a.adVerifications.length||(r=function(e){let t=null,r=[];e.some((e=>t=m.childByName(e,\"AdVerifications\"))),t&&(r=x(m.childrenByName(t,\"Verification\")));return r}(t));break}case\"AdVerifications\":a.adVerifications=x(m.childrenByName(e,\"Verification\"));break;case\"AdSystem\":a.system={value:m.parseNodeText(e),version:e.getAttribute(\"version\")||null};break;case\"AdTitle\":a.title=m.parseNodeText(e);break;case\"AdServingId\":a.adServingId=m.parseNodeText(e);break;case\"Category\":a.categories.push({authority:e.getAttribute(\"authority\")||null,value:m.parseNodeText(e)});break;case\"Expires\":a.expires=parseInt(m.parseNodeText(e),10);break;case\"ViewableImpression\":a.viewableImpression.push(function(e){const t=(e,t)=>{const r=m.parseNodeText(t);return r&&e.push(r),e};return{id:e.getAttribute(\"id\")||null,viewable:m.childrenByName(e,\"Viewable\").reduce(t,[]),notViewable:m.childrenByName(e,\"NotViewable\").reduce(t,[]),viewUndetermined:m.childrenByName(e,\"ViewUndetermined\").reduce(t,[])}}(e));break;case\"Description\":a.description=m.parseNodeText(e);break;case\"Advertiser\":a.advertiser={id:e.getAttribute(\"id\")||null,value:m.parseNodeText(e)};break;case\"Pricing\":a.pricing={value:m.parseNodeText(e),model:e.getAttribute(\"model\")||null,currency:e.getAttribute(\"currency\")||null};break;case\"Survey\":a.survey={value:m.parseNodeText(e),type:e.getAttribute(\"type\")||null};break;case\"BlockedAdCategories\":a.blockedAdCategories.push({authority:e.getAttribute(\"authority\")||null,value:m.parseNodeText(e)})}})),r.length&&(a.adVerifications=a.adVerifications.concat(r)),a}function I(e,t){const r=U(e,t),i=e.getAttribute(\"followAdditionalWrappers\"),a=e.getAttribute(\"allowMultipleAds\"),s=e.getAttribute(\"fallbackOnNoAd\");r.followAdditionalWrappers=!i||m.parseBoolean(i),r.allowMultipleAds=!!a&&m.parseBoolean(a),r.fallbackOnNoAd=s?m.parseBoolean(s):null;let n=m.childByName(e,\"VASTAdTagURI\");if(n?r.nextWrapperURL=m.parseNodeText(n):(n=m.childByName(e,\"VASTAdTagURL\"),n&&(r.nextWrapperURL=m.parseNodeText(m.childByName(n,\"URL\")))),r.creatives.forEach((e=>{if([\"linear\",\"nonlinear\"].includes(e.type)){if(e.trackingEvents){r.trackingEvents||(r.trackingEvents={}),r.trackingEvents[e.type]||(r.trackingEvents[e.type]={});for(const t in e.trackingEvents){const i=e.trackingEvents[t];Array.isArray(r.trackingEvents[e.type][t])||(r.trackingEvents[e.type][t]=[]),i.forEach((i=>{r.trackingEvents[e.type][t].push(i)}))}}e.videoClickTrackingURLTemplates&&(Array.isArray(r.videoClickTrackingURLTemplates)||(r.videoClickTrackingURLTemplates=[]),e.videoClickTrackingURLTemplates.forEach((e=>{r.videoClickTrackingURLTemplates.push(e)}))),e.videoClickThroughURLTemplate&&(r.videoClickThroughURLTemplate=e.videoClickThroughURLTemplate),e.videoCustomClickURLTemplates&&(Array.isArray(r.videoCustomClickURLTemplates)||(r.videoCustomClickURLTemplates=[]),e.videoCustomClickURLTemplates.forEach((e=>{r.videoCustomClickURLTemplates.push(e)})))}})),r.nextWrapperURL)return r}function x(e){const t=[];return e.forEach((e=>{const r={resource:null,vendor:null,browserOptional:!1,apiFramework:null,type:null,parameters:null,trackingEvents:{}},i=Array.from(e.childNodes);m.assignAttributes(e.attributes,r),i.forEach((e=>{let{nodeName:t,textContent:i,attributes:a}=e;switch(t){case\"JavaScriptResource\":case\"ExecutableResource\":r.resource=i.trim(),m.assignAttributes(a,r);break;case\"VerificationParameters\":r.parameters=i.trim()}}));const a=m.childByName(e,\"TrackingEvents\");a&&m.childrenByName(a,\"Tracking\").forEach((e=>{const t=e.getAttribute(\"event\"),i=m.parseNodeText(e);t&&i&&(Array.isArray(r.trackingEvents[t])||(r.trackingEvents[t]=[]),r.trackingEvents[t].push(i))})),t.push(r)})),t}class S{constructor(){this._handlers=[]}on(e,t){if(\"function\"!=typeof t)throw new TypeError(\"The handler argument must be of type Function. Received type \".concat(typeof t));if(!e)throw new TypeError(\"The event argument must be of type String. Received type \".concat(typeof e));return this._handlers.push({event:e,handler:t}),this}once(e,t){return this.on(e,function(e,t,r){const i={fired:!1,wrapFn:void 0};function a(){i.fired||(e.off(t,i.wrapFn),i.fired=!0,r.bind(e)(...arguments))}return i.wrapFn=a,a}(this,e,t))}off(e,t){return this._handlers=this._handlers.filter((r=>r.event!==e||r.handler!==t)),this}emit(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];let a=!1;return this._handlers.forEach((t=>{\"*\"===t.event&&(a=!0,t.handler(e,...r)),t.event===e&&(a=!0,t.handler(...r))})),a}removeAllListeners(e){return e?(this._handlers=this._handlers.filter((t=>t.event!==e)),this):(this._handlers=[],this)}listenerCount(e){return this._handlers.filter((t=>t.event===e)).length}listeners(e){return this._handlers.reduce(((t,r)=>(r.event===e&&t.push(r.handler),t)),[])}eventNames(){return this._handlers.map((e=>e.event))}}let V=0,D=0;const O=(e,t)=>{if(!e||!t||e<=0||t<=0)return;D=(D*V+8*e/t)/++V},F={ERRORCODE:900,extensions:[]},P=\"VAST response version not supported\";class B extends S{constructor(){let{fetcher:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),this.maxWrapperDepth=null,this.rootErrorURLTemplates=[],this.errorURLTemplates=[],this.remainingAds=[],this.parsingOptions={},this.fetcher=e||null,this.keepFailedAdPod=!1}trackVastError(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];this.emit(\"VAST-error\",Object.assign({},F,t,...i)),u.track(e,t)}getErrorURLTemplates(){return this.rootErrorURLTemplates.concat(this.errorURLTemplates)}getEstimatedBitrate(){return D}initParsingStatus(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.maxWrapperDepth=e.wrapperLimit||10,this.parsingOptions={allowMultipleAds:e.allowMultipleAds},this.keepFailedAdPod=e.keepFailedAdPod||!1,this.rootURL=\"\",this.resetParsingStatus(),O(e.byteLength,e.requestDuration)}resetParsingStatus(){this.errorURLTemplates=[],this.rootErrorURLTemplates=[],this.vastVersion=null}getRemainingAds(e){if(0===this.remainingAds.length)return Promise.reject(new Error(\"No more ads are available for the given VAST\"));const t=e?this.remainingAds:[this.remainingAds.shift()];return this.errorURLTemplates=[],this.resolveAds(t,{wrapperDepth:0,url:this.rootURL}).then((e=>this.buildVASTResponse(e)))}parseVAST(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.initParsingStatus(t),t.isRootVAST=!0,this.parse(e,t).then((e=>this.buildVASTResponse(e)))}buildVASTResponse(e){const t=function(e){let{ads:t,errorURLTemplates:r,version:i}=e;return{ads:t||[],errorURLTemplates:r||[],version:i||null}}({ads:e,errorURLTemplates:this.getErrorURLTemplates(),version:this.vastVersion});return this.completeWrapperResolving(t),t}parseVastXml(e,t){let{isRootVAST:r=!1,url:i=null,wrapperDepth:a=0,allowMultipleAds:s,followAdditionalWrappers:n}=t;if(!e||!e.documentElement||\"VAST\"!==e.documentElement.nodeName){var o;this.emit(\"VAST-ad-parsed\",{type:\"ERROR\",url:i,wrapperDepth:a});const t=\"VideoAdServingTemplate\"===(null==e||null===(o=e.documentElement)||void 0===o?void 0:o.nodeName);throw new Error(t?P:\"Invalid VAST XMLDocument\")}const l=[],c=e.documentElement.childNodes,d=e.documentElement.getAttribute(\"version\");r&&d&&(this.vastVersion=d);for(const e in c){const t=c[e];if(\"Error\"===t.nodeName){const e=m.parseNodeText(t);r?this.rootErrorURLTemplates.push(e):this.errorURLTemplates.push(e)}else if(\"Ad\"===t.nodeName){if(this.vastVersion&&parseFloat(this.vastVersion)<3)s=!0;else if(!1===s&&l.length>1)break;const e=L(t,this.emit.bind(this),{allowMultipleAds:s,followAdditionalWrappers:n});e.ad?(l.push(e.ad),this.emit(\"VAST-ad-parsed\",{type:e.type,url:i,wrapperDepth:a,adIndex:l.length-1,vastVersion:d})):this.trackVastError(this.getErrorURLTemplates(),{ERRORCODE:101})}}return l}parse(e){let{url:t=null,resolveAll:r=!0,wrapperSequence:i=null,previousUrl:a=null,wrapperDepth:s=0,isRootVAST:n=!1,followAdditionalWrappers:o,allowMultipleAds:l}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=[];this.vastVersion&&parseFloat(this.vastVersion)<3&&n&&(l=!0);try{c=this.parseVastXml(e,{isRootVAST:n,url:t,wrapperDepth:s,allowMultipleAds:l,followAdditionalWrappers:o})}catch(e){return Promise.reject(e)}if(1===c.length&&null!=i&&(c[0].sequence=i),!1===r){const e=m.getSortedAdPods(c),t=m.getStandAloneAds(c);e.length?c=e:t.length&&(c=[t.shift()]),this.remainingAds=t}return this.resolveAds(c,{wrapperDepth:s,previousUrl:a,url:t})}resolveAds(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{wrapperDepth:t,previousUrl:r,url:i}=arguments.length>1?arguments[1]:void 0;const a=[];return r=i,e.forEach((e=>{const i=this.resolveWrappers(e,t,r);a.push(i)})),Promise.all(a).then((e=>u.flatten(e)))}resolveWrappers(e,t,r){const i={...e};return new Promise((e=>{var a;if(t++,!i.nextWrapperURL)return delete i.nextWrapperURL,e(i);if(!this.fetcher)return i.VASTAdTagURI=i.nextWrapperURL,delete i.nextWrapperURL,e(i);if(t>=this.maxWrapperDepth)return i.errorCode=302,delete i.nextWrapperURL,e(i);i.nextWrapperURL=m.resolveVastAdTagURI(i.nextWrapperURL,r);const s=null!==(a=this.parsingOptions.allowMultipleAds)&&void 0!==a?a:i.allowMultipleAds,n=i.sequence;this.fetcher.fetchVAST({url:i.nextWrapperURL,emitter:this.emit.bind(this),maxWrapperDepth:this.maxWrapperDepth}).then((a=>this.parse(a,{url:i.nextWrapperURL,previousUrl:r,wrapperSequence:n,wrapperDepth:t,followAdditionalWrappers:i.followAdditionalWrappers,allowMultipleAds:s}).then((t=>{if(delete i.nextWrapperURL,0===t.length)return i.creatives=[],e(i);t.forEach((e=>{e&&m.mergeWrapperAdData(e,i)})),e(t)})))).catch((t=>{i.errorCode=t.message===P?102:301,i.errorMessage=t.message,e(i)}))}))}completeWrapperResolving(e){if(0===e.ads.length)this.trackVastError(e.errorURLTemplates,{ERRORCODE:303});else for(let t=e.ads.length-1;t>=0;t--){const r=e.ads[t],i=!r.creatives.some((e=>{var t,r;return(null===(t=e.mediaFiles)||void 0===t?void 0:t.length)>0||(null===(r=e.variations)||void 0===r?void 0:r.length)>0}));!r.errorCode&&!i||r.VASTAdTagURI||(this.trackVastError(r.errorURLTemplates.concat(e.errorURLTemplates),{ERRORCODE:r.errorCode||303},{ERRORMESSAGE:r.errorMessage||\"\"},{extensions:r.extensions},{system:r.system}),this.keepFailedAdPod&&r.sequence?r.hasFailed=!0:e.ads.splice(t,1))}}}let M=null;const W={data:{},length:0,getItem(e){return this.data[e]},setItem(e,t){this.data[e]=t,this.length=Object.keys(this.data).length},removeItem(e){delete this.data[e],this.length=Object.keys(this.data).length},clear(){this.data={},this.length=0}};class j{constructor(){this.storage=this.initStorage()}initStorage(){if(M)return M;try{M=\"undefined\"!=typeof window&&null!==window?window.localStorage||window.sessionStorage:null}catch(e){M=null}return M&&!this.isStorageDisabled(M)||(M=W,M.clear()),M}isStorageDisabled(e){const t=\"__VASTStorage__\";try{if(e.setItem(t,t),e.getItem(t)!==t)return e.removeItem(t),!0}catch(e){return!0}return e.removeItem(t),!1}getItem(e){return this.storage.getItem(e)}setItem(e,t){return this.storage.setItem(e,t)}removeItem(e){return this.storage.removeItem(e)}clear(){return this.storage.clear()}}const q=12e4;const K={get:async function(e,t){try{const r=new AbortController,i=setTimeout((()=>{throw r.abort(),new Error(\"URLHandler: Request timed out after \".concat(t.timeout||q,\" ms (408)\"))}),t.timeout||q),a=await fetch(e,{...t,signal:r.signal,credentials:t.withCredentials?\"include\":\"omit\"}).finally((()=>{clearTimeout(i)})),s=function(e){return u.isBrowserEnvironment()&&\"https:\"===window.location.protocol&&e.url.includes(\"http://\")?\"URLHandler: Cannot go from HTTPS to HTTP.\":200===e.status&&e.ok?null:\"URLHandler: \".concat(e.statusText,\" (\").concat(e.status,\")\")}(a);return s?{error:new Error(s),statusCode:a.status}:async function(e){const t=await e.text();let r;r=u.isBrowserEnvironment()?new DOMParser:new((await import(\"@xmldom/xmldom\")).DOMParser);return{xml:r.parseFromString(t,\"text/xml\"),details:{byteLength:t.length,statusCode:e.status,rawXml:t}}}(a)}catch(e){return{error:e,statusCode:\"AbortError\"===e.name?408:null}}}};class H{constructor(){this.URLTemplateFilters=[]}setOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.urlHandler=e.urlHandler||e.urlhandler||K,this.fetchingOptions={...e.fetchOptions,timeout:e.timeout||q,withCredentials:Boolean(e.withCredentials)}}addURLTemplateFilter(e){\"function\"==typeof e&&this.URLTemplateFilters.push(e)}removeLastURLTemplateFilter(){this.URLTemplateFilters.pop()}countURLTemplateFilters(){return this.URLTemplateFilters.length}clearURLTemplateFilters(){this.URLTemplateFilters=[]}async fetchVAST(e){var t;let{url:r,maxWrapperDepth:i,emitter:a,wrapperDepth:s=0,previousUrl:n=null,wrapperAd:o=null}=e;const l=Date.now();this.URLTemplateFilters.forEach((e=>{r=e(r)})),a(\"VAST-resolving\",{url:r,previousUrl:n,wrapperDepth:s,maxWrapperDepth:i,timeout:this.fetchingOptions.timeout,wrapperAd:o});const c=await this.urlHandler.get(r,this.fetchingOptions),d=Math.round(Date.now()-l);if(a(\"VAST-resolved\",{url:r,previousUrl:n,wrapperDepth:s,error:(null==c?void 0:c.error)||null,duration:d,statusCode:(null==c?void 0:c.statusCode)||null,...null==c?void 0:c.details}),O(null==c||null===(t=c.details)||void 0===t?void 0:t.byteLength,d),c.error)throw new Error(c.error);return c.xml}}class _{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new j;this.cappingFreeLunch=e,this.cappingMinimumTimeInterval=t,this.fetcher=new H,this.vastParser=new B({fetcher:this.fetcher}),this.storage=r,void 0===this.lastSuccessfulAd&&(this.lastSuccessfulAd=0),void 0===this.totalCalls&&(this.totalCalls=0),void 0===this.totalCallsTimeout&&(this.totalCallsTimeout=0)}addURLTemplateFilter(e){this.fetcher.addURLTemplateFilter(e)}removeLastURLTemplateFilter(){this.fetcher.removeLastURLTemplateFilter()}countURLTemplateFilters(){return this.fetcher.countURLTemplateFilters()}clearURLTemplateFilters(){this.fetcher.clearURLTemplateFilters()}getParser(){return this.vastParser}get lastSuccessfulAd(){return this.storage.getItem(\"vast-client-last-successful-ad\")}set lastSuccessfulAd(e){this.storage.setItem(\"vast-client-last-successful-ad\",e)}get totalCalls(){return this.storage.getItem(\"vast-client-total-calls\")}set totalCalls(e){this.storage.setItem(\"vast-client-total-calls\",e)}get totalCallsTimeout(){return this.storage.getItem(\"vast-client-total-calls-timeout\")}set totalCallsTimeout(e){this.storage.setItem(\"vast-client-total-calls-timeout\",e)}hasRemainingAds(){return this.vastParser.remainingAds.length>0}getNextAds(e){return this.vastParser.getRemainingAds(e)}parseVAST(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.fetcher.setOptions(t),this.vastParser.parseVAST(e,t)}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=Date.now();return t.hasOwnProperty(\"resolveAll\")||(t.resolveAll=!1),this.totalCallsTimeout<r?(this.totalCalls=1,this.totalCallsTimeout=r+36e5):this.totalCalls++,new Promise(((i,a)=>{if(this.cappingFreeLunch>=this.totalCalls)return a(new Error(\"VAST call canceled – FreeLunch capping not reached yet \".concat(this.totalCalls,\"/\").concat(this.cappingFreeLunch)));const s=r-this.lastSuccessfulAd;if(s<0)this.lastSuccessfulAd=0;else if(s<this.cappingMinimumTimeInterval)return a(new Error(\"VAST call canceled – (\".concat(this.cappingMinimumTimeInterval,\")ms minimum interval reached\")));this.vastParser.initParsingStatus(t),this.fetcher.setOptions(t),this.vastParser.rootURL=e,this.fetcher.fetchVAST({url:e,emitter:this.vastParser.emit.bind(this.vastParser),maxWrapperDepth:this.vastParser.maxWrapperDepth}).then((r=>(t.previousUrl=e,t.isRootVAST=!0,t.url=e,this.vastParser.parse(r,t).then((e=>{const t=this.vastParser.buildVASTResponse(e);i(t)}))))).catch((e=>a(e)))}))}}class z extends S{constructor(e,t,r){var i;let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];super(),this.ad=t,this.creative=r,this.variation=a,this.muted=s,this.impressed=!1,this.skippable=!1,this.trackingEvents={},this.trackedProgressEvents=[],this.lastPercentage=0,this._alreadyTriggeredQuartiles={},this.emitAlwaysEvents=[\"creativeView\",\"start\",\"firstQuartile\",\"midpoint\",\"thirdQuartile\",\"complete\",\"resume\",\"pause\",\"rewind\",\"skip\",\"closeLinear\",\"close\"];for(const e in this.creative.trackingEvents){const t=this.creative.trackingEvents[e];this.trackingEvents[e]=t.slice(0)}this.viewableImpressionTrackers=(null===(i=this.ad.viewableImpression)||void 0===i?void 0:i.reduce(((e,t)=>(e.notViewable.push(...t.notViewable),e.viewUndetermined.push(...t.viewUndetermined),e.viewable.push(...t.viewable),e)),{notViewable:[],viewUndetermined:[],viewable:[]}))||{},Object.entries(this.viewableImpressionTrackers).forEach((e=>{let[t,r]=e;r.length&&(this.trackingEvents[t]=r)})),!function(e){return\"linear\"===e.type}(this.creative)?this._initVariationTracking():this._initLinearTracking(),e&&this.on(\"start\",(()=>{e.lastSuccessfulAd=Date.now()}))}_initLinearTracking(){this.linear=!0,this.skipDelay=this.creative.skipDelay,this.setDuration(this.creative.duration),this.clickThroughURLTemplate=this.creative.videoClickThroughURLTemplate,this.clickTrackingURLTemplates=this.creative.videoClickTrackingURLTemplates}_initVariationTracking(){if(this.linear=!1,this.skipDelay=-1,this.variation){for(const e in this.variation.trackingEvents){const t=this.variation.trackingEvents[e];this.trackingEvents[e]?this.trackingEvents[e]=this.trackingEvents[e].concat(t.slice(0)):this.trackingEvents[e]=t.slice(0)}\"nonLinearAd\"===this.variation.adType?(this.clickThroughURLTemplate=this.variation.nonlinearClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.nonlinearClickTrackingURLTemplates,this.setDuration(this.variation.minSuggestedDuration)):function(e){return\"companionAd\"===e.adType}(this.variation)&&(this.clickThroughURLTemplate=this.variation.companionClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.companionClickTrackingURLTemplates)}}setDuration(e){u.isValidTimeValue(e)?(this.assetDuration=e,this.quartiles={firstQuartile:Math.round(25*this.assetDuration)/100,midpoint:Math.round(50*this.assetDuration)/100,thirdQuartile:Math.round(75*this.assetDuration)/100}):this.emit(\"TRACKER-error\",{message:\"the duration provided is not valid. duration: \".concat(e)})}setProgress(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!u.isValidTimeValue(e)||\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"One given setProgress parameter has the wrong type. progress: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))});const i=this.skipDelay||-1;if(-1===i||this.skippable||(i>e?this.emit(\"skip-countdown\",i-e):(this.skippable=!0,this.emit(\"skip-countdown\",0))),this.assetDuration>0){const i=Math.round(e/this.assetDuration*100),a=[];if(e>0){a.push(\"start\");for(let e=this.lastPercentage;e<i;e++)a.push(\"progress-\".concat(e+1,\"%\"));a.push(\"progress-\".concat(e));for(const t in this.quartiles)this.isQuartileReached(t,this.quartiles[t],e)&&(a.push(t),this._alreadyTriggeredQuartiles[t]=!0);this.lastPercentage=i}a.forEach((e=>{this.track(e,{macros:t,once:r})})),e<this.progress&&(this.track(\"rewind\",{macros:t}),this.trackedProgressEvents&&this.trackedProgressEvents.splice(0))}this.progress=e}isQuartileReached(e,t,r){let i=!1;return t<=r&&!this._alreadyTriggeredQuartiles[e]&&(i=!0),i}setMuted(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.muted!==e&&this.track(e?\"mute\":\"unmute\",{macros:t}),this.muted=e):this.emit(\"TRACKER-error\",{message:\"One given setMuted parameter has the wrong type. muted: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setPaused(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.paused!==e&&this.track(e?\"pause\":\"resume\",{macros:t}),this.paused=e):this.emit(\"TRACKER-error\",{message:\"One given setPaused parameter has the wrong type. paused: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setFullscreen(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.fullscreen!==e&&this.track(e?\"fullscreen\":\"exitFullscreen\",{macros:t}),this.fullscreen=e):this.emit(\"TRACKER-error\",{message:\"One given setFullScreen parameter has the wrong type. fullscreen: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setExpand(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"boolean\"==typeof e&&\"object\"==typeof t?(this.expanded!==e&&(this.track(e?\"expand\":\"collapse\",{macros:t}),this.track(e?\"playerExpand\":\"playerCollapse\",{macros:t})),this.expanded=e):this.emit(\"TRACKER-error\",{message:\"One given setExpand parameter has the wrong type. expanded: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}setSkipDelay(e){u.isValidTimeValue(e)?this.skipDelay=e:this.emit(\"TRACKER-error\",{message:\"setSkipDelay parameter does not have a valid value. duration: \".concat(e)})}trackImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.impressed||(this.impressed=!0,this.trackURLs(this.ad.impressionURLTemplates,e),this.track(\"creativeView\",{macros:e})):this.emit(\"TRACKER-error\",{message:\"trackImpression parameter has the wrong type. macros: \".concat(e)})}trackViewableImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e?this.track(\"viewable\",{macros:e,once:t}):this.emit(\"TRACKER-error\",{message:\"trackViewableImpression given macros has the wrong type. macros: \".concat(e)})}trackNotViewableImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e?this.track(\"notViewable\",{macros:e,once:t}):this.emit(\"TRACKER-error\",{message:\"trackNotViewableImpression given macros has the wrong type. macros: \".concat(e)})}trackUndeterminedImpression(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e?this.track(\"viewUndetermined\",{macros:e,once:t}):this.emit(\"TRACKER-error\",{message:\"trackUndeterminedImpression given macros has the wrong type. macros: \".concat(e)})}error(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"object\"==typeof e&&\"boolean\"==typeof t?this.trackURLs(this.ad.errorURLTemplates,e,{isCustomCode:t}):this.emit(\"TRACKER-error\",{message:\"One given error parameter has the wrong type. macros: \".concat(u.formatMacrosValues(e),\", isCustomCode: \").concat(t)})}errorWithCode(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];\"string\"==typeof e&&\"boolean\"==typeof t?(this.error({ERRORCODE:e},t),console.log(\"The method errorWithCode is deprecated, please use vast tracker error method instead\")):this.emit(\"TRACKER-error\",{message:\"One given errorWithCode parameter has the wrong type. errorCode: \".concat(e,\", isCustomCode: \").concat(t)})}complete(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"complete\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"complete given macros has the wrong type. macros: \".concat(e)})}notUsed(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?(this.track(\"notUsed\",{macros:e}),this.trackingEvents=[]):this.emit(\"TRACKER-error\",{message:\"notUsed given macros has the wrong type. macros: \".concat(e)})}otherAdInteraction(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"otherAdInteraction\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"otherAdInteraction given macros has the wrong type. macros: \".concat(e)})}acceptInvitation(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"acceptInvitation\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"acceptInvitation given macros has the wrong type. macros: \".concat(e)})}adExpand(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"adExpand\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"adExpand given macros has the wrong type. macros: \".concat(e)})}adCollapse(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"adCollapse\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"adCollapse given macros has the wrong type. macros: \".concat(e)})}minimize(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"minimize\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"minimize given macros has the wrong type. macros: \".concat(e)})}verificationNotExecuted(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"!=typeof e||\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"One given verificationNotExecuted parameter has to wrong type. vendor: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))});if(!this.ad||!this.ad.adVerifications||!this.ad.adVerifications.length)throw new Error(\"No adVerifications provided\");if(!e)throw new Error(\"No vendor provided, unable to find associated verificationNotExecuted\");const r=this.ad.adVerifications.find((t=>t.vendor===e));if(!r)throw new Error(\"No associated verification element found for vendor: \".concat(e));const i=r.trackingEvents;if(i&&i.verificationNotExecuted){const e=i.verificationNotExecuted;this.trackURLs(e,t),this.emit(\"verificationNotExecuted\",{trackingURLTemplates:e})}}overlayViewDuration(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"string\"==typeof e&&\"object\"==typeof t?(t.ADPLAYHEAD=e,this.track(\"overlayViewDuration\",{macros:t})):this.emit(\"TRACKER-error\",{message:\"One given overlayViewDuration parameters has the wrong type. formattedDuration: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))})}close(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(this.linear?\"closeLinear\":\"close\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"close given macros has the wrong type. macros: \".concat(e)})}skip(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"skip\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"skip given macros has the wrong type. macros: \".concat(e)})}load(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};\"object\"==typeof e?this.track(\"loaded\",{macros:e}):this.emit(\"TRACKER-error\",{message:\"load given macros has the wrong type. macros: \".concat(e)})}click(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null!==e&&\"string\"!=typeof e||\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"One given click parameter has the wrong type. fallbackClickThroughURL: \".concat(e,\", macros: \").concat(u.formatMacrosValues(t))});this.clickTrackingURLTemplates&&this.clickTrackingURLTemplates.length&&this.trackURLs(this.clickTrackingURLTemplates,t);const r=this.clickThroughURLTemplate||e,i={...t};if(r){this.progress&&(i.ADPLAYHEAD=this.progressFormatted());const e=u.resolveURLTemplates([r],i)[0];this.emit(\"clickthrough\",e)}}trackProgressEvents(e,t,r){const i=parseFloat(e.split(\"-\")[1]);Object.entries(this.trackingEvents).filter((e=>{let[t]=e;return t.startsWith(\"progress-\")})).map((e=>{let[t,r]=e;return{name:t,time:parseFloat(t.split(\"-\")[1]),urls:r}})).filter((e=>{let{time:t}=e;return t<=i&&t>this.progress})).forEach((e=>{let{name:i,urls:a}=e;!r&&this.trackedProgressEvents.includes(i)||(this.emit(i,{trackingURLTemplates:a}),this.trackURLs(a,t),r?delete this.trackingEvents[i]:this.trackedProgressEvents.push(i))}))}track(e){let{macros:t={},once:r=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"object\"!=typeof t)return void this.emit(\"TRACKER-error\",{message:\"track given macros has the wrong type. macros: \".concat(t)});\"closeLinear\"===e&&!this.trackingEvents[e]&&this.trackingEvents.close&&(e=\"close\"),e.startsWith(\"progress-\")&&!e.endsWith(\"%\")&&this.trackProgressEvents(e,t,r);const i=this.trackingEvents[e],a=this.emitAlwaysEvents.indexOf(e)>-1;i?(this.emit(e,{trackingURLTemplates:i}),this.trackURLs(i,t)):a&&this.emit(e,null),r&&(delete this.trackingEvents[e],a&&this.emitAlwaysEvents.splice(this.emitAlwaysEvents.indexOf(e),1))}trackURLs(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{validUrls:a,invalidUrls:s}=u.filterUrlTemplates(e);s.length&&this.emit(\"TRACKER-error\",{message:\"Provided urls are malformed. url: \".concat(s)});const n={...r};this.linear&&(this.creative&&this.creative.mediaFiles&&this.creative.mediaFiles[0]&&this.creative.mediaFiles[0].fileURL&&(n.ASSETURI=this.creative.mediaFiles[0].fileURL),this.progress&&(n.ADPLAYHEAD=this.progressFormatted())),null!==(t=this.creative)&&void 0!==t&&null!==(t=t.universalAdIds)&&void 0!==t&&t.length&&(n.UNIVERSALADID=this.creative.universalAdIds.map((e=>e.idRegistry.concat(\" \",e.value))).join(\",\")),this.ad&&(this.ad.sequence&&(n.PODSEQUENCE=this.ad.sequence),this.ad.adType&&(n.ADTYPE=this.ad.adType),this.ad.adServingId&&(n.ADSERVINGID=this.ad.adServingId),this.ad.categories&&this.ad.categories.length&&(n.ADCATEGORIES=this.ad.categories.map((e=>e.value)).join(\",\")),this.ad.blockedAdCategories&&this.ad.blockedAdCategories.length&&(n.BLOCKEDADCATEGORIES=this.ad.blockedAdCategories.map((e=>e.value)).join(\",\"))),u.track(a,n,i)}convertToTimecode(e){if(!u.isValidTimeValue(e))return\"\";const t=1e3*e,r=Math.floor(t/36e5),i=Math.floor(t/6e4%60),a=Math.floor(t/1e3%60),s=Math.floor(t%1e3);return\"\".concat(u.addLeadingZeros(r,2),\":\").concat(u.addLeadingZeros(i,2),\":\").concat(u.addLeadingZeros(a,2),\".\").concat(u.addLeadingZeros(s,3))}progressFormatted(){return this.convertToTimecode(this.progress)}}export{_ as VASTClient,B as VASTParser,z as VASTTracker,p as parseDuration};\n","function t(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function e(t,e){for(var a=0;a<e.length;a++){var n=e[a];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),t}var n=a((function e(a){for(var n in t(this,e),this.id=a.getAttribute(\"id\"),this.allowMultipleAds=a.getAttribute(\"allowMultipleAds\"),this.followRedirects=a.getAttribute(\"followRedirects\"),this.vastAdData=null,this.adTagURI=null,this.customData=null,a.childNodes){var i=a.childNodes[n];switch(i.localName){case\"AdTagURI\":this.adTagURI={templateType:i.getAttribute(\"templateType\"),uri:(i.textContent||i.text||\"\").trim()};break;case\"VASTAdData\":for(this.vastAdData=i.firstChild;this.vastAdData&&1!==this.vastAdData.nodeType;)this.vastAdData=this.vastAdData.nextSibling;break;case\"CustomAdData\":this.customData=i}}}));function i(t,e){var a=[];for(var n in t.childNodes){var i=t.childNodes[n];i.nodeName!==e&&e!==\"vmap:\".concat(i.nodeName)&&i.nodeName!==\"vmap:\".concat(e)||a.push(i)}return a}function r(t){var e={attributes:{},children:{},value:{}};e.value=function(t){if(!t||!t.childNodes)return{};var e=t.childNodes,a=[];for(var n in e){var i=e[n];\"#cdata-section\"===i.nodeName&&a.push(i)}if(a&&a.length>0)try{return JSON.parse(a[0].data)}catch(t){}var r=\"\";for(var s in e){var o=e[s];switch(o.nodeName){case\"#text\":r+=o.textContent.trim();break;case\"#cdata-section\":r+=o.data}}return r}(t);var a=t.attributes;if(a)for(var n in a){var i=a[n];i.nodeName&&void 0!==i.nodeValue&&null!==i.nodeValue&&(e.attributes[i.nodeName]=i.nodeValue)}var s=t.childNodes;if(s)for(var o in s){var c=s[o];c.nodeName&&\"#\"!==c.nodeName.substring(0,1)&&(e.children[c.nodeName]=r(c))}return e}var s=function(){function e(a){for(var s in t(this,e),this.timeOffset=a.getAttribute(\"timeOffset\"),this.breakType=a.getAttribute(\"breakType\"),this.breakId=a.getAttribute(\"breakId\"),this.repeatAfter=a.getAttribute(\"repeatAfter\"),this.adSource=null,this.trackingEvents=[],this.extensions=[],a.childNodes){var o=a.childNodes[s];switch(o.localName){case\"AdSource\":this.adSource=new n(o);break;case\"TrackingEvents\":for(var c in o.childNodes){var d=o.childNodes[c];\"Tracking\"===d.localName&&this.trackingEvents.push({event:d.getAttribute(\"event\"),uri:(d.textContent||d.text||\"\").trim()})}break;case\"Extensions\":this.extensions=i(o,\"Extension\").map((function(t){return r(t)}))}}}return a(e,[{key:\"track\",value:function(t,e){for(var a in this.trackingEvents){var n=this.trackingEvents[a];if(n.event===t){var i=n.uri;\"error\"===n.event&&(i=i.replace(\"[ERRORCODE]\",e)),this.tracker(i)}}}},{key:\"tracker\",value:function(t){\"undefined\"!=typeof window&&null!==window&&((new Image).src=t)}}]),e}(),o=a((function e(a){if(t(this,e),!a||!a.documentElement||\"VMAP\"!==a.documentElement.localName)throw new Error(\"Not a VMAP document\");for(var n in this.version=a.documentElement.getAttribute(\"version\"),this.adBreaks=[],this.extensions=[],a.documentElement.childNodes){var o=a.documentElement.childNodes[n];switch(o.localName){case\"AdBreak\":this.adBreaks.push(new s(o));break;case\"Extensions\":this.extensions=i(o,\"Extension\").map((function(t){return r(t)}))}}}));export{o as default};\n",null,null,"'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<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} 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<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\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\");\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<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\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<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\n\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif (list._inc !== inc) {\n\t\tvar ls = list._refresh(list._node);\n\t\t__set__(list,'length',ls.length);\n\t\tif (!list.$$length || ls.length < list.$$length) {\n\t\t\tfor (var i = ls.length; i in list; i++) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\t\t\tdelete list[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i] || null;\n}\n\n_extends(LiveNodeList,NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow new DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || 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\t// Update ownerDocument for each node being inserted\n\t\tvar targetDoc = parent.ownerDocument || parent;\n\t\t_updateOwnerDocument(newFirst, targetDoc);\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 * Recursively updates the ownerDocument property for a node and all its descendants\n * @param {Node} node\n * @param {Document} newOwnerDocument\n * @private\n */\nfunction _updateOwnerDocument(node, newOwnerDocument) {\n\tif (node.ownerDocument === newOwnerDocument) {\n\t\treturn;\n\t}\n\t\n\tnode.ownerDocument = newOwnerDocument;\n\t\n\t// Update attributes if this is an element\n\tif (node.nodeType === ELEMENT_NODE && node.attributes) {\n\t\tfor (var i = 0; i < node.attributes.length; i++) {\n\t\t\tvar attr = node.attributes.item(i);\n\t\t\tif (attr) {\n\t\t\t\tattr.ownerDocument = newOwnerDocument;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t// Recursively update child nodes\n\tvar child = node.firstChild;\n\twhile (child) {\n\t\t_updateOwnerDocument(child, newOwnerDocument);\n\t\tchild = child.nextSibling;\n\t}\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\t\n\t// Update ownerDocument for the new child and all its descendants\n\tvar targetDoc = parentNode.ownerDocument || parentNode;\n\t_updateOwnerDocument(newChild, targetDoc);\n\t\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\t_updateOwnerDocument(newChild, 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\t_updateOwnerDocument(newChild, 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<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\n\t\t// add namespace for current node\n\t\tif (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\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('</',prefixedNodeName,'>');\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( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC ', pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push(' ', sysid);\n\t\t\t}\n\t\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( \"<?\",node.target,\" \",node.data,\"?>\");\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<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor (var n in node) {\n\t\tif (Object.prototype.hasOwnProperty.call(node, n)) {\n\t\t\tvar v = node[n];\n\t\t\tif (typeof v != \"object\") {\n\t\t\t\tif (v != node2[n]) {\n\t\t\t\t\tnode2[n] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DocumentType = DocumentType;\n\texports.DOMException = DOMException;\n\texports.DOMImplementation = DOMImplementation;\n\texports.Element = Element;\n\texports.Node = Node;\n\texports.NodeList = NodeList;\n\texports.XMLSerializer = XMLSerializer;\n//}\n","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\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 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<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\ttagName = tagName.replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\n\t \t\tend = tagStart+1+tagName.length;\n\t\t\t\t}\n\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\n\t\t if(endIgnoreCaseMach){\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\t\t\tif(localNSMap){\n\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\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\tif(!endMatch){\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName ); // No known test case\n\t\t\t\t\t}\n\t\t }else{\n\t\t \tparseStack.push(config)\n\t\t }\n\n\t\t\t\tend++;\n\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\tcase '?':// <?...?>\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 '!':// <!doctype,<![CDATA,<!--\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\t\t\t\t//elStartEnd\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\n\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(locator && len){\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\n\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator2\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t}else{\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (NAMESPACE.isHTML(el.uri) && !el.closed) {\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t} else {\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}\n\t\t}catch(e){\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: '+e)\n\t\t\tend = -1;\n\t\t}\n\t\tif(end>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('</'+tagName+'>',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('</'+tagName+'>')\n\t\tif(pos<elStartEnd){//忘记闭合\n\t\t\tpos = source.lastIndexOf('</'+tagName)\n\t\t}\n\t\tcloseMap[tagName] =pos\n\t}\n\treturn pos<elStartEnd;\n\t//}\n}\n\nfunction _copy (source, target) {\n\tfor (var n in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, n)) {\n\t\t\ttarget[n] = source[n];\n\t\t}\n\t}\n}\n\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA()\n\t\t\treturn end+3;\n\t\t}\n\t\t//<!DOCTYPE\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)\n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = false;\n\t\t\tvar sysid = false;\n\t\t\tif(len>3){\n\t\t\t\tif(/^public$/i.test(matchs[2][0])){\n\t\t\t\t\tpubid = matchs[3][0];\n\t\t\t\t\tsysid = len>4 && matchs[4][0];\n\t\t\t\t}else if(/^system$/i.test(matchs[2][0])){\n\t\t\t\t\tsysid = matchs[3][0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name, pubid, sysid);\n\t\t\tdomBuilder.endDTD();\n\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction ElementAttributes(){\n\tthis.attributeNames = {}\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\taddValue:function(qName, value, offset) {\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetLocator:function(i){return this[i].locator},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n//\t,getIndex:function(uri, localName)){\n//\t\tif(localName){\n//\n//\t\t}else{\n//\t\t\tvar qName = uri\n//\t\t}\n//\t},\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n//\tgetType:function(uri,localName){}\n//\tgetType:function(i){},\n}\n\n\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;\nexports.ParseError = ParseError;\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<string, string>} [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 dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n"],"names":["e","arguments","length","id","adId","sequence","apiFramework","universalAdIds","creativeExtensions","t","r","a","n","s","ERRORCODE","isCustomCode","test","CACHEBUSTING","d","Math","round","random","TIMESTAMP","Date","toISOString","RANDOM","c","push","i","match","filter","indexOf","reduce","replace","RegExp","concat","Array","isArray","map","hasOwnProperty","url","o","l","Object","getOwnPropertyNames","encodeURIComponent","charCodeAt","toString","padStart","u","track","forEach","window","Image","src","resolveURLTemplates","extractURLsFromTemplates","filterUrlTemplates","validUrls","invalidUrls","containsTemplateObject","isTemplateObjectEqual","encodeURIComponentRFC3986","replaceUrlMacros","isNumeric","isNaN","parseFloat","isFinite","flatten","joinArrayOfUniqueTemplateObjs","isValidTimeValue","Number","addLeadingZeros","isValidUrl","isBrowserEnvironment","formatMacrosValues","JSON","stringify","h","includes","m","childByName","from","childNodes","find","nodeName","childrenByName","resolveVastAdTagURI","startsWith","protocol","location","slice","lastIndexOf","parseBoolean","parseNodeText","textContent","text","trim","copyNodeAttribute","getAttribute","setAttribute","parseAttributes","attributes","nodeValue","parseDuration","parseInt","split","getStandAloneAds","getSortedAdPods","sort","assignAttributes","mergeWrapperAdData","errorURLTemplates","impressionURLTemplates","extensions","viewableImpression","followAdditionalWrappers","allowMultipleAds","fallbackOnNoAd","creatives","type","variations","companionClickTrackingURLTemplates","videoClickTrackingURLTemplates","videoCustomClickURLTemplates","trackingEvents","videoClickThroughURLTemplate","adVerifications","blockedAdCategories","icons","mediaFiles","g","required","adType","width","height","assetWidth","assetHeight","expandedWidth","expandedHeight","adSlotId","pxratio","renderingMode","staticResources","htmlResources","iframeResources","adParameters","altText","companionClickThroughURLTemplate","creativeType","value","xmlEncoded","v","duration","skipDelay","mezzanine","interactiveCreativeFile","closedCaptionFiles","charAt","fileURL","fileSize","deliveryType","mimeType","mediaType","codec","bitrate","minBitrate","maxBitrate","scalable","maintainAspectRatio","variableDuration","language","delivery","program","xPosition","yPosition","offset","staticResource","htmlResource","iframeResource","iconClickThroughURLTemplate","iconClickTrackingURLTemplates","iconViewTrackingURLTemplate","iconClickFallbackImages","hoverText","f","minSuggestedDuration","nonlinearClickThroughURLTemplate","nonlinearClickTrackingURLTemplates","T","A","name","children","keys","R","k","Wrapper","subElements","BlockedAdCategories","InLine","Category","Pricing","Verification","oneOfinLineResources","UniversalAdId","JavaScriptResource","ExecutableResource","Tracking","Creatives","Creative","Linear","MediaFiles","MediaFile","Mezzanine","NonLinear","Companion","StaticResource","Icons","Icon","y","N","parentName","parentNode","E","some","oneOfResources","b","join","message","parentElement","specVersion","w","L","toLowerCase","ad","I","C","wrongNode","U","adServingId","categories","expires","system","title","description","advertiser","pricing","survey","idRegistry","x","version","authority","viewable","notViewable","viewUndetermined","model","currency","nextWrapperURL","resource","vendor","browserOptional","parameters","S","constructor","this","_handlers","on","TypeError","event","handler","once","fired","wrapFn","off","bind","emit","removeAllListeners","listenerCount","listeners","eventNames","V","D","O","F","P","B","fetcher","super","maxWrapperDepth","rootErrorURLTemplates","remainingAds","parsingOptions","keepFailedAdPod","trackVastError","assign","getErrorURLTemplates","getEstimatedBitrate","initParsingStatus","wrapperLimit","rootURL","resetParsingStatus","byteLength","requestDuration","vastVersion","getRemainingAds","Promise","reject","Error","shift","resolveAds","wrapperDepth","then","buildVASTResponse","parseVAST","isRootVAST","parse","ads","completeWrapperResolving","parseVastXml","documentElement","adIndex","resolveAll","wrapperSequence","previousUrl","resolveWrappers","all","VASTAdTagURI","errorCode","fetchVAST","emitter","catch","errorMessage","ERRORMESSAGE","hasFailed","splice","M","W","data","getItem","setItem","removeItem","clear","j","storage","initStorage","localStorage","sessionStorage","isStorageDisabled","q","K","get","async","AbortController","setTimeout","abort","timeout","fetch","signal","credentials","withCredentials","finally","clearTimeout","status","ok","statusText","error","statusCode","DOMParser","resolve","index$1","xml","parseFromString","details","rawXml","H","URLTemplateFilters","setOptions","urlHandler","urlhandler","fetchingOptions","fetchOptions","Boolean","addURLTemplateFilter","removeLastURLTemplateFilter","pop","countURLTemplateFilters","clearURLTemplateFilters","wrapperAd","now","_","cappingFreeLunch","cappingMinimumTimeInterval","vastParser","lastSuccessfulAd","totalCalls","totalCallsTimeout","getParser","hasRemainingAds","getNextAds","z","creative","variation","muted","impressed","skippable","trackedProgressEvents","lastPercentage","_alreadyTriggeredQuartiles","emitAlwaysEvents","viewableImpressionTrackers","entries","_initLinearTracking","_initVariationTracking","linear","setDuration","clickThroughURLTemplate","clickTrackingURLTemplates","assetDuration","quartiles","firstQuartile","midpoint","thirdQuartile","setProgress","isQuartileReached","macros","progress","setMuted","setPaused","paused","setFullscreen","fullscreen","setExpand","expanded","setSkipDelay","trackImpression","trackURLs","trackViewableImpression","trackNotViewableImpression","trackUndeterminedImpression","errorWithCode","console","log","complete","notUsed","otherAdInteraction","acceptInvitation","adExpand","adCollapse","minimize","verificationNotExecuted","trackingURLTemplates","overlayViewDuration","ADPLAYHEAD","close","skip","load","click","progressFormatted","trackProgressEvents","time","urls","endsWith","ASSETURI","UNIVERSALADID","PODSEQUENCE","ADTYPE","ADSERVINGID","ADCATEGORIES","BLOCKEDADCATEGORIES","convertToTimecode","floor","enumerable","configurable","writable","defineProperty","key","prototype","followRedirects","vastAdData","adTagURI","customData","localName","templateType","uri","firstChild","nodeType","nextSibling","substring","global","timeOffset","breakType","breakId","repeatAfter","adSource","tracker","adBreaks","PluginBus","bus","cb","AdsPlugin","config","Set","sources","cfg","list","normalizeSources","breaks","hasExplicitPreroll","at","source","hasSourceVastOrVmap","allowNativeControls","resumeContent","preferredMediaTypes","debug","breakTolerance","interceptPlayForPreroll","autoPlayOnReady","mountEl","mountSelector","nonLinearContainer","nonLinearSelector","companionContainer","companionSelector","adSourcesMode","setup","ctx","events","vastClient","VASTClient","overlay","document","createElement","className","style","display","globalUnsubs","playedBreaks","startingBreak","clearSession","active","contentMedia","undefined","contentHadControls","leases","release","getOverlayManager","core","deactivate","overlayId","userPlayIntent","pendingPercentBreaks","vmapLoadPromise","vmapPending","pendingVmapSrc","rebuildSchedule","bindBreakScheduler","bindPrerollInterceptors","forcedMuteUntilInteraction","adVideo","volume","playAds","vastUrl","sourceType","inferSourceTypeForUrl","playBreakFromVast","kind","playAdsFromXml","vastXml","getDueMidrollBreaks","currentTime","media","toAdd","pb","atSec","percent","resolvedBreaks","due","getVastInputFromBreak","input","getBreakId","has","getDueMidrollBreak","destroy","finish","resume","remove","exact","every","resolveContainer","el","selector","found","querySelector","HTMLElement","getNonLinearContainer","resolvedNonLinearContainer","getCompanionContainer","resolvedCompanionContainer","getSource","getPrimaryVastLikeSource","isXmlString","getVastXmlText","XMLSerializer","serializeToString","String","res","buildParsedForNonLinearFromXml","xmlText","toXmlDocument","setSafeHTML","html","tpl","innerHTML","blockedTags","walker","createTreeWalker","content","NodeFilter","SHOW_ELEMENT","toRemove","nextNode","node","currentNode","tagName","attr","removeAttribute","isJs","isData","isHttp","isSafeDataImage","replaceChildren","cloneNode","args","warn","combined","vastLikeSources","vmap","preload","loadVmapAndMerge","normalizeVmapAdSource","extractVastTagUri","URI","existing","vmapSrc","xmlDoc","VMAP","vmapBreaks","prevPendingCount","rawAdBreakCount","ns","getElementsByTagNameNS","getElementsByTagName","rawOffset","pendingPercent","parseVmapTimeOffset","vastInline","vastTag","vast","libBreakCount","byTag","root","adBreakEls","adSrc","uriEls","dataEls","err","reason","resolveMount","closest","body","p","exec","hh","mm","ss","getPostrollBreak","getPrerollBreak","hasExplicitPrerolls","primary","shouldInterceptPreroll","pre","state","current","maybeStartDeferredVmap","vmapWasPending","shouldInterceptNow","pause","userInteracted","guard","startBreak","onNativePlayCapture","addEventListener","capture","removeEventListener","onTime","earliestBreak","earliestAt","vmapOffset","tol","group","abs","max","startBreakGroup","onEnded","post","break","opts","waterfallSources","isLastWaterfall","suppressResumeOnError","suppressResumeOnSuccess","suppressResume","add","startedMain","playable","isBumper","isLast","extractAdsFromParsed","parsed","direct","vastResponse","adPods","adpods","flattened","pod","Ads","singlePod","adPod","adpod","singleAds","collectPodAds","out","seqRaw","seq","cidx","mediafiles","mf","pickBestMediaFile","skipOffset","extractSkipOffsetFromCreative","companions","companionAds","nonLinears","nonLinearAds","mediaFile","creativeIndex","as","MAX_SAFE_INTEGER","bs","collectPodAdsFromXml","doc","adEl","seqAttr","cEl","linearEl","mediaFilesEl","bitRate","rawEl","clearAdTracks","adTrackEls","buildCaptionsFromVastMediaFileRaw","mediaFileRaw","extractClosedCaptions","lang","srclang","label","toUpperCase","ensureRawCaptions","captions","attachAdCaptionTracks","vtt","created","default","appendChild","captionsSignature","listCaptionTracks","textTracks","item","captureActiveCaptionTrack","prevActiveCaptionSig","mode","restoreActiveTextTrack","sig","tracks","cc","ClosedCaptionFiles","closedCaptionFile","ClosedCaptionFile","mime_type","removeAdCaptions","normalized","raw","candidates","skipdelay","skipoffset","normalize","obj","parseTimecodeToSeconds","computeSkipAtSeconds","tc","ensureSkipDom","skipWrap","skipBtn","wrap","btn","onClick","onSkip","preventDefault","stopPropagation","EVENT_OPTIONS","sessionUnsubs","hideSkipUi","skipOffsetRaw","skipAtSeconds","setupSkipUIForPodItem","update","dur","skipAt","cur","remaining","ceil","pointerEvents","requestSkip","trackSkip","brk","currentBreakMeta","dispatchEvent","Event","clearAdOverlays","companionWrap","nonLinearWrap","mountCompanions","container","zIndex","flexDirection","gap","maxWidth","renderCompanion","childElementCount","companion","companionClickThrough","clickThrough","position","cursor","staticRes","StaticResources","iframeRes","iFrameResource","IFrameResource","iFrameResources","IFrameResources","htmlRes","HTMLResource","HTMLResources","img","ifr","border","div","safeWindowOpen","trackClick","trackClickThrough","collectNonLinearCreatives","nonLinear","NonLinearAds","NonLinears","nl","collectNonLinearFromXml","byLocalName","els","arr","firstChildText","compEls","nlEls","nonLinearClickThrough","playNonLinearOnlyBreakFromXml","items","meta","ensureOverlayMounted","maxDuration","it","ensureNonLinearDom","renderNonLinear","nonLinearSuggestedDurationSeconds","index","start","tick","elapsed","dismiss","left","right","bottom","justifyContent","nonLinearClickThroughURLTemplate","pickFirst","target","mountNonLinear","minSuggestedDurationSeconds","playNonLinearOnlyBreak","VASTTracker","_lastCreative","companionCreative","trackCreativeView","mountAdVideo","playsInline","contentPreload","forceMutedForPolicy","autoplay","controls","desiredMuted","desiredVolume","defaultMuted","min","adEndPromise","done","cleanupTakeover","onError","onVisibility","visibilityState","ended","play","overlayMgr","activate","priority","canSeek","fullscreenEl","fullscreenVideoEl","updateOverlay","bindAdSurfaceCommands","wantsAutoplayPath","vol","syncingVolume","bindTrackerAndTelemetry","started","lastMuted","lastPaused","emitDuration","q25","q50","q75","q100","emitQuartile","quartile","onPlaying","trackResume","trackStart","onPause","trackPause","remainingTime","pct","trackFirstQuartile","trackMidpoint","trackThirdQuartile","trackComplete","onVolume","trackMute","trackUnmute","ev","defaultPrevented","getClickThroughUrl","videoClicks","rawUrl","URL","href","open","mount","cs","getComputedStyle","inset","tryMountSimidLayer","simid","SIMID","simidLayer","urlsRaw","resources","simidUrls","iframe","requestPayload","resumeAfter","pauseAndAcquireLease","acquire","owner","rawDoc","loadRawDocBestEffort","XMLDocument","emitLoaded","count","nonLinearItems","xmlItems","endPromise","waitForAdEnd","startAdPlayback","tryPlay","p2","querySelectorAll","removeChild","shouldResume","OpenPlayerPlugins","factory","install","PlayerCtor","getOwnPropertyDescriptor","getPlugin","plugin","installAds","extend","player","extendAds","OpenPlayerJS","getPlayer","freeze","object","oc","MIME_TYPE","HTML","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","SVG","XML","XMLNS","conventions","call","predicate","ac","require$$0","notEmptyString","orderedSetReducer","element","toOrderedSet","splitOnASCIIWhitespace","copy","dest","_extends","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","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","DOMException","code","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","$$length","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","namespaceURI","_nsMap","prefix","_onAddAttribute","_removeNamedNode","lastIndex","DOMImplementation","Node","_xmlEncoder","_visitNode","callback","Document","_onUpdateChild","newChild","child","_removeChild","previous","previousSibling","next","lastChild","isDocTypeNode","isElementNode","isTextNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","assertPreInsertionValidity1to5","parent","hasValidParentNodeType","hasInsertableNodeType","assertPreInsertionValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","assertPreReplacementValidityInDocument","hasDoctypeChildThatIsNotChild","_insertBefore","_inDocumentAssertion","cp","newFirst","newLast","_updateOwnerDocument","newOwnerDocument","Element","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","isHtml","nodeFilter","buf","refNode","lookupPrefix","visibleNamespaces","namespace","needNamespaceDefine","addSerializedAttribute","qualifiedName","attrs","len","prefixedNodeName","defaultNS","ai","nsi","pubid","publicId","sysid","systemId","sub","internalSubset","importNode","deep","node2","attrs2","_ownerElement","setAttributeNode","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","getNamedItem","setNamedItem","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","createDocument","doctype","implementation","createElementNS","createDocumentType","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importedNode","getElementById","rtv","getElementsByClassName","classNames","classNamesSet","base","nodeClassNames","matches","nodeClassNamesSet","createDocumentFragment","createTextNode","createComment","createCDATASection","createProcessingInstruction","createAttribute","specified","createEntityReference","pl","createAttributeNS","hasAttribute","getAttributeNode","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","getTextContent","set","dom","exports","XML_ENTITIES","amp","apos","gt","lt","quot","HTML_ENTITIES","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","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","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","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","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","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","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","Map","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","entityMap","nameStartChar","nameChar","tagNamePattern","ParseError","locator","XMLReader","copyLocator","lineNumber","columnNumber","parseElementStartPart","currentNSMap","entityReplacer","errorHandler","addAttribute","qname","startIndex","attributeNames","fatalError","addValue","attrName","warning","setTagName","closed","appendElement","domBuilder","localNSMap","qName","nsp","nsPrefix","_copy","startPrefixMapping","startElement","endElement","endPrefixMapping","parseHtmlSpecialContent","elStartEnd","elEndStart","characters","fixSelfClosed","closeMap","pos","parseDCC","end","comment","substr","startCDATA","endCDATA","matchs","lastMatch","startDTD","endDTD","parseInstruction","processingInstruction","ElementAttributes","defaultNSMap","startDocument","defaultNSMapCopy","fixedFromCharCode","surrogate1","surrogate2","fromCharCode","appendText","xt","lineEnd","linePattern","lineStart","parseStack","tagStart","currentElement","endMatch","locator2","endDocument","getLocalName","getLocator","getQName","getURI","getValue","sax","require$$1","entities","require$$2","require$$3","normalizeLineEndings","options","DOMHandler","cdata","_locator","_toString","chars","java","hander","xmlns","setDocumentLocator","errorImpl","isCallback","Function","build","fn","msg","buildErrorHandler","documentURI","ins","ignorableWhitespace","ch","apply","charNode","skippedEntity","comm","impl","dt","domParser","__DOMHandler","lib"],"mappings":"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","x_google_ignoreList":[0,1,4,5,6,7,8,9]}
|