From 917d8d9fbca466957a17c6be25fa78da5f59e5e2 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Tue, 12 Jan 2021 21:44:51 -0800 Subject: [PATCH] dependency update to latest wabac.js (2.5.0), warcio.js and wombat.js --- package.json | 2 +- sw.js | 2835 +++++++++++++++++++++++++++++++++++++++++- ui.js | 3312 +++++++++++++++----------------------------------- yarn.lock | 28 +- 4 files changed, 3830 insertions(+), 2347 deletions(-) diff --git a/package.json b/package.json index 0e11eb7..ff29d4b 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "license": "AGPL-3.0-or-later", "dependencies": { "@fortawesome/fontawesome-free": "^5.13.0", - "@webrecorder/wabac": "^2.4.3", + "@webrecorder/wabac": "^2.5.0", "bulma": "^0.9.0", "electron-log": "^4.3.0", "electron-updater": "^4.3.5", diff --git a/sw.js b/sw.js index 536eec2..3e00627 100644 --- a/sw.js +++ b/sw.js @@ -1,35 +1,2806 @@ /*! 'sw.js is part of ReplayWeb.page (https://replayweb.page) Copyright (C) 2020, Webrecorder Software. Licensed under the Affero General Public License v3.' */ -!function(t,e){for(var r in e)t[r]=e[r]}(self,function(t){var e={};function r(i){if(e[i])return e[i].exports;var n=e[i]={i:i,l:!1,exports:{}};return t[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=t,r.c=e,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)r.d(i,n,function(e){return t[e]}.bind(null,n));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="/",r(r.s=210)}([function(t,e,r){"use strict";r.d(e,"p",(function(){return o})),r.d(e,"e",(function(){return a})),r.d(e,"i",(function(){return u})),r.d(e,"q",(function(){return c})),r.d(e,"g",(function(){return h})),r.d(e,"f",(function(){return l})),r.d(e,"k",(function(){return m})),r.d(e,"l",(function(){return d})),r.d(e,"m",(function(){return y})),r.d(e,"j",(function(){return g})),r.d(e,"o",(function(){return A})),r.d(e,"h",(function(){return w})),r.d(e,"n",(function(){return p})),r.d(e,"b",(function(){return _})),r.d(e,"a",(function(){return E})),r.d(e,"c",(function(){return v})),r.d(e,"d",(function(){return s}));var i={202:"Accepted",502:"Bad Gateway",400:"Bad Request",409:"Conflict",100:"Continue",201:"Created",417:"Expectation Failed",424:"Failed Dependency",403:"Forbidden",504:"Gateway Timeout",410:"Gone",505:"HTTP Version Not Supported",418:"I'm a teapot",419:"Insufficient Space on Resource",507:"Insufficient Storage",500:"Internal Server Error",411:"Length Required",423:"Locked",420:"Method Failure",405:"Method Not Allowed",301:"Moved Permanently",302:"Moved Temporarily",207:"Multi-Status",300:"Multiple Choices",511:"Network Authentication Required",204:"No Content",203:"Non Authoritative Information",406:"Not Acceptable",404:"Not Found",501:"Not Implemented",304:"Not Modified",200:"OK",206:"Partial Content",402:"Payment Required",308:"Permanent Redirect",412:"Precondition Failed",428:"Precondition Required",102:"Processing",407:"Proxy Authentication Required",431:"Request Header Fields Too Large",408:"Request Timeout",413:"Request Entity Too Large",414:"Request-URI Too Long",416:"Requested Range Not Satisfiable",205:"Reset Content",303:"See Other",503:"Service Unavailable",101:"Switching Protocols",307:"Temporary Redirect",429:"Too Many Requests",401:"Unauthorized",451:"Unavailable For Legal Reasons",422:"Unprocessable Entity",415:"Unsupported Media Type",305:"Use Proxy"};function n(t){var e=i[t.toString()];if(!e)throw new Error("Status code does not exist: "+t);return e}const s=25e6;function o(t,e){for(const r of e)if(t.startsWith(r))return!0;return!1}function a(t,e){for(const r of e)if(t.indexOf(r)>=0)return!0;return!1}function u(t){return t.replace(/[-:T]/g,"").slice(0,14)}function c(t){if(!t)return new Date;t.length<17&&(t+="00000101000000000".substr(t.length));const e=t.substring(0,4)+"-"+t.substring(4,6)+"-"+t.substring(6,8)+"T"+t.substring(8,10)+":"+t.substring(10,12)+":"+t.substring(12,14)+"."+t.substring(14)+"Z";return new Date(e)}function h(t){if(!t)return"";try{return""+parseInt(t.getTime()/1e3)}catch(t){return""}}async function l(t,e){const r="string"==typeof t?(new TextEncoder).encode(t):t;return e+":"+function(t){return Array.from(new Uint8Array(t)).map(t=>t.toString(16).padStart(2,"0")).join("")}(await crypto.subtle.digest(e,r))}function p(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}function d(t){try{return new Headers(t)}catch(e){for(let e of Object.keys(t)){const r=t[e],i=r.replace(/[\r\n]+/g,", ");r!=i&&(t[e]=i)}return new Headers(t)}}const f=[101,204,205,304];function m(t){return f.includes(t)}function w(t){try{return n(t)}catch(t){return"Unknown Status"}}function g(t){return"XMLHttpRequest"===t.headers.get("X-Pywb-Requested-With")}function y(t,e,r=404){let i,n;e||(e="Sorry, this url was not found in the archive."),"script"===t.destination||t.headers.get("x-pywb-requested-with")?(i=JSON.stringify(e),n="application/json"):(i=e,n="text/html");const s={status:r,statusText:w(r),headers:{"Content-Type":n}};return new Response(i,s)}class b{constructor(t={}){this.info=t}}class _ extends b{}class E extends b{}class v{}function A(t){return new Promise(e=>setTimeout(e,t))}},function(t,e,r){"use strict";var i=r(23),n=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];t.exports=function(t,e){var r,o;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===n.indexOf(e))throw new i('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')})),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=(r=e.styleAliases||null,o={},null!==r&&Object.keys(r).forEach((function(t){r[t].forEach((function(e){o[String(e)]=t}))})),o),-1===s.indexOf(this.kind))throw new i('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}},function(t,e,r){"use strict";(function(t){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -var i=r(122),n=r(123),s=r(62);function o(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|t}function f(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return W(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return j(t).length;default:if(i)return W(t).length;e=(""+e).toLowerCase(),i=!0}}function m(t,e,r){var i=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return k(this,e,r);case"utf8":case"utf-8":return S(this,e,r);case"ascii":return C(this,e,r);case"latin1":case"binary":return D(this,e,r);case"base64":return x(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}function w(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}function g(t,e,r,i,n){if(0===t.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=n?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(n)return-1;r=t.length-1}else if(r<0){if(!n)return-1;r=0}if("string"==typeof e&&(e=u.from(e,i)),u.isBuffer(e))return 0===e.length?-1:y(t,e,r,i,n);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):y(t,[e],r,i,n);throw new TypeError("val must be string, number or Buffer")}function y(t,e,r,i,n){var s,o=1,a=t.length,u=e.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(t.length<2||e.length<2)return-1;o=2,a/=2,u/=2,r/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(n){var h=-1;for(s=r;sa&&(r=a-u),s=r;s>=0;s--){for(var l=!0,p=0;pn&&(i=n):i=n;var s=e.length;if(s%2!=0)throw new TypeError("Invalid hex string");i>s/2&&(i=s/2);for(var o=0;o>8,n=r%256,s.push(n),s.push(i);return s}(e,t.length-r),t,r,i)}function x(t,e,r){return 0===e&&r===t.length?i.fromByteArray(t):i.fromByteArray(t.slice(e,r))}function S(t,e,r){r=Math.min(t.length,r);for(var i=[],n=e;n239?4:c>223?3:c>191?2:1;if(n+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(s=t[n+1]))&&(u=(31&c)<<6|63&s)>127&&(h=u);break;case 3:s=t[n+1],o=t[n+2],128==(192&s)&&128==(192&o)&&(u=(15&c)<<12|(63&s)<<6|63&o)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:s=t[n+1],o=t[n+2],a=t[n+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(u=(15&c)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,i.push(h>>>10&1023|55296),h=56320|1023&h),i.push(h),n+=l}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",i=0;for(;i0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},u.prototype.compare=function(t,e,r,i,n){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===i&&(i=0),void 0===n&&(n=this.length),e<0||r>t.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&e>=r)return 0;if(i>=n)return-1;if(e>=r)return 1;if(this===t)return 0;for(var s=(n>>>=0)-(i>>>=0),o=(r>>>=0)-(e>>>=0),a=Math.min(s,o),c=this.slice(i,n),h=t.slice(e,r),l=0;ln)&&(r=n),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var s=!1;;)switch(i){case"hex":return b(this,t,e,r);case"utf8":case"utf-8":return _(this,t,e,r);case"ascii":return E(this,t,e,r);case"latin1":case"binary":return v(this,t,e,r);case"base64":return A(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,e,r);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function C(t,e,r){var i="";r=Math.min(t.length,r);for(var n=e;ni)&&(r=i);for(var n="",s=e;sr)throw new RangeError("Trying to access beyond buffer length")}function I(t,e,r,i,n,s){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||et.length)throw new RangeError("Index out of range")}function O(t,e,r,i){e<0&&(e=65535+e+1);for(var n=0,s=Math.min(t.length-r,2);n>>8*(i?n:1-n)}function F(t,e,r,i){e<0&&(e=4294967295+e+1);for(var n=0,s=Math.min(t.length-r,4);n>>8*(i?n:3-n)&255}function P(t,e,r,i,n,s){if(r+i>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function B(t,e,r,i,s){return s||P(t,0,r,4),n.write(t,e,r,i,23,4),r+4}function L(t,e,r,i,s){return s||P(t,0,r,8),n.write(t,e,r,i,52,8),r+8}u.prototype.slice=function(t,e){var r,i=this.length;if((t=~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),(e=void 0===e?i:~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),e0&&(n*=256);)i+=this[t+--e]*n;return i},u.prototype.readUInt8=function(t,e){return e||N(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||N(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||N(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||N(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||N(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||N(t,e,this.length);for(var i=this[t],n=1,s=0;++s=(n*=128)&&(i-=Math.pow(2,8*e)),i},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||N(t,e,this.length);for(var i=e,n=1,s=this[t+--i];i>0&&(n*=256);)s+=this[t+--i]*n;return s>=(n*=128)&&(s-=Math.pow(2,8*e)),s},u.prototype.readInt8=function(t,e){return e||N(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||N(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||N(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||N(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||N(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||N(t,4,this.length),n.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||N(t,4,this.length),n.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||N(t,8,this.length),n.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||N(t,8,this.length),n.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,i){(t=+t,e|=0,r|=0,i)||I(this,t,e,r,Math.pow(2,8*r)-1,0);var n=1,s=0;for(this[e]=255&t;++s=0&&(s*=256);)this[e+n]=t/s&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):O(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):O(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):F(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,i){if(t=+t,e|=0,!i){var n=Math.pow(2,8*r-1);I(this,t,e,r,n-1,-n)}var s=0,o=1,a=0;for(this[e]=255&t;++s>0)-a&255;return e+r},u.prototype.writeIntBE=function(t,e,r,i){if(t=+t,e|=0,!i){var n=Math.pow(2,8*r-1);I(this,t,e,r,n-1,-n)}var s=r-1,o=1,a=0;for(this[e+s]=255&t;--s>=0&&(o*=256);)t<0&&0===a&&0!==this[e+s+1]&&(a=1),this[e+s]=(t/o>>0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):O(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):O(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):F(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return B(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return B(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return L(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return L(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,i){if(r||(r=0),i||0===i||(i=this.length),e>=t.length&&(e=t.length),e||(e=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-e=0;--n)t[n+e]=this[n+r];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(n=0;n>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(s=e;s55295&&r<57344){if(!n){if(r>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(o+1===i){(e-=3)>-1&&s.push(239,191,189);continue}n=r;continue}if(r<56320){(e-=3)>-1&&s.push(239,191,189),n=r;continue}r=65536+(n-55296<<10|r-56320)}else n&&(e-=3)>-1&&s.push(239,191,189);if(n=null,r<128){if((e-=1)<0)break;s.push(r)}else if(r<2048){if((e-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function j(t){return i.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(U,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function H(t,e,r,i){for(var n=0;n=e.length||n>=t.length);++n)e[n+r]=t[n];return n}}).call(this,r(5))},function(t,e,r){t.exports=n;var i=r(35).EventEmitter;function n(){i.call(this)}r(11)(n,i),n.Readable=r(36),n.Writable=r(132),n.Duplex=r(133),n.Transform=r(134),n.PassThrough=r(135),n.Stream=n,n.prototype.pipe=function(t,e){var r=this;function n(e){t.writable&&!1===t.write(e)&&r.pause&&r.pause()}function s(){r.readable&&r.resume&&r.resume()}r.on("data",n),t.on("drain",s),t._isStdio||e&&!1===e.end||(r.on("end",a),r.on("close",u));var o=!1;function a(){o||(o=!0,t.end())}function u(){o||(o=!0,"function"==typeof t.destroy&&t.destroy())}function c(t){if(h(),0===i.listenerCount(this,"error"))throw t}function h(){r.removeListener("data",n),t.removeListener("drain",s),r.removeListener("end",a),r.removeListener("close",u),r.removeListener("error",c),t.removeListener("error",c),r.removeListener("end",h),r.removeListener("close",h),t.removeListener("close",h)}return r.on("error",c),t.on("error",c),r.on("end",h),r.on("close",h),t.on("close",h),t.emit("pipe",r),t}},function(t,e,r){"use strict";const i=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",n="["+i+"][:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",s=new RegExp("^"+n+"$");e.isExist=function(t){return void 0!==t},e.isEmptyObject=function(t){return 0===Object.keys(t).length},e.merge=function(t,e,r){if(e){const i=Object.keys(e),n=i.length;for(let s=0;s0||t===e?e:e-1}function m(t){for(var e,r,i=1,n=t.length,s=t[0]+"";ic^r?1:-1;for(a=(u=n.length)<(c=s.length)?u:c,o=0;os[o]^r?1:-1;return u==c?0:u>c^r?1:-1}function g(t,e,r,i){if(tr||t!==u(t))throw Error(c+(i||"Argument")+("number"==typeof t?tr?" out of range: ":" not an integer: ":" not a primitive number: ")+String(t))}function y(t){var e=t.c.length-1;return f(t.e/14)==e&&t.c[e]%2!=0}function b(t,e){return(t.length>1?t.charAt(0)+"."+t.slice(1):t)+(e<0?"e":"e+")+e}function _(t,e,r){var i,n;if(e<0){for(n=r+".";++e;n+=r);t=n+t}else if(++e>(i=t.length)){for(n=r,e-=i;--e;n+=r);t+=n}else eO?m.c=m.e=null:t.e=10;l/=10,c++);return void(c>O?m.c=m.e=null:(m.e=c,m.c=[t]))}f=String(t)}else{if(!o.test(f=String(t)))return n(m,f,p);m.s=45==f.charCodeAt(0)?(f=f.slice(1),-1):1}(c=f.indexOf("."))>-1&&(f=f.replace(".","")),(l=f.search(/e/i))>0?(c<0&&(c=l),c+=+f.slice(l+1),f=f.substring(0,l)):c<0&&(c=f.length)}else{if(g(e,2,U.length,"Base"),10==e)return z(m=new M(t),D+m.e+1,k);if(f=String(t),p="number"==typeof t){if(0*t!=0)return n(m,f,p,e);if(m.s=1/t<0?(f=f.slice(1),-1):1,M.DEBUG&&f.replace(/^0\.0*|\./,"").length>15)throw Error(h+t)}else m.s=45===f.charCodeAt(0)?(f=f.slice(1),-1):1;for(r=U.slice(0,e),c=l=0,d=f.length;lc){c=d;continue}}else if(!a&&(f==f.toUpperCase()&&(f=f.toLowerCase())||f==f.toLowerCase()&&(f=f.toUpperCase()))){a=!0,l=-1,c=0;continue}return n(m,String(t),p,e)}p=!1,(c=(f=i(f,e,10,m.s)).indexOf("."))>-1?f=f.replace(".",""):c=f.length}for(l=0;48===f.charCodeAt(l);l++);for(d=f.length;48===f.charCodeAt(--d););if(f=f.slice(l,++d)){if(d-=l,p&&M.DEBUG&&d>15&&(t>9007199254740991||t!==u(t)))throw Error(h+m.s*t);if((c=c-l-1)>O)m.c=m.e=null;else if(c=N)?b(u,o):_(u,o,"0");else if(s=(t=z(new M(t),e,r)).e,a=(u=m(t.c)).length,1==i||2==i&&(e<=s||s<=R)){for(;aa){if(--e>0)for(u+=".";e--;u+="0");}else if((e+=s-a)>0)for(s+1==a&&(u+=".");e--;u+="0");return t.s<0&&n?"-"+u:u}function j(t,e){for(var r,i=1,n=new M(t[0]);i=10;n/=10,i++);return(r=i+14*r-1)>O?t.c=t.e=null:r=10;c/=10,n++);if((s=e-n)<0)s+=14,o=e,f=(h=m[d=0])/w[n-o-1]%10|0;else if((d=a((s+1)/14))>=m.length){if(!i)break t;for(;m.length<=d;m.push(0));h=f=0,n=1,o=(s%=14)-14+1}else{for(h=c=m[d],n=1;c>=10;c/=10,n++);f=(o=(s%=14)-14+n)<0?0:h/w[n-o-1]%10|0}if(i=i||e<0||null!=m[d+1]||(o<0?h:h%w[n-o-1]),i=r<4?(f||i)&&(0==r||r==(t.s<0?3:2)):f>5||5==f&&(4==r||i||6==r&&(s>0?o>0?h/w[n-o]:0:m[d-1])%10&1||r==(t.s<0?8:7)),e<1||!m[0])return m.length=0,i?(e-=t.e+1,m[0]=w[(14-e%14)%14],t.e=-e||0):m[0]=t.e=0,t;if(0==s?(m.length=d,c=1,d--):(m.length=d+1,c=w[14-s],m[d]=o>0?u(h/w[n-o]%w[o])*c:0),i)for(;;){if(0==d){for(s=1,o=m[0];o>=10;o/=10,s++);for(o=m[0]+=c,c=1;o>=10;o/=10,c++);s!=c&&(t.e++,m[0]==l&&(m[0]=1));break}if(m[d]+=c,m[d]!=l)break;m[d--]=0,c=1}for(s=m.length;0===m[--s];m.pop());}t.e>O?t.c=t.e=null:t.e=N?b(e,r):_(e,r,"0"),t.s<0?"-"+e:e)}return M.clone=t,M.ROUND_UP=0,M.ROUND_DOWN=1,M.ROUND_CEIL=2,M.ROUND_FLOOR=3,M.ROUND_HALF_UP=4,M.ROUND_HALF_DOWN=5,M.ROUND_HALF_EVEN=6,M.ROUND_HALF_CEIL=7,M.ROUND_HALF_FLOOR=8,M.EUCLID=9,M.config=M.set=function(t){var e,r;if(null!=t){if("object"!=typeof t)throw Error(c+"Object expected: "+t);if(t.hasOwnProperty(e="DECIMAL_PLACES")&&(g(r=t[e],0,d,e),D=r),t.hasOwnProperty(e="ROUNDING_MODE")&&(g(r=t[e],0,8,e),k=r),t.hasOwnProperty(e="EXPONENTIAL_AT")&&((r=t[e])&&r.pop?(g(r[0],-d,0,e),g(r[1],0,d,e),R=r[0],N=r[1]):(g(r,-d,d,e),R=-(N=r<0?-r:r))),t.hasOwnProperty(e="RANGE"))if((r=t[e])&&r.pop)g(r[0],-d,-1,e),g(r[1],1,d,e),I=r[0],O=r[1];else{if(g(r,-d,d,e),!r)throw Error(c+e+" cannot be zero: "+r);I=-(O=r<0?-r:r)}if(t.hasOwnProperty(e="CRYPTO")){if((r=t[e])!==!!r)throw Error(c+e+" not true or false: "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw F=!r,Error(c+"crypto unavailable");F=r}else F=r}if(t.hasOwnProperty(e="MODULO_MODE")&&(g(r=t[e],0,9,e),P=r),t.hasOwnProperty(e="POW_PRECISION")&&(g(r=t[e],0,d,e),B=r),t.hasOwnProperty(e="FORMAT")){if("object"!=typeof(r=t[e]))throw Error(c+e+" not an object: "+r);L=r}if(t.hasOwnProperty(e="ALPHABET")){if("string"!=typeof(r=t[e])||/^.$|[+-.\s]|(.).*\1/.test(r))throw Error(c+e+" invalid: "+r);U=r}}return{DECIMAL_PLACES:D,ROUNDING_MODE:k,EXPONENTIAL_AT:[R,N],RANGE:[I,O],CRYPTO:F,MODULO_MODE:P,POW_PRECISION:B,FORMAT:L,ALPHABET:U}},M.isBigNumber=function(t){if(!t||!0!==t._isBigNumber)return!1;if(!M.DEBUG)return!0;var e,r,i=t.c,n=t.e,s=t.s;t:if("[object Array]"=={}.toString.call(i)){if((1===s||-1===s)&&n>=-d&&n<=d&&n===u(n)){if(0===i[0]){if(0===n&&1===i.length)return!0;break t}if((e=(n+1)%14)<1&&(e+=14),String(i[0]).length==e){for(e=0;e=l||r!==u(r))break t;if(0!==r)return!0}}}else if(null===i&&null===n&&(null===s||1===s||-1===s))return!0;throw Error(c+"Invalid BigNumber: "+t)},M.maximum=M.max=function(){return j(arguments,S.lt)},M.minimum=M.min=function(){return j(arguments,S.gt)},M.random=(s=9007199254740992*Math.random()&2097151?function(){return u(9007199254740992*Math.random())}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(t){var e,r,i,n,o,h=0,l=[],f=new M(C);if(null==t?t=D:g(t,0,d),n=a(t/14),F)if(crypto.getRandomValues){for(e=crypto.getRandomValues(new Uint32Array(n*=2));h>>11))>=9e15?(r=crypto.getRandomValues(new Uint32Array(2)),e[h]=r[0],e[h+1]=r[1]):(l.push(o%1e14),h+=2);h=n/2}else{if(!crypto.randomBytes)throw F=!1,Error(c+"crypto unavailable");for(e=crypto.randomBytes(n*=7);h=9e15?crypto.randomBytes(7).copy(e,h):(l.push(o%1e14),h+=7);h=n/7}if(!F)for(;h=10;o/=10,h++);h<14&&(i-=14-h)}return f.e=i,f.c=l,f}),M.sum=function(){for(var t=1,e=arguments,r=new M(e[0]);tr-1&&(null==o[n+1]&&(o[n+1]=0),o[n+1]+=o[n]/r|0,o[n]%=r)}return o.reverse()}return function(e,i,n,s,o){var a,u,c,h,l,p,d,f,w=e.indexOf("."),g=D,y=k;for(w>=0&&(h=B,B=0,e=e.replace(".",""),p=(f=new M(i)).pow(e.length-w),B=h,f.c=t(_(m(p.c),p.e,"0"),10,n,"0123456789"),f.e=f.c.length),c=h=(d=t(e,i,n,o?(a=U,"0123456789"):(a="0123456789",U))).length;0==d[--h];d.pop());if(!d[0])return a.charAt(0);if(w<0?--c:(p.c=d,p.e=c,p.s=s,d=(p=r(p,f,g,y,n)).c,l=p.r,c=p.e),w=d[u=c+g+1],h=n/2,l=l||u<0||null!=d[u+1],l=y<4?(null!=w||l)&&(0==y||y==(p.s<0?3:2)):w>h||w==h&&(4==y||l||6==y&&1&d[u-1]||y==(p.s<0?8:7)),u<1||!d[0])e=l?_(a.charAt(1),-g,a.charAt(0)):a.charAt(0);else{if(d.length=u,l)for(--n;++d[--u]>n;)d[u]=0,u||(++c,d=[1].concat(d));for(h=d.length;!d[--h];);for(w=0,e="";w<=h;e+=a.charAt(d[w++]));e=_(e,c,a.charAt(0))}return e}}(),r=function(){function t(t,e,r){var i,n,s,o,a=0,u=t.length,c=e%1e7,h=e/1e7|0;for(t=t.slice();u--;)a=((n=c*(s=t[u]%1e7)+(i=h*s+(o=t[u]/1e7|0)*c)%1e7*1e7+a)/r|0)+(i/1e7|0)+h*o,t[u]=n%r;return a&&(t=[a].concat(t)),t}function e(t,e,r,i){var n,s;if(r!=i)s=r>i?1:-1;else for(n=s=0;ne[n]?1:-1;break}return s}function r(t,e,r,i){for(var n=0;r--;)t[r]-=n,n=t[r]1;t.splice(0,1));}return function(i,n,s,o,a){var c,h,p,d,m,w,g,y,b,_,E,v,A,T,x,S,C,D=i.s==n.s?1:-1,k=i.c,R=n.c;if(!(k&&k[0]&&R&&R[0]))return new M(i.s&&n.s&&(k?!R||k[0]!=R[0]:R)?k&&0==k[0]||!R?0*D:D/0:NaN);for(b=(y=new M(D)).c=[],D=s+(h=i.e-n.e)+1,a||(a=l,h=f(i.e/14)-f(n.e/14),D=D/14|0),p=0;R[p]==(k[p]||0);p++);if(R[p]>(k[p]||0)&&h--,D<0)b.push(1),d=!0;else{for(T=k.length,S=R.length,p=0,D+=2,(m=u(a/(R[0]+1)))>1&&(R=t(R,m,a),k=t(k,m,a),S=R.length,T=k.length),A=S,E=(_=k.slice(0,S)).length;E=a/2&&x++;do{if(m=0,(c=e(R,_,S,E))<0){if(v=_[0],S!=E&&(v=v*a+(_[1]||0)),(m=u(v/x))>1)for(m>=a&&(m=a-1),g=(w=t(R,m,a)).length,E=_.length;1==e(w,_,g,E);)m--,r(w,S=10;D/=10,p++);z(y,s+(y.e=p+14*h-1)+1,o,d)}else y.e=h,y.r=+d;return y}}(),E=/^(-?)0([xbo])(?=\w[\w.]*$)/i,v=/^([^.]+)\.$/,A=/^\.([^.]+)$/,T=/^-?(Infinity|NaN)$/,x=/^\s*\+(?=[\w.])|^\s+|\s+$/g,n=function(t,e,r,i){var n,s=r?e:e.replace(x,"");if(T.test(s))t.s=isNaN(s)?null:s<0?-1:1;else{if(!r&&(s=s.replace(E,(function(t,e,r){return n="x"==(r=r.toLowerCase())?16:"b"==r?2:8,i&&i!=n?t:e})),i&&(n=i,s=s.replace(v,"$1").replace(A,"0.$1")),e!=s))return new M(s,n);if(M.DEBUG)throw Error(c+"Not a"+(i?" base "+i:"")+" number: "+e);t.s=null}t.c=t.e=null},S.absoluteValue=S.abs=function(){var t=new M(this);return t.s<0&&(t.s=1),t},S.comparedTo=function(t,e){return w(this,new M(t,e))},S.decimalPlaces=S.dp=function(t,e){var r,i,n,s=this;if(null!=t)return g(t,0,d),null==e?e=k:g(e,0,8),z(new M(s),t+s.e+1,e);if(!(r=s.c))return null;if(i=14*((n=r.length-1)-f(this.e/14)),n=r[n])for(;n%10==0;n/=10,i--);return i<0&&(i=0),i},S.dividedBy=S.div=function(t,e){return r(this,new M(t,e),D,k)},S.dividedToIntegerBy=S.idiv=function(t,e){return r(this,new M(t,e),0,1)},S.exponentiatedBy=S.pow=function(t,e){var r,i,n,s,o,h,l,p,d=this;if((t=new M(t)).c&&!t.isInteger())throw Error(c+"Exponent not an integer: "+G(t));if(null!=e&&(e=new M(e)),o=t.e>14,!d.c||!d.c[0]||1==d.c[0]&&!d.e&&1==d.c.length||!t.c||!t.c[0])return p=new M(Math.pow(+G(d),o?2-y(t):+G(t))),e?p.mod(e):p;if(h=t.s<0,e){if(e.c?!e.c[0]:!e.s)return new M(NaN);(i=!h&&d.isInteger()&&e.isInteger())&&(d=d.mod(e))}else{if(t.e>9&&(d.e>0||d.e<-1||(0==d.e?d.c[0]>1||o&&d.c[1]>=24e7:d.c[0]<8e13||o&&d.c[0]<=9999975e7)))return s=d.s<0&&y(t)?-0:0,d.e>-1&&(s=1/s),new M(h?1/s:s);B&&(s=a(B/14+2))}for(o?(r=new M(.5),h&&(t.s=1),l=y(t)):l=(n=Math.abs(+G(t)))%2,p=new M(C);;){if(l){if(!(p=p.times(d)).c)break;s?p.c.length>s&&(p.c.length=s):i&&(p=p.mod(e))}if(n){if(0===(n=u(n/2)))break;l=n%2}else if(z(t=t.times(r),t.e+1,1),t.e>14)l=y(t);else{if(0===(n=+G(t)))break;l=n%2}d=d.times(d),s?d.c&&d.c.length>s&&(d.c.length=s):i&&(d=d.mod(e))}return i?p:(h&&(p=C.div(p)),e?p.mod(e):s?z(p,B,k,void 0):p)},S.integerValue=function(t){var e=new M(this);return null==t?t=k:g(t,0,8),z(e,e.e+1,t)},S.isEqualTo=S.eq=function(t,e){return 0===w(this,new M(t,e))},S.isFinite=function(){return!!this.c},S.isGreaterThan=S.gt=function(t,e){return w(this,new M(t,e))>0},S.isGreaterThanOrEqualTo=S.gte=function(t,e){return 1===(e=w(this,new M(t,e)))||0===e},S.isInteger=function(){return!!this.c&&f(this.e/14)>this.c.length-2},S.isLessThan=S.lt=function(t,e){return w(this,new M(t,e))<0},S.isLessThanOrEqualTo=S.lte=function(t,e){return-1===(e=w(this,new M(t,e)))||0===e},S.isNaN=function(){return!this.s},S.isNegative=function(){return this.s<0},S.isPositive=function(){return this.s>0},S.isZero=function(){return!!this.c&&0==this.c[0]},S.minus=function(t,e){var r,i,n,s,o=this,a=o.s;if(e=(t=new M(t,e)).s,!a||!e)return new M(NaN);if(a!=e)return t.s=-e,o.plus(t);var u=o.e/14,c=t.e/14,h=o.c,p=t.c;if(!u||!c){if(!h||!p)return h?(t.s=-e,t):new M(p?o:NaN);if(!h[0]||!p[0])return p[0]?(t.s=-e,t):new M(h[0]?o:3==k?-0:0)}if(u=f(u),c=f(c),h=h.slice(),a=u-c){for((s=a<0)?(a=-a,n=h):(c=u,n=p),n.reverse(),e=a;e--;n.push(0));n.reverse()}else for(i=(s=(a=h.length)<(e=p.length))?a:e,a=e=0;e0)for(;e--;h[r++]=0);for(e=l-1;i>a;){if(h[--i]=0;){for(r=0,d=_[n]%1e7,m=_[n]/1e7|0,s=n+(o=u);s>n;)r=((c=d*(c=b[--o]%1e7)+(a=m*c+(h=b[o]/1e7|0)*d)%1e7*1e7+w[s]+r)/g|0)+(a/1e7|0)+m*h,w[s--]=c%g;w[s]=r}return r?++i:w.splice(0,1),H(t,w,i)},S.negated=function(){var t=new M(this);return t.s=-t.s||null,t},S.plus=function(t,e){var r,i=this,n=i.s;if(e=(t=new M(t,e)).s,!n||!e)return new M(NaN);if(n!=e)return t.s=-e,i.minus(t);var s=i.e/14,o=t.e/14,a=i.c,u=t.c;if(!s||!o){if(!a||!u)return new M(n/0);if(!a[0]||!u[0])return u[0]?t:new M(a[0]?i:0*n)}if(s=f(s),o=f(o),a=a.slice(),n=s-o){for(n>0?(o=s,r=u):(n=-n,r=a),r.reverse();n--;r.push(0));r.reverse()}for((n=a.length)-(e=u.length)<0&&(r=u,u=a,a=r,e=n),n=0;e;)n=(a[--e]=a[e]+u[e]+n)/l|0,a[e]=l===a[e]?0:a[e]%l;return n&&(a=[n].concat(a),++o),H(t,a,o)},S.precision=S.sd=function(t,e){var r,i,n,s=this;if(null!=t&&t!==!!t)return g(t,1,d),null==e?e=k:g(e,0,8),z(new M(s),t,e);if(!(r=s.c))return null;if(i=14*(n=r.length-1)+1,n=r[n]){for(;n%10==0;n/=10,i--);for(n=r[0];n>=10;n/=10,i++);}return t&&s.e+1>i&&(i=s.e+1),i},S.shiftedBy=function(t){return g(t,-9007199254740991,9007199254740991),this.times("1e"+t)},S.squareRoot=S.sqrt=function(){var t,e,i,n,s,o=this,a=o.c,u=o.s,c=o.e,h=D+4,l=new M("0.5");if(1!==u||!a||!a[0])return new M(!u||u<0&&(!a||a[0])?NaN:a?o:1/0);if(0==(u=Math.sqrt(+G(o)))||u==1/0?(((e=m(a)).length+c)%2==0&&(e+="0"),u=Math.sqrt(+e),c=f((c+1)/2)-(c<0||c%2),i=new M(e=u==1/0?"1e"+c:(e=u.toExponential()).slice(0,e.indexOf("e")+1)+c)):i=new M(u+""),i.c[0])for((u=(c=i.e)+h)<3&&(u=0);;)if(s=i,i=l.times(s.plus(r(o,s,h,1))),m(s.c).slice(0,u)===(e=m(i.c)).slice(0,u)){if(i.e0&&m>0){for(s=m%a||a,l=f.substr(0,s);s0&&(l+=h+f.slice(s)),d&&(l="-"+l)}i=p?l+(r.decimalSeparator||"")+((u=+r.fractionGroupSize)?p.replace(new RegExp("\\d{"+u+"}\\B","g"),"$&"+(r.fractionGroupSeparator||"")):p):l}return(r.prefix||"")+i+(r.suffix||"")},S.toFraction=function(t){var e,i,n,s,o,a,u,h,l,d,f,w,g=this,y=g.c;if(null!=t&&(!(u=new M(t)).isInteger()&&(u.c||1!==u.s)||u.lt(C)))throw Error(c+"Argument "+(u.isInteger()?"out of range: ":"not an integer: ")+G(u));if(!y)return new M(g);for(e=new M(C),l=i=new M(C),n=h=new M(C),w=m(y),o=e.e=w.length-g.e-1,e.c[0]=p[(a=o%14)<0?14+a:a],t=!t||u.comparedTo(e)>0?o>0?e:l:u,a=O,O=1/0,u=new M(w),h.c[0]=0;d=r(u,e,0,1),1!=(s=i.plus(d.times(n))).comparedTo(t);)i=n,n=s,l=h.plus(d.times(s=l)),h=s,e=u.minus(d.times(s=e)),u=s;return s=r(t.minus(i),n,0,1),h=h.plus(s.times(l)),i=i.plus(s.times(n)),h.s=l.s=g.s,f=r(l,n,o*=2,k).minus(g).abs().comparedTo(r(h,i,o,k).minus(g).abs())<1?[l,n]:[h,i],O=a,f},S.toNumber=function(){return+G(this)},S.toPrecision=function(t,e){return null!=t&&g(t,1,d),W(this,t,e,2)},S.toString=function(t){var e,r=this,n=r.s,s=r.e;return null===s?n?(e="Infinity",n<0&&(e="-"+e)):e="NaN":(null==t?e=s<=R||s>=N?b(m(r.c),s):_(m(r.c),s,"0"):10===t?e=_(m((r=z(new M(r),D+s+1,k)).c),r.e,"0"):(g(t,2,U.length,"Base"),e=i(_(m(r.c),s,"0"),10,t,n,!0)),n<0&&r.c[0]&&(e="-"+e)),e},S.valueOf=S.toJSON=function(){return G(this)},S._isBigNumber=!0,null!=e&&M.set(e),M}()).default=s.BigNumber=s,void 0===(i=function(){return s}.call(e,r,e,t))||(t.exports=i)}()},function(t,e,r){"use strict";const i=r(8).BigNumber;e.MT={POS_INT:0,NEG_INT:1,BYTE_STRING:2,UTF8_STRING:3,ARRAY:4,MAP:5,TAG:6,SIMPLE_FLOAT:7},e.TAG={DATE_STRING:0,DATE_EPOCH:1,POS_BIGINT:2,NEG_BIGINT:3,DECIMAL_FRAC:4,BIGFLOAT:5,BASE64URL_EXPECTED:21,BASE64_EXPECTED:22,BASE16_EXPECTED:23,CBOR:24,URI:32,BASE64URL:33,BASE64:34,REGEXP:35,MIME:36},e.NUMBYTES={ZERO:0,ONE:24,TWO:25,FOUR:26,EIGHT:27,INDEFINITE:31},e.SIMPLE={FALSE:20,TRUE:21,NULL:22,UNDEFINED:23},e.SYMS={NULL:Symbol("null"),UNDEFINED:Symbol("undef"),PARENT:Symbol("parent"),BREAK:Symbol("break"),STREAM:Symbol("stream")},e.SHIFT32=4294967296,e.BI={MINUS_ONE:-1,MAXINT32:4294967295,MAXINT64:"0xffffffffffffffff",SHIFT32:e.SHIFT32};const n=new i(-1);e.BN={MINUS_ONE:n,NEG_MAX:n.minus(new i(Number.MAX_SAFE_INTEGER.toString(16),16)),MAXINT:new i("0x20000000000000"),MAXINT32:new i(4294967295),MAXINT64:new i("0xffffffffffffffff"),SHIFT32:new i(e.SHIFT32)}},,function(t,e){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},function(t,e){var r,i,n=t.exports={};function s(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(t){if(r===setTimeout)return setTimeout(t,0);if((r===s||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:s}catch(t){r=s}try{i="function"==typeof clearTimeout?clearTimeout:o}catch(t){i=o}}();var u,c=[],h=!1,l=-1;function p(){h&&u&&(h=!1,u.length?c=u.concat(c):l=-1,c.length&&d())}function d(){if(!h){var t=a(p);h=!0;for(var e=c.length;e;){for(u=c,c=[];++l1)for(var r=1;rt.decode(e),e.utf8.checksUTF8=!0}else e.utf8=t=>t.toString("utf8"),e.utf8.checksUTF8=!1;e.parseCBORint=function(t,e){switch(t){case o.ONE:return e.readUInt8(0);case o.TWO:return e.readUInt16BE(0);case o.FOUR:return e.readUInt32BE(0);case o.EIGHT:const r=e.readUInt32BE(0),i=e.readUInt32BE(4);return r>2097151?new n(r).times(a).plus(i):r*a+i;default:throw new Error("Invalid additional info for int: "+t)}},e.writeHalf=function(e,r){const i=t.allocUnsafe(4);i.writeFloatBE(r,0);const n=i.readUInt32BE(0);if(0!=(8191&n))return!1;let s=n>>16&32768;const o=n>>23&255,a=8388607&n;if(o>=113&&o<=142)s+=(o-112<<10)+(a>>13);else{if(!(o>=103&&o<113))return!1;if(a&(1<<126-o)-1)return!1;s+=a+8388608>>126-o}return e.writeUInt16BE(s),!0},e.parseHalf=function(t){const e=128&t[0]?-1:1,r=(124&t[0])>>2,i=(3&t[0])<<8|t[1];return r?31===r?e*(i?NaN:Infinity):e*Math.pow(2,r-25)*(1024+i):5.960464477539063e-8*e*i},e.parseCBORfloat=function(t){switch(t.length){case 2:return e.parseHalf(t);case 4:return t.readFloatBE(0);case 8:return t.readDoubleBE(0);default:throw new Error("Invalid float size: "+t.length)}},e.hex=function(e){return t.from(e.replace(/^0x/,""),"hex")},e.bin=function(e){let r=0,i=(e=e.replace(/\s/g,"")).length%8||8;const n=[];for(;i<=e.length;)n.push(parseInt(e.slice(r,i),2)),r=i,i+=8;return t.from(n)},e.extend=function(t={},...e){const r=e.length;for(let i=0;it===e[r]))},e.bufferEqual=function(e,r){if(null==e&&null==r)return!0;if(null==e||null==r)return!1;if(!t.isBuffer(e)||!t.isBuffer(r)||e.length!==r.length)return!1;const i=e.length;let n,s,o=!0;for(n=s=0;s=1e3&&this.flush(),this.batch.push(t)}flush(){this.batch.length>0&&this.promises.push(this.db.addResources(this.batch)),console.log(`Read ${this.count+=this.batch.length} records`),this.batch=[]}async finishIndexing(){this.flush(),this._finishLoad();try{await Promise.all(this.promises)}catch(t){console.warn(t)}this.promises=[]}_finishLoad(){}}},,,function(t,e,r){(function(t){function r(t){return Object.prototype.toString.call(t)}e.isArray=function(t){return Array.isArray?Array.isArray(t):"[object Array]"===r(t)},e.isBoolean=function(t){return"boolean"==typeof t},e.isNull=function(t){return null===t},e.isNullOrUndefined=function(t){return null==t},e.isNumber=function(t){return"number"==typeof t},e.isString=function(t){return"string"==typeof t},e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=function(t){return void 0===t},e.isRegExp=function(t){return"[object RegExp]"===r(t)},e.isObject=function(t){return"object"==typeof t&&null!==t},e.isDate=function(t){return"[object Date]"===r(t)},e.isError=function(t){return"[object Error]"===r(t)||t instanceof Error},e.isFunction=function(t){return"function"==typeof t},e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=t.isBuffer}).call(this,r(2).Buffer)},function(t,e,r){"use strict";const i=e.NAMESPACES={HTML:"http://www.w3.org/1999/xhtml",MATHML:"http://www.w3.org/1998/Math/MathML",SVG:"http://www.w3.org/2000/svg",XLINK:"http://www.w3.org/1999/xlink",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"};e.ATTRS={TYPE:"type",ACTION:"action",ENCODING:"encoding",PROMPT:"prompt",NAME:"name",COLOR:"color",FACE:"face",SIZE:"size"},e.DOCUMENT_MODE={NO_QUIRKS:"no-quirks",QUIRKS:"quirks",LIMITED_QUIRKS:"limited-quirks"};const n=e.TAG_NAMES={A:"a",ADDRESS:"address",ANNOTATION_XML:"annotation-xml",APPLET:"applet",AREA:"area",ARTICLE:"article",ASIDE:"aside",B:"b",BASE:"base",BASEFONT:"basefont",BGSOUND:"bgsound",BIG:"big",BLOCKQUOTE:"blockquote",BODY:"body",BR:"br",BUTTON:"button",CAPTION:"caption",CENTER:"center",CODE:"code",COL:"col",COLGROUP:"colgroup",DD:"dd",DESC:"desc",DETAILS:"details",DIALOG:"dialog",DIR:"dir",DIV:"div",DL:"dl",DT:"dt",EM:"em",EMBED:"embed",FIELDSET:"fieldset",FIGCAPTION:"figcaption",FIGURE:"figure",FONT:"font",FOOTER:"footer",FOREIGN_OBJECT:"foreignObject",FORM:"form",FRAME:"frame",FRAMESET:"frameset",H1:"h1",H2:"h2",H3:"h3",H4:"h4",H5:"h5",H6:"h6",HEAD:"head",HEADER:"header",HGROUP:"hgroup",HR:"hr",HTML:"html",I:"i",IMG:"img",IMAGE:"image",INPUT:"input",IFRAME:"iframe",KEYGEN:"keygen",LABEL:"label",LI:"li",LINK:"link",LISTING:"listing",MAIN:"main",MALIGNMARK:"malignmark",MARQUEE:"marquee",MATH:"math",MENU:"menu",META:"meta",MGLYPH:"mglyph",MI:"mi",MO:"mo",MN:"mn",MS:"ms",MTEXT:"mtext",NAV:"nav",NOBR:"nobr",NOFRAMES:"noframes",NOEMBED:"noembed",NOSCRIPT:"noscript",OBJECT:"object",OL:"ol",OPTGROUP:"optgroup",OPTION:"option",P:"p",PARAM:"param",PLAINTEXT:"plaintext",PRE:"pre",RB:"rb",RP:"rp",RT:"rt",RTC:"rtc",RUBY:"ruby",S:"s",SCRIPT:"script",SECTION:"section",SELECT:"select",SOURCE:"source",SMALL:"small",SPAN:"span",STRIKE:"strike",STRONG:"strong",STYLE:"style",SUB:"sub",SUMMARY:"summary",SUP:"sup",TABLE:"table",TBODY:"tbody",TEMPLATE:"template",TEXTAREA:"textarea",TFOOT:"tfoot",TD:"td",TH:"th",THEAD:"thead",TITLE:"title",TR:"tr",TRACK:"track",TT:"tt",U:"u",UL:"ul",SVG:"svg",VAR:"var",WBR:"wbr",XMP:"xmp"};e.SPECIAL_ELEMENTS={[i.HTML]:{[n.ADDRESS]:!0,[n.APPLET]:!0,[n.AREA]:!0,[n.ARTICLE]:!0,[n.ASIDE]:!0,[n.BASE]:!0,[n.BASEFONT]:!0,[n.BGSOUND]:!0,[n.BLOCKQUOTE]:!0,[n.BODY]:!0,[n.BR]:!0,[n.BUTTON]:!0,[n.CAPTION]:!0,[n.CENTER]:!0,[n.COL]:!0,[n.COLGROUP]:!0,[n.DD]:!0,[n.DETAILS]:!0,[n.DIR]:!0,[n.DIV]:!0,[n.DL]:!0,[n.DT]:!0,[n.EMBED]:!0,[n.FIELDSET]:!0,[n.FIGCAPTION]:!0,[n.FIGURE]:!0,[n.FOOTER]:!0,[n.FORM]:!0,[n.FRAME]:!0,[n.FRAMESET]:!0,[n.H1]:!0,[n.H2]:!0,[n.H3]:!0,[n.H4]:!0,[n.H5]:!0,[n.H6]:!0,[n.HEAD]:!0,[n.HEADER]:!0,[n.HGROUP]:!0,[n.HR]:!0,[n.HTML]:!0,[n.IFRAME]:!0,[n.IMG]:!0,[n.INPUT]:!0,[n.LI]:!0,[n.LINK]:!0,[n.LISTING]:!0,[n.MAIN]:!0,[n.MARQUEE]:!0,[n.MENU]:!0,[n.META]:!0,[n.NAV]:!0,[n.NOEMBED]:!0,[n.NOFRAMES]:!0,[n.NOSCRIPT]:!0,[n.OBJECT]:!0,[n.OL]:!0,[n.P]:!0,[n.PARAM]:!0,[n.PLAINTEXT]:!0,[n.PRE]:!0,[n.SCRIPT]:!0,[n.SECTION]:!0,[n.SELECT]:!0,[n.SOURCE]:!0,[n.STYLE]:!0,[n.SUMMARY]:!0,[n.TABLE]:!0,[n.TBODY]:!0,[n.TD]:!0,[n.TEMPLATE]:!0,[n.TEXTAREA]:!0,[n.TFOOT]:!0,[n.TH]:!0,[n.THEAD]:!0,[n.TITLE]:!0,[n.TR]:!0,[n.TRACK]:!0,[n.UL]:!0,[n.WBR]:!0,[n.XMP]:!0},[i.MATHML]:{[n.MI]:!0,[n.MO]:!0,[n.MN]:!0,[n.MS]:!0,[n.MTEXT]:!0,[n.ANNOTATION_XML]:!0},[i.SVG]:{[n.TITLE]:!0,[n.FOREIGN_OBJECT]:!0,[n.DESC]:!0}}},function(t,e,r){"use strict";var i=r(148),n=r(150);function s(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}e.parse=b,e.resolve=function(t,e){return b(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?b(t,!1,!0).resolveObject(e):e},e.format=function(t){n.isString(t)&&(t=b(t));return t instanceof s?t.format():s.prototype.format.call(t)},e.Url=s;var o=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),h=["'"].concat(c),l=["%","/","?",";","#"].concat(h),p=["/","?","#"],d=/^[+a-z0-9A-Z_-]{0,63}$/,f=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},w={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=r(69);function b(t,e,r){if(t&&n.isObject(t)&&t instanceof s)return t;var i=new s;return i.parse(t,e,r),i}s.prototype.parse=function(t,e,r){if(!n.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var s=t.indexOf("?"),a=-1!==s&&s127?O+="x":O+=I[F];if(!O.match(d)){var B=R.slice(0,C),L=R.slice(C+1),U=I.match(f);U&&(B.push(U[1]),L.unshift(U[2])),L.length&&(b="/"+L.join(".")+b),this.hostname=B.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),k||(this.hostname=i.toASCII(this.hostname));var M=this.port?":"+this.port:"",W=this.hostname||"";this.host=W+M,this.href+=this.host,k&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!m[v])for(C=0,N=h.length;C0)&&r.host.split("@"))&&(r.auth=k.shift(),r.host=r.hostname=k.shift());return r.search=t.search,r.query=t.query,n.isNull(r.pathname)&&n.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!A.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var x=A.slice(-1)[0],S=(r.host||t.host||A.length>1)&&("."===x||".."===x)||""===x,C=0,D=A.length;D>=0;D--)"."===(x=A[D])?A.splice(D,1):".."===x?(A.splice(D,1),C++):C&&(A.splice(D,1),C--);if(!E&&!v)for(;C--;C)A.unshift("..");!E||""===A[0]||A[0]&&"/"===A[0].charAt(0)||A.unshift(""),S&&"/"!==A.join("/").substr(-1)&&A.push("");var k,R=""===A[0]||A[0]&&"/"===A[0].charAt(0);T&&(r.hostname=r.host=R?"":A.length?A.shift():"",(k=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=k.shift(),r.host=r.hostname=k.shift()));return(E=E||r.host&&A.length)&&!R&&A.unshift(""),A.length?r.pathname=A.join("/"):(r.pathname=null,r.path=null),n.isNull(r.pathname)&&n.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},s.prototype.parseHost=function(){var t=this.host,e=a.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)}},function(t,e,r){"use strict";function i(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}i.prototype=Object.create(Error.prototype),i.prototype.constructor=i,i.prototype.toString=function(t){var e=this.name+": ";return e+=this.reason||"(unknown reason)",!t&&this.mark&&(e+=" "+this.mark.toString()),e},t.exports=i},function(t,e,r){"use strict";var i=r(14);t.exports=new i({include:[r(79)],implicit:[r(187),r(188)],explicit:[r(189),r(190),r(191),r(192)]})},function(t,e,r){(function(t){var i=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),r={},i=0;i=s)return t;switch(t){case"%s":return String(i[r++]);case"%d":return Number(i[r++]);case"%j":try{return JSON.stringify(i[r++])}catch(t){return"[Circular]"}default:return t}})),u=i[r];r=3&&(i.depth=arguments[2]),arguments.length>=4&&(i.colors=arguments[3]),f(r)?i.showHidden=r:r&&e._extend(i,r),y(i.showHidden)&&(i.showHidden=!1),y(i.depth)&&(i.depth=2),y(i.colors)&&(i.colors=!1),y(i.customInspect)&&(i.customInspect=!0),i.colors&&(i.stylize=u),h(i,t,i.depth)}function u(t,e){var r=a.styles[e];return r?"["+a.colors[r][0]+"m"+t+"["+a.colors[r][1]+"m":t}function c(t,e){return t}function h(t,r,i){if(t.customInspect&&r&&A(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var n=r.inspect(i,t);return g(n)||(n=h(t,n,i)),n}var s=function(t,e){if(y(e))return t.stylize("undefined","undefined");if(g(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(w(e))return t.stylize(""+e,"number");if(f(e))return t.stylize(""+e,"boolean");if(m(e))return t.stylize("null","null")}(t,r);if(s)return s;var o=Object.keys(r),a=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(r)),v(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return l(r);if(0===o.length){if(A(r)){var u=r.name?": "+r.name:"";return t.stylize("[Function"+u+"]","special")}if(b(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(E(r))return t.stylize(Date.prototype.toString.call(r),"date");if(v(r))return l(r)}var c,_="",T=!1,x=["{","}"];(d(r)&&(T=!0,x=["[","]"]),A(r))&&(_=" [Function"+(r.name?": "+r.name:"")+"]");return b(r)&&(_=" "+RegExp.prototype.toString.call(r)),E(r)&&(_=" "+Date.prototype.toUTCString.call(r)),v(r)&&(_=" "+l(r)),0!==o.length||T&&0!=r.length?i<0?b(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),c=T?function(t,e,r,i,n){for(var s=[],o=0,a=e.length;o=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(c,_,x)):x[0]+_+x[1]}function l(t){return"["+Error.prototype.toString.call(t)+"]"}function p(t,e,r,i,n,s){var o,a,u;if((u=Object.getOwnPropertyDescriptor(e,n)||{value:e[n]}).get?a=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(a=t.stylize("[Setter]","special")),D(i,n)||(o="["+n+"]"),a||(t.seen.indexOf(u.value)<0?(a=m(r)?h(t,u.value,null):h(t,u.value,r-1)).indexOf("\n")>-1&&(a=s?a.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+a.split("\n").map((function(t){return" "+t})).join("\n")):a=t.stylize("[Circular]","special")),y(o)){if(s&&n.match(/^\d+$/))return a;(o=JSON.stringify(""+n)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+a}function d(t){return Array.isArray(t)}function f(t){return"boolean"==typeof t}function m(t){return null===t}function w(t){return"number"==typeof t}function g(t){return"string"==typeof t}function y(t){return void 0===t}function b(t){return _(t)&&"[object RegExp]"===T(t)}function _(t){return"object"==typeof t&&null!==t}function E(t){return _(t)&&"[object Date]"===T(t)}function v(t){return _(t)&&("[object Error]"===T(t)||t instanceof Error)}function A(t){return"function"==typeof t}function T(t){return Object.prototype.toString.call(t)}function x(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(r){if(y(s)&&(s=t.env.NODE_DEBUG||""),r=r.toUpperCase(),!o[r])if(new RegExp("\\b"+r+"\\b","i").test(s)){var i=t.pid;o[r]=function(){var t=e.format.apply(e,arguments);console.error("%s %d: %s",r,i,t)}}else o[r]=function(){};return o[r]},e.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=d,e.isBoolean=f,e.isNull=m,e.isNullOrUndefined=function(t){return null==t},e.isNumber=w,e.isString=g,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=y,e.isRegExp=b,e.isObject=_,e.isDate=E,e.isError=v,e.isFunction=A,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(204);var S=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function C(){var t=new Date,e=[x(t.getHours()),x(t.getMinutes()),x(t.getSeconds())].join(":");return[t.getDate(),S[t.getMonth()],e].join(" ")}function D(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){console.log("%s - %s",C(),e.format.apply(e,arguments))},e.inherits=r(205),e._extend=function(t,e){if(!e||!_(e))return t;for(var r=Object.keys(e),i=r.length;i--;)t[r[i]]=e[r[i]];return t};var k="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(k&&t[k]){var e;if("function"!=typeof(e=t[k]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,k,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,i=new Promise((function(t,i){e=t,r=i})),n=[],s=0;s255||(0|t)!==t)throw new Error("value must be a small positive integer: "+t);this.value=t}toString(){return"simple("+this.value+")"}[i.inspect.custom](t,e){return"simple("+this.value+")"}inspect(t,e){return"simple("+this.value+")"}encodeCBOR(t){return t._pushInt(this.value,s.SIMPLE_FLOAT)}static isSimple(t){return t instanceof u}static decode(t,e=!0,r=!1){switch(t){case o.FALSE:return!1;case o.TRUE:return!0;case o.NULL:return e?null:a.NULL;case o.UNDEFINED:return e?void 0:a.UNDEFINED;case-1:if(!e||!r)throw new Error("Invalid BREAK");return a.BREAK;default:return new u(t)}}}t.exports=u},function(t,e,r){"use strict";(function(e){const i=r(3),n=r(25);class s extends i.Transform{constructor(t,r,i){let n,s;switch(null==i&&(i={}),typeof t){case"object":e.isBuffer(t)?(n=t,null!=r&&"object"==typeof r&&(i=r)):i=t;break;case"string":n=t,null!=r&&"object"==typeof r?i=r:s=r}null==i&&(i={}),null==n&&(n=i.input),null==s&&(s=i.inputEncoding),delete i.input,delete i.inputEncoding;const o=null==i.watchPipe||i.watchPipe;delete i.watchPipe;const a=!!i.readError;delete i.readError,super(i),this.readError=a,o&&this.on("pipe",t=>{const e=t._readableState.objectMode;if(this.length>0&&e!==this._readableState.objectMode)throw new Error("Do not switch objectMode in the middle of the stream");return this._readableState.objectMode=e,this._writableState.objectMode=e}),null!=n&&this.end(n,s)}static isNoFilter(t){return t instanceof this}static compare(t,e){if(!(t instanceof this))throw new TypeError("Arguments must be NoFilters");return t===e?0:t.compare(e)}static concat(t,r){if(!Array.isArray(t))throw new TypeError("list argument must be an Array of NoFilters");if(0===t.length||0===r)return e.alloc(0);null==r&&(r=t.reduce((t,e)=>{if(!(e instanceof s))throw new TypeError("list argument must be an Array of NoFilters");return t+e.length},0));let i=!0,n=!0;const o=t.map(t=>{if(!(t instanceof s))throw new TypeError("list argument must be an Array of NoFilters");const r=t.slice();return e.isBuffer(r)?n=!1:i=!1,r});if(i)return e.concat(o,r);if(n)return[].concat(...o).slice(0,r);throw new Error("Concatenating mixed object and byte streams not supported")}_transform(t,r,i){this._readableState.objectMode||e.isBuffer(t)||(t=e.from(t,r)),this.push(t),i()}_bufArray(){let t=this._readableState.buffer;if(!Array.isArray(t)){let e=t.head;for(t=[];null!=e;)t.push(e.data),e=e.next}return t}read(t){const e=super.read(t);if(null!=e){if(this.emit("read",e),this.readError&&e.length{this.on("finish",()=>{const i=this.read();null==t||e||(e=!0,t(null,i)),r(i)}),this.on("error",r=>{null==t||e||(e=!0,t(r)),i(r)})})}compare(t){if(!(t instanceof s))throw new TypeError("Arguments must be NoFilters");if(this===t)return 0;{const r=this.slice(),i=t.slice();if(e.isBuffer(r)&&e.isBuffer(i))return r.compare(i);throw new Error("Cannot compare streams in object mode")}}equals(t){return 0===this.compare(t)}slice(t,r){if(this._readableState.objectMode)return this._bufArray().slice(t,r);const i=this._bufArray();switch(i.length){case 0:return e.alloc(0);case 1:return i[0].slice(t,r);default:return e.concat(i).slice(t,r)}}get(t){return this.slice()[t]}toJSON(){const t=this.slice();return e.isBuffer(t)?t.toJSON():t}toString(t,r,i){const s=this.slice(r,i);if(!e.isBuffer(s))return JSON.stringify(s);if((!t||"utf8"===t)&&n.TextDecoder){return new n.TextDecoder("utf8",{fatal:!0,ignoreBOM:!0}).decode(s)}return s.toString(t,r,i)}inspect(t,e){return this[n.inspect.custom](t,e)}[n.inspect.custom](t,r){const i=this._bufArray().map(t=>e.isBuffer(t)?(null!=r?r.stylize:void 0)?r.stylize(t.toString("hex"),"string"):t.toString("hex"):n.inspect(t,r)).join(", ");return`${this.constructor.name} [${i}]`}get length(){return this._readableState.length}writeBigInt(t){let r=t.toString(16);if(t<0){const e=BigInt(Math.floor(r.length/2));r=(t=(BigInt(1)<=a.DIGIT_0&&t<=a.DIGIT_9}function d(t){return t>=a.LATIN_CAPITAL_A&&t<=a.LATIN_CAPITAL_Z}function f(t){return t>=a.LATIN_SMALL_A&&t<=a.LATIN_SMALL_Z}function m(t){return f(t)||d(t)}function w(t){return m(t)||p(t)}function g(t){return t>=a.LATIN_CAPITAL_A&&t<=a.LATIN_CAPITAL_F}function y(t){return t>=a.LATIN_SMALL_A&&t<=a.LATIN_SMALL_F}function b(t){return t+32}function _(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(t>>>10&1023|55296)+String.fromCharCode(56320|1023&t))}function E(t){return String.fromCharCode(b(t))}function v(t,e){const r=s[++t];let i=++t,n=i+r-1;for(;i<=n;){const t=i+n>>>1,o=s[t];if(oe))return s[t+r];n=t-1}}return-1}class A{constructor(){this.preprocessor=new i,this.tokenQueue=[],this.allowCDATA=!1,this.state=h,this.returnState="",this.charRefCode=-1,this.tempBuff=[],this.lastStartTagName="",this.consumedAfterSnapshot=-1,this.active=!1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr=null}_err(){}_errOnNextCodePoint(t){this._consume(),this._err(t),this._unconsume()}getNextToken(){for(;!this.tokenQueue.length&&this.active;){this.consumedAfterSnapshot=0;const t=this._consume();this._ensureHibernation()||this[this.state](t)}return this.tokenQueue.shift()}write(t,e){this.active=!0,this.preprocessor.write(t,e)}insertHtmlAtCurrentPos(t){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(t)}_ensureHibernation(){if(this.preprocessor.endOfChunkHit){for(;this.consumedAfterSnapshot>0;this.consumedAfterSnapshot--)this.preprocessor.retreat();return this.active=!1,this.tokenQueue.push({type:A.HIBERNATION_TOKEN}),!0}return!1}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_unconsume(){this.consumedAfterSnapshot--,this.preprocessor.retreat()}_reconsumeInState(t){this.state=t,this._unconsume()}_consumeSequenceIfMatch(t,e,r){let i=0,n=!0;const s=t.length;let o=0,u=e,c=void 0;for(;o0&&(u=this._consume(),i++),u===a.EOF){n=!1;break}if(c=t[o],u!==c&&(r||u!==b(c))){n=!1;break}}if(!n)for(;i--;)this._unconsume();return n}_isTempBufferEqualToScriptString(){if(this.tempBuff.length!==u.SCRIPT_STRING.length)return!1;for(let t=0;t0&&this._err(o.endTagWithAttributes),t.selfClosing&&this._err(o.endTagWithTrailingSolidus)),this.tokenQueue.push(t)}_emitCurrentCharacterToken(){this.currentCharacterToken&&(this.tokenQueue.push(this.currentCharacterToken),this.currentCharacterToken=null)}_emitEOFToken(){this._createEOFToken(),this._emitCurrentToken()}_appendCharToCurrentCharacterToken(t,e){this.currentCharacterToken&&this.currentCharacterToken.type!==t&&this._emitCurrentCharacterToken(),this.currentCharacterToken?this.currentCharacterToken.chars+=e:this._createCharacterToken(t,e)}_emitCodePoint(t){let e=A.CHARACTER_TOKEN;l(t)?e=A.WHITESPACE_CHARACTER_TOKEN:t===a.NULL&&(e=A.NULL_CHARACTER_TOKEN),this._appendCharToCurrentCharacterToken(e,_(t))}_emitSeveralCodePoints(t){for(let e=0;e-1;){const t=s[i],n=t<7;n&&1&t&&(e=2&t?[s[++i],s[++i]]:[s[++i]],r=0);const o=this._consume();if(this.tempBuff.push(o),r++,o===a.EOF)break;i=n?4&t?v(i,o):-1:o===t?++i:-1}for(;r--;)this.tempBuff.pop(),this._unconsume();return e}_isCharacterReferenceInAttribute(){return"ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE"===this.returnState||"ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE"===this.returnState||"ATTRIBUTE_VALUE_UNQUOTED_STATE"===this.returnState}_isCharacterReferenceAttributeQuirk(t){if(!t&&this._isCharacterReferenceInAttribute()){const t=this._consume();return this._unconsume(),t===a.EQUALS_SIGN||w(t)}return!1}_flushCodePointsConsumedAsCharacterReference(){if(this._isCharacterReferenceInAttribute())for(let t=0;t")):t===a.NULL?(this._err(o.unexpectedNullCharacter),this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitChars(n.REPLACEMENT_CHARACTER)):t===a.EOF?(this._err(o.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitCodePoint(t))}SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE(t){t===a.SOLIDUS?(this.tempBuff=[],this.state="SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE"):m(t)?(this.tempBuff=[],this._emitChars("<"),this._reconsumeInState("SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE")):(this._emitChars("<"),this._reconsumeInState("SCRIPT_DATA_ESCAPED_STATE"))}SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE(t){m(t)?(this._createEndTagToken(),this._reconsumeInState("SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE")):(this._emitChars("")):t===a.NULL?(this._err(o.unexpectedNullCharacter),this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitChars(n.REPLACEMENT_CHARACTER)):t===a.EOF?(this._err(o.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitCodePoint(t))}SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE(t){t===a.SOLIDUS?(this.tempBuff=[],this.state="SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE",this._emitChars("/")):this._reconsumeInState("SCRIPT_DATA_DOUBLE_ESCAPED_STATE")}SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE(t){l(t)||t===a.SOLIDUS||t===a.GREATER_THAN_SIGN?(this.state=this._isTempBufferEqualToScriptString()?"SCRIPT_DATA_ESCAPED_STATE":"SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitCodePoint(t)):d(t)?(this.tempBuff.push(b(t)),this._emitCodePoint(t)):f(t)?(this.tempBuff.push(t),this._emitCodePoint(t)):this._reconsumeInState("SCRIPT_DATA_DOUBLE_ESCAPED_STATE")}BEFORE_ATTRIBUTE_NAME_STATE(t){l(t)||(t===a.SOLIDUS||t===a.GREATER_THAN_SIGN||t===a.EOF?this._reconsumeInState("AFTER_ATTRIBUTE_NAME_STATE"):t===a.EQUALS_SIGN?(this._err(o.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state="ATTRIBUTE_NAME_STATE"):(this._createAttr(""),this._reconsumeInState("ATTRIBUTE_NAME_STATE")))}ATTRIBUTE_NAME_STATE(t){l(t)||t===a.SOLIDUS||t===a.GREATER_THAN_SIGN||t===a.EOF?(this._leaveAttrName("AFTER_ATTRIBUTE_NAME_STATE"),this._unconsume()):t===a.EQUALS_SIGN?this._leaveAttrName("BEFORE_ATTRIBUTE_VALUE_STATE"):d(t)?this.currentAttr.name+=E(t):t===a.QUOTATION_MARK||t===a.APOSTROPHE||t===a.LESS_THAN_SIGN?(this._err(o.unexpectedCharacterInAttributeName),this.currentAttr.name+=_(t)):t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentAttr.name+=n.REPLACEMENT_CHARACTER):this.currentAttr.name+=_(t)}AFTER_ATTRIBUTE_NAME_STATE(t){l(t)||(t===a.SOLIDUS?this.state="SELF_CLOSING_START_TAG_STATE":t===a.EQUALS_SIGN?this.state="BEFORE_ATTRIBUTE_VALUE_STATE":t===a.GREATER_THAN_SIGN?(this.state=h,this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInTag),this._emitEOFToken()):(this._createAttr(""),this._reconsumeInState("ATTRIBUTE_NAME_STATE")))}BEFORE_ATTRIBUTE_VALUE_STATE(t){l(t)||(t===a.QUOTATION_MARK?this.state="ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE":t===a.APOSTROPHE?this.state="ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE":t===a.GREATER_THAN_SIGN?(this._err(o.missingAttributeValue),this.state=h,this._emitCurrentToken()):this._reconsumeInState("ATTRIBUTE_VALUE_UNQUOTED_STATE"))}ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE(t){t===a.QUOTATION_MARK?this.state="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE":t===a.AMPERSAND?(this.returnState="ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE",this.state="CHARACTER_REFERENCE_STATE"):t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentAttr.value+=n.REPLACEMENT_CHARACTER):t===a.EOF?(this._err(o.eofInTag),this._emitEOFToken()):this.currentAttr.value+=_(t)}ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE(t){t===a.APOSTROPHE?this.state="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE":t===a.AMPERSAND?(this.returnState="ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE",this.state="CHARACTER_REFERENCE_STATE"):t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentAttr.value+=n.REPLACEMENT_CHARACTER):t===a.EOF?(this._err(o.eofInTag),this._emitEOFToken()):this.currentAttr.value+=_(t)}ATTRIBUTE_VALUE_UNQUOTED_STATE(t){l(t)?this._leaveAttrValue("BEFORE_ATTRIBUTE_NAME_STATE"):t===a.AMPERSAND?(this.returnState="ATTRIBUTE_VALUE_UNQUOTED_STATE",this.state="CHARACTER_REFERENCE_STATE"):t===a.GREATER_THAN_SIGN?(this._leaveAttrValue(h),this._emitCurrentToken()):t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentAttr.value+=n.REPLACEMENT_CHARACTER):t===a.QUOTATION_MARK||t===a.APOSTROPHE||t===a.LESS_THAN_SIGN||t===a.EQUALS_SIGN||t===a.GRAVE_ACCENT?(this._err(o.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=_(t)):t===a.EOF?(this._err(o.eofInTag),this._emitEOFToken()):this.currentAttr.value+=_(t)}AFTER_ATTRIBUTE_VALUE_QUOTED_STATE(t){l(t)?this._leaveAttrValue("BEFORE_ATTRIBUTE_NAME_STATE"):t===a.SOLIDUS?this._leaveAttrValue("SELF_CLOSING_START_TAG_STATE"):t===a.GREATER_THAN_SIGN?(this._leaveAttrValue(h),this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInTag),this._emitEOFToken()):(this._err(o.missingWhitespaceBetweenAttributes),this._reconsumeInState("BEFORE_ATTRIBUTE_NAME_STATE"))}SELF_CLOSING_START_TAG_STATE(t){t===a.GREATER_THAN_SIGN?(this.currentToken.selfClosing=!0,this.state=h,this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInTag),this._emitEOFToken()):(this._err(o.unexpectedSolidusInTag),this._reconsumeInState("BEFORE_ATTRIBUTE_NAME_STATE"))}BOGUS_COMMENT_STATE(t){t===a.GREATER_THAN_SIGN?(this.state=h,this._emitCurrentToken()):t===a.EOF?(this._emitCurrentToken(),this._emitEOFToken()):t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.data+=n.REPLACEMENT_CHARACTER):this.currentToken.data+=_(t)}MARKUP_DECLARATION_OPEN_STATE(t){this._consumeSequenceIfMatch(u.DASH_DASH_STRING,t,!0)?(this._createCommentToken(),this.state="COMMENT_START_STATE"):this._consumeSequenceIfMatch(u.DOCTYPE_STRING,t,!1)?this.state="DOCTYPE_STATE":this._consumeSequenceIfMatch(u.CDATA_START_STRING,t,!0)?this.allowCDATA?this.state="CDATA_SECTION_STATE":(this._err(o.cdataInHtmlContent),this._createCommentToken(),this.currentToken.data="[CDATA[",this.state="BOGUS_COMMENT_STATE"):this._ensureHibernation()||(this._err(o.incorrectlyOpenedComment),this._createCommentToken(),this._reconsumeInState("BOGUS_COMMENT_STATE"))}COMMENT_START_STATE(t){t===a.HYPHEN_MINUS?this.state="COMMENT_START_DASH_STATE":t===a.GREATER_THAN_SIGN?(this._err(o.abruptClosingOfEmptyComment),this.state=h,this._emitCurrentToken()):this._reconsumeInState("COMMENT_STATE")}COMMENT_START_DASH_STATE(t){t===a.HYPHEN_MINUS?this.state="COMMENT_END_STATE":t===a.GREATER_THAN_SIGN?(this._err(o.abruptClosingOfEmptyComment),this.state=h,this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState("COMMENT_STATE"))}COMMENT_STATE(t){t===a.HYPHEN_MINUS?this.state="COMMENT_END_DASH_STATE":t===a.LESS_THAN_SIGN?(this.currentToken.data+="<",this.state="COMMENT_LESS_THAN_SIGN_STATE"):t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.data+=n.REPLACEMENT_CHARACTER):t===a.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.data+=_(t)}COMMENT_LESS_THAN_SIGN_STATE(t){t===a.EXCLAMATION_MARK?(this.currentToken.data+="!",this.state="COMMENT_LESS_THAN_SIGN_BANG_STATE"):t===a.LESS_THAN_SIGN?this.currentToken.data+="!":this._reconsumeInState("COMMENT_STATE")}COMMENT_LESS_THAN_SIGN_BANG_STATE(t){t===a.HYPHEN_MINUS?this.state="COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE":this._reconsumeInState("COMMENT_STATE")}COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE(t){t===a.HYPHEN_MINUS?this.state="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE":this._reconsumeInState("COMMENT_END_DASH_STATE")}COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE(t){t!==a.GREATER_THAN_SIGN&&t!==a.EOF&&this._err(o.nestedComment),this._reconsumeInState("COMMENT_END_STATE")}COMMENT_END_DASH_STATE(t){t===a.HYPHEN_MINUS?this.state="COMMENT_END_STATE":t===a.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState("COMMENT_STATE"))}COMMENT_END_STATE(t){t===a.GREATER_THAN_SIGN?(this.state=h,this._emitCurrentToken()):t===a.EXCLAMATION_MARK?this.state="COMMENT_END_BANG_STATE":t===a.HYPHEN_MINUS?this.currentToken.data+="-":t===a.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--",this._reconsumeInState("COMMENT_STATE"))}COMMENT_END_BANG_STATE(t){t===a.HYPHEN_MINUS?(this.currentToken.data+="--!",this.state="COMMENT_END_DASH_STATE"):t===a.GREATER_THAN_SIGN?(this._err(o.incorrectlyClosedComment),this.state=h,this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--!",this._reconsumeInState("COMMENT_STATE"))}DOCTYPE_STATE(t){l(t)?this.state="BEFORE_DOCTYPE_NAME_STATE":t===a.GREATER_THAN_SIGN?this._reconsumeInState("BEFORE_DOCTYPE_NAME_STATE"):t===a.EOF?(this._err(o.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingWhitespaceBeforeDoctypeName),this._reconsumeInState("BEFORE_DOCTYPE_NAME_STATE"))}BEFORE_DOCTYPE_NAME_STATE(t){l(t)||(d(t)?(this._createDoctypeToken(E(t)),this.state="DOCTYPE_NAME_STATE"):t===a.NULL?(this._err(o.unexpectedNullCharacter),this._createDoctypeToken(n.REPLACEMENT_CHARACTER),this.state="DOCTYPE_NAME_STATE"):t===a.GREATER_THAN_SIGN?(this._err(o.missingDoctypeName),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=h):t===a.EOF?(this._err(o.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._createDoctypeToken(_(t)),this.state="DOCTYPE_NAME_STATE"))}DOCTYPE_NAME_STATE(t){l(t)?this.state="AFTER_DOCTYPE_NAME_STATE":t===a.GREATER_THAN_SIGN?(this.state=h,this._emitCurrentToken()):d(t)?this.currentToken.name+=E(t):t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.name+=n.REPLACEMENT_CHARACTER):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.name+=_(t)}AFTER_DOCTYPE_NAME_STATE(t){l(t)||(t===a.GREATER_THAN_SIGN?(this.state=h,this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this._consumeSequenceIfMatch(u.PUBLIC_STRING,t,!1)?this.state="AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE":this._consumeSequenceIfMatch(u.SYSTEM_STRING,t,!1)?this.state="AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE":this._ensureHibernation()||(this._err(o.invalidCharacterSequenceAfterDoctypeName),this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))}AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE(t){l(t)?this.state="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE":t===a.QUOTATION_MARK?(this._err(o.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE"):t===a.APOSTROPHE?(this._err(o.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE"):t===a.GREATER_THAN_SIGN?(this._err(o.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=h,this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE"))}BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE(t){l(t)||(t===a.QUOTATION_MARK?(this.currentToken.publicId="",this.state="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE"):t===a.APOSTROPHE?(this.currentToken.publicId="",this.state="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE"):t===a.GREATER_THAN_SIGN?(this._err(o.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=h,this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))}DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE(t){t===a.QUOTATION_MARK?this.state="AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE":t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.publicId+=n.REPLACEMENT_CHARACTER):t===a.GREATER_THAN_SIGN?(this._err(o.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=h):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=_(t)}DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE(t){t===a.APOSTROPHE?this.state="AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE":t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.publicId+=n.REPLACEMENT_CHARACTER):t===a.GREATER_THAN_SIGN?(this._err(o.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=h):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=_(t)}AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE(t){l(t)?this.state="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE":t===a.GREATER_THAN_SIGN?(this.state=h,this._emitCurrentToken()):t===a.QUOTATION_MARK?(this._err(o.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE"):t===a.APOSTROPHE?(this._err(o.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE"):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE"))}BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE(t){l(t)||(t===a.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=h):t===a.QUOTATION_MARK?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE"):t===a.APOSTROPHE?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE"):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))}AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE(t){l(t)?this.state="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE":t===a.QUOTATION_MARK?(this._err(o.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE"):t===a.APOSTROPHE?(this._err(o.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE"):t===a.GREATER_THAN_SIGN?(this._err(o.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=h,this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE"))}BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE(t){l(t)||(t===a.QUOTATION_MARK?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE"):t===a.APOSTROPHE?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE"):t===a.GREATER_THAN_SIGN?(this._err(o.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=h,this._emitCurrentToken()):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))}DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE(t){t===a.QUOTATION_MARK?this.state="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE":t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.systemId+=n.REPLACEMENT_CHARACTER):t===a.GREATER_THAN_SIGN?(this._err(o.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=h):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=_(t)}DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE(t){t===a.APOSTROPHE?this.state="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE":t===a.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.systemId+=n.REPLACEMENT_CHARACTER):t===a.GREATER_THAN_SIGN?(this._err(o.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=h):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=_(t)}AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE(t){l(t)||(t===a.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=h):t===a.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.unexpectedCharacterAfterDoctypeSystemIdentifier),this._reconsumeInState("BOGUS_DOCTYPE_STATE")))}BOGUS_DOCTYPE_STATE(t){t===a.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=h):t===a.NULL?this._err(o.unexpectedNullCharacter):t===a.EOF&&(this._emitCurrentToken(),this._emitEOFToken())}CDATA_SECTION_STATE(t){t===a.RIGHT_SQUARE_BRACKET?this.state="CDATA_SECTION_BRACKET_STATE":t===a.EOF?(this._err(o.eofInCdata),this._emitEOFToken()):this._emitCodePoint(t)}CDATA_SECTION_BRACKET_STATE(t){t===a.RIGHT_SQUARE_BRACKET?this.state="CDATA_SECTION_END_STATE":(this._emitChars("]"),this._reconsumeInState("CDATA_SECTION_STATE"))}CDATA_SECTION_END_STATE(t){t===a.GREATER_THAN_SIGN?this.state=h:t===a.RIGHT_SQUARE_BRACKET?this._emitChars("]"):(this._emitChars("]]"),this._reconsumeInState("CDATA_SECTION_STATE"))}CHARACTER_REFERENCE_STATE(t){this.tempBuff=[a.AMPERSAND],t===a.NUMBER_SIGN?(this.tempBuff.push(t),this.state="NUMERIC_CHARACTER_REFERENCE_STATE"):w(t)?this._reconsumeInState("NAMED_CHARACTER_REFERENCE_STATE"):(this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}NAMED_CHARACTER_REFERENCE_STATE(t){const e=this._matchNamedCharacterReference(t);if(this._ensureHibernation())this.tempBuff=[a.AMPERSAND];else if(e){const t=this.tempBuff[this.tempBuff.length-1]===a.SEMICOLON;this._isCharacterReferenceAttributeQuirk(t)||(t||this._errOnNextCodePoint(o.missingSemicolonAfterCharacterReference),this.tempBuff=e),this._flushCodePointsConsumedAsCharacterReference(),this.state=this.returnState}else this._flushCodePointsConsumedAsCharacterReference(),this.state="AMBIGUOS_AMPERSAND_STATE"}AMBIGUOS_AMPERSAND_STATE(t){w(t)?this._isCharacterReferenceInAttribute()?this.currentAttr.value+=_(t):this._emitCodePoint(t):(t===a.SEMICOLON&&this._err(o.unknownNamedCharacterReference),this._reconsumeInState(this.returnState))}NUMERIC_CHARACTER_REFERENCE_STATE(t){this.charRefCode=0,t===a.LATIN_SMALL_X||t===a.LATIN_CAPITAL_X?(this.tempBuff.push(t),this.state="HEXADEMICAL_CHARACTER_REFERENCE_START_STATE"):this._reconsumeInState("DECIMAL_CHARACTER_REFERENCE_START_STATE")}HEXADEMICAL_CHARACTER_REFERENCE_START_STATE(t){!function(t){return p(t)||g(t)||y(t)}(t)?(this._err(o.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)):this._reconsumeInState("HEXADEMICAL_CHARACTER_REFERENCE_STATE")}DECIMAL_CHARACTER_REFERENCE_START_STATE(t){p(t)?this._reconsumeInState("DECIMAL_CHARACTER_REFERENCE_STATE"):(this._err(o.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}HEXADEMICAL_CHARACTER_REFERENCE_STATE(t){g(t)?this.charRefCode=16*this.charRefCode+t-55:y(t)?this.charRefCode=16*this.charRefCode+t-87:p(t)?this.charRefCode=16*this.charRefCode+t-48:t===a.SEMICOLON?this.state="NUMERIC_CHARACTER_REFERENCE_END_STATE":(this._err(o.missingSemicolonAfterCharacterReference),this._reconsumeInState("NUMERIC_CHARACTER_REFERENCE_END_STATE"))}DECIMAL_CHARACTER_REFERENCE_STATE(t){p(t)?this.charRefCode=10*this.charRefCode+t-48:t===a.SEMICOLON?this.state="NUMERIC_CHARACTER_REFERENCE_END_STATE":(this._err(o.missingSemicolonAfterCharacterReference),this._reconsumeInState("NUMERIC_CHARACTER_REFERENCE_END_STATE"))}NUMERIC_CHARACTER_REFERENCE_END_STATE(){if(this.charRefCode===a.NULL)this._err(o.nullCharacterReference),this.charRefCode=a.REPLACEMENT_CHARACTER;else if(this.charRefCode>1114111)this._err(o.characterReferenceOutsideUnicodeRange),this.charRefCode=a.REPLACEMENT_CHARACTER;else if(n.isSurrogate(this.charRefCode))this._err(o.surrogateCharacterReference),this.charRefCode=a.REPLACEMENT_CHARACTER;else if(n.isUndefinedCodePoint(this.charRefCode))this._err(o.noncharacterCharacterReference);else if(n.isControlCodePoint(this.charRefCode)||this.charRefCode===a.CARRIAGE_RETURN){this._err(o.controlCharacterReference);const t=c[this.charRefCode];t&&(this.charRefCode=t)}this.tempBuff=[this.charRefCode],this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)}}A.CHARACTER_TOKEN="CHARACTER_TOKEN",A.NULL_CHARACTER_TOKEN="NULL_CHARACTER_TOKEN",A.WHITESPACE_CHARACTER_TOKEN="WHITESPACE_CHARACTER_TOKEN",A.START_TAG_TOKEN="START_TAG_TOKEN",A.END_TAG_TOKEN="END_TAG_TOKEN",A.COMMENT_TOKEN="COMMENT_TOKEN",A.DOCTYPE_TOKEN="DOCTYPE_TOKEN",A.EOF_TOKEN="EOF_TOKEN",A.HIBERNATION_TOKEN="HIBERNATION_TOKEN",A.MODE={DATA:h,RCDATA:"RCDATA_STATE",RAWTEXT:"RAWTEXT_STATE",SCRIPT_DATA:"SCRIPT_DATA_STATE",PLAINTEXT:"PLAINTEXT_STATE"},A.getTokenAttr=function(t,e){for(let r=t.attrs.length-1;r>=0;r--)if(t.attrs[r].name===e)return t.attrs[r].value;return null},t.exports=A},function(t,e,r){"use strict";const i=r(4),n=r(4).buildOptions,s=r(171);"<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,i.nameRegexp);!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const o={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,ignoreNameSpace:!1,allowBooleanAttributes:!1,parseNodeValue:!0,parseAttributeValue:!1,arrayMode:!1,trimValues:!0,cdataTagName:!1,cdataPositionChar:"\\c",tagValueProcessor:function(t,e){return t},attrValueProcessor:function(t,e){return t},stopNodes:[]};e.defaultOptions=o;const a=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","ignoreNameSpace","allowBooleanAttributes","parseNodeValue","parseAttributeValue","arrayMode","trimValues","cdataTagName","cdataPositionChar","tagValueProcessor","attrValueProcessor","parseTrueNumberOnly","stopNodes"];function u(t,e,r){return e&&(r.trimValues&&(e=e.trim()),e=h(e=r.tagValueProcessor(e,t),r.parseNodeValue,r.parseTrueNumberOnly)),e}function c(t,e){if(e.ignoreNameSpace){const e=t.split(":"),r="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=r+e[1])}return t}function h(t,e,r){if(e&&"string"==typeof t){let e;return""===t.trim()||isNaN(t)?e="true"===t||"false"!==t&&t:(-1!==t.indexOf("0x")?e=Number.parseInt(t,16):-1!==t.indexOf(".")?(e=Number.parseFloat(t),t=t.replace(/\.?0+$/,"")):e=Number.parseInt(t,10),r&&(e=String(e)===t?e:t)),e}return i.isExist(t)?t:""}e.props=a;const l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])(.*?)\\3)?","g");function p(t,e){if(!e.ignoreAttributes&&"string"==typeof t){t=t.replace(/\r?\n/g," ");const r=i.getAllMatches(t,l),n=r.length,s={};for(let t=0;t"===e)return{data:i,index:n};"\t"===e&&(e=" ")}i+=e}}function f(t,e,r,i){const n=t.indexOf(e,r);if(-1===n)throw new Error(i);return n+e.length-1}e.getTraversalObj=function(t,e){t=t.replace(/(\r\n)|\n/," "),e=n(e,o,a);const r=new s("!xml");let c=r,h="";for(let r=0;r",r,"Closing Tag is not closed.");let s=t.substring(r+2,n).trim();if(e.ignoreNameSpace){const t=s.indexOf(":");-1!==t&&(s=s.substr(t+1))}c&&(c.val?c.val=i.getValue(c.val)+""+u(s,h,e):c.val=u(s,h,e)),e.stopNodes.length&&e.stopNodes.includes(c.tagname)&&(c.child=[],null==c.attrsMap&&(c.attrsMap={}),c.val=t.substr(c.startIndex+1,r-c.startIndex-1)),c=c.parent,h="",r=n}else if("?"===t[r+1])r=f(t,"?>",r,"Pi Tag is not closed.");else if("!--"===t.substr(r+1,3))r=f(t,"--\x3e",r,"Comment is not closed.");else if("!D"===t.substr(r+1,2)){const e=f(t,">",r,"DOCTYPE is not closed.");r=t.substring(r,e).indexOf("[")>=0?t.indexOf("]>",r)+1:e}else if("!["===t.substr(r+1,2)){const n=f(t,"]]>",r,"CDATA is not closed.")-2,o=t.substring(r+9,n);if(h&&(c.val=i.getValue(c.val)+""+u(c.tagname,h,e),h=""),e.cdataTagName){const t=new s(e.cdataTagName,c,o);c.addChild(t),c.val=i.getValue(c.val)+e.cdataPositionChar,o&&(t.val=o)}else c.val=(c.val||"")+(o||"");r=n+2}else{const n=d(t,r+1);let o=n.data;const a=n.index,l=o.indexOf(" ");let f=o;if(-1!==l&&(f=o.substr(0,l).trimRight(),o=o.substr(l+1)),e.ignoreNameSpace){const t=f.indexOf(":");-1!==t&&(f=f.substr(t+1))}if(c&&h&&"!xml"!==c.tagname&&(c.val=i.getValue(c.val)+""+u(c.tagname,h,e)),o.length>0&&o.lastIndexOf("/")===o.length-1){"/"===f[f.length-1]?(f=f.substr(0,f.length-1),o=f):o=o.substr(0,o.length-1);const t=new s(f,c,"");f!==o&&(t.attrsMap=p(o,e)),c.addChild(t)}else{const t=new s(f,c);e.stopNodes.length&&e.stopNodes.includes(t.tagname)&&(t.startIndex=a),f!==o&&(t.attrsMap=p(o,e)),c.addChild(t),c=t}h="",r=a}else h+=t[r]}return r}},function(t,e,r){"use strict";var i=r(14);t.exports=i.DEFAULT=new i({include:[r(24)],explicit:[r(193),r(194),r(195)]})},function(t,e,r){"use strict";(function(e){const i=r(206),n=r(46),s=r(26),o=r(15),a=r(8).BigNumber,u=r(27),c=r(9),h=c.MT,l=c.NUMBYTES,p=(c.SIMPLE,c.SYMS),d=o.bigIntize(c.BI),f=c.BN,m=Symbol("count"),w=(Symbol("pending_key"),Symbol("major type")),g=Symbol("error"),y=Symbol("not found");function b(t,e,r){const i=[];return i[m]=r,i[p.PARENT]=t,i[w]=e,i}function _(t,e){const r=new u;return r[m]=-1,r[p.PARENT]=t,r[w]=e,r}function E(t){return o.bufferToBigInt(t)}function v(t){return d.MINUS_ONE-o.bufferToBigInt(t)}class A extends i{constructor(t){const e=(t=t||{}).tags;delete t.tags;const r=null!=t.max_depth?t.max_depth:-1;delete t.max_depth;const i=!!o.hasBigInt&&!!t.bigint;delete t.bigint,super(t),this.running=!0,this.max_depth=r,this.tags=e,i&&(null==this.tags&&(this.tags={}),null==this.tags[2]&&(this.tags[2]=E),null==this.tags[3]&&(this.tags[3]=v))}static nullcheck(t){switch(t){case p.NULL:return null;case p.UNDEFINED:return;case y:throw new Error("Value not found");default:return t}}static decodeFirstSync(t,e){let r,i={};switch(typeof(e=e||{encoding:"hex"})){case"string":r=e;break;case"object":i=o.extend({},e),r=i.encoding,delete i.encoding}const n=new A(i),s=new u(t,null!=r?r:o.guessEncoding(t)),a=n._parse();let c=a.next();for(;!c.done;){const t=s.read(c.value);if(null==t||t.length!==c.value)throw new Error("Insufficient data");c=a.next(t)}return A.nullcheck(c.value)}static decodeAllSync(t,e){let r,i={};switch(typeof(e=e||{encoding:"hex"})){case"string":r=e;break;case"object":i=o.extend({},e),r=i.encoding,delete i.encoding}const n=new A(i),s=new u(t,null!=r?r:o.guessEncoding(t)),a=[];for(;s.length>0;){const t=n._parse();let e=t.next();for(;!e.done;){const r=s.read(e.value);if(null==r||r.length!==e.value)throw new Error("Insufficient data");e=t.next(r)}a.push(A.nullcheck(e.value))}return a}static decodeFirst(t,e,r){let i={},n=!1,s="hex";switch(typeof e){case"function":r=e,s=o.guessEncoding(t);break;case"string":s=e;break;case"object":i=o.extend({},e),s=null!=i.encoding?i.encoding:o.guessEncoding(t),delete i.encoding,n=null!=i.required&&i.required,delete i.required}const a=new A(i);let u,c=y;return a.on("data",t=>{c=A.nullcheck(t),a.close()}),"function"==typeof r?(a.once("error",t=>{const e=c;return c=g,a.close(),r(t,e)}),a.once("end",()=>{switch(c){case y:return n?r(new Error("No CBOR found")):r(null,c);case g:return;default:return r(null,c)}})):u=new Promise((t,e)=>(a.once("error",t=>(c=g,a.close(),e(t))),a.once("end",()=>{switch(c){case y:return n?e(new Error("No CBOR found")):t(c);case g:return;default:return t(c)}}))),a.end(t,s),u}static decodeAll(t,e,r){let i={},n="hex";switch(typeof e){case"function":r=e,n=o.guessEncoding(t);break;case"string":n=e;break;case"object":i=o.extend({},e),n=null!=i.encoding?i.encoding:o.guessEncoding(t),delete i.encoding}const s=new A(i);let a;const u=[];return s.on("data",t=>u.push(A.nullcheck(t))),"function"==typeof r?(s.on("error",r),s.on("end",()=>r(null,u))):a=new Promise((t,e)=>{s.on("error",e),s.on("end",()=>t(u))}),s.end(t,n),a}close(){this.running=!1,this.__fresh=!0}*_parse(){let t=null,r=0,i=null;for(;;){if(this.max_depth>=0&&r>this.max_depth)throw new Error("Maximum depth "+this.max_depth+" exceeded");const c=(yield 1)[0];if(!this.running)throw new Error("Unexpected data: 0x"+c.toString(16));const d=c>>5,g=31&c,y=null!=t?t[w]:void 0,E=null!=t?t.length:void 0;switch(g){case l.ONE:this.emit("more-bytes",d,1,y,E),i=(yield 1)[0];break;case l.TWO:case l.FOUR:case l.EIGHT:const t=1<0&&o.length>n&&!o.warned){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=o.length,a=u,console&&console.warn&&console.warn(a)}return t}function p(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(t,e,r){var i={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},n=p.bind(i);return n.listener=r,i.wrapFn=n,n}function f(t,e,r){var i=t._events;if(void 0===i)return[];var n=i[e];return void 0===n?[]:"function"==typeof n?r?[n.listener||n]:[n]:r?function(t){for(var e=new Array(t.length),r=0;r0&&(o=e[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var u=n[t];if(void 0===u)return!1;if("function"==typeof u)s(u,this,e);else{var c=u.length,h=w(u,c);for(r=0;r=0;s--)if(r[s]===e||r[s].listener===e){o=r[s].listener,n=s;break}if(n<0)return this;0===n?r.shift():function(t,e){for(;e+1=0;i--)this.removeListener(t,e[i]);return this},a.prototype.listeners=function(t){return f(this,t,!0)},a.prototype.rawListeners=function(t){return f(this,t,!1)},a.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):m.call(t,e)},a.prototype.listenerCount=m,a.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},function(t,e,r){(e=t.exports=r(61)).Stream=e,e.Readable=e,e.Writable=r(38),e.Duplex=r(7),e.Transform=r(66),e.PassThrough=r(131)},function(t,e,r){var i=r(2),n=i.Buffer;function s(t,e){for(var r in t)e[r]=t[r]}function o(t,e,r){return n(t,e,r)}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=i:(s(i,e),e.Buffer=o),s(n,o),o.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return n(t,e,r)},o.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var i=n(t);return void 0!==e?"string"==typeof r?i.fill(e,r):i.fill(e):i.fill(0),i},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i.SlowBuffer(t)}},function(t,e,r){"use strict";(function(e,i,n){var s=r(30);function o(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var i=t.entry;t.entry=null;for(;i;){var n=i.callback;e.pendingcb--,n(r),i=i.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}t.exports=y;var a,u=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?i:s.nextTick;y.WritableState=g;var c=Object.create(r(20));c.inherits=r(11);var h={deprecate:r(129)},l=r(63),p=r(37).Buffer,d=n.Uint8Array||function(){};var f,m=r(64);function w(){}function g(t,e){a=a||r(7),t=t||{};var i=e instanceof a;this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var n=t.highWaterMark,c=t.writableHighWaterMark,h=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:i&&(c||0===c)?c:h,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===t.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,i=r.sync,n=r.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,i,n){--e.pendingcb,r?(s.nextTick(n,i),s.nextTick(T,t,e),t._writableState.errorEmitted=!0,t.emit("error",i)):(n(i),t._writableState.errorEmitted=!0,t.emit("error",i),T(t,e))}(t,r,i,e,n);else{var o=v(r);o||r.corked||r.bufferProcessing||!r.bufferedRequest||E(t,r),i?u(_,t,r,o,n):_(t,r,o,n)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function y(t){if(a=a||r(7),!(f.call(y,this)||this instanceof a))return new y(t);this._writableState=new g(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),l.call(this)}function b(t,e,r,i,n,s,o){e.writelen=i,e.writecb=o,e.writing=!0,e.sync=!0,r?t._writev(n,e.onwrite):t._write(n,s,e.onwrite),e.sync=!1}function _(t,e,r,i){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,i(),T(t,e)}function E(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var i=e.bufferedRequestCount,n=new Array(i),s=e.corkedRequestsFree;s.entry=r;for(var a=0,u=!0;r;)n[a]=r,r.isBuf||(u=!1),r=r.next,a+=1;n.allBuffers=u,b(t,e,!0,e.length,n,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new o(e),e.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,h=r.encoding,l=r.callback;if(b(t,e,!1,e.objectMode?1:c.length,c,h,l),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function v(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function A(t,e){t._final((function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),T(t,e)}))}function T(t,e){var r=v(e);return r&&(!function(t,e){e.prefinished||e.finalCalled||("function"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,s.nextTick(A,t,e)):(e.prefinished=!0,t.emit("prefinish")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"))),r}c.inherits(y,l),g.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(g.prototype,"buffer",{get:h.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(y,Symbol.hasInstance,{value:function(t){return!!f.call(this,t)||this===y&&(t&&t._writableState instanceof g)}})):f=function(t){return t instanceof this},y.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},y.prototype.write=function(t,e,r){var i,n=this._writableState,o=!1,a=!n.objectMode&&(i=t,p.isBuffer(i)||i instanceof d);return a&&!p.isBuffer(t)&&(t=function(t){return p.from(t)}(t)),"function"==typeof e&&(r=e,e=null),a?e="buffer":e||(e=n.defaultEncoding),"function"!=typeof r&&(r=w),n.ended?function(t,e){var r=new Error("write after end");t.emit("error",r),s.nextTick(e,r)}(this,r):(a||function(t,e,r,i){var n=!0,o=!1;return null===r?o=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||e.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(t.emit("error",o),s.nextTick(i,o),n=!1),n}(this,n,t,r))&&(n.pendingcb++,o=function(t,e,r,i,n,s){if(!r){var o=function(t,e,r){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=p.from(e,r));return e}(e,i,n);i!==o&&(r=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var u=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(t,e,r){var i=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),i.corked&&(i.corked=1,this.uncork()),i.ending||i.finished||function(t,e,r){e.ending=!0,T(t,e),r&&(e.finished?s.nextTick(r):t.once("finish",r));e.ended=!0,t.writable=!1}(this,i,r)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),y.prototype.destroy=m.destroy,y.prototype._undestroy=m.undestroy,y.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r(12),r(127).setImmediate,r(5))},function(t,e,r){"use strict";const i=[65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];e.REPLACEMENT_CHARACTER="�",e.CODE_POINTS={EOF:-1,NULL:0,TABULATION:9,CARRIAGE_RETURN:13,LINE_FEED:10,FORM_FEED:12,SPACE:32,EXCLAMATION_MARK:33,QUOTATION_MARK:34,NUMBER_SIGN:35,AMPERSAND:38,APOSTROPHE:39,HYPHEN_MINUS:45,SOLIDUS:47,DIGIT_0:48,DIGIT_9:57,SEMICOLON:59,LESS_THAN_SIGN:60,EQUALS_SIGN:61,GREATER_THAN_SIGN:62,QUESTION_MARK:63,LATIN_CAPITAL_A:65,LATIN_CAPITAL_F:70,LATIN_CAPITAL_X:88,LATIN_CAPITAL_Z:90,RIGHT_SQUARE_BRACKET:93,GRAVE_ACCENT:96,LATIN_SMALL_A:97,LATIN_SMALL_F:102,LATIN_SMALL_X:120,LATIN_SMALL_Z:122,REPLACEMENT_CHARACTER:65533},e.CODE_POINT_SEQUENCES={DASH_DASH_STRING:[45,45],DOCTYPE_STRING:[68,79,67,84,89,80,69],CDATA_START_STRING:[91,67,68,65,84,65,91],SCRIPT_STRING:[115,99,114,105,112,116],PUBLIC_STRING:[80,85,66,76,73,67],SYSTEM_STRING:[83,89,83,84,69,77]},e.isSurrogate=function(t){return t>=55296&&t<=57343},e.isSurrogatePair=function(t){return t>=56320&&t<=57343},e.getSurrogatePairCodePoint=function(t,e){return 1024*(t-55296)+9216+e},e.isControlCodePoint=function(t){return 32!==t&&10!==t&&13!==t&&9!==t&&12!==t&&t>=1&&t<=31||t>=127&&t<=159},e.isUndefinedCodePoint=function(t){return t>=64976&&t<=65007||i.indexOf(t)>-1}},function(t,e,r){"use strict";class i{constructor(t){const e={},r=this._getOverriddenMethods(this,e);for(const i of Object.keys(r))"function"==typeof r[i]&&(e[i]=t[i],t[i]=r[i])}_getOverriddenMethods(){throw new Error("Not implemented")}}i.install=function(t,e,r){t.__mixins||(t.__mixins=[]);for(let r=0;r=0?e:void 0),remainingKeyPath:t.slice(e+1)}}t.exports={evaluatePath:function t(e,r){if(!e)return null;let{indexOfDot:n,currentKey:s,remainingKeyPath:o}=i(r);if(n>=0&&!e[r])return Array.isArray(e[s])?e[s].map(e=>t(e,o)):t(e[s],o);if(Array.isArray(e))return e.map(e=>t(e,r));return e[r]},setPath:function t(e,r,n){if(!e)throw new Error("No document was provided.");let{indexOfDot:s,currentKey:o,remainingKeyPath:a}=i(r);if(s>=0){if(!e[o]&&Array.isArray(e))return e.forEach(e=>t(e,r,n));e[o]||(e[o]={}),t(e[o],a,n)}else{if(Array.isArray(e))return e.forEach(e=>t(e,a,n));e[r]=n}return e}}},function(t){t.exports=JSON.parse('{"errors":{"callbackRequired":"A callback is required!","optionsRequired":"Options were not passed and are required.","json2csv":{"cannotCallOn":"Cannot call json2csv on ","dataCheckFailure":"Data provided was not an array of documents.","notSameSchema":"Not all documents have the same schema."},"csv2json":{"cannotCallOn":"Cannot call csv2json on ","dataCheckFailure":"CSV is not a string."}},"defaultOptions":{"delimiter":{"field":",","wrap":"\\"","eol":"\\n"},"excelBOM":false,"prependHeader":true,"trimHeaderFields":false,"trimFieldValues":false,"sortHeader":false,"parseCsvNumbers":false,"keys":null,"checkSchemaDifferences":false,"expandArrayObjects":false,"unwindArrays":false,"useLocaleFormat":false},"values":{"excelBOM":"\ufeff"}}')},function(t,e,r){"use strict";let i=r(43),n=r(44);const s=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;function o(t){return JSON.parse(JSON.stringify(t))}function a(t){return h(t)||c(t)||""===t}function u(t){return"object"==typeof t}function c(t){return null===t}function h(t){return void 0===t}function l(t,e){return t.filter(t=>!e.includes(t))}t.exports={isStringRepresentation:function(t,e){const r=t[0],i=t.length-1,n=t[i];return r===e.delimiter.wrap&&n===e.delimiter.wrap},isDateRepresentation:function(t){return s.test(t)},computeSchemaDifferences:function(t,e){return l(t,e).concat(l(e,t))},deepCopy:o,convert:function(t){let{options:e,callback:r}=function(t,e){if(u(t)&&(r=t,"function"!=typeof r))return{options:t,callback:e};var r;return{options:e,callback:t}}(t.callback,t.options);i=e,(i={...n.defaultOptions,...i||{}}).delimiter={...n.defaultOptions.delimiter,...i.delimiter},e=i;var i;let s=new t.converter(e);(function(t){if(!t.callback)throw new Error(n.errors.callbackRequired);if(!t.data)return t.callback(new Error(t.errorMessages.cannotCallOn+t.data+".")),!1;if(!t.dataCheckFn(t.data))return t.callback(new Error(t.errorMessages.dataCheckFailure)),!1;return!0})({data:t.data,callback:r,errorMessages:s.validationMessages,dataCheckFn:s.validationFn})&&s.convert(t.data,r)},isEmptyField:a,removeEmptyFields:function(t){return t.filter(t=>!a(t))},getNCharacters:function(t,e,r){return t.substring(e,e+r)},unwind:function(t,e){const r=[];return t.forEach(t=>{!function(t,e,r){const n=i.evaluatePath(e,r);let s=o(e);Array.isArray(n)?n.forEach(n=>{s=o(e),t.push(i.setPath(s,r,n))}):t.push(s)}(r,t,e)}),r},isInvalid:function(t){return t===1/0||t===-1/0},isString:function(t){return"string"==typeof t},isNull:c,isError:function(t){return"[object Error]"===Object.prototype.toString.call(t)},isDate:function(t){return t instanceof Date},isUndefined:h,isObject:u,unique:function(t){return[...new Set(t)]},flatten:function(t){return[].concat(...t)}}},function(t,e,r){"use strict";const i=r(8).BigNumber,n=r(15),s=r(22),o=new i(-1),a=new i(10),u=new i(2);class c{constructor(t,e,r){if(this.tag=t,this.value=e,this.err=r,"number"!=typeof this.tag)throw new Error("Invalid tag type ("+typeof this.tag+")");if(this.tag<0||(0|this.tag)!==this.tag)throw new Error("Tag must be a positive integer: "+this.tag)}toString(){return`${this.tag}(${JSON.stringify(this.value)})`}encodeCBOR(t){return t._pushTag(this.tag),t.pushAny(this.value)}convert(t){let e=null!=t?t[this.tag]:void 0;if("function"!=typeof e&&(e=c["_tag_"+this.tag],"function"!=typeof e))return this;try{return e.call(c,this.value)}catch(t){return this.err=t,this}}static _tag_0(t){return new Date(t)}static _tag_1(t){return new Date(1e3*t)}static _tag_2(t){return n.bufferToBignumber(t)}static _tag_3(t){return o.minus(n.bufferToBignumber(t))}static _tag_4(t){return a.pow(t[0]).times(t[1])}static _tag_5(t){return u.pow(t[0]).times(t[1])}static _tag_32(t){return s.parse(t)}static _tag_35(t){return new RegExp(t)}}t.exports=c},,function(t,e,r){"use strict";const{Transform:i}=r(3),n=r(31),s=r(138),o=r(40),a=r(68),u=r(140),c=r(141),h={sourceCodeLocationInfo:!1};const l={[n.START_TAG_TOKEN]:{eventName:"startTag",reshapeToken:t=>({tagName:t.tagName,attrs:t.attrs,selfClosing:t.selfClosing,sourceCodeLocation:t.location})},[n.END_TAG_TOKEN]:{eventName:"endTag",reshapeToken:t=>({tagName:t.tagName,sourceCodeLocation:t.location})},[n.COMMENT_TOKEN]:{eventName:"comment",reshapeToken:t=>({text:t.data,sourceCodeLocation:t.location})},[n.DOCTYPE_TOKEN]:{eventName:"doctype",reshapeToken:t=>({name:t.name,publicId:t.publicId,systemId:t.systemId,sourceCodeLocation:t.location})},[n.CHARACTER_TOKEN]:{eventName:"text",reshapeToken:t=>({text:t.chars,sourceCodeLocation:t.location})}};t.exports=class extends i{constructor(t){super({encoding:"utf8",decodeStrings:!1}),this.options=a(h,t),this.tokenizer=new n(t),this.locInfoMixin=null,this.options.sourceCodeLocationInfo&&(this.locInfoMixin=o.install(this.tokenizer,s)),this.parserFeedbackSimulator=new c(this.tokenizer),this.pendingText=null,this.lastChunkWritten=!1,this.stopped=!1,this.pipe(new u)}_transform(t,e,r){if("string"!=typeof t)throw new TypeError("Parser can work only with string streams.");r(null,this._transformChunk(t))}_final(t){this.lastChunkWritten=!0,t(null,this._transformChunk(""))}stop(){this.stopped=!0}_transformChunk(t){return this.stopped||(this.tokenizer.write(t,this.lastChunkWritten),this._runParsingLoop()),t}_runParsingLoop(){let t=null;do{if(t=this.parserFeedbackSimulator.getNextToken(),t.type===n.HIBERNATION_TOKEN)break;if(t.type===n.CHARACTER_TOKEN||t.type===n.WHITESPACE_CHARACTER_TOKEN||t.type===n.NULL_CHARACTER_TOKEN){if(null===this.pendingText)t.type=n.CHARACTER_TOKEN,this.pendingText=t;else if(this.pendingText.chars+=t.chars,this.options.sourceCodeLocationInfo){const{endLine:e,endCol:r,endOffset:i}=t.location;Object.assign(this.pendingText.location,{endLine:e,endCol:r,endOffset:i})}}else this._emitPendingText(),this._handleToken(t)}while(!this.stopped&&t.type!==n.EOF_TOKEN)}_handleToken(t){if(t.type===n.EOF_TOKEN)return!0;const{eventName:e,reshapeToken:r}=l[t.type];return 0!==this.listenerCount(e)&&(this._emitToken(e,r(t)),!0)}_emitToken(t,e){this.emit(t,e)}_emitPendingText(){null!==this.pendingText&&(this._handleToken(this.pendingText),this.pendingText=null)}}},function(t,e,r){"use strict";var i=r(162),n=r(6),s=r(76),o=r(41),a=r(77),u=Object.prototype.toString;function c(t){if(!(this instanceof c))return new c(t);this.options=n.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;var r=i.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==r)throw new Error(o[r]);if(e.header&&i.deflateSetHeader(this.strm,e.header),e.dictionary){var h;if(h="string"==typeof e.dictionary?s.string2buf(e.dictionary):"[object ArrayBuffer]"===u.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(r=i.deflateSetDictionary(this.strm,h)))throw new Error(o[r]);this._dict_set=!0}}function h(t,e){var r=new c(e);if(r.push(t,!0),r.err)throw r.msg||o[r.err];return r.result}c.prototype.push=function(t,e){var r,o,a=this.strm,c=this.options.chunkSize;if(this.ended)return!1;o=e===~~e?e:!0===e?4:0,"string"==typeof t?a.input=s.string2buf(t):"[object ArrayBuffer]"===u.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;do{if(0===a.avail_out&&(a.output=new n.Buf8(c),a.next_out=0,a.avail_out=c),1!==(r=i.deflate(a,o))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==a.avail_out&&(0!==a.avail_in||4!==o&&2!==o)||("string"===this.options.to?this.onData(s.buf2binstring(n.shrinkBuf(a.output,a.next_out))):this.onData(n.shrinkBuf(a.output,a.next_out)))}while((a.avail_in>0||0===a.avail_out)&&1!==r);return 4===o?(r=i.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==o||(this.onEnd(0),a.avail_out=0,!0)},c.prototype.onData=function(t){this.chunks.push(t)},c.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Deflate=c,e.deflate=h,e.deflateRaw=function(t,e){return(e=e||{}).raw=!0,h(t,e)},e.gzip=function(t,e){return(e=e||{}).gzip=!0,h(t,e)}},function(t,e,r){"use strict";var i=r(164),n=r(6),s=r(76),o=r(78),a=r(41),u=r(77),c=r(167),h=Object.prototype.toString;function l(t){if(!(this instanceof l))return new l(t);this.options=n.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new u,this.strm.avail_out=0;var r=i.inflateInit2(this.strm,e.windowBits);if(r!==o.Z_OK)throw new Error(a[r]);if(this.header=new c,i.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=s.string2buf(e.dictionary):"[object ArrayBuffer]"===h.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=i.inflateSetDictionary(this.strm,e.dictionary))!==o.Z_OK))throw new Error(a[r])}function p(t,e){var r=new l(e);if(r.push(t,!0),r.err)throw r.msg||a[r.err];return r.result}l.prototype.push=function(t,e){var r,a,u,c,l,p=this.strm,d=this.options.chunkSize,f=this.options.dictionary,m=!1;if(this.ended)return!1;a=e===~~e?e:!0===e?o.Z_FINISH:o.Z_NO_FLUSH,"string"==typeof t?p.input=s.binstring2buf(t):"[object ArrayBuffer]"===h.call(t)?p.input=new Uint8Array(t):p.input=t,p.next_in=0,p.avail_in=p.input.length;do{if(0===p.avail_out&&(p.output=new n.Buf8(d),p.next_out=0,p.avail_out=d),(r=i.inflate(p,o.Z_NO_FLUSH))===o.Z_NEED_DICT&&f&&(r=i.inflateSetDictionary(this.strm,f)),r===o.Z_BUF_ERROR&&!0===m&&(r=o.Z_OK,m=!1),r!==o.Z_STREAM_END&&r!==o.Z_OK)return this.onEnd(r),this.ended=!0,!1;p.next_out&&(0!==p.avail_out&&r!==o.Z_STREAM_END&&(0!==p.avail_in||a!==o.Z_FINISH&&a!==o.Z_SYNC_FLUSH)||("string"===this.options.to?(u=s.utf8border(p.output,p.next_out),c=p.next_out-u,l=s.buf2string(p.output,u),p.next_out=c,p.avail_out=d-c,c&&n.arraySet(p.output,p.output,u,c,0),this.onData(l)):this.onData(n.shrinkBuf(p.output,p.next_out)))),0===p.avail_in&&0===p.avail_out&&(m=!0)}while((p.avail_in>0||0===p.avail_out)&&r!==o.Z_STREAM_END);return r===o.Z_STREAM_END&&(a=o.Z_FINISH),a===o.Z_FINISH?(r=i.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===o.Z_OK):a!==o.Z_SYNC_FLUSH||(this.onEnd(o.Z_OK),p.avail_out=0,!0)},l.prototype.onData=function(t){this.chunks.push(t)},l.prototype.onEnd=function(t){t===o.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=l,e.inflate=p,e.inflateRaw=function(t,e){return(e=e||{}).raw=!0,p(t,e)},e.ungzip=p},,,,,function(t,e,r){"use strict";const i=r(170),n=r(32),s=r(32),o=r(4).buildOptions,a=r(172);e.parse=function(t,e,r){if(r){!0===r&&(r={});const e=a.validate(t,r);if(!0!==e)throw Error(e.err.msg)}e=o(e,s.defaultOptions,s.props);const u=n.getTraversalObj(t,e);return i.convertToJson(u,e)},e.convertTonimn=r(173).convert2nimn,e.getTraversalObj=n.getTraversalObj,e.convertToJson=i.convertToJson,e.convertToJsonString=r(174).convertToJsonString,e.validate=a.validate,e.j2xParser=r(175),e.parseToNimn=function(t,r,i){return e.convertTonimn(e.getTraversalObj(t,i),r,i)}},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",(function(){return initIPFS}));var _utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(0);const GC_INTERVAL=6e5,IPFS_CORE_JS="https://cdn.jsdelivr.net/npm/ipfs-core@0.3.0/dist/index.min.js";let client=null;class IPFSClient{constructor(t=!1){this.ipfs=null,this._initingIPFS=null,this.ipfsGC=null,this.customPreload=t,this.preloadNodes=null}async initIPFS(){if(!this.ipfs)try{this._initingIPFS||(this._initingIPFS=this._doInitIPFS()),await this._initingIPFS}catch(t){console.warn(t)}}async _doInitIPFS(){if(IPFS_CORE_JS){if(!self.IpfsCore&&IPFS_CORE_JS){const resp=await fetch(IPFS_CORE_JS);eval(await resp.text())}this.ipfs=await self.IpfsCore.create(this.initOptions),this.resetGC(),this.customPreload&&(this.preloadNodes=this.ipfsCustomPreloadURLs||["https://node0.preload.ipfs.io","https://node1.preload.ipfs.io","https://node2.preload.ipfs.io","https://node3.preload.ipfs.io"])}else console.warn("Skipping IPFS init, no load URL")}async restart(){await this.ipfs.stop(),this._initingIPFS=null,this.ipfs=null,await this.initIPFS()}get initOptions(){let t={init:{emptyRepo:!0},preload:{enabled:!this.customPreload}};try{t={...t,...self.ipfsOpts}}catch(t){}return t}async runGC(){let t=0;for await(const e of this.ipfs.repo.gc())t++;console.log(`IPFS GC, Removed ${t} blocks`)}async resetGC(){this.ipfsGC&&clearInterval(this.ipfsGC),this.ipfsGC=setInterval(()=>this.runGC(),GC_INTERVAL)}async getFileSize(t){let e=null,r=null;const i=t.lastIndexOf("/");if(i>0){const n=t.slice(0,i);this.customPreload&&await this.cacheDirToPreload(n),r=this.ipfs.ls(n,{preload:!1}),e=t.slice(i+1)}else this.customPreload&&await this.cacheDirToPreload(t),r=this.ipfs.get(t,{preload:!1}),e=t;for await(const t of r)if(t.name==e&&"file"===t.type)return t.size;return null}async cat(t,e){return this.resetGC(),this.customPreload&&await this.preloadCat(t,e),this.ipfs.cat(t,e)}getPreloadURL(){if(!this.preloadNodes||!this.preloadNodes.length)return null;const t=parseInt(Math.random()*this.preloadNodes.length);return this.preloadNodes[t]}async cacheDirToPreload(t,e=2e4,r=5){for(let i=0;i0?("string"==typeof e||o.objectMode||Object.getPrototypeOf(e)===c.prototype||(e=function(t){return c.from(t)}(e)),i?o.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):E(t,o,e,!0):o.ended?t.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!r?(e=o.decoder.write(e),o.objectMode||0!==e.length?E(t,o,e,!1):x(t,o)):E(t,o,e,!1))):i||(o.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=8388608?t=8388608:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function A(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(d("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?n.nextTick(T,t):T(t))}function T(t){d("emit readable"),t.emit("readable"),k(t)}function x(t,e){e.readingMore||(e.readingMore=!0,n.nextTick(S,t,e))}function S(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var i;ts.length?s.length:t;if(o===s.length?n+=s:n+=s.slice(0,t),0===(t-=o)){o===s.length?(++i,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=s.slice(o));break}++i}return e.length-=i,n}(t,e):function(t,e){var r=c.allocUnsafe(t),i=e.head,n=1;i.data.copy(r),t-=i.data.length;for(;i=i.next;){var s=i.data,o=t>s.length?s.length:t;if(s.copy(r,r.length-t,0,o),0===(t-=o)){o===s.length?(++n,i.next?e.head=i.next:e.head=e.tail=null):(e.head=i,i.data=s.slice(o));break}++n}return e.length-=n,r}(t,e);return i}(t,e.buffer,e.decoder),r);var r}function N(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,n.nextTick(I,e,t))}function I(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function O(t,e){for(var r=0,i=t.length;r=e.highWaterMark||e.ended))return d("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?N(this):A(this),null;if(0===(t=v(t,e))&&e.ended)return 0===e.length&&N(this),null;var i,n=e.needReadable;return d("need readable",n),(0===e.length||e.length-t0?R(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&N(this)),null!==i&&this.emit("data",i),i},b.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(t,e){var r=this,s=this._readableState;switch(s.pipesCount){case 0:s.pipes=t;break;case 1:s.pipes=[s.pipes,t];break;default:s.pipes.push(t)}s.pipesCount+=1,d("pipe count=%d opts=%j",s.pipesCount,e);var u=(!e||!1!==e.end)&&t!==i.stdout&&t!==i.stderr?h:b;function c(e,i){d("onunpipe"),e===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,d("cleanup"),t.removeListener("close",g),t.removeListener("finish",y),t.removeListener("drain",l),t.removeListener("error",w),t.removeListener("unpipe",c),r.removeListener("end",h),r.removeListener("end",b),r.removeListener("data",m),p=!0,!s.awaitDrain||t._writableState&&!t._writableState.needDrain||l())}function h(){d("onend"),t.end()}s.endEmitted?n.nextTick(u):r.once("end",u),t.on("unpipe",c);var l=function(t){return function(){var e=t._readableState;d("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,k(t))}}(r);t.on("drain",l);var p=!1;var f=!1;function m(e){d("ondata"),f=!1,!1!==t.write(e)||f||((1===s.pipesCount&&s.pipes===t||s.pipesCount>1&&-1!==O(s.pipes,t))&&!p&&(d("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,f=!0),r.pause())}function w(e){d("onerror",e),b(),t.removeListener("error",w),0===a(t,"error")&&t.emit("error",e)}function g(){t.removeListener("finish",y),b()}function y(){d("onfinish"),t.removeListener("close",g),b()}function b(){d("unpipe"),r.unpipe(t)}return r.on("data",m),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?o(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",w),t.once("close",g),t.once("finish",y),t.emit("pipe",r),s.flowing||(d("pipe resume"),r.resume()),t},b.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function a(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function h(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function l(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function p(t){return t.toString(this.encoding)}function d(t){return t&&t.length?this.write(t):""}e.StringDecoder=s,s.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return n>0&&(t.lastNeed=n-1),n;if(--i=0)return n>0&&(t.lastNeed=n-2),n;if(--i=0)return n>0&&(2===n?n=0:t.lastNeed=n-3),n;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)},s.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,r){"use strict";t.exports=o;var i=r(7),n=Object.create(r(20));function s(t,e){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(!i)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),i(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length(Object.keys(e).forEach(r=>{t[r]=e[r]}),t),Object.create(null))}},function(t,e,r){"use strict";e.decode=e.parse=r(146),e.encode=e.stringify=r(147)},function(t,e,r){var i=r(71).BrotliInput,n=r(71).BrotliOutput,s=r(155),o=r(72),a=r(73).HuffmanCode,u=r(73).BrotliBuildHuffmanTable,c=r(159),h=r(160),l=r(161),p=new Uint8Array([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),d=new Uint8Array([3,2,1,0,3,3,3,3,3,3,2,2,2,2,2,2]),f=new Int8Array([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),m=new Uint16Array([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]);function w(t){var e;return 0===t.readBits(1)?16:(e=t.readBits(3))>0?17+e:(e=t.readBits(3))>0?8+e:17}function g(t){if(t.readBits(1)){var e=t.readBits(3);return 0===e?1:t.readBits(e)+(1<1&&0===s)throw new Error("Invalid size byte");n.meta_block_length|=s<<8*i}}else for(i=0;i4&&0===o)throw new Error("Invalid size nibble");n.meta_block_length|=o<<4*i}return++n.meta_block_length,n.input_end||n.is_metadata||(n.is_uncompressed=t.readBits(1)),n}function _(t,e,r){var i;return r.fillBitWindow(),(i=t[e+=r.val_>>>r.bit_pos_&255].bits-8)>0&&(r.bit_pos_+=8,e+=t[e].value,e+=r.val_>>>r.bit_pos_&(1<>=1,++h;for(f=0;f0;++f){var b,_=p[f],E=0;i.fillBitWindow(),E+=i.val_>>>i.bit_pos_&15,i.bit_pos_+=y[E].bits,b=y[E].value,m[_]=b,0!==b&&(w-=32>>b,++g)}if(1!==g&&0!==w)throw new Error("[ReadHuffmanCode] invalid num_codes or space");!function(t,e,r,i){for(var n=0,s=8,o=0,c=0,h=32768,l=[],p=0;p<32;p++)l.push(new a(0,0));for(u(l,0,5,t,18);n0;){var d,f=0;if(i.readMoreInput(),i.fillBitWindow(),f+=i.val_>>>i.bit_pos_&31,i.bit_pos_+=l[f].bits,(d=255&l[f].value)<16)o=0,r[n++]=d,0!==d&&(s=d,h-=32768>>d);else{var m,w,g=d-14,y=0;if(16===d&&(y=s),c!==y&&(o=0,c=y),m=o,o>0&&(o-=2,o<<=g),n+(w=(o+=i.readBits(g)+3)-m)>e)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var b=0;b>>5]),this.htrees=new Uint32Array(e)}function S(t,e){var r,i,n={num_htrees:null,context_map:null},s=0;e.readMoreInput();var o=n.num_htrees=g(e)+1,u=n.context_map=new Uint8Array(t);if(o<=1)return n;for(e.readBits(1)&&(s=e.readBits(4)+1),r=[],i=0;i<1080;i++)r[i]=new a(0,0);for(E(o+s,r,0,e),i=0;i=t)throw new Error("[DecodeContextMap] i >= context_map_size");u[i]=0,++i}else u[i]=c-s,++i}return e.readBits(1)&&function(t,e){var r,i=new Uint8Array(256);for(r=0;r<256;++r)i[r]=r;for(r=0;r=t&&(a-=t),i[r]=a,n[u+(1&s[c])]=a,++s[c]}function D(t,e,r,i,n,o){var a,u=n+1,c=r&n,h=o.pos_&s.IBUF_MASK;if(e<8||o.bit_pos_+(e<<3)0;)o.readMoreInput(),i[c++]=o.readBits(8),c===u&&(t.write(i,u),c=0);else{if(o.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;o.bit_pos_<32;)i[c]=o.val_>>>o.bit_pos_,o.bit_pos_+=8,++c,--e;if(h+(a=o.bit_end_pos_-o.bit_pos_>>3)>s.IBUF_MASK){for(var l=s.IBUF_MASK+1-h,p=0;p=u){t.write(i,u),c-=u;for(p=0;p=u;){if(a=u-c,o.input_.read(i,c,a)e.buffer.length){var lt=new Uint8Array(R+Z);lt.set(e.buffer),e.buffer=lt}if(N=ht.input_end,W=ht.is_uncompressed,ht.is_metadata)for(k(T);Z>0;--Z)T.readMoreInput(),T.readBits(8);else if(0!==Z)if(W)T.bit_pos_=T.bit_pos_+7&-8,D(e,Z,R,d,p,T),R+=Z;else{for(r=0;r<3;++r)tt[r]=g(T)+1,tt[r]>=2&&(E(tt[r]+2,m,1080*r,T),E(26,y,1080*r,T),Q[r]=v(y,1080*r,T),rt[r]=1);for(T.readMoreInput(),z=(1<<(j=T.readBits(2)))-1,G=(H=16+(T.readBits(4)<0;){var ft,mt,wt,gt,yt,bt,_t,Et,vt,At,Tt,xt;for(T.readMoreInput(),0===Q[1]&&(C(tt[1],m,1,$,et,rt,T),Q[1]=v(y,1080,T),J=L[1].htrees[$[1]]),--Q[1],(mt=(ft=_(L[1].codes,J,T))>>6)>=2?(mt-=2,_t=-1):_t=0,wt=h.kInsertRangeLut[mt]+(ft>>3&7),gt=h.kCopyRangeLut[mt]+(7&ft),yt=h.kInsertLengthPrefixCode[wt].offset+T.readBits(h.kInsertLengthPrefixCode[wt].nbits),bt=h.kCopyLengthPrefixCode[gt].offset+T.readBits(h.kCopyLengthPrefixCode[gt].nbits),P=d[R-1&p],B=d[R-2&p],vt=0;vt4?3:bt-2))],(_t=_(L[2].codes,L[2].htrees[at],T))>=H)xt=(_t-=H)&z,_t=H+((St=(2+(1&(_t>>=j))<<(Tt=1+(_t>>1)))-4)+T.readBits(Tt)<(I=R=o.minDictionaryWordLength&&bt<=o.maxDictionaryWordLength))throw new Error("Invalid backward reference. pos: "+R+" distance: "+Et+" len: "+bt+" bytes left: "+Z);var St=o.offsetsByLength[bt],Ct=Et-I-1,Dt=o.sizeBitsByLength[bt],kt=Ct>>Dt;if(St+=(Ct&(1<=f){e.write(d,u);for(var Nt=0;Nt0&&(O[3&F]=Et,++F),bt>Z)throw new Error("Invalid backward reference. pos: "+R+" distance: "+Et+" len: "+bt+" bytes left: "+Z);for(vt=0;vtthis.buffer.length&&(r=this.buffer.length-this.pos);for(var i=0;ithis.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(t.subarray(0,e),this.pos),this.pos+=e,e},e.BrotliOutput=i},function(t,e,r){var i=r(156);e.init=function(){e.dictionary=i.init()},e.offsetsByLength=new Uint32Array([0,0,0,0,0,4096,9216,21504,35840,44032,53248,63488,74752,87040,93696,100864,104704,106752,108928,113536,115968,118528,119872,121280,122016]),e.sizeBitsByLength=new Uint8Array([0,0,0,0,10,10,11,11,10,10,10,10,10,9,9,8,7,7,8,7,7,6,6,5,5]),e.minDictionaryWordLength=4,e.maxDictionaryWordLength=24},function(t,e){function r(t,e){this.bits=t,this.value=e}e.HuffmanCode=r;function i(t,e){for(var r=1<>=1;return(t&r-1)+r}function n(t,e,i,n,s){do{t[e+(n-=i)]=new r(s.bits,s.value)}while(n>0)}function s(t,e,r){for(var i=1<0;--_[c])n(t,e+l,p,w,new r(255&c,65535&y[h++])),l=i(l,c);for(f=g-1,d=-1,c=o+1,p=2;c<=15;++c,p<<=1)for(;_[c]>0;--_[c])(l&f)!==d&&(e+=w,g+=w=1<<(m=s(_,c,o)),t[b+(d=l&f)]=new r(m+o&255,e-b-d&65535)),n(t,e+(l>>o),p,w,new r(c-o&255,65535&y[h++])),l=i(l,c);return g}},function(t,e,r){"use strict";t.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,o=0;0!==r;){r-=o=r>2e3?2e3:r;do{s=s+(n=n+e[i++]|0)|0}while(--o);n%=65521,s%=65521}return n|s<<16|0}},function(t,e,r){"use strict";var i=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();t.exports=function(t,e,r,n){var s=i,o=n+r;t^=-1;for(var a=n;a>>8^s[255&(t^e[a])];return-1^t}},function(t,e,r){"use strict";var i=r(6),n=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){s=!1}for(var o=new i.Buf8(256),a=0;a<256;a++)o[a]=a>=252?6:a>=248?5:a>=240?4:a>=224?3:a>=192?2:1;function u(t,e){if(e<65534&&(t.subarray&&s||!t.subarray&&n))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var r="",o=0;o>>6,e[o++]=128|63&r):r<65536?(e[o++]=224|r>>>12,e[o++]=128|r>>>6&63,e[o++]=128|63&r):(e[o++]=240|r>>>18,e[o++]=128|r>>>12&63,e[o++]=128|r>>>6&63,e[o++]=128|63&r);return e},e.buf2binstring=function(t){return u(t,t.length)},e.binstring2buf=function(t){for(var e=new i.Buf8(t.length),r=0,n=e.length;r4)c[i++]=65533,r+=s-1;else{for(n&=2===s?31:3===s?15:7;s>1&&r1?c[i++]=65533:n<65536?c[i++]=n:(n-=65536,c[i++]=55296|n>>10&1023,c[i++]=56320|1023&n)}return u(c,i)},e.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+o[t[r]]>e?r:e}},function(t,e,r){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},function(t,e,r){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(t,e,r){"use strict";var i=r(14);t.exports=new i({include:[r(80)]})},function(t,e,r){"use strict";var i=r(14);t.exports=new i({include:[r(42)],implicit:[r(183),r(184),r(185),r(186)]})},function(t,e,r){"use strict";e.Commented=r(203),e.Diagnose=r(207),e.Decoder=r(34),e.Encoder=r(82),e.Simple=r(26),e.Tagged=r(46),e.Map=r(208),e.comment=e.Commented.comment,e.decodeAll=e.Decoder.decodeAll,e.decodeFirst=e.Decoder.decodeFirst,e.decodeAllSync=e.Decoder.decodeAllSync,e.decodeFirstSync=e.Decoder.decodeFirstSync,e.diagnose=e.Diagnose.diagnose,e.encode=e.Encoder.encode,e.encodeCanonical=e.Encoder.encodeCanonical,e.encodeOne=e.Encoder.encodeOne,e.encodeAsync=e.Encoder.encodeAsync,e.decode=e.Decoder.decodeFirstSync,e.leveldb={decode:e.Decoder.decodeAllSync,encode:e.Encoder.encode,buffer:!0,name:"cbor"},e.hasBigInt=r(15).hasBigInt},function(t,e,r){"use strict";(function(e){const i=r(3),n=r(22),s=r(8).BigNumber,o=r(27),a=(r(46),r(26),r(15)),u=r(9),c=u.MT,h=u.NUMBYTES,l=u.SHIFT32,p=u.SYMS,d=u.TAG,f=u.MT.SIMPLE_FLOAT<<5|u.NUMBYTES.TWO,m=u.MT.SIMPLE_FLOAT<<5|u.NUMBYTES.FOUR,w=u.MT.SIMPLE_FLOAT<<5|u.NUMBYTES.EIGHT,g=u.MT.SIMPLE_FLOAT<<5|u.SIMPLE.TRUE,y=u.MT.SIMPLE_FLOAT<<5|u.SIMPLE.FALSE,b=u.MT.SIMPLE_FLOAT<<5|u.SIMPLE.UNDEFINED,_=u.MT.SIMPLE_FLOAT<<5|u.SIMPLE.NULL,E=a.bigIntize(u.BI),v=u.BN,A=e.from("f97e00","hex"),T=e.from("f9fc00","hex"),x=e.from("f97c00","hex"),S=e.from("f98000","hex"),C=Symbol("CBOR_LOOP_DETECT");class D extends i.Transform{constructor(t){const r=Object.assign({},t,{readableObjectMode:!1,writableObjectMode:!0});super(r),this.canonical=r.canonical,this.encodeUndefined=r.encodeUndefined,this.disallowUndefinedKeys=!!r.disallowUndefinedKeys,this.dateType=null!=r.dateType?r.dateType.toLowerCase():"number",this.collapseBigIntegers=!!r.collapseBigIntegers,"symbol"==typeof r.detectLoops?this.detectLoops=r.detectLoops:this.detectLoops=r.detectLoops?Symbol("CBOR_DETECT"):null,this.semanticTypes=[Array,this._pushArray,Date,this._pushDate,e,this._pushBuffer,Map,this._pushMap,o,this._pushNoFilter,RegExp,this._pushRegexp,Set,this._pushSet,s,this._pushBigNumber,ArrayBuffer,this._pushUint8Array,Uint8ClampedArray,this._pushUint8Array,Uint8Array,this._pushUint8Array,Uint16Array,this._pushArray,Uint32Array,this._pushArray,Int8Array,this._pushArray,Int16Array,this._pushArray,Int32Array,this._pushArray,Float32Array,this._pushFloat32Array,Float64Array,this._pushFloat64Array],n.Url&&this.semanticTypes.push(n.Url,this._pushUrl),n.URL&&this.semanticTypes.push(n.URL,this._pushURL);const i=r.genTypes||[];for(let t=0,e=i.length;t{i.pushAny(t);const r=n.read();i.pushAny(e);const s=n.read();return r.compare(s)});for(const[e,i]of r){if(t.disallowUndefinedKeys&&void 0===e)throw new Error("Invalid Map key: undefined");if(!t.pushAny(e)||!t.pushAny(i))return!1}}else for(const[r,i]of e){if(t.disallowUndefinedKeys&&void 0===r)throw new Error("Invalid Map key: undefined");if(!t.pushAny(r)||!t.pushAny(i))return!1}return!0}_pushUint8Array(t,r){return t._pushBuffer(t,e.from(r))}_pushFloat32Array(t,e){const r=e.length;if(!t._pushInt(r,c.ARRAY))return!1;for(let i=0;i{const r=i[t]||(i[t]=D.encode(t)),n=i[e]||(i[e]=D.encode(e));return r.compare(n)}),!this._pushInt(r.length,c.MAP))return!1;let n;for(let e=0,s=r.length;e{const s=[],o=new D(r);o.on("data",t=>s.push(t)),o.on("error",n),o.on("finish",()=>i(e.concat(s))),o.pushAny(t),o.end()})}}t.exports=D}).call(this,r(2).Buffer)},,,,,,,,,,,,,,,,,,,,,,,function(t,e,r){"use strict";const i=r(48),{escapeString:n}=r(143);t.exports=class extends i{constructor(){super({sourceCodeLocationInfo:!0}),this.posTracker=this.locInfoMixin.posTracker}_transformChunk(t){super._transformChunk(t)}_getRawHtml(t){const e=this.posTracker.droppedBufferSize,r=t.startOffset-e,i=t.endOffset-e;return this.tokenizer.preprocessor.html.slice(r,i)}_handleToken(t){super._handleToken(t)||this.emitRaw(this._getRawHtml(t.location)),this.parserFeedbackSimulator.skipNextNewLine=!1}_emitToken(t,e){this.emit(t,e,this._getRawHtml(e.sourceCodeLocation))}emitDoctype(t){let e="",this.push(e)}emitStartTag(t){let e="<"+t.tagName;const r=t.attrs;for(let t=0;t":">",this.push(e)}emitEndTag(t){this.push(``)}emitText({text:t}){this.push(n(t,!1))}emitComment(t){this.push(`\x3c!--${t.text}--\x3e`)}emitRaw(t){this.push(t)}}},function(t,e,r){"use strict";var i=r(69),n=r(22),s=r(151);function o(t){return t&&t.rel}function a(t,e){return e.rel.split(/\s+/).forEach((function(r){t[r]=s(e,{rel:r})})),t}function u(t,e){var r=e.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return r&&(t[r[1]]=r[2]),t}function c(t){try{var e=t.match(/]*)>(.*)/),r=e[1],o=e[2].split(";"),a=n.parse(r),c=i.parse(a.query);o.shift();var h=o.reduce(u,{});return(h=s(c,h)).url=r,h}catch(t){return null}}t.exports=function(t){return t?t.split(/,\s*; ${r}`})).join(", ")}},function(t,e,r){t.exports=r(70).BrotliDecompressBuffer},function(t,e,r){"use strict";var i={};(0,r(6).assign)(i,r(49),r(50),r(78)),t.exports=i},function(t,e,r){"use strict";!function(){var e,i,n,s=0,o=[];for(i=0;i<256;i++)o[i]=(i+256).toString(16).substr(1);function a(){var t,r=(t=16,(!e||s+t>u.BUFFER_SIZE)&&(s=0,e=u.randomBytes(u.BUFFER_SIZE)),e.slice(s,s+=t));return r[6]=15&r[6]|64,r[8]=63&r[8]|128,r}function u(){var t=a();return o[t[0]]+o[t[1]]+o[t[2]]+o[t[3]]+"-"+o[t[4]]+o[t[5]]+"-"+o[t[6]]+o[t[7]]+"-"+o[t[8]]+o[t[9]]+"-"+o[t[10]]+o[t[11]]+o[t[12]]+o[t[13]]+o[t[14]]+o[t[15]]}u.BUFFER_SIZE=4096,u.bin=a,u.clearBuffer=function(){e=null,s=0},u.test=function(t){return"string"==typeof t&&/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(t)},"undefined"!=typeof crypto?n=crypto:"undefined"!=typeof window&&void 0!==window.msCrypto&&(n=window.msCrypto),n=n||r(168),t.exports=u,u.randomBytes=function(){if(n){if(n.randomBytes)return n.randomBytes;if(n.getRandomValues)return function(t){var e=new Uint8Array(t);return n.getRandomValues(e),e}}return function(t){var e,r=[];for(e=0;e10&&(e="..."+e.substr(-10));var r=new Error("Decoded data is not valid UTF-8. Maybe try base32.decode.asBytes()? Partial data after reading "+t+" bytes: "+e+" <-");throw r.position=t,r},p=function(t){if(!/^[A-Z2-7=]+$/.test(t))throw new Error("Invalid base32 characters");for(var e,r,i,n,s,o,a,u,h=[],l=0,p=(t=t.replace(/=/g,"")).length,d=0,f=p>>3<<3;d>>2),h[l++]=255&(r<<6|i<<1|n>>>4),h[l++]=255&(n<<4|s>>>1),h[l++]=255&(s<<7|o<<2|a>>>3),h[l++]=255&(a<<5|u);var m=p-f;return 2===m?(e=c[t.charAt(d++)],r=c[t.charAt(d++)],h[l++]=255&(e<<3|r>>>2)):4===m?(e=c[t.charAt(d++)],r=c[t.charAt(d++)],i=c[t.charAt(d++)],n=c[t.charAt(d++)],h[l++]=255&(e<<3|r>>>2),h[l++]=255&(r<<6|i<<1|n>>>4)):5===m?(e=c[t.charAt(d++)],r=c[t.charAt(d++)],i=c[t.charAt(d++)],n=c[t.charAt(d++)],s=c[t.charAt(d++)],h[l++]=255&(e<<3|r>>>2),h[l++]=255&(r<<6|i<<1|n>>>4),h[l++]=255&(n<<4|s>>>1)):7===m&&(e=c[t.charAt(d++)],r=c[t.charAt(d++)],i=c[t.charAt(d++)],n=c[t.charAt(d++)],s=c[t.charAt(d++)],o=c[t.charAt(d++)],a=c[t.charAt(d++)],h[l++]=255&(e<<3|r>>>2),h[l++]=255&(r<<6|i<<1|n>>>4),h[l++]=255&(n<<4|s>>>1),h[l++]=255&(s<<7|o<<2|a>>>3)),h},d=function(t,e){if(!e)return function(t){for(var e,r,i="",n=t.length,s=0,o=0;s191&&e<=223?(r=31&e,o=1):e<=239?(r=15&e,o=2):e<=247?(r=7&e,o=3):l(s,i);for(var a=0;a191)&&l(s,i),r<<=6,r+=63&e;r>=55296&&r<=57343&&l(s,i),r>1114111&&l(s,i),r<=65535?i+=String.fromCharCode(r):(r-=65536,i+=String.fromCharCode(55296+(r>>10)),i+=String.fromCharCode(56320+(1023&r)))}return i}(p(t));if(!/^[A-Z2-7=]+$/.test(t))throw new Error("Invalid base32 characters");var r,i,n,s,o,a,u,h,d="",f=t.indexOf("=");-1===f&&(f=t.length);for(var m=0,w=f>>3<<3;m>>2))+String.fromCharCode(255&(i<<6|n<<1|s>>>4))+String.fromCharCode(255&(s<<4|o>>>1))+String.fromCharCode(255&(o<<7|a<<2|u>>>3))+String.fromCharCode(255&(u<<5|h));var g=f-w;return 2===g?(r=c[t.charAt(m++)],i=c[t.charAt(m++)],d+=String.fromCharCode(255&(r<<3|i>>>2))):4===g?(r=c[t.charAt(m++)],i=c[t.charAt(m++)],n=c[t.charAt(m++)],s=c[t.charAt(m++)],d+=String.fromCharCode(255&(r<<3|i>>>2))+String.fromCharCode(255&(i<<6|n<<1|s>>>4))):5===g?(r=c[t.charAt(m++)],i=c[t.charAt(m++)],n=c[t.charAt(m++)],s=c[t.charAt(m++)],o=c[t.charAt(m++)],d+=String.fromCharCode(255&(r<<3|i>>>2))+String.fromCharCode(255&(i<<6|n<<1|s>>>4))+String.fromCharCode(255&(s<<4|o>>>1))):7===g&&(r=c[t.charAt(m++)],i=c[t.charAt(m++)],n=c[t.charAt(m++)],s=c[t.charAt(m++)],o=c[t.charAt(m++)],a=c[t.charAt(m++)],u=c[t.charAt(m++)],d+=String.fromCharCode(255&(r<<3|i>>>2))+String.fromCharCode(255&(i<<6|n<<1|s>>>4))+String.fromCharCode(255&(s<<4|o>>>1))+String.fromCharCode(255&(o<<7|a<<2|u>>>3))),d},f={encode:function(t,e){var r="string"!=typeof t;return r&&t.constructor===ArrayBuffer&&(t=new Uint8Array(t)),r?function(t){for(var e,r,i,n,s,o="",a=t.length,c=0,h=5*parseInt(a/5);c>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[31&(r<<4|i>>>4)]+u[31&(i<<1|n>>>7)]+u[n>>>2&31]+u[31&(n<<3|s>>>5)]+u[31&s];var l=a-h;return 1===l?(e=t[c],o+=u[e>>>3]+u[e<<2&31]+"======"):2===l?(e=t[c++],r=t[c],o+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[r<<4&31]+"===="):3===l?(e=t[c++],r=t[c++],i=t[c],o+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[31&(r<<4|i>>>4)]+u[i<<1&31]+"==="):4===l&&(e=t[c++],r=t[c++],i=t[c++],n=t[c],o+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[31&(r<<4|i>>>4)]+u[31&(i<<1|n>>>7)]+u[n>>>2&31]+u[n<<3&31]+"="),o}(t):e?function(t){for(var e,r,i,n,s,o="",a=t.length,c=0,h=5*parseInt(a/5);c>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[31&(r<<4|i>>>4)]+u[31&(i<<1|n>>>7)]+u[n>>>2&31]+u[31&(n<<3|s>>>5)]+u[31&s];var l=a-h;return 1===l?(e=t.charCodeAt(c),o+=u[e>>>3]+u[e<<2&31]+"======"):2===l?(e=t.charCodeAt(c++),r=t.charCodeAt(c),o+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[r<<4&31]+"===="):3===l?(e=t.charCodeAt(c++),r=t.charCodeAt(c++),i=t.charCodeAt(c),o+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[31&(r<<4|i>>>4)]+u[i<<1&31]+"==="):4===l&&(e=t.charCodeAt(c++),r=t.charCodeAt(c++),i=t.charCodeAt(c++),n=t.charCodeAt(c),o+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[31&(r<<4|i>>>4)]+u[31&(i<<1|n>>>7)]+u[n>>>2&31]+u[n<<3&31]+"="),o}(t):function(t){var e,r,i,n,s,o,a,c=!1,l="",p=0,d=0,f=t.length;do{for(h[0]=h[5],h[1]=h[6],h[2]=h[7],a=d;p>6,h[a++]=128|63&o):o<55296||o>=57344?(h[a++]=224|o>>12,h[a++]=128|o>>6&63,h[a++]=128|63&o):(o=65536+((1023&o)<<10|1023&t.charCodeAt(++p)),h[a++]=240|o>>18,h[a++]=128|o>>12&63,h[a++]=128|o>>6&63,h[a++]=128|63&o);a-d,d=a-5,p===f&&++p,p>f&&a<6&&(c=!0),e=h[0],a>4?(r=h[1],i=h[2],n=h[3],s=h[4],l+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[31&(r<<4|i>>>4)]+u[31&(i<<1|n>>>7)]+u[n>>>2&31]+u[31&(n<<3|s>>>5)]+u[31&s]):1===a?l+=u[e>>>3]+u[e<<2&31]+"======":2===a?(r=h[1],l+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[r<<4&31]+"===="):3===a?(r=h[1],i=h[2],l+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[31&(r<<4|i>>>4)]+u[i<<1&31]+"==="):(r=h[1],i=h[2],n=h[3],l+=u[e>>>3]+u[31&(e<<2|r>>>6)]+u[r>>>1&31]+u[31&(r<<4|i>>>4)]+u[31&(i<<1|n>>>7)]+u[n>>>2&31]+u[n<<3&31]+"=")}while(!c);return l}(t)},decode:d};d.asBytes=p,o?t.exports=f:(s.base32=f,a&&(void 0===(n=function(){return f}.call(f,r,f,t))||(t.exports=n)))}()}).call(this,r(12),r(5))},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,r(176);var i=/\\(u\{([0-9A-Fa-f]+)\}|u([0-9A-Fa-f]{4})|x([0-9A-Fa-f]{2})|([1-7][0-7]{0,2}|[0-7]{2,3})|(['"tbrnfv0\\]))|\\U([0-9A-Fa-f]{8})/g,n={0:"\0",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t",v:"\v","'":"'",'"':'"',"\\":"\\"},s=function(t){return String.fromCodePoint(parseInt(t,16))};e.default=function(t){return t.replace(i,(function(t,e,r,i,o,a,u,c){return void 0!==r?s(r):void 0!==i?s(i):void 0!==o?s(o):void 0!==a?(h=a,String.fromCodePoint(parseInt(h,8))):void 0!==c?s(c):n[u];var h}))},t.exports=e.default},function(t,e,r){"use strict";t.exports=function(){function t(t,e,r,i,n){return tr?r+1:t+1:i===n?e:e+1}return function(e,r){if(e===r)return 0;if(e.length>r.length){var i=e;e=r,r=i}for(var n=e.length,s=r.length;n>0&&e.charCodeAt(n-1)===r.charCodeAt(s-1);)n--,s--;for(var o=0;oo(t,e,(t,e)=>t?n(t):i(e),r))}function u(t,e,r,i,n){return console.warn("WARNING: "+e+" is deprecated and will be removed soon. Please use "+r+" instead."),a(t,i,n)}t.exports={json2csv:(t,e,r)=>o(i,t,e,r),csv2json:(t,e,r)=>o(n,t,e,r),json2csvAsync:(t,e)=>a(i,t,e),csv2jsonAsync:(t,e)=>a(n,t,e),json2csvPromisified:(t,e)=>u(i,"json2csvPromisified()","json2csvAsync()",t,e),csv2jsonPromisified:(t,e)=>u(n,"csv2jsonPromisified()","csv2jsonAsync()",t,e)}},function(t,e,r){"use strict";(function(t){r.d(e,"a",(function(){return s}));var i=r(117),n=r(17);class s extends n.a{constructor(e){super(),this.bundle=new i.Bundle(t.from(e))}async load(t){this.db=t;const e=this.bundle.primaryURL,r=new Date,i=r.getTime(),n=e;this.addPage({url:e,date:r.toISOString(),title:n});for(const t of this.bundle.urls){const e=this.bundle.getResponse(t);this.addResource({url:t,ts:i,status:e.status,respHeaders:e.headers,payload:e.body})}return await this.finishIndexing(),{}}}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(202);e.Bundle=i.Bundle,e.Response=i.Response;var n=r(209);e.BundleBuilder=n.BundleBuilder},,,,,function(t,e,r){"use strict";e.byteLength=function(t){var e=c(t),r=e[0],i=e[1];return 3*(r+i)/4-i},e.toByteArray=function(t){var e,r,i=c(t),o=i[0],a=i[1],u=new s(function(t,e,r){return 3*(e+r)/4-r}(0,o,a)),h=0,l=a>0?o-4:o;for(r=0;r>16&255,u[h++]=e>>8&255,u[h++]=255&e;2===a&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[h++]=255&e);1===a&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[h++]=e>>8&255,u[h++]=255&e);return u},e.fromByteArray=function(t){for(var e,r=t.length,n=r%3,s=[],o=0,a=r-n;oa?a:o+16383));1===n?(e=t[r-1],s.push(i[e>>2]+i[e<<4&63]+"==")):2===n&&(e=(t[r-2]<<8)+t[r-1],s.push(i[e>>10]+i[e>>4&63]+i[e<<2&63]+"="));return s.join("")};for(var i=[],n=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function h(t,e,r){for(var n,s,o=[],a=e;a>18&63]+i[s>>12&63]+i[s>>6&63]+i[63&s]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},function(t,e){ -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ -e.read=function(t,e,r,i,n){var s,o,a=8*n-i-1,u=(1<>1,h=-7,l=r?n-1:0,p=r?-1:1,d=t[e+l];for(l+=p,s=d&(1<<-h)-1,d>>=-h,h+=a;h>0;s=256*s+t[e+l],l+=p,h-=8);for(o=s&(1<<-h)-1,s>>=-h,h+=i;h>0;o=256*o+t[e+l],l+=p,h-=8);if(0===s)s=1-c;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,i),s-=c}return(d?-1:1)*o*Math.pow(2,s-i)},e.write=function(t,e,r,i,n,s){var o,a,u,c=8*s-n-1,h=(1<>1,p=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=i?0:s-1,f=i?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=h):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+l>=1?p/u:p*Math.pow(2,1-l))*u>=2&&(o++,u/=2),o+l>=h?(a=0,o=h):o+l>=1?(a=(e*u-1)*Math.pow(2,n),o+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,n),o=0));n>=8;t[r+d]=255&a,d+=f,a/=256,n-=8);for(o=o<0;t[r+d]=255&o,d+=f,o/=256,c-=8);t[r+d-f]|=128*m}},function(t,e){},function(t,e,r){"use strict";var i=r(37).Buffer,n=r(126);t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var e,r,n,s=i.allocUnsafe(t>>>0),o=this.head,a=0;o;)e=o.data,r=s,n=a,e.copy(r,n),a+=o.data.length,o=o.next;return s},t}(),n&&n.inspect&&n.inspect.custom&&(t.exports.prototype[n.inspect.custom]=function(){var t=n.inspect({length:this.length});return this.constructor.name+" "+t})},function(t,e){},function(t,e,r){(function(t){var i=void 0!==t&&t||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function s(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new s(n.call(setTimeout,i,arguments),clearTimeout)},e.setInterval=function(){return new s(n.call(setInterval,i,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},s.prototype.unref=s.prototype.ref=function(){},s.prototype.close=function(){this._clearFn.call(i,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},r(128),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,r(5))},function(t,e,r){(function(t,e){!function(t,r){"use strict";if(!t.setImmediate){var i,n,s,o,a,u=1,c={},h=!1,l=t.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(t);p=p&&p.setTimeout?p:t,"[object process]"==={}.toString.call(t.process)?i=function(t){e.nextTick((function(){f(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=r,e}}()?t.MessageChannel?((s=new MessageChannel).port1.onmessage=function(t){f(t.data)},i=function(t){s.port2.postMessage(t)}):l&&"onreadystatechange"in l.createElement("script")?(n=l.documentElement,i=function(t){var e=l.createElement("script");e.onreadystatechange=function(){f(t),e.onreadystatechange=null,n.removeChild(e),e=null},n.appendChild(e)}):i=function(t){setTimeout(f,0,t)}:(o="setImmediate$"+Math.random()+"$",a=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(o)&&f(+e.data.slice(o.length))},t.addEventListener?t.addEventListener("message",a,!1):t.attachEvent("onmessage",a),i=function(e){t.postMessage(o+e,"*")}),p.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),r=0;rthis.bufferWaterline&&(this.lastCharPos-=this.pos,this.html=this.html.substring(this.pos),this.pos=0,this.lastGapPos=-1,this.gapStack=[])}write(t,e){this.html?this.html+=t:this.html=t,this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1,this.lastChunkWritten=e}insertHtmlAtCurrentPos(t){this.html=this.html.substring(0,this.pos+1)+t+this.html.substring(this.pos+1,this.html.length),this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1}advance(){if(this.pos++,this.pos>this.lastCharPos)return this.endOfChunkHit=!this.lastChunkWritten,s.EOF;let t=this.html.charCodeAt(this.pos);if(this.skipNextNewLine&&t===s.LINE_FEED)return this.skipNextNewLine=!1,this._addGap(),this.advance();if(t===s.CARRIAGE_RETURN)return this.skipNextNewLine=!0,s.LINE_FEED;this.skipNextNewLine=!1,i.isSurrogate(t)&&(t=this._processSurrogate(t));return t>31&&t<127||t===s.LINE_FEED||t===s.CARRIAGE_RETURN||t>159&&t<64976||this._checkForProblematicCharacters(t),t}_checkForProblematicCharacters(t){i.isControlCodePoint(t)?this._err(n.controlCharacterInInputStream):i.isUndefinedCodePoint(t)&&this._err(n.noncharacterInInputStream)}retreat(){this.pos===this.lastGapPos&&(this.lastGapPos=this.gapStack.pop(),this.pos--),this.pos--}}},function(t,e,r){"use strict";t.exports=new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4e3,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,1e4,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13e3,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204])},function(t,e,r){"use strict";const i=r(40),n=r(31),s=r(139);t.exports=class extends i{constructor(t){super(t),this.tokenizer=t,this.posTracker=i.install(t.preprocessor,s),this.currentAttrLocation=null,this.ctLoc=null}_getCurrentLocation(){return{startLine:this.posTracker.line,startCol:this.posTracker.col,startOffset:this.posTracker.offset,endLine:-1,endCol:-1,endOffset:-1}}_attachCurrentAttrLocationInfo(){this.currentAttrLocation.endLine=this.posTracker.line,this.currentAttrLocation.endCol=this.posTracker.col,this.currentAttrLocation.endOffset=this.posTracker.offset;const t=this.tokenizer.currentToken,e=this.tokenizer.currentAttr;t.location.attrs||(t.location.attrs=Object.create(null)),t.location.attrs[e.name]=this.currentAttrLocation}_getOverriddenMethods(t,e){const r={_createStartTagToken(){e._createStartTagToken.call(this),this.currentToken.location=t.ctLoc},_createEndTagToken(){e._createEndTagToken.call(this),this.currentToken.location=t.ctLoc},_createCommentToken(){e._createCommentToken.call(this),this.currentToken.location=t.ctLoc},_createDoctypeToken(r){e._createDoctypeToken.call(this,r),this.currentToken.location=t.ctLoc},_createCharacterToken(r,i){e._createCharacterToken.call(this,r,i),this.currentCharacterToken.location=t.ctLoc},_createEOFToken(){e._createEOFToken.call(this),this.currentToken.location=t._getCurrentLocation()},_createAttr(r){e._createAttr.call(this,r),t.currentAttrLocation=t._getCurrentLocation()},_leaveAttrName(r){e._leaveAttrName.call(this,r),t._attachCurrentAttrLocationInfo()},_leaveAttrValue(r){e._leaveAttrValue.call(this,r),t._attachCurrentAttrLocationInfo()},_emitCurrentToken(){const r=this.currentToken.location;this.currentCharacterToken&&(this.currentCharacterToken.location.endLine=r.startLine,this.currentCharacterToken.location.endCol=r.startCol,this.currentCharacterToken.location.endOffset=r.startOffset),this.currentToken.type===n.EOF_TOKEN?(r.endLine=r.startLine,r.endCol=r.startCol,r.endOffset=r.startOffset):(r.endLine=t.posTracker.line,r.endCol=t.posTracker.col+1,r.endOffset=t.posTracker.offset+1),e._emitCurrentToken.call(this)},_emitCurrentCharacterToken(){const r=this.currentCharacterToken&&this.currentCharacterToken.location;r&&-1===r.endOffset&&(r.endLine=t.posTracker.line,r.endCol=t.posTracker.col,r.endOffset=t.posTracker.offset),e._emitCurrentCharacterToken.call(this)}};return Object.keys(n.MODE).forEach(i=>{const s=n.MODE[i];r[s]=function(r){t.ctLoc=t._getCurrentLocation(),e[s].call(this,r)}}),r}}},function(t,e,r){"use strict";const i=r(40);t.exports=class extends i{constructor(t){super(t),this.preprocessor=t,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.offset=0,this.col=0,this.line=1}_getOverriddenMethods(t,e){return{advance(){const r=this.pos+1,i=this.html[r];return t.isEol&&(t.isEol=!1,t.line++,t.lineStartPos=r),("\n"===i||"\r"===i&&"\n"!==this.html[r+1])&&(t.isEol=!0),t.col=r-t.lineStartPos+1,t.offset=t.droppedBufferSize+r,e.advance.call(this)},retreat(){e.retreat.call(this),t.isEol=!1,t.col=this.pos-t.lineStartPos+1},dropParsedChunk(){const r=this.pos;e.dropParsedChunk.call(this);const i=r-this.pos;t.lineStartPos-=i,t.droppedBufferSize+=i,t.offset=t.droppedBufferSize+this.pos}}}}},function(t,e,r){"use strict";const{Writable:i}=r(3);t.exports=class extends i{_write(t,e,r){r()}}},function(t,e,r){"use strict";const i=r(31),n=r(142),s=r(39),o=r(21),a=o.TAG_NAMES,u=o.NAMESPACES;t.exports=class{constructor(t){this.tokenizer=t,this.namespaceStack=[],this.namespaceStackTop=-1,this._enterNamespace(u.HTML)}getNextToken(){const t=this.tokenizer.getNextToken();if(t.type===i.START_TAG_TOKEN)this._handleStartTagToken(t);else if(t.type===i.END_TAG_TOKEN)this._handleEndTagToken(t);else if(t.type===i.NULL_CHARACTER_TOKEN&&this.inForeignContent)t.type=i.CHARACTER_TOKEN,t.chars=s.REPLACEMENT_CHARACTER;else if(this.skipNextNewLine&&(t.type!==i.HIBERNATION_TOKEN&&(this.skipNextNewLine=!1),t.type===i.WHITESPACE_CHARACTER_TOKEN&&"\n"===t.chars[0])){if(1===t.chars.length)return this.getNextToken();t.chars=t.chars.substr(1)}return t}_enterNamespace(t){this.namespaceStackTop++,this.namespaceStack.push(t),this.inForeignContent=t!==u.HTML,this.currentNamespace=t,this.tokenizer.allowCDATA=this.inForeignContent}_leaveCurrentNamespace(){this.namespaceStackTop--,this.namespaceStack.pop(),this.currentNamespace=this.namespaceStack[this.namespaceStackTop],this.inForeignContent=this.currentNamespace!==u.HTML,this.tokenizer.allowCDATA=this.inForeignContent}_ensureTokenizerMode(t){t===a.TEXTAREA||t===a.TITLE?this.tokenizer.state=i.MODE.RCDATA:t===a.PLAINTEXT?this.tokenizer.state=i.MODE.PLAINTEXT:t===a.SCRIPT?this.tokenizer.state=i.MODE.SCRIPT_DATA:t!==a.STYLE&&t!==a.IFRAME&&t!==a.XMP&&t!==a.NOEMBED&&t!==a.NOFRAMES&&t!==a.NOSCRIPT||(this.tokenizer.state=i.MODE.RAWTEXT)}_handleStartTagToken(t){let e=t.tagName;if(e===a.SVG?this._enterNamespace(u.SVG):e===a.MATH&&this._enterNamespace(u.MATHML),this.inForeignContent){if(n.causesExit(t))return void this._leaveCurrentNamespace();const r=this.currentNamespace;r===u.MATHML?n.adjustTokenMathMLAttrs(t):r===u.SVG&&(n.adjustTokenSVGTagName(t),n.adjustTokenSVGAttrs(t)),n.adjustTokenXMLAttrs(t),e=t.tagName,!t.selfClosing&&n.isIntegrationPoint(e,r,t.attrs)&&this._enterNamespace(u.HTML)}else e===a.PRE||e===a.TEXTAREA||e===a.LISTING?this.skipNextNewLine=!0:e===a.IMAGE&&(t.tagName=a.IMG),this._ensureTokenizerMode(e)}_handleEndTagToken(t){let e=t.tagName;if(this.inForeignContent)(e===a.SVG&&this.currentNamespace===u.SVG||e===a.MATH&&this.currentNamespace===u.MATHML)&&this._leaveCurrentNamespace();else{const r=this.namespaceStack[this.namespaceStackTop-1];r===u.SVG&&n.SVG_TAG_NAMES_ADJUSTMENT_MAP[e]&&(e=n.SVG_TAG_NAMES_ADJUSTMENT_MAP[e]),n.isIntegrationPoint(e,r,t.attrs)&&this._leaveCurrentNamespace()}this.currentNamespace===u.SVG&&n.adjustTokenSVGTagName(t)}}},function(t,e,r){"use strict";const i=r(31),n=r(21),s=n.TAG_NAMES,o=n.NAMESPACES,a=n.ATTRS,u="text/html",c="application/xhtml+xml",h={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},l={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:o.XLINK},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:o.XLINK},"xlink:href":{prefix:"xlink",name:"href",namespace:o.XLINK},"xlink:role":{prefix:"xlink",name:"role",namespace:o.XLINK},"xlink:show":{prefix:"xlink",name:"show",namespace:o.XLINK},"xlink:title":{prefix:"xlink",name:"title",namespace:o.XLINK},"xlink:type":{prefix:"xlink",name:"type",namespace:o.XLINK},"xml:base":{prefix:"xml",name:"base",namespace:o.XML},"xml:lang":{prefix:"xml",name:"lang",namespace:o.XML},"xml:space":{prefix:"xml",name:"space",namespace:o.XML},xmlns:{prefix:"",name:"xmlns",namespace:o.XMLNS},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:o.XMLNS}},p=e.SVG_TAG_NAMES_ADJUSTMENT_MAP={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},d={[s.B]:!0,[s.BIG]:!0,[s.BLOCKQUOTE]:!0,[s.BODY]:!0,[s.BR]:!0,[s.CENTER]:!0,[s.CODE]:!0,[s.DD]:!0,[s.DIV]:!0,[s.DL]:!0,[s.DT]:!0,[s.EM]:!0,[s.EMBED]:!0,[s.H1]:!0,[s.H2]:!0,[s.H3]:!0,[s.H4]:!0,[s.H5]:!0,[s.H6]:!0,[s.HEAD]:!0,[s.HR]:!0,[s.I]:!0,[s.IMG]:!0,[s.LI]:!0,[s.LISTING]:!0,[s.MENU]:!0,[s.META]:!0,[s.NOBR]:!0,[s.OL]:!0,[s.P]:!0,[s.PRE]:!0,[s.RUBY]:!0,[s.S]:!0,[s.SMALL]:!0,[s.SPAN]:!0,[s.STRONG]:!0,[s.STRIKE]:!0,[s.SUB]:!0,[s.SUP]:!0,[s.TABLE]:!0,[s.TT]:!0,[s.U]:!0,[s.UL]:!0,[s.VAR]:!0};e.causesExit=function(t){const e=t.tagName;return!!(e===s.FONT&&(null!==i.getTokenAttr(t,a.COLOR)||null!==i.getTokenAttr(t,a.SIZE)||null!==i.getTokenAttr(t,a.FACE)))||d[e]},e.adjustTokenMathMLAttrs=function(t){for(let e=0;e/g;class m{constructor(t,e){this.options=n(c,e),this.treeAdapter=this.options.treeAdapter,this.html="",this.startNode=t}serialize(){return this._serializeChildNodes(this.startNode),this.html}_serializeChildNodes(t){const e=this.treeAdapter.getChildNodes(t);if(e)for(let t=0,r=e.length;t",e!==a.AREA&&e!==a.BASE&&e!==a.BASEFONT&&e!==a.BGSOUND&&e!==a.BR&&e!==a.COL&&e!==a.EMBED&&e!==a.FRAME&&e!==a.HR&&e!==a.IMG&&e!==a.INPUT&&e!==a.KEYGEN&&e!==a.LINK&&e!==a.META&&e!==a.PARAM&&e!==a.SOURCE&&e!==a.TRACK&&e!==a.WBR){const i=e===a.TEMPLATE&&r===u.HTML?this.treeAdapter.getTemplateContent(t):t;this._serializeChildNodes(i),this.html+=""}}_serializeAttributes(t){const e=this.treeAdapter.getAttrList(t);for(let t=0,r=e.length;t"}}m.escapeString=function(t,e){return t=t.replace(h,"&").replace(l," "),t=e?t.replace(p,"""):t.replace(d,"<").replace(f,">")},t.exports=m},function(t,e,r){"use strict";const{DOCUMENT_MODE:i}=r(21);e.createDocument=function(){return{nodeName:"#document",mode:i.NO_QUIRKS,childNodes:[]}},e.createDocumentFragment=function(){return{nodeName:"#document-fragment",childNodes:[]}},e.createElement=function(t,e,r){return{nodeName:t,tagName:t,attrs:r,namespaceURI:e,childNodes:[],parentNode:null}},e.createCommentNode=function(t){return{nodeName:"#comment",data:t,parentNode:null}};const n=function(t){return{nodeName:"#text",value:t,parentNode:null}},s=e.appendChild=function(t,e){t.childNodes.push(e),e.parentNode=t},o=e.insertBefore=function(t,e,r){const i=t.childNodes.indexOf(r);t.childNodes.splice(i,0,e),e.parentNode=t};e.setTemplateContent=function(t,e){t.content=e},e.getTemplateContent=function(t){return t.content},e.setDocumentType=function(t,e,r,i){let n=null;for(let e=0;e-1)return i.QUIRKS;let t=null===e?s:n;if(h(r,t))return i.QUIRKS;if(t=null===e?a:u,h(r,t))return i.LIMITED_QUIRKS}return i.NO_QUIRKS},e.serializeContent=function(t,e,r){let i="!DOCTYPE ";return t&&(i+=t),e?i+=" PUBLIC "+c(e):r&&(i+=" SYSTEM"),null!==r&&(i+=" "+c(r)),i}},function(t,e,r){"use strict";function i(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t,e,r,s){e=e||"&",r=r||"=";var o={};if("string"!=typeof t||0===t.length)return o;var a=/\+/g;t=t.split(e);var u=1e3;s&&"number"==typeof s.maxKeys&&(u=s.maxKeys);var c=t.length;u>0&&c>u&&(c=u);for(var h=0;h=0?(l=m.substr(0,w),p=m.substr(w+1)):(l=m,p=""),d=decodeURIComponent(l),f=decodeURIComponent(p),i(o,d)?n(o[d])?o[d].push(f):o[d]=[o[d],f]:o[d]=f}return o};var n=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}},function(t,e,r){"use strict";var i=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};t.exports=function(t,e,r,a){return e=e||"&",r=r||"=",null===t&&(t=void 0),"object"==typeof t?s(o(t),(function(o){var a=encodeURIComponent(i(o))+r;return n(t[o])?s(t[o],(function(t){return a+encodeURIComponent(i(t))})).join(e):a+encodeURIComponent(i(t[o]))})).join(e):a?encodeURIComponent(i(a))+r+encodeURIComponent(i(t)):""};var n=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function s(t,e){if(t.map)return t.map(e);for(var r=[],i=0;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,f=String.fromCharCode;function m(t){throw new RangeError(p[t])}function w(t,e){for(var r=t.length,i=[];r--;)i[r]=e(t[r]);return i}function g(t,e){var r=t.split("@"),i="";return r.length>1&&(i=r[0]+"@",t=r[1]),i+w((t=t.replace(l,".")).split("."),e).join(".")}function y(t){for(var e,r,i=[],n=0,s=t.length;n=55296&&e<=56319&&n65535&&(e+=f((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+=f(t)})).join("")}function _(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function E(t,e,r){var i=0;for(t=r?d(t/700):t>>1,t+=d(t/e);t>455;i+=36)t=d(t/35);return d(i+36*t/(t+38))}function v(t){var e,r,i,n,s,o,a,c,h,l,p,f=[],w=t.length,g=0,y=128,_=72;for((r=t.lastIndexOf("-"))<0&&(r=0),i=0;i=128&&m("not-basic"),f.push(t.charCodeAt(i));for(n=r>0?r+1:0;n=w&&m("invalid-input"),((c=(p=t.charCodeAt(n++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||c>d((u-g)/o))&&m("overflow"),g+=c*o,!(c<(h=a<=_?1:a>=_+26?26:a-_));a+=36)o>d(u/(l=36-h))&&m("overflow"),o*=l;_=E(g-s,e=f.length+1,0==s),d(g/e)>u-y&&m("overflow"),y+=d(g/e),g%=e,f.splice(g++,0,y)}return b(f)}function A(t){var e,r,i,n,s,o,a,c,h,l,p,w,g,b,v,A=[];for(w=(t=y(t)).length,e=128,r=0,s=72,o=0;o=e&&pd((u-r)/(g=i+1))&&m("overflow"),r+=(a-e)*g,e=a,o=0;ou&&m("overflow"),p==e){for(c=r,h=36;!(c<(l=h<=s?1:h>=s+26?26:h-s));h+=36)v=c-l,b=36-l,A.push(f(_(l+v%b,0))),c=d(v/b);A.push(f(_(c,0))),s=E(r,g,i==n),r=0,++i}++r,++e}return A.join("")}a={version:"1.4.1",ucs2:{decode:y,encode:b},decode:v,encode:A,toASCII:function(t){return g(t,(function(t){return h.test(t)?"xn--"+A(t):t}))},toUnicode:function(t){return g(t,(function(t){return c.test(t)?v(t.slice(4).toLowerCase()):t}))}},void 0===(n=function(){return a}.call(e,r,e,t))||(t.exports=n)}()}).call(this,r(149)(t),r(5))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,r){"use strict";t.exports={isString:function(t){return"string"==typeof t},isObject:function(t){return"object"==typeof t&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}}},function(t,e){t.exports=function(){for(var t={},e=0;e0},i.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{var t=this.buf_ptr_,e=this.input_.read(this.buf_,t,4096);if(e<0)throw new Error("Unexpected end of input");if(e<4096){this.eos_=1;for(var r=0;r<32;r++)this.buf_[t+e+r]=0}if(0===t){for(r=0;r<32;r++)this.buf_[8192+r]=this.buf_[r];this.buf_ptr_=4096}else this.buf_ptr_=0;this.bit_end_pos_+=e<<3}},i.prototype.fillBitWindow=function(){for(;this.bit_pos_>=8;)this.val_>>>=8,this.val_|=this.buf_[8191&this.pos_]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},i.prototype.readBits=function(t){32-this.bit_pos_>>this.bit_pos_&r[t];return this.bit_pos_+=t,e},t.exports=i},function(t,e,r){var i=r(157);e.init=function(){return(0,r(70).BrotliDecompressBuffer)(i.toByteArray(r(158)))}},function(t,e,r){"use strict";e.byteLength=function(t){var e=c(t),r=e[0],i=e[1];return 3*(r+i)/4-i},e.toByteArray=function(t){var e,r,i=c(t),o=i[0],a=i[1],u=new s(function(t,e,r){return 3*(e+r)/4-r}(0,o,a)),h=0,l=a>0?o-4:o;for(r=0;r>16&255,u[h++]=e>>8&255,u[h++]=255&e;2===a&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[h++]=255&e);1===a&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[h++]=e>>8&255,u[h++]=255&e);return u},e.fromByteArray=function(t){for(var e,r=t.length,n=r%3,s=[],o=0,a=r-n;oa?a:o+16383));1===n?(e=t[r-1],s.push(i[e>>2]+i[e<<4&63]+"==")):2===n&&(e=(t[r-2]<<8)+t[r-1],s.push(i[e>>10]+i[e>>4&63]+i[e<<2&63]+"="));return s.join("")};for(var i=[],n=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function h(t,e,r){for(var n,s,o=[],a=e;a>18&63]+i[s>>12&63]+i[s>>6&63]+i[63&s]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},function(t,e){t.exports="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"},function(t,e){e.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),e.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512])},function(t,e){function r(t,e){this.offset=t,this.nbits=e}e.kBlockLengthPrefixCode=[new r(1,2),new r(5,2),new r(9,2),new r(13,2),new r(17,3),new r(25,3),new r(33,3),new r(41,3),new r(49,4),new r(65,4),new r(81,4),new r(97,4),new r(113,5),new r(145,5),new r(177,5),new r(209,5),new r(241,6),new r(305,6),new r(369,7),new r(497,8),new r(753,9),new r(1265,10),new r(2289,11),new r(4337,12),new r(8433,13),new r(16625,24)],e.kInsertLengthPrefixCode=[new r(0,0),new r(1,0),new r(2,0),new r(3,0),new r(4,0),new r(5,0),new r(6,1),new r(8,1),new r(10,2),new r(14,2),new r(18,3),new r(26,3),new r(34,4),new r(50,4),new r(66,5),new r(98,5),new r(130,6),new r(194,7),new r(322,8),new r(578,9),new r(1090,10),new r(2114,12),new r(6210,14),new r(22594,24)],e.kCopyLengthPrefixCode=[new r(2,0),new r(3,0),new r(4,0),new r(5,0),new r(6,0),new r(7,0),new r(8,0),new r(9,0),new r(10,1),new r(12,1),new r(14,2),new r(18,2),new r(22,3),new r(30,3),new r(38,4),new r(54,4),new r(70,5),new r(102,5),new r(134,6),new r(198,7),new r(326,8),new r(582,9),new r(1094,10),new r(2118,24)],e.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],e.kCopyRangeLut=[0,8,0,8,16,0,16,8,16]},function(t,e,r){var i=r(72);function n(t,e,r){this.prefix=new Uint8Array(t.length),this.transform=e,this.suffix=new Uint8Array(r.length);for(var i=0;i'),new n("",0,"\n"),new n("",3,""),new n("",0,"]"),new n("",0," for "),new n("",14,""),new n("",2,""),new n("",0," a "),new n("",0," that "),new n(" ",10,""),new n("",0,". "),new n(".",0,""),new n(" ",0,", "),new n("",15,""),new n("",0," with "),new n("",0,"'"),new n("",0," from "),new n("",0," by "),new n("",16,""),new n("",17,""),new n(" the ",0,""),new n("",4,""),new n("",0,". The "),new n("",11,""),new n("",0," on "),new n("",0," as "),new n("",0," is "),new n("",7,""),new n("",1,"ing "),new n("",0,"\n\t"),new n("",0,":"),new n(" ",0,". "),new n("",0,"ed "),new n("",20,""),new n("",18,""),new n("",6,""),new n("",0,"("),new n("",10,", "),new n("",8,""),new n("",0," at "),new n("",0,"ly "),new n(" the ",0," of "),new n("",5,""),new n("",9,""),new n(" ",10,", "),new n("",10,'"'),new n(".",0,"("),new n("",11," "),new n("",10,'">'),new n("",0,'="'),new n(" ",0,"."),new n(".com/",0,""),new n(" the ",0," of the "),new n("",10,"'"),new n("",0,". This "),new n("",0,","),new n(".",0," "),new n("",10,"("),new n("",10,"."),new n("",0," not "),new n(" ",0,'="'),new n("",0,"er "),new n(" ",11," "),new n("",0,"al "),new n(" ",11,""),new n("",0,"='"),new n("",11,'"'),new n("",10,". "),new n(" ",0,"("),new n("",0,"ful "),new n(" ",10,". "),new n("",0,"ive "),new n("",0,"less "),new n("",11,"'"),new n("",0,"est "),new n(" ",10,"."),new n("",11,'">'),new n(" ",0,"='"),new n("",10,","),new n("",0,"ize "),new n("",11,"."),new n(" ",0,""),new n(" ",0,","),new n("",10,'="'),new n("",11,'="'),new n("",0,"ous "),new n("",11,", "),new n("",10,"='"),new n(" ",10,","),new n(" ",11,'="'),new n(" ",11,", "),new n("",11,","),new n("",11,"("),new n("",11,". "),new n(" ",11,"."),new n("",11,"='"),new n(" ",11,". "),new n(" ",10,'="'),new n(" ",11,"='"),new n(" ",10,"='")];function o(t,e){return t[e]<192?(t[e]>=97&&t[e]<=122&&(t[e]^=32),1):t[e]<224?(t[e+1]^=32,2):(t[e+2]^=5,3)}e.kTransforms=s,e.kNumTransforms=s.length,e.transformDictionaryWord=function(t,e,r,n,a){var u,c=s[a].prefix,h=s[a].suffix,l=s[a].transform,p=l<12?0:l-11,d=0,f=e;p>n&&(p=n);for(var m=0;m0;){var w=o(t,u);u+=w,n-=w}for(var g=0;g4?9:0)}function l(t){for(var e=t.length;--e>=0;)t[e]=0}function p(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(n.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function d(t,e){s._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,p(t.strm)}function f(t,e){t.pending_buf[t.pending++]=e}function m(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function w(t,e){var r,i,n=t.max_chain_length,s=t.strstart,o=t.prev_length,a=t.nice_match,u=t.strstart>t.w_size-262?t.strstart-(t.w_size-262):0,c=t.window,h=t.w_mask,l=t.prev,p=t.strstart+258,d=c[s+o-1],f=c[s+o];t.prev_length>=t.good_match&&(n>>=2),a>t.lookahead&&(a=t.lookahead);do{if(c[(r=e)+o]===f&&c[r+o-1]===d&&c[r]===c[s]&&c[++r]===c[s+1]){s+=2,r++;do{}while(c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&so){if(t.match_start=e,o=i,i>=a)break;d=c[s+o-1],f=c[s+o]}}}while((e=l[e&h])>u&&0!=--n);return o<=t.lookahead?o:t.lookahead}function g(t){var e,r,i,s,u,c,h,l,p,d,f=t.w_size;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-262)){n.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;do{i=t.head[--e],t.head[e]=i>=f?i-f:0}while(--r);e=r=f;do{i=t.prev[--e],t.prev[e]=i>=f?i-f:0}while(--r);s+=f}if(0===t.strm.avail_in)break;if(c=t.strm,h=t.window,l=t.strstart+t.lookahead,p=s,d=void 0,(d=c.avail_in)>p&&(d=p),r=0===d?0:(c.avail_in-=d,n.arraySet(h,c.input,c.next_in,d,l),1===c.state.wrap?c.adler=o(c.adler,h,d,l):2===c.state.wrap&&(c.adler=a(c.adler,h,d,l)),c.next_in+=d,c.total_in+=d,d),t.lookahead+=r,t.lookahead+t.insert>=3)for(u=t.strstart-t.insert,t.ins_h=t.window[u],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(i=s._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=s._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=(t.ins_h<15&&(a=2,i-=16),s<1||s>9||8!==r||i<8||i>15||e<0||e>9||o<0||o>4)return c(t,-2);8===i&&(i=9);var u=new E;return t.state=u,u.strm=t,u.wrap=a,u.gzhead=null,u.w_bits=i,u.w_size=1<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(g(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,d(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-262&&(d(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(d(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(d(t,!1),t.strm.avail_out),1)})),new _(4,4,8,4,y),new _(4,5,16,8,y),new _(4,6,32,32,y),new _(4,4,16,16,b),new _(8,16,32,32,b),new _(8,16,128,128,b),new _(8,32,128,256,b),new _(32,128,258,1024,b),new _(32,258,258,4096,b)],e.deflateInit=function(t,e){return T(t,e,8,15,8,0)},e.deflateInit2=T,e.deflateReset=A,e.deflateResetKeep=v,e.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?-2:(t.state.gzhead=e,0):-2},e.deflate=function(t,e){var r,n,o,u;if(!t||!t.state||e>5||e<0)return t?c(t,-2):-2;if(n=t.state,!t.output||!t.input&&0!==t.avail_in||666===n.status&&4!==e)return c(t,0===t.avail_out?-5:-2);if(n.strm=t,r=n.last_flush,n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,f(n,31),f(n,139),f(n,8),n.gzhead?(f(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),f(n,255&n.gzhead.time),f(n,n.gzhead.time>>8&255),f(n,n.gzhead.time>>16&255),f(n,n.gzhead.time>>24&255),f(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),f(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(f(n,255&n.gzhead.extra.length),f(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=a(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(f(n,0),f(n,0),f(n,0),f(n,0),f(n,0),f(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),f(n,3),n.status=113);else{var w=8+(n.w_bits-8<<4)<<8;w|=(n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(w|=32),w+=31-w%31,n.status=113,m(n,w),0!==n.strstart&&(m(n,t.adler>>>16),m(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(o=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>o&&(t.adler=a(t.adler,n.pending_buf,n.pending-o,o)),p(t),o=n.pending,n.pending!==n.pending_buf_size));)f(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>o&&(t.adler=a(t.adler,n.pending_buf,n.pending-o,o)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){o=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>o&&(t.adler=a(t.adler,n.pending_buf,n.pending-o,o)),p(t),o=n.pending,n.pending===n.pending_buf_size)){u=1;break}u=n.gzindexo&&(t.adler=a(t.adler,n.pending_buf,n.pending-o,o)),0===u&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){o=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>o&&(t.adler=a(t.adler,n.pending_buf,n.pending-o,o)),p(t),o=n.pending,n.pending===n.pending_buf_size)){u=1;break}u=n.gzindexo&&(t.adler=a(t.adler,n.pending_buf,n.pending-o,o)),0===u&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&p(t),n.pending+2<=n.pending_buf_size&&(f(n,255&t.adler),f(n,t.adler>>8&255),t.adler=0,n.status=113)):n.status=113),0!==n.pending){if(p(t),0===t.avail_out)return n.last_flush=-1,0}else if(0===t.avail_in&&h(e)<=h(r)&&4!==e)return c(t,-5);if(666===n.status&&0!==t.avail_in)return c(t,-5);if(0!==t.avail_in||0!==n.lookahead||0!==e&&666!==n.status){var y=2===n.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(g(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,r=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(d(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(d(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(d(t,!1),0===t.strm.avail_out)?1:2}(n,e):3===n.strategy?function(t,e){for(var r,i,n,o,a=t.window;;){if(t.lookahead<=258){if(g(t),t.lookahead<=258&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(i=a[n=t.strstart-1])===a[++n]&&i===a[++n]&&i===a[++n]){o=t.strstart+258;do{}while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(r=s._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(d(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(d(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(d(t,!1),0===t.strm.avail_out)?1:2}(n,e):i[n.level].func(n,e);if(3!==y&&4!==y||(n.status=666),1===y||3===y)return 0===t.avail_out&&(n.last_flush=-1),0;if(2===y&&(1===e?s._tr_align(n):5!==e&&(s._tr_stored_block(n,0,0,!1),3===e&&(l(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),p(t),0===t.avail_out))return n.last_flush=-1,0}return 4!==e?0:n.wrap<=0?1:(2===n.wrap?(f(n,255&t.adler),f(n,t.adler>>8&255),f(n,t.adler>>16&255),f(n,t.adler>>24&255),f(n,255&t.total_in),f(n,t.total_in>>8&255),f(n,t.total_in>>16&255),f(n,t.total_in>>24&255)):(m(n,t.adler>>>16),m(n,65535&t.adler)),p(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)},e.deflateEnd=function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&103!==e&&113!==e&&666!==e?c(t,-2):(t.state=null,113===e?c(t,-3):0):-2},e.deflateSetDictionary=function(t,e){var r,i,s,a,u,c,h,p,d=e.length;if(!t||!t.state)return-2;if(2===(a=(r=t.state).wrap)||1===a&&42!==r.status||r.lookahead)return-2;for(1===a&&(t.adler=o(t.adler,e,d,0)),r.wrap=0,d>=r.w_size&&(0===a&&(l(r.head),r.strstart=0,r.block_start=0,r.insert=0),p=new n.Buf8(r.w_size),n.arraySet(p,e,d-r.w_size,r.w_size,0),e=p,d=r.w_size),u=t.avail_in,c=t.next_in,h=t.input,t.avail_in=d,t.next_in=0,t.input=e,g(r);r.lookahead>=3;){i=r.strstart,s=r.lookahead-2;do{r.ins_h=(r.ins_h<=0;)t[e]=0}var s=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],o=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],u=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],c=new Array(576);n(c);var h=new Array(60);n(h);var l=new Array(512);n(l);var p=new Array(256);n(p);var d=new Array(29);n(d);var f,m,w,g=new Array(30);function y(t,e,r,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function b(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function _(t){return t<256?l[t]:l[256+(t>>>7)]}function E(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function v(t,e,r){t.bi_valid>16-r?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=r-16):(t.bi_buf|=e<>>=1,r<<=1}while(--e>0);return r>>>1}function x(t,e,r){var i,n,s=new Array(16),o=0;for(i=1;i<=15;i++)s[i]=o=o+r[i-1]<<1;for(n=0;n<=e;n++){var a=t[2*n+1];0!==a&&(t[2*n]=T(s[a]++,a))}}function S(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function C(t){t.bi_valid>8?E(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function D(t,e,r,i){var n=2*e,s=2*r;return t[n]>1;r>=1;r--)k(t,s,r);n=u;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],k(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,k(t,s,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,o,a,u=e.dyn_tree,c=e.max_code,h=e.stat_desc.static_tree,l=e.stat_desc.has_stree,p=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,f=e.stat_desc.max_length,m=0;for(s=0;s<=15;s++)t.bl_count[s]=0;for(u[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<573;r++)(s=u[2*u[2*(i=t.heap[r])+1]+1]+1)>f&&(s=f,m++),u[2*i+1]=s,i>c||(t.bl_count[s]++,o=0,i>=d&&(o=p[i-d]),a=u[2*i],t.opt_len+=a*(s+o),l&&(t.static_len+=a*(h[2*i+1]+o)));if(0!==m){do{for(s=f-1;0===t.bl_count[s];)s--;t.bl_count[s]--,t.bl_count[s+1]+=2,t.bl_count[f]--,m-=2}while(m>0);for(s=f;0!==s;s--)for(i=t.bl_count[s];0!==i;)(n=t.heap[--r])>c||(u[2*n+1]!==s&&(t.opt_len+=(s-u[2*n+1])*u[2*n],u[2*n+1]=s),i--)}}(t,e),x(s,c,t.bl_count)}function I(t,e,r){var i,n,s=-1,o=e[1],a=0,u=7,c=4;for(0===o&&(u=138,c=3),e[2*(r+1)+1]=65535,i=0;i<=r;i++)n=o,o=e[2*(i+1)+1],++a>=7;i<30;i++)for(g[i]=n<<7,t=0;t<1<0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),N(t,t.l_desc),N(t,t.d_desc),o=function(t){var e;for(I(t,t.dyn_ltree,t.l_desc.max_code),I(t,t.dyn_dtree,t.d_desc.max_code),N(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*u[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?P(t,e,r,i):4===t.strategy||s===n?(v(t,2+(i?1:0),3),R(t,c,h)):(v(t,4+(i?1:0),3),function(t,e,r,i){var n;for(v(t,e-257,5),v(t,r-1,5),v(t,i-4,4),n=0;n>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(p[r]+256+1)]++,t.dyn_dtree[2*_(e)]++),t.last_lit===t.lit_bufsize-1},e._tr_align=function(t){v(t,2,3),A(t,256,c),function(t){16===t.bi_valid?(E(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},function(t,e,r){"use strict";var i=r(6),n=r(74),s=r(75),o=r(165),a=r(166);function u(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function c(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function h(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new i.Buf32(852),e.distcode=e.distdyn=new i.Buf32(592),e.sane=1,e.back=-1,0):-2}function l(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,h(t)):-2}function p(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?-2:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=r,i.wbits=e,l(t))):-2}function d(t,e){var r,i;return t?(i=new c,t.state=i,i.window=null,0!==(r=p(t,e))&&(t.state=null),r):-2}var f,m,w=!0;function g(t){if(w){var e;for(f=new i.Buf32(512),m=new i.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(a(1,t.lens,0,288,f,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;a(2,t.lens,0,32,m,0,t.work,{bits:5}),w=!1}t.lencode=f,t.lenbits=9,t.distcode=m,t.distbits=5}function y(t,e,r,n){var s,o=t.state;return null===o.window&&(o.wsize=1<=o.wsize?(i.arraySet(o.window,e,r-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):((s=o.wsize-o.wnext)>n&&(s=n),i.arraySet(o.window,e,r-n,s,o.wnext),(n-=s)?(i.arraySet(o.window,e,r-n,n,0),o.wnext=n,o.whave=o.wsize):(o.wnext+=s,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,r.check=s(r.check,P,2,0),m=0,w=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&m)<<8)+(m>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&m)){t.msg="unknown compression method",r.mode=30;break}if(w-=4,R=8+(15&(m>>>=4)),0===r.wbits)r.wbits=R;else if(R>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(P[0]=255&m,P[1]=m>>>8&255,r.check=s(r.check,P,2,0)),m=0,w=0,r.mode=3;case 3:for(;w<32;){if(0===d)break t;d--,m+=c[l++]<>>8&255,P[2]=m>>>16&255,P[3]=m>>>24&255,r.check=s(r.check,P,4,0)),m=0,w=0,r.mode=4;case 4:for(;w<16;){if(0===d)break t;d--,m+=c[l++]<>8),512&r.flags&&(P[0]=255&m,P[1]=m>>>8&255,r.check=s(r.check,P,2,0)),m=0,w=0,r.mode=5;case 5:if(1024&r.flags){for(;w<16;){if(0===d)break t;d--,m+=c[l++]<>>8&255,r.check=s(r.check,P,2,0)),m=0,w=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((E=r.length)>d&&(E=d),E&&(r.head&&(R=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),i.arraySet(r.head.extra,c,l,E,R)),512&r.flags&&(r.check=s(r.check,c,E,l)),d-=E,l+=E,r.length-=E),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===d)break t;E=0;do{R=c[l+E++],r.head&&R&&r.length<65536&&(r.head.name+=String.fromCharCode(R))}while(R&&E>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;w<32;){if(0===d)break t;d--,m+=c[l++]<>>=7&w,w-=7&w,r.mode=27;break}for(;w<3;){if(0===d)break t;d--,m+=c[l++]<>>=1)){case 0:r.mode=14;break;case 1:if(g(r),r.mode=20,6===e){m>>>=2,w-=2;break t}break;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}m>>>=2,w-=2;break;case 14:for(m>>>=7&w,w-=7&w;w<32;){if(0===d)break t;d--,m+=c[l++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&m,m=0,w=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(E=r.length){if(E>d&&(E=d),E>f&&(E=f),0===E)break t;i.arraySet(h,c,l,E,p),d-=E,l+=E,f-=E,p+=E,r.length-=E;break}r.mode=12;break;case 17:for(;w<14;){if(0===d)break t;d--,m+=c[l++]<>>=5,w-=5,r.ndist=1+(31&m),m>>>=5,w-=5,r.ncode=4+(15&m),m>>>=4,w-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,w-=3}for(;r.have<19;)r.lens[B[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,I={bits:r.lenbits},N=a(0,r.lens,0,19,r.lencode,0,r.work,I),r.lenbits=I.bits,N){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,S=65535&F,!((T=F>>>24)<=w);){if(0===d)break t;d--,m+=c[l++]<>>=T,w-=T,r.lens[r.have++]=S;else{if(16===S){for(O=T+2;w>>=T,w-=T,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}R=r.lens[r.have-1],E=3+(3&m),m>>>=2,w-=2}else if(17===S){for(O=T+3;w>>=T)),m>>>=3,w-=3}else{for(O=T+7;w>>=T)),m>>>=7,w-=7}if(r.have+E>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;E--;)r.lens[r.have++]=R}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,I={bits:r.lenbits},N=a(1,r.lens,0,r.nlen,r.lencode,0,r.work,I),r.lenbits=I.bits,N){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,I={bits:r.distbits},N=a(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,I),r.distbits=I.bits,N){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(d>=6&&f>=258){t.next_out=p,t.avail_out=f,t.next_in=l,t.avail_in=d,r.hold=m,r.bits=w,o(t,_),p=t.next_out,h=t.output,f=t.avail_out,l=t.next_in,c=t.input,d=t.avail_in,m=r.hold,w=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;x=(F=r.lencode[m&(1<>>16&255,S=65535&F,!((T=F>>>24)<=w);){if(0===d)break t;d--,m+=c[l++]<>C)])>>>16&255,S=65535&F,!(C+(T=F>>>24)<=w);){if(0===d)break t;d--,m+=c[l++]<>>=C,w-=C,r.back+=C}if(m>>>=T,w-=T,r.back+=T,r.length=S,0===x){r.mode=26;break}if(32&x){r.back=-1,r.mode=12;break}if(64&x){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&x,r.mode=22;case 22:if(r.extra){for(O=r.extra;w>>=r.extra,w-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;x=(F=r.distcode[m&(1<>>16&255,S=65535&F,!((T=F>>>24)<=w);){if(0===d)break t;d--,m+=c[l++]<>C)])>>>16&255,S=65535&F,!(C+(T=F>>>24)<=w);){if(0===d)break t;d--,m+=c[l++]<>>=C,w-=C,r.back+=C}if(m>>>=T,w-=T,r.back+=T,64&x){t.msg="invalid distance code",r.mode=30;break}r.offset=S,r.extra=15&x,r.mode=24;case 24:if(r.extra){for(O=r.extra;w>>=r.extra,w-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===f)break t;if(E=_-f,r.offset>E){if((E=r.offset-E)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}E>r.wnext?(E-=r.wnext,v=r.wsize-E):v=r.wnext-E,E>r.length&&(E=r.length),A=r.window}else A=h,v=p-r.offset,E=r.length;E>f&&(E=f),f-=E,r.length-=E;do{h[p++]=A[v++]}while(--E);0===r.length&&(r.mode=21);break;case 26:if(0===f)break t;h[p++]=r.length,f--,r.mode=21;break;case 27:if(r.wrap){for(;w<32;){if(0===d)break t;d--,m|=c[l++]<>>=_=b>>>24,f-=_,0===(_=b>>>16&255))S[s++]=65535&b;else{if(!(16&_)){if(0==(64&_)){b=m[(65535&b)+(d&(1<<_)-1)];continue e}if(32&_){r.mode=12;break t}t.msg="invalid literal/length code",r.mode=30;break t}E=65535&b,(_&=15)&&(f<_&&(d+=x[i++]<>>=_,f-=_),f<15&&(d+=x[i++]<>>=_=b>>>24,f-=_,!(16&(_=b>>>16&255))){if(0==(64&_)){b=w[(65535&b)+(d&(1<<_)-1)];continue r}t.msg="invalid distance code",r.mode=30;break t}if(v=65535&b,f<(_&=15)&&(d+=x[i++]<u){t.msg="invalid distance too far back",r.mode=30;break t}if(d>>>=_,f-=_,v>(_=s-o)){if((_=v-_)>h&&r.sane){t.msg="invalid distance too far back",r.mode=30;break t}if(A=0,T=p,0===l){if(A+=c-_,_2;)S[s++]=T[A++],S[s++]=T[A++],S[s++]=T[A++],E-=3;E&&(S[s++]=T[A++],E>1&&(S[s++]=T[A++]))}else{A=s-v;do{S[s++]=S[A++],S[s++]=S[A++],S[s++]=S[A++],E-=3}while(E>2);E&&(S[s++]=S[A++],E>1&&(S[s++]=S[A++]))}break}}break}}while(i>3,d&=(1<<(f-=E<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i=1&&0===P[S];S--);if(C>S&&(C=S),0===S)return c[h++]=20971520,c[h++]=20971520,p.bits=1,0;for(x=1;x0&&(0===t||1!==S))return-1;for(B[1]=0,A=1;A<15;A++)B[A+1]=B[A]+P[A];for(T=0;T852||2===t&&N>592)return 1;for(;;){b=A-k,l[T]y?(_=L[U+l[T]],E=O[F+l[T]]):(_=96,E=0),d=1<>k)+(f-=d)]=b<<24|_<<16|E|0}while(0!==f);for(d=1<>=1;if(0!==d?(I&=d-1,I+=d):I=0,T++,0==--P[A]){if(A===S)break;A=e[r+l[T]]}if(A>C&&(I&w)!==m){for(0===k&&(k=C),g+=x,R=1<<(D=A-k);D+k852||2===t&&N>592)return 1;c[m=I&w]=C<<24|D<<16|g-h|0}}return 0!==I&&(c[g+I]=A-k<<24|64<<16|0),p.bits=C,0}},function(t,e,r){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},function(t,e){},function(t,e){(function(e){t.exports=e}).call(this,{})},function(t,e,r){"use strict";const i=r(4),n=function(t,e){const r={};if(!(t.child&&!i.isEmptyObject(t.child)||t.attrsMap&&!i.isEmptyObject(t.attrsMap)))return i.isExist(t.val)?t.val:"";i.isExist(t.val)&&("string"!=typeof t.val||""!==t.val&&t.val!==e.cdataPositionChar)&&("strict"===e.arrayMode?r[e.textNodeName]=[t.val]:r[e.textNodeName]=t.val),i.merge(r,t.attrsMap,e.arrayMode);const s=Object.keys(t.child);for(let i=0;i1)for(var a in r[o]=[],t.child[o])r[o].push(n(t.child[o][a],e));else if(!0===e.arrayMode){const i=n(t.child[o][0],e);r[o]="object"==typeof i?[i]:i}else"strict"===e.arrayMode?r[o]=[n(t.child[o][0],e)]:r[o]=n(t.child[o][0],e)}return r};e.convertToJson=n},function(t,e,r){"use strict";t.exports=function(t,e,r){this.tagname=t,this.parent=e,this.child={},this.attrsMap={},this.val=r,this.addChild=function(t){Array.isArray(this.child[t.tagname])?this.child[t.tagname].push(t):this.child[t.tagname]=[t]}}},function(t,e,r){"use strict";const i=r(4),n={allowBooleanAttributes:!1},s=["allowBooleanAttributes"];function o(t,e){for(var r=e;e5&&"xml"===i)return p("InvalidXml","XML declaration allowed only at the start of the document.",f(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function a(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){let r=1;for(e+=8;e"===t[e]&&(r--,0===r))break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e"===t[e+2]){e+=2;break}return e}e.validate=function(t,e){e=i.buildOptions(e,n,s);const r=[];let c=!1,d=!1;"\ufeff"===t[0]&&(t=t.substr(1));for(let n=0;n"!==t[n]&&" "!==t[n]&&"\t"!==t[n]&&"\n"!==t[n]&&"\r"!==t[n];n++)o+=t[n];if(o=o.trim(),"/"===o[o.length-1]&&(o=o.substring(0,o.length-1),n--),m=o,!i.isName(m)){let e;return e=0===o.trim().length?"There is an unnecessary space between tag name and backward slash '0)return p("InvalidTag","Closing tag '"+o+"' can't have attributes or invalid starting.",f(t,n));{const e=r.pop();if(o!==e)return p("InvalidTag","Closing tag '"+e+"' is expected inplace of '"+o+"'.",f(t,n));0==r.length&&(d=!0)}}else{const i=h(g,e);if(!0!==i)return p(i.err.code,i.err.msg,f(t,n-g.length+i.err.line));if(!0===d)return p("InvalidXml","Multiple possible root nodes found.",f(t,n));r.push(o),c=!0}for(n++;n0)||p("InvalidXml","Invalid '"+JSON.stringify(r,null,4).replace(/\r?\n/g,"")+"' found.",1):p("InvalidXml","Start tag expected.",1)};function u(t,e){let r="",i="",n=!1;for(;e"===t[e]&&""===i){n=!0;break}r+=t[e]}return""===i&&{value:r,index:e,tagClosed:n}}const c=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function h(t,e){const r=i.getAllMatches(t,c),n={};for(let i=0;i1){for(var u in n+='"'+a+'" : [ ',t.child[a])n+=o(t.child[a][u],e)+" , ";n=n.substr(0,n.length-1)+" ] "}else n+='"'+a+'" : '+o(t.child[a][0],e)+" ,"}return i.merge(n,t.attrsMap),i.isEmptyObject(n)?i.isExist(t.val)?t.val:"":(i.isExist(t.val)&&("string"!=typeof t.val||""!==t.val&&t.val!==e.cdataPositionChar)&&(n+='"'+e.textNodeName+'" : '+(!0!==(c=t.val)&&!1!==c&&isNaN(c)?'"'+c+'"':c)),","===n[n.length-1]&&(n=n.substr(0,n.length-2)),n+"}");var c};e.convertToJsonString=function(t,e){return(e=n(e,s.defaultOptions,s.props)).indentBy=e.indentBy||"",o(t,e,0)}},function(t,e,r){"use strict";const i=r(4).buildOptions,n={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataTagName:!1,cdataPositionChar:"\\c",format:!1,indentBy:" ",supressEmptyNode:!1,tagValueProcessor:function(t){return t},attrValueProcessor:function(t){return t}},s=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","cdataTagName","cdataPositionChar","format","indentBy","supressEmptyNode","tagValueProcessor","attrValueProcessor"];function o(t){this.options=i(t,n,s),this.options.ignoreAttributes||this.options.attrNodeName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=f),this.options.cdataTagName?this.isCDATA=m:this.isCDATA=function(){return!1},this.replaceCDATAstr=a,this.replaceCDATAarr=u,this.options.format?(this.indentate=d,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine=""),this.options.supressEmptyNode?(this.buildTextNode=p,this.buildObjNode=h):(this.buildTextNode=l,this.buildObjNode=c),this.buildTextValNode=l,this.buildObjectNode=c}function a(t,e){return t=this.options.tagValueProcessor(""+t),""===this.options.cdataPositionChar||""===t?t+"");return t+this.newLine}function c(t,e,r,i){return r&&!t.includes("<")?this.indentate(i)+"<"+e+r+">"+t+""+this.options.tagValueProcessor(t)+"1114111||n(h)!=h)throw RangeError("Invalid code point: "+h);h<=65535?o.push(h):(e=55296+((h-=65536)>>10),r=h%1024+56320,o.push(e,r)),(a+1==u||o.length>s)&&(c+=i.apply(null,o),o.length=0)}return c},r?r(String,"fromCodePoint",{value:s,configurable:!0,writable:!0}):String.fromCodePoint=s)},function(t,e,r){"use strict";var i=r(178),n=r(197);function s(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}t.exports.Type=r(1),t.exports.Schema=r(14),t.exports.FAILSAFE_SCHEMA=r(42),t.exports.JSON_SCHEMA=r(80),t.exports.CORE_SCHEMA=r(79),t.exports.DEFAULT_SAFE_SCHEMA=r(24),t.exports.DEFAULT_FULL_SCHEMA=r(33),t.exports.load=i.load,t.exports.loadAll=i.loadAll,t.exports.safeLoad=i.safeLoad,t.exports.safeLoadAll=i.safeLoadAll,t.exports.dump=n.dump,t.exports.safeDump=n.safeDump,t.exports.YAMLException=r(23),t.exports.MINIMAL_SCHEMA=r(42),t.exports.SAFE_SCHEMA=r(24),t.exports.DEFAULT_SCHEMA=r(33),t.exports.scan=s("scan"),t.exports.parse=s("parse"),t.exports.compose=s("compose"),t.exports.addConstructor=s("addConstructor")},function(t,e,r){"use strict";var i=r(13),n=r(23),s=r(179),o=r(24),a=r(33),u=Object.prototype.hasOwnProperty,c=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,h=/[\x85\u2028\u2029]/,l=/[,\[\]\{\}]/,p=/^(?:!|!!|![a-z\-]+!)$/i,d=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function f(t){return Object.prototype.toString.call(t)}function m(t){return 10===t||13===t}function w(t){return 9===t||32===t}function g(t){return 9===t||32===t||10===t||13===t}function y(t){return 44===t||91===t||93===t||123===t||125===t}function b(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function _(t){return 48===t?"\0":97===t?"":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"…":95===t?" ":76===t?"\u2028":80===t?"\u2029":""}function E(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var v=new Array(256),A=new Array(256),T=0;T<256;T++)v[T]=_(T)?1:0,A[T]=_(T);function x(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||a,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function S(t,e){return new n(e,new s(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function C(t,e){throw S(t,e)}function D(t,e){t.onWarning&&t.onWarning.call(null,S(t,e))}var k={YAML:function(t,e,r){var i,n,s;null!==t.version&&C(t,"duplication of %YAML directive"),1!==r.length&&C(t,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&C(t,"ill-formed argument of the YAML directive"),n=parseInt(i[1],10),s=parseInt(i[2],10),1!==n&&C(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=s<2,1!==s&&2!==s&&D(t,"unsupported YAML version of the document")},TAG:function(t,e,r){var i,n;2!==r.length&&C(t,"TAG directive accepts exactly two arguments"),i=r[0],n=r[1],p.test(i)||C(t,"ill-formed tag handle (first argument) of the TAG directive"),u.call(t.tagMap,i)&&C(t,'there is a previously declared suffix for "'+i+'" tag handle'),d.test(n)||C(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=n}};function R(t,e,r,i){var n,s,o,a;if(e1&&(t.result+=i.repeat("\n",e-1))}function L(t,e){var r,i,n=t.tag,s=t.anchor,o=[],a=!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),i=t.input.charCodeAt(t.position);0!==i&&45===i&&g(t.input.charCodeAt(t.position+1));)if(a=!0,t.position++,F(t,!0,-1)&&t.lineIndent<=e)o.push(null),i=t.input.charCodeAt(t.position);else if(r=t.line,W(t,e,3,!1,!0),o.push(t.result),F(t,!0,-1),i=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&0!==i)C(t,"bad indentation of a sequence entry");else if(t.lineIndente?_=1:t.lineIndent===e?_=0:t.lineIndente?_=1:t.lineIndent===e?_=0:t.lineIndente)&&(W(t,e,4,!0,n)&&(m?d=t.result:f=t.result),m||(I(t,h,l,p,d,f,s,o),p=d=f=null),F(t,!0,-1),a=t.input.charCodeAt(t.position)),t.lineIndent>e&&0!==a)C(t,"bad indentation of a mapping entry");else if(t.lineIndent=0))break;0===s?C(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):h?C(t,"repeat of an indentation width identifier"):(l=e+s-1,h=!0)}if(w(o)){do{o=t.input.charCodeAt(++t.position)}while(w(o));if(35===o)do{o=t.input.charCodeAt(++t.position)}while(!m(o)&&0!==o)}for(;0!==o;){for(O(t),t.lineIndent=0,o=t.input.charCodeAt(t.position);(!h||t.lineIndentl&&(l=t.lineIndent),m(o))p++;else{if(t.lineIndent0){for(n=o,s=0;n>0;n--)(o=b(a=t.input.charCodeAt(++t.position)))>=0?s=(s<<4)+o:C(t,"expected hexadecimal character");t.result+=E(s),t.position++}else C(t,"unknown escape sequence");r=i=t.position}else m(a)?(R(t,r,i,!0),B(t,F(t,!1,e)),r=i=t.position):t.position===t.lineStart&&P(t)?C(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}C(t,"unexpected end of the stream within a double quoted scalar")}(t,d)?x=!0:!function(t){var e,r,i;if(42!==(i=t.input.charCodeAt(t.position)))return!1;for(i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!g(i)&&!y(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&C(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),t.anchorMap.hasOwnProperty(r)||C(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],F(t,!0,-1),!0}(t)?function(t,e,r){var i,n,s,o,a,u,c,h,l=t.kind,p=t.result;if(g(h=t.input.charCodeAt(t.position))||y(h)||35===h||38===h||42===h||33===h||124===h||62===h||39===h||34===h||37===h||64===h||96===h)return!1;if((63===h||45===h)&&(g(i=t.input.charCodeAt(t.position+1))||r&&y(i)))return!1;for(t.kind="scalar",t.result="",n=s=t.position,o=!1;0!==h;){if(58===h){if(g(i=t.input.charCodeAt(t.position+1))||r&&y(i))break}else if(35===h){if(g(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&P(t)||r&&y(h))break;if(m(h)){if(a=t.line,u=t.lineStart,c=t.lineIndent,F(t,!1,-1),t.lineIndent>=e){o=!0,h=t.input.charCodeAt(t.position);continue}t.position=s,t.line=a,t.lineStart=u,t.lineIndent=c;break}}o&&(R(t,n,s,!1),B(t,t.line-a),n=s=t.position,o=!1),w(h)||(s=t.position+1),h=t.input.charCodeAt(++t.position)}return R(t,n,s,!1),!!t.result||(t.kind=l,t.result=p,!1)}(t,d,1===r)&&(x=!0,null===t.tag&&(t.tag="?")):(x=!0,null===t.tag&&null===t.anchor||C(t,"alias node should not have any properties")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===_&&(x=c&&L(t,f))),null!==t.tag&&"!"!==t.tag)if("?"===t.tag){for(h=0,l=t.implicitTypes.length;h tag; it should be "'+p.kind+'", not "'+t.kind+'"'),p.resolve(t.result)?(t.result=p.construct(t.result),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):C(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):C(t,"unknown tag !<"+t.tag+">");return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||x}function j(t){var e,r,i,n,s=t.position,o=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};0!==(n=t.input.charCodeAt(t.position))&&(F(t,!0,-1),n=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==n));){for(o=!0,n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!g(n);)n=t.input.charCodeAt(++t.position);for(i=[],(r=t.input.slice(e,t.position)).length<1&&C(t,"directive name must not be less than one character in length");0!==n;){for(;w(n);)n=t.input.charCodeAt(++t.position);if(35===n){do{n=t.input.charCodeAt(++t.position)}while(0!==n&&!m(n));break}if(m(n))break;for(e=t.position;0!==n&&!g(n);)n=t.input.charCodeAt(++t.position);i.push(t.input.slice(e,t.position))}0!==n&&O(t),u.call(k,r)?k[r](t,r,i):D(t,'unknown document directive "'+r+'"')}F(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,F(t,!0,-1)):o&&C(t,"directives end mark is expected"),W(t,t.lineIndent-1,4,!1,!0),F(t,!0,-1),t.checkLineBreaks&&h.test(t.input.slice(s,t.position))&&D(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&P(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,F(t,!0,-1)):t.position0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>e/2-1){r=" ... ",n+=5;break}for(s="",o=this.position;oe/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),i.repeat(" ",t)+r+a+s+"\n"+i.repeat(" ",t+this.position-n+r.length)+"^"},n.prototype.toString=function(t){var e,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(e=this.getSnippet())&&(r+=":\n"+e),r},t.exports=n},function(t,e,r){"use strict";var i=r(1);t.exports=new i("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return null!==t?t:""}})},function(t,e,r){"use strict";var i=r(1);t.exports=new i("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}})},function(t,e,r){"use strict";var i=r(1);t.exports=new i("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}})},function(t,e,r){"use strict";var i=r(1);t.exports=new i("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(t){if(null===t)return!0;var e=t.length;return 1===e&&"~"===t||4===e&&("null"===t||"Null"===t||"NULL"===t)},construct:function(){return null},predicate:function(t){return null===t},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(t,e,r){"use strict";var i=r(1);t.exports=new i("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e=t.length;return 4===e&&("true"===t||"True"===t||"TRUE"===t)||5===e&&("false"===t||"False"===t||"FALSE"===t)},construct:function(t){return"true"===t||"True"===t||"TRUE"===t},predicate:function(t){return"[object Boolean]"===Object.prototype.toString.call(t)},represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})},function(t,e,r){"use strict";var i=r(13),n=r(1);function s(t){return 48<=t&&t<=55}function o(t){return 48<=t&&t<=57}t.exports=new n("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,r,i=t.length,n=0,a=!1;if(!i)return!1;if("-"!==(e=t[n])&&"+"!==e||(e=t[++n]),"0"===e){if(n+1===i)return!0;if("b"===(e=t[++n])){for(n++;n=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(t,e,r){"use strict";var i=r(13),n=r(1),s=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var o=/^[-+]?[0-9]+e/;t.exports=new n("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!s.test(t)||"_"===t[t.length-1])},construct:function(t){var e,r,i,n;return r="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:e.indexOf(":")>=0?(e.split(":").forEach((function(t){n.unshift(parseFloat(t,10))})),e=0,i=1,n.forEach((function(t){e+=t*i,i*=60})),r*e):r*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||i.isNegativeZero(t))},represent:function(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(i.isNegativeZero(t))return"-0.0";return r=t.toString(10),o.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})},function(t,e,r){"use strict";var i=r(1),n=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");t.exports=new i("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==n.exec(t)||null!==s.exec(t))},construct:function(t){var e,r,i,o,a,u,c,h,l=0,p=null;if(null===(e=n.exec(t))&&(e=s.exec(t)),null===e)throw new Error("Date resolve error");if(r=+e[1],i=+e[2]-1,o=+e[3],!e[4])return new Date(Date.UTC(r,i,o));if(a=+e[4],u=+e[5],c=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(p=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(p=-p)),h=new Date(Date.UTC(r,i,o,a,u,c,l)),p&&h.setTime(h.getTime()-p),h},instanceOf:Date,represent:function(t){return t.toISOString()}})},function(t,e,r){"use strict";var i=r(1);t.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}})},function(t,e,r){"use strict";var i;try{i=r(2).Buffer}catch(t){}var n=r(1),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";t.exports=new n("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,r,i=0,n=t.length,o=s;for(r=0;r64)){if(e<0)return!1;i+=6}return i%8==0},construct:function(t){var e,r,n=t.replace(/[\r\n=]/g,""),o=n.length,a=s,u=0,c=[];for(e=0;e>16&255),c.push(u>>8&255),c.push(255&u)),u=u<<6|a.indexOf(n.charAt(e));return 0===(r=o%4*6)?(c.push(u>>16&255),c.push(u>>8&255),c.push(255&u)):18===r?(c.push(u>>10&255),c.push(u>>2&255)):12===r&&c.push(u>>4&255),i?i.from?i.from(c):new i(c):c},predicate:function(t){return i&&i.isBuffer(t)},represent:function(t){var e,r,i="",n=0,o=t.length,a=s;for(e=0;e>18&63],i+=a[n>>12&63],i+=a[n>>6&63],i+=a[63&n]),n=(n<<8)+t[e];return 0===(r=o%3)?(i+=a[n>>18&63],i+=a[n>>12&63],i+=a[n>>6&63],i+=a[63&n]):2===r?(i+=a[n>>10&63],i+=a[n>>4&63],i+=a[n<<2&63],i+=a[64]):1===r&&(i+=a[n>>2&63],i+=a[n<<4&63],i+=a[64],i+=a[64]),i}})},function(t,e,r){"use strict";var i=r(1),n=Object.prototype.hasOwnProperty,s=Object.prototype.toString;t.exports=new i("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,r,i,o,a,u=[],c=t;for(e=0,r=c.length;e3)return!1;if("/"!==e[e.length-i.length-1])return!1}return!0},construct:function(t){var e=t,r=/\/([gim]*)$/.exec(t),i="";return"/"===e[0]&&(r&&(i=r[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)},predicate:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},represent:function(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}})},function(t,e,r){"use strict";var i;try{i=r(196)}catch(t){"undefined"!=typeof window&&(i=window.esprima)}var n=r(1);t.exports=new n("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(t){if(null===t)return!1;try{var e="("+t+")",r=i.parse(e,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(t){return!1}},construct:function(t){var e,r="("+t+")",n=i.parse(r,{range:!0}),s=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(t){s.push(t.name)})),e=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(s,r.slice(e[0]+1,e[1]-1)):new Function(s,"return "+r.slice(e[0],e[1]))},predicate:function(t){return"[object Function]"===Object.prototype.toString.call(t)},represent:function(t){return t.toString()}})},function(t,e,r){var i;i=function(){return function(t){var e={};function r(i){if(e[i])return e[i].exports;var n=e[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}return r.m=t,r.c=e,r.p="",r(0)}([function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(1),n=r(3),s=r(8),o=r(15);function a(t,e,r){var o=null,a=function(t,e){r&&r(t,e),o&&o.visit(t,e)},u="function"==typeof r?a:null,c=!1;if(e){c="boolean"==typeof e.comment&&e.comment;var h="boolean"==typeof e.attachComment&&e.attachComment;(c||h)&&((o=new i.CommentHandler).attach=h,e.comment=!0,u=a)}var l,p=!1;e&&"string"==typeof e.sourceType&&(p="module"===e.sourceType),l=e&&"boolean"==typeof e.jsx&&e.jsx?new n.JSXParser(t,e,u):new s.Parser(t,e,u);var d=p?l.parseModule():l.parseScript();return c&&o&&(d.comments=o.comments),l.config.tokens&&(d.tokens=l.tokens),l.config.tolerant&&(d.errors=l.errorHandler.errors),d}e.parse=a,e.parseModule=function(t,e,r){var i=e||{};return i.sourceType="module",a(t,i,r)},e.parseScript=function(t,e,r){var i=e||{};return i.sourceType="script",a(t,i,r)},e.tokenize=function(t,e,r){var i,n=new o.Tokenizer(t,e);i=[];try{for(;;){var s=n.getNextToken();if(!s)break;r&&(s=r(s)),i.push(s)}}catch(t){n.errorHandler.tolerate(t)}return n.errorHandler.tolerant&&(i.errors=n.errors()),i};var u=r(2);e.Syntax=u.Syntax,e.version="4.0.1"},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(2),n=function(){function t(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return t.prototype.insertInnerComments=function(t,e){if(t.type===i.Syntax.BlockStatement&&0===t.body.length){for(var r=[],n=this.leading.length-1;n>=0;--n){var s=this.leading[n];e.end.offset>=s.start&&(r.unshift(s.comment),this.leading.splice(n,1),this.trailing.splice(n,1))}r.length&&(t.innerComments=r)}},t.prototype.findTrailingComments=function(t){var e=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var i=this.trailing[r];i.start>=t.end.offset&&e.unshift(i.comment)}return this.trailing.length=0,e}var n=this.stack[this.stack.length-1];if(n&&n.node.trailingComments){var s=n.node.trailingComments[0];s&&s.range[0]>=t.end.offset&&(e=n.node.trailingComments,delete n.node.trailingComments)}return e},t.prototype.findLeadingComments=function(t){for(var e,r=[];this.stack.length>0&&((s=this.stack[this.stack.length-1])&&s.start>=t.start.offset);)e=s.node,this.stack.pop();if(e){for(var i=(e.leadingComments?e.leadingComments.length:0)-1;i>=0;--i){var n=e.leadingComments[i];n.range[1]<=t.start.offset&&(r.unshift(n),e.leadingComments.splice(i,1))}return e.leadingComments&&0===e.leadingComments.length&&delete e.leadingComments,r}for(i=this.leading.length-1;i>=0;--i){var s;(s=this.leading[i]).start<=t.start.offset&&(r.unshift(s.comment),this.leading.splice(i,1))}return r},t.prototype.visitNode=function(t,e){if(!(t.type===i.Syntax.Program&&t.body.length>0)){this.insertInnerComments(t,e);var r=this.findTrailingComments(e),n=this.findLeadingComments(e);n.length>0&&(t.leadingComments=n),r.length>0&&(t.trailingComments=r),this.stack.push({node:t,start:e.start.offset})}},t.prototype.visitComment=function(t,e){var r="L"===t.type[0]?"Line":"Block",i={type:r,value:t.value};if(t.range&&(i.range=t.range),t.loc&&(i.loc=t.loc),this.comments.push(i),this.attach){var n={comment:{type:r,value:t.value,range:[e.start.offset,e.end.offset]},start:e.start.offset};t.loc&&(n.comment.loc=t.loc),t.type=r,this.leading.push(n),this.trailing.push(n)}},t.prototype.visit=function(t,e){"LineComment"===t.type||"BlockComment"===t.type?this.visitComment(t,e):this.attach&&this.visitNode(t,e)},t}();e.CommentHandler=n},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(t,e,r){"use strict";var i,n=this&&this.__extends||(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])},function(t,e){function r(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)});Object.defineProperty(e,"__esModule",{value:!0});var s=r(4),o=r(5),a=r(6),u=r(7),c=r(8),h=r(13),l=r(14);function p(t){var e;switch(t.type){case a.JSXSyntax.JSXIdentifier:e=t.name;break;case a.JSXSyntax.JSXNamespacedName:var r=t;e=p(r.namespace)+":"+p(r.name);break;case a.JSXSyntax.JSXMemberExpression:var i=t;e=p(i.object)+"."+p(i.property)}return e}h.TokenName[100]="JSXIdentifier",h.TokenName[101]="JSXText";var d=function(t){function e(e,r,i){return t.call(this,e,r,i)||this}return n(e,t),e.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():t.prototype.parsePrimaryExpression.call(this)},e.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},e.prototype.finishJSX=function(){this.nextToken()},e.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},e.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},e.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},e.prototype.scanXHTMLEntity=function(t){for(var e="&",r=!0,i=!1,n=!1,o=!1;!this.scanner.eof()&&r&&!i;){var a=this.scanner.source[this.scanner.index];if(a===t)break;if(i=";"===a,e+=a,++this.scanner.index,!i)switch(e.length){case 2:n="#"===a;break;case 3:n&&(r=(o="x"===a)||s.Character.isDecimalDigit(a.charCodeAt(0)),n=n&&!o);break;default:r=(r=r&&!(n&&!s.Character.isDecimalDigit(a.charCodeAt(0))))&&!(o&&!s.Character.isHexDigit(a.charCodeAt(0)))}}if(r&&i&&e.length>2){var u=e.substr(1,e.length-2);n&&u.length>1?e=String.fromCharCode(parseInt(u.substr(1),10)):o&&u.length>2?e=String.fromCharCode(parseInt("0"+u.substr(1),16)):n||o||!l.XHTMLEntities[u]||(e=l.XHTMLEntities[u])}return e},e.prototype.lexJSX=function(){var t=this.scanner.source.charCodeAt(this.scanner.index);if(60===t||62===t||47===t||58===t||61===t||123===t||125===t)return{type:7,value:a=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===t||39===t){for(var e=this.scanner.index,r=this.scanner.source[this.scanner.index++],i="";!this.scanner.eof()&&(u=this.scanner.source[this.scanner.index++])!==r;)i+="&"===u?this.scanXHTMLEntity(r):u;return{type:8,value:i,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index}}if(46===t){var n=this.scanner.source.charCodeAt(this.scanner.index+1),o=this.scanner.source.charCodeAt(this.scanner.index+2),a=46===n&&46===o?"...":".";return e=this.scanner.index,this.scanner.index+=a.length,{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index}}if(96===t)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(s.Character.isIdentifierStart(t)&&92!==t){for(e=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var u=this.scanner.source.charCodeAt(this.scanner.index);if(s.Character.isIdentifierPart(u)&&92!==u)++this.scanner.index;else{if(45!==u)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(e,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index}}return this.scanner.lex()},e.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var t=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(t)),t},e.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var t=this.scanner.index,e="";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if("{"===r||"<"===r)break;++this.scanner.index,e+=r,s.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===r&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var i={type:101,value:e,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index};return e.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(i)),i},e.prototype.peekJSXToken=function(){var t=this.scanner.saveState();this.scanner.scanComments();var e=this.lexJSX();return this.scanner.restoreState(t),e},e.prototype.expectJSX=function(t){var e=this.nextJSXToken();7===e.type&&e.value===t||this.throwUnexpectedToken(e)},e.prototype.matchJSX=function(t){var e=this.peekJSXToken();return 7===e.type&&e.value===t},e.prototype.parseJSXIdentifier=function(){var t=this.createJSXNode(),e=this.nextJSXToken();return 100!==e.type&&this.throwUnexpectedToken(e),this.finalize(t,new o.JSXIdentifier(e.value))},e.prototype.parseJSXElementName=function(){var t=this.createJSXNode(),e=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=e;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new o.JSXNamespacedName(r,i))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var n=e;this.expectJSX(".");var s=this.parseJSXIdentifier();e=this.finalize(t,new o.JSXMemberExpression(n,s))}return e},e.prototype.parseJSXAttributeName=function(){var t,e=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=r;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new o.JSXNamespacedName(i,n))}else t=r;return t},e.prototype.parseJSXStringLiteralAttribute=function(){var t=this.createJSXNode(),e=this.nextJSXToken();8!==e.type&&this.throwUnexpectedToken(e);var r=this.getTokenRaw(e);return this.finalize(t,new u.Literal(e.value,r))},e.prototype.parseJSXExpressionAttribute=function(){var t=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var e=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(t,new o.JSXExpressionContainer(e))},e.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},e.prototype.parseJSXNameValueAttribute=function(){var t=this.createJSXNode(),e=this.parseJSXAttributeName(),r=null;return this.matchJSX("=")&&(this.expectJSX("="),r=this.parseJSXAttributeValue()),this.finalize(t,new o.JSXAttribute(e,r))},e.prototype.parseJSXSpreadAttribute=function(){var t=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var e=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(t,new o.JSXSpreadAttribute(e))},e.prototype.parseJSXAttributes=function(){for(var t=[];!this.matchJSX("/")&&!this.matchJSX(">");){var e=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();t.push(e)}return t},e.prototype.parseJSXOpeningElement=function(){var t=this.createJSXNode();this.expectJSX("<");var e=this.parseJSXElementName(),r=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(t,new o.JSXOpeningElement(e,i,r))},e.prototype.parseJSXBoundaryElement=function(){var t=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var e=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(t,new o.JSXClosingElement(e))}var r=this.parseJSXElementName(),i=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(t,new o.JSXOpeningElement(r,n,i))},e.prototype.parseJSXEmptyExpression=function(){var t=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(t,new o.JSXEmptyExpression)},e.prototype.parseJSXExpressionContainer=function(){var t,e=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new o.JSXExpressionContainer(t))},e.prototype.parseJSXChildren=function(){for(var t=[];!this.scanner.eof();){var e=this.createJSXChildNode(),r=this.nextJSXText();if(r.start0))break;s=this.finalize(t.node,new o.JSXElement(t.opening,t.children,t.closing)),(t=e[e.length-1]).children.push(s),e.pop()}}return t},e.prototype.parseJSXElement=function(){var t=this.createJSXNode(),e=this.parseJSXOpeningElement(),r=[],i=null;if(!e.selfClosing){var n=this.parseComplexJSXElement({node:t,opening:e,closing:i,children:r});r=n.children,i=n.closing}return this.finalize(t,new o.JSXElement(e,r,i))},e.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var t=this.parseJSXElement();return this.finishJSX(),t},e.prototype.isStartOfExpression=function(){return t.prototype.isStartOfExpression.call(this)||this.match("<")},e}(c.Parser);e.JSXParser=d},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};e.Character={fromCodePoint:function(t){return t<65536?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10))+String.fromCharCode(56320+(t-65536&1023))},isWhiteSpace:function(t){return 32===t||9===t||11===t||12===t||160===t||t>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0},isLineTerminator:function(t){return 10===t||13===t||8232===t||8233===t},isIdentifierStart:function(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||92===t||t>=128&&r.NonAsciiIdentifierStart.test(e.Character.fromCodePoint(t))},isIdentifierPart:function(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||92===t||t>=128&&r.NonAsciiIdentifierPart.test(e.Character.fromCodePoint(t))},isDecimalDigit:function(t){return t>=48&&t<=57},isHexDigit:function(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102},isOctalDigit:function(t){return t>=48&&t<=55}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(6),n=function(t){this.type=i.JSXSyntax.JSXClosingElement,this.name=t};e.JSXClosingElement=n;var s=function(t,e,r){this.type=i.JSXSyntax.JSXElement,this.openingElement=t,this.children=e,this.closingElement=r};e.JSXElement=s;var o=function(){this.type=i.JSXSyntax.JSXEmptyExpression};e.JSXEmptyExpression=o;var a=function(t){this.type=i.JSXSyntax.JSXExpressionContainer,this.expression=t};e.JSXExpressionContainer=a;var u=function(t){this.type=i.JSXSyntax.JSXIdentifier,this.name=t};e.JSXIdentifier=u;var c=function(t,e){this.type=i.JSXSyntax.JSXMemberExpression,this.object=t,this.property=e};e.JSXMemberExpression=c;var h=function(t,e){this.type=i.JSXSyntax.JSXAttribute,this.name=t,this.value=e};e.JSXAttribute=h;var l=function(t,e){this.type=i.JSXSyntax.JSXNamespacedName,this.namespace=t,this.name=e};e.JSXNamespacedName=l;var p=function(t,e,r){this.type=i.JSXSyntax.JSXOpeningElement,this.name=t,this.selfClosing=e,this.attributes=r};e.JSXOpeningElement=p;var d=function(t){this.type=i.JSXSyntax.JSXSpreadAttribute,this.argument=t};e.JSXSpreadAttribute=d;var f=function(t,e){this.type=i.JSXSyntax.JSXText,this.value=t,this.raw=e};e.JSXText=f},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(2),n=function(t){this.type=i.Syntax.ArrayExpression,this.elements=t};e.ArrayExpression=n;var s=function(t){this.type=i.Syntax.ArrayPattern,this.elements=t};e.ArrayPattern=s;var o=function(t,e,r){this.type=i.Syntax.ArrowFunctionExpression,this.id=null,this.params=t,this.body=e,this.generator=!1,this.expression=r,this.async=!1};e.ArrowFunctionExpression=o;var a=function(t,e,r){this.type=i.Syntax.AssignmentExpression,this.operator=t,this.left=e,this.right=r};e.AssignmentExpression=a;var u=function(t,e){this.type=i.Syntax.AssignmentPattern,this.left=t,this.right=e};e.AssignmentPattern=u;var c=function(t,e,r){this.type=i.Syntax.ArrowFunctionExpression,this.id=null,this.params=t,this.body=e,this.generator=!1,this.expression=r,this.async=!0};e.AsyncArrowFunctionExpression=c;var h=function(t,e,r){this.type=i.Syntax.FunctionDeclaration,this.id=t,this.params=e,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};e.AsyncFunctionDeclaration=h;var l=function(t,e,r){this.type=i.Syntax.FunctionExpression,this.id=t,this.params=e,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};e.AsyncFunctionExpression=l;var p=function(t){this.type=i.Syntax.AwaitExpression,this.argument=t};e.AwaitExpression=p;var d=function(t,e,r){var n="||"===t||"&&"===t;this.type=n?i.Syntax.LogicalExpression:i.Syntax.BinaryExpression,this.operator=t,this.left=e,this.right=r};e.BinaryExpression=d;var f=function(t){this.type=i.Syntax.BlockStatement,this.body=t};e.BlockStatement=f;var m=function(t){this.type=i.Syntax.BreakStatement,this.label=t};e.BreakStatement=m;var w=function(t,e){this.type=i.Syntax.CallExpression,this.callee=t,this.arguments=e};e.CallExpression=w;var g=function(t,e){this.type=i.Syntax.CatchClause,this.param=t,this.body=e};e.CatchClause=g;var y=function(t){this.type=i.Syntax.ClassBody,this.body=t};e.ClassBody=y;var b=function(t,e,r){this.type=i.Syntax.ClassDeclaration,this.id=t,this.superClass=e,this.body=r};e.ClassDeclaration=b;var _=function(t,e,r){this.type=i.Syntax.ClassExpression,this.id=t,this.superClass=e,this.body=r};e.ClassExpression=_;var E=function(t,e){this.type=i.Syntax.MemberExpression,this.computed=!0,this.object=t,this.property=e};e.ComputedMemberExpression=E;var v=function(t,e,r){this.type=i.Syntax.ConditionalExpression,this.test=t,this.consequent=e,this.alternate=r};e.ConditionalExpression=v;var A=function(t){this.type=i.Syntax.ContinueStatement,this.label=t};e.ContinueStatement=A;var T=function(){this.type=i.Syntax.DebuggerStatement};e.DebuggerStatement=T;var x=function(t,e){this.type=i.Syntax.ExpressionStatement,this.expression=t,this.directive=e};e.Directive=x;var S=function(t,e){this.type=i.Syntax.DoWhileStatement,this.body=t,this.test=e};e.DoWhileStatement=S;var C=function(){this.type=i.Syntax.EmptyStatement};e.EmptyStatement=C;var D=function(t){this.type=i.Syntax.ExportAllDeclaration,this.source=t};e.ExportAllDeclaration=D;var k=function(t){this.type=i.Syntax.ExportDefaultDeclaration,this.declaration=t};e.ExportDefaultDeclaration=k;var R=function(t,e,r){this.type=i.Syntax.ExportNamedDeclaration,this.declaration=t,this.specifiers=e,this.source=r};e.ExportNamedDeclaration=R;var N=function(t,e){this.type=i.Syntax.ExportSpecifier,this.exported=e,this.local=t};e.ExportSpecifier=N;var I=function(t){this.type=i.Syntax.ExpressionStatement,this.expression=t};e.ExpressionStatement=I;var O=function(t,e,r){this.type=i.Syntax.ForInStatement,this.left=t,this.right=e,this.body=r,this.each=!1};e.ForInStatement=O;var F=function(t,e,r){this.type=i.Syntax.ForOfStatement,this.left=t,this.right=e,this.body=r};e.ForOfStatement=F;var P=function(t,e,r,n){this.type=i.Syntax.ForStatement,this.init=t,this.test=e,this.update=r,this.body=n};e.ForStatement=P;var B=function(t,e,r,n){this.type=i.Syntax.FunctionDeclaration,this.id=t,this.params=e,this.body=r,this.generator=n,this.expression=!1,this.async=!1};e.FunctionDeclaration=B;var L=function(t,e,r,n){this.type=i.Syntax.FunctionExpression,this.id=t,this.params=e,this.body=r,this.generator=n,this.expression=!1,this.async=!1};e.FunctionExpression=L;var U=function(t){this.type=i.Syntax.Identifier,this.name=t};e.Identifier=U;var M=function(t,e,r){this.type=i.Syntax.IfStatement,this.test=t,this.consequent=e,this.alternate=r};e.IfStatement=M;var W=function(t,e){this.type=i.Syntax.ImportDeclaration,this.specifiers=t,this.source=e};e.ImportDeclaration=W;var j=function(t){this.type=i.Syntax.ImportDefaultSpecifier,this.local=t};e.ImportDefaultSpecifier=j;var H=function(t){this.type=i.Syntax.ImportNamespaceSpecifier,this.local=t};e.ImportNamespaceSpecifier=H;var z=function(t,e){this.type=i.Syntax.ImportSpecifier,this.local=t,this.imported=e};e.ImportSpecifier=z;var G=function(t,e){this.type=i.Syntax.LabeledStatement,this.label=t,this.body=e};e.LabeledStatement=G;var q=function(t,e){this.type=i.Syntax.Literal,this.value=t,this.raw=e};e.Literal=q;var X=function(t,e){this.type=i.Syntax.MetaProperty,this.meta=t,this.property=e};e.MetaProperty=X;var V=function(t,e,r,n,s){this.type=i.Syntax.MethodDefinition,this.key=t,this.computed=e,this.value=r,this.kind=n,this.static=s};e.MethodDefinition=V;var Y=function(t){this.type=i.Syntax.Program,this.body=t,this.sourceType="module"};e.Module=Y;var K=function(t,e){this.type=i.Syntax.NewExpression,this.callee=t,this.arguments=e};e.NewExpression=K;var J=function(t){this.type=i.Syntax.ObjectExpression,this.properties=t};e.ObjectExpression=J;var Z=function(t){this.type=i.Syntax.ObjectPattern,this.properties=t};e.ObjectPattern=Z;var Q=function(t,e,r,n,s,o){this.type=i.Syntax.Property,this.key=e,this.computed=r,this.value=n,this.kind=t,this.method=s,this.shorthand=o};e.Property=Q;var $=function(t,e,r,n){this.type=i.Syntax.Literal,this.value=t,this.raw=e,this.regex={pattern:r,flags:n}};e.RegexLiteral=$;var tt=function(t){this.type=i.Syntax.RestElement,this.argument=t};e.RestElement=tt;var et=function(t){this.type=i.Syntax.ReturnStatement,this.argument=t};e.ReturnStatement=et;var rt=function(t){this.type=i.Syntax.Program,this.body=t,this.sourceType="script"};e.Script=rt;var it=function(t){this.type=i.Syntax.SequenceExpression,this.expressions=t};e.SequenceExpression=it;var nt=function(t){this.type=i.Syntax.SpreadElement,this.argument=t};e.SpreadElement=nt;var st=function(t,e){this.type=i.Syntax.MemberExpression,this.computed=!1,this.object=t,this.property=e};e.StaticMemberExpression=st;var ot=function(){this.type=i.Syntax.Super};e.Super=ot;var at=function(t,e){this.type=i.Syntax.SwitchCase,this.test=t,this.consequent=e};e.SwitchCase=at;var ut=function(t,e){this.type=i.Syntax.SwitchStatement,this.discriminant=t,this.cases=e};e.SwitchStatement=ut;var ct=function(t,e){this.type=i.Syntax.TaggedTemplateExpression,this.tag=t,this.quasi=e};e.TaggedTemplateExpression=ct;var ht=function(t,e){this.type=i.Syntax.TemplateElement,this.value=t,this.tail=e};e.TemplateElement=ht;var lt=function(t,e){this.type=i.Syntax.TemplateLiteral,this.quasis=t,this.expressions=e};e.TemplateLiteral=lt;var pt=function(){this.type=i.Syntax.ThisExpression};e.ThisExpression=pt;var dt=function(t){this.type=i.Syntax.ThrowStatement,this.argument=t};e.ThrowStatement=dt;var ft=function(t,e,r){this.type=i.Syntax.TryStatement,this.block=t,this.handler=e,this.finalizer=r};e.TryStatement=ft;var mt=function(t,e){this.type=i.Syntax.UnaryExpression,this.operator=t,this.argument=e,this.prefix=!0};e.UnaryExpression=mt;var wt=function(t,e,r){this.type=i.Syntax.UpdateExpression,this.operator=t,this.argument=e,this.prefix=r};e.UpdateExpression=wt;var gt=function(t,e){this.type=i.Syntax.VariableDeclaration,this.declarations=t,this.kind=e};e.VariableDeclaration=gt;var yt=function(t,e){this.type=i.Syntax.VariableDeclarator,this.id=t,this.init=e};e.VariableDeclarator=yt;var bt=function(t,e){this.type=i.Syntax.WhileStatement,this.test=t,this.body=e};e.WhileStatement=bt;var _t=function(t,e){this.type=i.Syntax.WithStatement,this.object=t,this.body=e};e.WithStatement=_t;var Et=function(t,e){this.type=i.Syntax.YieldExpression,this.argument=t,this.delegate=e};e.YieldExpression=Et},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(9),n=r(10),s=r(11),o=r(7),a=r(12),u=r(2),c=r(13),h=function(){function t(t,e,r){void 0===e&&(e={}),this.config={range:"boolean"==typeof e.range&&e.range,loc:"boolean"==typeof e.loc&&e.loc,source:null,tokens:"boolean"==typeof e.tokens&&e.tokens,comment:"boolean"==typeof e.comment&&e.comment,tolerant:"boolean"==typeof e.tolerant&&e.tolerant},this.config.loc&&e.source&&null!==e.source&&(this.config.source=String(e.source)),this.delegate=r,this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new a.Scanner(t,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return t.prototype.throwError=function(t){for(var e=[],r=1;r0&&this.delegate)for(var e=0;e>="===t||">>>="===t||"&="===t||"^="===t||"|="===t},t.prototype.isolateCoverGrammar=function(t){var e=this.context.isBindingElement,r=this.context.isAssignmentTarget,i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var n=t.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=e,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=i,n},t.prototype.inheritCoverGrammar=function(t){var e=this.context.isBindingElement,r=this.context.isAssignmentTarget,i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var n=t.call(this);return this.context.isBindingElement=this.context.isBindingElement&&e,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=i||this.context.firstCoverInitializedNameError,n},t.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},t.prototype.parsePrimaryExpression=function(){var t,e,r,i=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),t=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(i,new o.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,s.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,e=this.nextToken(),r=this.getTokenRaw(e),t=this.finalize(i,new o.Literal(e.value,r));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,e=this.nextToken(),r=this.getTokenRaw(e),t=this.finalize(i,new o.Literal("true"===e.value,r));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,e=this.nextToken(),r=this.getTokenRaw(e),t=this.finalize(i,new o.Literal(null,r));break;case 10:t=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,t=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":t=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":t=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,e=this.nextRegexToken(),r=this.getTokenRaw(e),t=this.finalize(i,new o.RegexLiteral(e.regex,r,e.pattern,e.flags));break;default:t=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?t=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?t=this.finalize(i,new o.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?t=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),t=this.finalize(i,new o.ThisExpression)):t=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:t=this.throwUnexpectedToken(this.nextToken())}return t},t.prototype.parseSpreadElement=function(){var t=this.createNode();this.expect("...");var e=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(t,new o.SpreadElement(e))},t.prototype.parseArrayInitializer=function(){var t=this.createNode(),e=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),e.push(null);else if(this.match("...")){var r=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),e.push(r)}else e.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(t,new o.ArrayExpression(e))},t.prototype.parsePropertyMethod=function(t){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var e=this.context.strict,r=this.context.allowStrictDirective;this.context.allowStrictDirective=t.simple;var i=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&t.firstRestricted&&this.tolerateUnexpectedToken(t.firstRestricted,t.message),this.context.strict&&t.stricted&&this.tolerateUnexpectedToken(t.stricted,t.message),this.context.strict=e,this.context.allowStrictDirective=r,i},t.prototype.parsePropertyMethodFunction=function(){var t=this.createNode(),e=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters(),i=this.parsePropertyMethod(r);return this.context.allowYield=e,this.finalize(t,new o.FunctionExpression(null,r.params,i,!1))},t.prototype.parsePropertyMethodAsyncFunction=function(){var t=this.createNode(),e=this.context.allowYield,r=this.context.await;this.context.allowYield=!1,this.context.await=!0;var i=this.parseFormalParameters(),n=this.parsePropertyMethod(i);return this.context.allowYield=e,this.context.await=r,this.finalize(t,new o.AsyncFunctionExpression(null,i.params,n))},t.prototype.parseObjectPropertyKey=function(){var t,e=this.createNode(),r=this.nextToken();switch(r.type){case 8:case 6:this.context.strict&&r.octal&&this.tolerateUnexpectedToken(r,s.Messages.StrictOctalLiteral);var i=this.getTokenRaw(r);t=this.finalize(e,new o.Literal(r.value,i));break;case 3:case 1:case 5:case 4:t=this.finalize(e,new o.Identifier(r.value));break;case 7:"["===r.value?(t=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):t=this.throwUnexpectedToken(r);break;default:t=this.throwUnexpectedToken(r)}return t},t.prototype.isPropertyKey=function(t,e){return t.type===u.Syntax.Identifier&&t.name===e||t.type===u.Syntax.Literal&&t.value===e},t.prototype.parseObjectProperty=function(t){var e,r=this.createNode(),i=this.lookahead,n=null,a=null,u=!1,c=!1,h=!1,l=!1;if(3===i.type){var p=i.value;this.nextToken(),u=this.match("["),n=(l=!(this.hasLineTerminator||"async"!==p||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(r,new o.Identifier(p))}else this.match("*")?this.nextToken():(u=this.match("["),n=this.parseObjectPropertyKey());var d=this.qualifiedPropertyName(this.lookahead);if(3===i.type&&!l&&"get"===i.value&&d)e="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,a=this.parseGetterMethod();else if(3===i.type&&!l&&"set"===i.value&&d)e="set",u=this.match("["),n=this.parseObjectPropertyKey(),a=this.parseSetterMethod();else if(7===i.type&&"*"===i.value&&d)e="init",u=this.match("["),n=this.parseObjectPropertyKey(),a=this.parseGeneratorMethod(),c=!0;else if(n||this.throwUnexpectedToken(this.lookahead),e="init",this.match(":")&&!l)!u&&this.isPropertyKey(n,"__proto__")&&(t.value&&this.tolerateError(s.Messages.DuplicateProtoProperty),t.value=!0),this.nextToken(),a=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))a=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0;else if(3===i.type)if(p=this.finalize(r,new o.Identifier(i.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),h=!0;var f=this.isolateCoverGrammar(this.parseAssignmentExpression);a=this.finalize(r,new o.AssignmentPattern(p,f))}else h=!0,a=p;else this.throwUnexpectedToken(this.nextToken());return this.finalize(r,new o.Property(e,n,u,a,c,h))},t.prototype.parseObjectInitializer=function(){var t=this.createNode();this.expect("{");for(var e=[],r={value:!1};!this.match("}");)e.push(this.parseObjectProperty(r)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(t,new o.ObjectExpression(e))},t.prototype.parseTemplateHead=function(){i.assert(this.lookahead.head,"Template literal must start with a template head");var t=this.createNode(),e=this.nextToken(),r=e.value,n=e.cooked;return this.finalize(t,new o.TemplateElement({raw:r,cooked:n},e.tail))},t.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var t=this.createNode(),e=this.nextToken(),r=e.value,i=e.cooked;return this.finalize(t,new o.TemplateElement({raw:r,cooked:i},e.tail))},t.prototype.parseTemplateLiteral=function(){var t=this.createNode(),e=[],r=[],i=this.parseTemplateHead();for(r.push(i);!i.tail;)e.push(this.parseExpression()),i=this.parseTemplateElement(),r.push(i);return this.finalize(t,new o.TemplateLiteral(r,e))},t.prototype.reinterpretExpressionAsPattern=function(t){switch(t.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:t.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(t.argument);break;case u.Syntax.ArrayExpression:t.type=u.Syntax.ArrayPattern;for(var e=0;e")||this.expect("=>"),t={type:"ArrowParameterPlaceHolder",params:[],async:!1};else{var e=this.lookahead,r=[];if(this.match("..."))t=this.parseRestElement(r),this.expect(")"),this.match("=>")||this.expect("=>"),t={type:"ArrowParameterPlaceHolder",params:[t],async:!1};else{var i=!1;if(this.context.isBindingElement=!0,t=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var n=[];for(this.context.isAssignmentTarget=!1,n.push(t);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var s=0;s")||this.expect("=>"),this.context.isBindingElement=!1,s=0;s")&&(t.type===u.Syntax.Identifier&&"yield"===t.name&&(i=!0,t={type:"ArrowParameterPlaceHolder",params:[t],async:!1}),!i)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),t.type===u.Syntax.SequenceExpression)for(s=0;s")){for(var u=0;u0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var n=[t,this.lookahead],s=e,a=this.isolateCoverGrammar(this.parseExponentiationExpression),u=[s,r.value,a],c=[i];!((i=this.binaryPrecedence(this.lookahead))<=0);){for(;u.length>2&&i<=c[c.length-1];){a=u.pop();var h=u.pop();c.pop(),s=u.pop(),n.pop();var l=this.startNode(n[n.length-1]);u.push(this.finalize(l,new o.BinaryExpression(h,s,a)))}u.push(this.nextToken().value),c.push(i),n.push(this.lookahead),u.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=u.length-1;e=u[p];for(var d=n.pop();p>1;){var f=n.pop(),m=d&&d.lineStart;l=this.startNode(f,m),h=u[p-1],e=this.finalize(l,new o.BinaryExpression(h,u[p-2],e)),p-=2,d=f}}return e},t.prototype.parseConditionalExpression=function(){var t=this.lookahead,e=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var i=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(":");var n=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new o.ConditionalExpression(e,i,n)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return e},t.prototype.checkPatternParam=function(t,e){switch(e.type){case u.Syntax.Identifier:this.validateParam(t,e,e.name);break;case u.Syntax.RestElement:this.checkPatternParam(t,e.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(t,e.left);break;case u.Syntax.ArrayPattern:for(var r=0;r")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var n=t.async,a=this.reinterpretAsCoverFormalsList(t);if(a){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var c=this.context.strict,h=this.context.allowStrictDirective;this.context.allowStrictDirective=a.simple;var l=this.context.allowYield,p=this.context.await;this.context.allowYield=!0,this.context.await=n;var d=this.startNode(e);this.expect("=>");var f=void 0;if(this.match("{")){var m=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=m}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var w=f.type!==u.Syntax.BlockStatement;this.context.strict&&a.firstRestricted&&this.throwUnexpectedToken(a.firstRestricted,a.message),this.context.strict&&a.stricted&&this.tolerateUnexpectedToken(a.stricted,a.message),t=n?this.finalize(d,new o.AsyncArrowFunctionExpression(a.params,f,w)):this.finalize(d,new o.ArrowFunctionExpression(a.params,f,w)),this.context.strict=c,this.context.allowStrictDirective=h,this.context.allowYield=l,this.context.await=p}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(s.Messages.InvalidLHSInAssignment),this.context.strict&&t.type===u.Syntax.Identifier){var g=t;this.scanner.isRestrictedWord(g.name)&&this.tolerateUnexpectedToken(r,s.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(g.name)&&this.tolerateUnexpectedToken(r,s.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(t):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var y=(r=this.nextToken()).value,b=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new o.AssignmentExpression(y,t,b)),this.context.firstCoverInitializedNameError=null}}return t},t.prototype.parseExpression=function(){var t=this.lookahead,e=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];for(r.push(e);2!==this.lookahead.type&&this.match(",");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));e=this.finalize(this.startNode(t),new o.SequenceExpression(r))}return e},t.prototype.parseStatementListItem=function(){var t;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.Messages.IllegalExportDeclaration),t=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.Messages.IllegalImportDeclaration),t=this.parseImportDeclaration();break;case"const":t=this.parseLexicalDeclaration({inFor:!1});break;case"function":t=this.parseFunctionDeclaration();break;case"class":t=this.parseClassDeclaration();break;case"let":t=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:t=this.parseStatement()}else t=this.parseStatement();return t},t.prototype.parseBlock=function(){var t=this.createNode();this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseStatementListItem());return this.expect("}"),this.finalize(t,new o.BlockStatement(e))},t.prototype.parseLexicalBinding=function(t,e){var r=this.createNode(),i=this.parsePattern([],t);this.context.strict&&i.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(s.Messages.StrictVarName);var n=null;return"const"===t?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(s.Messages.DeclarationMissingInitializer,"const")):(!e.inFor&&i.type!==u.Syntax.Identifier||this.match("="))&&(this.expect("="),n=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new o.VariableDeclarator(i,n))},t.prototype.parseBindingList=function(t,e){for(var r=[this.parseLexicalBinding(t,e)];this.match(",");)this.nextToken(),r.push(this.parseLexicalBinding(t,e));return r},t.prototype.isLexicalDeclaration=function(){var t=this.scanner.saveState();this.scanner.scanComments();var e=this.scanner.lex();return this.scanner.restoreState(t),3===e.type||7===e.type&&"["===e.value||7===e.type&&"{"===e.value||4===e.type&&"let"===e.value||4===e.type&&"yield"===e.value},t.prototype.parseLexicalDeclaration=function(t){var e=this.createNode(),r=this.nextToken().value;i.assert("let"===r||"const"===r,"Lexical declaration must be either let or const");var n=this.parseBindingList(r,t);return this.consumeSemicolon(),this.finalize(e,new o.VariableDeclaration(n,r))},t.prototype.parseBindingRestElement=function(t,e){var r=this.createNode();this.expect("...");var i=this.parsePattern(t,e);return this.finalize(r,new o.RestElement(i))},t.prototype.parseArrayPattern=function(t,e){var r=this.createNode();this.expect("[");for(var i=[];!this.match("]");)if(this.match(","))this.nextToken(),i.push(null);else{if(this.match("...")){i.push(this.parseBindingRestElement(t,e));break}i.push(this.parsePatternWithDefault(t,e)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(r,new o.ArrayPattern(i))},t.prototype.parsePropertyPattern=function(t,e){var r,i,n=this.createNode(),s=!1,a=!1;if(3===this.lookahead.type){var u=this.lookahead;r=this.parseVariableIdentifier();var c=this.finalize(n,new o.Identifier(u.value));if(this.match("=")){t.push(u),a=!0,this.nextToken();var h=this.parseAssignmentExpression();i=this.finalize(this.startNode(u),new o.AssignmentPattern(c,h))}else this.match(":")?(this.expect(":"),i=this.parsePatternWithDefault(t,e)):(t.push(u),a=!0,i=c)}else s=this.match("["),r=this.parseObjectPropertyKey(),this.expect(":"),i=this.parsePatternWithDefault(t,e);return this.finalize(n,new o.Property("init",r,s,i,!1,a))},t.prototype.parseObjectPattern=function(t,e){var r=this.createNode(),i=[];for(this.expect("{");!this.match("}");)i.push(this.parsePropertyPattern(t,e)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(r,new o.ObjectPattern(i))},t.prototype.parsePattern=function(t,e){var r;return this.match("[")?r=this.parseArrayPattern(t,e):this.match("{")?r=this.parseObjectPattern(t,e):(!this.matchKeyword("let")||"const"!==e&&"let"!==e||this.tolerateUnexpectedToken(this.lookahead,s.Messages.LetInLexicalBinding),t.push(this.lookahead),r=this.parseVariableIdentifier(e)),r},t.prototype.parsePatternWithDefault=function(t,e){var r=this.lookahead,i=this.parsePattern(t,e);if(this.match("=")){this.nextToken();var n=this.context.allowYield;this.context.allowYield=!0;var s=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=n,i=this.finalize(this.startNode(r),new o.AssignmentPattern(i,s))}return i},t.prototype.parseVariableIdentifier=function(t){var e=this.createNode(),r=this.nextToken();return 4===r.type&&"yield"===r.value?this.context.strict?this.tolerateUnexpectedToken(r,s.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(r):3!==r.type?this.context.strict&&4===r.type&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,s.Messages.StrictReservedWord):(this.context.strict||"let"!==r.value||"var"!==t)&&this.throwUnexpectedToken(r):(this.context.isModule||this.context.await)&&3===r.type&&"await"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(e,new o.Identifier(r.value))},t.prototype.parseVariableDeclaration=function(t){var e=this.createNode(),r=this.parsePattern([],"var");this.context.strict&&r.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(s.Messages.StrictVarName);var i=null;return this.match("=")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===u.Syntax.Identifier||t.inFor||this.expect("="),this.finalize(e,new o.VariableDeclarator(r,i))},t.prototype.parseVariableDeclarationList=function(t){var e={inFor:t.inFor},r=[];for(r.push(this.parseVariableDeclaration(e));this.match(",");)this.nextToken(),r.push(this.parseVariableDeclaration(e));return r},t.prototype.parseVariableStatement=function(){var t=this.createNode();this.expectKeyword("var");var e=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(t,new o.VariableDeclaration(e,"var"))},t.prototype.parseEmptyStatement=function(){var t=this.createNode();return this.expect(";"),this.finalize(t,new o.EmptyStatement)},t.prototype.parseExpressionStatement=function(){var t=this.createNode(),e=this.parseExpression();return this.consumeSemicolon(),this.finalize(t,new o.ExpressionStatement(e))},t.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(s.Messages.StrictFunction),this.parseStatement()},t.prototype.parseIfStatement=function(){var t,e=this.createNode(),r=null;this.expectKeyword("if"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new o.EmptyStatement)):(this.expect(")"),t=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),r=this.parseIfClause())),this.finalize(e,new o.IfStatement(i,t,r))},t.prototype.parseDoWhileStatement=function(){var t=this.createNode();this.expectKeyword("do");var e=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=e,this.expectKeyword("while"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(t,new o.DoWhileStatement(r,i))},t.prototype.parseWhileStatement=function(){var t,e=this.createNode();this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new o.EmptyStatement);else{this.expect(")");var i=this.context.inIteration;this.context.inIteration=!0,t=this.parseStatement(),this.context.inIteration=i}return this.finalize(e,new o.WhileStatement(r,t))},t.prototype.parseForStatement=function(){var t,e,r,i=null,n=null,a=null,c=!0,h=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){i=this.createNode(),this.nextToken();var l=this.context.allowIn;this.context.allowIn=!1;var p=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=l,1===p.length&&this.matchKeyword("in")){var d=p[0];d.init&&(d.id.type===u.Syntax.ArrayPattern||d.id.type===u.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(s.Messages.ForInOfLoopInitializer,"for-in"),i=this.finalize(i,new o.VariableDeclaration(p,"var")),this.nextToken(),t=i,e=this.parseExpression(),i=null}else 1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(i=this.finalize(i,new o.VariableDeclaration(p,"var")),this.nextToken(),t=i,e=this.parseAssignmentExpression(),i=null,c=!1):(i=this.finalize(i,new o.VariableDeclaration(p,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){i=this.createNode();var f=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(l=this.context.allowIn,this.context.allowIn=!1,p=this.parseBindingList(f,{inFor:!0}),this.context.allowIn=l,1===p.length&&null===p[0].init&&this.matchKeyword("in")?(i=this.finalize(i,new o.VariableDeclaration(p,f)),this.nextToken(),t=i,e=this.parseExpression(),i=null):1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(i=this.finalize(i,new o.VariableDeclaration(p,f)),this.nextToken(),t=i,e=this.parseAssignmentExpression(),i=null,c=!1):(this.consumeSemicolon(),i=this.finalize(i,new o.VariableDeclaration(p,f)))):(i=this.finalize(i,new o.Identifier(f)),this.nextToken(),t=i,e=this.parseExpression(),i=null)}else{var m=this.lookahead;if(l=this.context.allowIn,this.context.allowIn=!1,i=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=l,this.matchKeyword("in"))this.context.isAssignmentTarget&&i.type!==u.Syntax.AssignmentExpression||this.tolerateError(s.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(i),t=i,e=this.parseExpression(),i=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&i.type!==u.Syntax.AssignmentExpression||this.tolerateError(s.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(i),t=i,e=this.parseAssignmentExpression(),i=null,c=!1;else{if(this.match(",")){for(var w=[i];this.match(",");)this.nextToken(),w.push(this.isolateCoverGrammar(this.parseAssignmentExpression));i=this.finalize(this.startNode(m),new o.SequenceExpression(w))}this.expect(";")}}if(void 0===t&&(this.match(";")||(n=this.parseExpression()),this.expect(";"),this.match(")")||(a=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),r=this.finalize(this.createNode(),new o.EmptyStatement);else{this.expect(")");var g=this.context.inIteration;this.context.inIteration=!0,r=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=g}return void 0===t?this.finalize(h,new o.ForStatement(i,n,a,r)):c?this.finalize(h,new o.ForInStatement(t,e,r)):this.finalize(h,new o.ForOfStatement(t,e,r))},t.prototype.parseContinueStatement=function(){var t=this.createNode();this.expectKeyword("continue");var e=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();e=r;var i="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)||this.throwError(s.Messages.UnknownLabel,r.name)}return this.consumeSemicolon(),null!==e||this.context.inIteration||this.throwError(s.Messages.IllegalContinue),this.finalize(t,new o.ContinueStatement(e))},t.prototype.parseBreakStatement=function(){var t=this.createNode();this.expectKeyword("break");var e=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier(),i="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)||this.throwError(s.Messages.UnknownLabel,r.name),e=r}return this.consumeSemicolon(),null!==e||this.context.inIteration||this.context.inSwitch||this.throwError(s.Messages.IllegalBreak),this.finalize(t,new o.BreakStatement(e))},t.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(s.Messages.IllegalReturn);var t=this.createNode();this.expectKeyword("return");var e=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(t,new o.ReturnStatement(e))},t.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(s.Messages.StrictModeWith);var t,e=this.createNode();this.expectKeyword("with"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new o.EmptyStatement)):(this.expect(")"),t=this.parseStatement()),this.finalize(e,new o.WithStatement(r,t))},t.prototype.parseSwitchCase=function(){var t,e=this.createNode();this.matchKeyword("default")?(this.nextToken(),t=null):(this.expectKeyword("case"),t=this.parseExpression()),this.expect(":");for(var r=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)r.push(this.parseStatementListItem());return this.finalize(e,new o.SwitchCase(t,r))},t.prototype.parseSwitchStatement=function(){var t=this.createNode();this.expectKeyword("switch"),this.expect("(");var e=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=!0;var i=[],n=!1;for(this.expect("{");!this.match("}");){var a=this.parseSwitchCase();null===a.test&&(n&&this.throwError(s.Messages.MultipleDefaultsInSwitch),n=!0),i.push(a)}return this.expect("}"),this.context.inSwitch=r,this.finalize(t,new o.SwitchStatement(e,i))},t.prototype.parseLabelledStatement=function(){var t,e=this.createNode(),r=this.parseExpression();if(r.type===u.Syntax.Identifier&&this.match(":")){this.nextToken();var i=r,n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)&&this.throwError(s.Messages.Redeclaration,"Label",i.name),this.context.labelSet[n]=!0;var a=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),a=this.parseClassDeclaration();else if(this.matchKeyword("function")){var c=this.lookahead,h=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(c,s.Messages.StrictFunction):h.generator&&this.tolerateUnexpectedToken(c,s.Messages.GeneratorInLegacyContext),a=h}else a=this.parseStatement();delete this.context.labelSet[n],t=new o.LabeledStatement(i,a)}else this.consumeSemicolon(),t=new o.ExpressionStatement(r);return this.finalize(e,t)},t.prototype.parseThrowStatement=function(){var t=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(s.Messages.NewlineAfterThrow);var e=this.parseExpression();return this.consumeSemicolon(),this.finalize(t,new o.ThrowStatement(e))},t.prototype.parseCatchClause=function(){var t=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var e=[],r=this.parsePattern(e),i={},n=0;n0&&this.tolerateError(s.Messages.BadGetterArity);var i=this.parsePropertyMethod(r);return this.context.allowYield=e,this.finalize(t,new o.FunctionExpression(null,r.params,i,!1))},t.prototype.parseSetterMethod=function(){var t=this.createNode(),e=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();1!==r.params.length?this.tolerateError(s.Messages.BadSetterArity):r.params[0]instanceof o.RestElement&&this.tolerateError(s.Messages.BadSetterRestParameter);var i=this.parsePropertyMethod(r);return this.context.allowYield=e,this.finalize(t,new o.FunctionExpression(null,r.params,i,!1))},t.prototype.parseGeneratorMethod=function(){var t=this.createNode(),e=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var i=this.parsePropertyMethod(r);return this.context.allowYield=e,this.finalize(t,new o.FunctionExpression(null,r.params,i,!0))},t.prototype.isStartOfExpression=function(){var t=!0,e=this.lookahead.value;switch(this.lookahead.type){case 7:t="["===e||"("===e||"{"===e||"+"===e||"-"===e||"!"===e||"~"===e||"++"===e||"--"===e||"/"===e||"/="===e;break;case 4:t="class"===e||"delete"===e||"function"===e||"let"===e||"new"===e||"super"===e||"this"===e||"typeof"===e||"void"===e||"yield"===e}return t},t.prototype.parseYieldExpression=function(){var t=this.createNode();this.expectKeyword("yield");var e=null,r=!1;if(!this.hasLineTerminator){var i=this.context.allowYield;this.context.allowYield=!1,(r=this.match("*"))?(this.nextToken(),e=this.parseAssignmentExpression()):this.isStartOfExpression()&&(e=this.parseAssignmentExpression()),this.context.allowYield=i}return this.finalize(t,new o.YieldExpression(e,r))},t.prototype.parseClassElement=function(t){var e=this.lookahead,r=this.createNode(),i="",n=null,a=null,u=!1,c=!1,h=!1,l=!1;if(this.match("*"))this.nextToken();else if(u=this.match("["),"static"===(n=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(e=this.lookahead,h=!0,u=this.match("["),this.match("*")?this.nextToken():n=this.parseObjectPropertyKey()),3===e.type&&!this.hasLineTerminator&&"async"===e.value){var p=this.lookahead.value;":"!==p&&"("!==p&&"*"!==p&&(l=!0,e=this.lookahead,n=this.parseObjectPropertyKey(),3===e.type&&"constructor"===e.value&&this.tolerateUnexpectedToken(e,s.Messages.ConstructorIsAsync))}var d=this.qualifiedPropertyName(this.lookahead);return 3===e.type?"get"===e.value&&d?(i="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,a=this.parseGetterMethod()):"set"===e.value&&d&&(i="set",u=this.match("["),n=this.parseObjectPropertyKey(),a=this.parseSetterMethod()):7===e.type&&"*"===e.value&&d&&(i="init",u=this.match("["),n=this.parseObjectPropertyKey(),a=this.parseGeneratorMethod(),c=!0),!i&&n&&this.match("(")&&(i="init",a=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0),i||this.throwUnexpectedToken(this.lookahead),"init"===i&&(i="method"),u||(h&&this.isPropertyKey(n,"prototype")&&this.throwUnexpectedToken(e,s.Messages.StaticPrototype),!h&&this.isPropertyKey(n,"constructor")&&(("method"!==i||!c||a&&a.generator)&&this.throwUnexpectedToken(e,s.Messages.ConstructorSpecialMethod),t.value?this.throwUnexpectedToken(e,s.Messages.DuplicateConstructor):t.value=!0,i="constructor")),this.finalize(r,new o.MethodDefinition(n,u,a,i,h))},t.prototype.parseClassElementList=function(){var t=[],e={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():t.push(this.parseClassElement(e));return this.expect("}"),t},t.prototype.parseClassBody=function(){var t=this.createNode(),e=this.parseClassElementList();return this.finalize(t,new o.ClassBody(e))},t.prototype.parseClassDeclaration=function(t){var e=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var i=t&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var s=this.parseClassBody();return this.context.strict=r,this.finalize(e,new o.ClassDeclaration(i,n,s))},t.prototype.parseClassExpression=function(){var t=this.createNode(),e=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=3===this.lookahead.type?this.parseVariableIdentifier():null,i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var n=this.parseClassBody();return this.context.strict=e,this.finalize(t,new o.ClassExpression(r,i,n))},t.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var t=this.createNode(),e=this.parseDirectivePrologues();2!==this.lookahead.type;)e.push(this.parseStatementListItem());return this.finalize(t,new o.Module(e))},t.prototype.parseScript=function(){for(var t=this.createNode(),e=this.parseDirectivePrologues();2!==this.lookahead.type;)e.push(this.parseStatementListItem());return this.finalize(t,new o.Script(e))},t.prototype.parseModuleSpecifier=function(){var t=this.createNode();8!==this.lookahead.type&&this.throwError(s.Messages.InvalidModuleSpecifier);var e=this.nextToken(),r=this.getTokenRaw(e);return this.finalize(t,new o.Literal(e.value,r))},t.prototype.parseImportSpecifier=function(){var t,e,r=this.createNode();return 3===this.lookahead.type?(e=t=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),e=this.parseVariableIdentifier())):(e=t=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),e=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new o.ImportSpecifier(e,t))},t.prototype.parseNamedImports=function(){this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),t},t.prototype.parseImportDefaultSpecifier=function(){var t=this.createNode(),e=this.parseIdentifierName();return this.finalize(t,new o.ImportDefaultSpecifier(e))},t.prototype.parseImportNamespaceSpecifier=function(){var t=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(s.Messages.NoAsAfterImportNamespace),this.nextToken();var e=this.parseIdentifierName();return this.finalize(t,new o.ImportNamespaceSpecifier(e))},t.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(s.Messages.IllegalImportDeclaration);var t,e=this.createNode();this.expectKeyword("import");var r=[];if(8===this.lookahead.type)t=this.parseModuleSpecifier();else{if(this.match("{")?r=r.concat(this.parseNamedImports()):this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(r.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.match("{")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var i=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken(),t=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(e,new o.ImportDeclaration(r,t))},t.prototype.parseExportSpecifier=function(){var t=this.createNode(),e=this.parseIdentifierName(),r=e;return this.matchContextualKeyword("as")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(t,new o.ExportSpecifier(e,r))},t.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(s.Messages.IllegalExportDeclaration);var t,e=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var r=this.parseFunctionDeclaration(!0);t=this.finalize(e,new o.ExportDefaultDeclaration(r))}else this.matchKeyword("class")?(r=this.parseClassDeclaration(!0),t=this.finalize(e,new o.ExportDefaultDeclaration(r))):this.matchContextualKeyword("async")?(r=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),t=this.finalize(e,new o.ExportDefaultDeclaration(r))):(this.matchContextualKeyword("from")&&this.throwError(s.Messages.UnexpectedToken,this.lookahead.value),r=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),t=this.finalize(e,new o.ExportDefaultDeclaration(r)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var i=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken();var n=this.parseModuleSpecifier();this.consumeSemicolon(),t=this.finalize(e,new o.ExportAllDeclaration(n))}else if(4===this.lookahead.type){switch(r=void 0,this.lookahead.value){case"let":case"const":r=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}t=this.finalize(e,new o.ExportNamedDeclaration(r,[],null))}else if(this.matchAsyncFunction())r=this.parseFunctionDeclaration(),t=this.finalize(e,new o.ExportNamedDeclaration(r,[],null));else{var a=[],u=null,c=!1;for(this.expect("{");!this.match("}");)c=c||this.matchKeyword("default"),a.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),u=this.parseModuleSpecifier(),this.consumeSemicolon()):c?(i=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause,this.throwError(i,this.lookahead.value)):this.consumeSemicolon(),t=this.finalize(e,new o.ExportNamedDeclaration(null,a,u))}return t},t}();e.Parser=h},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.assert=function(t,e){if(!t)throw new Error("ASSERT: "+e)}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(){this.errors=[],this.tolerant=!1}return t.prototype.recordError=function(t){this.errors.push(t)},t.prototype.tolerate=function(t){if(!this.tolerant)throw t;this.recordError(t)},t.prototype.constructError=function(t,e){var r=new Error(t);try{throw r}catch(t){Object.create&&Object.defineProperty&&(r=Object.create(t),Object.defineProperty(r,"column",{value:e}))}return r},t.prototype.createError=function(t,e,r,i){var n="Line "+e+": "+i,s=this.constructError(n,r);return s.index=t,s.lineNumber=e,s.description=i,s},t.prototype.throwError=function(t,e,r,i){throw this.createError(t,e,r,i)},t.prototype.tolerateError=function(t,e,r,i){var n=this.createError(t,e,r,i);if(!this.tolerant)throw n;this.recordError(n)},t}();e.ErrorHandler=r},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(9),n=r(4),s=r(11);function o(t){return"0123456789abcdef".indexOf(t.toLowerCase())}function a(t){return"01234567".indexOf(t)}var u=function(){function t(t,e){this.source=t,this.errorHandler=e,this.trackComment=!1,this.isModule=!1,this.length=t.length,this.index=0,this.lineNumber=t.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return t.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},t.prototype.restoreState=function(t){this.index=t.index,this.lineNumber=t.lineNumber,this.lineStart=t.lineStart},t.prototype.eof=function(){return this.index>=this.length},t.prototype.throwUnexpectedToken=function(t){return void 0===t&&(t=s.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,t)},t.prototype.tolerateUnexpectedToken=function(t){void 0===t&&(t=s.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,t)},t.prototype.skipSingleLineComment=function(t){var e,r,i=[];for(this.trackComment&&(i=[],e=this.index-t,r={start:{line:this.lineNumber,column:this.index-this.lineStart-t},end:{}});!this.eof();){var s=this.source.charCodeAt(this.index);if(++this.index,n.Character.isLineTerminator(s)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var o={multiLine:!1,slice:[e+t,this.index-1],range:[e,this.index-1],loc:r};i.push(o)}return 13===s&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,i}}return this.trackComment&&(r.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!1,slice:[e+t,this.index],range:[e,this.index],loc:r},i.push(o)),i},t.prototype.skipMultiLineComment=function(){var t,e,r=[];for(this.trackComment&&(r=[],t=this.index-2,e={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(n.Character.isLineTerminator(i))13===i&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===i){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){e.end={line:this.lineNumber,column:this.index-this.lineStart};var s={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:e};r.push(s)}return r}++this.index}else++this.index}return this.trackComment&&(e.end={line:this.lineNumber,column:this.index-this.lineStart},s={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:e},r.push(s)),this.tolerateUnexpectedToken(),r},t.prototype.scanComments=function(){var t;this.trackComment&&(t=[]);for(var e=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(n.Character.isWhiteSpace(r))++this.index;else if(n.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,e=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;var i=this.skipSingleLineComment(2);this.trackComment&&(t=t.concat(i)),e=!0}else{if(42!==r)break;this.index+=2,i=this.skipMultiLineComment(),this.trackComment&&(t=t.concat(i))}else if(e&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,i=this.skipSingleLineComment(3),this.trackComment&&(t=t.concat(i))}else{if(60!==r||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,i=this.skipSingleLineComment(4),this.trackComment&&(t=t.concat(i))}}return t},t.prototype.isFutureReservedWord=function(t){switch(t){case"enum":case"export":case"import":case"super":return!0;default:return!1}},t.prototype.isStrictModeReservedWord=function(t){switch(t){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},t.prototype.isRestrictedWord=function(t){return"eval"===t||"arguments"===t},t.prototype.isKeyword=function(t){switch(t.length){case 2:return"if"===t||"in"===t||"do"===t;case 3:return"var"===t||"for"===t||"new"===t||"try"===t||"let"===t;case 4:return"this"===t||"else"===t||"case"===t||"void"===t||"with"===t||"enum"===t;case 5:return"while"===t||"break"===t||"catch"===t||"throw"===t||"const"===t||"yield"===t||"class"===t||"super"===t;case 6:return"return"===t||"typeof"===t||"delete"===t||"switch"===t||"export"===t||"import"===t;case 7:return"default"===t||"finally"===t||"extends"===t;case 8:return"function"===t||"continue"===t||"debugger"===t;case 10:return"instanceof"===t;default:return!1}},t.prototype.codePointAt=function(t){var e=this.source.charCodeAt(t);if(e>=55296&&e<=56319){var r=this.source.charCodeAt(t+1);r>=56320&&r<=57343&&(e=1024*(e-55296)+r-56320+65536)}return e},t.prototype.scanHexEscape=function(t){for(var e="u"===t?4:2,r=0,i=0;i1114111||"}"!==t)&&this.throwUnexpectedToken(),n.Character.fromCodePoint(e)},t.prototype.getIdentifier=function(){for(var t=this.index++;!this.eof();){var e=this.source.charCodeAt(this.index);if(92===e)return this.index=t,this.getComplexIdentifier();if(e>=55296&&e<57343)return this.index=t,this.getComplexIdentifier();if(!n.Character.isIdentifierPart(e))break;++this.index}return this.source.slice(t,this.index)},t.prototype.getComplexIdentifier=function(){var t,e=this.codePointAt(this.index),r=n.Character.fromCodePoint(e);for(this.index+=r.length,92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,t=this.scanUnicodeCodePointEscape()):null!==(t=this.scanHexEscape("u"))&&"\\"!==t&&n.Character.isIdentifierStart(t.charCodeAt(0))||this.throwUnexpectedToken(),r=t);!this.eof()&&(e=this.codePointAt(this.index),n.Character.isIdentifierPart(e));)r+=t=n.Character.fromCodePoint(e),this.index+=t.length,92===e&&(r=r.substr(0,r.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,t=this.scanUnicodeCodePointEscape()):null!==(t=this.scanHexEscape("u"))&&"\\"!==t&&n.Character.isIdentifierPart(t.charCodeAt(0))||this.throwUnexpectedToken(),r+=t);return r},t.prototype.octalToDecimal=function(t){var e="0"!==t,r=a(t);return!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(e=!0,r=8*r+a(this.source[this.index++]),"0123".indexOf(t)>=0&&!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+a(this.source[this.index++]))),{code:r,octal:e}},t.prototype.scanIdentifier=function(){var t,e=this.index,r=92===this.source.charCodeAt(e)?this.getComplexIdentifier():this.getIdentifier();if(3!=(t=1===r.length?3:this.isKeyword(r)?4:"null"===r?5:"true"===r||"false"===r?1:3)&&e+r.length!==this.index){var i=this.index;this.index=e,this.tolerateUnexpectedToken(s.Messages.InvalidEscapedReservedWord),this.index=i}return{type:t,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},t.prototype.scanPunctuator=function(){var t=this.index,e=this.source[this.index];switch(e){case"(":case"{":"{"===e&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,e="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(e=this.source.substr(this.index,4))?this.index+=4:"==="===(e=e.substr(0,3))||"!=="===e||">>>"===e||"<<="===e||">>="===e||"**="===e?this.index+=3:"&&"===(e=e.substr(0,2))||"||"===e||"=="===e||"!="===e||"+="===e||"-="===e||"*="===e||"/="===e||"++"===e||"--"===e||"<<"===e||">>"===e||"&="===e||"|="===e||"^="===e||"%="===e||"<="===e||">="===e||"=>"===e||"**"===e?this.index+=2:(e=this.source[this.index],"<>=!+-*%&|^/".indexOf(e)>=0&&++this.index)}return this.index===t&&this.throwUnexpectedToken(),{type:7,value:e,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},t.prototype.scanHexLiteral=function(t){for(var e="";!this.eof()&&n.Character.isHexDigit(this.source.charCodeAt(this.index));)e+=this.source[this.index++];return 0===e.length&&this.throwUnexpectedToken(),n.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+e,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},t.prototype.scanBinaryLiteral=function(t){for(var e,r="";!this.eof()&&("0"===(e=this.source[this.index])||"1"===e);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(e=this.source.charCodeAt(this.index),(n.Character.isIdentifierStart(e)||n.Character.isDecimalDigit(e))&&this.throwUnexpectedToken()),{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},t.prototype.scanOctalLiteral=function(t,e){var r="",i=!1;for(n.Character.isOctalDigit(t.charCodeAt(0))?(i=!0,r="0"+this.source[this.index++]):++this.index;!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return i||0!==r.length||this.throwUnexpectedToken(),(n.Character.isIdentifierStart(this.source.charCodeAt(this.index))||n.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(r,8),octal:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},t.prototype.isImplicitOctalLiteral=function(){for(var t=this.index+1;t=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(t,e,r){var n=parseInt(e||r,16);return n>1114111&&i.throwUnexpectedToken(s.Messages.InvalidRegExp),n<=65535?String.fromCharCode(n):"￿"})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(r)}catch(t){this.throwUnexpectedToken(s.Messages.InvalidRegExp)}try{return new RegExp(t,e)}catch(t){return null}},t.prototype.scanRegExpBody=function(){var t=this.source[this.index];i.assert("/"===t,"Regular expression literal must start with a slash");for(var e=this.source[this.index++],r=!1,o=!1;!this.eof();)if(e+=t=this.source[this.index++],"\\"===t)t=this.source[this.index++],n.Character.isLineTerminator(t.charCodeAt(0))&&this.throwUnexpectedToken(s.Messages.UnterminatedRegExp),e+=t;else if(n.Character.isLineTerminator(t.charCodeAt(0)))this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);else if(r)"]"===t&&(r=!1);else{if("/"===t){o=!0;break}"["===t&&(r=!0)}return o||this.throwUnexpectedToken(s.Messages.UnterminatedRegExp),e.substr(1,e.length-2)},t.prototype.scanRegExpFlags=function(){for(var t="";!this.eof();){var e=this.source[this.index];if(!n.Character.isIdentifierPart(e.charCodeAt(0)))break;if(++this.index,"\\"!==e||this.eof())t+=e;else if("u"===(e=this.source[this.index])){++this.index;var r=this.index,i=this.scanHexEscape("u");if(null!==i)for(t+=i;r=55296&&t<57343&&n.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},t}();e.Scanner=u},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenName={},e.TokenName[1]="Boolean",e.TokenName[2]="",e.TokenName[3]="Identifier",e.TokenName[4]="Keyword",e.TokenName[5]="Null",e.TokenName[6]="Numeric",e.TokenName[7]="Punctuator",e.TokenName[8]="String",e.TokenName[9]="RegularExpression",e.TokenName[10]="Template"},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(10),n=r(12),s=r(13),o=function(){function t(){this.values=[],this.curly=this.paren=-1}return t.prototype.beforeFunctionExpression=function(t){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(t)>=0},t.prototype.isRegexStart=function(){var t=this.values[this.values.length-1],e=null!==t;switch(t){case"this":case"]":e=!1;break;case")":var r=this.values[this.paren-1];e="if"===r||"while"===r||"for"===r||"with"===r;break;case"}":if(e=!1,"function"===this.values[this.curly-3])e=!!(i=this.values[this.curly-4])&&!this.beforeFunctionExpression(i);else if("function"===this.values[this.curly-4]){var i;e=!(i=this.values[this.curly-5])||!this.beforeFunctionExpression(i)}}return e},t.prototype.push=function(t){7===t.type||4===t.type?("{"===t.value?this.curly=this.values.length:"("===t.value&&(this.paren=this.values.length),this.values.push(t.value)):this.values.push(null)},t}(),a=function(){function t(t,e){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!e&&"boolean"==typeof e.tolerant&&e.tolerant,this.scanner=new n.Scanner(t,this.errorHandler),this.scanner.trackComment=!!e&&"boolean"==typeof e.comment&&e.comment,this.trackRange=!!e&&"boolean"==typeof e.range&&e.range,this.trackLoc=!!e&&"boolean"==typeof e.loc&&e.loc,this.buffer=[],this.reader=new o}return t.prototype.errors=function(){return this.errorHandler.errors},t.prototype.getNextToken=function(){if(0===this.buffer.length){var t=this.scanner.scanComments();if(this.scanner.trackComment)for(var e=0;ei&&" "!==t[l+1],l=s);else if(!w(o))return 5;p=p&&g(o)}c=c||h&&s-l-1>i&&" "!==t[l+1]}return u||c?r>9&&y(t)?5:c?4:3:p&&!n(t)?1:2}function _(t,e,r,i){t.dump=function(){if(0===e.length)return"''";if(!t.noCompatMode&&-1!==h.indexOf(e))return"'"+e+"'";var s=t.indent*Math.max(1,r),o=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-s),a=i||t.flowLevel>-1&&r>=t.flowLevel;switch(b(e,a,t.indent,o,(function(e){return function(t,e){var r,i;for(r=0,i=t.implicitTypes.length;r"+E(e,t.indent)+v(d(function(t,e){var r,i,n=/(\n+)([^\n]*)/g,s=(a=t.indexOf("\n"),a=-1!==a?a:t.length,n.lastIndex=a,A(t.slice(0,a),e)),o="\n"===t[0]||" "===t[0];var a;for(;i=n.exec(t);){var u=i[1],c=i[2];r=" "===c[0],s+=u+(o||r||""===c?"":"\n")+A(c,e),o=r}return s}(e,o),s));case 5:return'"'+function(t){for(var e,r,i,n="",s=0;s=55296&&e<=56319&&(r=t.charCodeAt(s+1))>=56320&&r<=57343?(n+=l(1024*(e-55296)+r-56320+65536),s++):(i=c[e],n+=!i&&w(e)?t[s]:i||l(e));return n}(e)+'"';default:throw new n("impossible error: invalid scalar style")}}()}function E(t,e){var r=y(t)?String(e):"",i="\n"===t[t.length-1];return r+(i&&("\n"===t[t.length-2]||"\n"===t)?"+":i?"":"-")+"\n"}function v(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function A(t,e){if(""===t||" "===t[0])return t;for(var r,i,n=/ [^ ]/g,s=0,o=0,a=0,u="";r=n.exec(t);)(a=r.index)-s>e&&(i=o>s?o:a,u+="\n"+t.slice(s,i),s=i+1),o=a;return u+="\n",t.length-s>e&&o>s?u+=t.slice(s,o)+"\n"+t.slice(o+1):u+=t.slice(s),u.slice(1)}function T(t,e,r){var i,s,o,c,h,l;for(o=0,c=(s=r?t.explicitTypes:t.implicitTypes).length;o tag resolver accepts not "'+l+'" style');i=h.represent[l](e,l)}t.dump=i}return!0}return!1}function x(t,e,r,i,s,o){t.tag=null,t.dump=r,T(t,r,!1)||T(t,r,!0);var u=a.call(t.dump);i&&(i=t.flowLevel<0||t.flowLevel>e);var c,h,l="[object Object]"===u||"[object Array]"===u;if(l&&(h=-1!==(c=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||h||2!==t.indent&&e>0)&&(s=!1),h&&t.usedDuplicates[c])t.dump="*ref_"+c;else{if(l&&h&&!t.usedDuplicates[c]&&(t.usedDuplicates[c]=!0),"[object Object]"===u)i&&0!==Object.keys(t.dump).length?(!function(t,e,r,i){var s,o,a,u,c,h,l="",p=t.tag,d=Object.keys(r);if(!0===t.sortKeys)d.sort();else if("function"==typeof t.sortKeys)d.sort(t.sortKeys);else if(t.sortKeys)throw new n("sortKeys must be a boolean or a function");for(s=0,o=d.length;s1024)&&(t.dump&&10===t.dump.charCodeAt(0)?h+="?":h+="? "),h+=t.dump,c&&(h+=f(t,e)),x(t,e+1,u,!0,c)&&(t.dump&&10===t.dump.charCodeAt(0)?h+=":":h+=": ",l+=h+=t.dump));t.tag=p,t.dump=l||"{}"}(t,e,t.dump,s),h&&(t.dump="&ref_"+c+t.dump)):(!function(t,e,r){var i,n,s,o,a,u="",c=t.tag,h=Object.keys(r);for(i=0,n=h.length;i1024&&(a+="? "),a+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),x(t,e,o,!1,!1)&&(u+=a+=t.dump));t.tag=c,t.dump="{"+u+"}"}(t,e,t.dump),h&&(t.dump="&ref_"+c+" "+t.dump));else if("[object Array]"===u){var p=t.noArrayIndent&&e>0?e-1:e;i&&0!==t.dump.length?(!function(t,e,r,i){var n,s,o="",a=t.tag;for(n=0,s=r.length;n "+t.dump)}return!0}function S(t,e){var r,i,n=[],s=[];for(function t(e,r,i){var n,s,o;if(null!==e&&"object"==typeof e)if(-1!==(s=r.indexOf(e)))-1===i.indexOf(s)&&i.push(s);else if(r.push(e),Array.isArray(e))for(s=0,o=e.length;so.computeSchemaDifferences(t,r).length>0?e+1:e,0)}(e,r))return Promise.reject(new Error(s.errors.json2csv.notSameSchema));return Promise.resolve(e)}(e);{let t=o.unique(o.flatten(e));return Promise.resolve(t)}}function h(e){return t.sortHeader?e.sort():e}function l(e){return t.trimHeaderFields&&(e.headerFields=e.headerFields.map(t=>t.split(".").map(t=>t.trim()).join("."))),e}function p(e){return t.prependHeader&&(e.headerFields=e.headerFields.map((function(t){return y(t)}))),e}function d(e){return e.header=e.headerFields.join(t.delimiter.field),e}function f(e){return t.keys&&!t.unwindArrays?Promise.resolve(t.keys).then(h):function(t){return Promise.resolve(n.deepKeysFromList(t,u))}(e).then(c).then(h)}function m(e){if(t.unwindArrays){const r=e.records.length;return e.headerFields.forEach(t=>{e.records=o.unwind(e.records,t)}),f(e.records).then(i=>(e.headerFields=i,r!==e.records.length?m(e):(t.keys&&(e.headerFields=t.keys),e)))}return e}function w(e){return e.records=e.records.map(r=>{let n=function(e,r){let n=[];return r.forEach(r=>{let s=i.evaluatePath(e,r);!o.isUndefined(t.emptyFieldValue)&&o.isEmptyField(s)?s=t.emptyFieldValue:t.expandArrayObjects&&Array.isArray(s)&&(s=function(e){let r=o.removeEmptyFields(e);if(!e.length||!r.length)return t.emptyFieldValue||"";if(1===r.length)return r[0];return e}(s)),n.push(s)}),n}(r,e.headerFields).map(e=>e=y(e=function(e){return Array.isArray(e)||o.isObject(e)&&!o.isDate(e)?JSON.stringify(e):o.isUndefined(e)?"undefined":o.isNull(e)?"null":t.useLocaleFormat?e.toLocaleString():e.toString()}(e=g(e))));return n.join(t.delimiter.field)}).join(t.delimiter.eol),e}function g(e){return t.trimFieldValues?Array.isArray(e)?e.map(g):o.isString(e)?e.trim():e:e}function y(i){const n=t.delimiter.wrap;return i.includes(t.delimiter.wrap)&&(i=i.replace(e,n+n)),(i.includes(t.delimiter.field)||i.includes(t.delimiter.wrap)||i.match(r))&&(i=n+i+n),i}function b(e){let r=e.header,i=e.records,n=(t.excelBOM?s.values.excelBOM:"")+(t.prependHeader?r+t.delimiter.eol:"")+i;return e.callback(null,n)}return{convert:function(t,e){o.isObject(t)&&!t.length&&(t=[t]),f(t).then(r=>({headerFields:r,callback:e,records:t})).then(m).then(w).then(p).then(l).then(d).then(b).catch(e)},validationFn:o.isObject,validationMessages:s.errors.json2csv}}}},function(t,e,r){"use strict";const i=r(200);function n(t,e){return e=a(e),i.isObject(t)?function t(e,r,n){let a=Object.keys(r).map(a=>{let u=o(e,a);return c=r[a],i.isObject(c)&&!i.isNull(c)&&!Array.isArray(c)&&Object.keys(c).length?t(u,r[a],n):n.expandArrayObjects&&function(t){return Array.isArray(t)}(r[a])?function(t,e,r){let n=s(t);return t.length?t.length&&0===i.flatten(n).length?[e]:(n=n.map(t=>{return r=t,Array.isArray(r)&&!r.length?[e]:t.map(t=>o(e,t));var r}),i.unique(i.flatten(n))):r.ignoreEmptyArraysWhenExpanding?[]:[e]}(r[a],a,n):u;var c});return i.flatten(a)}("",t,e):[]}function s(t,e){return e=a(e),t.map(t=>i.isObject(t)?n(t,e):[])}function o(t,e){return t?t+"."+e:e}function a(t){return{expandArrayObjects:!1,ignoreEmptyArraysWhenExpanding:!1,...t||{}}}t.exports={deepKeys:n,deepKeysFromList:s}},function(t,e,r){"use strict";t.exports={isString:function(t){return"string"==typeof t},isNull:function(t){return null===t},isError:function(t){return"[object Error]"===Object.prototype.toString.call(t)},isDate:function(t){return t instanceof Date},isFunction:function(t){return"function"==typeof t},isUndefined:function(t){return void 0===t},isObject:function(t){return"object"==typeof t},unique:function(t){return[...new Set(t)]},flatten:function(t){return[].concat(...t)}}},function(t,e,r){"use strict";let i=r(43),n=r(44),s=r(45);t.exports={Csv2Json:function(t){const e=new RegExp(t.delimiter.wrap+t.delimiter.wrap,"g"),r=new RegExp("^"+n.values.excelBOM);function o(e){return e=p(e),t.trimHeaderFields?e.split(".").map(t=>t.trim()).join("."):e}function a(e){let r={lines:e},i=r.lines[0];return r.headerFields=i.map((t,e)=>({value:o(t),index:e})),t.keys&&(r.headerFields=r.headerFields.filter(e=>t.keys.includes(e.value))),r}function u(e){return Promise.resolve(function(e){let r,i,n,o,a=[],u=[],c=e.length-1,h=t.delimiter.eol.length,l={insideWrapDelimiter:!1,parsingValue:!0,justParsedDoubleQuote:!1,startIndex:0},p=0;for(;p{s=s.map(r=>r=l(r=function(r){return r.replace(e,t.delimiter.wrap)}(r=p(r))));let o=function(t,e){return t.reduce((t,r)=>{let n=h(e,r);return i.setPath(t,r.value,n)},{})}(r.headerFields,s);return n.concat(o)},[]),r}return{convert:function(e,i){var n;(n=e,t.excelBOM?Promise.resolve(n.replace(r,"")):Promise.resolve(n)).then(u).then(a).then(c).then(d).then(t=>i(null,t.json)).catch(i)},validationFn:s.isString,validationMessages:n.errors.csv2json}}}},function(t,e,r){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});const i=r(81);e.Bundle=class{constructor(t){this.sections={},this.responses={};const e=o(i.decode(t));if(6!==e.length)throw new Error("Wrong toplevel structure");const[r,h,l,p,d,f]=e;if("🌐📦"!==c(r))throw new Error("Wrong magic");this.version=c(h).replace(/\0+$/,""),this.primaryURL=a(l);const m=o(i.decode(u(p))),w=o(d);if(m.length!==2*w.length)throw new Error("Number of elements in section-lengths and in sections don't match");for(let t=0;t1?"s":""}class d extends i.Transform{constructor(t){const e=Object.assign({max_depth:10},t,{readableObjectMode:!1,writableObjectMode:!1}),r=e.max_depth;delete e.max_depth,super(e),this.depth=1,this.max_depth=r,this.all=new u,this.parser=new s(e),this.parser.on("value",this._on_value.bind(this)),this.parser.on("start",this._on_start.bind(this)),this.parser.on("start-string",this._on_start_string.bind(this)),this.parser.on("stop",this._on_stop.bind(this)),this.parser.on("more-bytes",this._on_more.bind(this)),this.parser.on("error",this._on_error.bind(this)),this.parser.on("data",this._on_data.bind(this)),this.parser.bs.on("read",this._on_read.bind(this))}_transform(t,e,r){this.parser.write(t,e,r)}_flush(t){return this.parser._flush(t)}static comment(t,e,r){if(null==t)throw new Error("input required");let i="string"==typeof t?"hex":void 0,n=10;switch(typeof e){case"function":r=e;break;case"string":i=e;break;case"number":n=e;break;case"object":const t=e.encoding,s=e.max_depth;i=null!=t?t:i,n=null!=s?s:n;break;case"undefined":break;default:throw new Error("Unknown option type")}const s=new u,o=new d({max_depth:n});let a=null;return"function"==typeof r?(o.on("end",()=>{r(null,s.toString("utf8"))}),o.on("error",r)):a=new Promise((t,e)=>(o.on("end",()=>{t(s.toString("utf8"))}),o.on("error",e))),o.pipe(s),o.end(t,i),a}_on_error(t){return this.push("ERROR: ")&&this.push(t.toString())&&this.push("\n")}_on_read(t){this.all.write(t);const e=t.toString("hex");this.push(new Array(this.depth+1).join(" ")),this.push(e);let r=2*(this.max_depth-this.depth);return r-=e.length,r<1&&(r=1),this.push(new Array(r+1).join(" ")),this.push("-- ")}_on_more(t,e,r,i){this.depth++;let n="";switch(t){case c.POS_INT:n="Positive number,";break;case c.NEG_INT:n="Negative number,";break;case c.ARRAY:n="Array, length";break;case c.MAP:n="Map, count";break;case c.BYTE_STRING:n="Bytes, length";break;case c.UTF8_STRING:n="String, length";break;case c.SIMPLE_FLOAT:n=1===e?"Simple value,":"Float,"}return this.push(n+" next "+e+" byte"+p(e)+"\n")}_on_start_string(t,e,r,i){this.depth++;let n="";switch(t){case c.BYTE_STRING:n="Bytes, length: "+e;break;case c.UTF8_STRING:n="String, length: "+e.toString()}return this.push(n+"\n")}_on_start(t,e,r,i){if(this.depth++,e!==l.BREAK)switch(r){case c.ARRAY:this.push(`[${i}], `);break;case c.MAP:i%2?this.push(`{Val:${Math.floor(i/2)}}, `):this.push(`{Key:${Math.floor(i/2)}}, `)}switch(t){case c.TAG:this.push("Tag #"+e);break;case c.ARRAY:e===l.STREAM?this.push("Array (streaming)"):this.push(`Array, ${e} item${p(e)}`);break;case c.MAP:e===l.STREAM?this.push("Map (streaming)"):this.push(`Map, ${e} pair${p(e)}`);break;case c.BYTE_STRING:this.push("Bytes (streaming)");break;case c.UTF8_STRING:this.push("String (streaming)")}return this.push("\n")}_on_stop(t){return this.depth--}_on_value(t,r,i,s){if(t!==l.BREAK)switch(r){case c.ARRAY:this.push(`[${i}], `);break;case c.MAP:i%2?this.push(`{Val:${Math.floor(i/2)}}, `):this.push(`{Key:${Math.floor(i/2)}}, `)}switch(t===l.BREAK?this.push("BREAK\n"):t===l.NULL?this.push("null\n"):t===l.UNDEFINED?this.push("undefined\n"):"string"==typeof t?(this.depth--,t.length>0&&(this.push(JSON.stringify(t)),this.push("\n"))):e.isBuffer(t)?(this.depth--,t.length>0&&(this.push(t.toString("hex")),this.push("\n"))):t instanceof a?(this.push(t.toString()),this.push("\n")):(this.push(n.inspect(t)),this.push("\n")),s){case h.ONE:case h.TWO:case h.FOUR:case h.EIGHT:this.depth--}}_on_data(){return this.push("0x"),this.push(this.all.read().toString("hex")),this.push("\n")}}t.exports=d}).call(this,r(2).Buffer)},function(t,e){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},function(t,e,r){"use strict";const i=r(3),n=r(27),s=i.Transform;t.exports=class extends s{constructor(t){super(t),this._writableState.objectMode=!1,this._readableState.objectMode=!0,this.bs=new n,this.__restart()}_transform(t,e,r){for(this.bs.write(t);this.bs.length>=this.__needed;){let t;const e=null===this.__needed?void 0:this.bs.read(this.__needed);try{t=this.__parser.next(e)}catch(t){return r(t)}this.__needed&&(this.__fresh=!1),t.done?(this.push(t.value),this.__restart()):this.__needed=t.value||0}return r()}*_parse(){throw new Error("Must be implemented in subclass")}__restart(){this.__needed=null,this.__parser=this._parse(),this.__fresh=!0}_flush(t){t(this.__fresh?null:new Error("unexpected end of input"))}}},function(t,e,r){"use strict";(function(e){const i=r(3),n=r(25),s=r(34),o=(r(26),r(15)),a=r(9),u=r(8).BigNumber,c=r(27),h=a.MT,l=a.SYMS;class p extends i.Transform{constructor(t){const e=Object.assign({separator:"\n",stream_errors:!1},t,{readableObjectMode:!1,writableObjectMode:!1}),r=e.separator;delete e.separator;const i=e.stream_errors;delete e.stream_errors,super(e),this.float_bytes=-1,this.separator=r,this.stream_errors=i,this.parser=new s(e),this.parser.on("more-bytes",this._on_more.bind(this)),this.parser.on("value",this._on_value.bind(this)),this.parser.on("start",this._on_start.bind(this)),this.parser.on("stop",this._on_stop.bind(this)),this.parser.on("data",this._on_data.bind(this)),this.parser.on("error",this._on_error.bind(this))}_transform(t,e,r){return this.parser.write(t,e,r)}_flush(t){return this.parser._flush(e=>this.stream_errors?(e&&this._on_error(e),t()):t(e))}static diagnose(t,e,r){if(null==t)throw new Error("input required");let i={},n="hex";switch(typeof e){case"function":r=e,n=o.guessEncoding(t);break;case"object":i=o.extend({},e),n=null!=i.encoding?i.encoding:o.guessEncoding(t),delete i.encoding;break;default:n=null!=e?e:"hex"}const s=new c,a=new p(i);let u=null;return"function"==typeof r?(a.on("end",()=>r(null,s.toString("utf8"))),a.on("error",r)):u=new Promise((t,e)=>(a.on("end",()=>t(s.toString("utf8"))),a.on("error",e))),a.pipe(s),a.end(t,n),u}_on_error(t){return this.stream_errors?this.push(t.toString()):this.emit("error",t)}_on_more(t,e,r,i){if(t===h.SIMPLE_FLOAT)return this.float_bytes={2:1,4:2,8:3}[e]}_fore(t,e){switch(t){case h.BYTE_STRING:case h.UTF8_STRING:case h.ARRAY:if(e>0)return this.push(", ");break;case h.MAP:if(e>0)return e%2?this.push(": "):this.push(", ")}}_on_value(t,r,i){if(t!==l.BREAK)return this._fore(r,i),this.push((()=>{switch(!1){case t!==l.NULL:return"null";case t!==l.UNDEFINED:return"undefined";case"string"!=typeof t:return JSON.stringify(t);case!(this.float_bytes>0):const r=this.float_bytes;return this.float_bytes=-1,n.inspect(t)+"_"+r;case!e.isBuffer(t):return"h'"+t.toString("hex")+"'";case!(t instanceof u):return t.toString();default:return n.inspect(t)}})())}_on_start(t,e,r,i){switch(this._fore(r,i),t){case h.TAG:this.push(e+"(");break;case h.ARRAY:this.push("[");break;case h.MAP:this.push("{");break;case h.BYTE_STRING:case h.UTF8_STRING:this.push("(")}if(e===l.STREAM)return this.push("_ ")}_on_stop(t){switch(t){case h.TAG:return this.push(")");case h.ARRAY:return this.push("]");case h.MAP:return this.push("}");case h.BYTE_STRING:case h.UTF8_STRING:return this.push(")")}}_on_data(){return this.push(this.separator)}}t.exports=p}).call(this,r(2).Buffer)},function(t,e,r){"use strict";(function(e){const i=r(82),n=r(34),s=r(9).MT;class o extends Map{constructor(t){super(t)}static _encode(t){return i.encodeCanonical(t).toString("base64")}static _decode(t){return n.decodeFirstSync(t,"base64")}get(t){return super.get(o._encode(t))}set(t,e){return super.set(o._encode(t),e)}delete(t){return super.delete(o._encode(t))}has(t){return super.has(o._encode(t))}*keys(){for(const t of super.keys())yield o._decode(t)}*entries(){for(const t of super.entries())yield[o._decode(t[0]),t[1]]}[Symbol.iterator](){return this.entries()}forEach(t,e){if("function"!=typeof t)throw new TypeError("Must be function");for(const e of super.entries())t.call(this,e[1],o._decode(e[0]),this)}encodeCBOR(t){if(!t._pushInt(this.size,s.MAP))return!1;if(t.canonical){const r=Array.from(super.entries()).map(t=>[e.from(t[0],"base64"),t[1]]);r.sort((t,e)=>t[0].compare(e[0]));for(const e of r)if(!t.push(e[0])||!t.pushAny(e[1]))return!1}else for(const r of super.entries())if(!t.push(e.from(r[0],"base64"))||!t.pushAny(r[1]))return!1;return!0}}t.exports=o}).call(this,r(2).Buffer)},function(t,e,r){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});const i=r(81),n=r(22);e.BundleBuilder=class{constructor(t){this.primaryURL=t,this.sectionLengths=[],this.sections=[],this.responses=[],this.index=new Map,this.currentResponsesOffset=0,o(t)}createBundle(){if(!this.index.has(this.primaryURL))throw new Error(`Exchange for primary URL (${this.primaryURL}) does not exist`);this.addSection("index",this.fixupIndex()),this.addSection("responses",this.responses);const t=this.sectionLengths.reduce((t,e)=>t+e.length,16384),e=a(this.createTopLevel(),t),r=new DataView(e.buffer,e.byteOffset+e.length-8);return r.setUint32(0,Math.floor(e.length/4294967296)),r.setUint32(4,4294967295&e.length),e}addExchange(t,e,r,i){o(t),"string"==typeof i&&(i=c(i)),this.addIndexEntry(t,this.addResponse(new s(e,r),i))}setManifestURL(t){o(t),this.addSection("manifest",t)}addSection(t,e){if(this.sectionLengths.some(e=>e.name===t))throw new Error("Duplicated section: "+t);let r;r="responses"===t?this.currentResponsesOffset+u(this.responses.length):u(e),this.sectionLengths.push({name:t,length:r}),this.sections.push(e)}addResponse(t,e){if(e.length>0&&!t.has("content-type"))throw new Error("Non-empty exchange must have Content-Type header");const r=[new Uint8Array(a(t)),e];return this.responses.push(r),r.reduce((t,e)=>t+u(e.length)+e.length,1)}addIndexEntry(t,e){this.index.set(t,[new Uint8Array(0),this.currentResponsesOffset,e]),this.currentResponsesOffset+=e}fixupIndex(){const t=u(this.responses.length);for(const e of this.index.values())e[1]+=t;return this.index}createTopLevel(){const t=[];for(const e of this.sectionLengths)t.push(e.name,e.length);return[c("🌐📦"),c("b1\0\0"),this.primaryURL,new Uint8Array(a(t)),this.sections,new Uint8Array(8)]}};class s extends Map{constructor(t,e){if(super(),t<100||t>999)throw new Error("Invalid status code");this.set(":status",t.toString());for(const t of Object.keys(e))this.set(t.toLowerCase(),e[t])}encodeCBOR(t){const e=new Map;for(const[t,r]of this.entries())e.set(c(t),c(r));return t.pushAny(e)}}function o(t){const e=new n.URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol)throw new Error("Exchange URL's protocol must be http(s): "+t);if(""!==e.username||""!==e.password)throw new Error("Exchange URL must not have credentials: "+t);if(""!==e.hash)throw new Error("Exchange URL must not have a hash: "+t)}function a(t,e=1048576){const r=i.encodeOne(t,{canonical:!0,highWaterMark:e});if(r.length>=e)throw new Error("CBOR encode error: insufficient buffer size");return r}function u(t,e=1048576){const r=i.encodeOne(t,{highWaterMark:e}).byteLength;if(r>=e)throw new Error("CBOR encode error: insufficient buffer size");return r}function c(e){return t.from(e,"utf-8")}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";r.r(e);var i='\n\n\n\n\nReplayWeb.page\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n\n\n\n`\n }\n\n let responseData = {\n \"status\": 200,\n \"statusText\": \"OK\",\n \"headers\": { \"Content-Type\": \"text/html\", \"Content-Security-Policy\": DEFAULT_CSP }\n };\n\n return new Response(content, responseData);\n }\n\n makeHeadInsert(url, requestTS, date, presetCookie, isLive, referrer) {\n const prefix = this.prefix;\n const topUrl = prefix + requestTS + (requestTS ? \"/\" : \"\") + url;\n const coll = this.name;\n\n const seconds = Object(_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"getSecondsStr\"])(date);\n\n const timestamp = Object(_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"getTS\"])(date.toISOString());\n\n const urlParsed = new URL(url);\n\n let scheme;\n\n // protocol scheme (for relative urls): if not http/https, try to get actual protocol from referrer\n if (urlParsed.protocol !== \"https:\" && urlParsed.protocol !== \"http:\") {\n scheme = (referrer && referrer.indexOf(\"/http://\") > 0) ? \"http\" : \"https\";\n } else {\n scheme = urlParsed.protocol.slice(0, -1);\n }\n\n const presetCookieStr = presetCookie ? JSON.stringify(presetCookie) : '\"\"';\n return `\n\n\n\n\n\n${this.injectScripts.map((script) => ``)}\n `\n }\n}\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/collection.js?"); + +/***/ }), + +/***/ "../serviceworker/src/extract.js": +/*!***************************************!*\ + !*** ../serviceworker/src/extract.js ***! + \***************************************/ +/*! exports provided: extractText */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extractText\", function() { return extractText; });\n/* harmony import */ var parse5_sax_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parse5-sax-parser */ \"../serviceworker/node_modules/parse5-sax-parser/lib/index.js\");\n/* harmony import */ var parse5_sax_parser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(parse5_sax_parser__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\");\n/* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(stream__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _rewrite_decoder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rewrite/decoder */ \"../serviceworker/src/rewrite/decoder.js\");\n\n\n\n\n\n\nconst SKIPPED_TAGS = [\"script\", \"style\", \"header\", \"footer\", \"banner-div\", \"noscript\"];\n\n\n// ===========================================================================\nasync function extractText(url, buffer, ce, te) {\n const parser = new parse5_sax_parser__WEBPACK_IMPORTED_MODULE_0___default.a();\n const textChunks = [];\n let context = null;\n\n parser.on(\"text\", (data, raw) => {\n if (context) {\n return;\n }\n const text = data.text.trim();\n if (text) {\n textChunks.push(text);\n }\n });\n\n parser.on('startTag', startTag => {\n if (!startTag.selfClosing && SKIPPED_TAGS.includes(startTag.tagName)) {\n context = startTag.tagName;\n }\n });\n\n parser.on('endTag', endTag => {\n if (endTag.tagName === context) {\n context = null;\n }\n });\n\n const pass = new stream__WEBPACK_IMPORTED_MODULE_1__[\"PassThrough\"]({encoding: \"utf8\"});\n\n if (ce || te) {\n buffer = await Object(_rewrite_decoder__WEBPACK_IMPORTED_MODULE_2__[\"decodeContent\"])(buffer, ce, te);\n }\n\n pass.push(buffer);\n pass.push(null);\n\n pass.pipe(parser);\n\n const p = new Promise((resolve) => {\n parser.on(\"end\", () => {\n resolve(textChunks.join(\" \"));\n });\n });\n\n return await p;\n}\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/extract.js?"); + +/***/ }), + +/***/ "../serviceworker/src/fuzzymatcher.js": +/*!********************************************!*\ + !*** ../serviceworker/src/fuzzymatcher.js ***! + \********************************************/ +/*! exports provided: FuzzyMatcher, fuzzyMatcher */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FuzzyMatcher\", function() { return FuzzyMatcher; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fuzzyMatcher\", function() { return fuzzyMatcher; });\n/* harmony import */ var js_levenshtein__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-levenshtein */ \"../serviceworker/node_modules/js-levenshtein/index.js\");\n/* harmony import */ var js_levenshtein__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_levenshtein__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction joinRx(rxStr) {\n return new RegExp(\"[?&]\" + rxStr.map(x => \"(\" + x + \")\").join(\"|\"), \"gi\");\n}\n\n\nconst DEFAULT_RULES = \n[\n {\n \"match\": /\\/\\/.*gcs-vimeo|vod|vod-progressive\\.akamaized\\.net.*\\/([\\d]+)\\/[\\d]+(.mp4)/,\n \"fuzzyCanonReplace\": \"//vimeo-cdn.fuzzy.replayweb.page/$1$2\",\n \"split\": \".net\",\n },\n {\n \"match\": /\\/\\/.*player.vimeo.com\\/(video\\/[\\d]+)\\?.*/i,\n \"fuzzyCanonReplace\": \"//vimeo.fuzzy.replayweb.page/$1\"\n },\n {\n \"match\": /www.\\washingtonpost\\.com\\/wp-apps\\/imrs.php/,\n \"args\": [[\"src\"]],\n },\n {\n \"match\": /(static.wixstatic.com\\/.*\\.[\\w]+\\/v1\\/fill\\/)(w_.*)/,\n \"replace\": \"$1?_args=$2\",\n \"split\": \"/v1/fill\"\n },\n {\n \"match\": /(twimg.com\\/profile_images\\/[^/]+\\/[^_]+)_([\\w]+\\.[\\w]+)/,\n \"replace\": \"$1=_args=$2\",\n \"split\": \"_\"\n },\n {\n \"match\": /(youtube\\.com\\/embed\\/[^?]+)[?].*/i,\n \"replace\": \"$1\"\n },\n {\n \"match\": /\\/\\/(?:www\\.)?youtube(?:-nocookie)?\\.com\\/(get_video_info)/i,\n \"fuzzyCanonReplace\": \"//youtube.fuzzy.replayweb.page/$1\",\n \"args\": [[\"video_id\"]],\n },\n {\n \"match\": /\\/\\/.*googlevideo.com\\/(videoplayback)/i,\n \"fuzzyCanonReplace\": \"//youtube.fuzzy.replayweb.page/$1\",\n \"args\": [[\"id\", \"itag\"],\n [\"id\"]],\n \"fuzzyArgs\": true\n },\n {\n \"match\": /facebook\\.com\\/ajax\\/pagelet\\/generic.php\\/photoviewerinitpagelet/i,\n \"args\": [[{\"arg\": \"data\",\n \"keys\": [\"query_type\", \"fbid\", \"v\", \"cursor\", \"data\"]}]]\n },\n // Facebook\n {\n \"match\": /facebook\\.com\\/api\\/graphql/i,\n \"args\": [[\"variables\", \"doc_id\"]],\n \"fuzzyArgs\": true\n },\n {\n \"match\": /facebook\\.com\\/api\\/graphqlbatch/i,\n \"args\": [[\"batch_name\", \"queries\"], [\"batch_name\"]]\n },\n {\n \"match\": /facebook\\.com\\/ajax\\/navigation/i,\n \"args\": [[\"route_url\", \"__user\"], [\"route_url\"]]\n },\n {\n \"match\": /facebook\\.com\\/ajax\\/route-definition/i,\n \"args\": [[\"route_url\", \"__user\"], [\"route_url\"]]\n },\n {\n \"match\": /facebook\\.com\\/ajax\\/bulk-route-definitions/i,\n \"args\": [[\"route_urls[0]\", \"__user\"], [\"route_urls[0]\"]]\n },\n {\n \"match\": /facebook\\.com\\/ajax\\/relay-ef/i,\n \"args\": [[\"queries[0]\", \"__user\"], [\"queries[0]\"]]\n },\n {\n \"match\": /facebook\\.com\\/videos\\/vodcomments/i,\n \"args\": [[\"eft_id\"]],\n },\n {\n \"match\": /facebook\\.com\\/ajax\\.*/i,\n \"replaceQuery\": /([?&][^_]\\w+=[^&]+)/g,\n },\n {\"match\": /plus\\.googleapis\\.com\\/u\\/\\/0\\/_\\/widget\\/render\\/comments/i,\n \"args\": [[\"href\", \"stream_id\", \"substream_id\"]]\n },\n\n // Generic Rules -- should be last\n {\n \"match\": joinRx([\n \"(callback=jsonp)[^&]+(?=&|$)\",\n \"((?:\\\\w+)=jquery)[\\\\d]+_[\\\\d]+\",\n \"utm_[^=]+=[^&]+(?=&|$)\",\n \"(_|cb|_ga|\\\\w*cache\\\\w*)=[\\\\d.-]+(?=$|&)\"\n ]),\n \"replace\": \"\"\n },\n {\n \"match\": /(\\.(?:php|js|webm|mp4|gif|jpg|png|css|json|m3u8))\\?.*/i,\n \"replace\": \"$1\"\n }\n];\n\n// ===========================================================================\nclass FuzzyMatcher {;\n constructor(rules) {\n this.rules = rules || DEFAULT_RULES;\n }\n\n getRuleFor(reqUrl) {\n let rule;\n\n const matchUrl = reqUrl.indexOf(\"?\") === -1 ? reqUrl + \"?\" : reqUrl;\n\n for (const testRule of this.rules) {\n if (matchUrl.match(testRule.match)) {\n rule = testRule;\n break;\n }\n }\n\n let fuzzyCanonUrl = reqUrl;\n\n if (rule && rule.fuzzyCanonReplace) {\n fuzzyCanonUrl = reqUrl.replace(rule.match, rule.fuzzyCanonReplace);\n }\n\n const split = rule && rule.split || \"?\";\n const inx = reqUrl.lastIndexOf(split);\n const prefix = inx > 0 ? reqUrl.slice(0, inx + split.length) : reqUrl;\n\n return {prefix, rule, fuzzyCanonUrl};\n }\n\n getFuzzyCanonWithArgs(reqUrl) {\n let { fuzzyCanonUrl, prefix, rule } = this.getRuleFor(reqUrl);\n\n if (fuzzyCanonUrl === reqUrl) {\n fuzzyCanonUrl = prefix;\n }\n\n if (rule && rule.args) {\n const fuzzUrl = new URL(fuzzyCanonUrl);\n const origUrl = new URL(reqUrl);\n const query = new URLSearchParams();\n for (const arg of rule.args[0]) {\n query.set(arg, origUrl.searchParams.get(arg) || \"\");\n }\n fuzzUrl.search = query.toString();\n return fuzzUrl.href;\n }\n\n return fuzzyCanonUrl;\n }\n\n fuzzyCompareUrls(reqUrl, results, matchedRule) {\n if (!results || !results.length) {\n return null;\n }\n\n if (matchedRule && matchedRule.replace !== undefined && matchedRule.match !== undefined) {\n const match = matchedRule.match;\n const replace = matchedRule.replace;\n const fuzzyReqUrl = reqUrl.replace(match, replace);\n\n const newResults = [];\n \n // find best match by regex\n for (const result of results) {\n const url = (typeof result === \"string\" ? result : result.url);\n \n const fuzzyMatchUrl = url.replace(match, replace);\n\n if (fuzzyReqUrl === fuzzyMatchUrl) {\n // exact match, return\n return result;\n }\n\n result.fuzzyMatchUrl = fuzzyMatchUrl;\n newResults.push(result);\n }\n\n results = newResults;\n reqUrl = fuzzyReqUrl;\n }\n\n return this.fuzzyBestMatchQuery(reqUrl, results, matchedRule);\n }\n\n fuzzyBestMatchQuery(reqUrl, results, rule) {\n try {\n reqUrl = new URL(reqUrl);\n } catch (e) {\n return 0.0;\n }\n\n const reqArgs = rule && rule.args && !rule.fuzzyArgs ? new Set(rule.args[0]) : null;\n\n let bestTotal = 0;\n let bestResult = null;\n\n const reqQuery = new URLSearchParams(reqUrl.search);\n\n for (const result of results) {\n // skip 204s and 304s from fuzzy matching (todo: reexamine)\n if (result.status === 204 || result.status === 304) {\n continue;\n }\n\n let url = (typeof result === \"string\" ? result : result.fuzzyMatchUrl || result.url);\n\n try {\n url = new URL(url);\n } catch (e) {\n continue;\n }\n\n const foundQuery = new URLSearchParams(url.search);\n let total = this.getMatch(reqQuery, foundQuery, reqArgs);\n total += this.getMatch(foundQuery, reqQuery, reqArgs);\n total /= 2.0;\n\n // subtract points for non-200 status codes to prefer 200\n if (result.status > 200) {\n total -= 0.01 * (result.status - 200);\n }\n\n //console.log('total: ' + total + ' ' + url.href + ' <=> ' + reqUrl);\n\n if (total > bestTotal) {\n bestTotal = total;\n bestResult = result;\n }\n }\n\n //console.log(\"best: \" + bestResult.url);\n\n //return {\"score\": bestTotal, \"result\": bestResult};\n return bestResult;\n }\n\n getMatch(reqQuery, foundQuery, reqArgs) {\n let score = 1.0;\n let total = 1.0;\n\n for (const [key, value] of reqQuery) {\n const foundValue = foundQuery.get(key);\n\n // if ksy is required, return 0 to skip this match\n if (reqArgs && reqArgs.has(key) && foundValue !== value) {\n return -1;\n }\n\n let weight;\n\n if (key[0] === '_') {\n weight = 1.0;\n } else {\n weight = 10.0;\n }\n\n if (foundValue !== null) {\n score += weight * 0.5;\n }\n\n const numValue = Number(value);\n const numFoundValue = Number(foundValue);\n\n total += weight;\n\n if (foundValue === value) {\n score += weight * value.length;\n } else if (foundValue === null) {\n score += 0.0;\n } else if (!isNaN(numValue) && !isNaN(numFoundValue)) {\n score += 10.0 - Math.log(Math.abs(numValue - numFoundValue) + 1);\n } else {\n // if (foundValue.length > value.length && foundValue.indexOf(\",\") >= 0 && foundValue.indexOf(value) >= 0) {\n // score += weight * value.length * 0.5;\n // }\n const minLen = Math.min(foundValue.length, value.length);\n const lev = js_levenshtein__WEBPACK_IMPORTED_MODULE_0___default()(foundValue, value);\n if (lev < minLen) {\n score += weight * (minLen - lev);\n }\n }\n }\n\n const result = score / total;\n //console.log('score: ' + result + \" \" + reqQuery + \" <-> \" + foundQuery);\n return result;\n }\n}\n\nconst fuzzyMatcher = new FuzzyMatcher();\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/fuzzymatcher.js?"); + +/***/ }), + +/***/ "../serviceworker/src/harloader.js": +/*!*****************************************!*\ + !*** ../serviceworker/src/harloader.js ***! + \*****************************************/ +/*! exports provided: HARLoader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HARLoader\", function() { return HARLoader; });\n/* harmony import */ var _baseparser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./baseparser */ \"../serviceworker/src/baseparser.js\");\n\n\n\n// ===========================================================================\nclass HARLoader extends _baseparser__WEBPACK_IMPORTED_MODULE_0__[\"BaseParser\"] {\n constructor(string_or_har) {\n super();\n this.har = string_or_har;\n this.pageRefs = {};\n }\n\n async load(db) {\n this.db = db;\n if (typeof this.har === \"string\") {\n this.har = JSON.parse(this.har);\n }\n\n this.parseEntries(this.har);\n\n this.parsePages(this.har);\n\n await this.finishIndexing();\n\n return {};\n }\n\n parsePages(har) {\n for (const page of har.log.pages) {\n if (!page.pageTimings || !page.pageTimings.onLoad) {\n continue;\n }\n\n let url;\n if (page.title && (page.title.startsWith(\"http:\") || page.title.startsWith(\"https:\"))) {\n url = page.title;\n } else {\n url = this.pageRefs[page.id];\n }\n\n const title = page.title || url;\n\n const date = page.startedDateTime;\n\n //this.pageList.push({ \"timestamp\": getTS(page.startedDateTime), \"title\": title, \"url\": url });\n this.addPage({url, date, title});\n }\n }\n\n parseEntries(har) {\n for (const entry of har.log.entries) {\n if (!entry.response.content || !entry.response.content.text) {\n console.log(\"Skipping: \" + entry.request.url);\n continue;\n }\n\n let payload = null;\n\n try {\n payload = Uint8Array.from(atob(entry.response.content.text), c => c.charCodeAt(0));\n } catch (e) {\n payload = entry.response.content.text;\n }\n\n console.log(\"Added: \" + entry.request.url);\n\n const ts = new Date(entry.startedDateTime).getTime();\n\n const respHeaders = {};\n\n for (const {name, value} of entry.response.headers) {\n respHeaders[name] = value;\n }\n\n this.addResource({url: entry.request.url,\n ts,\n status: entry.response.status,\n //statusText: entry.response.statusText,\n respHeaders,\n //reqHeaders,\n payload});\n\n if (entry.pageref && !this.pageRefs[entry.pageref]) {\n this.pageRefs[entry.pageref] = entry.request.url;\n }\n }\n }\n}\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/harloader.js?"); + +/***/ }), + +/***/ "../serviceworker/src/ipfs.js": +/*!************************************!*\ + !*** ../serviceworker/src/ipfs.js ***! + \************************************/ +/*! exports provided: IPFSClient, initIPFS */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IPFSClient\", function() { return IPFSClient; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initIPFS\", function() { return initIPFS; });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"../serviceworker/src/utils.js\");\n\n\n// ===========================================================================\nconst GC_INTERVAL = 600000;\n\nconst IPFS_CORE_JS = \"https://cdn.jsdelivr.net/npm/ipfs-core@0.3.0/dist/index.min.js\";\n\nlet client = null;\n\n// ===========================================================================\nclass IPFSClient\n{\n constructor(customPreload = false) {\n this.ipfs = null;\n this._initingIPFS = null;\n this.ipfsGC = null;\n\n this.customPreload = customPreload;\n this.preloadNodes = null;\n\n //this._currentPreload = null;\n }\n\n async initIPFS() {\n if (!this.ipfs) {\n try {\n if (!this._initingIPFS) {\n this._initingIPFS = this._doInitIPFS();\n }\n\n await this._initingIPFS;\n\n } catch (e) {\n console.warn(e);\n }\n }\n }\n\n async _doInitIPFS() {\n if (!IPFS_CORE_JS) {\n console.warn(\"Skipping IPFS init, no load URL\");\n return;\n }\n\n if (!self.IpfsCore && IPFS_CORE_JS) {\n const resp = await fetch(IPFS_CORE_JS);\n eval(await resp.text());\n }\n \n this.ipfs = await self.IpfsCore.create(this.initOptions);\n \n this.resetGC();\n\n if (this.customPreload) {\n //const allConfig = await this.ipfs.config.getAll();\n //this.preloadNodes = allConfig.Addresses.Delegates.map(x => multiAddToUri(x));\n this.preloadNodes = this.ipfsCustomPreloadURLs || [\n \"https://node0.preload.ipfs.io\",\n \"https://node1.preload.ipfs.io\",\n \"https://node2.preload.ipfs.io\",\n \"https://node3.preload.ipfs.io\",\n ];\n }\n }\n\n async restart() {\n await this.ipfs.stop();\n this._initingIPFS = null;\n this.ipfs = null;\n await this.initIPFS();\n }\n\n get initOptions() {\n let opts = {\n init: {emptyRepo: true},\n preload: {enabled: !this.customPreload}\n };\n\n // init from globally set self.ipfsOpts, if available\n try {\n opts = {...opts, ...self.ipfsOpts};\n } catch(e) {\n\n }\n\n return opts;\n }\n\n async runGC() {\n let count = 0;\n \n for await (const res of this.ipfs.repo.gc()) {\n count++;\n }\n console.log(`IPFS GC, Removed ${count} blocks`);\n }\n\n async resetGC() {\n if (this.ipfsGC) {\n clearInterval(this.ipfsGC);\n }\n \n this.ipfsGC = setInterval(() => this.runGC(), GC_INTERVAL);\n }\n\n async getFileSize(filename) {\n let name = null;\n let iter = null;\n\n // workaround as ipfs.ls() on single file is broken\n // if no dir, use get\n const inx = filename.lastIndexOf(\"/\");\n if (inx > 0) {\n const dir = filename.slice(0, inx);\n\n if (this.customPreload) {\n await this.cacheDirToPreload(dir);\n }\n\n iter = this.ipfs.ls(dir, {preload: false});\n name = filename.slice(inx + 1);\n } else {\n if (this.customPreload) {\n await this.cacheDirToPreload(filename);\n }\n\n iter = this.ipfs.get(filename, {preload: false});\n name = filename;\n }\n\n for await (const file of iter) {\n if (file.name == name && file.type === \"file\") {\n return file.size;\n }\n }\n\n return null;\n }\n\n async cat(filename, opts) {\n this.resetGC();\n\n if (this.customPreload) {\n await this.preloadCat(filename, opts);\n }\n return this.ipfs.cat(filename, opts);\n }\n\n getPreloadURL() {\n if (!this.preloadNodes || !this.preloadNodes.length) {\n return null;\n }\n\n const inx = parseInt(Math.random() * this.preloadNodes.length);\n return this.preloadNodes[inx];\n }\n\n async cacheDirToPreload(hash, timeout = 20000, retries = 5) {\n for (let i = 0; i < retries; i++) {\n const preloadBaseUrl = this.getPreloadURL();\n if (!preloadBaseUrl) {\n return;\n }\n\n const params = new URLSearchParams({\"arg\": hash});\n const url = `${preloadBaseUrl}/api/v0/ls?${params}`;\n\n const abort = new AbortController();\n const signal = abort.signal;\n\n try {\n const resp = await Promise.race([fetch(url, {signal, method: \"HEAD\"}), Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"sleep\"])(timeout)]);\n // if got response, success and can return\n if (resp) {\n return true;\n }\n\n abort.abort();\n\n // if timed out establishing connection, (sleep finished first), likely no transport\n // attempt to restart ipfs and try again\n await this.restart();\n await Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"sleep\"])(500);\n\n } catch (e) {\n console.log(\"try again\");\n await Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"sleep\"])(500);\n //this._currentPreload = null;\n }\n }\n\n return false;\n }\n\n preloadCat(filename, opts) {\n const preloadBaseUrl = this.getPreloadURL();\n if (!preloadBaseUrl) {\n return;\n }\n\n const arg = filename;\n const {offset, length} = opts;\n\n const params = new URLSearchParams({arg, offset, length});\n\n const url = `${preloadBaseUrl}/api/v0/cat?${params}`;\n\n return fetch(url, {method: \"HEAD\"});\n }\n}\n\n// ===========================================================================\nasync function initIPFS()\n{\n if (!client) {\n client = new IPFSClient(!!self.ipfsCustomPreload);\n }\n await client.initIPFS();\n return client;\n}\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/ipfs.js?"); + +/***/ }), + +/***/ "../serviceworker/src/loaders.js": +/*!***************************************!*\ + !*** ../serviceworker/src/loaders.js ***! + \***************************************/ +/*! exports provided: CollectionLoader, WorkerLoader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CollectionLoader\", function() { return CollectionLoader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WorkerLoader\", function() { return WorkerLoader; });\n/* harmony import */ var _archivedb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./archivedb.js */ \"../serviceworker/src/archivedb.js\");\n/* harmony import */ var _remotearchivedb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./remotearchivedb */ \"../serviceworker/src/remotearchivedb.js\");\n/* harmony import */ var _ziparchive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ziparchive */ \"../serviceworker/src/ziparchive.js\");\n/* harmony import */ var _harloader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./harloader */ \"../serviceworker/src/harloader.js\");\n/* harmony import */ var _wbnloader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./wbnloader */ \"../serviceworker/src/wbnloader.js\");\n/* harmony import */ var _warcloader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./warcloader */ \"../serviceworker/src/warcloader.js\");\n/* harmony import */ var _cdxloader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cdxloader */ \"../serviceworker/src/cdxloader.js\");\n/* harmony import */ var _blockloaders__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./blockloaders */ \"../serviceworker/src/blockloaders.js\");\n/* harmony import */ var _remoteproxy__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./remoteproxy */ \"../serviceworker/src/remoteproxy.js\");\n/* harmony import */ var idb_with_async_ittr_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! idb/with-async-ittr.js */ \"../serviceworker/node_modules/idb/with-async-ittr.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils.js */ \"../serviceworker/src/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nself.interruptLoads = {};\n\n\n// ===========================================================================\nclass CollectionLoader\n{\n constructor() {\n this.colldb = null;\n this.root = null;\n this.checkIpfs = true;\n this._init_db = this._initDB();\n }\n\n async _initDB() {\n this.colldb = await Object(idb_with_async_ittr_js__WEBPACK_IMPORTED_MODULE_9__[\"openDB\"])(\"collDB\", 1, {\n upgrade: (db, oldV, newV, tx) => {\n db.createObjectStore(\"colls\", {keyPath: \"name\"});\n }\n });\n }\n\n async loadAll(dbColls) {\n await this._init_db;\n\n if (dbColls) {\n for (const extraColl of dbColls.split(\",\")) {\n const parts = extraColl.split(\":\");\n if (parts.length === 2) {\n const config = {dbname: parts[1], sourceName: parts[1], decode: false};\n const collData = {name: parts[0], type: \"archive\", config};\n console.log(\"Adding Coll: \" + JSON.stringify(collData));\n await this.colldb.put(\"colls\", collData);\n }\n }\n }\n\n try {\n const allColls = await this.listAll();\n\n const promises = allColls.map((data) => this._initColl(data));\n \n await Promise.all(promises);\n } catch (e) {\n console.warn(e.toString());\n }\n\n return true;\n }\n\n async listAll() {\n await this._init_db;\n return await this.colldb.getAll(\"colls\");\n }\n\n async loadColl(name) {\n await this._init_db;\n const data = await this.colldb.get(\"colls\", name);\n if (!data) {\n return null;\n }\n\n return await this._initColl(data);\n }\n\n async deleteColl(name) {\n await this._init_db;\n const data = await this.colldb.get(\"colls\", name);\n if (!data) {\n return false;\n }\n\n if (data.config.dbname) {\n try {\n await Object(idb_with_async_ittr_js__WEBPACK_IMPORTED_MODULE_9__[\"deleteDB\"])(data.config.dbname, {\n blocked(reason) {\n console.log(`Unable to delete ${data.config.dbname}: ${reason}`);\n }\n });\n } catch(e) {\n console.warn(e);\n return false;\n }\n }\n\n await this.colldb.delete(\"colls\", name);\n\n return true;\n }\n\n async updateAuth(name, newHeaders) {\n await this._init_db;\n const data = await this.colldb.get(\"colls\", name);\n if (!data) {\n return false;\n }\n data.config.headers = newHeaders;\n await this.colldb.put(\"colls\", data);\n return true;\n }\n\n async updateMetadata(name, newMetadata) {\n await this._init_db;\n const data = await this.colldb.get(\"colls\", name);\n if (!data) {\n return false;\n }\n data.config.metadata = {...data.config.metadata, ...newMetadata};\n\n await this.colldb.put(\"colls\", data);\n return data.config.metadata;\n }\n\n async updateSize(name, fullSize, dedupSize) {\n await this._init_db;\n const data = await this.colldb.get(\"colls\", name);\n if (!data) {\n return false;\n }\n\n const metadata = data.config.metadata;\n metadata.fullSize = (metadata.fullSize || 0) + fullSize;\n metadata.size = (metadata.size || 0) + dedupSize;\n await this.colldb.put(\"colls\", data);\n }\n\n async initNewColl(metadata, extraConfig = {}) {\n await this._init_db;\n const id = Object(_utils_js__WEBPACK_IMPORTED_MODULE_10__[\"randomId\"])();\n const dbname = \"db:\" + id;\n const sourceUrl = \"local://\" + id;\n const decode = false;\n const ctime = new Date().getTime();\n\n const data = {\n name: id,\n type: \"archive\",\n config: {\n dbname,\n ctime,\n decode,\n metadata,\n sourceUrl,\n extraConfig,\n }\n }\n\n const coll = await this._initColl(data);\n await this.colldb.put(\"colls\", data);\n return coll;\n }\n\n async _initColl(data) {\n const store = await this._initStore(data.type, data.config);\n\n const name = data.name;\n const config = data.config;\n\n if (data.config.root) {\n this.root = name;\n }\n\n return this._createCollection({name, store, config});\n }\n\n async _initStore(type, config) {\n let sourceLoader = null;\n let store = null;\n\n switch (type) {\n case \"archive\":\n store = new _archivedb_js__WEBPACK_IMPORTED_MODULE_0__[\"ArchiveDB\"](config.dbname);\n break;\n\n case \"remotesource\":\n sourceLoader = Object(_blockloaders__WEBPACK_IMPORTED_MODULE_7__[\"createLoader\"])({\n url: config.loadUrl,\n headers: config.headers,\n size: config.size,\n extra: config.extra\n });\n store = new _remotearchivedb__WEBPACK_IMPORTED_MODULE_1__[\"RemoteSourceArchiveDB\"](config.dbname, sourceLoader, config.noCache);\n break;\n\n case \"remoteprefix\":\n store = new _remotearchivedb__WEBPACK_IMPORTED_MODULE_1__[\"RemotePrefixArchiveDB\"](config.dbname, config.remotePrefix, config.headers, config.noCache);\n break; \n\n case \"remotezip\":\n sourceLoader = Object(_blockloaders__WEBPACK_IMPORTED_MODULE_7__[\"createLoader\"])({\n url: config.loadUrl || config.sourceUrl,\n headers: config.headers,\n extra: config.extra\n });\n store = new _ziparchive__WEBPACK_IMPORTED_MODULE_2__[\"ZipRemoteArchiveDB\"](config.dbname, sourceLoader, config.extraConfig, config.noCache, config);\n break;\n\n case \"remoteproxy\":\n //TODO remove?\n store = new _remoteproxy__WEBPACK_IMPORTED_MODULE_8__[\"RemoteProxySource\"](config);\n break;\n\n case \"remotewarcproxy\":\n store = new _remoteproxy__WEBPACK_IMPORTED_MODULE_8__[\"RemoteWARCProxy\"](config);\n break;\n\n case \"live\":\n store = new _remoteproxy__WEBPACK_IMPORTED_MODULE_8__[\"LiveAccess\"](config);\n break;\n }\n\n if (!store) {\n console.log(\"no store found: \" + type);\n return null;\n }\n\n if (store.initing) {\n await store.initing;\n }\n\n return store;\n }\n\n _createCollection(opts) {\n return opts;\n }\n}\n\n// ===========================================================================\nclass WorkerLoader extends CollectionLoader\n{\n constructor(worker) {\n super();\n this.registerListener(worker);\n }\n\n async hasCollection(name) {\n await this._init_db;\n\n return await this.colldb.getKey(\"colls\", name) != null;\n }\n\n registerListener(worker) {\n worker.addEventListener(\"message\", event => this._handleMessage(event));\n }\n\n async _handleMessage(event) {\n await this._init_db;\n\n const client = event.source || self;\n\n switch (event.data.msg_type) {\n case \"addColl\":\n {\n const name = event.data.name; \n\n const progressUpdate = (percent, error, currentSize, totalSize) => {\n client.postMessage({\n \"msg_type\": \"collProgress\",\n name,\n percent,\n error,\n currentSize,\n totalSize\n });\n };\n\n let res;\n\n try {\n if (await this.hasCollection(name)) {\n if (!event.data.skipExisting) {\n await this.deleteColl(name);\n res = await this.addCollection(event.data, progressUpdate);\n } else {\n res = true;\n //coll = this.collections[name];\n //return;\n }\n } else {\n res = await this.addCollection(event.data, progressUpdate);\n }\n \n if (!res) {\n return;\n }\n } catch (e) {\n console.warn(e);\n progressUpdate(0, \"An unexpected error occured: \" + e.toString());\n return;\n }\n\n client.postMessage({\n \"msg_type\": \"collAdded\",\n //\"prefix\": coll.prefix,\n \"name\": name\n });\n\n //this.doListAll(client);\n break;\n }\n\n case \"cancelLoad\":\n {\n const name = event.data.name;\n\n const p = new Promise((resolve) => self.interruptLoads[name] = resolve);\n\n await p;\n\n await this.deleteColl(name);\n\n delete self.interruptLoads[name];\n\n break;\n }\n\n case \"removeColl\":\n {\n const name = event.data.name;\n\n if (await this.hasCollection(name)) {\n await this.deleteColl(name);\n this.doListAll(client);\n }\n break;\n }\n\n case \"listAll\":\n this.doListAll(client);\n break;\n }\n }\n\n async doListAll(client) {\n const msgData = [];\n const allColls = await this.listAll();\n\n for (const coll of allColls) {\n\n //const pageList = await coll.store.getAllPages();\n \n msgData.push({\n \"name\": coll.name,\n \"prefix\": coll.name,\n \"pageList\": [],\n \"sourceName\": coll.config.sourceName\n });\n }\n client.postMessage({ \"msg_type\": \"listAll\", \"colls\": msgData });\n }\n \n async addCollection(data, progressUpdate) {\n const name = data.name;\n\n let type = null;\n let config = {root: data.root || false};\n let db = null;\n\n const file = data.file;\n\n if (!file || !file.sourceUrl) {\n progressUpdate(0, `Invalid Load Request`);\n return false;\n }\n\n if (file.sourceUrl.startsWith(\"proxy:\")) {\n config.sourceUrl = file.sourceUrl.slice(\"proxy:\".length);\n config.extraConfig = data.extraConfig;\n config.topTemplateUrl = data.topTemplateUrl;\n type = data.type || \"remotewarcproxy\";\n\n db = await this._initStore(type, config);\n\n } else {\n let loader = null;\n\n type = \"archive\";\n config.dbname = \"db:\" + name;\n\n let loadUrl = file.loadUrl || file.sourceUrl;\n\n if (!loadUrl.match(/[\\w]+:\\/\\//)) {\n loadUrl = new URL(loadUrl, self.location.href).href;\n }\n\n config.decode = true;\n config.onDemand = false;\n config.loadUrl = loadUrl;\n config.sourceUrl = file.sourceUrl;\n\n config.sourceName = file.name || file.sourceUrl;\n\n // parse to strip out query and fragment\n try {\n if (config.sourceName.match(/https?:\\/\\//)) {\n config.sourceName = new URL(config.sourceName).pathname;\n }\n } catch (e) {\n\n }\n config.sourceName = config.sourceName.slice(config.sourceName.lastIndexOf(\"/\") + 1);\n\n config.headers = file.headers;\n config.size = typeof(file.size) === \"number\" ? file.size : null;\n config.extra = file.extra;\n\n if (config.loadUrl.startsWith(\"file://\") && !file.blob && !config.extra) {\n if (this._fileHandles && this._fileHandles[config.sourceUrl]) {\n config.extra = {fileHandle: this._fileHandles[config.sourceUrl]};\n delete this._fileHandles[config.sourceUrl];\n } else {\n progressUpdate(0, \"missing_local_file\");\n return;\n }\n }\n\n config.extraConfig = data.extraConfig;\n config.noCache = file.noCache;\n\n const sourceLoader = Object(_blockloaders__WEBPACK_IMPORTED_MODULE_7__[\"createLoader\"])({\n url: loadUrl,\n headers: file.headers,\n size: file.size,\n extra: config.extra,\n blob: file.blob\n });\n\n let tryHeadOnly = false;\n\n if (config.sourceName.endsWith(\".wacz\") || config.sourceName.endsWith(\".zip\")) {\n db = new _ziparchive__WEBPACK_IMPORTED_MODULE_2__[\"ZipRemoteArchiveDB\"](config.dbname, sourceLoader, config.extraConfig, config.noCache, config);\n type = \"remotezip\";\n // is its own loader\n loader = db;\n\n // do HEAD request only\n tryHeadOnly = true;\n }\n \n let {abort, response} = await sourceLoader.doInitialFetch(tryHeadOnly);\n const stream = response.body;\n\n if (!sourceLoader.isValid) {\n const text = sourceLoader.length <= 1000 ? await response.text() : \"\";\n progressUpdate(0, `\\\nSorry, this URL could not be loaded.\nMake sure this is a valid URL and you have access to this file.\nStatus: ${response.status} ${response.statusText}\nError Details:\n${text}`);\n if (abort) {\n abort.abort();\n }\n return false;\n }\n\n if (!sourceLoader.length) {\n progressUpdate(0, `\\\nSorry, this URL could not be loaded because the size of the file is not accessible.\nMake sure this is a valid URL and you have access to this file.`);\n if (abort) {\n abort.abort();\n }\n return false;\n }\n\n const contentLength = sourceLoader.length;\n\n if (config.sourceName.endsWith(\".warc\") || config.sourceName.endsWith(\".warc.gz\")) {\n if (contentLength < _utils_js__WEBPACK_IMPORTED_MODULE_10__[\"MAX_FULL_DOWNLOAD_SIZE\"] || !sourceLoader.canLoadOnDemand) {\n loader = new _warcloader__WEBPACK_IMPORTED_MODULE_5__[\"WARCLoader\"](stream, abort, name);\n } else {\n loader = new _cdxloader__WEBPACK_IMPORTED_MODULE_6__[\"CDXFromWARCLoader\"](stream, abort, name);\n type = \"remotesource\";\n db = new _remotearchivedb__WEBPACK_IMPORTED_MODULE_1__[\"RemoteSourceArchiveDB\"](config.dbname, sourceLoader, config.noCache);\n }\n\n } else if (config.sourceName.endsWith(\".cdxj\") || config.sourceName.endsWith(\".cdx\")) {\n config.remotePrefix = data.remotePrefix || loadUrl.slice(0, loadUrl.lastIndexOf(\"/\") + 1);\n loader = new _cdxloader__WEBPACK_IMPORTED_MODULE_6__[\"CDXLoader\"](stream, abort, name);\n type = \"remoteprefix\";\n db = new _remotearchivedb__WEBPACK_IMPORTED_MODULE_1__[\"RemotePrefixArchiveDB\"](config.dbname, config.remotePrefix, config.headers, config.noCache);\n \n } else if (config.sourceName.endsWith(\".wbn\")) {\n //todo: fix\n loader = new _wbnloader__WEBPACK_IMPORTED_MODULE_4__[\"WBNLoader\"](await response.arrayBuffer());\n config.decode = false;\n\n } else if (config.sourceName.endsWith(\".har\")) {\n //todo: fix\n loader = new _harloader__WEBPACK_IMPORTED_MODULE_3__[\"HARLoader\"](await response.json());\n config.decode = false;\n }\n\n if (!loader) {\n progressUpdate(0, `The ${config.sourceName} is not a known archive format that could be loaded.`);\n if (abort) {\n abort.abort();\n }\n return false;\n }\n\n if (!db) {\n db = new _archivedb_js__WEBPACK_IMPORTED_MODULE_0__[\"ArchiveDB\"](config.dbname);\n }\n await db.initing;\n\n config.onDemand = sourceLoader.canLoadOnDemand;\n\n try {\n config.metadata = await loader.load(db, progressUpdate, contentLength);\n } catch (e) {\n if (!(e instanceof _utils_js__WEBPACK_IMPORTED_MODULE_10__[\"Canceled\"])) {\n progressUpdate(0, `Unexpected Loading Error: ${e.toString()}`);\n }\n return false;\n }\n\n if (!config.metadata.size) {\n config.metadata.size = contentLength;\n }\n }\n\n config.ctime = new Date().getTime();\n\n const collData = {name, type, config};\n await this.colldb.add(\"colls\", collData);\n collData.store = db;\n return collData;\n }\n}\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/loaders.js?"); + +/***/ }), + +/***/ "../serviceworker/src/remotearchivedb.js": +/*!***********************************************!*\ + !*** ../serviceworker/src/remotearchivedb.js ***! + \***********************************************/ +/*! exports provided: OnDemandPayloadArchiveDB, RemotePrefixArchiveDB, RemoteSourceArchiveDB, SingleRecordWARCLoader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OnDemandPayloadArchiveDB\", function() { return OnDemandPayloadArchiveDB; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemotePrefixArchiveDB\", function() { return RemotePrefixArchiveDB; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoteSourceArchiveDB\", function() { return RemoteSourceArchiveDB; });\n/* harmony import */ var _archivedb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./archivedb */ \"../serviceworker/src/archivedb.js\");\n/* harmony import */ var _warcloader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./warcloader */ \"../serviceworker/src/warcloader.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SingleRecordWARCLoader\", function() { return _warcloader__WEBPACK_IMPORTED_MODULE_1__[\"SingleRecordWARCLoader\"]; });\n\n/* harmony import */ var warcio__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! warcio */ \"../serviceworker/node_modules/warcio/main.js\");\n/* harmony import */ var _blockloaders__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./blockloaders */ \"../serviceworker/src/blockloaders.js\");\n\n\n\n\n\n\n\n// ===========================================================================\nclass OnDemandPayloadArchiveDB extends _archivedb__WEBPACK_IMPORTED_MODULE_0__[\"ArchiveDB\"]\n{\n constructor(name, noCache = false) {\n super(name);\n this.noCache = noCache;\n\n this.useRefCounts = !noCache;\n }\n\n async loadRecordFromSource(cdx) {\n const responseStream = await this.loadSource(cdx.source);\n\n const loader = new _warcloader__WEBPACK_IMPORTED_MODULE_1__[\"SingleRecordWARCLoader\"](responseStream);\n\n return await loader.load();\n }\n\n async loadPayload(cdx, depth = 0) {\n let payload = await super.loadPayload(cdx);\n if (payload) {\n if (cdx.respHeaders && cdx.mime !== \"warc/revisit\") {\n return payload;\n }\n }\n\n const remote = await this.loadRecordFromSource(cdx);\n \n if (!remote) {\n console.log(`No WARC Record Loaded for: ${cdx.url}`);\n return null;\n }\n\n if (remote.url !== cdx.url) {\n console.log(`Wrong url: expected ${cdx.url}, got ${remote.url}`);\n return null;\n }\n\n if (remote.ts !== cdx.ts) {\n const rounded = Math.floor(remote.ts / 1000) * 1000;\n if (rounded !== cdx.ts) {\n console.log(`Wrong timestamp: expected ${cdx.ts}, got ${remote.ts}`);\n return null;\n }\n }\n\n if (remote.digest !== cdx.digest) {\n console.log(`Wrong digest: expected ${cdx.digest}, got ${remote.digest}`);\n //return null;\n }\n\n // Revisit\n if (remote.origURL) {\n const origResult = await this.lookupUrl(remote.origURL, remote.origTS, {noRevisits: true});\n if (!origResult) {\n return null;\n }\n\n if (!payload) {\n if (depth < 2) {\n payload = await this.loadPayload(origResult, depth + 1);\n } else {\n console.warn(\"Avoiding revisit lookup loop for: \" + JSON.stringify(remote));\n }\n if (!payload) {\n return null;\n }\n }\n\n cdx.respHeaders = origResult.respHeaders;\n cdx.mime = origResult.mime;\n\n if (origResult.extraOpts) {\n cdx.extraOpts = origResult.extraOpts;\n }\n\n // update revisit data if cacheing\n if (!this.noCache) {\n // don't store in resources db\n delete cdx.payload;\n\n try {\n await this.db.put(\"resources\", cdx);\n } catch(e) {\n console.log(e);\n }\n\n // cache here only if somehow the digests don't match (wrong digest from previous versions?)\n if (origResult.digest !== remote.digest && !payload[Symbol.asyncIterator]) {\n await this.commitPayload(payload, remote.digest);\n }\n }\n\n return payload;\n }\n\n const digest = remote.digest;\n\n if (!this.noCache && remote.reader && digest) {\n remote.reader = new PayloadBufferingReader(this, remote.reader, digest, cdx.url);\n }\n\n payload = remote.payload;\n\n if (!payload && !remote.reader) {\n return null;\n }\n\n // Update payload if cacheing\n try {\n if (payload && !this.noCache) {\n await this.commitPayload(payload, digest);\n }\n } catch(e) {\n console.warn(`Payload Update Error: ${cdx.url}`);\n console.warn(e);\n }\n\n // Update resources if headers or digest missing\n if (!cdx.respHeaders || !cdx.digest) {\n cdx.respHeaders = remote.respHeaders;\n cdx.digest = digest;\n if (remote.extraOpts) {\n cdx.extraOpts = remote.extraOpts;\n }\n\n if (!this.noCache) {\n try {\n await this.db.put(\"resources\", cdx);\n } catch (e) {\n console.warn(`Resource Update Error: ${cdx.url}`);\n console.warn(e);\n }\n }\n }\n\n return payload ? payload : remote.reader;\n }\n\n async commitPayload(payload, digest) {\n if (!payload || payload.length === 0) {\n return;\n }\n\n const tx = this.db.transaction([\"payload\", \"digestRef\"], \"readwrite\");\n\n try {\n //const payloadEntry = await tx.objectStore(\"payload\").get(digest);\n //payloadEntry.payload = payload;\n tx.objectStore(\"payload\").put({payload, digest});\n\n if (this.useRefCounts) {\n const ref = await tx.objectStore(\"digestRef\").get(digest);\n if (ref) {\n ref.size = payload.length;\n tx.objectStore(\"digestRef\").put(ref);\n }\n }\n\n await tx.done;\n\n } catch (e) {\n console.warn('Payload Commit Error: ' + e);\n }\n }\n}\n\n\n// ===========================================================================\nclass RemoteSourceArchiveDB extends OnDemandPayloadArchiveDB\n{\n constructor(name, loader, noCache = false) {\n super(name, noCache);\n\n this.loader = loader;\n }\n\n updateHeaders(headers) {\n this.loader.headers = headers;\n }\n\n async loadSource(source) {\n const { start, length } = source;\n\n return await this.loader.getRange(start, length, true);\n }\n}\n\n\n// ===========================================================================\nclass RemotePrefixArchiveDB extends OnDemandPayloadArchiveDB\n{\n constructor(name, remoteUrlPrefix, headers, noCache = false) {\n super(name, noCache);\n\n this.remoteUrlPrefix = remoteUrlPrefix;\n this.headers = headers;\n }\n\n updateHeaders(headers) {\n this.headers = headers; \n }\n\n async loadSource(source) {\n const { start, length } = source;\n\n const headers = new Headers(this.headers);\n const url = new URL(source.path, this.remoteUrlPrefix).href;\n\n const loader = Object(_blockloaders__WEBPACK_IMPORTED_MODULE_3__[\"createLoader\"])(url, headers);\n\n return await loader.getRange(start, length, true);\n }\n}\n\n\n// ===========================================================================\nclass PayloadBufferingReader extends warcio__WEBPACK_IMPORTED_MODULE_2__[\"BaseAsyncIterReader\"]\n{\n constructor(db, reader, digest, url = \"\") {\n super();\n this.db = db;\n this.reader = reader;\n\n this.digest = digest;\n this.url = url;\n\n this.chunks = [];\n this.size = 0;\n this.fullbuff = null;\n\n this.commit = true;\n this.alreadyRead = false;\n }\n\n setLimitSkip(limit = -1, skip = 0) {\n if (limit != -1 || skip > 0) {\n this.commit = false;\n }\n this.reader.setLimitSkip(limit, skip);\n }\n\n async* [Symbol.asyncIterator]() {\n if (this.alreadyRead) {\n return;\n }\n\n for await (const chunk of this.reader) {\n this.chunks.push(chunk);\n this.size += chunk.byteLength;\n\n yield chunk;\n }\n\n this.fullbuff = warcio__WEBPACK_IMPORTED_MODULE_2__[\"BaseAsyncIterReader\"].concatChunks(this.chunks, this.size);\n\n // if limit is not 0, didn't consume expected amount... something likely wrong\n if (this.reader.limit !== 0) {\n console.warn(`Expected payload not consumed, ${this.reader.limit} bytes left`);\n } else if (this.commit) {\n await this.db.commitPayload(this.fullbuff, this.digest);\n }\n\n this.chunks = [];\n this.alreadyRead = true;\n }\n\n async readFully() {\n for await (const chunk of this);\n return this.fullbuff;\n }\n}\n\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/remotearchivedb.js?"); + +/***/ }), + +/***/ "../serviceworker/src/remoteproxy.js": +/*!*******************************************!*\ + !*** ../serviceworker/src/remoteproxy.js ***! + \*******************************************/ +/*! exports provided: RemoteWARCProxy, RemoteProxySource, LiveAccess */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoteWARCProxy\", function() { return RemoteWARCProxy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoteProxySource\", function() { return RemoteProxySource; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LiveAccess\", function() { return LiveAccess; });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ \"../serviceworker/src/utils.js\");\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./response */ \"../serviceworker/src/response.js\");\n/* harmony import */ var _fuzzymatcher_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fuzzymatcher.js */ \"../serviceworker/src/fuzzymatcher.js\");\n/* harmony import */ var warcio__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! warcio */ \"../serviceworker/node_modules/warcio/main.js\");\n\n\n\n\n\n\n\n\nconst EXTRACT_TS = /(?:([\\d]+)[^\\/]*\\/)?(http.*)/;\n\n\n// ===========================================================================\nclass RemoteWARCProxy {\n constructor(config) {\n this.sourceUrl = config.sourceUrl;\n this.type = config.extraConfig && config.extraConfig.sourceType || \"kiwix\";\n this.notFoundPageUrl = config.extraConfig && config.extraConfig.notFoundPageUrl;\n }\n\n async getAllPages() {\n return [];\n }\n\n async getResource(request, prefix, event) {\n const { url, headers } = resolveRequestParams(request, prefix);\n let reqHeaders = headers;\n\n if (this.type === \"kiwix\") {\n let headersData = await this.resolveHeaders(url);\n\n if (!headersData) {\n const newUrl = _fuzzymatcher_js__WEBPACK_IMPORTED_MODULE_2__[\"fuzzyMatcher\"].getFuzzyCanonWithArgs(url);\n if (newUrl !== url) {\n headersData = await this.resolveHeaders(newUrl);\n }\n }\n\n if (!headersData) {\n\n // use custom error page for navigate events\n if (this.notFoundPageUrl && request.request.mode === \"navigate\") {\n const resp = await fetch(this.notFoundPageUrl);\n // load 'not found' page template\n if (resp.status === 200) {\n const headers = {\"Content-Type\": \"text/html\"};\n const text = await resp.text();\n return new Response(text.replace(\"$URL\", url), {status: 404, headers});\n }\n }\n\n return null;\n }\n\n let { headers, encodedUrl, date, status, statusText, hasPayload } = headersData;\n\n if (reqHeaders.has(\"Range\")) {\n const range = reqHeaders.get(\"Range\");\n // ensure uppercase range to avoid bug in kiwix-serve\n reqHeaders = {\"Range\": range};\n }\n\n let payload = null;\n\n let response = null;\n\n if (hasPayload) {\n response = await fetch(this.sourceUrl + \"A/\" + encodedUrl, {headers: reqHeaders});\n\n if (response.body) {\n payload = new warcio__WEBPACK_IMPORTED_MODULE_3__[\"AsyncIterReader\"](response.body.getReader(), false);\n }\n\n if (response.status === 206) {\n status = 206;\n statusText = \"Partial Content\";\n headers.set(\"Content-Length\", response.headers.get(\"Content-Length\"));\n headers.set(\"Content-Range\", response.headers.get(\"Content-Range\"));\n headers.set(\"Accept-Ranges\", \"bytes\");\n }\n }\n\n if (!payload) {\n payload = new Uint8Array([]);\n }\n\n if (!date) {\n date = new Date();\n }\n\n if (!headers) {\n headers = new Headers();\n }\n\n const isLive = false;\n const noRW = false;\n\n return new _response__WEBPACK_IMPORTED_MODULE_1__[\"ArchiveResponse\"]({payload, status, statusText, headers, url, date, noRW, isLive});\n }\n }\n\n async resolveHeaders(url) {\n const urlNoScheme = url.slice(url.indexOf(\"//\") + 2);\n\n // need to escape utf-8, then % encode the entire string\n let encodedUrl = encodeURI(urlNoScheme);\n encodedUrl = encodeURIComponent(urlNoScheme);\n\n let headersResp = await fetch(this.sourceUrl + \"H/\" + encodedUrl);\n\n if (headersResp.status !== 200) {\n return null;\n }\n\n let headers = null;\n let date = null;\n let status = null;\n let statusText = null;\n let hasPayload = false;\n\n try {\n const record = await warcio__WEBPACK_IMPORTED_MODULE_3__[\"WARCParser\"].parse(headersResp.body);\n\n if (record.warcType === \"revisit\") {\n const warcRevisitTarget = record.warcHeaders.headers.get(\"WARC-Refers-To-Target-URI\");\n if (warcRevisitTarget && warcRevisitTarget !== url) {\n return await this.resolveHeaders(warcRevisitTarget);\n }\n }\n \n date = new Date(record.warcDate);\n\n if (record.httpHeaders) {\n headers = record.httpHeaders.headers;\n status = Number(record.httpHeaders.statusCode);\n statusText = record.httpHeaders.statusText;\n hasPayload = record.httpHeaders.headers.get(\"Content-Length\") !== \"0\";\n } else if (record.warcType === \"resource\") {\n headers = new Headers();\n headers.set(\"Content-Type\", record.warcContentType);\n headers.set(\"Content-Length\", record.warcContentLength);\n status = 200;\n statusText = \"OK\";\n hasPayload = record.warcContentLength > 0;\n }\n\n if (!status) {\n status = 200;\n }\n\n } catch (e) {\n console.warn(e);\n console.warn(\"Ignoring headers, error parsing headers response for: \" + url);\n }\n\n return {encodedUrl, headers, date, status, statusText, hasPayload};\n }\n}\n\n\n// ===========================================================================\nclass RemoteProxySource {\n\n constructor(remoteInfo) {\n this.replayPrefix = remoteInfo.replayPrefix;\n this.idMod = (remoteInfo.idMod !== undefined ? remoteInfo.idMod : \"id_\");\n this.redirMod = (remoteInfo.redirMod !== undefined ? remoteInfo.redirMod : \"mp_\");\n\n this.redirectMode = (this.idMod === this.redirMod) ? \"follow\" : \"manual\";\n }\n\n async getAllPages() {\n return [];\n }\n\n getUrl(request, mod) {\n let url = this.replayPrefix;\n if (mod || request.timestamp) {\n url += request.timestamp + mod + \"/\";\n }\n return url + request.url;\n }\n\n async getResource(request, prefix, event) {\n let response = await fetch(this.getUrl(request, this.idMod),\n {\n credentials: 'same-origin',\n redirect: this.redirectMode,\n mode: 'cors'\n });\n\n if (response.status >= 400 && !response.headers.get(\"memento-datetime\")) {\n return null;\n }\n\n const redirRes = await this.getRedirect(request, response, prefix);\n\n let timestamp = null;\n let noRW = false;\n\n if (redirRes) {\n response = Response.redirect(redirRes.path, 307);\n noRW = true;\n timestamp = redirRes.timestamp;\n } else {\n timestamp = request.timestamp;\n }\n\n // todo: get url from Link: header?\n const url = request.url;\n\n const date = (timestamp ? Object(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"tsToDate\"])(timestamp) : new Date());\n\n return _response__WEBPACK_IMPORTED_MODULE_1__[\"ArchiveResponse\"].fromResponse({url, response, date, noRW});\n }\n\n async getRedirect(request, response, prefix) {\n // handle redirects by following\n if (response.type === \"opaqueredirect\") {\n response = await fetch(this.getUrl(request, this.redirMod),\n {\n credentials: 'same-origin',\n redirect: 'follow',\n mode: 'cors'\n });\n } else if (!response.redirected) {\n return null;\n }\n\n const inx = response.url.indexOf(this.replayPrefix) + this.replayPrefix.length;\n\n const redirOrig = response.url.slice(inx);\n\n const m = redirOrig.match(EXTRACT_TS);\n\n if (m) {\n return {timestamp: m[1],\n path: prefix + m[1] + \"mp_/\" + m[2]}\n } else {\n return {path: prefix + redirOrig};\n }\n }\n}\n\n\n// ===========================================================================\nclass LiveAccess {\n constructor(config) {\n const extraConfig = config.extraConfig || {};\n\n this.prefix = extraConfig.prefix || \"\";\n this.proxyPathOnly = extraConfig.proxyPathOnly || false;\n this.isLive = extraConfig.isLive !== undefined ? extraConfig.isLive : true;\n this.archivePrefix = extraConfig.archivePrefix || \"\";\n }\n\n async getAllPages() {\n return [];\n }\n\n async getResource(request, prefix, event) {\n\n const { headers, credentials, url} = resolveRequestParams(request, prefix);\n\n let fetchUrl;\n\n if (this.proxyPathOnly) {\n const parsedUrl = new URL(url);\n fetchUrl = this.prefix + parsedUrl.pathname + parsedUrl.search;\n } else if (this.isLive || !request.timestamp) {\n fetchUrl = this.prefix + url;\n } else {\n fetchUrl = this.prefix + this.archivePrefix + request.timestamp + \"id_/\" + url;\n }\n\n const response = await fetch(fetchUrl,\n {method: request.request.method,\n body: request.request.body,\n headers,\n credentials,\n mode: 'cors',\n redirect: 'follow'\n });\n\n return _response__WEBPACK_IMPORTED_MODULE_1__[\"ArchiveResponse\"].fromResponse({url,\n response,\n date: new Date(),\n noRW: false,\n isLive: this.isLive,\n });\n }\n}\n\n\nfunction resolveRequestParams(request, prefix, isLive = true) {\n let headers;\n let referrer;\n let credentials;\n\n if (isLive) {\n headers = new Headers(request.request.headers);\n referrer = request.request.referrer;\n const inx = referrer.indexOf(\"/http\", prefix.length - 1);\n if (inx > 0) {\n referrer = referrer.slice(inx + 1);\n headers.set(\"X-Proxy-Referer\", referrer);\n }\n credentials = request.request.credentials;\n } else {\n headers = new Headers();\n credentials = 'omit';\n }\n\n let url = request.url;\n\n if (url.startsWith(\"//\")) {\n try {\n url = new URL(referrer).protocol + url;\n } catch(e) {\n url = \"https:\" + url;\n }\n }\n\n return {referrer, headers, credentials, url};\n}\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/remoteproxy.js?"); + +/***/ }), + +/***/ "../serviceworker/src/response.js": +/*!****************************************!*\ + !*** ../serviceworker/src/response.js ***! + \****************************************/ +/*! exports provided: ArchiveResponse */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ArchiveResponse\", function() { return ArchiveResponse; });\n/* harmony import */ var warcio__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warcio */ \"../serviceworker/node_modules/warcio/main.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"../serviceworker/src/utils.js\");\n\n\n\nconst decoder = new TextDecoder(\"utf-8\");\n\nclass ArchiveResponse\n{\n\n static fromResponse({url, response, date, noRW, isLive}) {\n const payload = response.body ? new warcio__WEBPACK_IMPORTED_MODULE_0__[\"AsyncIterReader\"](response.body.getReader(), false) : null;\n const status = Number(response.headers.get(\"x-redirect-status\") || response.status);\n const statusText = response.headers.get(\"x-redirect-statusText\") || response.statusText;\n\n let headers = new Headers(response.headers);\n\n const origLoc = headers.get(\"x-orig-location\");\n if (origLoc) {\n headers.set(\"location\", origLoc);\n }\n\n const cookie = (headers.get(\"x-proxy-set-cookie\"));\n if (cookie) {\n const cookies = [];\n cookie.split(\",\").forEach((c) => {\n const cval = c.split(\";\", 1)[0].trim();\n if (cval.indexOf(\"=\") > 0) {\n cookies.push(cval);\n }\n });\n\n if (cookies.length) {\n headers.set(\"x-wabac-preset-cookie\", cookies.join(\";\"));\n console.log(\"cookies\", cookies.join(\";\"));\n }\n }\n\n return new ArchiveResponse({payload, status, statusText, headers, url, date, noRW, isLive});\n }\n\n constructor({payload, status, statusText, headers, url, date, extraOpts = null, noRW = false, isLive = false}) {\n this.reader = null;\n this.buffer = null;\n\n if (payload && payload[Symbol.asyncIterator]) {\n this.reader = payload;\n } else {\n this.buffer = payload;\n }\n\n this.status = status;\n this.statusText = statusText;\n this.headers = headers;\n this.url = url;\n this.date = date;\n this.extraOpts = extraOpts;\n this.noRW = noRW;\n this.isLive = isLive;\n }\n\n async getText() {\n const buff = await this.getBuffer();\n return typeof(buff) === \"string\" ? buff : decoder.decode(buff);\n }\n\n async getBuffer() {\n if (this.buffer) {\n return this.buffer;\n }\n\n this.buffer = await this.reader.readFully();\n return this.buffer;\n }\n\n async setContent(content) {\n if (content instanceof warcio__WEBPACK_IMPORTED_MODULE_0__[\"BaseAsyncIterReader\"]) {\n this.reader = content;\n this.buffer = null;\n } else if (content.getReader) {\n this.reader = new warcio__WEBPACK_IMPORTED_MODULE_0__[\"AsyncIterReader\"](content.getReader());\n this.buffer = null;\n } else {\n this.reader = null;\n this.buffer = content;\n }\n }\n\n async* [Symbol.asyncIterator]() {\n if (this.buffer) {\n yield this.buffer;\n } else if (this.reader) {\n yield* this.reader;\n }\n }\n\n setRange(range) {\n const bytes = range.match(/^bytes\\=(\\d+)\\-(\\d+)?$/);\n\n let length = 0;\n\n if (this.buffer) {\n length = this.buffer.length;\n } else if (this.reader) {\n //length = this.reader.length;\n length = Number(this.headers.get(\"content-length\"));\n\n // if length is not known, keep as 200\n if (!length) {\n return;\n }\n }\n\n if (!bytes) {\n this.status = 416;\n this.statusText = 'Range Not Satisfiable';\n this.headers.set('Content-Range', `*/${length}`);\n return false;\n }\n\n const start = Number(bytes[1]);\n const end = Number(bytes[2]) || (length - 1);\n\n if (this.buffer) {\n this.buffer = this.buffer.slice(start, end + 1);\n\n } else if (this.reader) {\n if (start !== 0 || end !== (length - 1)) {\n this.reader.setLimitSkip(end - start + 1, start);\n }\n }\n\n this.headers.set('Content-Range', `bytes ${start}-${end}/${length}`);\n this.headers.set('Content-Length', end - start + 1);\n\n this.status = 206;\n this.statusText = 'Partial Content';\n\n return true;\n }\n\n makeResponse() {\n let body = null;\n if (!Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"isNullBodyStatus\"])(this.status)) {\n body = this.buffer || !this.reader ? this.buffer : this.reader.getReadableStream();\n }\n\n const response = new Response(body, {status: this.status,\n statusText: this.statusText,\n headers: this.headers});\n response.date = this.date;\n response.headers.set(\"Cross-Origin-Opener-Policy\", \"same-origin\");\n response.headers.set(\"Cross-Origin-Embedder-Policy\", \"require-corp\");\n return response;\n }\n}\n\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/response.js?"); + +/***/ }), + +/***/ "../serviceworker/src/rewrite/decoder.js": +/*!***********************************************!*\ + !*** ../serviceworker/src/rewrite/decoder.js ***! + \***********************************************/ +/*! exports provided: decodeResponse, decodeContent */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"decodeResponse\", function() { return decodeResponse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"decodeContent\", function() { return decodeContent; });\n/* harmony import */ var brotli_decompress__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! brotli/decompress */ \"../serviceworker/node_modules/brotli/decompress.js\");\n/* harmony import */ var brotli_decompress__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(brotli_decompress__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! pako */ \"../serviceworker/node_modules/pako/index.js\");\n/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(pako__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var warcio__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! warcio */ \"../serviceworker/node_modules/warcio/main.js\");\n\n\n\n\n\n\n\n\n\n// ===========================================================================\nasync function decodeResponse(response, contentEncoding, transferEncoding, noRW) {\n\n // use the streaming decoder if gzip only and no rewriting\n if (response.reader && noRW &&\n ((contentEncoding === \"gzip\" && !transferEncoding) || \n (!contentEncoding && transferEncoding === \"gzip\"))) {\n response.setContent(new warcio__WEBPACK_IMPORTED_MODULE_2__[\"AsyncIterReader\"](response.reader));\n return response;\n }\n\n const origContent = new Uint8Array(await response.getBuffer());\n\n const content = await decodeContent(origContent, contentEncoding, transferEncoding);\n\n if (origContent !== content) {\n response.setContent(content);\n }\n\n return response;\n}\n\n\n// ===========================================================================\nasync function decodeContent(content, contentEncoding, transferEncoding) {\n const origContent = content;\n\n try {\n if (transferEncoding === \"chunked\") {\n content = dechunkArrayBuffer(content);\n }\n } catch (e) {\n console.log(\"Chunk-Encoding Ignored: \" + e);\n }\n\n try {\n if (contentEncoding === \"br\") {\n content = brotli_decompress__WEBPACK_IMPORTED_MODULE_0___default()(content);\n\n // if ended up with zero-length, probably not valid, just use original\n if (content.length === 0) {\n content = origContent;\n }\n\n } else if (contentEncoding === \"gzip\" || transferEncoding === \"gzip\") {\n const inflator = new pako__WEBPACK_IMPORTED_MODULE_1__[\"Inflate\"]();\n\n inflator.push(content, true);\n\n // if error occurs (eg. not gzip), use original arraybuffer\n if (inflator.result && !inflator.err) {\n content = inflator.result;\n }\n }\n } catch(e) {\n console.log(\"Content-Encoding Ignored: \" + e);\n }\n\n return content;\n}\n\n\n// ===========================================================================\nfunction dechunkArrayBuffer(data) {\n let readOffset = 0;\n let writeOffset = 0;\n\n const decoder = new TextDecoder(\"utf-8\");\n\n while (readOffset < data.length) {\n let i = readOffset;\n\n // check hex digits, 0-9, A-Z, a-z\n while ((data[i] >= 48 && data[i] <= 57) ||\n (data[i] >= 65 && data[i] <= 70) ||\n (data[i] >= 97 && data[i] <= 102)) {\n i++;\n }\n\n // doesn't start with number, return original\n if (i === 0) {\n return data;\n }\n\n // ensure \\r\\n\\r\\n\n if (data[i] != 13 || data[i + 1] != 10) {\n return data;\n }\n\n i += 2;\n\n var chunkLength = parseInt(decoder.decode(data.subarray(readOffset, i)), 16);\n\n if (chunkLength == 0) {\n break;\n }\n\n data.set(data.subarray(i, i + chunkLength), writeOffset);\n\n i += chunkLength;\n\n writeOffset += chunkLength;\n\n if (data[i] == 13 && data[i + 1] == 10) {\n i += 2;\n }\n\n readOffset = i;\n }\n\n return data.subarray(0, writeOffset);\n}\n\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/rewrite/decoder.js?"); + +/***/ }), + +/***/ "../serviceworker/src/rewrite/dsruleset.js": +/*!*************************************************!*\ + !*** ../serviceworker/src/rewrite/dsruleset.js ***! + \*************************************************/ +/*! exports provided: DomainSpecificRuleSet */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DomainSpecificRuleSet\", function() { return DomainSpecificRuleSet; });\n/* harmony import */ var _rewriteVideo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rewriteVideo */ \"../serviceworker/src/rewrite/rewriteVideo.js\");\n/* harmony import */ var unescape_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unescape-js */ \"../serviceworker/node_modules/unescape-js/dist/index.js\");\n/* harmony import */ var unescape_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(unescape_js__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\n\n// ===========================================================================\nconst DEFAULT_RULES = [\n {\n contains: [\"youtube.com\", \"youtube-nocookie.com\"],\n rxRules: [\n [/ytplayer.load\\(\\);/, ruleReplace('ytplayer.config.args.dash = \"0\"; ytplayer.config.args.dashmpd = \"\"; {0}')],\n [/yt\\.setConfig.*PLAYER_CONFIG.*args\":\\s*{/, ruleReplace('{0} \"dash\": \"0\", dashmpd: \"\", ')],\n [/(?:\"player\":|ytplayer\\.config).*\"args\":\\s*{/, ruleReplace('{0}\"dash\":\"0\",\"dashmpd\":\"\",')],\n [/yt\\.setConfig.*PLAYER_VARS.*?{/, ruleReplace('{0}\"dash\":\"0\",\"dashmpd\":\"\",')],\n [/ytplayer.config={args:\\s*{/, ruleReplace('{0}\"dash\":\"0\",\"dashmpd\":\"\",')],\n [/\"0\"==\\w+\\.dash\\&\\&/, ruleReplace('1&&')],\n ]\n },\n {\n contains: [\"vimeo.com/video\"],\n rxRules: [\n [/\\\"dash\\\"[:]/, ruleReplace('\"__dash\":')],\n [/\\\"hls\\\"[:]/, ruleReplace('\"__hls\":')],\n ]\n },\n {\n contains: [\"facebook.com/\"],\n rxRules: [\n //[/\"dash_manifest\":\"?.*dash_prefetched_representation_ids\"?:(\\[.*\\]|[^,]+)/, ruleRewriteFBDash],\n //[/\"dash_manifest\":\"?.*?dash_prefetched_representation_ids\"?:(?:null|(?:.+?\\]))/, ruleRewriteFBDash],\n\n [/\"dash_/, ruleReplace('\"__nodash__')],\n [/_dash\"/, ruleReplace('__nodash__\"')],\n [/_dash_/, ruleReplace('__nodash__')],\n ]\n },\n\n {\n contains: [\"api.twitter.com/2/\", \"twitter.com/i/api/2/\"],\n rxRules: [\n [/\"video_info\".*?}]}/, ruleRewriteTwitterVideo]\n ]\n }\n];\n\n\n// ===========================================================================\nfunction ruleReplace(string) {\n return x => string.replace('{0}', x); \n}\n\n\n// ===========================================================================\n// For older captures, no longer applicable\nfunction ruleRewriteFBDash(string) {\n let dashManifest = null;\n\n try {\n dashManifest = unescape_js__WEBPACK_IMPORTED_MODULE_1___default()(string.match(/dash_manifest\":\"(.*?)\",\"/)[1]);\n dashManifest = dashManifest.replace(/\\\\\\//g, '/');\n } catch (e) {\n console.warn(e);\n return string;\n }\n\n let bestIds;\n\n if (string.endsWith(\"null\")) {\n bestIds = null;\n } else {\n bestIds = [];\n }\n\n const newDashManifest = Object(_rewriteVideo__WEBPACK_IMPORTED_MODULE_0__[\"rewriteDASH\"])(dashManifest, null, bestIds) + \"\\n\";\n\n if (bestIds != null && !bestIds.length) {\n return string;\n }\n\n const resultJSON = {\"dash_manifest\": newDashManifest, \"dash_prefetched_representation_ids\": bestIds}; \n\n const result = JSON.stringify(resultJSON).replace(/ bestBitrate && variant.bitrate <= _rewriteVideo__WEBPACK_IMPORTED_MODULE_0__[\"DEFAULT_MAX_BAND\"]) {\n bestVariant = variant;\n bestBitrate = variant.bitrate;\n }\n }\n\n if (bestVariant) {\n data.variants = [bestVariant];\n }\n\n return prefix + JSON.stringify(data);\n\n } catch (e) {\n return origString;\n }\n}\n\n// ===========================================================================\n\n// ===========================================================================\nclass DomainSpecificRuleSet\n{\n\n constructor(RewriterCls, rwRules) {\n this.rwRules = rwRules || DEFAULT_RULES;\n this.RewriterCls = RewriterCls;\n\n this._initRules();\n }\n\n _initRules() {\n this.rewriters = new Map();\n\n for (const rule of this.rwRules) {\n if (rule.rxRules) {\n this.rewriters.set(rule, new this.RewriterCls(rule.rxRules));\n }\n }\n this.defaultRewriter = new this.RewriterCls();\n }\n\n getRewriter(url) {\n for (const rule of this.rwRules) {\n if (!rule.contains) {\n continue;\n }\n\n for (const containsStr of rule.contains) {\n if (url.indexOf(containsStr) >= 0) {\n const rewriter = this.rewriters.get(rule);\n if (rewriter) {\n return rewriter;\n }\n }\n }\n }\n\n return this.defaultRewriter;\n }\n}\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/rewrite/dsruleset.js?"); + +/***/ }), + +/***/ "../serviceworker/src/rewrite/index.js": +/*!*********************************************!*\ + !*** ../serviceworker/src/rewrite/index.js ***! + \*********************************************/ +/*! exports provided: Rewriter, ArchiveResponse, baseRules, jsRules */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Rewriter\", function() { return Rewriter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"baseRules\", function() { return baseRules; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"jsRules\", function() { return jsRules; });\n/* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\");\n/* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(stream__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parse5_html_rewriting_stream__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! parse5-html-rewriting-stream */ \"../serviceworker/node_modules/parse5-html-rewriting-stream/lib/index.js\");\n/* harmony import */ var parse5_html_rewriting_stream__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(parse5_html_rewriting_stream__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var parse_link_header__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! parse-link-header */ \"../serviceworker/node_modules/parse-link-header/index.js\");\n/* harmony import */ var parse_link_header__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(parse_link_header__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var format_link_header__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! format-link-header */ \"../serviceworker/node_modules/format-link-header/src/index.js\");\n/* harmony import */ var format_link_header__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(format_link_header__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ \"../serviceworker/src/utils.js\");\n/* harmony import */ var _decoder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./decoder */ \"../serviceworker/src/rewrite/decoder.js\");\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../response */ \"../serviceworker/src/response.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArchiveResponse\", function() { return _response__WEBPACK_IMPORTED_MODULE_6__[\"ArchiveResponse\"]; });\n\n/* harmony import */ var _rewriteVideo__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./rewriteVideo */ \"../serviceworker/src/rewrite/rewriteVideo.js\");\n/* harmony import */ var _dsruleset__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./dsruleset */ \"../serviceworker/src/rewrite/dsruleset.js\");\n/* harmony import */ var _rxrewriter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./rxrewriter */ \"../serviceworker/src/rewrite/rxrewriter.js\");\n/* harmony import */ var _jsrewriter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./jsrewriter */ \"../serviceworker/src/rewrite/jsrewriter.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// ===========================================================================\nconst STYLE_REGEX = /(url\\s*\\(\\s*[\\\\\"']*)([^)'\"]+)([\\\\\"']*\\s*\\))/gi;\n\nconst IMPORT_REGEX = /(@import\\s*[\\\\\"']*)([^)'\";]+)([\\\\\"']*\\s*;?)/gi;\n\nconst META_REFRESH_REGEX = /([\\d.]+\\s*;\\s*url\\s*=\\s*)(.+)(\\s*)/mi;\n\nconst NO_WOMBAT_REGEX = /WB_wombat_/g;\n\n//const JSONP_REGEX = /^(?:[ \\t]*(?:(?:\\/\\*[^\\*]*\\*\\/)|(?:\\/\\/[^\\n]+[\\n])))*[ \\t]*(\\w+)\\(\\{/m;\nconst JSONP_REGEX = /^(?:\\s*(?:(?:\\/\\*[^\\*]*\\*\\/)|(?:\\/\\/[^\\n]+[\\n])))*\\s*(\\w+)\\(\\{/;\n\nconst JSONP_CALLBACK_REGEX = /[?].*callback=([^&]+)/;\n\nconst JSONP_CONTAINS = [\n 'callback=jQuery',\n 'callback=jsonp',\n '.json?'\n];\n\nconst DATA_RW_PROTOCOLS = [\"http://\", \"https://\", \"//\"];\n\n// JS Rewriters\nconst jsRules = new _dsruleset__WEBPACK_IMPORTED_MODULE_8__[\"DomainSpecificRuleSet\"](_jsrewriter__WEBPACK_IMPORTED_MODULE_10__[\"JSRewriter\"]);\nconst baseRules = new _dsruleset__WEBPACK_IMPORTED_MODULE_8__[\"DomainSpecificRuleSet\"](_rxrewriter__WEBPACK_IMPORTED_MODULE_9__[\"RxRewriter\"]);\n\n\n// ===========================================================================\nclass Rewriter {\n constructor({baseUrl, prefix, responseUrl, workerInsertFunc, headInsertFunc = null,\n urlRewrite = true, contentRewrite = true, decode = true, useBaseRules = false} = {}) {\n this.urlRewrite = urlRewrite;\n this.contentRewrite = contentRewrite;\n this.dsRules = urlRewrite && !useBaseRules ? jsRules : baseRules;\n this.decode = decode;\n\n this.prefix = prefix || \"\";\n if (this.prefix && urlRewrite) {\n const parsed = new URL(this.prefix);\n this.relPrefix = parsed.pathname;\n this.schemeRelPrefix = this.prefix.slice(parsed.protocol.length);\n }\n\n // response url always has a scheme, should be specified if baseUrl may not..\n const parsed = new URL(responseUrl || baseUrl);\n this.scheme = parsed.protocol;\n\n if (baseUrl.startsWith(\"//\")) {\n baseUrl = this.scheme + baseUrl;\n }\n\n this.url = this.baseUrl = baseUrl;\n\n this.headInsertFunc = headInsertFunc;\n this.workerInsertFunc = workerInsertFunc;\n }\n\n getRewriteMode(request, response, url = \"\", mime = null) {\n if (!mime && response) {\n mime = response.headers.get(\"Content-Type\") || \"\";\n mime = mime.split(\";\", 1)[0];\n }\n\n if (request) {\n switch (request.destination) {\n case \"style\":\n return \"css\";\n\n case \"script\":\n return Object(_utils_js__WEBPACK_IMPORTED_MODULE_4__[\"containsAny\"])(url, JSONP_CONTAINS) ? \"jsonp\" : \"js\";\n\n case \"worker\":\n return \"js-worker\";\n }\n }\n\n switch (mime) {\n case \"text/html\":\n return \"html\";\n\n case \"text/javascript\":\n case \"application/javascript\":\n case \"application/x-javascript\":\n if (Object(_utils_js__WEBPACK_IMPORTED_MODULE_4__[\"containsAny\"])(url, JSONP_CONTAINS)) {\n return \"jsonp\";\n }\n return url.endsWith(\".json\") ? \"json\" : \"js\";\n\n case \"application/json\":\n return \"json\";\n\n case \"text/css\":\n return \"css\";\n\n case \"application/x-mpegURL\":\n case \"application/vnd.apple.mpegurl\":\n return \"hls\";\n\n case \"application/dash+xml\":\n return \"dash\";\n }\n\n return null;\n }\n\n async rewrite(response, request) {\n const rewriteMode = this.contentRewrite ? this.getRewriteMode(request, response, this.baseUrl) : null;\n\n const isAjax = Object(_utils_js__WEBPACK_IMPORTED_MODULE_4__[\"isAjaxRequest\"])(request);\n\n const urlRewrite = this.urlRewrite && !isAjax;\n\n const headers = this.rewriteHeaders(response.headers, this.urlRewrite, !!rewriteMode, isAjax);\n\n const encoding = response.headers.get(\"content-encoding\");\n const te = response.headers.get('transfer-encoding');\n\n response.headers = headers;\n\n // attempt to decode only if set\n // eg. data may already be decoded for many stores\n if (this.decode && (encoding || te)) {\n response = await Object(_decoder__WEBPACK_IMPORTED_MODULE_5__[\"decodeResponse\"])(response, encoding, te, rewriteMode === null);\n }\n\n let rwFunc = null;\n\n switch (rewriteMode) {\n case \"html\":\n if (urlRewrite) {\n return await this.rewriteHtml(response);\n }\n break;\n\n case \"css\":\n if (this.urlRewrite) {\n rwFunc = this.rewriteCSS;\n }\n break;\n\n case \"js\":\n rwFunc = this.rewriteJS;\n break;\n\n case \"json\":\n rwFunc = this.rewriteJSON;\n break;\n\n case \"js-worker\":\n rwFunc = this.workerInsertFunc;\n break;\n\n case \"jsonp\":\n rwFunc = this.rewriteJSONP;\n break;\n\n case \"hls\":\n rwFunc = _rewriteVideo__WEBPACK_IMPORTED_MODULE_7__[\"rewriteHLS\"];\n break;\n\n case \"dash\":\n rwFunc = _rewriteVideo__WEBPACK_IMPORTED_MODULE_7__[\"rewriteDASH\"];\n break;\n }\n\n const opts = {response};\n\n if (urlRewrite) {\n opts.rewriteUrl = url => this.rewriteUrl(url);\n }\n\n if (rwFunc) {\n let text = await response.getText();\n text = rwFunc.call(this, text, opts);\n response.setContent(text);\n }\n\n return response;\n }\n\n normalizeBaseUrl(url, absUrl) {\n // not an absolute url, ensure it has slash\n if (url && absUrl != url) {\n try {\n return new URL(url).href;\n } catch (e) {\n if (url.startsWith(\"//\")) {\n url = new URL(\"https:\" + url).href;\n return url.slice(\"https:\".length);\n }\n }\n }\n\n return url;\n }\n\n isRewritableUrl(url) {\n const NO_REWRITE_URI_PREFIX = ['#', 'javascript:', 'data:', 'mailto:', 'about:', 'file:', 'blob:', '{'];\n\n for (let prefix of NO_REWRITE_URI_PREFIX) {\n if (url.startsWith(prefix)) {\n return false;\n }\n }\n\n return true;\n }\n\n rewriteUrl(url, forceAbs = false) {\n if (!this.urlRewrite) {\n return url;\n }\n\n var origUrl = url;\n\n url = url.trim();\n\n if (!url || !this.isRewritableUrl(url) || url.startsWith(this.prefix) || url.startsWith(this.relPrefix)) {\n return origUrl;\n }\n\n if (url.startsWith(\"http:\") || url.startsWith(\"https:\") || url.startsWith(\"https\\\\3a/\")) {\n return this.prefix + url;\n }\n\n if (url.startsWith(\"//\") || url.startsWith(\"\\\\/\\\\/\")) {\n return this.schemeRelPrefix + url;\n }\n\n if (url.startsWith(\"/\")) {\n url = new URL(url, this.baseUrl).href;\n return this.relPrefix + url;\n } else if (forceAbs || url.indexOf(\"../\") >= 0) {\n url = new URL(url, this.baseUrl).href;\n return this.prefix + url;\n } else {\n return origUrl;\n }\n }\n\n // HTML\n rewriteMetaContent(attrs, attr) {\n let equiv = this.getAttr(attrs, \"http-equiv\");\n if (equiv) {\n equiv = equiv.toLowerCase();\n }\n\n if (equiv === \"content-security-policy\") {\n attr.name = \"_\" + attr.name;\n } else if (equiv === \"refresh\") {\n return attr.value.replace(META_REFRESH_REGEX, (m, p1, p2, p3) => p1 + this.rewriteUrl(p2) + p3);\n } else if (this.getAttr(attrs, \"name\") === \"referrer\") {\n return \"no-referrer-when-downgrade\";\n } else if (Object(_utils_js__WEBPACK_IMPORTED_MODULE_4__[\"startsWithAny\"])(attr.value, DATA_RW_PROTOCOLS)) {\n return this.rewriteUrl(attr.value);\n }\n\n return attr.value;\n }\n\n rewriteSrcSet(value) {\n const SRCSET_REGEX = /\\s*(\\S*\\s+[\\d\\.]+[wx]),|(?:\\s*,(?:\\s+|(?=https?:)))/;\n\n let rv = [];\n\n for (let v of value.split(SRCSET_REGEX)) {\n if (v) {\n const parts = v.trim().split(\" \");\n parts[0] = this.rewriteUrl(parts[0]);\n rv.push(parts.join(\" \"));\n }\n }\n\n return rv.join(\", \");\n }\n\n\n rewriteTagAndAttrs(tag, attrRules) {\n const OBJECT_FLASH_DATA_RX = [{\n \"match\": /youtube.com\\/v\\/([^&]+)[&]/,\n \"replace\": \"youtube.com/embed/$1?\"\n }]\n\n\n const isUrl = (val) => { return Object(_utils_js__WEBPACK_IMPORTED_MODULE_4__[\"startsWithAny\"])(val, DATA_RW_PROTOCOLS); }\n\n for (let attr of tag.attrs) {\n const name = attr.name;\n const value = attr.value;\n\n // js attrs\n if (name.startsWith(\"on\") && value.startsWith(\"javascript:\") && name.slice(2, 3) != \"-\") {\n attr.value = \"javascript:\" + this.rewriteJS(value.slice(\"javascript:\".length), {inline: true});\n }\n // css attrs\n else if (name === \"style\") {\n attr.value = this.rewriteCSS(attr.value);\n }\n\n // background attr\n else if (name === \"background\") {\n attr.value = this.rewriteUrl(value);\n }\n\n else if (name === \"srcset\") {\n attr.value = this.rewriteSrcSet(value);\n }\n\n else if (name === \"crossorigin\" || name === \"integrity\") {\n attr.name = \"_\" + attr.name;\n }\n\n else if (tag.tagName === \"meta\" && name === \"content\") {\n attr.value = this.rewriteMetaContent(tag.attrs, attr);\n }\n\n else if (tag.tagName === \"param\" && isUrl(value)) {\n attr.value = this.rewriteUrl(attr.value);\n }\n\n else if (name.startsWith(\"data-\") && isUrl(value)) {\n attr.value = this.rewriteUrl(attr.value);\n }\n\n else if (tag.tagName === \"base\" && name === \"href\") {\n try {\n\n // set internal base to full url\n this.baseUrl = new URL(attr.value, this.baseUrl).href;\n\n // rewrite url, keeping relativeness intact\n attr.value = this.rewriteUrl(this.normalizeBaseUrl(attr.value, this.baseUrl));\n } catch (e) {\n console.warn(\"Invalid : \" + attr.value);\n }\n }\n\n else if (tag.tagName === \"script\" && name === \"src\") {\n const newValue = this.rewriteUrl(attr.value);\n if (newValue === attr.value) {// && this.isRewritableUrl(newValue)) {\n tag.attrs.push({\"name\": \"__wb_orig_src\", \"value\": attr.value});\n attr.value = this.rewriteUrl(attr.value, true);\n } else {\n attr.value = newValue;\n }\n }\n\n else if (tag.tagName === \"object\" && name === \"data\") {\n const type = this.getAttr(tag.attrs, \"type\");\n\n // convert object tag to iframe\n if (type === \"application/pdf\") {\n attr.name = \"src\";\n tag.tagName = \"iframe\";\n } else if (type === \"application/x-shockwave-flash\") {\n for (const rule of OBJECT_FLASH_DATA_RX) {\n const value = attr.value.replace(rule.match, rule.replace);\n if (value !== attr.value) {\n attr.name = \"src\";\n attr.value = this.rewriteUrl(value);\n tag.tagName = \"iframe\";\n break;\n }\n }\n }\n }\n\n else if (name === \"href\" || name === \"src\") {\n attr.value = this.rewriteUrl(attr.value);\n }\n\n else {\n if (attrRules[attr.name]) {\n attr.value = this.rewriteUrl(attr.value);\n }\n }\n }\n }\n\n getAttr(attrs, name) {\n for (let attr of attrs) {\n if (attr.name === name) {\n return attr.value;\n }\n }\n\n return null;\n }\n\n async rewriteHtml(response) {\n if (!response.buffer && !response.reader) {\n //console.warn(\"Missing response body for: \" + response.url);\n return response;\n }\n\n const defmod = \"mp_\";\n\n const rewriteTags = {\n 'a': { 'href': defmod },\n 'base': { 'href': defmod },\n 'applet': {\n 'codebase': 'oe_',\n 'archive': 'oe_'\n },\n 'area': { 'href': defmod },\n 'audio': { 'src': 'oe_' },\n 'base': { 'href': defmod },\n 'blockquote': { 'cite': defmod },\n 'body': { 'background': 'im_' },\n 'button': { 'formaction': defmod },\n 'command': { 'icon': 'im_' },\n 'del': { 'cite': defmod },\n 'embed': { 'src': 'oe_' },\n 'iframe': { 'src': 'if_' },\n 'image': { 'src': 'im_', 'xlink:href': 'im_', 'href': 'im_' },\n 'img': {\n 'src': 'im_',\n 'srcset': 'im_'\n },\n 'ins': { 'cite': defmod },\n 'input': {\n 'src': 'im_',\n 'formaction': defmod\n },\n 'form': { 'action': defmod },\n 'frame': { 'src': 'fr_' },\n 'link': { 'href': 'oe_' },\n 'meta': { 'content': defmod },\n 'object': {\n 'codebase': 'oe_',\n 'data': 'oe_'\n },\n 'param': { 'value': 'oe_' },\n 'q': { 'cite': defmod },\n 'ref': { 'href': 'oe_' },\n 'script': { 'src': 'js_', 'xlink:href': 'js_' },\n 'source': { 'src': 'oe_', 'srcset': 'oe_' },\n 'video': {\n 'src': 'oe_',\n 'poster': 'im_'\n },\n }\n\n const rwStream = new parse5_html_rewriting_stream__WEBPACK_IMPORTED_MODULE_1___default.a();\n\n let insertAdded = false;\n let hasData = false;\n\n let context = \"\";\n let scriptRw = false;\n let replaceTag = null;\n\n let cacheChunks = [];\n let cacheOffset = 0;\n\n function getRawText(loc) {\n let offset = cacheOffset;\n\n while (cacheChunks.length) {\n const nextOffset = offset + cacheChunks[0].byteLength;\n if (loc.startOffset > nextOffset) {\n cacheChunks.shift();\n offset = nextOffset;\n } else {\n break;\n }\n }\n\n if (!cacheChunks.length) {\n return \"\";\n }\n\n cacheOffset = offset;\n offset = loc.startOffset - offset;\n\n let remainder = loc.endOffset - loc.startOffset;\n const textDec = new TextDecoder();\n let text = \"\";\n\n for (const chunk of cacheChunks) {\n if (remainder <= 0) {\n break;\n }\n\n const slice = chunk.slice(offset, offset + remainder);\n offset = 0;\n remainder -= slice.byteLength;\n text += textDec.decode(slice);\n }\n\n return text;\n }\n\n const addInsert = () => {\n if (!insertAdded && hasData && this.headInsertFunc) {\n const headInsert = this.headInsertFunc(this.url);\n if (headInsert) {\n rwStream.emitRaw(headInsert);\n }\n insertAdded = true;\n }\n };\n\n rwStream.on('startTag', startTag => {\n\n const tagRules = rewriteTags[startTag.tagName];\n\n const original = startTag.tagName;\n\n this.rewriteTagAndAttrs(startTag, tagRules || {});\n\n if (!insertAdded && ![\"head\", \"html\"].includes(startTag.tagName)) {\n hasData = true;\n addInsert();\n }\n\n rwStream.emitStartTag(startTag);\n\n switch (startTag.tagName) {\n case \"script\":\n if (startTag.selfClosing) {\n break;\n }\n\n context = startTag.tagName;\n\n const scriptType = this.getAttr(startTag.attrs, \"type\");\n\n scriptRw = !scriptType || (scriptType.indexOf(\"javascript\") >= 0 || scriptType.indexOf(\"ecmascript\") >= 0);\n break;\n\n case \"style\":\n if (!startTag.selfClosing) {\n context = startTag.tagName;\n }\n break;\n }\n\n if (startTag.tagName !== original) {\n context = original;\n replaceTag = startTag.tagName;\n }\n });\n\n rwStream.on('endTag', endTag => {\n if (endTag.tagName === context) {\n if (replaceTag) {\n endTag.tagName = replaceTag;\n replaceTag = null;\n }\n context = \"\";\n }\n rwStream.emitEndTag(endTag);\n });\n\n rwStream.on('text', (textToken, raw) => {\n if (context === \"script\") {\n rwStream.emitRaw(scriptRw ? this.rewriteJS(textToken.text) : textToken.text);\n } else if (context === \"style\") {\n rwStream.emitRaw(this.rewriteCSS(textToken.text));\n } else {\n // if initial offset is <0, then raw text was cutoff, so use our own tracked buffer\n if ((textToken.sourceCodeLocation.startOffset - rwStream.posTracker.droppedBufferSize) < 0) {\n raw = getRawText(textToken.sourceCodeLocation);\n }\n rwStream.emitRaw(raw);\n }\n });\n\n const buff = new stream__WEBPACK_IMPORTED_MODULE_0__[\"PassThrough\"]({ encoding: 'utf-8' });\n buff.pipe(rwStream);\n buff.on('end', addInsert);\n\n const encoder = new TextEncoder(\"utf-8\");\n\n const rs = new ReadableStream({\n async start(controller) {\n rwStream.on(\"data\", (chunk) => controller.enqueue(encoder.encode(chunk)));\n rwStream.on(\"end\", () => controller.close());\n\n for await (const chunk of response) {\n cacheChunks.push(chunk);\n buff.push(chunk);\n hasData = true;\n }\n\n buff.push(null);\n }\n });\n\n response.setContent(rs);\n return response;\n }\n\n // CSS\n rewriteCSS(text) {\n const rewriter = this;\n\n function cssStyleReplacer(match, n1, n2, n3, offset, string) {\n n2 = n2.replace(/\\s+/g, '');\n return n1 + rewriter.rewriteUrl(n2) + n3;\n };\n\n return text\n .replace(STYLE_REGEX, cssStyleReplacer)\n .replace(IMPORT_REGEX, cssStyleReplacer)\n .replace(NO_WOMBAT_REGEX, '');\n }\n\n // JS\n rewriteJS(text, opts) {\n const noUrlProxyRewrite = opts && !opts.rewriteUrl;\n const dsRules = noUrlProxyRewrite ? baseRules : this.dsRules;\n const dsRewriter = dsRules.getRewriter(this.baseUrl);\n\n // optimize: if default rewriter, only rewrite if contains JS props\n if (dsRewriter === dsRules.defaultRewriter) {\n if (noUrlProxyRewrite) {\n return text;\n }\n\n const overrideProps = [\n 'window',\n 'self',\n 'document',\n 'location',\n 'top',\n 'parent',\n 'frames',\n 'opener',\n 'this',\n 'eval',\n 'postMessage'\n ];\n\n let containsProps = false;\n\n for (let prop of overrideProps) {\n if (text.indexOf(prop) >= 0) {\n containsProps = true;\n break;\n }\n }\n\n if (!containsProps) {\n return text;\n }\n }\n\n return dsRewriter.rewrite(text, opts);\n }\n\n // JSON\n rewriteJSON(text, opts) {\n text = this.rewriteJSONP(text);\n\n const dsRewriter = baseRules.getRewriter(this.baseUrl);\n\n if (dsRewriter !== baseRules.defaultRewriter) {\n return dsRewriter.rewrite(text, opts);\n }\n\n return text;\n }\n\n // JSONP\n rewriteJSONP(text) {\n const jsonM = text.match(JSONP_REGEX);\n if (!jsonM) {\n return text;\n }\n\n const callback = this.baseUrl.match(JSONP_CALLBACK_REGEX);\n\n // if no callback found, or callback is just '?', not jsonp\n if (!callback || callback[1] === \"?\") {\n return text;\n }\n\n return callback[1] + text.slice(text.indexOf(jsonM[1]) + jsonM[1].length);\n }\n\n //Headers\n rewriteHeaders(headers, urlRewrite, contentRewrite, isAjax) {\n const headerRules = {\n 'access-control-allow-origin': 'prefix-if-url-rewrite',\n 'access-control-allow-credentials': 'prefix-if-url-rewrite',\n 'access-control-expose-headers': 'prefix-if-url-rewrite',\n 'access-control-max-age': 'prefix-if-url-rewrite',\n 'access-control-allow-methods': 'prefix-if-url-rewrite',\n 'access-control-allow-headers': 'prefix-if-url-rewrite',\n\n 'accept-patch': 'keep',\n 'accept-ranges': 'keep',\n\n 'age': 'prefix',\n\n 'allow': 'keep',\n\n 'alt-svc': 'prefix',\n 'cache-control': 'prefix',\n\n 'connection': 'prefix',\n\n 'content-base': 'url-rewrite',\n 'content-disposition': 'keep',\n 'content-encoding': 'prefix-if-content-rewrite',\n 'content-language': 'keep',\n 'content-length': 'content-length',\n 'content-location': 'url-rewrite',\n 'content-md5': 'prefix',\n 'content-range': 'keep',\n 'content-security-policy': 'prefix',\n 'content-security-policy-report-only': 'prefix',\n 'content-type': 'keep',\n\n 'date': 'keep',\n\n 'etag': 'prefix',\n 'expires': 'prefix',\n\n 'last-modified': 'prefix',\n 'link': 'link',\n 'location': 'url-rewrite',\n\n 'p3p': 'prefix',\n 'pragma': 'prefix',\n\n 'proxy-authenticate': 'keep',\n\n 'public-key-pins': 'prefix',\n 'retry-after': 'prefix',\n 'server': 'prefix',\n\n 'set-cookie': 'cookie',\n\n 'status': 'prefix',\n\n 'strict-transport-security': 'prefix',\n\n 'trailer': 'prefix',\n 'transfer-encoding': 'transfer-encoding',\n 'tk': 'prefix',\n\n 'upgrade': 'prefix',\n 'upgrade-insecure-requests': 'prefix',\n\n 'vary': 'prefix',\n\n 'via': 'prefix',\n\n 'warning': 'prefix',\n\n 'www-authenticate': 'keep',\n\n 'x-frame-options': 'prefix',\n 'x-xss-protection': 'prefix',\n }\n\n const headerPrefix = 'X-Archive-Orig-';\n\n let new_headers = new Headers();\n\n for (let header of headers.entries()) {\n const rule = headerRules[header[0]];\n\n switch (rule) {\n case \"keep\":\n new_headers.append(header[0], header[1]);\n break;\n\n case \"url-rewrite\":\n if (urlRewrite) {\n new_headers.append(header[0], this.rewriteUrl(header[1]));\n } else {\n new_headers.append(header[0], header[1]);\n }\n break;\n\n case \"prefix-if-content-rewrite\":\n if (contentRewrite) {\n new_headers.append(headerPrefix + header[0], header[1]);\n } else {\n new_headers.append(header[0], header[1]);\n }\n break;\n\n case \"prefix-if-url-rewrite\":\n if (urlRewrite) {\n new_headers.append(headerPrefix + header[0], header[1]);\n } else {\n new_headers.append(header[0], header[1]);\n }\n break;\n\n case \"content-length\":\n if (header[1] == '0') {\n new_headers.append(header[0], header[1]);\n continue;\n }\n\n if (contentRewrite) {\n try {\n if (parseInt(header[1]) >= 0) {\n new_headers.append(header[0], header[1]);\n continue;\n }\n } catch (e) { }\n }\n\n new_headers.append(header[0], header[1]);\n break;\n\n case \"transfer-encoding\":\n //todo: mark as needing decoding?\n new_headers.append(headerPrefix + header[0], header[1]);\n break;\n\n case \"prefix\":\n new_headers.append(headerPrefix + header[0], header[1]);\n break;\n\n case \"cookie\":\n //todo\n new_headers.append(header[0], header[1]);\n break;\n\n case \"link\":\n if (urlRewrite && !isAjax) {\n const parsed = parse_link_header__WEBPACK_IMPORTED_MODULE_2___default()(header[1]);\n\n for (const entry of Object.values(parsed)) {\n if (entry.url) {\n entry.url = this.rewriteUrl(entry.url);\n }\n }\n\n new_headers.append(header[0], format_link_header__WEBPACK_IMPORTED_MODULE_3___default()(parsed));\n } else {\n new_headers.append(header[0], header[1]);\n }\n break;\n\n default:\n new_headers.append(header[0], header[1]);\n }\n }\n\n return new_headers;\n }\n}\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/rewrite/index.js?"); + +/***/ }), + +/***/ "../serviceworker/src/rewrite/jsrewriter.js": +/*!**************************************************!*\ + !*** ../serviceworker/src/rewrite/jsrewriter.js ***! + \**************************************************/ +/*! exports provided: JSRewriter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"JSRewriter\", function() { return JSRewriter; });\n/* harmony import */ var _rxrewriter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rxrewriter */ \"../serviceworker/src/rewrite/rxrewriter.js\");\n\n\n\n// ===========================================================================\nclass JSRewriter extends _rxrewriter__WEBPACK_IMPORTED_MODULE_0__[\"RxRewriter\"] {\n constructor(extraRules) {\n super();\n\n this.thisRw = '_____WB$wombat$check$this$function_____(this)';\n\n const checkLoc = '((self.__WB_check_loc && self.__WB_check_loc(location)) || {}).href = ';\n\n const localObjs = [\n 'window',\n 'self',\n 'document',\n 'location',\n 'top',\n 'parent',\n 'frames',\n 'opener'\n ];\n\n const propStr = localObjs.join('|');\n\n const evalStr = 'WB_wombat_runEval(function _____evalIsEvil(_______eval_arg$$) { return eval(_______eval_arg$$); }.bind(this)).';\n\n\n this.rules = [\n // rewriting 'eval(....)' - invocation\n [/[^$,]\\beval\\s*\\(/, this.addPrefixAfter1(evalStr)],\n\n // rewriting 'x = eval' - no invocation\n [/[^$]\\beval\\b/, this.addPrefixAfter1('WB_wombat_')],\n\n // rewriting .postMessage -> __WB_pmw(self).postMessage\n [/\\.postMessage\\b\\(/, this.addPrefix('.__WB_pmw(self)')],\n\n // rewriting 'location = ' to custom expression '(...).href =' assignment\n [/[^$.]\\s*\\blocation\\b\\s*[=]\\s*(?![\\s=])/, this.addSuffix(checkLoc)],\n\n // rewriting 'return this'\n [/\\breturn\\s+this\\b\\s*(?![\\s\\w.$])/, this.replaceThis()],\n\n // rewriting 'this.' special properties access on new line, with ; prepended\n // if prev char is '\\n', or if prev is not '.' or '$', no semi\n [new RegExp(`[^$.]\\\\s*\\\\bthis\\\\b(?=(?:\\\\.(?:${propStr})\\\\b))`), this.replaceThisProp()],\n\n // rewrite '= this' or ', this'\n [/[=,]\\s*\\bthis\\b\\s*(?![\\s\\w:.$])/, this.replaceThis()],\n\n // rewrite '})(this)'\n [/\\}(?:\\s*\\))?\\s*\\(this\\)/, this.replaceThis()],\n\n // rewrite this in && or || expr?\n [/[^|&][|&]{2}\\s*this\\b\\s*(?![|\\s&.$](?:[^|&]|$))/, this.replaceThis()],\n ];\n\n if (extraRules) {\n this.rules = this.rules.concat(extraRules);\n }\n\n this.compileRules();\n\n this.firstBuff = this.initLocalDecl(localObjs);\n this.lastBuff = '\\n\\n}';\n }\n\n addPrefix(prefix) {\n return x => prefix + x;\n }\n\n addPrefixAfter1(prefix) {\n return x => x[0] + prefix + x.slice(1);\n }\n\n addSuffix(suffix) {\n return (x, offset, string) => {\n if (offset > 0) {\n const prev = string[offset - 1];\n if (prev === '.' || prev === '$') {\n return x;\n }\n }\n return x + suffix;\n }\n }\n\n replaceThis() {\n return x => x.replace('this', this.thisRw);\n }\n\n replaceThisProp() {\n return (x, offset, string) => {\n const prev = (offset > 0 ? string[offset - 1] : \"\");\n if (prev === '\\n') {\n return x.replace('this', ';' + this.thisRw);\n } else if (prev !== '.' && prev !== '$') {\n return x.replace('this', this.thisRw);\n } else {\n return x;\n }\n };\n }\n\n initLocalDecl(localDecls) {\n const assignFunc = '_____WB$wombat$assign$function_____';\n \n let buffer = `\\\n var ${assignFunc} = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };\n if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }\n {\\\n `;\n\n for (let decl of localDecls) {\n buffer += `let ${decl} = ${assignFunc}(\"${decl}\");\\n`;\n }\n\n return buffer + '\\n';\n }\n\n rewrite(text, opts) {\n const newText = this.firstBuff + super.rewrite(text, opts) + this.lastBuff;\n return opts && opts.inline ? newText.replace(/\\n/g, \" \") : newText;\n }\n}\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/rewrite/jsrewriter.js?"); + +/***/ }), + +/***/ "../serviceworker/src/rewrite/rewriteVideo.js": +/*!****************************************************!*\ + !*** ../serviceworker/src/rewrite/rewriteVideo.js ***! + \****************************************************/ +/*! exports provided: rewriteHLS, rewriteDASH, dashOutputOpts, DEFAULT_MAX_BAND */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rewriteHLS\", function() { return rewriteHLS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rewriteDASH\", function() { return rewriteDASH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dashOutputOpts\", function() { return dashOutputOpts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_MAX_BAND\", function() { return DEFAULT_MAX_BAND; });\n/* harmony import */ var fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-xml-parser */ \"../serviceworker/node_modules/fast-xml-parser/src/parser.js\");\n/* harmony import */ var fast_xml_parser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__);\n\n\n\n\n// orig pywb defaults\nconst OLD_DEFAULT_MAX_BAND = 2000000;\nconst OLD_DEFAULT_MAX_RES = 1280 * 720;\n\n// lower defaults\nconst DEFAULT_MAX_BAND = 1000000;\nconst DEFAULT_MAX_RES = 860 * 480;\n\n\n// ===========================================================================\nfunction getMaxResAndBand(opts = {}) {\n // read opts from warc, if any\n let maxRes, maxBand;\n\n const extraOpts = (opts && opts.response && opts.response.extraOpts)\n\n if (extraOpts) {\n maxRes = extraOpts.adaptive_max_resolution || extraOpts.maxRes;\n maxBand = extraOpts.adaptive_max_bandwidth || extraOpts.maxBand;\n if (maxRes && maxBand) {\n return {maxRes, maxBand};\n }\n }\n\n const isReplay = opts && opts.response && !opts.response.isLive;\n let res;\n \n // if not replay, or unknown, use new lower setting\n if (!isReplay) {\n res = {maxRes: DEFAULT_MAX_RES, maxBand: DEFAULT_MAX_BAND};\n } else {\n // use existing pywb defaults\n res = {maxRes: OLD_DEFAULT_MAX_RES, maxBand: OLD_DEFAULT_MAX_BAND};\n }\n\n if (opts && opts.save) {\n opts.save.maxRes = res.maxRes;\n opts.save.maxBand = res.maxBand;\n }\n\n return res;\n}\n\n\n// ===========================================================================\n//HLS\nfunction rewriteHLS(text, opts) {\n const EXT_INF = /#EXT-X-STREAM-INF:(?:.*[,])?BANDWIDTH=([\\d]+)/;\n const EXT_RESOLUTION = /RESOLUTION=([\\d]+)x([\\d]+)/;\n\n const { maxRes, maxBand} = getMaxResAndBand(opts);\n\n let indexes = [];\n let count = 0;\n let bestIndex = null;\n\n let bestBand = 0;\n let bestRes = 0;\n\n let lines = text.trimEnd().split('\\n');\n\n for (const line of lines) {\n const m = line.match(EXT_INF);\n if (!m) {\n // if has rewriteUrl (not-ajax), then rewrite HLS urls\n if (opts && opts.rewriteUrl && !line.startsWith(\"#\")) {\n lines[count] = opts.rewriteUrl(line);\n }\n count += 1;\n continue;\n }\n\n indexes.push(count);\n\n const currBand = Number(m[1]);\n\n const m2 = line.match(EXT_RESOLUTION);\n const currRes = m2 ? Number(m2[1]) * Number(m2[2]) : 0;\n\n if (currRes && maxRes) {\n if (currRes <= maxRes && currRes > bestRes) {\n bestRes = currRes;\n bestBand = currBand;\n bestIndex = count;\n }\n } else if (currBand <= maxBand && currBand > bestBand) {\n bestRes = currRes;\n bestBand = currBand;\n bestIndex = count;\n }\n\n count += 1;\n }\n\n indexes.reverse();\n\n for (const inx of indexes) {\n if (inx !== bestIndex) {\n lines.splice(inx, 2);\n }\n }\n\n return lines.join('\\n');\n}\n\n// ===========================================================================\n// DASH\nconst dashOutputOpts = {ignoreAttributes: false, ignoreNameSpace: false, format: false, supressEmptyNode: true};\n\n\nfunction rewriteDASH(text, opts, bestIds) {\n try {\n return _rewriteDASH(text, opts, bestIds);\n } catch (e) {\n console.log(e);\n return text;\n }\n}\n\n\nfunction _rewriteDASH(text, opts, bestIds) {\n const options = dashOutputOpts;\n const root = fast_xml_parser__WEBPACK_IMPORTED_MODULE_0___default.a.parse(text, options);\n\n const { maxRes, maxBand} = getMaxResAndBand(opts);\n\n let best = null;\n let bestRes = 0;\n let bestBand = 0;\n\n let adaptSets = null;\n\n if (!Array.isArray(root.MPD.Period.AdaptationSet)) {\n adaptSets = [root.MPD.Period.AdaptationSet];\n } else {\n adaptSets = root.MPD.Period.AdaptationSet;\n }\n\n for (const adaptset of adaptSets) {\n best = null;\n bestRes = 0;\n bestBand = 0;\n\n let reps = null;\n\n if (!Array.isArray(adaptset.Representation)) {\n reps = [adaptset.Representation];\n } else {\n reps = adaptset.Representation;\n }\n\n for (const repres of reps) {\n const currRes = Number(repres['@_width'] || '0') * Number(repres['@_height'] || '0');\n const currBand = Number(repres['@_bandwidth'] || '0');\n\n if (currRes && maxRes) {\n if (currRes <= maxRes && currRes > bestRes) {\n bestRes = currRes;\n bestBand = currBand;\n best = repres;\n }\n } else if (currBand <= maxBand && currBand > bestBand) {\n bestRes = currRes;\n bestBand = currBand;\n best = repres;\n }\n }\n\n if (best && Array.isArray(bestIds)) {\n bestIds.push(best['@_id']);\n }\n\n if (best) {\n adaptset.Representation = [best];\n }\n }\n\n const toXML = new fast_xml_parser__WEBPACK_IMPORTED_MODULE_0___default.a.j2xParser(options);\n const xml = toXML.parse(root);\n\n return \"\\n\" + xml.trim();\n}\n\n\n// ===========================================================================\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/rewrite/rewriteVideo.js?"); + +/***/ }), + +/***/ "../serviceworker/src/rewrite/rxrewriter.js": +/*!**************************************************!*\ + !*** ../serviceworker/src/rewrite/rxrewriter.js ***! + \**************************************************/ +/*! exports provided: RxRewriter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RxRewriter\", function() { return RxRewriter; });\n\n// ===========================================================================\nclass RxRewriter\n{\n constructor(rules) {\n this.rules = rules || null;\n if (this.rules) {\n this.compileRules();\n } else {\n this.rx = null;\n }\n }\n\n compileRules() {\n let rxBuff = '';\n\n for (let rule of this.rules) {\n if (rxBuff) {\n rxBuff += \"|\";\n }\n rxBuff += `(${rule[0].source})`;\n }\n\n const rxString = `(?:${rxBuff})`;\n\n this.rx = new RegExp(rxString, 'gm');\n }\n\n doReplace(params, opts) {\n const offset = params[params.length - 2];\n const string = params[params.length - 1];\n\n for (let i = 0; i < this.rules.length; i++) {\n const curr = params[i];\n if (!curr) {\n continue;\n }\n\n const result = this.rules[i][1].call(this, curr, opts, offset, string);\n if (result) {\n return result;\n }\n }\n }\n\n rewrite(text, opts) {\n if (!this.rx) {\n return text;\n }\n\n return text.replace(this.rx, (match, ...params) => this.doReplace(params, opts));\n }\n}\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/rewrite/rxrewriter.js?"); + +/***/ }), + +/***/ "../serviceworker/src/statstracker.js": +/*!********************************************!*\ + !*** ../serviceworker/src/statstracker.js ***! + \********************************************/ +/*! exports provided: StatsTracker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"StatsTracker\", function() { return StatsTracker; });\nclass StatsTracker {\n constructor() {\n this.timeRanges = {};\n }\n\n updateStats(date, status, request, event) {\n const id = event.clientId || event.resultingClientId;\n \n if (!id || !date) {\n return;\n }\n\n if (!request.url || request.url.indexOf(\"mp_/\") < 0) {\n return;\n }\n\n if (request.destination === \"document\" && (status > 300 && status < 400)) {\n return;\n }\n\n let timeRange = null;\n\n if (this.timeRanges[id] === undefined) {\n timeRange = { \"count\": 0, \"children\": [] };\n this.timeRanges[id] = timeRange;\n if (request.referrer.indexOf(\"mp_/\") > 0) {\n self.clients.matchAll({ \"type\": \"window\" }).then(clients => this.updateStatsParent(id, request.referrer, clients));\n }\n } else {\n timeRange = this.timeRanges[id];\n }\n\n const timestamp = date.getTime();\n\n if (!timeRange.min || (timestamp < timeRange.min)) {\n timeRange.min = timestamp;\n }\n\n if (!timeRange.max || (timestamp > timeRange.max)) {\n timeRange.max = timestamp;\n }\n\n timeRange.count++;\n }\n\n updateStatsParent(id, referrer, clients) {\n for (let client of clients) {\n if (client.url === referrer) {\n //self.timeRanges[id].parent = client.id;\n if (!this.timeRanges[client.id]) {\n this.timeRanges[client.id] = { \"count\": 0, \"children\": { id: 1 } };\n } else {\n this.timeRanges[client.id].children[id] = 1;\n }\n break;\n }\n }\n }\n\n async getStats(event) {\n //const client = await self.clients.get(fe.clientId);\n\n //const timeRange = self.timeRanges[client.url] || {};\n\n const reqUrl = new URL(event.request.url);\n\n const params = new URLSearchParams(reqUrl.search);\n\n let id = 0;\n\n const url = params.get(\"url\");\n\n const clients = await self.clients.matchAll({ \"type\": \"window\" });\n\n const validIds = {};\n\n for (let client of clients) {\n if (client.url === url) {\n id = client.id;\n }\n validIds[client.id] = 1;\n }\n\n const srcRange = this.timeRanges[id] || {};\n\n const timeRange = {\n \"count\": srcRange.count || 0,\n \"min\": srcRange.min,\n \"max\": srcRange.max\n };\n\n const children = (this.timeRanges[id] && Object.keys(this.timeRanges[id].children)) || [];\n\n for (let child of children) {\n const childRange = this.timeRanges[child];\n\n if (!childRange) {\n continue;\n }\n\n\n if (!timeRange.min || (childRange.min < timeRange.min)) {\n timeRange.min = childRange.min;\n }\n\n if (!timeRange.max || (childRange.max > timeRange.max)) {\n timeRange.max = childRange.max;\n }\n\n timeRange.count += childRange.count;\n }\n\n // remove invalid timeranges\n for (let id of Object.keys(this.timeRanges)) {\n if (!validIds[id]) {\n delete this.timeRanges[id];\n }\n }\n\n return new Response(JSON.stringify(timeRange), { \"headers\": { \"Content-Type\": \"application/json\" } });\n }\n}\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/statstracker.js?"); + +/***/ }), + +/***/ "../serviceworker/src/swmain.js": +/*!**************************************!*\ + !*** ../serviceworker/src/swmain.js ***! + \**************************************/ +/*! exports provided: SWReplay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SWReplay\", function() { return SWReplay; });\n/* harmony import */ var _collection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./collection */ \"../serviceworker/src/collection.js\");\n/* harmony import */ var _loaders__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loaders */ \"../serviceworker/src/loaders.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.js */ \"../serviceworker/src/utils.js\");\n/* harmony import */ var _statstracker_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./statstracker.js */ \"../serviceworker/src/statstracker.js\");\n/* harmony import */ var _api_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./api.js */ \"../serviceworker/src/api.js\");\n/* harmony import */ var _rewrite__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./rewrite */ \"../serviceworker/src/rewrite/index.js\");\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./response */ \"../serviceworker/src/response.js\");\n/* harmony import */ var _dist_wombat_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../dist/wombat.js */ \"../serviceworker/dist/wombat.js\");\n/* harmony import */ var _webrecorder_wombat_src_wombatWorkers_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @webrecorder/wombat/src/wombatWorkers.js */ \"../serviceworker/node_modules/@webrecorder/wombat/src/wombatWorkers.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst CACHE_PREFIX = \"wabac-\";\nconst IS_AJAX_HEADER = \"x-wabac-is-ajax-req\";\n\n\n// ===========================================================================\nclass SWCollections extends _loaders__WEBPACK_IMPORTED_MODULE_1__[\"WorkerLoader\"]\n{\n constructor(prefixes, root = null, checkIpfs = false) {\n super(self);\n this.prefixes = prefixes;\n this.colls = null;\n this.inited = null;\n this.root = root;\n this.checkIpfs = checkIpfs;\n\n this._fileHandles = {};\n }\n\n _createCollection(opts) {\n return new _collection__WEBPACK_IMPORTED_MODULE_0__[\"Collection\"](opts, this.prefixes);\n }\n\n loadAll(dbColl) {\n this.colls = {};\n this.inited = super.loadAll(dbColl);\n return this.inited;\n }\n\n async getColl(name) {\n if (!this.colls[name]) {\n this.colls[name] = await this.loadColl(name);\n }\n return this.colls[name];\n }\n\n async addCollection(data, progressUpdate) {\n const opts = await super.addCollection(data, progressUpdate);\n\n if (opts && opts.name) {\n this.colls[opts.name] = this._createCollection(opts);\n }\n\n return opts;\n }\n\n async deleteColl(name, keepFileHandle = false) {\n if (this.colls[name]) {\n if (this.colls[name].store && this.colls[name].store.delete) {\n await this.colls[name].store.delete();\n }\n\n if (keepFileHandle && this.colls[name].config && this.colls[name].config.extra &&\n this.colls[name].config.extra.fileHandle) {\n this._fileHandles[this.colls[name].config.sourceUrl] = this.colls[name].config.extra.fileHandle;\n }\n }\n\n if (!await super.deleteColl(name)) {\n return false;\n }\n delete this.colls[name];\n return true;\n }\n\n async initNewColl(metadata, extraConfig = {}) {\n const coll = await super.initNewColl(metadata, extraConfig);\n if (coll) {\n this.colls[coll.name] = coll;\n }\n return coll;\n }\n\n async updateAuth(name, headers) {\n if (this.colls[name] && this.colls[name].store.updateHeaders) {\n this.colls[name].store.updateHeaders(headers);\n }\n\n await super.updateAuth(name, headers);\n }\n\n async updateMetadata(name, newMetadata) {\n const metadata = await super.updateMetadata(name, newMetadata);\n if (this.colls[name] && metadata) {\n this.colls[name].config.metadata = metadata;\n this.colls[name].metadata = metadata;\n }\n return metadata;\n }\n}\n\n\n// ===========================================================================\nclass SWReplay {\n constructor(staticData = null, ApiClass = _api_js__WEBPACK_IMPORTED_MODULE_4__[\"API\"], useIPFS = true) {\n this.prefix = self.registration ? self.registration.scope : '';\n\n this.replayPrefix = this.prefix;\n\n const sp = new URLSearchParams(self.location.search);\n\n let replayPrefixPath = \"wabac\";\n\n if (sp.has(\"replayPrefix\")) {\n replayPrefixPath = sp.get(\"replayPrefix\");\n }\n\n if (replayPrefixPath) {\n this.replayPrefix += replayPrefixPath + \"/\";\n }\n\n this.staticPrefix = this.prefix + \"static/\";\n this.distPrefix = this.prefix + \"dist/\";\n\n const prefixes = {static: this.staticPrefix,\n root: this.prefix,\n main: this.replayPrefix\n };\n\n this.staticData = staticData || new Map();\n this.staticData.set(this.staticPrefix + \"wombat.js\", {type: \"application/javascript\", content: _dist_wombat_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]});\n this.staticData.set(this.staticPrefix + \"wombatWorkers.js\", {type: \"application/javascript\", content: _webrecorder_wombat_src_wombatWorkers_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]});\n\n this.collections = new SWCollections(prefixes, sp.get(\"root\"), useIPFS);\n this.collections.loadAll(sp.get(\"dbColl\"));\n\n this.api = new ApiClass(this.collections);\n this.apiPrefix = this.replayPrefix + \"api/\";\n\n this.allowRewrittenCache = sp.get(\"allowCache\") ? true : false;\n\n this.stats = sp.get(\"stats\") ? new _statstracker_js__WEBPACK_IMPORTED_MODULE_3__[\"StatsTracker\"]() : null;\n\n self.addEventListener('install', (event) => {\n self.skipWaiting();\n });\n\n self.addEventListener('activate', (event) => {\n event.waitUntil(self.clients.claim());\n console.log(\"Activate!\");\n });\n\n self.addEventListener('fetch', (event) => {\n event.respondWith(this.handleFetch(event));\n });\n\n self.addEventListener(\"message\", (event) => {\n if (event.data.msg_type === \"reload_all\") {\n this.collections.loadAll();\n }\n });\n }\n\n handleFetch(event) {\n const url = event.request.url;\n\n // if not on our domain, just pass through (loading handled in local worker)\n if (!url.startsWith(this.prefix)) {\n return this.defaultFetch(event.request);\n }\n\n // special handling when root collection set: pass through any root files, eg. /index.html\n if (this.collections.root && url.slice(this.prefix.length).indexOf(\"/\") < 0) {\n return this.defaultFetch(event.request);\n }\n\n // JS rewrite on static/external files not from archive\n if (url.startsWith(this.staticPrefix + \"js_/\")) {\n return this.rewriteJSLive(url, event.request);\n }\n\n // handle replay / api\n if (url.startsWith(this.replayPrefix) && !url.startsWith(this.staticPrefix)) {\n return this.getResponseFor(event.request, event);\n }\n\n // current domain, but not replay, check if should cache ourselves or serve static data\n const parsedUrl = new URL(url);\n parsedUrl.search = \"\";\n parsedUrl.hash = \"\";\n const urlOnly = parsedUrl.href;\n\n for (const staticPath of this.staticData.keys()) {\n if (staticPath === urlOnly) {\n const { content, type} = this.staticData.get(staticPath);\n return new Response(content, {headers: {\"Content-Type\": type}});\n }\n }\n\n // only cache: urls in the root directory (no more slashes)\n if ((parsedUrl.protocol == \"http:\" || parsedUrl.protocol == \"https:\") && (parsedUrl.pathname.indexOf(\"/\", 1) < 0)) {\n return this.handleOffline(event.request);\n } else {\n return this.defaultFetch(event.request);\n }\n }\n\n async rewriteJSLive(url, request) {\n url = url.slice((this.staticPrefix + \"js_/\").length);\n url = new URL(url, self.location.href).href;\n request = new Request(url);\n let response = await this.defaultFetch(request);\n\n response = _response__WEBPACK_IMPORTED_MODULE_6__[\"ArchiveResponse\"].fromResponse({url, response});\n\n const rewriteOpts = {\n baseUrl: url,\n responseUrl: url,\n prefix: this.prefix,\n urlRewrite: true,\n contentRewrite: true,\n };\n\n const rewriter = new _rewrite__WEBPACK_IMPORTED_MODULE_5__[\"Rewriter\"](rewriteOpts);\n\n response = await rewriter.rewrite(response, request);\n\n return response.makeResponse();\n }\n\n defaultFetch(request) {\n const opts = {};\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n opts.cache = 'default';\n }\n return self.fetch(request, opts);\n }\n\n async ensureCached(urls) {\n const cache = await caches.open('wabac-offline');\n\n for (let url of urls) {\n url = new URL(url, self.location.href).href;\n let response = await cache.match(url, {ignoreSearch: true});\n if (response) {\n continue;\n }\n\n //console.log(`Auto Cacheing: ${url}`);\n try {\n response = await this.defaultFetch(url);\n await cache.put(url, response);\n } catch(e) {\n console.warn(`Failed to Auto Cache: ${url}`, e);\n }\n }\n }\n\n async handleOffline(request) {\n let response = null;\n \n const cache = await caches.open('wabac-offline');\n\n try {\n response = await this.defaultFetch(request);\n\n } catch(e) {\n response = await cache.match(request, {ignoreSearch: true});\n if (!response) {\n response = Object(_utils_js__WEBPACK_IMPORTED_MODULE_2__[\"notFound\"])(request, \"Sorry, this url was not cached for offline use\");\n }\n return response;\n }\n\n if (request.url.startsWith(this.prefix + \"?\")) {\n return response;\n }\n\n if (response.status === 200) {\n const cacheResponse = response.clone();\n await cache.put(request, cacheResponse);\n //console.log(`Cached: ${request.method} ${request.url}`);\n } else {\n console.warn(`Not Cacheing ${request.url} - Status ${response.status}`);\n }\n\n return response;\n }\n\n async getResponseFor(request, event) {\n // API\n if (request.url.startsWith(this.apiPrefix)) {\n if (this.stats && request.url.startsWith(this.apiPrefix + \"stats.json\")) {\n return await this.stats.getStats(event);\n }\n return await this.api.apiResponse(request.url.slice(this.apiPrefix.length), request);\n }\n\n if (request.method === \"POST\") {\n request = await this.toGetRequest(request);\n }\n\n await this.collections.inited;\n\n let response = null;\n\n const isAjax = Object(_utils_js__WEBPACK_IMPORTED_MODULE_2__[\"isAjaxRequest\"])(request);\n const range = request.headers.get('range');\n\n try {\n if (this.allowRewrittenCache && !range) {\n response = await self.caches.match(request);\n if (response && !!response.headers.get(IS_AJAX_HEADER) === isAjax) {\n return response;\n }\n }\n } catch (e) {\n response = null;\n }\n\n let collId = this.collections.root;\n\n if (!collId) {\n collId = request.url.slice(this.replayPrefix.length).split(\"/\", 1)[0];\n }\n\n const coll = await this.collections.getColl(collId);\n\n if (coll && (response = await coll.handleRequest(request, event))) {\n if (this.stats) {\n this.stats.updateStats(response.date, response.status, request, event);\n }\n\n if (this.allowRewrittenCache && response.status === 200) {\n try {\n const cache = await self.caches.open(CACHE_PREFIX + coll.name);\n if (isAjax) {\n response.headers.set(IS_AJAX_HEADER, \"true\");\n }\n const cacheResp = response.clone();\n await cache.put(getRequest, cacheResp);\n } catch (e) {\n console.warn(e);\n }\n }\n\n return response;\n }\n\n if (range) {\n console.log('Not Found Range!: ' + range);\n }\n\n return Object(_utils_js__WEBPACK_IMPORTED_MODULE_2__[\"notFound\"])(request);\n }\n\n async toGetRequest(request) {\n let query = null;\n\n const contentType = (request.headers.get(\"Content-Type\") || \"\").split(\";\")[0];\n\n if (request.method === \"POST\" || request.method === \"PUT\") {\n switch (contentType) {\n case \"application/x-www-form-urlencoded\":\n query = await request.text();\n break;\n\n case \"application/json\":\n query = await request.text();\n query = \"__wb_json_data=\" + query.replace(/\\n/g, \"\");\n break;\n }\n }\n\n const newUrl = request.url + (request.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + query;\n\n //console.log(`${request.method} ${request.url} -> ${newUrl}`);\n\n const options = {\n method: \"GET\",\n headers: request.headers,\n mode: (request.mode === 'navigate' ? 'same-origin' : request.mode),\n credentials: request.credentials,\n cache: request.cache,\n redirect: request.redirect,\n referrer: request.referrer,\n integrity: request.integrity,\n }\n\n return new Request(newUrl, options);\n }\n}\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/swmain.js?"); + +/***/ }), + +/***/ "../serviceworker/src/utils.js": +/*!*************************************!*\ + !*** ../serviceworker/src/utils.js ***! + \*************************************/ +/*! exports provided: startsWithAny, containsAny, getTS, getTSMillis, tsToDate, tsToSec, getSecondsStr, digestMessage, isNullBodyStatus, makeHeaders, notFound, isAjaxRequest, sleep, getStatusText, randomId, RangeError, AuthNeededError, AccessDeniedError, Canceled, MAX_FULL_DOWNLOAD_SIZE */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"startsWithAny\", function() { return startsWithAny; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"containsAny\", function() { return containsAny; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTS\", function() { return getTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTSMillis\", function() { return getTSMillis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tsToDate\", function() { return tsToDate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tsToSec\", function() { return tsToSec; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSecondsStr\", function() { return getSecondsStr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"digestMessage\", function() { return digestMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNullBodyStatus\", function() { return isNullBodyStatus; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeHeaders\", function() { return makeHeaders; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"notFound\", function() { return notFound; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAjaxRequest\", function() { return isAjaxRequest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sleep\", function() { return sleep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getStatusText\", function() { return getStatusText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomId\", function() { return randomId; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RangeError\", function() { return RangeError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AuthNeededError\", function() { return AuthNeededError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AccessDeniedError\", function() { return AccessDeniedError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Canceled\", function() { return Canceled; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_FULL_DOWNLOAD_SIZE\", function() { return MAX_FULL_DOWNLOAD_SIZE; });\n/* harmony import */ var http_status_codes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! http-status-codes */ \"../serviceworker/node_modules/http-status-codes/build/es/index.js\");\n\n\n// Threshold size for switching to range requests\nconst MAX_FULL_DOWNLOAD_SIZE = 25000000;\n\n\nfunction startsWithAny(value, iter) {\n for (const str of iter) {\n if (value.startsWith(str)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction containsAny(value, iter) {\n for (const str of iter) {\n if (value.indexOf(str) >= 0) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getTS(iso) {\n return iso.replace(/[-:T]/g, '').slice(0, 14);\n}\n\nfunction getTSMillis(iso) {\n return iso.replace(/[-:.TZ]/g, '');\n}\n\nfunction tsToDate(ts) {\n if (!ts) {\n return new Date();\n }\n\n if (ts.length < 17) {\n ts += \"00000101000000000\".substr(ts.length);\n }\n\n const datestr = (ts.substring(0, 4) + \"-\" +\n ts.substring(4, 6) + \"-\" +\n ts.substring(6, 8) + \"T\" +\n ts.substring(8, 10) + \":\" +\n ts.substring(10, 12) + \":\" +\n ts.substring(12, 14) + \".\" + \n ts.substring(14) + \"Z\");\n\n return new Date(datestr);\n};\n\nfunction tsToSec(ts) {\n return tsToDate(ts).getTime() / 1000;\n}\n\nfunction getSecondsStr(date) {\n if (!date) {\n return \"\";\n }\n\n try {\n return \"\" + parseInt(date.getTime() / 1000);\n } catch (e) {\n return \"\";\n }\n}\n\nfunction base16(hashBuffer) {\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n}\n\nasync function digestMessage(message, hashtype) {\n const msgUint8 = typeof(message) === \"string\" ? new TextEncoder().encode(message) : message;\n const hashBuffer = await crypto.subtle.digest(hashtype, msgUint8);\n return hashtype + \":\" + base16(hashBuffer);\n\n}\n\n\n//from http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript\nfunction randomId() {\n return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n}\n\nfunction makeHeaders(headers) {\n try {\n return new Headers(headers);\n } catch (e) {\n // try to sanitize the headers, if any errors\n for (let key of Object.keys(headers)) {\n const value = headers[key];\n const newValue = value.replace(/[\\r\\n]+/g, ', ');\n if (value != newValue) {\n headers[key] = newValue;\n }\n }\n return new Headers(headers)\n }\n}\n\nconst NULL_STATUS = [101, 204, 205, 304];\n\nfunction isNullBodyStatus(status) {\n return NULL_STATUS.includes(status);\n}\n\nfunction getStatusText(status) {\n try {\n return Object(http_status_codes__WEBPACK_IMPORTED_MODULE_0__[\"getReasonPhrase\"])(status);\n } catch (e) {\n return \"Unknown Status\";\n }\n}\n\nfunction isAjaxRequest(request) {\n return request.headers.get('X-Pywb-Requested-With') === 'XMLHttpRequest';\n}\n\n\nfunction notFound(request, msg, status = 404) {\n let content;\n let contentType;\n\n if (!msg) {\n msg = \"Sorry, this url was not found in the archive.\";\n }\n\n if (request.destination === \"script\" || request.headers.get(\"x-pywb-requested-with\")) {\n content = JSON.stringify(msg);\n contentType = \"application/json\";\n } else {\n content = msg;\n contentType = \"text/html\";\n }\n\n //console.log(`Not Found ${request.destination} - ${msg}`);\n\n const initOpt = {\n \"status\": status,\n \"statusText\": getStatusText(status),\n \"headers\": { \"Content-Type\": contentType }\n };\n\n return new Response(content, initOpt);\n}\n\n\n// ===========================================================================\nclass RangeError\n{\n constructor(info = {}) {\n this.info = info;\n }\n}\n\nclass AuthNeededError extends RangeError\n{\n}\n\nclass AccessDeniedError extends RangeError\n{\n}\n\nclass Canceled\n{\n}\n\nfunction sleep(millis) {\n return new Promise((resolve) => setTimeout(resolve, millis));\n}\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/utils.js?"); + +/***/ }), + +/***/ "../serviceworker/src/warcloader.js": +/*!******************************************!*\ + !*** ../serviceworker/src/warcloader.js ***! + \******************************************/ +/*! exports provided: WARCLoader, SingleRecordWARCLoader, isPage, WARCInfoOnlyWARCLoader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WARCLoader\", function() { return WARCLoader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SingleRecordWARCLoader\", function() { return SingleRecordWARCLoader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPage\", function() { return isPage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WARCInfoOnlyWARCLoader\", function() { return WARCInfoOnlyWARCLoader; });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ \"../serviceworker/src/utils.js\");\n/* harmony import */ var warcio__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! warcio */ \"../serviceworker/node_modules/warcio/main.js\");\n/* harmony import */ var _extract_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./extract.js */ \"../serviceworker/src/extract.js\");\n/* harmony import */ var _baseparser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./baseparser */ \"../serviceworker/src/baseparser.js\");\n\n\n\n\n\n\n\n\n\n// ===========================================================================\nclass WARCLoader extends _baseparser__WEBPACK_IMPORTED_MODULE_3__[\"BaseParser\"] {\n constructor(reader, abort = null, loadId = null) {\n super();\n \n this.reader = reader;\n this.abort = abort;\n this.loadId = loadId;\n\n this.anyPages = false;\n this.detectPages = false;\n\n this._lastRecord = null;\n\n this.metadata = {};\n\n this.pageMap = {};\n this.pages = [];\n this.lists = [];\n }\n\n parseWarcInfo(record) {\n if (!record.payload) {\n return;\n }\n var dec = new TextDecoder(\"utf-8\");\n const text = dec.decode(record.payload);\n\n // Webrecorder-style metadata\n for (const line of text.split(\"\\n\")) {\n if (!line.startsWith(\"json-metadata:\")) {\n continue;\n }\n \n try {\n const json = JSON.parse(line.slice(\"json-metadata:\".length));\n\n if (json.type === \"collection\") {\n this.metadata.desc = json.desc;\n this.metadata.title = json.title;\n }\n\n if (json.pages && json.pages.length) {\n this.pages = this.pages.concat(json.pages);\n\n for (const page of json.pages) {\n page.ts = Object(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"tsToDate\"])(page.timestamp).getTime();\n this.pageMap[page.ts + \"/\" + page.url] = {page};\n }\n //this.promises.push(this.db.addPages(pages));\n this.anyPages = true;\n }\n\n if (json.lists && json.lists.length) {\n this.lists = this.lists.concat(json.lists);\n // this.promises.push(this.db.addCuratedPageLists(lists, \"bookmarks\", \"public\"));\n }\n\n } catch (e) { \n console.log(\"Page Add Error\", e.toString());\n }\n }\n }\n\n index(record) {\n if (record.warcType === \"warcinfo\") {\n this.parseWarcInfo(record);\n return;\n }\n\n //record.cdx = cdx;\n\n if (!this._lastRecord) {\n this._lastRecord = record;\n return;\n }\n\n if (this._lastRecord.warcTargetURI != record.warcTargetURI) {\n this.indexReqResponse(this._lastRecord, null);\n this._lastRecord = record;\n return;\n }\n\n if (record.warcType === \"request\" && this._lastRecord.warcType === \"response\") {\n this.indexReqResponse(this._lastRecord, record);\n this._lastRecord = null;\n } else if (record.warcType === \"response\" && this._lastRecord.warcType === \"request\") {\n this.indexReqResponse(record, this._lastRecord);\n this._lastRecord = null;\n } else {\n this.indexReqResponse(this._lastRecord, null);\n this._lastRecord = record;\n }\n }\n\n indexDone() {\n if (this._lastRecord) {\n this.indexReqResponse(this._lastRecord);\n this._lastRecord = null;\n }\n }\n\n shouldIndexMetadataRecord(record) {\n const targetURI = record.warcTargetURI;\n if (targetURI && targetURI.startsWith(\"metadata://\")) {\n return true;\n }\n\n return false;\n }\n\n parseRevisitRecord(record) {\n const url = record.warcTargetURI.split(\"#\")[0];\n const date = record.warcDate;\n const ts = new Date(record.warcDate).getTime();\n\n const origURL = record.warcRefersToTargetURI;\n const origTS = new Date(record.warcRefersToDate).getTime();\n\n // self-revisit, skip\n if (origURL === url && origTS === ts) {\n return null;\n }\n\n const digest = record.warcPayloadDigest;\n\n return {url, ts, origURL, origTS, digest, pageId: null};\n }\n\n indexReqResponse(record, reqRecord) {\n const entry = this.parseRecords(record, reqRecord);\n\n if (entry) {\n this.addResource(entry);\n }\n }\n\n parseRecords(record, reqRecord) {\n switch (record.warcType) {\n case \"revisit\":\n return this.parseRevisitRecord(record);\n\n case \"resource\":\n reqRecord = null;\n break;\n\n case \"response\":\n break;\n\n case \"metadata\":\n if (!this.shouldIndexMetadataRecord(record)) {\n return null;\n }\n break;\n\n default:\n return null;\n }\n\n const url = record.warcTargetURI.split(\"#\")[0];\n const date = record.warcDate;\n\n let headers;\n let status = 200;\n let statusText = \"OK\";\n //let content = record.content;\n let cl = 0;\n let mime = \"\";\n\n if (record.httpHeaders) {\n status = Number(record.httpHeaders.statusCode) || 200;\n\n if (reqRecord && reqRecord.httpHeaders.method === \"OPTIONS\") {\n return null;\n }\n \n statusText = record.httpHeaders.statusText;\n\n headers = Object(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"makeHeaders\"])(record.httpHeaders.headers);\n\n //if (!reqRecord && !record.content.length &&\n // (headers.get(\"access-control-allow-methods\") || headers.get(\"access-control-allow-credentials\"))) {\n // return null;\n //}\n\n mime = (headers.get(\"content-type\") || \"\").split(\";\")[0];\n\n cl = parseInt(headers.get('content-length') || 0);\n\n // skip partial responses (not starting from 0)\n if (status === 206) {\n const range = headers.get(\"content-range\");\n\n const fullRange = `bytes 0-${cl-1}/${cl}`;\n\n // only include 206 responses if they are the full range\n if (range && range !== fullRange) {\n return null;\n }\n }\n\n // skip self-redirects\n if (status > 300 && status < 400) {\n const location = headers.get('location');\n if (location) {\n if (new URL(location, url).href === url) {\n return null;\n }\n }\n }\n } else {\n headers = new Headers();\n headers.set(\"content-type\", record.warcContentType);\n headers.set(\"content-length\", record.warcContentLength);\n mime = record.warcContentType;\n\n cl = record.warcContentLength;\n }\n\n let referrer = null;\n\n if (reqRecord && reqRecord.httpHeaders.headers) {\n try {\n const reqHeaders = new Headers(reqRecord.httpHeaders.headers);\n const cookie = reqHeaders.get(\"cookie\");\n if (cookie) {\n headers.set(\"x-wabac-preset-cookie\", cookie);\n }\n referrer = reqRecord.httpHeaders.headers.get(\"Referer\");\n } catch(e) {\n console.warn(e);\n }\n }\n/*\n if (cl && content.byteLength !== cl) {\n // expected mismatch due to bug in node-warc occasionally including trailing \\r\\n in record\n if (cl === content.byteLength - 2) {\n content = content.slice(0, cl);\n } else {\n // otherwise, warn about mismatch\n console.warn(`CL mismatch for ${url}: expected: ${cl}, found: ${content.byteLength}`);\n }\n }\n*/\n // if no pages found, start detection if hasn't started already\n if (this.detectPages === undefined) {\n this.detectPages = !this.anyPages;\n }\n\n if (this.detectPages) {\n if (isPage(url, status, mime)) {\n const title = url;\n this.addPage({url, date, title});\n }\n }\n\n const ts = new Date(date).getTime();\n\n const respHeaders = Object.fromEntries(headers.entries());\n\n const digest = record.warcPayloadDigest;\n\n const payload = record.payload;\n const reader = payload ? null : record.reader;\n\n const entry = {url, ts, status, mime, respHeaders, digest, payload, reader, referrer};\n\n if (this.pageMap[ts + \"/\" + url] && payload && mime.startsWith(\"text/\")) {\n this.pageMap[ts + \"/\" + url].textPromise = Object(_extract_js__WEBPACK_IMPORTED_MODULE_2__[\"extractText\"])(\n url, payload, \n headers.get(\"content-encoding\"),\n headers.get(\"transfer-encoding\")\n );\n }\n\n const extraMetadata = record.warcHeader(\"WARC-JSON-Metadata\");\n\n if (extraMetadata) {\n try {\n entry.extraOpts = JSON.parse(extraMetadata);\n } catch (e) { }\n }\n\n const pageId = record.warcHeader(\"WARC-Page-ID\");\n\n if (pageId) {\n entry.pageId = pageId;\n }\n\n return entry;\n }\n\n filterRecord(record) {\n return null;\n }\n\n async load(db, progressUpdate, totalSize) {\n this.db = db;\n\n const parser = new warcio__WEBPACK_IMPORTED_MODULE_1__[\"WARCParser\"](this.reader);\n\n let lastUpdate = 0, updateTime = 0;\n\n try {\n for await (const record of parser) {\n if (!record.warcType) {\n console.log(\"skip empty record\");\n continue;\n }\n\n if (self.interruptLoads && this.loadId && self.interruptLoads[this.loadId]) {\n progressUpdate(Math.round((parser.offset / totalSize) * 95.0), \"Loading Canceled\", parser.offset, totalSize);\n self.interruptLoads[this.loadId]();\n if (this.abort) {\n this.abort.abort();\n }\n throw new _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"Canceled\"]();\n }\n\n updateTime = new Date().getTime();\n if ((updateTime - lastUpdate) > 500) {\n progressUpdate(Math.round((parser.offset / totalSize) * 95.0), null, parser.offset, totalSize);\n lastUpdate = updateTime;\n }\n\n const skipMode = this.filterRecord(record);\n if (skipMode === \"done\") {\n if (this.abort) {\n this.abort.abort();\n }\n break;\n } else if (skipMode === \"skip\") {\n continue;\n }\n\n if (skipMode === \"skipContent\") {\n await record.skipFully();\n } else {\n await record.readFully();\n }\n \n this.index(record, parser);\n\n if (this.promises.length > 0) {\n try {\n await Promise.all(this.promises);\n } catch (e) {\n console.warn(e.toString());\n }\n this.promises = [];\n }\n }\n } catch(e) {\n if (e instanceof _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"Canceled\"]) {\n throw e;\n }\n \n progressUpdate(Math.round((parser.offset / totalSize) * 95.0),\n `Sorry there was an error downloading. Please try again (${e})`,\n parser.offset, totalSize);\n\n console.warn(e);\n }\n\n this.indexDone();\n\n progressUpdate(95);\n\n await this.finishIndexing();\n\n progressUpdate(100);\n\n return this.metadata;\n }\n\n async _finishLoad() {\n if (this.pages.length) {\n for (const {page, textPromise} of Object.values(this.pageMap)) {\n if (textPromise) {\n try {\n page.text = await textPromise;\n } catch (e) {\n console.warn(\"Error adding text: \" + e.toString());\n }\n }\n }\n this.promises.push(this.db.addPages(this.pages));\n }\n\n if (this.lists.length) {\n this.promises.push(this.db.addCuratedPageLists(this.lists, \"bookmarks\", \"public\"));\n }\n }\n}\n\n\n// ===========================================================================\nfunction isPage(url, status, mime) {\n if (status != 200) {\n return false;\n }\n\n if (!url.startsWith(\"http:\") && !url.startsWith(\"https:\") && !url.startsWith(\"blob:\")) {\n return false;\n }\n\n if (url.endsWith(\"/robots.txt\")) {\n return false;\n }\n\n // skip urls with long query\n const parts = url.split(\"?\", 2);\n\n if (parts.length === 2 && parts[1].length > parts[0].length) {\n return false;\n }\n\n // skip 'files' starting with '.' from being listed as pages\n if (parts[0].substring(parts[0].lastIndexOf(\"/\") + 1).startsWith(\".\")) {\n return false;\n }\n\n if (mime && mime !== \"text/html\") {\n return false;\n }\n\n return true;\n}\n\n\n// ===========================================================================\nclass SingleRecordWARCLoader extends WARCLoader\n{\n constructor(reader) {\n super(reader);\n this.detectPages = false;\n }\n\n addPage() {}\n\n async load() {\n const record = await new warcio__WEBPACK_IMPORTED_MODULE_1__[\"WARCParser\"](this.reader).parse();\n\n if (!record) {\n return null;\n }\n\n const entry = this.parseRecords(record, null);\n\n if (!entry || record.warcType === \"revisit\") {\n await record.readFully();\n }\n\n return entry;\n }\n}\n\n\n// ===========================================================================\nclass WARCInfoOnlyWARCLoader extends WARCLoader\n{\n filterRecord(record) {\n if (record.warcType != \"warcinfo\") {\n return \"done\";\n }\n }\n}\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/warcloader.js?"); + +/***/ }), + +/***/ "../serviceworker/src/wbnloader.js": +/*!*****************************************!*\ + !*** ../serviceworker/src/wbnloader.js ***! + \*****************************************/ +/*! exports provided: WBNLoader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WBNLoader\", function() { return WBNLoader; });\n/* harmony import */ var wbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! wbn */ \"../serviceworker/node_modules/wbn/lib/wbn.js\");\n/* harmony import */ var wbn__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(wbn__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _baseparser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./baseparser */ \"../serviceworker/src/baseparser.js\");\n\n\n\n\n\n// ===========================================================================\nclass WBNLoader extends _baseparser__WEBPACK_IMPORTED_MODULE_1__[\"BaseParser\"] {\n constructor(buffer) {\n super();\n\n this.bundle = new wbn__WEBPACK_IMPORTED_MODULE_0__[\"Bundle\"](Buffer.from(buffer));\n }\n\n async load(db) {\n this.db = db;\n const url = this.bundle.primaryURL;\n\n const date = new Date();\n\n const ts = date.getTime();\n\n const title = url;\n\n this.addPage({url, date: date.toISOString(), title});\n\n for (const url of this.bundle.urls) {\n const resp = this.bundle.getResponse(url);\n\n this.addResource({url,\n ts,\n status: resp.status,\n respHeaders: resp.headers,\n payload: resp.body\n });\n }\n\n await this.finishIndexing();\n\n return {};\n }\n}\n\n\n \n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../replayweb.page/node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///../serviceworker/src/wbnloader.js?"); + +/***/ }), + +/***/ "../serviceworker/src/ziparchive.js": +/*!******************************************!*\ + !*** ../serviceworker/src/ziparchive.js ***! + \******************************************/ +/*! exports provided: ZipRangeReader, ZipRemoteArchiveDB */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZipRangeReader\", function() { return ZipRangeReader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZipRemoteArchiveDB\", function() { return ZipRemoteArchiveDB; });\n/* harmony import */ var warcio__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warcio */ \"../serviceworker/node_modules/warcio/main.js\");\n/* harmony import */ var _remotearchivedb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./remotearchivedb */ \"../serviceworker/src/remotearchivedb.js\");\n/* harmony import */ var _warcloader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./warcloader */ \"../serviceworker/src/warcloader.js\");\n/* harmony import */ var _cdxloader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cdxloader */ \"../serviceworker/src/cdxloader.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ \"../serviceworker/src/utils.js\");\n/* harmony import */ var _remoteproxy__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./remoteproxy */ \"../serviceworker/src/remoteproxy.js\");\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! js-yaml */ \"../serviceworker/node_modules/js-yaml/index.js\");\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(js_yaml__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var json_2_csv__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! json-2-csv */ \"../serviceworker/node_modules/json-2-csv/src/converter.js\");\n/* harmony import */ var json_2_csv__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(json_2_csv__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\n\n\nconst MAIN_PAGES_JSON = \"pages/pages.jsonl\";\n\n\n// ===========================================================================\nclass ZipRemoteArchiveDB extends _remotearchivedb__WEBPACK_IMPORTED_MODULE_1__[\"RemoteSourceArchiveDB\"]\n{\n constructor(name, sourceLoader, extraConfig = null, noCache = false, fullConfig) {\n super(name, sourceLoader, noCache);\n this.zipreader = new ZipRangeReader(sourceLoader);\n\n this.externalSources = [];\n this.fuzzyUrlRules = [];\n this.useSurt = true;\n this.fullConfig = fullConfig;\n this.textIndex = fullConfig && fullConfig.metadata && fullConfig.metadata.textIndex;\n\n if (extraConfig) {\n this.initConfig(extraConfig);\n }\n }\n\n _initDB(db, oldV, newV, tx) {\n super._initDB(db, oldV, newV, tx);\n\n if (!oldV) {\n const ziplStore = db.createObjectStore(\"ziplines\", { keyPath: \"prefix\" });\n\n const zipFiles = db.createObjectStore(\"zipEntries\", { keyPath: \"filename\"});\n }\n }\n\n async init() {\n await super.init();\n\n await this.loadZipEntries();\n }\n\n async close() {\n super.close();\n caches.delete(\"cache:\" + this.name.slice(\"db:\".length));\n }\n\n async clearZipData() {\n const stores = [\"zipEntries\", \"ziplines\"];\n\n for (const store of stores) {\n await this.db.clear(store);\n }\n }\n\n async clearAll() {\n await super.clearAll();\n\n await this.clearZipData();\n }\n\n updateHeaders(headers) {\n this.zipreader.loader.headers = headers;\n }\n\n async loadZipEntries() {\n const entriesList = await this.db.getAll(\"zipEntries\");\n if (!entriesList.length) {\n return;\n }\n\n const entries = {};\n for (const entry of entriesList) {\n entries[entry.filename] = entry;\n }\n\n this.zipreader.entries = entries;\n }\n\n async saveZipEntries(entries) {\n const tx = this.db.transaction(\"zipEntries\", \"readwrite\");\n\n tx.store.clear();\n\n for (const entry of Object.values(entries)) {\n tx.store.put(entry);\n }\n\n await tx.done;\n\n this.db.clear(\"ziplines\")\n }\n\n async loadZiplinesIndex(reader, progressUpdate, totalSize) {\n let currOffset = 0;\n\n let lastUpdate = 0, updateTime = 0;\n\n let batch = [];\n let defaultFilename = \"\";\n \n for await (const line of reader.iterLines()) {\n currOffset += line.length;\n\n if (currOffset === line.length) {\n if (line.startsWith(\"!meta\")) {\n const inx = line.indexOf(\" {\");\n if (inx < 0) {\n console.warn(\"Invalid Meta Line: \" + line);\n continue;\n }\n\n const indexMetadata = JSON.parse(line.slice(inx));\n if (indexMetadata.filename) {\n defaultFilename = indexMetadata.filename;\n }\n if (indexMetadata.format !== \"cdxj-gzip-1.0\") {\n console.log(`Unknown CDXJ format \"${indexMetadata.format}\", archive may not parse correctly`);\n }\n continue;\n }\n }\n\n let entry;\n\n if (line.indexOf(\"\\t\") > 0) {\n\n let [prefix, filename, offset, length] = line.split(\"\\t\");\n offset = Number(offset);\n length = Number(length);\n\n entry = {prefix, filename, offset, length, loaded: false};\n\n this.useSurt = true;\n\n } else {\n const inx = line.indexOf(\" {\");\n if (inx < 0) {\n console.log(\"Invalid Index Line: \" + line);\n continue;\n }\n const prefix = line.slice(0, inx);\n let {offset, length, filename} = JSON.parse(line.slice(inx));\n\n filename = filename || defaultFilename;\n\n entry = {prefix, filename, offset, length, loaded: false};\n\n }\n\n updateTime = new Date().getTime();\n if ((updateTime - lastUpdate) > 500) {\n progressUpdate(Math.round((currOffset / totalSize) * 100.0), null, currOffset, totalSize);\n lastUpdate = updateTime;\n }\n\n batch.push(entry);\n }\n\n const tx = this.db.transaction(\"ziplines\", \"readwrite\");\n\n for (const entry of batch) {\n tx.store.put(entry);\n }\n\n try {\n await tx.done;\n } catch (e) {\n console.log(\"Error loading ziplines index: \", e);\n }\n }\n\n async load(db, progressUpdate, totalSize) {\n if (db !== this) {\n console.error(\"wrong db\");\n return;\n }\n\n const entries = await db.zipreader.load(true);\n\n //todo: a bit hacky, store the full arrayBuffer for blob loader\n // if size less than MAX_FULL_DOWNLOAD_SIZE\n if (this.fullConfig && this.loader.arrayBuffer &&\n this.loader.arrayBuffer.byteLength <= _utils__WEBPACK_IMPORTED_MODULE_4__[\"MAX_FULL_DOWNLOAD_SIZE\"]) {\n if (!this.fullConfig.extra) {\n this.fullConfig.extra = {};\n }\n this.fullConfig.extra.arrayBuffer = this.loader.arrayBuffer;\n }\n\n await db.saveZipEntries(entries);\n\n const indexloaders = [];\n let metadata;\n\n if (entries[\"datapackage.json\"]) {\n metadata = await this.loadMetadata(entries, await db.zipreader.loadFile(\"datapackage.json\"));\n } else if (entries[\"webarchive.yaml\"]) {\n metadata = await this.loadMetadataYAML(entries, await db.zipreader.loadFile(\"webarchive.yaml\"));\n }\n\n for (const filename of Object.keys(entries)) {\n if (filename.endsWith(\".cdx\") || filename.endsWith(\".cdxj\")) {\n // For regular cdx\n console.log(\"Loading CDX \" + filename);\n\n const reader = await db.zipreader.loadFile(filename);\n indexloaders.push(new _cdxloader__WEBPACK_IMPORTED_MODULE_3__[\"CDXLoader\"](reader).load(db));\n\n } else if (filename.endsWith(\".idx\")) {\n\n // load only if doing on-demand loading, otherwise we load the WARCs fully, ignoring existing indices\n if (this.loader.canLoadOnDemand) {\n // For compressed indices\n console.log(\"Loading IDX \" + filename);\n\n const entryTotal = db.zipreader.getCompressedSize(filename);\n\n indexloaders.push(db.loadZiplinesIndex(await db.zipreader.loadFile(filename), progressUpdate, entryTotal));\n }\n\n } else if (filename.endsWith(\".warc.gz\") || filename.endsWith(\".warc\")) {\n\n // if on-demand loading, and no metadata, load only the warcinfo records to attempt to get metadata\n if (!metadata && this.loader.canLoadOnDemand) {\n // for WR metadata at beginning of WARCS\n const abort = new AbortController();\n const reader = await db.zipreader.loadFile(filename, {signal: abort.signal, unzip: true});\n const warcinfoLoader = new _warcloader__WEBPACK_IMPORTED_MODULE_2__[\"WARCInfoOnlyWARCLoader\"](reader, abort);\n const entryTotal = db.zipreader.getCompressedSize(filename);\n metadata = await warcinfoLoader.load(db, progressUpdate, entryTotal);\n } else if (!this.loader.canLoadOnDemand) {\n // otherwise, need to load the full WARCs\n const reader = await db.zipreader.loadFile(filename, {unzip: true});\n const warcLoader = new _warcloader__WEBPACK_IMPORTED_MODULE_2__[\"WARCLoader\"](reader);\n warcLoader.detectPages = false;\n const entryTotal = db.zipreader.getCompressedSize(filename);\n metadata = await warcLoader.load(db, progressUpdate, entryTotal);\n }\n } else if (filename.endsWith(\".jsonl\") && filename.startsWith(\"pages/\") && filename !== MAIN_PAGES_JSON) {\n await this.loadPagesJSONL(filename, false);\n }\n }\n\n await Promise.all(indexloaders);\n return metadata || {};\n }\n\n async loadPagesCSV(reader) {\n const csv = new TextDecoder().decode(await reader.readFully());\n\n const pages = await Object(json_2_csv__WEBPACK_IMPORTED_MODULE_7__[\"csv2jsonAsync\"])(csv);\n\n if (pages && pages.length) {\n await this.addPages(pages);\n }\n }\n\n initConfig(config) {\n if (config.decodeResponses !== undefined) {\n this.fullConfig.decode = config.decodeResponses;\n }\n if (config.useSurt !== undefined) {\n this.useSurt = config.useSurt;\n }\n if (config.es) {\n for (const [prefix, externalPath] of config.es) {\n const external = new _remoteproxy__WEBPACK_IMPORTED_MODULE_5__[\"LiveAccess\"](externalPath, true, false);\n this.externalSources.push({prefix, external});\n }\n }\n if (config.fuzzy) {\n for (const [matchStr, replace] of config.fuzzy) {\n const match = new RegExp(matchStr);\n this.fuzzyUrlRules.push({match, replace});\n }\n }\n if (config.textIndex) {\n this.textIndex = config.textIndex;\n }\n }\n\n async getTextIndex() {\n const headers = {\"Content-Type\": \"application/ndjson\"};\n\n if (!this.textIndex) {\n return new Response(\"\", {headers});\n }\n\n const size = this.zipreader.getCompressedSize(this.textIndex);\n\n if (size > 0) {\n headers[\"Content-Length\"] = \"\" + size;\n }\n\n const reader = await this.zipreader.loadFile(this.textIndex, {unzip: true});\n\n return new Response(reader.getReadableStream(), {headers});\n }\n\n // New WACZ 1.0.0 Format\n async loadMetadata(entries, reader) {\n const text = new TextDecoder().decode(await reader.readFully());\n const root = JSON.parse(text);\n\n if (root.config !== undefined) {\n this.initConfig(root.config);\n }\n\n const metadata = root.metadata || {};\n\n // All Pages\n if (entries[MAIN_PAGES_JSON]) {\n const pageInfo = await this.loadPagesJSONL(MAIN_PAGES_JSON);\n if (pageInfo.hasText) {\n this.textIndex = metadata.textIndex = MAIN_PAGES_JSON;\n }\n }\n\n return metadata;\n }\n\n async loadPagesJSONL(filename, isMainPages = true) {\n const PAGE_BATCH_SIZE = 500;\n\n const reader = await this.zipreader.loadFile(filename, {unzip: true});\n\n let pageListInfo = null;\n\n const pages = [];\n\n for await (const textLine of reader.iterLines()) {\n const page = JSON.parse(textLine);\n\n if (!pageListInfo) {\n pageListInfo = page;\n continue;\n }\n\n pages.push(page);\n\n if (pages.length === PAGE_BATCH_SIZE) {\n if (isMainPages) {\n await this.addPages(pages);\n } else {\n await this.addCuratedPageList(pageListInfo, pages);\n }\n pages = [];\n }\n }\n\n if (pages.length) {\n if (isMainPages) {\n await this.addPages(pages);\n } else {\n await this.addCuratedPageList(pageListInfo, pages);\n }\n }\n\n return pageListInfo;\n }\n\n // Old WACZ 0.1.0 Format\n async loadMetadataYAML(entries, reader) {\n const text = new TextDecoder().decode(await reader.readFully());\n const root = js_yaml__WEBPACK_IMPORTED_MODULE_6___default.a.safeLoad(text);\n\n if (root.config !== undefined) {\n this.initConfig(root.config);\n }\n\n const metadata = {\n desc: root.desc,\n title: root.title\n };\n\n if (root.textIndex) {\n metadata.textIndex = root.textIndex;\n }\n\n // All pages\n const pages = root.pages || [];\n\n if (pages && pages.length) {\n await this.addPages(pages);\n } else {\n if (entries[\"pages.csv\"]) {\n await this.loadPagesCSV(await this.zipreader.loadFile(\"pages.csv\"));\n }\n }\n\n // Curated Pages\n const pageLists = root.pageLists || [];\n\n if (pageLists && pageLists.length) {\n await this.addCuratedPageLists(pageLists, \"pages\", \"show\");\n }\n\n return metadata;\n }\n\n async loadRecordFromSource(cdx) {\n let filename;\n let offset = 0;\n let length = -1;\n\n const source = cdx.source;\n\n if (typeof(source) === \"string\") {\n filename = source;\n } else if (typeof(source) === \"object\") {\n offset = source.start;\n length = source.length;\n filename = source.path;\n } else {\n return null;\n }\n\n let loader = null;\n \n const fileStream = await this.zipreader.loadFileCheckDirs(filename, offset, length);\n loader = new _remotearchivedb__WEBPACK_IMPORTED_MODULE_1__[\"SingleRecordWARCLoader\"](fileStream);\n\n return await loader.load();\n }\n\n getSurt(url) {\n try {\n url = url.replace(/www\\d*\\./, '');\n const urlObj = new URL(url);\n\n const hostParts = urlObj.hostname.split(\".\").reverse();\n let surt = hostParts.join(\",\");\n if (urlObj.port) {\n surt += \":\" + urlObj.port;\n }\n surt += \")\";\n surt += urlObj.pathname;\n if (urlObj.search) {\n urlObj.searchParams.sort();\n surt += urlObj.search;\n }\n return surt.toLowerCase();\n } catch (e) {\n return url;\n }\n }\n\n async loadFromZiplines(url, datetime) {\n const timestamp = datetime ? Object(_utils__WEBPACK_IMPORTED_MODULE_4__[\"getTS\"])(new Date(datetime).toISOString()) : \"\";\n\n let prefix;\n let checkPrefix;\n\n const surt = this.useSurt ? this.getSurt(url) : url;\n\n prefix = surt + \" 9\";\n checkPrefix = surt;\n\n const tx = this.db.transaction(\"ziplines\", \"readonly\");\n\n const values = [];\n\n // and first match\n const key = IDBKeyRange.upperBound(prefix, false);\n\n for await (const cursor of tx.store.iterate(key, \"prev\")) {\n // add to beginning as processing entries in reverse here\n values.unshift(cursor.value);\n if (!cursor.value.prefix.split(\" \")[0].startsWith(checkPrefix)) {\n break;\n }\n }\n\n await tx.done;\n\n const cdxloaders = [];\n\n for (const zipblock of values) {\n if (zipblock.loaded) {\n continue;\n }\n\n const filename = \"indexes/\" + zipblock.filename;\n const params = {offset: zipblock.offset, length: zipblock.length, unzip: true}\n const reader = await this.zipreader.loadFile(filename, params);\n\n cdxloaders.push(new _cdxloader__WEBPACK_IMPORTED_MODULE_3__[\"CDXLoader\"](reader).load(this));\n\n zipblock.loaded = true;\n await this.db.put(\"ziplines\", zipblock);\n }\n\n await Promise.all(cdxloaders);\n\n return cdxloaders.length > 0;\n }\n\n async getResource(request, rwPrefix, event) {\n if (this.externalSources.length) {\n for (const {prefix, external} of this.externalSources) {\n if (request.url.startsWith(prefix)) {\n try {\n return await external.getResource(request, rwPrefix, event);\n } catch(e) {\n console.warn(\"Upstream Error\", e);\n //return new Response(\"Upstream Error\", {status: 503});\n }\n }\n }\n }\n\n let res = await super.getResource(request, rwPrefix, event);\n\n if (res) {\n return res;\n }\n\n if (this.fuzzyUrlRules.length) {\n for (const {match, replace} of this.fuzzyUrlRules) {\n const newUrl = request.url.replace(match, replace);\n if (newUrl && newUrl !== request.url) {\n request.url = newUrl;\n res = await super.getResource(request, rwPrefix, event);\n if (res) {\n return res;\n }\n }\n }\n }\n\n return null;\n }\n\n async lookupUrl(url, datetime, opts = {}) {\n try {\n let result = await super.lookupUrl(url, datetime, opts);\n\n if (result && (!opts.noRevisits || result.mime !== \"warc/revisit\")) {\n return result;\n }\n\n if (await this.loadFromZiplines(url, datetime)) {\n result = await super.lookupUrl(url, datetime, opts);\n }\n\n return result;\n } catch (e) {\n console.warn(e);\n return null;\n }\n }\n\n async resourcesByUrlAndMime(url, ...args) {\n let results = await super.resourcesByUrlAndMime(url, ...args);\n\n if (results.length > 0) {\n return results;\n }\n\n if (await this.loadFromZiplines(url, \"\")) {\n results = await super.resourcesByUrlAndMime(url, ...args);\n }\n\n return results;\n }\n}\n\n\n// ===========================================================================\nconst MAX_INT32 = 0xFFFFFFFF;\nconst MAX_INT16 = 0xFFFF;\n\n\n// ===========================================================================\nclass ZipRangeReader\n{\n constructor(loader, entries = null) {\n this.loader = loader;\n this.entries = entries;\n }\n\n async load(always = false) {\n if (!this.entries || always) {\n const totalLength = await this.loader.getLength();\n const length = Math.min(MAX_INT16 + 23, totalLength);\n const start = totalLength - length;\n const endChunk = await this.loader.getRange(start, length);\n\n this.entries = this._loadEntries(endChunk, start);\n }\n return this.entries;\n }\n\n _loadEntries(data, dataStartOffset) {\n // Adapted from\n // Copyright (c) 2016 Rob Wu (https://robwu.nl)\n // * Published under a MIT license.\n // * https://github.com/Rob--W/zipinfo.js\n const length = data.byteLength;\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\n const utf8Decoder = new TextDecoder(\"utf8\");\n const asciiDecoder = new TextDecoder(\"ascii\");\n const entries = {};\n\n let entriesLeft = 0;\n let offset = 0;\n let endoffset = length;\n // Find EOCD (0xFFFF is the maximum size of an optional trailing comment).\n for (let i = length - 22, ii = Math.max(0, i - MAX_INT16); i >= ii; --i) {\n if (data[i] === 0x50 && data[i + 1] === 0x4b &&\n data[i + 2] === 0x05 && data[i + 3] === 0x06) {\n endoffset = i;\n offset = view.getUint32(i + 16, true);\n entriesLeft = view.getUint16(i + 8, true);\n break;\n }\n }\n\n //ZIP64 find offset\n if (offset === MAX_INT32 || entriesLeft === MAX_INT16) {\n if (view.getUint32(endoffset - 20, true) !== 0x07064b50) {\n console.warn('invalid zip64 EOCD locator');\n return;\n }\n\n const zip64Offset = this.getUint64(view, endoffset - 12, true);\n\n const viewOffset = zip64Offset - dataStartOffset;\n\n if (view.getUint32(viewOffset, true) !== 0x06064b50) {\n console.warn('invalid zip64 EOCD record');\n return;\n }\n\n entriesLeft = this.getUint64(view, viewOffset + 32, true);\n offset = this.getUint64(view, viewOffset + 48, true);\n //zip64 = true;\n }\n\n if (dataStartOffset) {\n offset -= dataStartOffset;\n }\n\n if (offset >= length || offset <= 0) {\n // EOCD not found or malformed. Try to recover if possible (the result is\n // most likely going to be incomplete or bogus, but we can try...).\n offset = -1;\n entriesLeft = MAX_INT16;\n while (++offset < length && data[offset] !== 0x50 &&\n data[offset + 1] !== 0x4b && data[offset + 2] !== 0x01 &&\n data[offset + 3] !== 0x02);\n }\n\n endoffset -= 46; // 46 = minimum size of an entry in the central directory.\n\n while (--entriesLeft >= 0 && offset < endoffset) {\n if (view.getUint32(offset) != 0x504b0102) {\n break;\n }\n\n const bitFlag = view.getUint16(offset + 8, true);\n let compressedSize = view.getUint32(offset + 20, true);\n let uncompressedSize = view.getUint32(offset + 24, true);\n const fileNameLength = view.getUint16(offset + 28, true);\n const extraFieldLength = view.getUint16(offset + 30, true);\n const fileCommentLength = view.getUint16(offset + 32, true);\n\n const deflate = (view.getUint16(offset + 10, true) === 8);\n \n let localEntryOffset = view.getUint32(offset + 42, true);\n\n const decoder = (bitFlag & 0x800) ? utf8Decoder : asciiDecoder;\n const filename = decoder.decode(data.subarray(offset + 46, offset + 46 + fileNameLength));\n\n // ZIP64 support\n if (compressedSize === MAX_INT32 ||\n uncompressedSize === MAX_INT32 ||\n localEntryOffset === MAX_INT32) {\n\n let extraFieldOffset = offset + 46 + fileNameLength;\n const efEnd = extraFieldOffset + extraFieldLength - 3;\n while (extraFieldOffset < efEnd) {\n const type = view.getUint16(extraFieldOffset, true);\n let size = view.getUint16(extraFieldOffset + 2, true);\n extraFieldOffset += 4;\n\n // zip64 info\n if (type === 1) {\n if (uncompressedSize === MAX_INT32 && size >= 8) {\n uncompressedSize = this.getUint64(view, extraFieldOffset, true);\n extraFieldOffset += 8;\n size -= 8;\n }\n if (compressedSize === MAX_INT32 && size >= 8) {\n compressedSize = this.getUint64(view, extraFieldOffset, true);\n extraFieldOffset += 8;\n size -= 8;\n }\n if (localEntryOffset === MAX_INT32 && size >= 8) {\n localEntryOffset = this.getUint64(view, extraFieldOffset, true);\n extraFieldOffset += 8;\n size -= 8;\n }\n }\n\n extraFieldOffset += size\n }\n }\n\n const directory = filename.endsWith('/');\n\n if (!directory) {\n entries[filename] = {\n filename,\n deflate,\n uncompressedSize,\n compressedSize,\n localEntryOffset\n };\n }\n\n offset += 46 + fileNameLength + extraFieldLength + fileCommentLength;\n }\n return entries;\n }\n\n async loadFileCheckDirs(name, offset, length) {\n if (this.entries === null) {\n await this.load();\n }\n\n if (this.entries[\"archive/\" + name]) {\n name = \"archive/\" + name;\n } else if (this.entries[\"warcs/\" + name]) {\n name = \"warcs/\" + name;\n } else {\n for (const filename of Object.keys(this.entries)) {\n if (filename.endsWith(\"/\" + name)) {\n name = filename;\n break;\n }\n }\n }\n\n return await this.loadFile(name, {offset, length, unzip: true});\n }\n\n getCompressedSize(name) {\n if (this.entries === null) {\n return -1;\n }\n\n const entry = this.entries[name];\n\n if (!entry) {\n return -1;\n }\n\n return entry.compressedSize;\n }\n\n async loadFile(name, {offset = 0, length = -1, signal = null, unzip = false} = {}) {\n if (this.entries === null) {\n await this.load();\n }\n\n const entry = this.entries[name];\n\n if (!entry) {\n return null;\n }\n\n if (entry.offset === undefined) {\n const header = await this.loader.getRange(entry.localEntryOffset, 30);\n const view = new DataView(header.buffer, header.byteOffset, header.byteLength);\n\n const fileNameLength = view.getUint16(26, true);\n const extraFieldLength = view.getUint16(28, true);\n\n entry.offset = 30 + fileNameLength + extraFieldLength + entry.localEntryOffset;\n }\n\n length = length < 0 ? entry.compressedSize : Math.min(length, entry.compressedSize - offset);\n\n offset += entry.offset;\n\n const body = await this.loader.getRange(offset, length, true, signal);\n\n // if not unzip, deflate if needed only\n if (!unzip) {\n return new warcio__WEBPACK_IMPORTED_MODULE_0__[\"AsyncIterReader\"](body.getReader(), entry.deflate ? \"deflate\" : null);\n // if unzip and not deflated, reuse AsyncIterReader for auto unzipping\n } else if (!entry.deflate) {\n return new warcio__WEBPACK_IMPORTED_MODULE_0__[\"AsyncIterReader\"](body.getReader());\n } else {\n // need to deflate, than unzip again\n return new warcio__WEBPACK_IMPORTED_MODULE_0__[\"AsyncIterReader\"](new warcio__WEBPACK_IMPORTED_MODULE_0__[\"AsyncIterReader\"](body.getReader(), \"deflate\"));\n }\n }\n\n // from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView\n getUint64(dataview, byteOffset, littleEndian) {\n // split 64-bit number into two 32-bit (4-byte) parts\n const left = dataview.getUint32(byteOffset, littleEndian);\n const right = dataview.getUint32(byteOffset+4, littleEndian);\n\n // combine the two 32-bit values\n const combined = littleEndian? left + 2**32*right : 2**32*left + right;\n\n if (!Number.isSafeInteger(combined))\n console.warn(combined, 'exceeds MAX_SAFE_INTEGER. Precision may be lost');\n\n return combined;\n }\n}\n\n\n\n\n\n\n//# sourceURL=webpack:///../serviceworker/src/ziparchive.js?"); + +/***/ }), + +/***/ "./index.html": +/*!********************!*\ + !*** ./index.html ***! + \********************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"\\n\\n\\n\\n\\nReplayWeb.page\\n\\n\\n\\n\\n\\n\\n\\n\");\n\n//# sourceURL=webpack:///./index.html?"); + +/***/ }), + +/***/ "./node_modules/base64-js/index.js": +/*!*****************************************!*\ + !*** ./node_modules/base64-js/index.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n//# sourceURL=webpack:///./node_modules/base64-js/index.js?"); + +/***/ }), + +/***/ "./node_modules/core-util-is/lib/util.js": +/*!***********************************************!*\ + !*** ./node_modules/core-util-is/lib/util.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/core-util-is/lib/util.js?"); + +/***/ }), + +/***/ "./node_modules/events/events.js": +/*!***************************************!*\ + !*** ./node_modules/events/events.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n\n\n//# sourceURL=webpack:///./node_modules/events/events.js?"); + +/***/ }), + +/***/ "./node_modules/ieee754/index.js": +/*!***************************************!*\ + !*** ./node_modules/ieee754/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack:///./node_modules/ieee754/index.js?"); + +/***/ }), + +/***/ "./node_modules/inherits/inherits_browser.js": +/*!***************************************************!*\ + !*** ./node_modules/inherits/inherits_browser.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/inherits/inherits_browser.js?"); + +/***/ }), + +/***/ "./node_modules/isarray/index.js": +/*!***************************************!*\ + !*** ./node_modules/isarray/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack:///./node_modules/isarray/index.js?"); + +/***/ }), + +/***/ "./node_modules/node-libs-browser/node_modules/buffer/index.js": +/*!*********************************************************************!*\ + !*** ./node_modules/node-libs-browser/node_modules/buffer/index.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js?"); + +/***/ }), + +/***/ "./node_modules/node-libs-browser/node_modules/punycode/punycode.js": +/*!**************************************************************************!*\ + !*** ./node_modules/node-libs-browser/node_modules/punycode/punycode.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = true && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = true && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttrue\n\t) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n\t\t\treturn punycode;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}(this));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module), __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js?"); + +/***/ }), + +/***/ "./node_modules/process-nextick-args/index.js": +/*!****************************************************!*\ + !*** ./node_modules/process-nextick-args/index.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/process-nextick-args/index.js?"); + +/***/ }), + +/***/ "./node_modules/process/browser.js": +/*!*****************************************!*\ + !*** ./node_modules/process/browser.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack:///./node_modules/process/browser.js?"); + +/***/ }), + +/***/ "./node_modules/querystring-es3/decode.js": +/*!************************************************!*\ + !*** ./node_modules/querystring-es3/decode.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\n\n//# sourceURL=webpack:///./node_modules/querystring-es3/decode.js?"); + +/***/ }), + +/***/ "./node_modules/querystring-es3/encode.js": +/*!************************************************!*\ + !*** ./node_modules/querystring-es3/encode.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n\n\n//# sourceURL=webpack:///./node_modules/querystring-es3/encode.js?"); + +/***/ }), + +/***/ "./node_modules/querystring-es3/index.js": +/*!***********************************************!*\ + !*** ./node_modules/querystring-es3/index.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.decode = exports.parse = __webpack_require__(/*! ./decode */ \"./node_modules/querystring-es3/decode.js\");\nexports.encode = exports.stringify = __webpack_require__(/*! ./encode */ \"./node_modules/querystring-es3/encode.js\");\n\n\n//# sourceURL=webpack:///./node_modules/querystring-es3/index.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/duplex-browser.js": +/*!********************************************************!*\ + !*** ./node_modules/readable-stream/duplex-browser.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n\n//# sourceURL=webpack:///./node_modules/readable-stream/duplex-browser.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_duplex.js": +/*!************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_duplex.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n\n\n/**/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_duplex.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_passthrough.js": +/*!*****************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_passthrough.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\n\n/**/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_readable.js": +/*!**************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_readable.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n/**/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/**/\n\n/**/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/readable-stream/node_modules/safe-buffer/index.js\").Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\n/**/\nvar debugUtil = __webpack_require__(/*! util */ 0);\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ \"./node_modules/readable-stream/lib/internal/streams/BufferList.js\");\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_readable.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_transform.js": +/*!***************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_transform.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\n\nmodule.exports = Transform;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n/**/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_transform.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_writable.js": +/*!**************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_writable.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\n\n/**/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/**/\n\n/**/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/**/\n\n/**/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/readable-stream/node_modules/safe-buffer/index.js\").Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\"), __webpack_require__(/*! ./../../timers-browserify/main.js */ \"./node_modules/timers-browserify/main.js\").setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_writable.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/BufferList.js": +/*!*************************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/BufferList.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/readable-stream/node_modules/safe-buffer/index.js\").Buffer;\nvar util = __webpack_require__(/*! util */ 1);\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js": +/*!**********************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/node_modules/safe-buffer/index.js": +/*!************************************************************************!*\ + !*** ./node_modules/readable-stream/node_modules/safe-buffer/index.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n\n\n//# sourceURL=webpack:///./node_modules/readable-stream/node_modules/safe-buffer/index.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/passthrough.js": +/*!*****************************************************!*\ + !*** ./node_modules/readable-stream/passthrough.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./readable */ \"./node_modules/readable-stream/readable-browser.js\").PassThrough\n\n\n//# sourceURL=webpack:///./node_modules/readable-stream/passthrough.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/readable-browser.js": +/*!**********************************************************!*\ + !*** ./node_modules/readable-stream/readable-browser.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/readable-stream/lib/_stream_passthrough.js\");\n\n\n//# sourceURL=webpack:///./node_modules/readable-stream/readable-browser.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/transform.js": +/*!***************************************************!*\ + !*** ./node_modules/readable-stream/transform.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./readable */ \"./node_modules/readable-stream/readable-browser.js\").Transform\n\n\n//# sourceURL=webpack:///./node_modules/readable-stream/transform.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/writable-browser.js": +/*!**********************************************************!*\ + !*** ./node_modules/readable-stream/writable-browser.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\n\n\n//# sourceURL=webpack:///./node_modules/readable-stream/writable-browser.js?"); + +/***/ }), + +/***/ "./node_modules/safe-buffer/index.js": +/*!*******************************************!*\ + !*** ./node_modules/safe-buffer/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n\n\n//# sourceURL=webpack:///./node_modules/safe-buffer/index.js?"); + +/***/ }), + +/***/ "./node_modules/setimmediate/setImmediate.js": +/*!***************************************************!*\ + !*** ./node_modules/setimmediate/setImmediate.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a