diff --git a/18b8c68e64126db9ce88.ttf b/18b8c68e64126db9ce88.ttf new file mode 100644 index 0000000..721147d Binary files /dev/null and b/18b8c68e64126db9ce88.ttf differ diff --git a/26a30a5f1103393aac70.woff2 b/26a30a5f1103393aac70.woff2 new file mode 100644 index 0000000..66691b8 Binary files /dev/null and b/26a30a5f1103393aac70.woff2 differ diff --git a/3e3cb905bf27a4c8c370.ttf b/3e3cb905bf27a4c8c370.ttf new file mode 100644 index 0000000..e98b84c Binary files /dev/null and b/3e3cb905bf27a4c8c370.ttf differ diff --git a/3ee890bd00a8751acbc3.woff b/3ee890bd00a8751acbc3.woff new file mode 100644 index 0000000..0df2bc7 Binary files /dev/null and b/3ee890bd00a8751acbc3.woff differ diff --git a/828b5dfc027ace162d5d.woff b/828b5dfc027ace162d5d.woff new file mode 100644 index 0000000..80f70f0 Binary files /dev/null and b/828b5dfc027ace162d5d.woff differ diff --git a/9cd7588f47651215d52f.ttf b/9cd7588f47651215d52f.ttf new file mode 100644 index 0000000..96fd6a1 Binary files /dev/null and b/9cd7588f47651215d52f.ttf differ diff --git a/ab15890d6f6bc7f32adf.woff2 b/ab15890d6f6bc7f32adf.woff2 new file mode 100644 index 0000000..b09ea9d Binary files /dev/null and b/ab15890d6f6bc7f32adf.woff2 differ diff --git a/d0a58d956cf2f4cf078f.woff2 b/d0a58d956cf2f4cf078f.woff2 new file mode 100644 index 0000000..ffb4206 Binary files /dev/null and b/d0a58d956cf2f4cf078f.woff2 differ diff --git a/df60e0aa5fcfd8bb7d54.woff2 b/df60e0aa5fcfd8bb7d54.woff2 new file mode 100644 index 0000000..622e5f1 Binary files /dev/null and b/df60e0aa5fcfd8bb7d54.woff2 differ diff --git a/e148c4a1158f8cee8285.woff b/e148c4a1158f8cee8285.woff new file mode 100644 index 0000000..7cb4990 Binary files /dev/null and b/e148c4a1158f8cee8285.woff differ diff --git a/e7dd1399358ca04ed457.ttf b/e7dd1399358ca04ed457.ttf new file mode 100644 index 0000000..a5f0736 Binary files /dev/null and b/e7dd1399358ca04ed457.ttf differ diff --git a/eec0ea57721daa33c7a2.woff b/eec0ea57721daa33c7a2.woff new file mode 100644 index 0000000..1d50f80 Binary files /dev/null and b/eec0ea57721daa33c7a2.woff differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..69f6735 --- /dev/null +++ b/index.html @@ -0,0 +1,636 @@ +JavaScript Minify Tool | DigitalOcean

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel
\ No newline at end of file diff --git a/minify-tool-banner.png b/minify-tool-banner.png new file mode 100644 index 0000000..83d3dda Binary files /dev/null and b/minify-tool-banner.png differ diff --git a/minify-tool-banner.svg b/minify-tool-banner.svg new file mode 100644 index 0000000..8293f60 --- /dev/null +++ b/minify-tool-banner.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/minify-tool.png b/minify-tool.png new file mode 100644 index 0000000..3aa455c Binary files /dev/null and b/minify-tool.png differ diff --git a/minify-tool.svg b/minify-tool.svg new file mode 100644 index 0000000..861159b --- /dev/null +++ b/minify-tool.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/mount.js b/mount.js new file mode 100644 index 0000000..c466422 --- /dev/null +++ b/mount.js @@ -0,0 +1,3 @@ +/*! For license information please see mount.js.LICENSE.txt */ +(()=>{var e={878:function(e,t,n){var i=n(851).lW;!function(e){"use strict";const t=",".charCodeAt(0),n=";".charCodeAt(0),r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=new Uint8Array(64),s=new Uint8Array(128);for(let e=0;e<64;e++){const t=r.charCodeAt(e);s[t]=e,o[e]=t}const a="undefined"!=typeof TextDecoder?new TextDecoder:void 0!==i?{decode:e=>i.from(e.buffer,e.byteOffset,e.byteLength).toString()}:{decode(e){let t="";for(let n=0;n>>=1,l&&(r=-2147483648|-r),n[i]+=r,t}function u(e,i){if(i>=e.length)return!1;const r=e.charCodeAt(i);return r!==t&&r!==n}function c(e){e.sort(f)}function f(e,t){return e[0]-t[0]}function p(e){const i=new Int32Array(5);let r=new Uint8Array(1024),o=0;for(let s=0;s0&&(r=d(r,o,1),r[o++]=n),0!==a.length){i[0]=0;for(let e=0;e0&&(r[o++]=t),o=h(r,o,i,n,0),1!==n.length&&(o=h(r,o,i,n,1),o=h(r,o,i,n,2),o=h(r,o,i,n,3),4!==n.length&&(o=h(r,o,i,n,4)))}}}return a.decode(r.subarray(0,o))}function d(e,t,n){if(e.length>t+n)return e;const i=new Uint8Array(2*e.length);return i.set(e),i}function h(e,t,n,i,r){const s=i[r];let a=s-n[r];n[r]=s,a=a<0?-a<<1|1:a<<1;do{let n=31&a;a>>>=5,a>0&&(n|=32),e[t++]=o[n]}while(a>0);return t}const m=/^[\w+.-]+:\/\//,_=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?/,g=/^file:(?:\/\/((?![a-z]:)[^/]*)?)?(\/?.*)/i;function v(e){return e.startsWith("/")}function y(e){const t=_.exec(e);return E(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/")}function E(e,t,n,i,r){return{scheme:e,user:t,host:n,port:i,path:r,relativePath:!1}}function b(e){if(function(e){return e.startsWith("//")}(e)){const t=y("http:"+e);return t.scheme="",t}if(v(e)){const t=y("http://foo.com"+e);return t.scheme="",t.host="",t}if(function(e){return e.startsWith("file:")}(e))return function(e){const t=g.exec(e),n=t[2];return E("file:","",t[1]||"","",v(n)?n:"/"+n)}(e);if(function(e){return m.test(e)}(e))return y(e);const t=y("http://foo.com/"+e);return t.scheme="",t.host="",t.relativePath=!0,t}function S(e){const{relativePath:t}=e,n=e.path.split("/");let i=1,r=0,o=!1;for(let e=1;e=0&&e[i][T]===t;i--,n--);return n}function M(e,t,n,i){const{lastKey:r,lastNeedle:o,lastIndex:s}=n;let a=0,l=e.length-1;if(i===r){if(t===o)return x=-1!==s&&e[s][T]===t,s;t>=o?a=-1===s?0:s:l=s}return n.lastKey=i,n.lastNeedle=t,n.lastIndex=function(e,t,n,i){for(;n<=i;){const r=n+(i-n>>1),o=e[r][T]-t;if(0===o)return x=!0,r;o<0?n=r+1:i=r-1}return x=!1,n-1}(e,t,a,l)}const I=function(e,t){const n="string"==typeof e?JSON.parse(e):e;if(!("sections"in n))return new H(n,t);const i=[],r=[],o=[],s=[],{sections:a}=n;let l=0;for(;l0&&N(a[l],t,i,r,o,s,1/0,1/0);const u={version:3,file:n.file,names:s,sources:r,sourcesContent:o,mappings:i};return U(u)};function N(e,t,n,i,r,o,s,a){const l=I(e.map,t),{line:u,column:c}=e.offset,f=i.length,p=o.length,d=L(l),{resolvedSources:h}=l;P(i,h),P(r,l.sourcesContent||function(e){const t=[];for(let n=0;n=a)break;if(1===o.length){i.push([s]);continue}const l=f+o[1],u=o[2],c=o[3];4!==o.length?i.push([s,l,u,c,p+o[4]]):i.push([s,l,u,c])}}}function P(e,t){for(let n=0;nA(t||"",e)))}else this.resolvedSources=l.map((e=>e||""));const{mappings:c}=i;"string"==typeof c?(this._encoded=c,this._decoded=void 0):(this._encoded=void 0,this._decoded=function(e,t){const n=C(e,0);if(n===e.length)return e;t||(e=e.slice());for(let i=n;ie._decoded||(e._decoded=function(e){const i=new Int32Array(5),r=[];let o=[],s=!0,a=0;for(let f=0;f{if(--t<0)throw new Error("`line` must be greater than 0 (lines start at line 1)");if(n<0)throw new Error("`column` must be greater than or equal to 0 (columns start at column 0)");const r=L(e);if(t>=r.length)return B;const o=z(r[t],e._decodedMemo,t,n,i||1);if(null==o)return B;if(1==o.length)return B;const{names:s,resolvedSources:a}=e;return{source:a[o[1]],line:o[2]+1,column:o[3],name:5===o.length?s[o[4]]:null}},U=(e,t)=>{const n=Object.assign({},e);n.mappings=[];const i=new H(n,t);return i._decoded=e.mappings,i};class X{constructor(){this._indexes={__proto__:null},this.array=[]}}K=(e,t)=>e._indexes[t],G=(e,t)=>{const n=K(e,t);if(void 0!==n)return n;const{array:i,_indexes:r}=e;return r[t]=i.push(t)-1};let $,W,j,q,Y;class Z{constructor({file:e,sourceRoot:t}={}){this._names=new X,this._sources=new X,this._sourcesContent=[],this._mappings=[],this.file=e,this.sourceRoot=t}}function J(e,t,n){for(let n=e.length;n>t;n--)e[n]=e[n-1];e[t]=n}$=(e,t)=>function(e,t,n){const{generated:i,source:r,original:o,name:s}=n;if(!r)return Y(e,t,i.line-1,i.column,null,null,null,null);const a=r;return Y(e,t,i.line-1,i.column,a,o.line-1,o.column,s)}(!0,e,t),W=(e,t,n)=>{const{_sources:i,_sourcesContent:r}=e;r[G(i,t)]=n},j=e=>{const{file:t,sourceRoot:n,_mappings:i,_sources:r,_sourcesContent:o,_names:s}=e;return function(e){const{length:t}=e;let n=t;for(let t=n-1;t>=0&&!(e[t].length>0);n=t,t--);n{const t=j(e);return Object.assign(Object.assign({},t),{mappings:p(t.mappings)})},Y=(e,t,n,i,r,o,s,a)=>{const{_mappings:l,_sources:u,_sourcesContent:c,_names:f}=t,p=function(e,t){for(let n=e.length;n<=t;n++)e[n]=[];return e[t]}(l,n),d=function(e,t){let n=e.length;for(let i=n-1;i>=0&&!(t>=e[i][0]);n=i--);return n}(p,i);if(!r){if(e&&function(e,t){return 0===t||1===e[t-1].length}(p,d))return;return J(p,d,[i])}const h=G(u,r),m=a?G(f,a):-1;if(h===c.length&&(c[h]=null),!e||!function(e,t,n,i,r,o){if(0===t)return!1;const s=e[t-1];return 1!==s.length&&n===s[1]&&i===s[2]&&r===s[3]&&o===(5===s.length?s[4]:-1)}(p,d,h,o,s,m))return J(p,d,a?[i,h,o,s,m]:[i,h,o,s])};e.SourceMapConsumer=class{constructor(e,t){const n=this._map=new I(e,t);this.file=n.file,this.names=n.names,this.sourceRoot=n.sourceRoot,this.sources=n.resolvedSources,this.sourcesContent=n.sourcesContent}originalPositionFor(e){return V(this._map,e)}destroy(){}},e.SourceMapGenerator=class{constructor(e){this._map=new Z(e)}addMapping(e){$(this._map,e)}setSourceContent(e,t){W(this._map,e,t)}toJSON(){return q(this._map)}toDecodedMap(){return j(this._map)}},Object.defineProperty(e,"__esModule",{value:!0})}(t)},717:(e,t)=>{"use strict";t.byteLength=function(e){var t=a(e),n=t[0],i=t[1];return 3*(n+i)/4-i},t.toByteArray=function(e){var t,n,o=a(e),s=o[0],l=o[1],u=new r(function(e,t,n){return 3*(t+n)/4-n}(0,s,l)),c=0,f=l>0?s-4:s;for(n=0;n>16&255,u[c++]=t>>8&255,u[c++]=255&t;return 2===l&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,u[c++]=255&t),1===l&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t),u},t.fromByteArray=function(e){for(var t,i=e.length,r=i%3,o=[],s=16383,a=0,u=i-r;au?u:a+s));return 1===r?(t=e[i-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===r&&(t=(e[i-2]<<8)+e[i-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),o.join("")};for(var n=[],i=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=o[s],i[o.charCodeAt(s)]=s;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,i){for(var r,o,s=[],a=t;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},851:(e,t,n)=>{"use strict";const i=n(717),r=n(350),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.lW=l,t.h2=50;const s=2147483647;function a(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return u(e,t,n)}function u(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|m(e,t);let i=a(n);const r=i.write(e,t);return r!==n&&(i=i.slice(0,r)),i}(e,t);if(ArrayBuffer.isView(e))return function(e){if(q(e,Uint8Array)){const t=new Uint8Array(e);return d(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(q(e,ArrayBuffer)||e&&q(e.buffer,ArrayBuffer))return d(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(q(e,SharedArrayBuffer)||e&&q(e.buffer,SharedArrayBuffer)))return d(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const i=e.valueOf&&e.valueOf();if(null!=i&&i!==e)return l.from(i,t,n);const r=function(e){if(l.isBuffer(e)){const t=0|h(e.length),n=a(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||Y(e.length)?a(0):p(e):"Buffer"===e.type&&Array.isArray(e.data)?p(e.data):void 0}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return c(e),a(e<0?0:0|h(e))}function p(e){const t=e.length<0?0:0|h(e.length),n=a(t);for(let i=0;i=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function m(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||q(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===n)return 0;let r=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return $(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return W(e).length;default:if(r)return i?-1:$(e).length;t=(""+t).toLowerCase(),r=!0}}function _(e,t,n){let i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return C(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return k(this,t,n);case"base64":return T(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function g(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function v(e,t,n,i,r){if(0===e.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),Y(n=+n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=l.from(t,i)),l.isBuffer(t))return 0===t.length?-1:y(e,t,n,i,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,i,r);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,i,r){let o,s=1,a=e.length,l=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;s=2,a/=2,l/=2,n/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(r){let i=-1;for(o=n;oa&&(n=a-l),o=n;o>=0;o--){let n=!0;for(let i=0;ir&&(i=r):i=r;const o=t.length;let s;for(i>o/2&&(i=o/2),s=0;s>8,r=n%256,o.push(r),o.push(i);return o}(t,e.length-n),e,n,i)}function T(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function C(e,t,n){n=Math.min(e.length,n);const i=[];let r=t;for(;r239?4:t>223?3:t>191?2:1;if(r+s<=n){let n,i,a,l;switch(s){case 1:t<128&&(o=t);break;case 2:n=e[r+1],128==(192&n)&&(l=(31&t)<<6|63&n,l>127&&(o=l));break;case 3:n=e[r+1],i=e[r+2],128==(192&n)&&128==(192&i)&&(l=(15&t)<<12|(63&n)<<6|63&i,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:n=e[r+1],i=e[r+2],a=e[r+3],128==(192&n)&&128==(192&i)&&128==(192&a)&&(l=(15&t)<<18|(63&n)<<12|(63&i)<<6|63&a,l>65535&&l<1114112&&(o=l))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,i.push(o>>>10&1023|55296),o=56320|1023&o),i.push(o),r+=s}return function(e){const t=e.length;if(t<=w)return String.fromCharCode.apply(String,e);let n="",i=0;for(;ii.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(i,r)):Uint8Array.prototype.set.call(i,t,r);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(i,r)}r+=t.length}return i},l.byteLength=m,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},o&&(l.prototype[o]=l.prototype.inspect),l.prototype.compare=function(e,t,n,i,r){if(q(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===r&&(r=this.length),t<0||n>e.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=n)return 0;if(i>=r)return-1;if(t>=n)return 1;if(this===e)return 0;let o=(r>>>=0)-(i>>>=0),s=(n>>>=0)-(t>>>=0);const a=Math.min(o,s),u=this.slice(i,r),c=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===i&&(i="utf8")):(i=n,n=void 0)}const r=this.length-t;if((void 0===n||n>r)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let o=!1;for(;;)switch(i){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return b(this,e,t,n);case"ascii":case"latin1":case"binary":return S(this,e,t,n);case"base64":return D(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const w=4096;function O(e,t,n){let i="";n=Math.min(e.length,n);for(let r=t;ri)&&(n=i);let r="";for(let i=t;in)throw new RangeError("Trying to access beyond buffer length")}function M(e,t,n,i,r,o){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function I(e,t,n,i,r){G(t,i,r,e,n,7);let o=Number(t&BigInt(4294967295));e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,n}function N(e,t,n,i,r){G(t,i,r,e,n,7);let o=Number(t&BigInt(4294967295));e[n+7]=o,o>>=8,e[n+6]=o,o>>=8,e[n+5]=o,o>>=8,e[n+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=s,s>>=8,e[n+2]=s,s>>=8,e[n+1]=s,s>>=8,e[n]=s,n+8}function P(e,t,n,i,r,o){if(n+i>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function B(e,t,n,i,o){return t=+t,n>>>=0,o||P(e,0,n,4),r.write(e,t,n,i,23,4),n+4}function L(e,t,n,i,o){return t=+t,n>>>=0,o||P(e,0,n,8),r.write(e,t,n,i,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||F(e,t,this.length);let i=this[e],r=1,o=0;for(;++o>>=0,t>>>=0,n||F(e,t,this.length);let i=this[e+--t],r=1;for(;t>0&&(r*=256);)i+=this[e+--t]*r;return i},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||F(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||F(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||F(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||F(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=J((function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||z(e,this.length-8);const i=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,r=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(i)+(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||z(e,this.length-8);const i=t*2**24+65536*this[++e]+256*this[++e]+this[++e],r=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(i)<>>=0,t>>>=0,n||F(e,t,this.length);let i=this[e],r=1,o=0;for(;++o=r&&(i-=Math.pow(2,8*t)),i},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||F(e,t,this.length);let i=t,r=1,o=this[e+--i];for(;i>0&&(r*=256);)o+=this[e+--i]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*t)),o},l.prototype.readInt8=function(e,t){return e>>>=0,t||F(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||F(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||F(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||F(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||F(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=J((function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||z(e,this.length-8);const i=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(i)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||z(e,this.length-8);const i=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(i)<>>=0,t||F(e,4,this.length),r.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||F(e,4,this.length),r.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||F(e,8,this.length),r.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||F(e,8,this.length),r.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,i){e=+e,t>>>=0,n>>>=0,i||M(this,e,t,n,Math.pow(2,8*n)-1,0);let r=1,o=0;for(this[t]=255&e;++o>>=0,n>>>=0,i||M(this,e,t,n,Math.pow(2,8*n)-1,0);let r=n-1,o=1;for(this[t+r]=255&e;--r>=0&&(o*=256);)this[t+r]=e/o&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=J((function(e,t=0){return I(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=J((function(e,t=0){return N(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*n-1);M(this,e,t,n,i-1,-i)}let r=0,o=1,s=0;for(this[t]=255&e;++r>0)-s&255;return t+n},l.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*n-1);M(this,e,t,n,i-1,-i)}let r=n-1,o=1,s=0;for(this[t+r]=255&e;--r>=0&&(o*=256);)e<0&&0===s&&0!==this[t+r+1]&&(s=1),this[t+r]=(e/o>>0)-s&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||M(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=J((function(e,t=0){return I(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=J((function(e,t=0){return N(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return B(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return B(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return L(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return L(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,i){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(r=t;r=i+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function G(e,t,n,i,r,o){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${i} and < 2${i} ** ${8*(o+1)}${i}`:`>= -(2${i} ** ${8*(o+1)-1}${i}) and < 2 ** ${8*(o+1)-1}${i}`:`>= ${t}${i} and <= ${n}${i}`,new V.ERR_OUT_OF_RANGE("value",r,e)}!function(e,t,n){H(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||z(t,e.length-(n+1))}(i,r,o)}function H(e,t){if("number"!=typeof e)throw new V.ERR_INVALID_ARG_TYPE(t,"number",e)}function z(e,t,n){if(Math.floor(e)!==e)throw H(e,n),new V.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new V.ERR_BUFFER_OUT_OF_BOUNDS;throw new V.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}U("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),U("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),U("ERR_OUT_OF_RANGE",(function(e,t,n){let i=`The value of "${e}" is out of range.`,r=n;return Number.isInteger(n)&&Math.abs(n)>2**32?r=K(String(n)):"bigint"==typeof n&&(r=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(r=K(r)),r+="n"),i+=` It must be ${t}. Received ${r}`,i}),RangeError);const X=/[^+/0-9A-Za-z-_]/g;function $(e,t){let n;t=t||1/0;const i=e.length;let r=null;const o=[];for(let s=0;s55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===i){(t-=3)>-1&&o.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&o.push(239,191,189);if(r=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function W(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(X,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function j(e,t,n,i){let r;for(r=0;r=t.length||r>=e.length);++r)t[r+n]=e[r];return r}function q(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Y(e){return e!=e}const Z=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const i=16*n;for(let r=0;r<16;++r)t[i+r]=e[n]+e[r]}return t}();function J(e){return"undefined"==typeof BigInt?Q:e}function Q(){throw new Error("BigInt not supported")}},481:(e,t,n)=>{var i=n(851).lW,r=function(){"use strict";function e(e,t){return null!=t&&e instanceof t}var t,n,r;try{t=Map}catch(e){t=function(){}}try{n=Set}catch(e){n=function(){}}try{r=Promise}catch(e){r=function(){}}function o(s,l,u,c,f){"object"==typeof l&&(u=l.depth,c=l.prototype,f=l.includeNonEnumerable,l=l.circular);var p=[],d=[],h=void 0!==i;return void 0===l&&(l=!0),void 0===u&&(u=1/0),function s(u,m){if(null===u)return null;if(0===m)return u;var _,g;if("object"!=typeof u)return u;if(e(u,t))_=new t;else if(e(u,n))_=new n;else if(e(u,r))_=new r((function(e,t){u.then((function(t){e(s(t,m-1))}),(function(e){t(s(e,m-1))}))}));else if(o.__isArray(u))_=[];else if(o.__isRegExp(u))_=new RegExp(u.source,a(u)),u.lastIndex&&(_.lastIndex=u.lastIndex);else if(o.__isDate(u))_=new Date(u.getTime());else{if(h&&i.isBuffer(u))return _=i.allocUnsafe?i.allocUnsafe(u.length):new i(u.length),u.copy(_),_;e(u,Error)?_=Object.create(u):void 0===c?(g=Object.getPrototypeOf(u),_=Object.create(g)):(_=Object.create(c),g=c)}if(l){var v=p.indexOf(u);if(-1!=v)return d[v];p.push(u),d.push(_)}for(var y in e(u,t)&&u.forEach((function(e,t){var n=s(t,m-1),i=s(e,m-1);_.set(n,i)})),e(u,n)&&u.forEach((function(e){var t=s(e,m-1);_.add(t)})),u){var E;g&&(E=Object.getOwnPropertyDescriptor(g,y)),E&&null==E.set||(_[y]=s(u[y],m-1))}if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(u);for(y=0;y{t.read=function(e,t,n,i,r){var o,s,a=8*r-i-1,l=(1<>1,c=-7,f=n?r-1:0,p=n?-1:1,d=e[t+f];for(f+=p,o=d&(1<<-c)-1,d>>=-c,c+=a;c>0;o=256*o+e[t+f],f+=p,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=i;c>0;s=256*s+e[t+f],f+=p,c-=8);if(0===o)o=1-u;else{if(o===l)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,i),o-=u}return(d?-1:1)*s*Math.pow(2,o-i)},t.write=function(e,t,n,i,r,o){var s,a,l,u=8*o-r-1,c=(1<>1,p=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,d=i?0:o-1,h=i?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),(t+=s+f>=1?p/l:p*Math.pow(2,1-f))*l>=2&&(s++,l/=2),s+f>=c?(a=0,s=c):s+f>=1?(a=(t*l-1)*Math.pow(2,r),s+=f):(a=t*Math.pow(2,f-1)*Math.pow(2,r),s=0));r>=8;e[n+d]=255&a,d+=h,a/=256,r-=8);for(s=s<0;e[n+d]=255&s,d+=h,s/=256,u-=8);e[n+d-h]|=128*m}},2:()=>{Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},820:(e,t,n)=>{var i=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,i={},r={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=f.reach);D+=S.value.length,S=S.next){var A=S.value;if(t.length>e.length)return;if(!(A instanceof o)){var T,C=1;if(v){if(!(T=s(b,D,e,g))||T.index>=e.length)break;var w=T.index,O=T.index+T[0].length,k=D;for(k+=S.value.length;w>=k;)k+=(S=S.next).value.length;if(D=k-=S.value.length,S.value instanceof o)continue;for(var x=S;x!==t.tail&&(kf.reach&&(f.reach=I);var N=S.prev;if(F&&(N=u(t,N,F),D+=F.length),c(t,N,C),S=u(t,N,new o(p,_?r.tokenize(R,_):R,y,R)),M&&u(t,S,M),C>1){var P={cause:p+","+h,reach:I};a(e,t,n,S.prev,D,P),f&&P.reach>f.reach&&(f.reach=P.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function u(e,t,n){var i=t.next,r={value:n,prev:t,next:i};return t.next=r,i.prev=r,e.length++,r}function c(e,t,n){for(var i=t.next,r=0;r"+o.content+""},!e.document)return e.addEventListener?(r.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),i=n.language,o=n.code,s=n.immediateClose;e.postMessage(r.highlight(o,r.languages[i],i)),s&&e.close()}),!1),r):r;var f=r.util.currentScript();function p(){r.manual||r.highlightAll()}if(f&&(r.filename=f.src,f.hasAttribute("data-manual")&&(r.manual=!0)),!r.manual){var d=document.readyState;"loading"===d||"interactive"===d&&f&&f.defer?document.addEventListener("DOMContentLoaded",p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return r}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=i),void 0!==n.g&&(n.g.Prism=i)},869:()=>{Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),Prism.languages.js=Prism.languages.javascript},333:()=>{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},385:()=>{!function(){function e(e){var t=document.createElement("textarea");t.value=e.getText(),t.style.top="0",t.style.left="0",t.style.position="fixed",document.body.appendChild(t),t.focus(),t.select();try{var n=document.execCommand("copy");setTimeout((function(){n?e.success():e.error()}),1)}catch(t){setTimeout((function(){e.error(t)}),1)}document.body.removeChild(t)}"undefined"!=typeof Prism&&"undefined"!=typeof document&&(Prism.plugins.toolbar?Prism.plugins.toolbar.registerButton("copy-to-clipboard",(function(t){var n=t.element,i=function(e){var t={copy:"Copy","copy-error":"Press Ctrl+C to copy","copy-success":"Copied!","copy-timeout":5e3};for(var n in t){for(var i="data-prismjs-"+n,r=e;r&&!r.hasAttribute(i);)r=r.parentElement;r&&(t[n]=r.getAttribute(i))}return t}(n),r=document.createElement("button");r.className="copy-to-clipboard-button",r.setAttribute("type","button");var o=document.createElement("span");return r.appendChild(o),a("copy"),function(t,n){t.addEventListener("click",(function(){!function(t){navigator.clipboard?navigator.clipboard.writeText(t.getText()).then(t.success,(function(){e(t)})):e(t)}(n)}))}(r,{getText:function(){return n.textContent},success:function(){a("copy-success"),s()},error:function(){a("copy-error"),setTimeout((function(){!function(e){window.getSelection().selectAllChildren(e)}(n)}),1),s()}}),r;function s(){setTimeout((function(){a("copy")}),i["copy-timeout"])}function a(e){o.textContent=i[e],r.setAttribute("data-copy-state",e)}})):console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."))}()},74:()=>{!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e=[],t={},n=function(){};Prism.plugins.toolbar={};var i=Prism.plugins.toolbar.registerButton=function(n,i){var r;r="function"==typeof i?i:function(e){var t;return"function"==typeof i.onClick?((t=document.createElement("button")).type="button",t.addEventListener("click",(function(){i.onClick.call(this,e)}))):"string"==typeof i.url?(t=document.createElement("a")).href=i.url:t=document.createElement("span"),i.className&&t.classList.add(i.className),t.textContent=i.text,t},n in t?console.warn('There is a button with the key "'+n+'" registered already.'):e.push(t[n]=r)},r=Prism.plugins.toolbar.hook=function(i){var r=i.element.parentNode;if(r&&/pre/i.test(r.nodeName)&&!r.parentNode.classList.contains("code-toolbar")){var o=document.createElement("div");o.classList.add("code-toolbar"),r.parentNode.insertBefore(o,r),o.appendChild(r);var s=document.createElement("div");s.classList.add("toolbar");var a=e,l=function(e){for(;e;){var t=e.getAttribute("data-toolbar-order");if(null!=t)return(t=t.trim()).length?t.split(/\s*,\s*/g):[];e=e.parentElement}}(i.element);l&&(a=l.map((function(e){return t[e]||n}))),a.forEach((function(e){var t=e(i);if(t){var n=document.createElement("div");n.classList.add("toolbar-item"),n.appendChild(t),s.appendChild(n)}})),o.appendChild(s)}};i("label",(function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-label")){var n,i,r=t.getAttribute("data-label");try{i=document.querySelector("template#"+r)}catch(e){}return i?n=i.content:(t.hasAttribute("data-url")?(n=document.createElement("a")).href=t.getAttribute("data-url"):n=document.createElement("span"),n.textContent=r),n}})),Prism.hooks.add("complete",r)}}()},221:(e,t,n)=>{var i=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,i={},r={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=f.reach);D+=S.value.length,S=S.next){var A=S.value;if(t.length>e.length)return;if(!(A instanceof o)){var T,C=1;if(v){if(!(T=s(b,D,e,g))||T.index>=e.length)break;var w=T.index,O=T.index+T[0].length,k=D;for(k+=S.value.length;w>=k;)k+=(S=S.next).value.length;if(D=k-=S.value.length,S.value instanceof o)continue;for(var x=S;x!==t.tail&&(kf.reach&&(f.reach=I);var N=S.prev;if(F&&(N=u(t,N,F),D+=F.length),c(t,N,C),S=u(t,N,new o(p,_?r.tokenize(R,_):R,y,R)),M&&u(t,S,M),C>1){var P={cause:p+","+h,reach:I};a(e,t,n,S.prev,D,P),f&&P.reach>f.reach&&(f.reach=P.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function u(e,t,n){var i=t.next,r={value:n,prev:t,next:i};return t.next=r,i.prev=r,e.length++,r}function c(e,t,n){for(var i=t.next,r=0;r"+o.content+""},!e.document)return e.addEventListener?(r.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),i=n.language,o=n.code,s=n.immediateClose;e.postMessage(r.highlight(o,r.languages[i],i)),s&&e.close()}),!1),r):r;var f=r.util.currentScript();function p(){r.manual||r.highlightAll()}if(f&&(r.filename=f.src,f.hasAttribute("data-manual")&&(r.manual=!0)),!r.manual){var d=document.readyState;"loading"===d||"interactive"===d&&f&&f.defer?document.addEventListener("DOMContentLoaded",p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return r}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=i),void 0!==n.g&&(n.g.Prism=i),i.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},i.languages.markup.tag.inside["attr-value"].inside.entity=i.languages.markup.entity,i.languages.markup.doctype.inside["internal-subset"].inside=i.languages.markup,i.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(i.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:i.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:i.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},i.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(i.languages.markup.tag,"addAttribute",{value:function(e,t){i.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:i.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),i.languages.html=i.languages.markup,i.languages.mathml=i.languages.markup,i.languages.svg=i.languages.markup,i.languages.xml=i.languages.extend("markup",{}),i.languages.ssml=i.languages.xml,i.languages.atom=i.languages.xml,i.languages.rss=i.languages.xml,function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(i),i.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},i.languages.javascript=i.languages.extend("clike",{"class-name":[i.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),i.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,i.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:i.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:i.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:i.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:i.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:i.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),i.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:i.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),i.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),i.languages.markup&&(i.languages.markup.tag.addInlined("script","javascript"),i.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),i.languages.js=i.languages.javascript,function(){if(void 0!==i&&"undefined"!=typeof document){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},t="data-src-status",n="loading",r="loaded",o="pre[data-src]:not(["+t+'="'+r+'"]):not(['+t+'="'+n+'"])';i.hooks.add("before-highlightall",(function(e){e.selector+=", "+o})),i.hooks.add("before-sanity-check",(function(s){var a=s.element;if(a.matches(o)){s.code="",a.setAttribute(t,n);var l=a.appendChild(document.createElement("CODE"));l.textContent="Loading…";var u=a.getAttribute("data-src"),c=s.language;if("none"===c){var f=(/\.(\w+)$/.exec(u)||[,"none"])[1];c=e[f]||f}i.util.setLanguage(l,c),i.util.setLanguage(a,c);var p=i.plugins.autoloader;p&&p.loadLanguages(c),function(e,n,o){var s=new XMLHttpRequest;s.open("GET",e,!0),s.onreadystatechange=function(){4==s.readyState&&(s.status<400&&s.responseText?function(e){a.setAttribute(t,r);var n=function(e){var t=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||"");if(t){var n=Number(t[1]),i=t[2],r=t[3];return i?r?[n,Number(r)]:[n,void 0]:[n,n]}}(a.getAttribute("data-range"));if(n){var o=e.split(/\r\n?|\n/g),s=n[0],u=null==n[1]?o.length:n[1];s<0&&(s+=o.length),s=Math.max(0,Math.min(s-1,o.length)),u<0&&(u+=o.length),u=Math.max(0,Math.min(u,o.length)),e=o.slice(s,u).join("\n"),a.hasAttribute("data-start")||a.setAttribute("data-start",String(s+1))}l.textContent=e,i.highlightElement(l)}(s.responseText):s.status>=400?o("✖ Error "+s.status+" while fetching file: "+s.statusText):o("✖ Error: File does not exist or is empty"))},s.send(null)}(u,0,(function(e){a.setAttribute(t,"failed"),l.textContent=e}))}})),i.plugins.fileHighlight={highlight:function(e){for(var t,n=(e||document).querySelectorAll(o),r=0;t=n[r++];)i.highlightElement(t)}};var s=!1;i.fileHighlight=function(){s||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),s=!0),i.plugins.fileHighlight.highlight.apply(this,arguments)}}}()},790:e=>{var t,n,i=e.exports={};function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===r||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:r}catch(e){t=r}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var a,l=[],u=!1,c=-1;function f(){u&&a&&(u=!1,a.length?l=a.concat(l):c=-1,l.length&&p())}function p(){if(!u){var e=s(f);u=!0;for(var t=l.length;t;){for(a=l,l=[];++c1)for(var n=1;n{"use strict";function t(e){return e>=55296&&e<=56319}function n(e){return e>=56320&&e<=57343}e.exports=function(e){if("string"!=typeof e)throw new Error("Input must be string");for(var i=e.length,r=0,o=null,s=null,a=0;a=128&&o<=2047?r+=2:o>=2048&&o<=65535&&(r+=3),s=o;return r}},21:(e,t)=>{"use strict";t.Z=(e,t)=>{const n=e.__vccOpts||e;for(const[e,i]of t)n[e]=i;return n}}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),void 0!==n&&Object.defineProperty(n,"p",{get:function(){try{if("function"!=typeof __webpackDynamicImportURL)throw new Error("WebpackRequireFrom: '__webpackDynamicImportURL' is not a function or not available at runtime. See https://github.com/agoldis/webpack-require-from#troubleshooting");return __webpackDynamicImportURL()}catch(e){return"./"}},set:function(e){console.warn("WebpackRequireFrom: something is trying to override webpack public path. Ignoring the new value"+e+".")}}),(()=>{const e=document.currentScript.src.split("/").slice(0,-1).join("/")+"/";window.__webpackDynamicImportURL=()=>(console.info(`Using ${e} for webpack dynamic import`),e)})(),(()=>{"use strict";function e(e,t){const n=new Set(e.split(","));return t?e=>n.has(e.toLowerCase()):e=>n.has(e)}const t={},i=[],r=()=>{},o=()=>!1,s=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),a=e=>e.startsWith("onUpdate:"),l=Object.assign,u=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},c=Object.prototype.hasOwnProperty,f=(e,t)=>c.call(e,t),p=Array.isArray,d=e=>"[object Map]"===b(e),h=e=>"[object Set]"===b(e),m=e=>"function"==typeof e,_=e=>"string"==typeof e,g=e=>"symbol"==typeof e,v=e=>null!==e&&"object"==typeof e,y=e=>(v(e)||m(e))&&m(e.then)&&m(e.catch),E=Object.prototype.toString,b=e=>E.call(e),S=e=>b(e).slice(8,-1),D=e=>"[object Object]"===b(e),A=e=>_(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,T=e(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),C=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},w=/-(\w)/g,O=C((e=>e.replace(w,((e,t)=>t?t.toUpperCase():"")))),k=/\B([A-Z])/g,x=C((e=>e.replace(k,"-$1").toLowerCase())),R=C((e=>e.charAt(0).toUpperCase()+e.slice(1))),F=C((e=>e?`on${R(e)}`:"")),M=(e,t)=>!Object.is(e,t),I=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},P=e=>{const t=parseFloat(e);return isNaN(t)?e:t},B=e=>{const t=_(e)?Number(e):NaN;return isNaN(t)?e:t};let L;const V=()=>L||(L="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{});function U(e){if(p(e)){const t={};for(let n=0;n{if(e){const n=e.split(G);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function X(e){let t="";if(_(e))t=e;else if(p(e))for(let n=0;n_(e)?e:null==e?"":p(e)||v(e)&&(e.toString===E||!m(e.toString))?JSON.stringify(e,Y,2):String(e),Y=(e,t)=>t&&t.__v_isRef?Y(e,t.value):d(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n],i)=>(e[Z(t,i)+" =>"]=n,e)),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map((e=>Z(e)))}:g(t)?Z(t):!v(t)||p(t)||D(t)?t:String(t),Z=(e,t="")=>{var n;return g(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};let J,Q;class ee{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=J,!e&&J&&(this.index=(J.scopes||(J.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const t=J;try{return J=this,e()}finally{J=t}}}on(){J=this}off(){J=this.parent}stop(e){if(this._active){let t,n;for(t=0,n=this.effects.length;t=2))break}this._dirtyLevel<2&&(this._dirtyLevel=0),ce()}return this._dirtyLevel>=2}set dirty(e){this._dirtyLevel=e?2:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let e=se,t=Q;try{return se=!0,Q=this,this._runnings++,ie(this),this.fn()}finally{re(this),this._runnings--,Q=t,se=e}}stop(){var e;this.active&&(ie(this),re(this),null==(e=this.onStop)||e.call(this),this.active=!1)}}function ne(e){return e.value}function ie(e){e._trackId++,e._depsLength=0}function re(e){if(e.deps&&e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},ve=new WeakMap,ye=Symbol(""),Ee=Symbol("");function be(e,t,n){if(se&&Q){let t=ve.get(e);t||ve.set(e,t=new Map);let i=t.get(n);i||t.set(n,i=ge((()=>t.delete(n)))),de(Q,i)}}function Se(e,t,n,i,r,o){const s=ve.get(e);if(!s)return;let a=[];if("clear"===t)a=[...s.values()];else if("length"===n&&p(e)){const e=Number(i);s.forEach(((t,n)=>{("length"===n||!g(n)&&n>=e)&&a.push(t)}))}else switch(void 0!==n&&a.push(s.get(n)),t){case"add":p(e)?A(n)&&a.push(s.get("length")):(a.push(s.get(ye)),d(e)&&a.push(s.get(Ee)));break;case"delete":p(e)||(a.push(s.get(ye)),d(e)&&a.push(s.get(Ee)));break;case"set":d(e)&&a.push(s.get(ye))}fe();for(const e of a)e&&me(e,2);pe()}const De=e("__proto__,__v_isRef,__isVue"),Ae=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(g)),Te=Ce();function Ce(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=pt(this);for(let e=0,t=this.length;e{e[t]=function(...e){ue(),fe();const n=pt(this)[t].apply(this,e);return pe(),ce(),n}})),e}function we(e){const t=pt(this);return be(t,0,e),t.hasOwnProperty(e)}class Oe{constructor(e=!1,t=!1){this._isReadonly=e,this._shallow=t}get(e,t,n){const i=this._isReadonly,r=this._shallow;if("__v_isReactive"===t)return!i;if("__v_isReadonly"===t)return i;if("__v_isShallow"===t)return r;if("__v_raw"===t)return n===(i?r?rt:it:r?nt:tt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const o=p(e);if(!i){if(o&&f(Te,t))return Reflect.get(Te,t,n);if("hasOwnProperty"===t)return we}const s=Reflect.get(e,t,n);return(g(t)?Ae.has(t):De(t))?s:(i||be(e,0,t),r?s:yt(s)?o&&A(t)?s:s.value:v(s)?i?st(s):ot(s):s)}}class ke extends Oe{constructor(e=!1){super(!1,e)}set(e,t,n,i){let r=e[t];if(!this._shallow){const t=ut(r);if(ct(n)||ut(n)||(r=pt(r),n=pt(n)),!p(e)&&yt(r)&&!yt(n))return!t&&(r.value=n,!0)}const o=p(e)&&A(t)?Number(t)e,Ne=e=>Reflect.getPrototypeOf(e);function Pe(e,t,n=!1,i=!1){const r=pt(e=e.__v_raw),o=pt(t);n||(M(t,o)&&be(r,0,t),be(r,0,o));const{has:s}=Ne(r),a=i?Ie:n?mt:ht;return s.call(r,t)?a(e.get(t)):s.call(r,o)?a(e.get(o)):void(e!==r&&e.get(t))}function Be(e,t=!1){const n=this.__v_raw,i=pt(n),r=pt(e);return t||(M(e,r)&&be(i,0,e),be(i,0,r)),e===r?n.has(e):n.has(e)||n.has(r)}function Le(e,t=!1){return e=e.__v_raw,!t&&be(pt(e),0,ye),Reflect.get(e,"size",e)}function Ve(e){e=pt(e);const t=pt(this);return Ne(t).has.call(t,e)||(t.add(e),Se(t,"add",e,e)),this}function Ue(e,t){t=pt(t);const n=pt(this),{has:i,get:r}=Ne(n);let o=i.call(n,e);o||(e=pt(e),o=i.call(n,e));const s=r.call(n,e);return n.set(e,t),o?M(t,s)&&Se(n,"set",e,t):Se(n,"add",e,t),this}function Ke(e){const t=pt(this),{has:n,get:i}=Ne(t);let r=n.call(t,e);r||(e=pt(e),r=n.call(t,e)),i&&i.call(t,e);const o=t.delete(e);return r&&Se(t,"delete",e,void 0),o}function Ge(){const e=pt(this),t=0!==e.size,n=e.clear();return t&&Se(e,"clear",void 0,void 0),n}function He(e,t){return function(n,i){const r=this,o=r.__v_raw,s=pt(o),a=t?Ie:e?mt:ht;return!e&&be(s,0,ye),o.forEach(((e,t)=>n.call(i,a(e),a(t),r)))}}function ze(e,t,n){return function(...i){const r=this.__v_raw,o=pt(r),s=d(o),a="entries"===e||e===Symbol.iterator&&s,l="keys"===e&&s,u=r[e](...i),c=n?Ie:t?mt:ht;return!t&&be(o,0,l?Ee:ye),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:a?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}function Xe(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function $e(){const e={get(e){return Pe(this,e)},get size(){return Le(this)},has:Be,add:Ve,set:Ue,delete:Ke,clear:Ge,forEach:He(!1,!1)},t={get(e){return Pe(this,e,!1,!0)},get size(){return Le(this)},has:Be,add:Ve,set:Ue,delete:Ke,clear:Ge,forEach:He(!1,!0)},n={get(e){return Pe(this,e,!0)},get size(){return Le(this,!0)},has(e){return Be.call(this,e,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:He(!0,!1)},i={get(e){return Pe(this,e,!0,!0)},get size(){return Le(this,!0)},has(e){return Be.call(this,e,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:He(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((r=>{e[r]=ze(r,!1,!1),n[r]=ze(r,!0,!1),t[r]=ze(r,!1,!0),i[r]=ze(r,!0,!0)})),[e,n,t,i]}const[We,je,qe,Ye]=$e();function Ze(e,t){const n=t?e?Ye:qe:e?je:We;return(t,i,r)=>"__v_isReactive"===i?!e:"__v_isReadonly"===i?e:"__v_raw"===i?t:Reflect.get(f(n,i)&&i in t?n:t,i,r)}const Je={get:Ze(!1,!1)},Qe={get:Ze(!1,!0)},et={get:Ze(!0,!1)},tt=new WeakMap,nt=new WeakMap,it=new WeakMap,rt=new WeakMap;function ot(e){return ut(e)?e:at(e,!1,Re,Je,tt)}function st(e){return at(e,!0,Fe,et,it)}function at(e,t,n,i,r){if(!v(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const s=(a=e).__v_skip||!Object.isExtensible(a)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(S(a));var a;if(0===s)return e;const l=new Proxy(e,2===s?i:n);return r.set(e,l),l}function lt(e){return ut(e)?lt(e.__v_raw):!(!e||!e.__v_isReactive)}function ut(e){return!(!e||!e.__v_isReadonly)}function ct(e){return!(!e||!e.__v_isShallow)}function ft(e){return lt(e)||ut(e)}function pt(e){const t=e&&e.__v_raw;return t?pt(t):e}function dt(e){return N(e,"__v_skip",!0),e}const ht=e=>v(e)?ot(e):e,mt=e=>v(e)?st(e):e;class _t{constructor(e,t,n,i){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new te((()=>e(this._value)),(()=>vt(this,1)),(()=>this.dep&&_e(this.dep))),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const e=pt(this);return e._cacheable&&!e.effect.dirty||M(e._value,e._value=e.effect.run())&&vt(e,2),gt(e),e.effect._dirtyLevel>=1&&vt(e,1),e._value}set value(e){this._setter(e)}get _dirty(){return this.effect.dirty}set _dirty(e){this.effect.dirty=e}}function gt(e){se&&Q&&(e=pt(e),de(Q,e.dep||(e.dep=ge((()=>e.dep=void 0),e instanceof _t?e:void 0))))}function vt(e,t=2,n){const i=(e=pt(e)).dep;i&&me(i,t)}function yt(e){return!(!e||!0!==e.__v_isRef)}function Et(e){return bt(e,!1)}function bt(e,t){return yt(e)?e:new St(e,t)}class St{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:pt(e),this._value=t?e:ht(e)}get value(){return gt(this),this._value}set value(e){const t=this.__v_isShallow||ct(e)||ut(e);e=t?e:pt(e),M(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:ht(e),vt(this,2))}}function Dt(e){return yt(e)?e.value:e}const At={get:(e,t,n)=>Dt(Reflect.get(e,t,n)),set:(e,t,n,i)=>{const r=e[t];return yt(r)&&!yt(n)?(r.value=n,!0):Reflect.set(e,t,n,i)}};function Tt(e){return lt(e)?e:new Proxy(e,At)}function Ct(e,t,n,i){let r;try{r=i?e(...i):e()}catch(e){Ot(e,t,n)}return r}function wt(e,t,n,i){if(m(e)){const r=Ct(e,t,n,i);return r&&y(r)&&r.catch((e=>{Ot(e,t,n)})),r}const r=[];for(let o=0;o>>1,r=Rt[i],o=Ht(r);oHt(e)-Ht(t)));if(Mt.length=0,It)return void It.push(...e);for(It=e,Nt=0;Ntnull==e.id?1/0:e.id,zt=(e,t)=>{const n=Ht(e)-Ht(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Xt(e){xt=!1,kt=!0,Rt.sort(zt);try{for(Ft=0;Ft$t.emit(e,...t))),Wt=[]):"undefined"!=typeof window&&window.HTMLElement&&!(null==(i=null==(n=window.navigator)?void 0:n.userAgent)?void 0:i.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push((e=>{Yt(e,t)})),setTimeout((()=>{$t||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,jt=!0,Wt=[])}),3e3)):(jt=!0,Wt=[])}const Zt=tn("component:added"),Jt=tn("component:updated"),Qt=tn("component:removed"),en=e=>{$t&&"function"==typeof $t.cleanupBuffer&&!$t.cleanupBuffer(e)&&Qt(e)};function tn(e){return t=>{qt(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}function nn(e,n,...i){if(e.isUnmounted)return;const r=e.vnode.props||t;let o=i;const s=n.startsWith("update:"),a=s&&n.slice(7);if(a&&a in r){const e=`${"modelValue"===a?"model":a}Modifiers`,{number:n,trim:s}=r[e]||t;s&&(o=i.map((e=>_(e)?e.trim():e))),n&&(o=i.map(P))}let l;__VUE_PROD_DEVTOOLS__&&function(e,t,n){qt("component:emit",e.appContext.app,e,t,n)}(e,n,o);let u=r[l=F(n)]||r[l=F(O(n))];!u&&s&&(u=r[l=F(x(n))]),u&&wt(u,e,6,o);const c=r[l+"Once"];if(c){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,wt(c,e,6,o)}}function rn(e,t,n=!1){const i=t.emitsCache,r=i.get(e);if(void 0!==r)return r;const o=e.emits;let s={},a=!1;if(__VUE_OPTIONS_API__&&!m(e)){const i=e=>{const n=rn(e,t,!0);n&&(a=!0,l(s,n))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return o||a?(p(o)?o.forEach((e=>s[e]=null)):l(s,o),v(e)&&i.set(e,s),s):(v(e)&&i.set(e,null),null)}function on(e,t){return!(!e||!s(t))&&(t=t.slice(2).replace(/Once$/,""),f(e,t[0].toLowerCase()+t.slice(1))||f(e,x(t))||f(e,t))}let sn=null,an=null;function ln(e){const t=sn;return sn=e,an=e&&e.type.__scopeId||null,t}function un(e,t=sn,n){if(!t)return e;if(e._n)return e;const i=(...n)=>{i._d&&ur(-1);const r=ln(t);let o;try{o=e(...n)}finally{ln(r),i._d&&ur(1)}return __VUE_PROD_DEVTOOLS__&&Jt(t),o};return i._n=!0,i._c=!0,i._d=!0,i}function cn(e){const{type:t,vnode:n,proxy:i,withProxy:r,props:o,propsOptions:[s],slots:l,attrs:u,emit:c,render:f,renderCache:p,data:d,setupState:h,ctx:m,inheritAttrs:_}=e;let g,v;const y=ln(e);try{if(4&n.shapeFlag){const e=r||i,t=e;g=Ar(f.call(t,e,p,o,h,d,m)),v=u}else{const e=t;g=Ar(e.length>1?e(o,{attrs:u,slots:l,emit:c}):e(o,null)),v=t.props?u:fn(u)}}catch(t){or.length=0,Ot(t,e,1),g=yr(ir)}let E=g;if(v&&!1!==_){const e=Object.keys(v),{shapeFlag:t}=E;e.length&&7&t&&(s&&e.some(a)&&(v=pn(v,s)),E=br(E,v))}return n.dirs&&(E=br(E),E.dirs=E.dirs?E.dirs.concat(n.dirs):n.dirs),n.transition&&(E.transition=n.transition),g=E,ln(y),g}const fn=e=>{let t;for(const n in e)("class"===n||"style"===n||s(n))&&((t||(t={}))[n]=e[n]);return t},pn=(e,t)=>{const n={};for(const i in e)a(i)&&i.slice(9)in t||(n[i]=e[i]);return n};function dn(e,t,n){const i=Object.keys(t);if(i.length!==Object.keys(e).length)return!0;for(let r=0;rMi(bn),Dn={};function An(e,t,n){return Tn(e,t,n)}function Tn(e,n,{immediate:i,deep:o,flush:s,once:a,onTrack:l,onTrigger:c}=t){if(n&&a){const e=n;n=(...t)=>{e(...t),C()}}const f=Rr,d=e=>!0===o?e:On(e,!1===o?1:void 0);let h,_,g=!1,v=!1;if(yt(e)?(h=()=>e.value,g=ct(e)):lt(e)?(h=()=>d(e),g=!0):p(e)?(v=!0,g=e.some((e=>lt(e)||ct(e))),h=()=>e.map((e=>yt(e)?e.value:lt(e)?d(e):m(e)?Ct(e,f,2):void 0))):h=m(e)?n?()=>Ct(e,f,2):()=>(_&&_(),wt(e,f,3,[E])):r,n&&o){const e=h;h=()=>On(e())}let y,E=e=>{_=A.onStop=()=>{Ct(e,f,4),_=A.onStop=void 0}};if(Ur){if(E=r,n?i&&wt(n,f,3,[h(),v?[]:void 0,E]):h(),"sync"!==s)return r;{const e=Sn();y=e.__watcherHandles||(e.__watcherHandles=[])}}let b=v?new Array(e.length).fill(Dn):Dn;const S=()=>{if(A.active&&A.dirty)if(n){const e=A.run();(o||g||(v?e.some(((e,t)=>M(e,b[t]))):M(e,b)))&&(_&&_(),wt(n,f,3,[e,b===Dn?void 0:v&&b[0]===Dn?[]:b,E]),b=e)}else A.run()};let D;S.allowRecurse=!!n,"sync"===s?D=S:"post"===s?D=()=>qi(S,f&&f.suspense):(S.pre=!0,f&&(S.id=f.uid),D=()=>Vt(S));const A=new te(h,r,D),T=J,C=()=>{A.stop(),T&&u(T.effects,A)};return n?i?S():b=A.run():"post"===s?qi(A.run.bind(A),f&&f.suspense):A.run(),y&&y.push(C),C}function Cn(e,t,n){const i=this.proxy,r=_(e)?e.includes(".")?wn(i,e):()=>i[e]:e.bind(i,i);let o;m(t)?o=t:(o=t.handler,n=t);const s=Nr(this),a=Tn(r,o.bind(i),n);return s(),a}function wn(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e0){if(n>=t)return e;n++}if((i=i||new Set).has(e))return e;if(i.add(e),yt(e))On(e.value,t,n,i);else if(p(e))for(let r=0;r{On(e,t,n,i)}));else if(D(e))for(const r in e)On(e[r],t,n,i);return e}function kn(e,n){if(null===sn)return e;const i=Hr(sn)||sn.proxy,r=e.dirs||(e.dirs=[]);for(let e=0;e{e.isMounted=!0})),ni((()=>{e.isUnmounting=!0})),e}();let r;return()=>{const o=t.default&&Gn(t.default(),!0);if(!o||!o.length)return;let s=o[0];if(o.length>1){let e=!1;for(const t of o)if(t.type!==ir){s=t,e=!0;break}}const a=pt(e),{mode:l}=a;if(i.isLeaving)return Vn(s);const u=Un(s);if(!u)return Vn(s);const c=Ln(u,a,i,n);Kn(u,c);const f=n.subTree,p=f&&Un(f);let d=!1;const{getTransitionKey:h}=u.type;if(h){const e=h();void 0===r?r=e:e!==r&&(r=e,d=!0)}if(p&&p.type!==ir&&(!hr(u,p)||d)){const e=Ln(p,a,i,n);if(Kn(p,e),"out-in"===l)return i.isLeaving=!0,e.afterLeave=()=>{i.isLeaving=!1,!1!==n.update.active&&(n.effect.dirty=!0,n.update())},Vn(s);"in-out"===l&&u.type!==ir&&(e.delayLeave=(e,t,n)=>{Bn(i,p)[String(p.key)]=p,e[Rn]=()=>{t(),e[Rn]=void 0,delete c.delayedLeave},c.delayedLeave=n})}return s}}},Pn=Nn;function Bn(e,t){const{leavingVNodes:n}=e;let i=n.get(t.type);return i||(i=Object.create(null),n.set(t.type,i)),i}function Ln(e,t,n,i){const{appear:r,mode:o,persisted:s=!1,onBeforeEnter:a,onEnter:l,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:f,onLeave:d,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:_,onAppear:g,onAfterAppear:v,onAppearCancelled:y}=t,E=String(e.key),b=Bn(n,e),S=(e,t)=>{e&&wt(e,i,9,t)},D=(e,t)=>{const n=t[1];S(e,t),p(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},A={mode:o,persisted:s,beforeEnter(t){let i=a;if(!n.isMounted){if(!r)return;i=_||a}t[Rn]&&t[Rn](!0);const o=b[E];o&&hr(e,o)&&o.el[Rn]&&o.el[Rn](),S(i,[t])},enter(e){let t=l,i=u,o=c;if(!n.isMounted){if(!r)return;t=g||l,i=v||u,o=y||c}let s=!1;const a=e[Fn]=t=>{s||(s=!0,S(t?o:i,[e]),A.delayedLeave&&A.delayedLeave(),e[Fn]=void 0)};t?D(t,[e,a]):a()},leave(t,i){const r=String(e.key);if(t[Fn]&&t[Fn](!0),n.isUnmounting)return i();S(f,[t]);let o=!1;const s=t[Rn]=n=>{o||(o=!0,i(),S(n?m:h,[t]),t[Rn]=void 0,b[r]===e&&delete b[r])};b[r]=e,d?D(d,[t,s]):s()},clone:e=>Ln(e,t,n,i)};return A}function Vn(e){if(Xn(e))return(e=br(e)).children=null,e}function Un(e){return Xn(e)?e.children?e.children[0]:void 0:e}function Kn(e,t){6&e.shapeFlag&&e.component?Kn(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Gn(e,t=!1,n){let i=[],r=0;for(let o=0;o1)for(let e=0;el({name:e.name},t,{setup:e}))():e}const zn=e=>!!e.type.__asyncLoader,Xn=e=>e.type.__isKeepAlive;function $n(e,t){jn(e,"a",t)}function Wn(e,t){jn(e,"da",t)}function jn(e,t,n=Rr){const i=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(Yn(t,i,n),n){let e=n.parent;for(;e&&e.parent;)Xn(e.parent.vnode)&&qn(i,t,n,e),e=e.parent}}function qn(e,t,n,i){const r=Yn(t,e,i,!0);ii((()=>{u(i[t],r)}),n)}function Yn(e,t,n=Rr,i=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;ue();const r=Nr(n),o=wt(t,n,e,i);return r(),ce(),o});return i?r.unshift(o):r.push(o),o}}RegExp,RegExp;const Zn=e=>(t,n=Rr)=>(!Ur||"sp"===e)&&Yn(e,((...e)=>t(...e)),n),Jn=Zn("bm"),Qn=Zn("m"),ei=Zn("bu"),ti=Zn("u"),ni=Zn("bum"),ii=Zn("um"),ri=Zn("sp"),oi=Zn("rtg"),si=Zn("rtc");function ai(e,t=Rr){Yn("ec",e,t)}function li(e,t,n,i){let r;const o=n&&n[i];if(p(e)||_(e)){r=new Array(e.length);for(let n=0,i=e.length;nt(e,n,void 0,o&&o[n])));else{const n=Object.keys(e);r=new Array(n.length);for(let i=0,s=n.length;i{const t=i.fn(...e);return t&&(t.key=i.key),t}:i.fn)}return e}function ci(e,t,n={},i,r){if(sn.isCE||sn.parent&&zn(sn.parent)&&sn.parent.isCE)return"default"!==t&&(n.name=t),yr("slot",n,i&&i());let o=e[t];o&&o._c&&(o._d=!1),ar();const s=o&&fi(o(n)),a=pr(tr,{key:n.key||s&&s.key||`_${t}`},s||(i?i():[]),s&&1===e._?64:-2);return!r&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),o&&o._c&&(o._d=!0),a}function fi(e){return e.some((e=>!dr(e)||e.type!==ir&&!(e.type===tr&&!fi(e.children))))?e:null}function pi(e,t){const n={};for(const i in e)n[t&&/[A-Z]/.test(i)?`on:${i}`:F(i)]=e[i];return n}const di=e=>e?Br(e)?Hr(e)||e.proxy:di(e.parent):null,hi=l(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>di(e.parent),$root:e=>di(e.root),$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?bi(e):e.type,$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Vt(e.update)}),$nextTick:e=>e.n||(e.n=Lt.bind(e.proxy)),$watch:e=>__VUE_OPTIONS_API__?Cn.bind(e):r}),mi=(e,n)=>e!==t&&!e.__isScriptSetup&&f(e,n),_i={get({_:e},n){const{ctx:i,setupState:r,data:o,props:s,accessCache:a,type:l,appContext:u}=e;let c;if("$"!==n[0]){const l=a[n];if(void 0!==l)switch(l){case 1:return r[n];case 2:return o[n];case 4:return i[n];case 3:return s[n]}else{if(mi(r,n))return a[n]=1,r[n];if(o!==t&&f(o,n))return a[n]=2,o[n];if((c=e.propsOptions[0])&&f(c,n))return a[n]=3,s[n];if(i!==t&&f(i,n))return a[n]=4,i[n];__VUE_OPTIONS_API__&&!vi||(a[n]=0)}}const p=hi[n];let d,h;return p?("$attrs"===n&&be(e,0,n),p(e)):(d=l.__cssModules)&&(d=d[n])?d:i!==t&&f(i,n)?(a[n]=4,i[n]):(h=u.config.globalProperties,f(h,n)?h[n]:void 0)},set({_:e},n,i){const{data:r,setupState:o,ctx:s}=e;return mi(o,n)?(o[n]=i,!0):r!==t&&f(r,n)?(r[n]=i,!0):!(f(e.props,n)||"$"===n[0]&&n.slice(1)in e||(s[n]=i,0))},has({_:{data:e,setupState:n,accessCache:i,ctx:r,appContext:o,propsOptions:s}},a){let l;return!!i[a]||e!==t&&f(e,a)||mi(n,a)||(l=s[0])&&f(l,a)||f(r,a)||f(hi,a)||f(o.config.globalProperties,a)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:f(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function gi(e){return p(e)?e.reduce(((e,t)=>(e[t]=null,e)),{}):e}let vi=!0;function yi(e,t,n){wt(p(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function Ei(e,t,n,i){const r=i.includes(".")?wn(n,i):()=>n[i];if(_(e)){const n=t[e];m(n)&&An(r,n)}else if(m(e))An(r,e.bind(n));else if(v(e))if(p(e))e.forEach((e=>Ei(e,t,n,i)));else{const i=m(e.handler)?e.handler.bind(n):t[e.handler];m(i)&&An(r,i,e)}}function bi(e){const t=e.type,{mixins:n,extends:i}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:s}}=e.appContext,a=o.get(t);let l;return a?l=a:r.length||n||i?(l={},r.length&&r.forEach((e=>Si(l,e,s,!0))),Si(l,t,s)):l=t,v(t)&&o.set(t,l),l}function Si(e,t,n,i=!1){const{mixins:r,extends:o}=t;o&&Si(e,o,n,!0),r&&r.forEach((t=>Si(e,t,n,!0)));for(const r in t)if(i&&"expose"===r);else{const i=Di[r]||n&&n[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const Di={data:Ai,props:Oi,emits:Oi,methods:wi,computed:wi,beforeCreate:Ci,created:Ci,beforeMount:Ci,mounted:Ci,beforeUpdate:Ci,updated:Ci,beforeDestroy:Ci,beforeUnmount:Ci,destroyed:Ci,unmounted:Ci,activated:Ci,deactivated:Ci,errorCaptured:Ci,serverPrefetch:Ci,components:wi,directives:wi,watch:function(e,t){if(!e)return t;if(!t)return e;const n=l(Object.create(null),e);for(const i in t)n[i]=Ci(e[i],t[i]);return n},provide:Ai,inject:function(e,t){return wi(Ti(e),Ti(t))}};function Ai(e,t){return t?e?function(){return l(m(e)?e.call(this,this):e,m(t)?t.call(this,this):t)}:t:e}function Ti(e){if(p(e)){const t={};for(let n=0;n(o.has(e)||(e&&m(e.install)?(o.add(e),e.install(a,...t)):m(e)&&(o.add(e),e(a,...t))),a),mixin:e=>(__VUE_OPTIONS_API__&&(r.mixins.includes(e)||r.mixins.push(e)),a),component:(e,t)=>t?(r.components[e]=t,a):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,a):r.directives[e],mount(o,l,u){if(!s){const c=yr(n,i);return c.appContext=r,!0===u?u="svg":!1===u&&(u=void 0),l&&t?t(c,o):e(c,o,u),s=!0,a._container=o,o.__vue_app__=a,__VUE_PROD_DEVTOOLS__&&(a._instance=c.component,function(e,t){qt("app:init",e,t,{Fragment:tr,Text:nr,Comment:ir,Static:rr})}(a,$r)),Hr(c.component)||c.component.proxy}},unmount(){s&&(e(null,a._container),__VUE_PROD_DEVTOOLS__&&(a._instance=null,function(e){qt("app:unmount",e)}(a)),delete a._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,a),runWithContext(e){Fi=a;try{return e()}finally{Fi=null}}};return a}}let Fi=null;function Mi(e,t,n=!1){const i=Rr||sn;if(i||Fi){const r=i?null==i.parent?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:Fi._context.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&m(t)?t.call(i&&i.proxy):t}}function Ii(e,n,i,r){const[o,s]=e.propsOptions;let a,l=!1;if(n)for(let t in n){if(T(t))continue;const u=n[t];let c;o&&f(o,c=O(t))?s&&s.includes(c)?(a||(a={}))[c]=u:i[c]=u:on(e.emitsOptions,t)||t in r&&u===r[t]||(r[t]=u,l=!0)}if(s){const n=pt(i),r=a||t;for(let t=0;t{d=!0;const[t,i]=Pi(e,n,!0);l(u,t),i&&c.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(t),e.extends&&t(e.extends),e.mixins&&e.mixins.forEach(t)}if(!a&&!d)return v(e)&&o.set(e,i),i;if(p(a))for(let e=0;e-1,i[1]=n<0||e-1||f(i,"default"))&&c.push(t)}}}const h=[u,c];return v(e)&&o.set(e,h),h}function Bi(e){return"$"!==e[0]}function Li(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:null===e?"null":""}function Vi(e,t){return Li(e)===Li(t)}function Ui(e,t){return p(t)?t.findIndex((t=>Vi(t,e))):m(t)&&Vi(t,e)?0:-1}const Ki=e=>"_"===e[0]||"$stable"===e,Gi=e=>p(e)?e.map(Ar):[Ar(e)],Hi=(e,t,n)=>{if(t._n)return t;const i=un(((...e)=>Gi(t(...e))),n);return i._c=!1,i},zi=(e,t,n)=>{const i=e._ctx;for(const n in e){if(Ki(n))continue;const r=e[n];if(m(r))t[n]=Hi(0,r,i);else if(null!=r){const e=Gi(r);t[n]=()=>e}}},Xi=(e,t)=>{const n=Gi(t);e.slots.default=()=>n},$i=(e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=pt(t),N(t,"_",n)):zi(t,e.slots={})}else e.slots={},t&&Xi(e,t);N(e.slots,mr,1)},Wi=(e,n,i)=>{const{vnode:r,slots:o}=e;let s=!0,a=t;if(32&r.shapeFlag){const e=n._;e?i&&1===e?s=!1:(l(o,n),i||1!==e||delete o._):(s=!n.$stable,zi(n,o)),a=n}else n&&(Xi(e,n),a={default:1});if(s)for(const e in o)Ki(e)||null!=a[e]||delete o[e]};function ji(e,n,i,r,o=!1){if(p(e))return void e.forEach(((e,t)=>ji(e,n&&(p(n)?n[t]:n),i,r,o)));if(zn(r)&&!o)return;const s=4&r.shapeFlag?Hr(r.component)||r.component.proxy:r.el,a=o?null:s,{i:l,r:c}=e,d=n&&n.r,h=l.refs===t?l.refs={}:l.refs,g=l.setupState;if(null!=d&&d!==c&&(_(d)?(h[d]=null,f(g,d)&&(g[d]=null)):yt(d)&&(d.value=null)),m(c))Ct(c,l,12,[a,h]);else{const t=_(c),n=yt(c),r=e.f;if(t||n){const l=()=>{if(r){const n=t?f(g,c)?g[c]:h[c]:c.value;o?p(n)&&u(n,s):p(n)?n.includes(s)||n.push(s):t?(h[c]=[s],f(g,c)&&(g[c]=h[c])):(c.value=[s],e.k&&(h[e.k]=c.value))}else t?(h[c]=a,f(g,c)&&(g[c]=a)):n&&(c.value=a,e.k&&(h[e.k]=a))};o||r?l():(l.id=-1,qi(l,i))}}}const qi=function(e,t){var n;t&&t.pendingBranch?p(e)?t.effects.push(...e):t.effects.push(e):(p(n=e)?Mt.push(...n):It&&It.includes(n,n.allowRecurse?Nt+1:Nt)||Mt.push(n),Ut())};function Yi(e,n){"boolean"!=typeof __VUE_OPTIONS_API__&&(V().__VUE_OPTIONS_API__=!0),"boolean"!=typeof __VUE_PROD_DEVTOOLS__&&(V().__VUE_PROD_DEVTOOLS__=!1),"boolean"!=typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&(V().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1);const o=V();o.__VUE__=!0,__VUE_PROD_DEVTOOLS__&&Yt(o.__VUE_DEVTOOLS_GLOBAL_HOOK__,o);const{insert:s,remove:a,patchProp:l,createElement:u,createText:c,createComment:p,setText:d,setElementText:h,parentNode:m,nextSibling:_,setScopeId:g=r,insertStaticContent:v}=e,E=(e,t,n,i=null,r=null,o=null,s=void 0,a=null,l=!!t.dynamicChildren)=>{if(e===t)return;e&&!hr(e,t)&&(i=J(e),W(e,r,o,!0),e=null),-2===t.patchFlag&&(l=!1,t.dynamicChildren=null);const{type:u,ref:c,shapeFlag:f}=t;switch(u){case nr:b(e,t,n,i);break;case ir:S(e,t,n,i);break;case rr:null==e&&D(t,n,i,s);break;case tr:P(e,t,n,i,r,o,s,a,l);break;default:1&f?A(e,t,n,i,r,o,s,a,l):6&f?B(e,t,n,i,r,o,s,a,l):(64&f||128&f)&&u.process(e,t,n,i,r,o,s,a,l,ie)}null!=c&&r&&ji(c,e&&e.ref,o,t||e,!t)},b=(e,t,n,i)=>{if(null==e)s(t.el=c(t.children),n,i);else{const n=t.el=e.el;t.children!==e.children&&d(n,t.children)}},S=(e,t,n,i)=>{null==e?s(t.el=p(t.children||""),n,i):t.el=e.el},D=(e,t,n,i)=>{[e.el,e.anchor]=v(e.children,t,n,i,e.el,e.anchor)},A=(e,t,n,i,r,o,s,a,l)=>{"svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e?C(t,n,i,r,o,s,a,l):R(e,t,r,o,s,a,l)},C=(e,t,n,i,r,o,a,c)=>{let f,p;const{props:d,shapeFlag:m,transition:_,dirs:g}=e;if(f=e.el=u(e.type,o,d&&d.is,d),8&m?h(f,e.children):16&m&&k(e.children,f,null,i,r,Zi(e,o),a,c),g&&xn(e,null,i,"created"),w(f,e,e.scopeId,a,i),d){for(const t in d)"value"===t||T(t)||l(f,t,null,d[t],o,e.children,i,r,Z);"value"in d&&l(f,"value",null,d.value,o),(p=d.onVnodeBeforeMount)&&Or(p,i,e)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(f,"__vnode",{value:e,enumerable:!1}),Object.defineProperty(f,"__vueParentComponent",{value:i,enumerable:!1})),g&&xn(e,null,i,"beforeMount");const v=function(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}(r,_);v&&_.beforeEnter(f),s(f,t,n),((p=d&&d.onVnodeMounted)||v||g)&&qi((()=>{p&&Or(p,i,e),v&&_.enter(f),g&&xn(e,null,i,"mounted")}),r)},w=(e,t,n,i,r)=>{if(n&&g(e,n),i)for(let t=0;t{for(let u=l;u{const u=n.el=e.el;let{patchFlag:c,dynamicChildren:f,dirs:p}=n;c|=16&e.patchFlag;const d=e.props||t,m=n.props||t;let _;if(i&&Ji(i,!1),(_=m.onVnodeBeforeUpdate)&&Or(_,i,n,e),p&&xn(n,e,i,"beforeUpdate"),i&&Ji(i,!0),f?F(e.dynamicChildren,f,u,i,r,Zi(n,o),s):a||H(e,n,u,null,i,r,Zi(n,o),s,!1),c>0){if(16&c)M(u,n,d,m,i,r,o);else if(2&c&&d.class!==m.class&&l(u,"class",null,m.class,o),4&c&&l(u,"style",d.style,m.style,o),8&c){const t=n.dynamicProps;for(let n=0;n{_&&Or(_,i,n,e),p&&xn(n,e,i,"updated")}),r)},F=(e,t,n,i,r,o,s)=>{for(let a=0;a{if(i!==r){if(i!==t)for(const t in i)T(t)||t in r||l(e,t,i[t],null,a,n.children,o,s,Z);for(const t in r){if(T(t))continue;const u=r[t],c=i[t];u!==c&&"value"!==t&&l(e,t,c,u,a,n.children,o,s,Z)}"value"in r&&l(e,"value",i.value,r.value,a)}},P=(e,t,n,i,r,o,a,l,u)=>{const f=t.el=e?e.el:c(""),p=t.anchor=e?e.anchor:c("");let{patchFlag:d,dynamicChildren:h,slotScopeIds:m}=t;m&&(l=l?l.concat(m):m),null==e?(s(f,n,i),s(p,n,i),k(t.children||[],n,p,r,o,a,l,u)):d>0&&64&d&&h&&e.dynamicChildren?(F(e.dynamicChildren,h,n,r,o,a,l),(null!=t.key||r&&t===r.subTree)&&Qi(e,t,!0)):H(e,t,n,p,r,o,a,l,u)},B=(e,t,n,i,r,o,s,a,l)=>{t.slotScopeIds=a,null==e?512&t.shapeFlag?r.ctx.activate(t,n,i,s,l):L(t,n,i,r,o,s,l):U(e,t,l)},L=(e,n,i,r,o,s,a)=>{const l=e.component=function(e,n,i){const r=e.type,o=(n?n.appContext:e.appContext)||kr,s={uid:xr++,vnode:e,type:r,parent:n,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,scope:new ee(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:n?n.provides:Object.create(o.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Pi(r,o),emitsOptions:rn(r,o),emit:null,emitted:null,propsDefaults:t,inheritAttrs:r.inheritAttrs,ctx:t,data:t,props:t,attrs:t,slots:t,refs:t,setupState:t,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:i,suspenseId:i?i.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=n?n.root:s,s.emit=nn.bind(null,s),e.ce&&e.ce(s),s}(e,r,o);if(Xn(e)&&(l.ctx.renderer=ie),function(e,t=!1){t&&Ir(t);const{props:n,children:i}=e.vnode,r=Br(e);(function(e,t,n,i=!1){const r={},o={};N(o,mr,1),e.propsDefaults=Object.create(null),Ii(e,t,r,o);for(const t in e.propsOptions[0])t in r||(r[t]=void 0);n?e.props=i?r:at(r,!1,Me,Qe,nt):e.type.props?e.props=r:e.props=o,e.attrs=o})(e,n,r,t),$i(e,i);const o=r?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=dt(new Proxy(e.ctx,_i));const{setup:i}=n;if(i){const n=e.setupContext=i.length>1?function(e){const t=t=>{e.exposed=t||{}};return{get attrs(){return function(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get:(t,n)=>(be(e,0,"$attrs"),t[n])}))}(e)},slots:e.slots,emit:e.emit,expose:t}}(e):null,r=Nr(e);ue();const o=Ct(i,e,0,[e.props,n]);if(ce(),r(),y(o)){if(o.then(Pr,Pr),t)return o.then((n=>{Kr(e,n,t)})).catch((t=>{Ot(t,e,0)}));e.asyncDep=o}else Kr(e,o,t)}else Gr(e,t)}(e,t):void 0;t&&Ir(!1)}(l),l.asyncDep){if(o&&o.registerDep(l,K),!e.el){const e=l.subTree=yr(ir);S(null,e,n,i)}}else K(l,e,n,i,o,s,a)},U=(e,t,n)=>{const i=t.component=e.component;if(function(e,t,n){const{props:i,children:r,component:o}=e,{props:s,children:a,patchFlag:l}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&l>=0))return!(!r&&!a||a&&a.$stable)||i!==s&&(i?!s||dn(i,s,u):!!s);if(1024&l)return!0;if(16&l)return i?dn(i,s,u):!!s;if(8&l){const e=t.dynamicProps;for(let t=0;tFt&&Rt.splice(t,1)}(i.update),i.effect.dirty=!0,i.update()}else t.el=e.el,i.vnode=t},K=(e,t,n,i,o,s,a)=>{const l=()=>{if(e.isMounted){let{next:t,bu:n,u:i,parent:r,vnode:u}=e;{const n=er(e);if(n)return t&&(t.el=u.el,G(e,t,a)),void n.asyncDep.then((()=>{e.isUnmounted||l()}))}let c,f=t;Ji(e,!1),t?(t.el=u.el,G(e,t,a)):t=u,n&&I(n),(c=t.props&&t.props.onVnodeBeforeUpdate)&&Or(c,r,t,u),Ji(e,!0);const p=cn(e),d=e.subTree;e.subTree=p,E(d,p,m(d.el),J(d),e,o,s),t.el=p.el,null===f&&function({vnode:e,parent:t},n){for(;t;){const i=t.subTree;if(i.suspense&&i.suspense.activeBranch===e&&(i.el=e.el),i!==e)break;(e=t.vnode).el=n,t=t.parent}}(e,p.el),i&&qi(i,o),(c=t.props&&t.props.onVnodeUpdated)&&qi((()=>Or(c,r,t,u)),o),__VUE_PROD_DEVTOOLS__&&Jt(e)}else{let r;const{el:a,props:l}=t,{bm:u,m:c,parent:f}=e,p=zn(t);if(Ji(e,!1),u&&I(u),!p&&(r=l&&l.onVnodeBeforeMount)&&Or(r,f,t),Ji(e,!0),a&&oe){const n=()=>{e.subTree=cn(e),oe(a,e.subTree,e,o,null)};p?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{const r=e.subTree=cn(e);E(null,r,n,i,e,o,s),t.el=r.el}if(c&&qi(c,o),!p&&(r=l&&l.onVnodeMounted)){const e=t;qi((()=>Or(r,f,e)),o)}(256&t.shapeFlag||f&&zn(f.vnode)&&256&f.vnode.shapeFlag)&&e.a&&qi(e.a,o),e.isMounted=!0,__VUE_PROD_DEVTOOLS__&&Zt(e),t=n=i=null}},u=e.effect=new te(l,r,(()=>Vt(c)),e.scope),c=e.update=()=>{u.dirty&&u.run()};c.id=e.uid,Ji(e,!0),c()},G=(e,t,n)=>{t.component=e;const i=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,i){const{props:r,attrs:o,vnode:{patchFlag:s}}=e,a=pt(r),[l]=e.propsOptions;let u=!1;if(!(i||s>0)||16&s){let i;Ii(e,t,r,o)&&(u=!0);for(const o in a)t&&(f(t,o)||(i=x(o))!==o&&f(t,i))||(l?!n||void 0===n[o]&&void 0===n[i]||(r[o]=Ni(l,a,o,void 0,e,!0)):delete r[o]);if(o!==a)for(const e in o)t&&f(t,e)||(delete o[e],u=!0)}else if(8&s){const n=e.vnode.dynamicProps;for(let i=0;i{const u=e&&e.children,c=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:d}=t;if(p>0){if(128&p)return void X(u,f,n,i,r,o,s,a,l);if(256&p)return void z(u,f,n,i,r,o,s,a,l)}8&d?(16&c&&Z(u,r,o),f!==u&&h(n,f)):16&c?16&d?X(u,f,n,i,r,o,s,a,l):Z(u,r,o,!0):(8&c&&h(n,""),16&d&&k(f,n,i,r,o,s,a,l))},z=(e,t,n,r,o,s,a,l,u)=>{t=t||i;const c=(e=e||i).length,f=t.length,p=Math.min(c,f);let d;for(d=0;df?Z(e,o,s,!0,!1,p):k(t,n,r,o,s,a,l,u,p)},X=(e,t,n,r,o,s,a,l,u)=>{let c=0;const f=t.length;let p=e.length-1,d=f-1;for(;c<=p&&c<=d;){const i=e[c],r=t[c]=u?Tr(t[c]):Ar(t[c]);if(!hr(i,r))break;E(i,r,n,null,o,s,a,l,u),c++}for(;c<=p&&c<=d;){const i=e[p],r=t[d]=u?Tr(t[d]):Ar(t[d]);if(!hr(i,r))break;E(i,r,n,null,o,s,a,l,u),p--,d--}if(c>p){if(c<=d){const e=d+1,i=ed)for(;c<=p;)W(e[c],o,s,!0),c++;else{const h=c,m=c,_=new Map;for(c=m;c<=d;c++){const e=t[c]=u?Tr(t[c]):Ar(t[c]);null!=e.key&&_.set(e.key,c)}let g,v=0;const y=d-m+1;let b=!1,S=0;const D=new Array(y);for(c=0;c=y){W(i,o,s,!0);continue}let r;if(null!=i.key)r=_.get(i.key);else for(g=m;g<=d;g++)if(0===D[g-m]&&hr(i,t[g])){r=g;break}void 0===r?W(i,o,s,!0):(D[r-m]=c+1,r>=S?S=r:b=!0,E(i,t[r],n,null,o,s,a,l,u),v++)}const A=b?function(e){const t=e.slice(),n=[0];let i,r,o,s,a;const l=e.length;for(i=0;i>1,e[n[a]]0&&(t[i]=n[o-1]),n[o]=i)}}for(o=n.length,s=n[o-1];o-- >0;)n[o]=s,s=t[s];return n}(D):i;for(g=A.length-1,c=y-1;c>=0;c--){const e=m+c,i=t[e],p=e+1{const{el:o,type:a,transition:l,children:u,shapeFlag:c}=e;if(6&c)$(e.component.subTree,t,n,i);else if(128&c)e.suspense.move(t,n,i);else if(64&c)a.move(e,t,n,ie);else if(a!==tr)if(a!==rr)if(2!==i&&1&c&&l)if(0===i)l.beforeEnter(o),s(o,t,n),qi((()=>l.enter(o)),r);else{const{leave:e,delayLeave:i,afterLeave:r}=l,a=()=>s(o,t,n),u=()=>{e(o,(()=>{a(),r&&r()}))};i?i(o,a,u):u()}else s(o,t,n);else(({el:e,anchor:t},n,i)=>{let r;for(;e&&e!==t;)r=_(e),s(e,n,i),e=r;s(t,n,i)})(e,t,n);else{s(o,t,n);for(let e=0;e{const{type:o,props:s,ref:a,children:l,dynamicChildren:u,shapeFlag:c,patchFlag:f,dirs:p}=e;if(null!=a&&ji(a,null,n,e,!0),256&c)return void t.ctx.deactivate(e);const d=1&c&&p,h=!zn(e);let m;if(h&&(m=s&&s.onVnodeBeforeUnmount)&&Or(m,t,e),6&c)Y(e.component,n,i);else{if(128&c)return void e.suspense.unmount(n,i);d&&xn(e,null,t,"beforeUnmount"),64&c?e.type.remove(e,t,n,r,ie,i):u&&(o!==tr||f>0&&64&f)?Z(u,t,n,!1,!0):(o===tr&&384&f||!r&&16&c)&&Z(l,t,n),i&&j(e)}(h&&(m=s&&s.onVnodeUnmounted)||d)&&qi((()=>{m&&Or(m,t,e),d&&xn(e,null,t,"unmounted")}),n)},j=e=>{const{type:t,el:n,anchor:i,transition:r}=e;if(t===tr)return void q(n,i);if(t===rr)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=_(e),a(e),e=n;a(t)})(e);const o=()=>{a(n),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){const{leave:t,delayLeave:i}=r,s=()=>t(n,o);i?i(e.el,o,s):s()}else o()},q=(e,t)=>{let n;for(;e!==t;)n=_(e),a(e),e=n;a(t)},Y=(e,t,n)=>{const{bum:i,scope:r,update:o,subTree:s,um:a}=e;i&&I(i),r.stop(),o&&(o.active=!1,W(s,e,t,n)),a&&qi(a,t),qi((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve()),__VUE_PROD_DEVTOOLS__&&en(e)},Z=(e,t,n,i=!1,r=!1,o=0)=>{for(let s=o;s6&e.shapeFlag?J(e.component.subTree):128&e.shapeFlag?e.suspense.next():_(e.anchor||e.el);let Q=!1;const ne=(e,t,n)=>{null==e?t._vnode&&W(t._vnode,null,null,!0):E(t._vnode||null,e,t,null,null,null,n),Q||(Q=!0,Kt(),Gt(),Q=!1),t._vnode=e},ie={p:E,um:W,m:$,r:j,mt:L,mc:k,pc:H,pbc:F,n:J,o:e};let re,oe;return n&&([re,oe]=n(ie)),{render:ne,hydrate:re,createApp:Ri(ne,re)}}function Zi({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ji({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Qi(e,t,n=!1){const i=e.children,r=t.children;if(p(i)&&p(r))for(let e=0;e0?sr||i:null,or.pop(),sr=or[or.length-1]||null,lr>0&&sr&&sr.push(e),e}function fr(e,t,n,i,r,o){return cr(vr(e,t,n,i,r,o,!0))}function pr(e,t,n,i,r){return cr(yr(e,t,n,i,r,!0))}function dr(e){return!!e&&!0===e.__v_isVNode}function hr(e,t){return e.type===t.type&&e.key===t.key}const mr="__vInternal",_r=({key:e})=>null!=e?e:null,gr=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?_(e)||yt(e)||m(e)?{i:sn,r:e,k:t,f:!!n}:e:null);function vr(e,t=null,n=null,i=0,r=null,o=(e===tr?0:1),s=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_r(t),ref:t&&gr(t),scopeId:an,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:i,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:sn};return a?(Cr(l,n),128&o&&e.normalize(l)):n&&(l.shapeFlag|=_(n)?8:16),lr>0&&!s&&sr&&(l.patchFlag>0||6&o)&&32!==l.patchFlag&&sr.push(l),l}const yr=function(e,t=null,n=null,i=0,r=null,o=!1){if(e&&e!==_n||(e=ir),dr(e)){const i=br(e,t,!0);return n&&Cr(i,n),lr>0&&!o&&sr&&(6&i.shapeFlag?sr[sr.indexOf(e)]=i:sr.push(i)),i.patchFlag|=-2,i}if(s=e,m(s)&&"__vccOpts"in s&&(e=e.__vccOpts),t){t=Er(t);let{class:e,style:n}=t;e&&!_(e)&&(t.class=X(e)),v(n)&&(ft(n)&&!p(n)&&(n=l({},n)),t.style=U(n))}var s;return vr(e,t,n,i,r,_(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:v(e)?4:m(e)?2:0,o,!0)};function Er(e){return e?ft(e)||mr in e?l({},e):e:null}function br(e,t,n=!1){const{props:i,ref:r,patchFlag:o,children:s}=e,a=t?wr(i||{},t):i;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&_r(a),ref:t&&t.ref?n&&r?p(r)?r.concat(gr(t)):[r,gr(t)]:gr(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==tr?-1===o?16:16|o:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&br(e.ssContent),ssFallback:e.ssFallback&&br(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Sr(e=" ",t=0){return yr(nr,null,e,t)}function Dr(e="",t=!1){return t?(ar(),pr(ir,null,e)):yr(ir,null,e)}function Ar(e){return null==e||"boolean"==typeof e?yr(ir):p(e)?yr(tr,null,e.slice()):"object"==typeof e?Tr(e):yr(nr,null,String(e))}function Tr(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:br(e)}function Cr(e,t){let n=0;const{shapeFlag:i}=e;if(null==t)t=null;else if(p(t))n=16;else if("object"==typeof t){if(65&i){const n=t.default;return void(n&&(n._c&&(n._d=!1),Cr(e,n()),n._c&&(n._d=!0)))}{n=32;const i=t._;i||mr in t?3===i&&sn&&(1===sn.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=sn}}else m(t)?(t={default:t,_ctx:sn},n=32):(t=String(t),64&i?(n=16,t=[Sr(t)]):n=8);e.children=t,e.shapeFlag|=n}function wr(...e){const t={};for(let n=0;nRr||sn;let Mr,Ir;{const e=V(),t=(t,n)=>{let i;return(i=e[t])||(i=e[t]=[]),i.push(n),e=>{i.length>1?i.forEach((t=>t(e))):i[0](e)}};Mr=t("__VUE_INSTANCE_SETTERS__",(e=>Rr=e)),Ir=t("__VUE_SSR_SETTERS__",(e=>Ur=e))}const Nr=e=>{const t=Rr;return Mr(e),e.scope.on(),()=>{e.scope.off(),Mr(t)}},Pr=()=>{Rr&&Rr.scope.off(),Mr(null)};function Br(e){return 4&e.vnode.shapeFlag}let Lr,Vr,Ur=!1;function Kr(e,t,n){m(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:v(t)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=t),e.setupState=Tt(t)),Gr(e,n)}function Gr(e,t,n){const i=e.type;if(!e.render){if(!t&&Lr&&!i.render){const t=i.template||bi(e).template;if(t){const{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:o,compilerOptions:s}=i,a=l(l({isCustomElement:n,delimiters:o},r),s);i.render=Lr(t,a)}}e.render=i.render||r,Vr&&Vr(e)}if(__VUE_OPTIONS_API__){const t=Nr(e);ue();try{!function(e){const t=bi(e),n=e.proxy,i=e.ctx;vi=!1,t.beforeCreate&&yi(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:a,watch:l,provide:u,inject:c,created:f,beforeMount:d,mounted:h,beforeUpdate:_,updated:g,activated:y,deactivated:E,beforeDestroy:b,beforeUnmount:S,destroyed:D,unmounted:A,render:T,renderTracked:C,renderTriggered:w,errorCaptured:O,serverPrefetch:k,expose:x,inheritAttrs:R,components:F,directives:M,filters:I}=t;if(c&&function(e,t,n=r){p(e)&&(e=Ti(e));for(const n in e){const i=e[n];let r;r=v(i)?"default"in i?Mi(i.from||n,i.default,!0):Mi(i.from||n):Mi(i),yt(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,i,null),a)for(const e in a){const t=a[e];m(t)&&(i[e]=t.bind(n))}if(o){const t=o.call(n,n);v(t)&&(e.data=ot(t))}if(vi=!0,s)for(const e in s){const t=s[e],o=m(t)?t.bind(n,n):m(t.get)?t.get.bind(n,n):r,a=!m(t)&&m(t.set)?t.set.bind(n):r,l=zr({get:o,set:a});Object.defineProperty(i,e,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e})}if(l)for(const e in l)Ei(l[e],i,n,e);if(u){const e=m(u)?u.call(n):u;Reflect.ownKeys(e).forEach((t=>{!function(e,t){if(Rr){let n=Rr.provides;const i=Rr.parent&&Rr.parent.provides;i===n&&(n=Rr.provides=Object.create(i)),n[e]=t}}(t,e[t])}))}function N(e,t){p(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(f&&yi(f,e,"c"),N(Jn,d),N(Qn,h),N(ei,_),N(ti,g),N($n,y),N(Wn,E),N(ai,O),N(si,C),N(oi,w),N(ni,S),N(ii,A),N(ri,k),p(x))if(x.length){const t=e.exposed||(e.exposed={});x.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});T&&e.render===r&&(e.render=T),null!=R&&(e.inheritAttrs=R),F&&(e.components=F),M&&(e.directives=M)}(e)}finally{ce(),t()}}}function Hr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Tt(dt(e.exposed)),{get:(t,n)=>n in t?t[n]:n in hi?hi[n](e):void 0,has:(e,t)=>t in e||t in hi}))}const zr=(e,t)=>function(e,t,n=!1){let i,o;const s=m(e);return s?(i=e,o=r):(i=e.get,o=e.set),new _t(i,o,s||!o,n)}(e,0,Ur);function Xr(e,t,n){const i=arguments.length;return 2===i?v(t)&&!p(t)?dr(t)?yr(e,null,[t]):yr(e,t):yr(e,null,t):(i>3?n=Array.prototype.slice.call(arguments,2):3===i&&dr(n)&&(n=[n]),yr(e,t,n))}const $r="3.4.15",Wr="undefined"!=typeof document?document:null,jr=Wr&&Wr.createElement("template"),qr={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,i)=>{const r="svg"===t?Wr.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?Wr.createElementNS("http://www.w3.org/1998/Math/MathML",e):Wr.createElement(e,n?{is:n}:void 0);return"select"===e&&i&&null!=i.multiple&&r.setAttribute("multiple",i.multiple),r},createText:e=>Wr.createTextNode(e),createComment:e=>Wr.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Wr.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,i,r,o){const s=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==o&&(r=r.nextSibling););else{jr.innerHTML="svg"===i?`${e}`:"mathml"===i?`${e}`:e;const r=jr.content;if("svg"===i||"mathml"===i){const e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Yr="transition",Zr="animation",Jr=Symbol("_vtc"),Qr=(e,{slots:t})=>Xr(Pn,function(e){const t={};for(const n in e)n in eo||(t[n]=e[n]);if(!1===e.css)return t;const{name:n="v",type:i,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:u=o,appearActiveClass:c=s,appearToClass:f=a,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,m=function(e){if(null==e)return null;if(v(e))return[io(e.enter),io(e.leave)];{const t=io(e);return[t,t]}}(r),_=m&&m[0],g=m&&m[1],{onBeforeEnter:y,onEnter:E,onEnterCancelled:b,onLeave:S,onLeaveCancelled:D,onBeforeAppear:A=y,onAppear:T=E,onAppearCancelled:C=b}=t,w=(e,t,n)=>{oo(e,t?f:a),oo(e,t?c:s),n&&n()},O=(e,t)=>{e._isLeaving=!1,oo(e,p),oo(e,h),oo(e,d),t&&t()},k=e=>(t,n)=>{const r=e?T:E,s=()=>w(t,e,n);to(r,[t,s]),so((()=>{oo(t,e?u:o),ro(t,e?f:a),no(r)||lo(t,i,_,s)}))};return l(t,{onBeforeEnter(e){to(y,[e]),ro(e,o),ro(e,s)},onBeforeAppear(e){to(A,[e]),ro(e,u),ro(e,c)},onEnter:k(!1),onAppear:k(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>O(e,t);ro(e,p),document.body.offsetHeight,ro(e,d),so((()=>{e._isLeaving&&(oo(e,p),ro(e,h),no(S)||lo(e,i,g,n))})),to(S,[e,n])},onEnterCancelled(e){w(e,!1),to(b,[e])},onAppearCancelled(e){w(e,!0),to(C,[e])},onLeaveCancelled(e){O(e),to(D,[e])}})}(e),t);Qr.displayName="Transition";const eo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},to=(Qr.props=l({},In,eo),(e,t=[])=>{p(e)?e.forEach((e=>e(...t))):e&&e(...t)}),no=e=>!!e&&(p(e)?e.some((e=>e.length>1)):e.length>1);function io(e){return B(e)}function ro(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e[Jr]||(e[Jr]=new Set)).add(t)}function oo(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const n=e[Jr];n&&(n.delete(t),n.size||(e[Jr]=void 0))}function so(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let ao=0;function lo(e,t,n,i){const r=e._endId=++ao,o=()=>{r===e._endId&&i()};if(n)return setTimeout(o,n);const{type:s,timeout:a,propCount:l}=function(e,t){const n=window.getComputedStyle(e),i=e=>(n[e]||"").split(", "),r=i(`${Yr}Delay`),o=i(`${Yr}Duration`),s=uo(r,o),a=i(`${Zr}Delay`),l=i(`${Zr}Duration`),u=uo(a,l);let c=null,f=0,p=0;return t===Yr?s>0&&(c=Yr,f=s,p=o.length):t===Zr?u>0&&(c=Zr,f=u,p=l.length):(f=Math.max(s,u),c=f>0?s>u?Yr:Zr:null,p=c?c===Yr?o.length:l.length:0),{type:c,timeout:f,propCount:p,hasTransform:c===Yr&&/\b(transform|all)(,|$)/.test(i(`${Yr}Property`).toString())}}(e,t);if(!s)return i();const u=s+"end";let c=0;const f=()=>{e.removeEventListener(u,p),o()},p=t=>{t.target===e&&++c>=l&&f()};setTimeout((()=>{cco(t)+co(e[n]))))}function co(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}const fo=Symbol("_vod"),po={beforeMount(e,{value:t},{transition:n}){e[fo]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):ho(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:i}){!t!=!n&&(i?t?(i.beforeEnter(e),ho(e,!0),i.enter(e)):i.leave(e,(()=>{ho(e,!1)})):ho(e,t))},beforeUnmount(e,{value:t}){ho(e,t)}};function ho(e,t){e.style.display=t?e[fo]:"none"}const mo=Symbol(""),_o=/\s*!important$/;function go(e,t,n){if(p(n))n.forEach((n=>go(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const i=function(e,t){const n=yo[t];if(n)return n;let i=O(t);if("filter"!==i&&i in e)return yo[t]=i;i=R(i);for(let n=0;nAo||(To.then((()=>Ao=0)),Ao=Date.now()),wo=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123;"undefined"!=typeof HTMLElement&&HTMLElement,Symbol("_moveCb"),Symbol("_enterCb");const Oo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return p(t)?e=>I(t,e):t};function ko(e){e.target.composing=!0}function xo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ro=Symbol("_assign"),Fo={created(e,{modifiers:{lazy:t,trim:n,number:i}},r){e[Ro]=Oo(r);const o=i||r.props&&"number"===r.props.type;bo(e,t?"change":"input",(t=>{if(t.target.composing)return;let i=e.value;n&&(i=i.trim()),o&&(i=P(i)),e[Ro](i)})),n&&bo(e,"change",(()=>{e.value=e.value.trim()})),t||(bo(e,"compositionstart",ko),bo(e,"compositionend",xo),bo(e,"change",xo))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:i,number:r}},o){if(e[Ro]=Oo(o),e.composing)return;const s=null==t?"":t;if((r||"number"===e.type?P(e.value):e.value)!==s){if(document.activeElement===e&&"range"!==e.type){if(n)return;if(i&&e.value.trim()===s)return}e.value=s}}},Mo=["ctrl","shift","alt","meta"],Io={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>Mo.some((n=>e[`${n}Key`]&&!t.includes(n)))},No=(e,t)=>{const n=e._withMods||(e._withMods={}),i=t.join(".");return n[i]||(n[i]=(n,...i)=>{for(let e=0;e{const f="svg"===r;"class"===t?function(e,t,n){const i=e[Jr];i&&(t=(t?[t,...i]:[...i]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,i,f):"style"===t?function(e,t,n){const i=e.style,r=i.display,o=_(n);if(n&&!o){if(t&&!_(t))for(const e in t)null==n[e]&&go(i,e,"");for(const e in n)go(i,e,n[e])}else if(o){if(t!==n){const e=i[mo];e&&(n+=";"+e),i.cssText=n}}else t&&e.removeAttribute("style");fo in e&&(i.display=r)}(e,n,i):s(t)?a(t)||function(e,t,n,i,r=null){const o=e[So]||(e[So]={}),s=o[t];if(i&&s)s.value=i;else{const[n,a]=function(e){let t;if(Do.test(e)){let n;for(t={};n=e.match(Do);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):x(e.slice(2)),t]}(t);if(i){const s=o[t]=function(e,t){const n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();wt(function(e,t){if(p(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=Co(),n}(i,r);bo(e,n,s,a)}else s&&(function(e,t,n,i){e.removeEventListener(t,n,i)}(e,n,s,a),o[t]=void 0)}}(e,t,0,i,l):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,i){if(i)return"innerHTML"===t||"textContent"===t||!!(t in e&&wo(t)&&m(n));if("spellcheck"===t||"draggable"===t||"translate"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){const t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return(!wo(t)||!_(n))&&t in e}(e,t,i,f))?function(e,t,n,i,r,o,s){if("innerHTML"===t||"textContent"===t)return i&&s(i,r,o),void(e[t]=null==n?"":n);const a=e.tagName;if("value"===t&&"PROGRESS"!==a&&!a.includes("-")){e._value=n;const i=null==n?"":n;return("OPTION"===a?e.getAttribute("value"):e.value)!==i&&(e.value=i),void(null==n&&e.removeAttribute(t))}let l=!1;if(""===n||null==n){const i=typeof e[t];"boolean"===i?n=j(n):null==n&&"string"===i?(n="",l=!0):"number"===i&&(n=0,l=!0)}try{e[t]=n}catch(e){}l&&e.removeAttribute(t)}(e,t,i,o,l,u,c):("true-value"===t?e._trueValue=i:"false-value"===t&&(e._falseValue=i),function(e,t,n,i,r){if(i&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(Eo,t.slice(6,t.length)):e.setAttributeNS(Eo,t,n);else{const i=W(t);null==n||i&&!j(n)?e.removeAttribute(t):e.setAttribute(t,i?"":n)}}(e,t,i,f))}},qr);let Bo;const Lo=(...e)=>{const t=(Bo||(Bo=Yi(Po))).createApp(...e),{mount:n}=t;return t.mount=e=>{const i=function(e){if(_(e))return document.querySelector(e);return e}(e);if(!i)return;const r=t._component;m(r)||r.render||r.template||(r.template=i.innerHTML),i.innerHTML="";const o=n(i,!1,function(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};const Vo={class:"all do-bulma"},Uo={class:"container"},Ko={class:"columns"},Go={class:"column is-half is-full-touch"},Ho={class:"actions"},zo={class:"checkbox"},Xo=vr("i",{class:"icon fas fa-check"},null,-1),$o={class:"editor"},Wo={class:"column is-half is-full-touch"},jo={class:"tabs"},qo={key:0,class:"message is-danger"},Yo={class:"message-header"},Zo={class:"message-body"},Jo={key:1,class:"message is-warning"},Qo={class:"message-header"},es={class:"message-body"};function ts(){return ts=Object.assign||function(e){for(var t=1;t"},lineNumbersCount:function(){return this.codeData.split(/\r\n|\n/).length}},mounted:function(){this._recordCurrentState(),this.styleLineNumbers()},methods:{setLineNumbersHeight:function(){this.lineNumbersHeight=getComputedStyle(this.$refs.pre).height},styleLineNumbers:function(){if(this.lineNumbers&&this.autoStyleLineNumbers){var e=this.$refs.pre,t=this.$el.querySelector(".prism-editor__line-numbers"),n=window.getComputedStyle(e);this.$nextTick((function(){var i="border-top-left-radius",r="border-bottom-left-radius";t&&(t.style[i]=n[i],t.style[r]=n[r],e.style[i]="0",e.style[r]="0",["background-color","margin-top","padding-top","font-family","font-size","line-height"].forEach((function(e){t.style[e]=n[e]})),t.style["margin-bottom"]="-"+n["padding-top"])}))}},_recordCurrentState:function(){var e=this.$refs.textarea;if(e){var t=e.value,n=e.selectionStart,i=e.selectionEnd;this._recordChange({value:t,selectionStart:n,selectionEnd:i})}},_getLines:function(e,t){return e.substring(0,t).split("\n")},_applyEdits:function(e){var t=this.$refs.textarea,n=this.history.stack[this.history.offset];n&&t&&(this.history.stack[this.history.offset]=ts({},n,{selectionStart:t.selectionStart,selectionEnd:t.selectionEnd})),this._recordChange(e),this._updateInput(e)},_recordChange:function(e,t){void 0===t&&(t=!1);var n=this.history,i=n.stack,r=n.offset;if(i.length&&r>-1){this.history.stack=i.slice(0,r+1);var o=this.history.stack.length;if(o>100){var s=o-100;this.history.stack=i.slice(s,o),this.history.offset=Math.max(this.history.offset-s,0)}}var a=Date.now();if(t){var l=this.history.stack[this.history.offset];if(l&&a-l.timestamp<3e3){var u,c,f=/[^a-z0-9]([a-z0-9]+)$/i,p=null===(u=this._getLines(l.value,l.selectionStart).pop())||void 0===u?void 0:u.match(f),d=null===(c=this._getLines(e.value,e.selectionStart).pop())||void 0===c?void 0:c.match(f);if(p&&d&&d[1].startsWith(p[1]))return void(this.history.stack[this.history.offset]=ts({},e,{timestamp:a}))}}this.history.stack.push(ts({},e,{timestamp:a})),this.history.offset++},_updateInput:function(e){var t=this.$refs.textarea;t&&(t.value=e.value,t.selectionStart=e.selectionStart,t.selectionEnd=e.selectionEnd,this.$emit("update:modelValue",e.value))},handleChange:function(e){var t=e.target,n=t.value,i=t.selectionStart,r=t.selectionEnd;this._recordChange({value:n,selectionStart:i,selectionEnd:r},!0),this.$emit("update:modelValue",n)},_undoEdit:function(){var e=this.history,t=e.stack,n=e.offset,i=t[n-1];i&&(this._updateInput(i),this.history.offset=Math.max(n-1,0))},_redoEdit:function(){var e=this.history,t=e.stack,n=e.offset,i=t[n+1];i&&(this._updateInput(i),this.history.offset=Math.min(n+1,t.length-1))},handleKeyDown:function(e){var t=this.tabSize,n=this.insertSpaces,i=this.ignoreTabKey;if(this.$emit("keydown",e),!e.defaultPrevented){27===e.keyCode&&(e.target.blur(),this.$emit("blur",e));var r=e.target,o=r.value,s=r.selectionStart,a=r.selectionEnd,l=(n?" ":"\t").repeat(t);if(9===e.keyCode&&!i&&this.capture)if(e.preventDefault(),e.shiftKey){var u=this._getLines(o,s),c=u.length-1,f=this._getLines(o,a).length-1,p=o.split("\n").map((function(e,t){return t>=c&&t<=f&&e.startsWith(l)?e.substring(l.length):e})).join("\n");if(o!==p){var d=u[c];this._applyEdits({value:p,selectionStart:d.startsWith(l)?s-l.length:s,selectionEnd:a-(o.length-p.length)})}}else if(s!==a){var h=this._getLines(o,s),m=h.length-1,_=this._getLines(o,a).length-1,g=h[m];this._applyEdits({value:o.split("\n").map((function(e,t){return t>=m&&t<=_?l+e:e})).join("\n"),selectionStart:/\S/.test(g)?s+l.length:s,selectionEnd:a+l.length*(_-m+1)})}else{var v=s+l.length;this._applyEdits({value:o.substring(0,s)+l+o.substring(a),selectionStart:v,selectionEnd:v})}else if(8===e.keyCode){var y=s!==a;if(o.substring(0,s).endsWith(l)&&!y){e.preventDefault();var E=s-l.length;this._applyEdits({value:o.substring(0,s-l.length)+o.substring(a),selectionStart:E,selectionEnd:E})}}else if(13===e.keyCode){if(s===a){var b=this._getLines(o,s).pop(),S=null==b?void 0:b.match(/^\s+/);if(S&&S[0]){e.preventDefault();var D="\n"+S[0],A=s+D.length;this._applyEdits({value:o.substring(0,s)+D+o.substring(a),selectionStart:A,selectionEnd:A})}}}else if(57===e.keyCode||219===e.keyCode||222===e.keyCode||192===e.keyCode){var T;57===e.keyCode&&e.shiftKey?T=["(",")"]:219===e.keyCode?T=e.shiftKey?["{","}"]:["[","]"]:222===e.keyCode?T=e.shiftKey?['"','"']:["'","'"]:192!==e.keyCode||e.shiftKey||(T=["`","`"]),s!==a&&T&&(e.preventDefault(),this._applyEdits({value:o.substring(0,s)+T[0]+o.substring(s,a)+T[1]+o.substring(a),selectionStart:s,selectionEnd:a+2}))}else!(is?e.metaKey&&90===e.keyCode:e.ctrlKey&&90===e.keyCode)||e.shiftKey||e.altKey?(is?e.metaKey&&90===e.keyCode&&e.shiftKey:ns?e.ctrlKey&&89===e.keyCode:e.ctrlKey&&90===e.keyCode&&e.shiftKey)&&!e.altKey?(e.preventDefault(),this._redoEdit()):77!==e.keyCode||!e.ctrlKey||is&&!e.shiftKey||(e.preventDefault(),this.capture=!this.capture):(e.preventDefault(),this._undoEdit())}}},render:function(){var e=this,t=Xr("div",{class:"prism-editor__line-width-calc",style:"height: 0px; visibility: hidden; pointer-events: none;"},"999"),n=Xr("div",{class:"prism-editor__line-numbers",style:{"min-height":this.lineNumbersHeight},"aria-hidden":"true"},[t,Array.from(Array(this.lineNumbersCount).keys()).map((function(e,t){return Xr("div",{class:"prism-editor__line-number token comment"},""+ ++t)}))]),i=Xr("textarea",{ref:"textarea",onInput:this.handleChange,onKeydown:this.handleKeyDown,onClick:function(t){e.$emit("click",t)},onKeyup:function(t){e.$emit("keyup",t)},onFocus:function(t){e.$emit("focus",t)},onBlur:function(t){e.$emit("blur",t)},class:{"prism-editor__textarea":!0,"prism-editor__textarea--empty":this.isEmpty},spellCheck:"false",autocapitalize:"off",autocomplete:"off",autocorrect:"off","data-gramm":"false",placeholder:this.placeholder,"data-testid":"textarea",readonly:this.readonly,value:this.codeData}),r=Xr("pre",{ref:"pre",class:"prism-editor__editor","data-testid":"preview",innerHTML:this.content}),o=Xr("div",{class:"prism-editor__container"},[i,r]);return Xr("div",{class:"prism-editor-wrapper"},[this.lineNumbers&&n,o])}}),os=n(820);n(2),n(869);const ss={class:"header"},as={class:"container"},ls=["href"],us={class:"input-container"},cs={class:"buttons"},fs={name:"Header",props:{title:String},data:()=>({baseUrl:`${window.location.protocol}//${window.location.host}${window.location.pathname}`}),methods:{emitFormEvent(){this.$emit("form-event")}}};var ps=n(21);const ds=(0,ps.Z)(fs,[["render",function(e,t,n,i,r,o){return ar(),fr("div",ss,[vr("div",as,[vr("div",null,[vr("h1",null,[vr("a",{href:r.baseUrl},q(n.title),9,ls)]),vr("h3",null,[ci(e.$slots,"description")]),ci(e.$slots,"header")]),vr("form",{autocomplete:"on",onSubmit:t[0]||(t[0]=No(((...e)=>o.emitFormEvent&&o.emitFormEvent(...e)),["prevent"]))},[vr("div",us,[ci(e.$slots,"input")]),vr("div",cs,[ci(e.$slots,"buttons")])],32)])])}]]),hs={class:"footer"},ms={class:"container"},_s={href:"#top",class:"button is-primary is-small"},gs={key:0},vs={key:1},ys={templates:{footer:{backToTop:"Back To Top"},landing:{github:"View this tool on GitHub"}}},Es=["href","textContent"],bs=vr("i",{class:"fas fa-external-link-alt"},null,-1),Ss={name:"ExternalLink",props:{link:String,text:String}},Ds=(0,ps.Z)(Ss,[["render",function(e,t,n,i,r,o){return ar(),fr("span",null,[vr("a",{href:n.link,target:"_blank",rel:"noreferrer",textContent:q(n.text)},null,8,Es),Sr(" "+q(" ")+" "),bs])}]]),As={name:"Footer",components:{ExternalLink:Ds},props:{text:String},data:()=>({i18n:ys}),methods:{dataUrlParser:e=>{const t=/{link\|([^|]+)\|([^|]+)}/,n=[];for(;;){const i=e.match(t);if(!i)break;const r=e.split(i[0]);n.push(r[0]),n.push([i[1],i[2]]),e=r[1]}return n.push(e),n}}},Ts=(0,ps.Z)(As,[["render",function(e,t,n,i,r,o){const s=mn("ExternalLink");return ar(),fr("div",hs,[vr("div",ms,[vr("p",null,[vr("a",_s,q(r.i18n.templates.footer.backToTop),1)]),vr("p",null,[(ar(!0),fr(tr,null,li(o.dataUrlParser(n.text),(e=>(ar(),fr("span",null,["string"==typeof e?(ar(),fr("span",gs,q(e),1)):(ar(),fr("span",vs,[yr(s,{text:e[0],link:e[1]},null,8,["text","link"])]))])))),256))])])])}]]),Cs=["type","name","checked","value","disabled","required"],ws={name:"pretty-input",model:{prop:"modelValue",event:"change"},props:{type:String,name:String,value:{},modelValue:{},trueValue:{},falseValue:{},checked:{},disabled:{},required:{},indeterminate:{},color:String,offColor:String,hoverColor:String,indeterminateColor:String,toggle:{},hover:{},focus:{}},data:()=>({m_checked:void 0,default_mode:!1}),computed:{_type(){return this.$options.input_type?this.$options.input_type:this.type?this.type:"checkbox"},shouldBeChecked(){return void 0!==this.modelValue?"radio"===this._type?this.modelValue===this.value:this.modelValue instanceof Array?this.modelValue.includes(this.value):this._trueValue?this.modelValue===this.trueValue:"string"==typeof this.modelValue||!!this.modelValue:void 0===this.m_checked?this.m_checked="string"==typeof this.checked||!!this.checked:this.m_checked},_disabled(){return"string"==typeof this.disabled||!!this.disabled},_required(){return"string"==typeof this.required||!!this.required},_indeterminate(){return"string"==typeof this.indeterminate||!!this.indeterminate},_trueValue(){return"string"==typeof this.trueValue?this.trueValue:!!this.trueValue},_falseValue(){return"string"==typeof this.falseValue?this.falseValue:!!this.falseValue},_toggle(){return"string"==typeof this.toggle||!!this.toggle},_hover(){return"string"==typeof this.hover||!!this.hover},_focus(){return"string"==typeof this.focus||!!this.focus},classes(){return{pretty:!0,"p-default":this.default_mode,"p-round":"radio"===this._type&&this.default_mode,"p-toggle":this._toggle,"p-has-hover":this._hover,"p-has-focus":this._focus,"p-has-indeterminate":this._indeterminate}},onClasses(){let e={state:!0,"p-on":this._toggle};return this.color&&(e[`p-${this.color}`]=!0),e},offClasses(){let e={state:!0,"p-off":!0};return this.offColor&&(e[`p-${this.offColor}`]=!0),e},hoverClasses(){let e={state:!0,"p-is-hover":!0};return this.hoverColor&&(e[`p-${this.hoverColor}`]=!0),e},indeterminateClasses(){let e={state:!0,"p-is-indeterminate":!0};return this.indeterminateColor&&(e[`p-${this.indeterminateColor}`]=!0),e}},watch:{checked(e){this.m_checked=e},indeterminate(e){this.$refs.input.indeterminate=e}},mounted(){this.$vnode.data&&!this.$vnode.data.staticClass&&(this.default_mode=!0),this._indeterminate&&(this.$refs.input.indeterminate=!0),this.$el.setAttribute(`p-${this._type}`,"")},methods:{updateInput(e){if("radio"===this._type)return void this.$emit("change",this.value);this.$emit("update:indeterminate",!1);let t=e.target.checked;if(this.m_checked=t,this.modelValue instanceof Array){let e=[...this.modelValue];t?e.push(this.value):e.splice(e.indexOf(this.value),1),this.$emit("change",e)}else this.$emit("change",t?!this._trueValue||this.trueValue:!!this._falseValue&&this.falseValue)}}},Os=(0,ps.Z)(ws,[["render",function(e,t,n,i,r,o){return ar(),fr("div",{class:X(o.classes)},[vr("input",{ref:"input",type:o._type,name:n.name,checked:o.shouldBeChecked,value:n.value,onChange:t[0]||(t[0]=(...e)=>o.updateInput&&o.updateInput(...e)),disabled:o._disabled,required:o._required},null,40,Cs),vr("div",{class:X(o.onClasses)},[ci(e.$slots,"extra"),vr("label",null,[ci(e.$slots,"default")])],2),o._toggle?(ar(),fr("div",{key:0,class:X(o.offClasses)},[ci(e.$slots,"off-extra"),ci(e.$slots,"off-label")],2)):Dr("v-if",!0),o._hover?(ar(),fr("div",{key:1,class:X(o.hoverClasses)},[ci(e.$slots,"hover-extra"),ci(e.$slots,"hover-label")],2)):Dr("v-if",!0),o._indeterminate?(ar(),fr("div",{key:2,class:X(o.indeterminateClasses)},[ci(e.$slots,"indeterminate-extra"),ci(e.$slots,"indeterminate-label")],2)):Dr("v-if",!0)],2)}]]),ks={__name:"pretty_input",setup(e){var t;return Reflect.deleteProperty(Os,"model"),Os.mounted=(t=Os.mounted,function(...e){return t.apply(new Proxy(this,{get:(e,t)=>"$vnode"===t?Reflect.get(e,"$").vnode:Reflect.get(e,t)}),e)}),Os.methods.updateInput=(e=>function(...t){return e.apply(new Proxy(this,{get:(e,t)=>"$emit"===t?function(n,...i){return"change"===n&&Reflect.get(e,t).apply(this,["update:modelValue"].concat(i)),Reflect.get(e,t).apply(this,[n].concat(i))}:Reflect.get(e,t)}),t)})(Os.methods.updateInput),(e,t)=>(ar(),pr(Dt(Os),null,ui({_:2},[li(e.$slots,((t,n)=>({name:n,fn:un((t=>[ci(e.$slots,n,$(Er(t||{})))]))})))]),1024))}},xs={__name:"pretty_check",setup:e=>(e,t)=>(ar(),pr(Dt(ks),{type:"checkbox"},ui({_:2},[li(e.$slots,((t,n)=>({name:n,fn:un((t=>[ci(e.$slots,n,$(Er(t||{})))]))})))]),1024))};var Rs=n(481),Fs=n.n(Rs);function Ms(e){return e.split("")}function Is(e,t){return t.includes(e)}class Ns extends Error{constructor(e,t){super(),this.name="DefaultsError",this.message=e,this.defs=t}}function Ps(e,t,n){!0===e?e={}:null!=e&&"object"==typeof e&&(e={...e});const i=e||{};if(n)for(const e in i)if(Ys(i,e)&&!Ys(t,e))throw new Ns("`"+e+"` is not a supported option",t);for(const n in t)if(Ys(t,n))if(e&&Ys(e,n))if("ecma"===n){let t=0|e[n];t>5&&t<2015&&(t+=2009),i[n]=t}else i[n]=e&&Ys(e,n)?e[n]:t[n];else i[n]=t[n];return i}function Bs(){}function Ls(){return!1}function Vs(){return!0}function Us(){return this}function Ks(){return null}var Gs=function(){function e(e,n,i=!0){const r=[];for(let o=0;o=0;)e[n]===t&&e.splice(n,1)}function Ws(e,t){return e.length<2?e.slice():function e(n){if(n.length<=1)return n;var i=Math.floor(n.length/2),r=n.slice(0,i),o=n.slice(i);return function(e,n){for(var i=[],r=0,o=0,s=0;rea.test(e);function na(e,t){return e._annotations&t}function ia(e,t){e._annotations|=t}function ra(e,t){e._annotations&=~t}var oa="",sa=new Map,aa="break case catch class const continue debugger default delete do else export extends finally for function if in instanceof let new return switch throw try typeof var void while with",la="false null true",ua="enum import super this "+la+" "+aa,ca="implements interface package private protected public static "+ua,fa="return new delete throw else case yield await";aa=js(aa),ua=js(ua),fa=js(fa),la=js(la),ca=js(ca);var pa=js(Ms("+-*&%=<>!?|~^")),da=/[0-9a-f]/i,ha=/^0x[0-9a-f]+$/i,ma=/^0[0-7]+$/,_a=/^0o[0-7]+$/i,ga=/^0b[01]+$/i,va=/^\d*\.?\d*(?:e[+-]?\d*(?:\d\.?|\.?\d)\d*)?$/i,ya=/^(0[xob])?[0-9a-f]+n$/i,Ea=js(["in","instanceof","typeof","new","void","delete","++","--","+","-","!","~","&","|","^","*","**","/","%",">>","<<",">>>","<",">","<=",">=","==","===","!=","!==","?","=","+=","-=","||=","&&=","??=","/=","*=","**=","%=",">>=","<<=",">>>=","|=","^=","&=","&&","??","||"]),ba=js(Ms("  \n\r\t\f\v​           \u2028\u2029   \ufeff")),Sa=js(Ms("\n\r\u2028\u2029")),Da=js(Ms(";]),:")),Aa=js(Ms("[{(,;:")),Ta=js(Ms("[]{}(),;:")),Ca={ID_Start:/[$A-Z_a-z\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]/,ID_Continue:/(?:[$0-9A-Z_a-z\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])+/};try{Ca={ID_Start:new RegExp("[_$\\p{ID_Start}]","u"),ID_Continue:new RegExp("[$\\u200C\\u200D\\p{ID_Continue}]+","u")}}catch(e){}function wa(e,t){if(Oa(e.charCodeAt(t))){if(ka(e.charCodeAt(t+1)))return e.charAt(t)+e.charAt(t+1)}else if(ka(e.charCodeAt(t))&&Oa(e.charCodeAt(t-1)))return e.charAt(t-1)+e.charAt(t);return e.charAt(t)}function Oa(e){return e>=55296&&e<=56319}function ka(e){return e>=56320&&e<=57343}function xa(e){return e>=48&&e<=57}function Ra(e){return Ca.ID_Start.test(e)}function Fa(e){return Ca.ID_Continue.test(e)}const Ma=/^[a-z_$][a-z0-9_$]*$/i;function Ia(e){return Ma.test(e)}function Na(e,t){if(Ma.test(e))return!0;if(!t&&/[\ud800-\udfff]/.test(e))return!1;var n=Ca.ID_Start.exec(e);return!(!n||0!==n.index||(e=e.slice(n[0].length))&&(!(n=Ca.ID_Continue.exec(e))||n[0].length!==e.length))}function Pa(e,t=!0){if(!t&&e.includes("e"))return NaN;if(ha.test(e))return parseInt(e.substr(2),16);if(ma.test(e))return parseInt(e.substr(1),8);if(_a.test(e))return parseInt(e.substr(2),8);if(ga.test(e))return parseInt(e.substr(2),2);if(va.test(e))return parseFloat(e);var n=parseFloat(e);return n==e?n:void 0}class Ba extends Error{constructor(e,t,n,i,r){super(),this.name="SyntaxError",this.message=e,this.filename=t,this.line=n,this.col=i,this.pos=r}}function La(e,t,n,i,r){throw new Ba(e,t,n,i,r)}function Va(e,t,n){return e.type==t&&(null==n||e.value==n)}var Ua={};function Ka(e,t,n,i){var r={text:e,filename:t,pos:0,tokpos:0,line:1,tokline:0,col:0,tokcol:0,newline_before:!1,regex_allowed:!1,brace_counter:0,template_braces:[],comments_before:[],directives:{},directive_stack:[]};function o(){return wa(r.text,r.pos)}function s(){if(46!==r.text.charCodeAt(r.pos+1))return!1;const e=r.text.charCodeAt(r.pos+2);return e<48||e>57}function a(e,t){var n=wa(r.text,r.pos++);if(e&&!n)throw Ua;return Sa.has(n)?(r.newline_before=r.newline_before||!t,++r.line,r.col=0,"\r"==n&&"\n"==o()&&(++r.pos,n="\n")):(n.length>1&&(++r.pos,++r.col),++r.col),n}function l(e){for(;e--;)a()}function u(e){return r.text.substr(r.pos,e.length)==e}function c(e,t){var n=r.text.indexOf(e,r.pos);if(t&&-1==n)throw Ua;return n}function f(){r.tokline=r.line,r.tokcol=r.col,r.tokpos=r.pos}var p=!1,d=null;function h(e,n,i){r.regex_allowed="operator"==e&&!Ha.has(n)||"keyword"==e&&fa.has(n)||"punc"==e&&Aa.has(n)||"arrow"==e,"punc"!=e||"."!=n&&"?."!=n?i||(p=!1):p=!0;const o=r.tokline,s=r.tokcol,a=r.tokpos,l=r.newline_before,u=t;let c=[],f=[];i||(c=r.comments_before,f=r.comments_before=[]),r.newline_before=!1;const h=new Ja(e,n,o,s,a,l,c,f,u);return i||(d=h),h}function m(){for(;ba.has(o());)a()}function _(e){La(e,t,r.tokline,r.tokcol,r.tokpos)}function g(e){var t=!1,n=!1,i=!1,r="."==e,s=!1,l=!1,u=function(e){for(var t,n="",i=0;(t=o())&&e(t,i++);)n+=a();return n}((function(o,a){if(s)return!1;switch(o.charCodeAt(0)){case 95:return l=!0;case 98:case 66:return i=!0;case 111:case 79:case 120:case 88:return!i&&(i=!0);case 101:case 69:return!!i||!t&&(t=n=!0);case 45:return n||0==a&&!e;case 43:return n;case n=!1,46:return!(r||i||t)&&(r=!0)}return"n"===o?(s=!0,!0):da.test(o)}));if(e&&(u=e+u),oa=u,ma.test(u)&&x.has_directive("use strict")&&_("Legacy octal literals are not allowed in strict mode"),l&&(u.endsWith("_")?_("Numeric separators are not allowed at the end of numeric literals"):u.includes("__")&&_("Only one underscore is allowed as numeric separator"),u=u.replace(/_/g,"")),u.endsWith("n")){const e=u.slice(0,-1),t=Pa(e,ha.test(e));if(!r&&ya.test(u)&&!isNaN(t))return h("big_int",e);_("Invalid or unexpected token")}var c=Pa(u);if(!isNaN(c))return h("num",c);_("Invalid syntax: "+u)}function v(e){return e>="0"&&e<="7"}function y(e,t,n){var i,s=a(!0,e);switch(s.charCodeAt(0)){case 110:return"\n";case 114:return"\r";case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 120:return String.fromCharCode(E(2,t));case 117:if("{"==o()){for(a(!0),"}"===o()&&_("Expecting hex-character between {}");"0"==o();)a(!0);var l,u=c("}",!0)-r.pos;return(u>6||(l=E(u,t))>1114111)&&_("Unicode reference out of bounds"),a(!0),(i=l)>65535?(i-=65536,String.fromCharCode(55296+(i>>10))+String.fromCharCode(i%1024+56320)):String.fromCharCode(i)}return String.fromCharCode(E(4,t));case 10:return"";case 13:if("\n"==o())return a(!0,e),""}return v(s)?(n&&t&&("0"===s&&!v(o())||_("Octal escape sequences are not allowed in template strings")),function(e,t){var n=o();return n>="0"&&n<="7"&&(e+=a(!0))[0]<="3"&&(n=o())>="0"&&n<="7"&&(e+=a(!0)),"0"===e?"\0":(e.length>0&&x.has_directive("use strict")&&t&&_("Legacy octal escape sequences are not allowed in strict mode"),String.fromCharCode(parseInt(e,8)))}(s,t)):s}function E(e,t){for(var n=0;e>0;--e){if(!t&&isNaN(parseInt(o(),16)))return parseInt(n,16)||"";var i=a(!0);isNaN(parseInt(i,16))&&_("Invalid hex-character pattern in string"),n+=i}return parseInt(n,16)}var b=k("Unterminated string constant",(function(){const e=r.pos;for(var t=a(),n=[];;){var i=a(!0,!0);if("\\"==i)i=y(!0,!0);else if("\r"==i||"\n"==i)_("Unterminated string constant");else if(i==t)break;n.push(i)}var o=h("string",n.join(""));return oa=r.text.slice(e,r.pos),o.quote=t,o})),S=k("Unterminated template",(function(e){e&&r.template_braces.push(r.brace_counter);var t,n,i="",s="";for(a(!0,!0);"`"!=(t=a(!0,!0));){if("\r"==t)"\n"==o()&&++r.pos,t="\n";else if("$"==t&&"{"==o())return a(!0,!0),r.brace_counter++,n=h(e?"template_head":"template_substitution",i),sa.set(n,s),n.template_end=!1,n;if(s+=t,"\\"==t){var l=r.pos;t=y(!0,!(d&&("name"===d.type||"punc"===d.type&&(")"===d.value||"]"===d.value))),!0),s+=r.text.substr(l,r.pos-l)}i+=t}return r.template_braces.pop(),n=h(e?"template_head":"template_substitution",i),sa.set(n,s),n.template_end=!0,n}));function D(e){var t,n=r.regex_allowed,i=function(){for(var e=r.text,t=r.pos,n=r.text.length;t"===o()?(a(),h("arrow","=>")):w("=");case 63:if(!s())break;return a(),a(),h("punc","?.");case 96:return S(!0);case 123:r.brace_counter++;break;case 125:if(r.brace_counter--,r.template_braces.length>0&&r.template_braces[r.template_braces.length-1]===r.brace_counter)return S(!1)}if(xa(c))return g();if(Ta.has(t))return h("punc",a());if(pa.has(t))return w();if(92==c||Ra(t))return void 0,v=T(),p?h("name",v):la.has(v)?h("atom",v):aa.has(v)?Ea.has(v)?h("operator",v):h("keyword",v):h("name",v);if(35==c)return a(),h("privatename",T());break}var v;_("Unexpected character '"+t+"'")}return x.next=a,x.peek=o,x.context=function(e){return e&&(r=e),r},x.add_directive=function(e){r.directive_stack[r.directive_stack.length-1].push(e),void 0===r.directives[e]?r.directives[e]=1:r.directives[e]++},x.push_directives_stack=function(){r.directive_stack.push([])},x.pop_directives_stack=function(){for(var e=r.directive_stack[r.directive_stack.length-1],t=0;t0},x}var Ga=js(["typeof","void","delete","--","++","!","~","-","+"]),Ha=js(["--","++"]),za=js(["=","+=","-=","??=","&&=","||=","/=","*=","**=","%=",">>=","<<=",">>>=","|=","^=","&="]),Xa=js(["??=","&&=","||="]),$a=function(e,t){for(var n=0;n","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"],["**"]],{}),Wa=js(["atom","num","big_int","string","regexp","name"]);function ja(e,t){const n=new WeakMap;t=Ps(t,{bare_returns:!1,ecma:null,expression:!1,filename:null,html5_comments:!0,module:!1,shebang:!0,strict:!1,toplevel:null},!0);var i={input:"string"==typeof e?Ka(e,t.filename,t.html5_comments,t.shebang):e,token:null,prev:null,peeked:null,in_function:0,in_async:-1,in_generator:-1,in_directives:!0,in_loop:0,labels:[]};function r(e,t){return Va(i.token,e,t)}function o(){return i.peeked||(i.peeked=i.input())}function s(){return i.prev=i.token,i.peeked||o(),i.token=i.peeked,i.peeked=null,i.in_directives=i.in_directives&&("string"==i.token.type||r("punc",";")),i.token}function a(){return i.prev}function l(e,t,n,r){var o=i.input.context();La(e,o.filename,null!=t?t:o.tokline,null!=n?n:o.tokcol,null!=r?r:o.tokpos)}function u(e,t){l(t,e.line,e.col)}function c(e){null==e&&(e=i.token),u(e,"Unexpected token: "+e.type+" ("+e.value+")")}function f(e,t){if(r(e,t))return s();u(i.token,"Unexpected token "+i.token.type+" «"+i.token.value+"», expected "+e+" «"+t+"»")}function p(e){return f("punc",e)}function d(e){return e.nlb||!e.comments_before.every((e=>!e.nlb))}function h(){return!t.strict&&(r("eof")||r("punc","}")||d(i.token))}function m(){return i.in_generator===i.in_function}function _(){return i.in_async===i.in_function||0===i.in_function&&i.input.has_directive("use strict")}function g(e){r("punc",";")?s():e||h()||c()}function v(){p("(");var e=ge(!0);return p(")"),e}function y(e){return function(...t){const n=i.token,r=e(...t);return r.start=n,r.end=a(),r}}function E(){(r("operator","/")||r("operator","/="))&&(i.peeked=null,i.token=i.input(i.token.value.substr(1)))}i.token=s();var b=y((function e(n,m,y){switch(E(),i.token.type){case"string":if(i.in_directives){var b=o();!oa.includes("\\")&&(Va(b,"punc",";")||Va(b,"punc","}")||d(b)||Va(b,"eof"))?i.input.add_directive(i.token.value):i.in_directives=!1}var O=i.in_directives,x=D();return O&&x.body instanceof lc?new nl(x.body):x;case"template_head":case"num":case"big_int":case"regexp":case"operator":case"atom":return D();case"name":case"privatename":if(r("privatename")&&!i.in_class&&l("Private field must be used in an enclosing class"),"async"==i.token.value&&Va(o(),"keyword","function"))return s(),s(),m&&l("functions are not allowed as the body of a loop"),k(Cl,!1,!0,n);if("import"==i.token.value&&!Va(o(),"punc","(")&&!Va(o(),"punc",".")){s();var F=function(){var e,t,n=a();r("name")&&(e=se(Zu)),r("punc",",")&&s(),((t=ee(!0))||e)&&f("name","from");var o=i.token;"string"!==o.type&&c(),s();const l=Z();return new tu({start:n,imported_name:e,imported_names:t,module_name:new lc({start:o,value:o.value,quote:o.quote,end:o}),assert_clause:l,end:i.token})}();return g(),F}return Va(o(),"punc",":")?S():D();case"punc":switch(i.token.value){case"{":return new al({start:i.token,body:N(),end:a()});case"[":case"(":return D();case";":return i.in_directives=!1,s(),new ll;default:c()}case"keyword":switch(i.token.value){case"break":return s(),A(Pl);case"continue":return s(),A(Bl);case"debugger":return s(),g(),new tl;case"do":s();var M=ve(e);f("keyword","while");var B=v();return g(!0),new dl({body:M,condition:B});case"while":return s(),new hl({condition:v(),body:ve((function(){return e(!1,!0)}))});case"for":return s(),function(){var e="`for await` invalid in this context",t=i.token;"name"==t.type&&"await"==t.value?(_()||u(t,e),s()):t=!1,p("(");var n=null;if(r("punc",";"))t&&u(t,e);else{n=r("keyword","var")?(s(),L(!0)):r("keyword","let")?(s(),V(!0)):r("keyword","const")?(s(),U(!0)):ge(!0,!0);var o=r("operator","in"),a=r("name","of");if(t&&!a&&u(t,e),o||a)return n instanceof ql?n.definitions.length>1&&u(n.start,"Only one variable declaration allowed in for..in loop"):de(n)||(n=he(n))instanceof wl||u(n.start,"Invalid left-hand side in for..in loop"),s(),o?w(n):C(n,!!t)}return T(n)}();case"class":return s(),m&&l("classes are not allowed as the body of a loop"),y&&l("classes are not allowed as the body of an if"),q(Mu,n);case"function":return s(),m&&l("functions are not allowed as the body of a loop"),k(Cl,!1,!1,n);case"if":return s(),I();case"return":0!=i.in_function||t.bare_returns||l("'return' outside of function"),s();var K=null;return r("punc",";")?s():h()||(K=ge(!0),g()),new Ml({value:K});case"switch":return s(),new Kl({expression:v(),body:ve(P)});case"throw":return s(),d(i.token)&&l("Illegal newline after 'throw'"),K=ge(!0),g(),new Il({value:K});case"try":return s(),function(){var e,t=null,n=null;if(e=new $l({start:i.token,body:N(),end:a()}),r("keyword","catch")){var o=i.token;if(s(),r("punc","{"))var u=null;else p("("),u=R(void 0,Yu),p(")");t=new Wl({start:o,argname:u,body:N(),end:a()})}return r("keyword","finally")&&(o=i.token,s(),n=new jl({start:o,body:N(),end:a()})),t||n||l("Missing catch/finally blocks"),new Xl({body:e,bcatch:t,bfinally:n})}();case"var":return s(),F=L(),g(),F;case"let":return s(),F=V(),g(),F;case"const":return s(),F=U(),g(),F;case"with":return i.input.has_directive("use strict")&&l("Strict mode may not include a with statement"),s(),new vl({expression:v(),body:e()});case"export":if(!Va(o(),"punc","("))return s(),F=te(),r("punc",";")&&g(),F}}c()}));function S(){var e=se(Qu);"await"===e.name&&i.in_async===i.in_function&&u(i.prev,"await cannot be used as label inside async function"),i.labels.some((t=>t.name===e.name))&&l("Label "+e.name+" defined twice"),p(":"),i.labels.push(e);var t=b();return i.labels.pop(),t instanceof fl||e.references.forEach((function(t){t instanceof Bl&&(t=t.label.start,l("Continue label `"+e.name+"` refers to non-IterationStatement.",t.line,t.col,t.pos))})),new cl({body:t,label:e})}function D(e){return new il({body:(e=ge(!0),g(),e)})}function A(e){var t,n=null;h()||(n=se(ic,!0)),null!=n?((t=i.labels.find((e=>e.name===n.name)))||l("Undefined label "+n.name),n.thedef=t):0==i.in_loop&&l(e.TYPE+" not inside a loop or switch"),g();var r=new e({label:n});return t&&t.references.push(r),r}function T(e){p(";");var t=r("punc",";")?null:ge(!0);p(";");var n=r("punc",")")?null:ge(!0);return p(")"),new ml({init:e,condition:t,step:n,body:ve((function(){return b(!1,!0)}))})}function C(e,t){var n=e instanceof ql?e.definitions[0].name:null,i=ge(!0);return p(")"),new gl({await:t,init:e,name:n,object:i,body:ve((function(){return b(!1,!0)}))})}function w(e){var t=ge(!0);return p(")"),new _l({init:e,object:t,body:ve((function(){return b(!1,!0)}))})}var O=function(e,t,n){d(i.token)&&l("Unexpected newline before arrow (=>)"),f("arrow","=>");var o=M(r("punc","{"),!1,n),s=o instanceof Array&&o.length?o[o.length-1].end:o instanceof Array?e:o.end;return new Tl({start:e,end:s,async:n,argnames:t,body:o})},k=function(e,t,n,i){var o=e===Cl,l=r("operator","*");l&&s();var u=r("name")?se(o?zu:Wu):null;o&&!u&&(i?e=Al:c()),!u||e===Dl||u instanceof Lu||c(a());var f=[],p=M(!0,l||t,n,u,f);return new e({start:f.start,end:p.end,is_generator:l,async:n,name:u,argnames:f,body:p})};class x{constructor(e,t,n=!1){this.is_parameter=e,this.duplicates_ok=n,this.parameters=new Set,this.duplicate=null,this.default_assignment=!1,this.spread=!1,this.strict_mode=!!t}add_parameter(e){if(this.parameters.has(e.value))null===this.duplicate&&(this.duplicate=e),this.check_strict();else if(this.parameters.add(e.value),this.is_parameter)switch(e.value){case"arguments":case"eval":case"yield":this.strict_mode&&u(e,"Unexpected "+e.value+" identifier as parameter inside strict mode");break;default:ua.has(e.value)&&c()}}mark_default_assignment(e){!1===this.default_assignment&&(this.default_assignment=e)}mark_spread(e){!1===this.spread&&(this.spread=e)}mark_strict_mode(){this.strict_mode=!0}is_strict(){return!1!==this.default_assignment||!1!==this.spread||this.strict_mode}check_strict(){this.is_strict()&&null!==this.duplicate&&!this.duplicates_ok&&u(this.duplicate,"Parameter "+this.duplicate.value+" was used already")}}function R(e,t){var n,o=!1;return void 0===e&&(e=new x(!0,i.input.has_directive("use strict"))),r("expand","...")&&(o=i.token,e.mark_spread(i.token),s()),n=F(e,t),r("operator","=")&&!1===o&&(e.mark_default_assignment(i.token),s(),n=new vu({start:n.start,left:n,operator:"=",right:ge(!1),end:i.token})),!1!==o&&(r("punc",")")||c(),n=new bl({start:o,expression:n,end:o})),e.check_strict(),n}function F(e,t){var n,u=[],f=!0,d=!1,h=i.token;if(void 0===e){const n=i.input.has_directive("use strict");e=new x(!1,n,t===Vu)}if(t=void 0===t?Hu:t,r("punc","[")){for(s();!r("punc","]");){if(f?f=!1:p(","),r("expand","...")&&(d=!0,n=i.token,e.mark_spread(i.token),s()),r("punc"))switch(i.token.value){case",":u.push(new _c({start:i.token,end:i.token}));continue;case"]":break;case"[":case"{":u.push(F(e,t));break;default:c()}else r("name")?(e.add_parameter(i.token),u.push(se(t))):l("Invalid function parameter");r("operator","=")&&!1===d&&(e.mark_default_assignment(i.token),s(),u[u.length-1]=new vu({start:u[u.length-1].start,left:u[u.length-1],operator:"=",right:ge(!1),end:i.token})),d&&(r("punc","]")||l("Rest element must be last element"),u[u.length-1]=new bl({start:n,expression:u[u.length-1],end:n}))}return p("]"),e.check_strict(),new wl({start:h,names:u,is_array:!0,end:a()})}if(r("punc","{")){for(s();!r("punc","}");){if(f?f=!1:p(","),r("expand","...")&&(d=!0,n=i.token,e.mark_spread(i.token),s()),r("name")&&(Va(o(),"punc")||Va(o(),"operator"))&&[",","}","="].includes(o().value)){e.add_parameter(i.token);var m=a(),_=se(t);d?u.push(new bl({start:n,expression:_,end:_.end})):u.push(new Su({start:m,key:_.name,value:_,end:_.end}))}else{if(r("punc","}"))continue;var g=i.token,v=ne();null===v?c(a()):"name"!==a().type||r("punc",":")?(p(":"),u.push(new Su({start:g,quote:g.quote,key:v,value:F(e,t),end:a()}))):u.push(new Su({start:a(),key:v,value:new t({start:a(),name:v,end:a()}),end:a()}))}d?r("punc","}")||l("Rest element must be last element"):r("operator","=")&&(e.mark_default_assignment(i.token),s(),u[u.length-1].value=new vu({start:u[u.length-1].value.start,left:u[u.length-1].value,operator:"=",right:ge(!1),end:i.token}))}return p("}"),e.check_strict(),new wl({start:h,names:u,is_array:!1,end:a()})}if(r("name"))return e.add_parameter(i.token),se(t);l("Invalid function parameter")}function M(e,t,n,o,a){var l=i.in_loop,u=i.labels,c=i.in_generator,f=i.in_async;if(++i.in_function,t&&(i.in_generator=i.in_function),n&&(i.in_async=i.in_function),a&&function(e){var t=new x(!0,i.input.has_directive("use strict"));for(p("(");!r("punc",")");){var n=R(t);if(e.push(n),r("punc",")")||p(","),n instanceof bl)break}s()}(a),e&&(i.in_directives=!0),i.in_loop=0,i.labels=[],e){i.input.push_directives_stack();var d=N();o&&oe(o),a&&a.forEach(oe),i.input.pop_directives_stack()}else d=[new Ml({start:i.token,value:ge(!1),end:i.token})];return--i.in_function,i.in_loop=l,i.labels=u,i.in_generator=c,i.in_async=f,d}function I(){var e=v(),t=b(!1,!1,!0),n=null;return r("keyword","else")&&(s(),n=b(!1,!1,!0)),new Ul({condition:e,body:t,alternative:n})}function N(){p("{");for(var e=[];!r("punc","}");)r("eof")&&c(),e.push(b());return s(),e}function P(){p("{");for(var e,t=[],n=null,o=null;!r("punc","}");)r("eof")&&c(),r("keyword","case")?(o&&(o.end=a()),n=[],o=new zl({start:(e=i.token,s(),e),expression:ge(!0),body:n}),t.push(o),p(":")):r("keyword","default")?(o&&(o.end=a()),n=[],o=new Hl({start:(e=i.token,s(),p(":"),e),body:n}),t.push(o)):(n||c(),n.push(b()));return o&&(o.end=a()),s(),t}function B(e,t){for(var n,o=[];;){var u="var"===t?Vu:"const"===t?Ku:"let"===t?Gu:null;if(r("punc","{")||r("punc","[")?n=new Ql({start:i.token,name:F(void 0,u),value:r("operator","=")?(f("operator","="),ge(!1,e)):null,end:a()}):"import"==(n=new Ql({start:i.token,name:se(u),value:r("operator","=")?(s(),ge(!1,e)):e||"const"!==t?null:l("Missing initializer in const declaration"),end:a()})).name.name&&l("Unexpected token: import"),o.push(n),!r("punc",","))break;s()}return o}var L=function(e){return new Yl({start:a(),definitions:B(e,"var"),end:a()})},V=function(e){return new Zl({start:a(),definitions:B(e,"let"),end:a()})},U=function(e){return new Jl({start:a(),definitions:B(e,"const"),end:a()})};function K(){var e,t=i.token;switch(t.type){case"name":e=re(ec);break;case"num":e=new uc({start:t,end:t,value:t.value,raw:oa});break;case"big_int":e=new cc({start:t,end:t,value:t.value});break;case"string":ae(e=new lc({start:t,end:t,value:t.value,quote:t.quote}));break;case"regexp":const[n,i,r]=t.value.match(/^\/(.*)\/(\w*)$/);e=new fc({start:t,end:t,value:{source:i,flags:r}});break;case"atom":switch(t.value){case"false":e=new yc({start:t,end:t});break;case"true":e=new Ec({start:t,end:t});break;case"null":e=new dc({start:t,end:t})}}return s(),e}function G(e,t){var n=function(e,t){return t?new vu({start:e.start,left:e,operator:"=",right:t,end:t.end}):e};return e instanceof Eu?n(new wl({start:e.start,end:e.end,is_array:!1,names:e.properties.map((e=>G(e)))}),t):e instanceof Su?(e.value=G(e.value),n(e,t)):e instanceof _c?e:e instanceof wl?(e.names=e.names.map((e=>G(e))),n(e,t)):e instanceof ec?n(new Hu({name:e.name,start:e.start,end:e.end}),t):e instanceof bl?(e.expression=G(e.expression),n(e,t)):e instanceof yu?n(new wl({start:e.start,end:e.end,is_array:!0,names:e.elements.map((e=>G(e)))}),t):e instanceof gu?n(G(e.left,e.right),t):e instanceof vu?(e.left=G(e.left),e):void l("Invalid function parameter",e.start.line,e.start.col)}var H=function(e,t){if(r("operator","new"))return function(e){var t=i.token;if(f("operator","new"),r("punc","."))return s(),f("name","target"),le(new Bu({start:t,end:a()}),e);var n,o=H(!1);r("punc","(")?(s(),n=X(")",!0)):n=[];var l=new ou({start:t,expression:o,args:n,end:a()});return ae(l),le(l,e)}(e);if(r("name","import")&&Va(o(),"punc","."))return function(e){var t=i.token;return f("name","import"),f("punc","."),f("name","meta"),le(new nu({start:t,end:a()}),e)}(e);var u,d=i.token,h=r("name","async")&&"["!=(u=o()).value&&"arrow"!=u.type&&K();if(r("punc")){switch(i.token.value){case"(":if(h&&!e)break;var m=function(e,t){var n,o,l,u=[];for(p("(");!r("punc",")");)n&&c(n),r("expand","...")?(n=i.token,t&&(o=i.token),s(),u.push(new bl({start:a(),expression:ge(),end:i.token}))):u.push(ge()),r("punc",")")||(p(","),r("punc",")")&&(l=a(),t&&(o=l)));return p(")"),e&&r("arrow","=>")?n&&l&&c(l):o&&c(o),u}(t,!h);if(t&&r("arrow","=>"))return O(d,m.map((e=>G(e))),!!h);var _=h?new ru({expression:h,args:m}):_e(d,m);if(_.start){const e=d.comments_before.length;if(n.set(d,e),_.start.comments_before.unshift(...d.comments_before),d.comments_before=_.start.comments_before,0==e&&d.comments_before.length>0){var g=d.comments_before[0];g.nlb||(g.nlb=d.nlb,d.nlb=!1)}d.comments_after=_.start.comments_after}_.start=d;var v=a();return _.end&&(v.comments_before=_.end.comments_before,_.end.comments_after.push(...v.comments_after),v.comments_after=_.end.comments_after),_.end=v,_ instanceof ru&&ae(_),le(_,e);case"[":return le($(),e);case"{":return le(j(),e)}h||c()}if(t&&r("name")&&Va(o(),"arrow")){var y=new Hu({name:i.token.value,start:d,end:d});return s(),O(d,[y],!!h)}if(r("keyword","function")){s();var E=k(Al,!1,!!h);return E.start=d,E.end=a(),le(E,e)}if(h)return le(h,e);if(r("keyword","class")){s();var b=q(Nu);return b.start=d,b.end=a(),le(b,e)}if(r("template_head"))return le(z(),e);if(r("privatename")){i.in_class||l("Private field must be used in an enclosing class");const t=i.token,n=new rc({start:t,name:t.value,end:t});s(),f("operator","in");const r=new Fu({start:t,key:n,value:le(K(),e),end:a()});return le(r,e)}if(Wa.has(i.token.type))return le(K(),e);c()};function z(){var e=[],t=i.token;for(e.push(new xl({start:i.token,raw:sa.get(i.token),value:i.token.value,end:i.token}));!i.token.template_end;)s(),E(),e.push(ge(!0)),e.push(new xl({start:i.token,raw:sa.get(i.token),value:i.token.value,end:i.token}));return s(),new kl({start:t,segments:e,end:i.token})}function X(e,t,n){for(var o=!0,l=[];!r("punc",e)&&(o?o=!1:p(","),!t||!r("punc",e));)r("punc",",")&&n?l.push(new _c({start:i.token,end:i.token})):r("expand","...")?(s(),l.push(new bl({start:a(),expression:ge(),end:i.token}))):l.push(ge(!1));return s(),l}var $=y((function(){return p("["),new yu({elements:X("]",!t.strict,!0)})})),W=y(((e,t)=>k(Dl,e,t))),j=y((function(){var e=i.token,n=!0,o=[];for(p("{");!r("punc","}")&&(n?n=!1:p(","),t.strict||!r("punc","}"));){if("expand"==(e=i.token).type){s(),o.push(new bl({start:e,expression:ge(!1),end:a()}));continue}r("privatename")&&l("private fields are not allowed in an object");var u,f=ne();if(r("punc",":"))null===f?c(a()):(s(),u=ge(!1));else{var d=Y(f,e);if(d){o.push(d);continue}u=new ec({start:a(),name:f,end:a()})}r("operator","=")&&(s(),u=new gu({start:e,left:u,operator:"=",right:ge(!1),logical:!1,end:a()}));const t=new Su({start:e,quote:e.quote,key:f instanceof Qa?f:""+f,value:u,end:a()});o.push(ae(t))}return s(),new Eu({properties:o})}));function q(e,t){var n,o,l,u,f=[];i.input.push_directives_stack(),i.input.add_directive("use strict"),"name"==i.token.type&&"extends"!=i.token.value&&(l=se(e===Mu?ju:qu)),e!==Mu||l||(t?e=Nu:c()),"extends"==i.token.value&&(s(),u=ge(!0)),p("{");const d=i.in_class;for(i.in_class=!0;r("punc",";");)s();for(;!r("punc","}");)for(n=i.token,(o=Y(ne(),n,!0))||c(),f.push(o);r("punc",";");)s();return i.in_class=d,i.input.pop_directives_stack(),s(),new e({start:n,name:l,extends:u,properties:f,end:a()})}function Y(e,t,n){const o=(e,n=Xu)=>"string"==typeof e||"number"==typeof e?new n({start:t,name:""+e,end:a()}):(null===e&&c(),e),l=()=>!(r("punc","(")||r("punc",",")||r("punc","}")||r("punc",";")||r("operator","="));var u=!1,f=!1,p=!1,d=!1,h=null;if(n&&"static"===e&&l()){const t=function(){if(!r("punc","{"))return null;const e=i.token,t=[];for(s();!r("punc","}");)t.push(b());return s(),new Iu({start:e,body:t,end:a()})}();if(null!=t)return t;f=!0,e=ne()}"async"===e&&l()&&(u=!0,e=ne()),"operator"===a().type&&"*"===a().value&&(p=!0,e=ne()),"get"!==e&&"set"!==e||!l()||(h=e,e=ne()),"privatename"===a().type&&(d=!0);const m=a();if(null!=h){if(d)return ae(new("get"===h?Au:Du)({start:t,static:f,key:o(e),value:W(),end:a()}));{const n="get"===h?Cu:Tu;return e=o(e),ae(new n({start:t,static:f,key:e,quote:e instanceof Xu?m.quote:void 0,value:W(),end:a()}))}}if(r("punc","("))return e=o(e),ae(new(d?Ou:wu)({start:t,static:f,is_generator:p,async:u,key:e,quote:e instanceof Xu?m.quote:void 0,value:W(p,u),end:a()}));if(n){const n=o(e,$u),i=n instanceof $u?m.quote:void 0,l=d?Ru:xu;if(r("operator","="))return s(),ae(new l({start:t,static:f,quote:i,key:n,value:ge(!1),end:a()}));if(r("name")||r("privatename")||r("operator","*")||r("punc",";")||r("punc","}"))return ae(new l({start:t,static:f,quote:i,key:n,end:a()}))}}function Z(){return r("name","assert")&&!d(i.token)?(s(),j()):null}function J(e){function t(e,t){return new e({name:ne(),quote:t||void 0,start:a(),end:a()})}var n,o,l=e?Ju:nc,u=e?Zu:tc,c=i.token;return e?n=t(l,c.quote):o=t(u,c.quote),r("name","as")?(s(),e?o=t(u):n=t(l,i.token.quote)):e?o=new u(n):n=new l(o),new eu({start:c,foreign_name:n,name:o,end:a()})}function Q(e,t){var n,r,o=e?Ju:nc,s=e?Zu:tc,l=i.token,u=a();return e?n=t:r=t,n=n||new s({start:l,name:"*",end:u}),r=r||new o({start:l,name:"*",end:u}),new eu({start:l,foreign_name:r,name:n,end:u})}function ee(e){var t;if(r("punc","{")){for(s(),t=[];!r("punc","}");)t.push(J(e)),r("punc",",")&&s();s()}else if(r("operator","*")){var n;s(),r("name","as")&&(s(),n=e?se(Zu):function(e){if(!r("name")){r("string")||l("Name or string expected");var t=i.token,n=new e({start:t,end:t,name:t.value,quote:t.quote});return s(),n}var o=re(e);return oe(o),s(),o}(nc)),t=[Q(e,n)]}return t}function te(){var e,t,n,l,u,f=i.token;if(r("keyword","default"))e=!0,s();else if(t=ee(!1)){if(r("name","from")){s();var p=i.token;"string"!==p.type&&c(),s();const n=Z();return new iu({start:f,is_default:e,exported_names:t,module_name:new lc({start:p,value:p.value,quote:p.quote,end:p}),end:a(),assert_clause:n})}return new iu({start:f,is_default:e,exported_names:t,end:a()})}return r("punc","{")||e&&(r("keyword","class")||r("keyword","function"))&&Va(o(),"punc")?(l=ge(!1),g()):(n=b(e))instanceof ql&&e?c(n.start):n instanceof ql||n instanceof Cl||n instanceof Mu?u=n:n instanceof Nu||n instanceof Al?l=n:n instanceof il?l=n.body:c(n.start),new iu({start:f,is_default:e,exported_value:l,exported_definition:u,end:a(),assert_clause:null})}function ne(){var e=i.token;switch(e.type){case"punc":if("["===e.value){s();var t=ge(!1);return p("]"),t}c(e);case"operator":if("*"===e.value)return s(),null;["delete","in","instanceof","new","typeof","void"].includes(e.value)||c(e);case"name":case"privatename":case"string":case"num":case"big_int":case"keyword":case"atom":return s(),e.value;default:c(e)}}function ie(){var e=i.token;return"name"!=e.type&&"privatename"!=e.type&&c(),s(),e.value}function re(e){var t=i.token.value;return new("this"==t?oc:"super"==t?sc:e)({name:String(t),start:i.token,end:i.token})}function oe(e){var t=e.name;m()&&"yield"==t&&u(e.start,"Yield cannot be used as identifier inside generators"),i.input.has_directive("use strict")&&("yield"==t&&u(e.start,"Unexpected yield identifier inside strict mode"),e instanceof Lu&&("arguments"==t||"eval"==t)&&u(e.start,"Unexpected "+t+" in strict mode"))}function se(e,t){if(!r("name"))return t||l("Name expected"),null;var n=re(e);return oe(n),s(),n}function ae(e,t=e.start){var i=t.comments_before;const r=n.get(t);for(var o=null!=r?r:i.length;--o>=0;){var s=i[o];if(/[@#]__/.test(s.value)){if(/[@#]__PURE__/.test(s.value)){ia(e,Cc);break}if(/[@#]__INLINE__/.test(s.value)){ia(e,wc);break}if(/[@#]__NOINLINE__/.test(s.value)){ia(e,Oc);break}if(/[@#]__KEY__/.test(s.value)){ia(e,kc);break}if(/[@#]__MANGLE_PROP__/.test(s.value)){ia(e,xc);break}}}return e}var le=function(e,t,n){var o=e.start;if(r("punc",".")){s(),r("privatename")&&!i.in_class&&l("Private field must be used in an enclosing class");const u=r("privatename")?uu:lu;return ae(le(new u({start:o,expression:e,optional:!1,property:ie(),end:a()}),t,n))}if(r("punc","[")){s();var u=ge(!0);return p("]"),ae(le(new cu({start:o,expression:e,optional:!1,property:u,end:a()}),t,n))}if(t&&r("punc","(")){s();var f=new ru({start:o,expression:e,optional:!1,args:ue(),end:a()});return ae(f),le(f,!0,n)}if(r("punc","?.")){let n;if(s(),t&&r("punc","(")){s();const t=new ru({start:o,optional:!0,expression:e,args:ue(),end:a()});ae(t),n=le(t,!0,!0)}else if(r("name")||r("privatename")){r("privatename")&&!i.in_class&&l("Private field must be used in an enclosing class");const s=r("privatename")?uu:lu;n=ae(le(new s({start:o,expression:e,optional:!0,property:ie(),end:a()}),t,!0))}else if(r("punc","[")){s();const i=ge(!0);p("]"),n=ae(le(new cu({start:o,expression:e,optional:!0,property:i,end:a()}),t,!0))}return n||c(),n instanceof fu?n:new fu({start:o,expression:n,end:a()})}return r("template_head")?(n&&c(),le(new Ol({start:o,prefix:e,template_string:z(),end:a()}),t)):e};function ue(){for(var e=[];!r("punc",")");)r("expand","...")?(s(),e.push(new bl({start:a(),expression:ge(!1),end:a()}))):e.push(ge(!1)),r("punc",")")||p(",");return s(),e}var ce=function(e,t){var n=i.token;if("name"==n.type&&"await"==n.value&&_())return s(),_()||l("Unexpected await expression outside async function",i.prev.line,i.prev.col,i.prev.pos),new Ll({start:a(),end:i.token,expression:ce(!0)});if(r("operator")&&Ga.has(n.value)){s(),E();var o=fe(du,n,ce(e));return o.start=n,o.end=a(),o}for(var u=H(e,t);r("operator")&&Ha.has(i.token.value)&&!d(i.token);)u instanceof Tl&&c(),(u=fe(hu,i.token,u)).start=n,u.end=i.token,s();return u};function fe(e,t,n){var r=t.value;switch(r){case"++":case"--":de(n)||l("Invalid use of "+r+" operator",t.line,t.col,t.pos);break;case"delete":n instanceof ec&&i.input.has_directive("use strict")&&l("Calling delete on expression not allowed in strict mode",n.start.line,n.start.col,n.start.pos)}return new e({operator:r,expression:n})}var pe=function(e,t,n){var o=r("operator")?i.token.value:null;"in"==o&&n&&(o=null),"**"==o&&e instanceof du&&!Va(e.start,"punc","(")&&"--"!==e.operator&&"++"!==e.operator&&c(e.start);var a=null!=o?$a[o]:null;if(null!=a&&(a>t||"**"===o&&t===a)){s();var l=pe(ce(!0),a,n);return pe(new mu({start:e.start,left:e,operator:o,right:l,end:l.end}),t,n)}return e};function de(e){return e instanceof au||e instanceof ec}function he(e){if(e instanceof Eu)e=new wl({start:e.start,names:e.properties.map(he),is_array:!1,end:e.end});else if(e instanceof yu){for(var t=[],n=0;n1?new su({start:e,expressions:t,end:o()}):void l("Invalid parenthesized expression")},ge=function(e,t){for(var n=i.token,o=[];o.push(me(t)),e&&r("punc",",");)s(),e=!0;return _e(n,o)};function ve(e){++i.in_loop;var t=e();return--i.in_loop,t}return t.expression?ge(!0):function(){var e=i.token,n=[];for(i.input.push_directives_stack(),t.module&&i.input.add_directive("use strict");!r("eof");)n.push(b());i.input.pop_directives_stack();var o=a(),s=t.toplevel;return s?(s.body=s.body.concat(n),s.end=o):s=new El({start:e,body:n,end:o}),sa=new Map,s}()}function qa(e,t,n,i,r=Qa){var o=t=t?t.split(/\s+/):[];r&&r.PROPS&&(t=t.concat(r.PROPS));const s=r&&Object.create(r.prototype);if(s&&(n.prototype=s,n.BASE=r),r&&r.SUBCLASSES.push(n),n.prototype.CTOR=n,n.prototype.constructor=n,n.PROPS=t||null,n.SELF_PROPS=o,n.SUBCLASSES=[],e&&(n.prototype.TYPE=n.TYPE=e),i)for(let e in i)Ys(i,e)&&("$"===e[0]?n[e.substr(1)]=i[e]:n.prototype[e]=i[e]);return n.DEFMETHOD=function(e,t){this.prototype[e]=t},n}const Ya=(e,t)=>Boolean(e.flags&t),Za=(e,t,n)=>{n?e.flags|=t:e.flags&=~t};class Ja{constructor(e,t,n,i,r,o,s,a,l){this.flags=o?1:0,this.type=e,this.value=t,this.line=n,this.col=i,this.pos=r,this.comments_before=s,this.comments_after=a,this.file=l,Object.seal(this)}[Symbol.for("nodejs.util.inspect.custom")](e,t){const n=e=>t.stylize(e,"special"),i="string"==typeof this.value&&this.value.includes("`")?"'":"`",r=`${i}${this.value}${i}`;return`${n("[AST_Token")} ${r} at ${this.line}:${this.col}${n("]")}`}get nlb(){return Ya(this,1)}set nlb(e){Za(this,1,e)}get quote(){return Ya(this,4)?Ya(this,2)?"'":'"':""}set quote(e){Za(this,2,"'"===e),Za(this,4,!!e)}get template_end(){return Ya(this,8)}set template_end(e){Za(this,8,e)}}var Qa=qa("Node","start end",(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{_clone:function(e){if(e){var t=this.clone();return t.transform(new Tc((function(e){if(e!==t)return e.clone(!0)})))}return new this.CTOR(this)},clone:function(e){return this._clone(e)},$documentation:"Base class of all AST nodes",$propdoc:{start:"[AST_Token] The first token of this node",end:"[AST_Token] The last token of this node"},_walk:function(e){return e._visit(this)},walk:function(e){return this._walk(e)},_children_backwards:()=>{}},null),el=qa("Statement",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class of all statements"}),tl=qa("Debugger",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Represents a debugger statement"},el),nl=qa("Directive","value quote",(function(e){e&&(this.value=e.value,this.quote=e.quote,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:'Represents a directive, like "use strict";',$propdoc:{value:"[string] The value of this directive as a plain string (it's not an AST_String!)",quote:"[string] the original quote character"}},el),il=qa("SimpleStatement","body",(function(e){e&&(this.body=e.body,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A statement consisting of an expression, i.e. a = 1 + 2",$propdoc:{body:"[AST_Node] an expression node (should not be instanceof AST_Statement)"},_walk:function(e){return e._visit(this,(function(){this.body._walk(e)}))},_children_backwards(e){e(this.body)}},el);function rl(e,t){const n=e.body;for(var i=0,r=n.length;i SymbolDef for all variables/functions defined in this scope",uses_with:"[boolean/S] tells whether this scope uses the `with` statement",uses_eval:"[boolean/S] tells whether this scope contains a direct call to the global `eval`",parent_scope:"[AST_Scope?/S] link to the parent scope",enclosed:"[SymbolDef*/S] a list of all symbol definitions that are accessed from this scope or any subscopes",cname:"[integer/S] current index for mangling variables (used internally by the mangler)"},get_defun_scope:function(){for(var e=this;e.is_block_scope();)e=e.parent_scope;return e},clone:function(e,t){var n=this._clone(e);return e&&this.variables&&t&&!this._block_scope?n.figure_out_scope({},{toplevel:t,parent_scope:this.parent_scope}):(this.variables&&(n.variables=new Map(this.variables)),this.enclosed&&(n.enclosed=this.enclosed.slice()),this._block_scope&&(n._block_scope=this._block_scope)),n},pinned:function(){return this.uses_eval||this.uses_with}},sl),El=qa("Toplevel","globals",(function(e){e&&(this.globals=e.globals,this.variables=e.variables,this.uses_with=e.uses_with,this.uses_eval=e.uses_eval,this.parent_scope=e.parent_scope,this.enclosed=e.enclosed,this.cname=e.cname,this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The toplevel scope",$propdoc:{globals:"[Map/S] a map of name -> SymbolDef for all undeclared names"},wrap_commonjs:function(e){var t=this.body,n="(function(exports){'$ORIG';})(typeof "+e+"=='undefined'?("+e+"={}):"+e+");";return(n=ja(n)).transform(new Tc((function(e){if(e instanceof nl&&"$ORIG"==e.value)return Gs.splice(t)})))},wrap_enclose:function(e){"string"!=typeof e&&(e="");var t=e.indexOf(":");t<0&&(t=e.length);var n=this.body;return ja(["(function(",e.slice(0,t),'){"$ORIG"})(',e.slice(t+1),")"].join("")).transform(new Tc((function(e){if(e instanceof nl&&"$ORIG"==e.value)return Gs.splice(n)})))}},yl),bl=qa("Expansion","expression",(function(e){e&&(this.expression=e.expression,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"An expandible argument, such as ...rest, a splat, such as [1,2,...all], or an expansion in a variable declaration, such as var [first, ...rest] = list",$propdoc:{expression:"[AST_Node] the thing to be expanded"},_walk:function(e){return e._visit(this,(function(){this.expression.walk(e)}))},_children_backwards(e){e(this.expression)}}),Sl=qa("Lambda","name argnames uses_arguments is_generator async",(function(e){e&&(this.name=e.name,this.argnames=e.argnames,this.uses_arguments=e.uses_arguments,this.is_generator=e.is_generator,this.async=e.async,this.variables=e.variables,this.uses_with=e.uses_with,this.uses_eval=e.uses_eval,this.parent_scope=e.parent_scope,this.enclosed=e.enclosed,this.cname=e.cname,this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for functions",$propdoc:{name:"[AST_SymbolDeclaration?] the name of this function",argnames:"[AST_SymbolFunarg|AST_Destructuring|AST_Expansion|AST_DefaultAssign*] array of function arguments, destructurings, or expanding arguments",uses_arguments:"[boolean/S] tells whether this function accesses the arguments array",is_generator:"[boolean] is this a generator method",async:"[boolean] is this method async"},args_as_names:function(){for(var e=[],t=0;t b)"},Sl),Cl=qa("Defun",null,(function(e){e&&(this.name=e.name,this.argnames=e.argnames,this.uses_arguments=e.uses_arguments,this.is_generator=e.is_generator,this.async=e.async,this.variables=e.variables,this.uses_with=e.uses_with,this.uses_eval=e.uses_eval,this.parent_scope=e.parent_scope,this.enclosed=e.enclosed,this.cname=e.cname,this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A function definition"},Sl),wl=qa("Destructuring","names is_array",(function(e){e&&(this.names=e.names,this.is_array=e.is_array,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A destructuring of several names. Used in destructuring assignment and with destructuring function argument names",$propdoc:{names:"[AST_Node*] Array of properties or elements",is_array:"[Boolean] Whether the destructuring represents an object or array"},_walk:function(e){return e._visit(this,(function(){this.names.forEach((function(t){t._walk(e)}))}))},_children_backwards(e){let t=this.names.length;for(;t--;)e(this.names[t])},all_symbols:function(){var e=[];return bc(this,(t=>{if(t instanceof Lu&&e.push(t),t instanceof Sl)return!0})),e}}),Ol=qa("PrefixedTemplateString","template_string prefix",(function(e){e&&(this.template_string=e.template_string,this.prefix=e.prefix,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A templatestring with a prefix, such as String.raw`foobarbaz`",$propdoc:{template_string:"[AST_TemplateString] The template string",prefix:"[AST_Node] The prefix, which will get called."},_walk:function(e){return e._visit(this,(function(){this.prefix._walk(e),this.template_string._walk(e)}))},_children_backwards(e){e(this.template_string),e(this.prefix)}}),kl=qa("TemplateString","segments",(function(e){e&&(this.segments=e.segments,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A template string literal",$propdoc:{segments:"[AST_Node*] One or more segments, starting with AST_TemplateSegment. AST_Node may follow AST_TemplateSegment, but each AST_Node must be followed by AST_TemplateSegment."},_walk:function(e){return e._visit(this,(function(){this.segments.forEach((function(t){t._walk(e)}))}))},_children_backwards(e){let t=this.segments.length;for(;t--;)e(this.segments[t])}}),xl=qa("TemplateSegment","value raw",(function(e){e&&(this.value=e.value,this.raw=e.raw,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A segment of a template string literal",$propdoc:{value:"Content of the segment",raw:"Raw source of the segment"}}),Rl=qa("Jump",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for “jumps” (for now that's `return`, `throw`, `break` and `continue`)"},el),Fl=qa("Exit","value",(function(e){e&&(this.value=e.value,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for “exits” (`return` and `throw`)",$propdoc:{value:"[AST_Node?] the value returned or thrown by this statement; could be null for AST_Return"},_walk:function(e){return e._visit(this,this.value&&function(){this.value._walk(e)})},_children_backwards(e){this.value&&e(this.value)}},Rl),Ml=qa("Return",null,(function(e){e&&(this.value=e.value,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `return` statement"},Fl),Il=qa("Throw",null,(function(e){e&&(this.value=e.value,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `throw` statement"},Fl),Nl=qa("LoopControl","label",(function(e){e&&(this.label=e.label,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for loop control statements (`break` and `continue`)",$propdoc:{label:"[AST_LabelRef?] the label, or null if none"},_walk:function(e){return e._visit(this,this.label&&function(){this.label._walk(e)})},_children_backwards(e){this.label&&e(this.label)}},Rl),Pl=qa("Break",null,(function(e){e&&(this.label=e.label,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `break` statement"},Nl),Bl=qa("Continue",null,(function(e){e&&(this.label=e.label,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `continue` statement"},Nl),Ll=qa("Await","expression",(function(e){e&&(this.expression=e.expression,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"An `await` statement",$propdoc:{expression:"[AST_Node] the mandatory expression being awaited"},_walk:function(e){return e._visit(this,(function(){this.expression._walk(e)}))},_children_backwards(e){e(this.expression)}}),Vl=qa("Yield","expression is_star",(function(e){e&&(this.expression=e.expression,this.is_star=e.is_star,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `yield` statement",$propdoc:{expression:"[AST_Node?] the value returned or thrown by this statement; could be null (representing undefined) but only when is_star is set to false",is_star:"[Boolean] Whether this is a yield or yield* statement"},_walk:function(e){return e._visit(this,this.expression&&function(){this.expression._walk(e)})},_children_backwards(e){this.expression&&e(this.expression)}}),Ul=qa("If","condition alternative",(function(e){e&&(this.condition=e.condition,this.alternative=e.alternative,this.body=e.body,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `if` statement",$propdoc:{condition:"[AST_Node] the `if` condition",alternative:"[AST_Statement?] the `else` part, or null if not present"},_walk:function(e){return e._visit(this,(function(){this.condition._walk(e),this.body._walk(e),this.alternative&&this.alternative._walk(e)}))},_children_backwards(e){this.alternative&&e(this.alternative),e(this.body),e(this.condition)}},ul),Kl=qa("Switch","expression",(function(e){e&&(this.expression=e.expression,this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `switch` statement",$propdoc:{expression:"[AST_Node] the `switch` “discriminant”"},_walk:function(e){return e._visit(this,(function(){this.expression._walk(e),rl(this,e)}))},_children_backwards(e){let t=this.body.length;for(;t--;)e(this.body[t]);e(this.expression)}},sl),Gl=qa("SwitchBranch",null,(function(e){e&&(this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for `switch` branches"},sl),Hl=qa("Default",null,(function(e){e&&(this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `default` switch branch"},Gl),zl=qa("Case","expression",(function(e){e&&(this.expression=e.expression,this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `case` switch branch",$propdoc:{expression:"[AST_Node] the `case` expression"},_walk:function(e){return e._visit(this,(function(){this.expression._walk(e),rl(this,e)}))},_children_backwards(e){let t=this.body.length;for(;t--;)e(this.body[t]);e(this.expression)}},Gl),Xl=qa("Try","body bcatch bfinally",(function(e){e&&(this.body=e.body,this.bcatch=e.bcatch,this.bfinally=e.bfinally,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `try` statement",$propdoc:{body:"[AST_TryBlock] the try block",bcatch:"[AST_Catch?] the catch block, or null if not present",bfinally:"[AST_Finally?] the finally block, or null if not present"},_walk:function(e){return e._visit(this,(function(){this.body._walk(e),this.bcatch&&this.bcatch._walk(e),this.bfinally&&this.bfinally._walk(e)}))},_children_backwards(e){this.bfinally&&e(this.bfinally),this.bcatch&&e(this.bcatch),e(this.body)}},el),$l=qa("TryBlock",null,(function(e){e&&(this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The `try` block of a try statement"},sl),Wl=qa("Catch","argname",(function(e){e&&(this.argname=e.argname,this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `catch` node; only makes sense as part of a `try` statement",$propdoc:{argname:"[AST_SymbolCatch|AST_Destructuring|AST_Expansion|AST_DefaultAssign] symbol for the exception"},_walk:function(e){return e._visit(this,(function(){this.argname&&this.argname._walk(e),rl(this,e)}))},_children_backwards(e){let t=this.body.length;for(;t--;)e(this.body[t]);this.argname&&e(this.argname)}},sl),jl=qa("Finally",null,(function(e){e&&(this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A `finally` node; only makes sense as part of a `try` statement"},sl),ql=qa("Definitions","definitions",(function(e){e&&(this.definitions=e.definitions,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for `var` or `const` nodes (variable declarations/initializations)",$propdoc:{definitions:"[AST_VarDef*] array of variable definitions"},_walk:function(e){return e._visit(this,(function(){for(var t=this.definitions,n=0,i=t.length;n a`"},mu),yu=qa("Array","elements",(function(e){e&&(this.elements=e.elements,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"An array literal",$propdoc:{elements:"[AST_Node*] array of elements"},_walk:function(e){return e._visit(this,(function(){for(var t=this.elements,n=0,i=t.length;n!1},bu),Au=qa("PrivateGetter","static",(function(e){e&&(this.static=e.static,this.key=e.key,this.value=e.value,this.start=e.start,this.end=e.end),this.flags=0}),{$propdoc:{static:"[boolean] whether this is a static private getter"},$documentation:"A private getter property",computed_key:()=>!1},bu),Tu=qa("ObjectSetter","quote static",(function(e){e&&(this.quote=e.quote,this.static=e.static,this.key=e.key,this.value=e.value,this.start=e.start,this.end=e.end,this._annotations=e._annotations),this.flags=0}),{$propdoc:{quote:"[string|undefined] the original quote character, if any",static:"[boolean] whether this is a static setter (classes only)"},$documentation:"An object setter property",computed_key(){return!(this.key instanceof Xu)}},bu),Cu=qa("ObjectGetter","quote static",(function(e){e&&(this.quote=e.quote,this.static=e.static,this.key=e.key,this.value=e.value,this.start=e.start,this.end=e.end,this._annotations=e._annotations),this.flags=0}),{$propdoc:{quote:"[string|undefined] the original quote character, if any",static:"[boolean] whether this is a static getter (classes only)"},$documentation:"An object getter property",computed_key(){return!(this.key instanceof Xu)}},bu),wu=qa("ConciseMethod","quote static is_generator async",(function(e){e&&(this.quote=e.quote,this.static=e.static,this.is_generator=e.is_generator,this.async=e.async,this.key=e.key,this.value=e.value,this.start=e.start,this.end=e.end,this._annotations=e._annotations),this.flags=0}),{$propdoc:{quote:"[string|undefined] the original quote character, if any",static:"[boolean] is this method static (classes only)",is_generator:"[boolean] is this a generator method",async:"[boolean] is this method async"},$documentation:"An ES6 concise method inside an object or class",computed_key(){return!(this.key instanceof Xu)}},bu),Ou=qa("PrivateMethod","",(function(e){e&&(this.quote=e.quote,this.static=e.static,this.is_generator=e.is_generator,this.async=e.async,this.key=e.key,this.value=e.value,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A private class method inside a class"},wu),ku=qa("Class","name extends properties",(function(e){e&&(this.name=e.name,this.extends=e.extends,this.properties=e.properties,this.variables=e.variables,this.uses_with=e.uses_with,this.uses_eval=e.uses_eval,this.parent_scope=e.parent_scope,this.enclosed=e.enclosed,this.cname=e.cname,this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$propdoc:{name:"[AST_SymbolClass|AST_SymbolDefClass?] optional class name.",extends:"[AST_Node]? optional parent class",properties:"[AST_ObjectProperty*] array of properties"},$documentation:"An ES6 class",_walk:function(e){return e._visit(this,(function(){this.name&&this.name._walk(e),this.extends&&this.extends._walk(e),this.properties.forEach((t=>t._walk(e)))}))},_children_backwards(e){let t=this.properties.length;for(;t--;)e(this.properties[t]);this.extends&&e(this.extends),this.name&&e(this.name)},visit_nondeferred_class_parts(e){this.extends&&this.extends._walk(e),this.properties.forEach((t=>{t instanceof Iu?t._walk(e):(t.computed_key()&&(e.push(t),t.key._walk(e),e.pop()),(t instanceof Ru||t instanceof xu)&&t.static&&t.value&&(e.push(t),t.value._walk(e),e.pop()))}))},visit_deferred_class_parts(e){this.properties.forEach((t=>{t instanceof wu?t.walk(e):t instanceof xu&&!t.static&&t.value&&(e.push(t),t.value._walk(e),e.pop())}))}},yl),xu=qa("ClassProperty","static quote",(function(e){e&&(this.static=e.static,this.quote=e.quote,this.key=e.key,this.value=e.value,this.start=e.start,this.end=e.end,this._annotations=e._annotations),this.flags=0}),{$documentation:"A class property",$propdoc:{static:"[boolean] whether this is a static key",quote:"[string] which quote is being used"},_walk:function(e){return e._visit(this,(function(){this.key instanceof Qa&&this.key._walk(e),this.value instanceof Qa&&this.value._walk(e)}))},_children_backwards(e){this.value instanceof Qa&&e(this.value),this.key instanceof Qa&&e(this.key)},computed_key(){return!(this.key instanceof $u)}},bu),Ru=qa("ClassPrivateProperty","",(function(e){e&&(this.static=e.static,this.quote=e.quote,this.key=e.key,this.value=e.value,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A class property for a private property"},xu),Fu=qa("PrivateIn","key value",(function(e){e&&(this.key=e.key,this.value=e.value,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"An `in` binop when the key is private, eg #x in this",_walk:function(e){return e._visit(this,(function(){this.key._walk(e),this.value._walk(e)}))},_children_backwards(e){e(this.value),e(this.key)}}),Mu=qa("DefClass",null,(function(e){e&&(this.name=e.name,this.extends=e.extends,this.properties=e.properties,this.variables=e.variables,this.uses_with=e.uses_with,this.uses_eval=e.uses_eval,this.parent_scope=e.parent_scope,this.enclosed=e.enclosed,this.cname=e.cname,this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A class definition"},ku),Iu=qa("ClassStaticBlock","body block_scope",(function(e){this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end}),{$documentation:"A block containing statements to be executed in the context of the class",$propdoc:{body:"[AST_Statement*] an array of statements"},_walk:function(e){return e._visit(this,(function(){rl(this,e)}))},_children_backwards(e){let t=this.body.length;for(;t--;)e(this.body[t])},clone:ol,computed_key:()=>!1},yl),Nu=qa("ClassExpression",null,(function(e){e&&(this.name=e.name,this.extends=e.extends,this.properties=e.properties,this.variables=e.variables,this.uses_with=e.uses_with,this.uses_eval=e.uses_eval,this.parent_scope=e.parent_scope,this.enclosed=e.enclosed,this.cname=e.cname,this.body=e.body,this.block_scope=e.block_scope,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A class expression."},ku),Pu=qa("Symbol","scope name thedef",(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$propdoc:{name:"[string] name of this symbol",scope:"[AST_Scope/S] the current scope (not necessarily the definition scope)",thedef:"[SymbolDef/S] the definition of this symbol"},$documentation:"Base class for all symbols"}),Bu=qa("NewTarget",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A reference to new.target"}),Lu=qa("SymbolDeclaration","init",(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A declaration symbol (symbol in var/const, function name or argument, symbol in catch)"},Pu),Vu=qa("SymbolVar",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol defining a variable"},Lu),Uu=qa("SymbolBlockDeclaration",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for block-scoped declaration symbols"},Lu),Ku=qa("SymbolConst",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A constant declaration"},Uu),Gu=qa("SymbolLet",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A block-scoped `let` declaration"},Uu),Hu=qa("SymbolFunarg",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol naming a function argument"},Vu),zu=qa("SymbolDefun",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol defining a function"},Lu),Xu=qa("SymbolMethod",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol in an object defining a method"},Pu),$u=qa("SymbolClassProperty",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol for a class property"},Pu),Wu=qa("SymbolLambda",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol naming a function expression"},Lu),ju=qa("SymbolDefClass",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol naming a class's name in a class declaration. Lexically scoped to its containing scope, and accessible within the class."},Uu),qu=qa("SymbolClass",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol naming a class's name. Lexically scoped to the class."},Lu),Yu=qa("SymbolCatch",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol naming the exception in catch"},Uu),Zu=qa("SymbolImport",null,(function(e){e&&(this.init=e.init,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol referring to an imported name"},Uu),Ju=qa("SymbolImportForeign",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.quote=e.quote,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A symbol imported from a module, but it is defined in the other module, and its real name is irrelevant for this module's purposes"},Pu),Qu=qa("Label","references",(function(e){e&&(this.references=e.references,this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end,this.initialize()),this.flags=0}),{$documentation:"Symbol naming a label (declaration)",$propdoc:{references:"[AST_LoopControl*] a list of nodes referring to this label"},initialize:function(){this.references=[],this.thedef=this}},Pu),ec=qa("SymbolRef",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Reference to some symbol (not definition/declaration)"},Pu),tc=qa("SymbolExport",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.quote=e.quote,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Symbol referring to a name to export"},ec),nc=qa("SymbolExportForeign",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.quote=e.quote,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A symbol exported from this module, but it is used in the other module, and its real name is irrelevant for this module's purposes"},Pu),ic=qa("LabelRef",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Reference to a label symbol"},Pu),rc=qa("SymbolPrivateProperty",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A symbol that refers to a private property"},Pu),oc=qa("This",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The `this` symbol"},Pu),sc=qa("Super",null,(function(e){e&&(this.scope=e.scope,this.name=e.name,this.thedef=e.thedef,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The `super` symbol"},oc),ac=qa("Constant",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for all constants",getValue:function(){return this.value}}),lc=qa("String","value quote",(function(e){e&&(this.value=e.value,this.quote=e.quote,this.start=e.start,this.end=e.end,this._annotations=e._annotations),this.flags=0}),{$documentation:"A string literal",$propdoc:{value:"[string] the contents of this string",quote:"[string] the original quote character"}},ac),uc=qa("Number","value raw",(function(e){e&&(this.value=e.value,this.raw=e.raw,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A number literal",$propdoc:{value:"[number] the numeric value",raw:"[string] numeric value as string"}},ac),cc=qa("BigInt","value",(function(e){e&&(this.value=e.value,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A big int literal",$propdoc:{value:"[string] big int value"}},ac),fc=qa("RegExp","value",(function(e){e&&(this.value=e.value,this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A regexp literal",$propdoc:{value:"[RegExp] the actual regexp"}},ac),pc=qa("Atom",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for atoms"},ac),dc=qa("Null",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The `null` atom",value:null},pc),hc=qa("NaN",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The impossible value",value:NaN},pc),mc=qa("Undefined",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The `undefined` value",value:void 0},pc),_c=qa("Hole",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"A hole in an array",value:void 0},pc),gc=qa("Infinity",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The `Infinity` value",value:1/0},pc),vc=qa("Boolean",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"Base class for booleans"},pc),yc=qa("False",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The `false` atom",value:!1},vc),Ec=qa("True",null,(function(e){e&&(this.start=e.start,this.end=e.end),this.flags=0}),{$documentation:"The `true` atom",value:!0},vc);function bc(e,t,n=[e]){const i=n.push.bind(n);for(;n.length;){const e=n.pop(),r=t(e,n);if(r){if(r===Dc)return!0}else e._children_backwards(i)}return!1}function Sc(e,t,n){const i=[e],r=i.push.bind(i),o=n?n.slice():[],s=[];let a;const l={parent:(e=0)=>-1===e?a:n&&e>=o.length?(e-=o.length,n[n.length-(e+1)]):o[o.length-(1+e)]};for(;i.length;){for(a=i.pop();s.length&&i.length==s[s.length-1];)o.pop(),s.pop();const e=t(a,l);if(e){if(e===Dc)return!0;continue}const n=i.length;a._children_backwards(r),i.length>n&&(o.push(a),s.push(n-1))}return!1}const Dc=Symbol("abort walk");class Ac{constructor(e){this.visit=e,this.stack=[],this.directives=Object.create(null)}_visit(e,t){this.push(e);var n=this.visit(e,t?function(){t.call(e)}:Bs);return!n&&t&&t.call(e),this.pop(),n}parent(e){return this.stack[this.stack.length-2-(e||0)]}push(e){e instanceof Sl?this.directives=Object.create(this.directives):e instanceof nl&&!this.directives[e.value]?this.directives[e.value]=e:e instanceof ku&&(this.directives=Object.create(this.directives),this.directives["use strict"]||(this.directives["use strict"]=e)),this.stack.push(e)}pop(){var e=this.stack.pop();(e instanceof Sl||e instanceof ku)&&(this.directives=Object.getPrototypeOf(this.directives))}self(){return this.stack[this.stack.length-1]}find_parent(e){for(var t=this.stack,n=t.length;--n>=0;){var i=t[n];if(i instanceof e)return i}}find_scope(){for(var e=this.stack,t=e.length;--t>=0;){const n=e[t];if(n instanceof El)return n;if(n instanceof Sl)return n;if(n.block_scope)return n.block_scope}}has_directive(e){var t=this.directives[e];if(t)return t;var n=this.stack[this.stack.length-1];if(n instanceof yl&&n.body)for(var i=0;i=0;)if((i=t[n])instanceof cl&&i.label.name==e.label.name)return i.body}else for(n=t.length;--n>=0;){var i;if((i=t[n])instanceof fl||e instanceof Pl&&i instanceof Kl)return i}}}class Tc extends Ac{constructor(e,t){super(),this.before=e,this.after=t}}const Cc=1,wc=2,Oc=4,kc=8,xc=16;function Rc(e,t){e.DEFMETHOD("transform",(function(e,n){let i;if(e.push(this),e.before&&(i=e.before(this,t,n)),void 0===i&&(i=this,t(i,e),e.after)){const t=e.after(i,n);void 0!==t&&(i=t)}return e.pop(),i}))}function Fc(e){let t=e.parent(-1);for(let n,i=0;n=e.parent(i);i++){if(n instanceof el&&n.body===t)return!0;if(!(n instanceof su&&n.expressions[0]===t||"Call"===n.TYPE&&n.expression===t||n instanceof Ol&&n.prefix===t||n instanceof lu&&n.expression===t||n instanceof cu&&n.expression===t||n instanceof fu&&n.expression===t||n instanceof _u&&n.condition===t||n instanceof mu&&n.left===t||n instanceof hu&&n.expression===t))return!1;t=n}}function Mc(e){return e instanceof Eu||(e instanceof su?Mc(e.expressions[0]):"Call"===e.TYPE?Mc(e.expression):e instanceof Ol?Mc(e.prefix):e instanceof lu||e instanceof cu||e instanceof fu?Mc(e.expression):e instanceof _u?Mc(e.condition):e instanceof mu?Mc(e.left):e instanceof hu&&Mc(e.expression))}Rc(Qa,Bs),Rc(cl,(function(e,t){e.label=e.label.transform(t),e.body=e.body.transform(t)})),Rc(il,(function(e,t){e.body=e.body.transform(t)})),Rc(sl,(function(e,t){e.body=Gs(e.body,t)})),Rc(dl,(function(e,t){e.body=e.body.transform(t),e.condition=e.condition.transform(t)})),Rc(hl,(function(e,t){e.condition=e.condition.transform(t),e.body=e.body.transform(t)})),Rc(ml,(function(e,t){e.init&&(e.init=e.init.transform(t)),e.condition&&(e.condition=e.condition.transform(t)),e.step&&(e.step=e.step.transform(t)),e.body=e.body.transform(t)})),Rc(_l,(function(e,t){e.init=e.init.transform(t),e.object=e.object.transform(t),e.body=e.body.transform(t)})),Rc(vl,(function(e,t){e.expression=e.expression.transform(t),e.body=e.body.transform(t)})),Rc(Fl,(function(e,t){e.value&&(e.value=e.value.transform(t))})),Rc(Nl,(function(e,t){e.label&&(e.label=e.label.transform(t))})),Rc(Ul,(function(e,t){e.condition=e.condition.transform(t),e.body=e.body.transform(t),e.alternative&&(e.alternative=e.alternative.transform(t))})),Rc(Kl,(function(e,t){e.expression=e.expression.transform(t),e.body=Gs(e.body,t)})),Rc(zl,(function(e,t){e.expression=e.expression.transform(t),e.body=Gs(e.body,t)})),Rc(Xl,(function(e,t){e.body=e.body.transform(t),e.bcatch&&(e.bcatch=e.bcatch.transform(t)),e.bfinally&&(e.bfinally=e.bfinally.transform(t))})),Rc(Wl,(function(e,t){e.argname&&(e.argname=e.argname.transform(t)),e.body=Gs(e.body,t)})),Rc(ql,(function(e,t){e.definitions=Gs(e.definitions,t)})),Rc(Ql,(function(e,t){e.name=e.name.transform(t),e.value&&(e.value=e.value.transform(t))})),Rc(wl,(function(e,t){e.names=Gs(e.names,t)})),Rc(Sl,(function(e,t){e.name&&(e.name=e.name.transform(t)),e.argnames=Gs(e.argnames,t,!1),e.body instanceof Qa?e.body=e.body.transform(t):e.body=Gs(e.body,t)})),Rc(ru,(function(e,t){e.expression=e.expression.transform(t),e.args=Gs(e.args,t,!1)})),Rc(su,(function(e,t){const n=Gs(e.expressions,t);e.expressions=n.length?n:[new uc({value:0})]})),Rc(au,(function(e,t){e.expression=e.expression.transform(t)})),Rc(cu,(function(e,t){e.expression=e.expression.transform(t),e.property=e.property.transform(t)})),Rc(fu,(function(e,t){e.expression=e.expression.transform(t)})),Rc(Vl,(function(e,t){e.expression&&(e.expression=e.expression.transform(t))})),Rc(Ll,(function(e,t){e.expression=e.expression.transform(t)})),Rc(pu,(function(e,t){e.expression=e.expression.transform(t)})),Rc(mu,(function(e,t){e.left=e.left.transform(t),e.right=e.right.transform(t)})),Rc(Fu,(function(e,t){e.key=e.key.transform(t),e.value=e.value.transform(t)})),Rc(_u,(function(e,t){e.condition=e.condition.transform(t),e.consequent=e.consequent.transform(t),e.alternative=e.alternative.transform(t)})),Rc(yu,(function(e,t){e.elements=Gs(e.elements,t)})),Rc(Eu,(function(e,t){e.properties=Gs(e.properties,t)})),Rc(bu,(function(e,t){e.key instanceof Qa&&(e.key=e.key.transform(t)),e.value&&(e.value=e.value.transform(t))})),Rc(ku,(function(e,t){e.name&&(e.name=e.name.transform(t)),e.extends&&(e.extends=e.extends.transform(t)),e.properties=Gs(e.properties,t)})),Rc(Iu,(function(e,t){e.body=Gs(e.body,t)})),Rc(bl,(function(e,t){e.expression=e.expression.transform(t)})),Rc(eu,(function(e,t){e.foreign_name=e.foreign_name.transform(t),e.name=e.name.transform(t)})),Rc(tu,(function(e,t){e.imported_name&&(e.imported_name=e.imported_name.transform(t)),e.imported_names&&Gs(e.imported_names,t),e.module_name=e.module_name.transform(t)})),Rc(iu,(function(e,t){e.exported_definition&&(e.exported_definition=e.exported_definition.transform(t)),e.exported_value&&(e.exported_value=e.exported_value.transform(t)),e.exported_names&&Gs(e.exported_names,t),e.module_name&&(e.module_name=e.module_name.transform(t))})),Rc(kl,(function(e,t){e.segments=Gs(e.segments,t)})),Rc(Ol,(function(e,t){e.prefix=e.prefix.transform(t),e.template_string=e.template_string.transform(t)})),function(){var e=function(e){for(var t=0;te&&e.length>0?new Eu({start:r(e),end:o(e),properties:e.map((e=>new Su({start:r(e),end:o(e),key:e.key.name||e.key.value,value:a(e.value)})))}):null;var n={Program:function(t){return new El({start:r(t),end:o(t),body:e(t.body.map(a))})},ArrayPattern:function(e){return new wl({start:r(e),end:o(e),names:e.elements.map((function(e){return null===e?new _c:a(e)})),is_array:!0})},ObjectPattern:function(e){return new wl({start:r(e),end:o(e),names:e.properties.map(a),is_array:!1})},AssignmentPattern:function(e){return new vu({start:r(e),end:o(e),left:a(e.left),operator:"=",right:a(e.right)})},SpreadElement:function(e){return new bl({start:r(e),end:o(e),expression:a(e.argument)})},RestElement:function(e){return new bl({start:r(e),end:o(e),expression:a(e.argument)})},TemplateElement:function(e){return new xl({start:r(e),end:o(e),value:e.value.cooked,raw:e.value.raw})},TemplateLiteral:function(e){for(var t=[],n=0;n1||e.guardedHandlers&&e.guardedHandlers.length)throw new Error("Multiple catch clauses are not supported.");return new Xl({start:r(e),end:o(e),body:new $l(a(e.block)),bcatch:a(t[0]),bfinally:e.finalizer?new jl(a(e.finalizer)):null})},Property:function(e){var t=e.key,n={start:r(t||e.value),end:o(e.value),key:"Identifier"==t.type?t.name:t.value,value:a(e.value)};return e.computed&&(n.key=a(e.key)),e.method?(n.is_generator=e.value.generator,n.async=e.value.async,e.computed?n.key=a(e.key):n.key=new Xu({name:n.key}),new wu(n)):"init"==e.kind?("Identifier"!=t.type&&"Literal"!=t.type&&(n.key=a(t)),new Su(n)):("string"!=typeof n.key&&"number"!=typeof n.key||(n.key=new Xu({name:n.key})),n.value=new Dl(n.value),"get"==e.kind?new Cu(n):"set"==e.kind?new Tu(n):"method"==e.kind?(n.async=e.value.async,n.is_generator=e.value.generator,n.quote=e.computed?'"':null,new wu(n)):void 0)},MethodDefinition:function(e){const t="PrivateIdentifier"===e.key.type,n=e.computed?a(e.key):new Xu({name:e.key.name||e.key.value});var i={start:r(e),end:o(e),key:n,value:a(e.value),static:e.static};return"get"==e.kind?new(t?Au:Cu)(i):"set"==e.kind?new(t?Du:Tu)(i):(i.is_generator=e.value.generator,i.async=e.value.async,new(t?Ou:wu)(i))},FieldDefinition:function(e){let t;if(e.computed)t=a(e.key);else{if("Identifier"!==e.key.type)throw new Error("Non-Identifier key in FieldDefinition");t=a(e.key)}return new xu({start:r(e),end:o(e),key:t,value:a(e.value),static:e.static})},PropertyDefinition:function(e){let t;if(e.computed)t=a(e.key);else{if("PrivateIdentifier"===e.key.type)return new Ru({start:r(e),end:o(e),key:a(e.key),value:a(e.value),static:e.static});if("Identifier"!==e.key.type)throw new Error("Non-Identifier key in PropertyDefinition");t=a(e.key)}return new xu({start:r(e),end:o(e),key:t,value:a(e.value),static:e.static})},PrivateIdentifier:function(e){return new rc({start:r(e),end:o(e),name:e.name})},StaticBlock:function(e){return new Iu({start:r(e),end:o(e),body:e.body.map(a)})},ArrayExpression:function(e){return new yu({start:r(e),end:o(e),elements:e.elements.map((function(e){return null===e?new _c:a(e)}))})},ObjectExpression:function(e){return new Eu({start:r(e),end:o(e),properties:e.properties.map((function(e){return"SpreadElement"===e.type||(e.type="Property"),a(e)}))})},SequenceExpression:function(e){return new su({start:r(e),end:o(e),expressions:e.expressions.map(a)})},MemberExpression:function(e){return"PrivateIdentifier"===e.property.type?new uu({start:r(e),end:o(e),property:e.property.name,expression:a(e.object),optional:e.optional||!1}):new(e.computed?cu:lu)({start:r(e),end:o(e),property:e.computed?a(e.property):e.property.name,expression:a(e.object),optional:e.optional||!1})},ChainExpression:function(e){return new fu({start:r(e),end:o(e),expression:a(e.expression)})},SwitchCase:function(e){return new(e.test?zl:Hl)({start:r(e),end:o(e),expression:a(e.test),body:e.consequent.map(a)})},VariableDeclaration:function(e){return new("const"===e.kind?Jl:"let"===e.kind?Zl:Yl)({start:r(e),end:o(e),definitions:e.declarations.map(a)})},ImportDeclaration:function(e){var n=null,i=null;return e.specifiers.forEach((function(e){"ImportSpecifier"===e.type||"ImportNamespaceSpecifier"===e.type?(i||(i=[]),i.push(a(e))):"ImportDefaultSpecifier"===e.type&&(n=a(e))})),new tu({start:r(e),end:o(e),imported_name:n,imported_names:i,module_name:a(e.source),assert_clause:t(e.assertions)})},ImportSpecifier:function(e){return new eu({start:r(e),end:o(e),foreign_name:a(e.imported),name:a(e.local)})},ImportDefaultSpecifier:function(e){return a(e.local)},ImportNamespaceSpecifier:function(e){return new eu({start:r(e),end:o(e),foreign_name:new Ju({name:"*"}),name:a(e.local)})},ExportAllDeclaration:function(e){var n=null==e.exported?new nc({name:"*"}):a(e.exported);return new iu({start:r(e),end:o(e),exported_names:[new eu({name:new nc({name:"*"}),foreign_name:n})],module_name:a(e.source),assert_clause:t(e.assertions)})},ExportNamedDeclaration:function(e){return new iu({start:r(e),end:o(e),exported_definition:a(e.declaration),exported_names:e.specifiers&&e.specifiers.length?e.specifiers.map((function(e){return a(e)})):null,module_name:a(e.source),assert_clause:t(e.assertions)})},ExportDefaultDeclaration:function(e){return new iu({start:r(e),end:o(e),exported_value:a(e.declaration),is_default:!0})},ExportSpecifier:function(e){return new eu({foreign_name:a(e.exported),name:a(e.local)})},Literal:function(e){var t=e.value,n={start:r(e),end:o(e)},i=e.regex;if(i&&i.pattern)return n.value={source:i.pattern,flags:i.flags},new fc(n);if(i){const i=e.raw||t,r=i.match(/^\/(.*)\/(\w*)$/);if(!r)throw new Error("Invalid regex source "+i);const[o,s,a]=r;return n.value={source:s,flags:a},new fc(n)}if(null===t)return new dc(n);switch(typeof t){case"string":n.quote='"';var a=s[s.length-2];return"ImportSpecifier"==a.type?(n.name=t,new Ju(n)):"ExportSpecifier"==a.type?(n.name=t,e==a.exported?new nc(n):new tc(n)):"ExportAllDeclaration"==a.type&&e==a.exported?(n.name=t,new nc(n)):(n.value=t,new lc(n));case"number":return n.value=t,n.raw=e.raw||t.toString(),new uc(n);case"boolean":return new(t?Ec:yc)(n)}},MetaProperty:function(e){return"new"===e.meta.name&&"target"===e.property.name?new Bu({start:r(e),end:o(e)}):"import"===e.meta.name&&"meta"===e.property.name?new nu({start:r(e),end:o(e)}):void 0},Identifier:function(e){var t=s[s.length-2];return new("LabeledStatement"==t.type?Qu:"VariableDeclarator"==t.type&&t.id===e?"const"==t.kind?Ku:"let"==t.kind?Gu:Vu:/Import.*Specifier/.test(t.type)?t.local===e?Zu:Ju:"ExportSpecifier"==t.type?t.local===e?tc:nc:"FunctionExpression"==t.type?t.id===e?Wu:Hu:"FunctionDeclaration"==t.type?t.id===e?zu:Hu:"ArrowFunctionExpression"==t.type?t.params.includes(e)?Hu:ec:"ClassExpression"==t.type?t.id===e?qu:ec:"Property"==t.type?t.key===e&&t.computed||t.value===e?ec:Xu:"PropertyDefinition"==t.type||"FieldDefinition"===t.type?t.key===e&&t.computed||t.value===e?ec:$u:"ClassDeclaration"==t.type?t.id===e?ju:ec:"MethodDefinition"==t.type?t.computed?ec:Xu:"CatchClause"==t.type?Yu:"BreakStatement"==t.type||"ContinueStatement"==t.type?ic:ec)({start:r(e),end:o(e),name:e.name})},BigIntLiteral:e=>new cc({start:r(e),end:o(e),value:e.value}),EmptyStatement:function(e){return new ll({start:r(e),end:o(e)})},BlockStatement:function(e){return new al({start:r(e),end:o(e),body:e.body.map(a)})},IfStatement:function(e){return new Ul({start:r(e),end:o(e),condition:a(e.test),body:a(e.consequent),alternative:a(e.alternate)})},LabeledStatement:function(e){return new cl({start:r(e),end:o(e),label:a(e.label),body:a(e.body)})},BreakStatement:function(e){return new Pl({start:r(e),end:o(e),label:a(e.label)})},ContinueStatement:function(e){return new Bl({start:r(e),end:o(e),label:a(e.label)})},WithStatement:function(e){return new vl({start:r(e),end:o(e),expression:a(e.object),body:a(e.body)})},SwitchStatement:function(e){return new Kl({start:r(e),end:o(e),expression:a(e.discriminant),body:e.cases.map(a)})},ReturnStatement:function(e){return new Ml({start:r(e),end:o(e),value:a(e.argument)})},ThrowStatement:function(e){return new Il({start:r(e),end:o(e),value:a(e.argument)})},WhileStatement:function(e){return new hl({start:r(e),end:o(e),condition:a(e.test),body:a(e.body)})},DoWhileStatement:function(e){return new dl({start:r(e),end:o(e),condition:a(e.test),body:a(e.body)})},ForStatement:function(e){return new ml({start:r(e),end:o(e),init:a(e.init),condition:a(e.test),step:a(e.update),body:a(e.body)})},ForInStatement:function(e){return new _l({start:r(e),end:o(e),init:a(e.left),object:a(e.right),body:a(e.body)})},ForOfStatement:function(e){return new gl({start:r(e),end:o(e),init:a(e.left),object:a(e.right),body:a(e.body),await:e.await})},AwaitExpression:function(e){return new Ll({start:r(e),end:o(e),expression:a(e.argument)})},YieldExpression:function(e){return new Vl({start:r(e),end:o(e),expression:a(e.argument),is_star:e.delegate})},DebuggerStatement:function(e){return new tl({start:r(e),end:o(e)})},VariableDeclarator:function(e){return new Ql({start:r(e),end:o(e),name:a(e.id),value:a(e.init)})},CatchClause:function(e){return new Wl({start:r(e),end:o(e),argname:a(e.param),body:a(e.body).body})},ThisExpression:function(e){return new oc({start:r(e),end:o(e)})},Super:function(e){return new sc({start:r(e),end:o(e)})},BinaryExpression:function(e){return"PrivateIdentifier"===e.left.type?new Fu({start:r(e),end:o(e),key:new rc({start:r(e.left),end:o(e.left),name:e.left.name}),value:a(e.right)}):new mu({start:r(e),end:o(e),operator:e.operator,left:a(e.left),right:a(e.right)})},LogicalExpression:function(e){return new mu({start:r(e),end:o(e),operator:e.operator,left:a(e.left),right:a(e.right)})},AssignmentExpression:function(e){return new gu({start:r(e),end:o(e),operator:e.operator,left:a(e.left),right:a(e.right)})},ConditionalExpression:function(e){return new _u({start:r(e),end:o(e),condition:a(e.test),consequent:a(e.consequent),alternative:a(e.alternate)})},NewExpression:function(e){return new ou({start:r(e),end:o(e),expression:a(e.callee),args:e.arguments.map(a)})},CallExpression:function(e){return new ru({start:r(e),end:o(e),expression:a(e.callee),optional:e.optional,args:e.arguments.map(a)})}};n.UpdateExpression=n.UnaryExpression=function(e){return new(("prefix"in e?e.prefix:"UnaryExpression"==e.type)?du:hu)({start:r(e),end:o(e),operator:e.operator,expression:a(e.argument)})},n.ClassDeclaration=n.ClassExpression=function(e){return new("ClassDeclaration"===e.type?Mu:Nu)({start:r(e),end:o(e),name:a(e.id),extends:a(e.superClass),properties:e.body.body.map(a)})},l(ll,(function(){return{type:"EmptyStatement"}})),l(al,(function(e){return{type:"BlockStatement",body:e.body.map(c)}})),l(Ul,(function(e){return{type:"IfStatement",test:c(e.condition),consequent:c(e.body),alternate:c(e.alternative)}})),l(cl,(function(e){return{type:"LabeledStatement",label:c(e.label),body:c(e.body)}})),l(Pl,(function(e){return{type:"BreakStatement",label:c(e.label)}})),l(Bl,(function(e){return{type:"ContinueStatement",label:c(e.label)}})),l(vl,(function(e){return{type:"WithStatement",object:c(e.expression),body:c(e.body)}})),l(Kl,(function(e){return{type:"SwitchStatement",discriminant:c(e.expression),cases:e.body.map(c)}})),l(Ml,(function(e){return{type:"ReturnStatement",argument:c(e.value)}})),l(Il,(function(e){return{type:"ThrowStatement",argument:c(e.value)}})),l(hl,(function(e){return{type:"WhileStatement",test:c(e.condition),body:c(e.body)}})),l(dl,(function(e){return{type:"DoWhileStatement",test:c(e.condition),body:c(e.body)}})),l(ml,(function(e){return{type:"ForStatement",init:c(e.init),test:c(e.condition),update:c(e.step),body:c(e.body)}})),l(_l,(function(e){return{type:"ForInStatement",left:c(e.init),right:c(e.object),body:c(e.body)}})),l(gl,(function(e){return{type:"ForOfStatement",left:c(e.init),right:c(e.object),body:c(e.body),await:e.await}})),l(Ll,(function(e){return{type:"AwaitExpression",argument:c(e.expression)}})),l(Vl,(function(e){return{type:"YieldExpression",argument:c(e.expression),delegate:e.is_star}})),l(tl,(function(){return{type:"DebuggerStatement"}})),l(Ql,(function(e){return{type:"VariableDeclarator",id:c(e.name),init:c(e.value)}})),l(Wl,(function(e){return{type:"CatchClause",param:c(e.argname),body:p(e)}})),l(oc,(function(){return{type:"ThisExpression"}})),l(sc,(function(){return{type:"Super"}})),l(mu,(function(e){return{type:"BinaryExpression",operator:e.operator,left:c(e.left),right:c(e.right)}})),l(mu,(function(e){return{type:"LogicalExpression",operator:e.operator,left:c(e.left),right:c(e.right)}})),l(gu,(function(e){return{type:"AssignmentExpression",operator:e.operator,left:c(e.left),right:c(e.right)}})),l(_u,(function(e){return{type:"ConditionalExpression",test:c(e.condition),consequent:c(e.consequent),alternate:c(e.alternative)}})),l(ou,(function(e){return{type:"NewExpression",callee:c(e.expression),arguments:e.args.map(c)}})),l(ru,(function(e){return{type:"CallExpression",callee:c(e.expression),optional:e.optional,arguments:e.args.map(c)}})),l(El,(function(e){return d("Program",e)})),l(bl,(function(e){return{type:f()?"RestElement":"SpreadElement",argument:c(e.expression)}})),l(Ol,(function(e){return{type:"TaggedTemplateExpression",tag:c(e.prefix),quasi:c(e.template_string)}})),l(kl,(function(e){for(var t=[],n=[],i=0;i{const t=[];if(e)for(const{key:n,value:i}of e.properties){const e=Ia(n)?{type:"Identifier",name:n}:{type:"Literal",value:n,raw:JSON.stringify(n)};t.push({type:"ImportAttribute",key:e,value:c(i)})}return t};function r(e){var t=e.loc,n=t&&t.start,i=e.range;return new Ja("","",n&&n.line||0,n&&n.column||0,i?i[0]:e.start,!1,[],[],t&&t.source)}function o(e){var t=e.loc,n=t&&t.end,i=e.range;return new Ja("","",n&&n.line||0,n&&n.column||0,i?i[0]:e.end,!1,[],[],t&&t.source)}l(iu,(function(e){if(e.exported_names){var t=e.exported_names[0],n=t.name;if("*"===n.name&&!n.quote){var r=t.foreign_name,o="*"!==r.name||r.quote?c(r):null;return{type:"ExportAllDeclaration",source:c(e.module_name),exported:o,assertions:i(e.assert_clause)}}return{type:"ExportNamedDeclaration",specifiers:e.exported_names.map((function(e){return{type:"ExportSpecifier",exported:c(e.foreign_name),local:c(e.name)}})),declaration:c(e.exported_definition),source:c(e.module_name),assertions:i(e.assert_clause)}}return{type:e.is_default?"ExportDefaultDeclaration":"ExportNamedDeclaration",declaration:c(e.exported_value||e.exported_definition)}})),l(tu,(function(e){var t=[];if(e.imported_name&&t.push({type:"ImportDefaultSpecifier",local:c(e.imported_name)}),e.imported_names){var n=e.imported_names[0].foreign_name;"*"!==n.name||n.quote?e.imported_names.forEach((function(e){t.push({type:"ImportSpecifier",local:c(e.name),imported:c(e.foreign_name)})})):t.push({type:"ImportNamespaceSpecifier",local:c(e.imported_names[0].name)})}return{type:"ImportDeclaration",specifiers:t,source:c(e.module_name),assertions:i(e.assert_clause)}})),l(nu,(function(){return{type:"MetaProperty",meta:{type:"Identifier",name:"import"},property:{type:"Identifier",name:"meta"}}})),l(su,(function(e){return{type:"SequenceExpression",expressions:e.expressions.map(c)}})),l(uu,(function(e){return{type:"MemberExpression",object:c(e.expression),computed:!1,property:{type:"PrivateIdentifier",name:e.property},optional:e.optional}})),l(au,(function(e){var t=e instanceof cu;return{type:"MemberExpression",object:c(e.expression),computed:t,property:t?c(e.property):{type:"Identifier",name:e.property},optional:e.optional}})),l(fu,(function(e){return{type:"ChainExpression",expression:c(e.expression)}})),l(pu,(function(e){return{type:"++"==e.operator||"--"==e.operator?"UpdateExpression":"UnaryExpression",operator:e.operator,prefix:e instanceof du,argument:c(e.expression)}})),l(mu,(function(e){return"="==e.operator&&f()?{type:"AssignmentPattern",left:c(e.left),right:c(e.right)}:{type:"&&"==e.operator||"||"==e.operator||"??"===e.operator?"LogicalExpression":"BinaryExpression",left:c(e.left),operator:e.operator,right:c(e.right)}})),l(Fu,(function(e){return{type:"BinaryExpression",left:{type:"PrivateIdentifier",name:e.key.name},operator:"in",right:c(e.value)}})),l(yu,(function(e){return{type:"ArrayExpression",elements:e.elements.map(c)}})),l(Eu,(function(e){return{type:"ObjectExpression",properties:e.properties.map(c)}})),l(bu,(function(e,t){var n,i=e.key instanceof Qa?c(e.key):{type:"Identifier",value:e.key};"number"==typeof e.key&&(i={type:"Literal",value:Number(e.key)}),"string"==typeof e.key&&(i={type:"Identifier",name:e.key});var r="string"==typeof e.key||"number"==typeof e.key,o=!r&&(!(e.key instanceof Pu)||e.key instanceof ec);return e instanceof Su?(n="init",o=!r):e instanceof Cu?n="get":e instanceof Tu&&(n="set"),e instanceof Au||e instanceof Du?{type:"MethodDefinition",computed:!1,kind:e instanceof Au?"get":"set",static:e.static,key:{type:"PrivateIdentifier",name:e.key.name},value:c(e.value)}:e instanceof Ru?{type:"PropertyDefinition",key:{type:"PrivateIdentifier",name:e.key.name},value:c(e.value),computed:!1,static:e.static}:e instanceof xu?{type:"PropertyDefinition",key:i,value:c(e.value),computed:o,static:e.static}:t instanceof ku?{type:"MethodDefinition",computed:o,kind:n,static:e.static,key:c(e.key),value:c(e.value)}:{type:"Property",computed:o,kind:n,key:i,value:c(e.value)}})),l(wu,(function(e,t){if(t instanceof Eu)return{type:"Property",computed:!(e.key instanceof Pu)||e.key instanceof ec,kind:"init",method:!0,shorthand:!1,key:c(e.key),value:c(e.value)};const n=e instanceof Ou?{type:"PrivateIdentifier",name:e.key.name}:c(e.key);return{type:"MethodDefinition",kind:"constructor"===e.key?"constructor":"method",key:n,value:c(e.value),computed:!(e.key instanceof Pu)||e.key instanceof ec,static:e.static}})),l(ku,(function(e){return{type:e instanceof Nu?"ClassExpression":"ClassDeclaration",superClass:c(e.extends),id:e.name?c(e.name):null,body:{type:"ClassBody",body:e.properties.map(c)}}})),l(Iu,(function(e){return{type:"StaticBlock",body:e.body.map(c)}})),l(Bu,(function(){return{type:"MetaProperty",meta:{type:"Identifier",name:"new"},property:{type:"Identifier",name:"target"}}})),l(Pu,(function(e,t){if(e instanceof Xu&&t.quote||(e instanceof Ju||e instanceof nc||e instanceof tc)&&e.quote)return{type:"Literal",value:e.name};var n=e.definition();return{type:"Identifier",name:n?n.mangled_name||n.name:e.name}})),l(fc,(function(e){const t=e.value.source,n=e.value.flags;return{type:"Literal",value:null,raw:e.print_to_string(),regex:{pattern:t,flags:n}}})),l(ac,(function(e){return{type:"Literal",value:e.value,raw:e.raw||e.print_to_string()}})),l(pc,(function(e){return{type:"Identifier",name:String(e.value)}})),l(cc,(e=>({type:"BigIntLiteral",value:e.value}))),vc.DEFMETHOD("to_mozilla_ast",ac.prototype.to_mozilla_ast),dc.DEFMETHOD("to_mozilla_ast",ac.prototype.to_mozilla_ast),_c.DEFMETHOD("to_mozilla_ast",(function(){return null})),sl.DEFMETHOD("to_mozilla_ast",al.prototype.to_mozilla_ast),Sl.DEFMETHOD("to_mozilla_ast",Al.prototype.to_mozilla_ast);var s=null;function a(e){s.push(e);var t=null!=e?n[e.type](e):null;return s.pop(),t}function l(e,t){e.DEFMETHOD("to_mozilla_ast",(function(e){return function(e,t){var n=e.start,i=e.end;return n&&i?(null!=n.pos&&null!=i.endpos&&(t.range=[n.pos,i.endpos]),n.line&&(t.loc={start:{line:n.line,column:n.col},end:i.endline?{line:i.endline,column:i.endcol}:null},n.file&&(t.loc.source=n.file)),t):t}(this,t(this,e))}))}Qa.from_mozilla_ast=function(e){var t=s;s=[];var n=a(e);return s=t,n};var u=null;function c(e){null===u&&(u=[]),u.push(e);var t=null!=e?e.to_mozilla_ast(u[u.length-2]):null;return u.pop(),0===u.length&&(u=null),t}function f(){for(var e=u.length;e--;)if(u[e]instanceof wl)return!0;return!1}function p(e){return{type:"BlockStatement",body:e.body.map(c)}}function d(e,t){var n=t.body.map(c);return t.body[0]instanceof il&&t.body[0].body instanceof lc&&n.unshift(c(new ll(t.body[0]))),{type:e,body:n}}}();const Ic=/[@#]__(PURE|INLINE|NOINLINE)__/;function Nc(e){return("comment2"===e.type||"comment1"===e.type)&&/@preserve|@copyright|@lic|@cc_on|^\**!/i.test(e.value)}class Pc{constructor(){this.committed="",this.current=""}append(e){this.current.length>8e3?(this.committed+=this.current+e,this.current=""):this.current+=e}insertAt(e,t){const{committed:n,current:i}=this;t=0;){const t=this.charCodeAt(e--);if(10===t)return!0;if(32!==t)return!1}return!0}toString(){return this.committed+this.current}}function Bc(e){var t=!e;void 0===(e=Ps(e,{ascii_only:!1,beautify:!1,braces:!1,comments:"some",ecma:5,ie8:!1,indent_level:4,indent_start:0,inline_script:!0,keep_numbers:!1,keep_quoted_props:!1,max_line_len:!1,preamble:null,preserve_annotations:!1,quote_keys:!1,quote_style:0,safari10:!1,semicolons:!0,shebang:!0,shorthand:void 0,source_map:null,webkit:!1,width:80,wrap_iife:!1,wrap_func_args:!0,_destroy_ast:!1},!0)).shorthand&&(e.shorthand=e.ecma>5);var n=Ls;if(e.comments){let t=e.comments;if("string"==typeof e.comments&&/^\/.*\/[a-zA-Z]*$/.test(e.comments)){var i=e.comments.lastIndexOf("/");t=new RegExp(e.comments.substr(1,i-1),e.comments.substr(i+1))}n=t instanceof RegExp?function(e){return"comment5"!=e.type&&t.test(e.value)}:"function"==typeof t?function(e){return"comment5"!=e.type&&t(this,e)}:"some"===t?Nc:Vs}if(e.preserve_annotations){let e=n;n=function(t){return Ic.test(t.value)||e.apply(this,arguments)}}var r=0,o=0,s=1,a=0,l=new Pc;let u=new Set;var c=e.ascii_only?function(t,n=!1,i=!1){return e.ecma>=2015&&!e.safari10&&!i&&(t=t.replace(/[\ud800-\udbff][\udc00-\udfff]/g,(function(e){var t=function(e,t){return Oa(e.charCodeAt(0))?65536+(e.charCodeAt(0)-55296<<10)+e.charCodeAt(1)-56320:e.charCodeAt(0)}(e).toString(16);return"\\u{"+t+"}"}))),t.replace(/[\u0000-\u001f\u007f-\uffff]/g,(function(e){var t=e.charCodeAt(0).toString(16);if(t.length<=2&&!n){for(;t.length<2;)t="0"+t;return"\\x"+t}for(;t.length<4;)t="0"+t;return"\\u"+t}))}:function(e){return e.replace(/[\ud800-\udbff][\udc00-\udfff]|([\ud800-\udbff]|[\udc00-\udfff])/g,(function(e,t){return t?"\\u"+t.charCodeAt(0).toString(16):e}))};function f(t,n){var i=function(t,n){var i=0,r=0;function o(){return"'"+t.replace(/\x27/g,"\\'")+"'"}function s(){return'"'+t.replace(/\x22/g,'\\"')+'"'}if(t=t.replace(/[\\\b\f\n\r\v\t\x22\x27\u2028\u2029\0\ufeff]/g,(function(n,o){switch(n){case'"':return++i,'"';case"'":return++r,"'";case"\\":return"\\\\";case"\n":return"\\n";case"\r":return"\\r";case"\t":return"\\t";case"\b":return"\\b";case"\f":return"\\f";case"\v":return e.ie8?"\\x0B":"\\v";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";case"\ufeff":return"\\ufeff";case"\0":return/[0-9]/.test(wa(t,o+1))?"\\x00":"\\0"}return n})),t=c(t),"`"===n)return"`"+t.replace(/`/g,"\\`")+"`";switch(e.quote_style){case 1:return o();case 2:return s();case 3:return"'"==n?o():s();default:return i>r?o():s()}}(t,n);return e.inline_script&&(i=(i=(i=i.replace(/<\x2f(script)([>\/\t\n\f\r ])/gi,"<\\/$1$2")).replace(/\x3c!--/g,"\\x3c!--")).replace(/--\x3e/g,"--\\x3e")),i}var p,d,h=!1,m=!1,_=!1,g=0,v=!1,y=!1,E=-1,b="",S=e.source_map&&[],D=S?function(){S.forEach((function(t){try{let{name:n,token:i}=t;!1!==n&&("name"==i.type||"privatename"===i.type?n=i.value:n instanceof Pu&&(n="string"===i.type?i.value:n.name)),e.source_map.add(t.token.file,t.line,t.col,t.token.line,t.token.col,Ia(n)?n:void 0)}catch(e){}})),S=[]}:Bs,A=e.max_line_len?function(){if(o>e.max_line_len&&g){l.insertAt("\n",g);const e=l.length()-g-1;if(S){var t=e-o;S.forEach((function(e){e.line++,e.col+=t}))}s++,a++,o=e}g&&(g=0,D())}:Bs,T=js("( [ + * / - , . `");function C(t){var n=wa(t=String(t),0);v&&n&&(v=!1,"\n"!==n&&(C("\n"),O())),y&&n&&(y=!1,/[\s;})]/.test(n)||w()),E=-1;var i=b.charAt(b.length-1);_&&(_=!1,(":"!==i||"}"!==n)&&(n&&";}".includes(n)||";"===i)||(e.semicolons||T.has(n)?(l.append(";"),o++,a++):(A(),o>0&&(l.append("\n"),a++,s++,o=0),/^\s+$/.test(t)&&(_=!0)),e.beautify||(m=!1))),m&&((Fa(i)&&(Fa(n)||"\\"==n)||"/"==n&&n==i||("+"==n||"-"==n)&&n==b)&&(l.append(" "),o++,a++),m=!1),p&&(S.push({token:p,name:d,line:s,col:o}),p=!1,g||D()),l.append(t),h="("==t[t.length-1],a+=t.length;var r=t.split(/\r?\n/),u=r.length-1;s+=u,o+=r[0].length,u>0&&(A(),o=r[u].length),b=t}var w=e.beautify?function(){C(" ")}:function(){m=!0},O=e.beautify?function(t){var n;e.beautify&&C((n=t?.5:0," ".repeat(e.indent_start+r-n*e.indent_level)))}:Bs,k=e.beautify?function(e,t){!0===e&&(e=M());var n=r;r=e;var i=t();return r=n,i}:function(e,t){return t()},x=e.beautify?function(){if(E<0)return C("\n");"\n"!=l.charAt(E)&&(l.insertAt("\n",E),a++,s++),E++}:e.max_line_len?function(){A(),g=l.length()}:Bs,R=e.beautify?function(){C(";")}:function(){_=!0};function F(){_=!1,C(";")}function M(){return r+e.indent_level}var I=S?function(e,t){p=e,d=t}:Bs;function N(){return g&&A(),l.toString()}function P(t){return e.preserve_annotations||(t=t.replace(Ic," ")),/^\s*$/.test(t)?"":t.replace(/(<\s*\/\s*)(script)/i,"<\\/$2")}const B=e._destroy_ast?function(e){e.body.length=0,e.argnames.length=0}:Bs;var L=[];return{get:N,toString:N,indent:O,in_directive:!1,use_asm:null,active_scope:null,indentation:function(){return r},current_width:function(){return o-r},should_break:function(){return e.width&&this.current_width()>=e.width},has_parens:function(){return h},newline:x,print:C,star:function(){C("*")},space:w,comma:function(){C(","),w()},colon:function(){C(":"),w()},last:function(){return b},semicolon:R,force_semicolon:F,to_utf8:c,print_name:function(e){C(function(e){return e=e.toString(),c(e,!0)}(e))},print_string:function(e,t,n){var i=f(e,t);!0!==n||i.includes("\\")||(l.expectDirective()||F(),F()),C(i)},print_template_string_chars:function(e){var t=f(e,"`").replace(/\${/g,"\\${");return C(t.substr(1,t.length-2))},encode_string:f,next_indent:M,with_indent:k,with_block:function(e){var t;return C("{"),x(),k(M(),(function(){t=e()})),O(),C("}"),t},with_parens:function(e){C("(");var t=e();return C(")"),t},with_square:function(e){C("[");var t=e();return C("]"),t},add_mapping:I,option:function(t){return e[t]},gc_scope:B,printed_comments:u,prepend_comments:t?Bs:function(t){var i=t.start;if(!i)return;var r=this.printed_comments;const o=t instanceof Fl&&t.value||(t instanceof Ll||t instanceof Vl)&&t.expression;if(i.comments_before&&r.has(i.comments_before)){if(!o)return;i.comments_before=[]}var s=i.comments_before;if(s||(s=i.comments_before=[]),r.add(s),o){var u=new Ac((function(e){var t=u.parent();if(!(t instanceof Fl||t instanceof Ll||t instanceof Vl||t instanceof mu&&t.left===e||"Call"==t.TYPE&&t.expression===e||t instanceof _u&&t.condition===e||t instanceof lu&&t.expression===e||t instanceof su&&t.expressions[0]===e||t instanceof cu&&t.expression===e||t instanceof hu))return!0;if(e.start){var n=e.start.comments_before;n&&!r.has(n)&&(r.add(n),s=s.concat(n))}}));u.push(t),o.walk(u)}if(0==a){s.length>0&&e.shebang&&"comment5"===s[0].type&&!r.has(s[0])&&(C("#!"+s.shift().value+"\n"),O());var c=e.preamble;c&&C(c.replace(/\r\n?|[\n\u2028\u2029]|\s*$/g,"\n"))}if(0!=(s=s.filter(n,t).filter((e=>!r.has(e)))).length){var f=l.hasNLB();s.forEach((function(e,t){if(r.add(e),f||(e.nlb?(C("\n"),O(),f=!0):t>0&&w()),/comment[134]/.test(e.type))(n=P(e.value))&&(C("//"+n+"\n"),O()),f=!0;else if("comment2"==e.type){var n;(n=P(e.value))&&C("/*"+n+"*/"),f=!1}})),f||(i.nlb?(C("\n"),O()):w())}},append_comments:t||n===Ls?Bs:function(e,t){var i=e.end;if(i){var r=this.printed_comments,o=i[t?"comments_before":"comments_after"];if(o&&!r.has(o)&&(e instanceof el||o.every((e=>!/comment[134]/.test(e.type))))){r.add(o);var s=l.length();o.filter(n,e).forEach((function(e,n){if(!r.has(e))if(r.add(e),y=!1,v?(C("\n"),O(),v=!1):e.nlb&&(n>0||!l.hasNLB())?(C("\n"),O()):(n>0||!t)&&w(),/comment[134]/.test(e.type)){const t=P(e.value);t&&C("//"+t),v=!0}else if("comment2"==e.type){const t=P(e.value);t&&C("/*"+t+"*/"),y=!0}})),l.length()>s&&(E=s)}}},line:function(){return s},col:function(){return o},pos:function(){return a},push_node:function(e){L.push(e)},pop_node:function(){return L.pop()},parent:function(e){return L[L.length-2-(e||0)]}}}!function(){function e(e,t){e.DEFMETHOD("_codegen",t)}function t(e,n){Array.isArray(e)?e.forEach((function(e){t(e,n)})):e.DEFMETHOD("needs_parens",n)}function n(e,t,n,i){var r=e.length-1;n.in_directive=i,e.forEach((function(e,i){!0!==n.in_directive||e instanceof nl||e instanceof ll||e instanceof il&&e.body instanceof lc||(n.in_directive=!1),e instanceof ll||(n.indent(),e.print(n),i==r&&t||(n.newline(),t&&n.newline())),!0===n.in_directive&&e instanceof il&&e.body instanceof lc&&(n.in_directive=!1)})),n.in_directive=!1}function i(e,t){t.print("{"),t.with_indent(t.next_indent(),(function(){t.append_comments(e,!0)})),t.add_mapping(e.end),t.print("}")}function r(e,t,r){e.body.length>0?t.with_block((function(){n(e.body,!1,t,r),t.add_mapping(e.end)})):i(e,t)}function o(e,t,n){var i=!1;n&&(i=bc(e,(e=>e instanceof yl&&!(e instanceof Tl)||(e instanceof mu&&"in"==e.operator||e instanceof Fu?Dc:void 0)))),e.print(t,i)}function s(e,t,n){return n.option("quote_keys")?(n.print_string(e),!1):""+ +e==e&&e>=0?n.option("keep_numbers")?(n.print(e),!1):(n.print(f(e)),!1):(ca.has(e)?n.option("ie8"):n.option("ecma")<2015||n.option("safari10")?!Ia(e):!Na(e,!0))||t&&n.option("keep_quoted_props")?(n.print_string(e,t),!1):(n.print_name(e),!0)}Qa.DEFMETHOD("print",(function(e,t){var n=this,i=n._codegen;function r(){e.prepend_comments(n),n.add_source_map(e),i(n,e),e.append_comments(n)}n instanceof yl?e.active_scope=n:!e.use_asm&&n instanceof nl&&"use asm"==n.value&&(e.use_asm=e.active_scope),e.push_node(n),t||n.needs_parens(e)?e.with_parens(r):r(),e.pop_node(),n===e.use_asm&&(e.use_asm=null)})),Qa.DEFMETHOD("_print",Qa.prototype.print),Qa.DEFMETHOD("print_to_string",(function(e){var t=Bc(e);return this.print(t),t.get()})),t(Qa,Ls),t(Al,(function(e){return!(e.has_parens()||!Fc(e))||(!!(e.option("webkit")&&(t=e.parent())instanceof au&&t.expression===this)||(!!(e.option("wrap_iife")&&(t=e.parent())instanceof ru&&t.expression===this)||!!(e.option("wrap_func_args")&&(t=e.parent())instanceof ru&&t.args.includes(this))));var t})),t(Tl,(function(e){var t=e.parent();return!!(e.option("wrap_func_args")&&t instanceof ru&&t.args.includes(this))||t instanceof au&&t.expression===this||t instanceof _u&&t.condition===this})),t(Eu,(function(e){return!e.has_parens()&&Fc(e)})),t(Nu,Fc),t(pu,(function(e){var t=e.parent();return t instanceof au&&t.expression===this||t instanceof ru&&t.expression===this||t instanceof mu&&"**"===t.operator&&this instanceof du&&t.left===this&&"++"!==this.operator&&"--"!==this.operator})),t(Ll,(function(e){var t=e.parent();return t instanceof au&&t.expression===this||t instanceof ru&&t.expression===this||t instanceof mu&&"**"===t.operator&&t.left===this||e.option("safari10")&&t instanceof du})),t(su,(function(e){var t=e.parent();return t instanceof ru||t instanceof pu||t instanceof mu||t instanceof Ql||t instanceof au||t instanceof yu||t instanceof bu||t instanceof _u||t instanceof Tl||t instanceof vu||t instanceof bl||t instanceof gl&&this===t.object||t instanceof Vl||t instanceof iu})),t(mu,(function(e){var t=e.parent();if(t instanceof ru&&t.expression===this)return!0;if(t instanceof pu)return!0;if(t instanceof au&&t.expression===this)return!0;if(t instanceof mu){const e=t.operator,n=this.operator;if("??"===n&&("||"===e||"&&"===e))return!0;if("??"===e&&("||"===n||"&&"===n))return!0;const i=$a[e],r=$a[n];if(i>r||i==r&&(this===t.right||"**"==e))return!0}})),t(Vl,(function(e){var t=e.parent();return t instanceof mu&&"="!==t.operator||t instanceof ru&&t.expression===this||t instanceof _u&&t.condition===this||t instanceof pu||t instanceof au&&t.expression===this||void 0})),t(fu,(function(e){var t=e.parent();return(t instanceof ru||t instanceof au)&&t.expression===this})),t(au,(function(e){var t=e.parent();if(t instanceof ou&&t.expression===this)return bc(this,(e=>e instanceof yl||(e instanceof ru?Dc:void 0)))})),t(ru,(function(e){var t,n=e.parent();return!!(n instanceof ou&&n.expression===this||n instanceof iu&&n.is_default&&this.expression instanceof Al)||this.expression instanceof Al&&n instanceof au&&n.expression===this&&(t=e.parent(1))instanceof gu&&t.left===n})),t(ou,(function(e){var t=e.parent();if(0===this.args.length&&(t instanceof au||t instanceof ru&&t.expression===this||t instanceof Ol&&t.prefix===this))return!0})),t(uc,(function(e){var t=e.parent();if(t instanceof au&&t.expression===this){var n=this.getValue();if(n<0||/^0/.test(f(n)))return!0}})),t(cc,(function(e){var t=e.parent();if(t instanceof au&&t.expression===this&&this.getValue().startsWith("-"))return!0})),t([gu,_u],(function(e){var t=e.parent();return t instanceof pu||t instanceof mu&&!(t instanceof gu)||t instanceof ru&&t.expression===this||t instanceof _u&&t.condition===this||t instanceof au&&t.expression===this||this instanceof gu&&this.left instanceof wl&&!1===this.left.is_array||void 0})),e(nl,(function(e,t){t.print_string(e.value,e.quote),t.semicolon()})),e(bl,(function(e,t){t.print("..."),e.expression.print(t)})),e(wl,(function(e,t){t.print(e.is_array?"[":"{");var n=e.names.length;e.names.forEach((function(e,i){i>0&&t.comma(),e.print(t),i==n-1&&e instanceof _c&&t.comma()})),t.print(e.is_array?"]":"}")})),e(tl,(function(e,t){t.print("debugger"),t.semicolon()})),ul.DEFMETHOD("_do_print_body",(function(e){c(this.body,e)})),e(el,(function(e,t){e.body.print(t),t.semicolon()})),e(El,(function(e,t){n(e.body,!0,t,!0),t.print("")})),e(cl,(function(e,t){e.label.print(t),t.colon(),e.body.print(t)})),e(il,(function(e,t){e.body.print(t),t.semicolon()})),e(al,(function(e,t){r(e,t)})),e(ll,(function(e,t){t.semicolon()})),e(dl,(function(e,t){t.print("do"),t.space(),p(e.body,t),t.space(),t.print("while"),t.space(),t.with_parens((function(){e.condition.print(t)})),t.semicolon()})),e(hl,(function(e,t){t.print("while"),t.space(),t.with_parens((function(){e.condition.print(t)})),t.space(),e._do_print_body(t)})),e(ml,(function(e,t){t.print("for"),t.space(),t.with_parens((function(){e.init?(e.init instanceof ql?e.init.print(t):o(e.init,t,!0),t.print(";"),t.space()):t.print(";"),e.condition?(e.condition.print(t),t.print(";"),t.space()):t.print(";"),e.step&&e.step.print(t)})),t.space(),e._do_print_body(t)})),e(_l,(function(e,t){t.print("for"),e.await&&(t.space(),t.print("await")),t.space(),t.with_parens((function(){e.init.print(t),t.space(),t.print(e instanceof gl?"of":"in"),t.space(),e.object.print(t)})),t.space(),e._do_print_body(t)})),e(vl,(function(e,t){t.print("with"),t.space(),t.with_parens((function(){e.expression.print(t)})),t.space(),e._do_print_body(t)})),Sl.DEFMETHOD("_do_print",(function(e,t){var n=this;t||(n.async&&(e.print("async"),e.space()),e.print("function"),n.is_generator&&e.star(),n.name&&e.space()),n.name instanceof Pu?n.name.print(e):t&&n.name instanceof Qa&&e.with_square((function(){n.name.print(e)})),e.with_parens((function(){n.argnames.forEach((function(t,n){n&&e.comma(),t.print(e)}))})),e.space(),r(n,e,!0)})),e(Sl,(function(e,t){e._do_print(t),t.gc_scope(e)})),e(Ol,(function(e,t){var n=e.prefix,i=n instanceof Sl||n instanceof mu||n instanceof _u||n instanceof su||n instanceof pu||n instanceof lu&&n.expression instanceof Eu;i&&t.print("("),e.prefix.print(t),i&&t.print(")"),e.template_string.print(t)})),e(kl,(function(e,t){var n=t.parent()instanceof Ol;t.print("`");for(var i=0;i"),e.space();const o=t.body[0];if(1===t.body.length&&o instanceof Ml){const t=o.value;t?Mc(t)?(e.print("("),t.print(e),e.print(")")):t.print(e):e.print("{}")}else r(t,e);i&&e.print(")"),e.gc_scope(t)})),Fl.DEFMETHOD("_do_print",(function(e,t){if(e.print(t),this.value){e.space();const t=this.value.start.comments_before;t&&t.length&&!e.printed_comments.has(t)?(e.print("("),this.value.print(e),e.print(")")):this.value.print(e)}e.semicolon()})),e(Ml,(function(e,t){e._do_print(t,"return")})),e(Il,(function(e,t){e._do_print(t,"throw")})),e(Vl,(function(e,t){var n=e.is_star?"*":"";t.print("yield"+n),e.expression&&(t.space(),e.expression.print(t))})),e(Ll,(function(e,t){t.print("await"),t.space();var n=e.expression,i=!(n instanceof ru||n instanceof ec||n instanceof au||n instanceof pu||n instanceof ac||n instanceof Ll||n instanceof Eu);i&&t.print("("),e.expression.print(t),i&&t.print(")")})),Nl.DEFMETHOD("_do_print",(function(e,t){e.print(t),this.label&&(e.space(),this.label.print(e)),e.semicolon()})),e(Pl,(function(e,t){e._do_print(t,"break")})),e(Bl,(function(e,t){e._do_print(t,"continue")})),e(Ul,(function(e,t){t.print("if"),t.space(),t.with_parens((function(){e.condition.print(t)})),t.space(),e.alternative?(function(e,t){var n=e.body;if(t.option("braces")||t.option("ie8")&&n instanceof dl)return p(n,t);if(!n)return t.force_semicolon();for(;;)if(n instanceof Ul){if(!n.alternative)return void p(e.body,t);n=n.alternative}else{if(!(n instanceof ul))break;n=n.body}c(e.body,t)}(e,t),t.space(),t.print("else"),t.space(),e.alternative instanceof Ul?e.alternative.print(t):c(e.alternative,t)):e._do_print_body(t)})),e(Kl,(function(e,t){t.print("switch"),t.space(),t.with_parens((function(){e.expression.print(t)})),t.space();var n=e.body.length-1;n<0?i(e,t):t.with_block((function(){e.body.forEach((function(e,i){t.indent(!0),e.print(t),i0&&t.newline()}))}))})),Gl.DEFMETHOD("_do_print_body",(function(e){e.newline(),this.body.forEach((function(t){e.indent(),t.print(e),e.newline()}))})),e(Hl,(function(e,t){t.print("default:"),e._do_print_body(t)})),e(zl,(function(e,t){t.print("case"),t.space(),e.expression.print(t),t.print(":"),e._do_print_body(t)})),e(Xl,(function(e,t){t.print("try"),t.space(),e.body.print(t),e.bcatch&&(t.space(),e.bcatch.print(t)),e.bfinally&&(t.space(),e.bfinally.print(t))})),e($l,(function(e,t){r(e,t)})),e(Wl,(function(e,t){t.print("catch"),e.argname&&(t.space(),t.with_parens((function(){e.argname.print(t)}))),t.space(),r(e,t)})),e(jl,(function(e,t){t.print("finally"),t.space(),r(e,t)})),ql.DEFMETHOD("_do_print",(function(e,t){e.print(t),e.space(),this.definitions.forEach((function(t,n){n&&e.comma(),t.print(e)}));var n=e.parent();(!(n instanceof ml||n instanceof _l)||n&&n.init!==this)&&e.semicolon()})),e(Zl,(function(e,t){e._do_print(t,"let")})),e(Yl,(function(e,t){e._do_print(t,"var")})),e(Jl,(function(e,t){e._do_print(t,"const")})),e(tu,(function(e,t){t.print("import"),t.space(),e.imported_name&&e.imported_name.print(t),e.imported_name&&e.imported_names&&(t.print(","),t.space()),e.imported_names&&(1!==e.imported_names.length||"*"!==e.imported_names[0].foreign_name.name||e.imported_names[0].foreign_name.quote?(t.print("{"),e.imported_names.forEach((function(n,i){t.space(),n.print(t),i0&&(e.comma(),e.should_break()&&(e.newline(),e.indent())),t.print(e)}))})),e(su,(function(e,t){e._do_print(t)})),e(lu,(function(e,t){var n=e.expression;n.print(t);var i=e.property,r=ca.has(i)?t.option("ie8"):!Na(i,t.option("ecma")>=2015&&!t.option("safari10"));e.optional&&t.print("?."),r?(t.print("["),t.add_mapping(e.end),t.print_string(i),t.print("]")):(n instanceof uc&&n.getValue()>=0&&(/[xa-f.)]/i.test(t.last())||t.print(".")),e.optional||t.print("."),t.add_mapping(e.end),t.print_name(i))})),e(uu,(function(e,t){e.expression.print(t);var n=e.property;e.optional&&t.print("?"),t.print(".#"),t.add_mapping(e.end),t.print_name(n)})),e(cu,(function(e,t){e.expression.print(t),e.optional&&t.print("?."),t.print("["),e.property.print(t),t.print("]")})),e(fu,(function(e,t){e.expression.print(t)})),e(du,(function(e,t){var n=e.operator;"--"===n&&t.last().endsWith("!")&&t.print(" "),t.print(n),(/^[a-z]/i.test(n)||/[+-]$/.test(n)&&e.expression instanceof du&&/^[+-]/.test(e.expression.operator))&&t.space(),e.expression.print(t)})),e(hu,(function(e,t){e.expression.print(t),t.print(e.operator)})),e(mu,(function(e,t){var n=e.operator;e.left.print(t),">"==n[0]&&t.last().endsWith("--")?t.print(" "):t.space(),t.print(n),t.space(),e.right.print(t)})),e(_u,(function(e,t){e.condition.print(t),t.space(),t.print("?"),t.space(),e.consequent.print(t),t.space(),t.colon(),e.alternative.print(t)})),e(yu,(function(e,t){t.with_square((function(){var n=e.elements,i=n.length;i>0&&t.space(),n.forEach((function(e,n){n&&t.comma(),e.print(t),n===i-1&&e instanceof _c&&t.comma()})),i>0&&t.space()}))})),e(Eu,(function(e,t){e.properties.length>0?t.with_block((function(){e.properties.forEach((function(e,n){n&&(t.print(","),t.newline()),t.indent(),e.print(t)})),t.newline()})):i(e,t)})),e(ku,(function(e,t){if(t.print("class"),t.space(),e.name&&(e.name.print(t),t.space()),e.extends){var n=!(e.extends instanceof ec||e.extends instanceof au||e.extends instanceof Nu||e.extends instanceof Al);t.print("extends"),n?t.print("("):t.space(),e.extends.print(t),n?t.print(")"):t.space()}e.properties.length>0?t.with_block((function(){e.properties.forEach((function(e,n){n&&t.newline(),t.indent(),e.print(t)})),t.newline()})):t.print("{}")})),e(Bu,(function(e,t){t.print("new.target")})),e(Su,(function(e,t){function n(e){var t=e.definition();return t?t.mangled_name||t.name:e.name}const i=t.option("shorthand")&&!(e.key instanceof Qa);i&&e.value instanceof Pu&&n(e.value)===e.key&&!ca.has(e.key)?s(e.key,e.quote,t)||(t.colon(),e.value.print(t)):i&&e.value instanceof vu&&e.value.left instanceof Pu&&n(e.value.left)===e.key?(s(e.key,e.quote,t)||(t.colon(),e.value.left.print(t)),t.space(),t.print("="),t.space(),e.value.right.print(t)):(e.key instanceof Qa?t.with_square((function(){e.key.print(t)})):s(e.key,e.quote,t),t.colon(),e.value.print(t))})),e(Ru,((e,t)=>{e.static&&(t.print("static"),t.space()),t.print("#"),s(e.key.name,e.quote,t),e.value&&(t.print("="),e.value.print(t)),t.semicolon()})),e(xu,((e,t)=>{e.static&&(t.print("static"),t.space()),e.key instanceof $u?s(e.key.name,e.quote,t):(t.print("["),e.key.print(t),t.print("]")),e.value&&(t.print("="),e.value.print(t)),t.semicolon()})),bu.DEFMETHOD("_print_getter_setter",(function(e,t,n){var i=this;i.static&&(n.print("static"),n.space()),e&&(n.print(e),n.space()),i.key instanceof Xu?(t&&n.print("#"),s(i.key.name,i.quote,n),i.key.add_source_map(n)):n.with_square((function(){i.key.print(n)})),i.value._do_print(n,!0)})),e(Tu,(function(e,t){e._print_getter_setter("set",!1,t)})),e(Cu,(function(e,t){e._print_getter_setter("get",!1,t)})),e(Du,(function(e,t){e._print_getter_setter("set",!0,t)})),e(Au,(function(e,t){e._print_getter_setter("get",!0,t)})),e(Ou,(function(e,t){var n;e.is_generator&&e.async?n="async*":e.is_generator?n="*":e.async&&(n="async"),e._print_getter_setter(n,!0,t)})),e(Fu,(function(e,t){e.key.print(t),t.space(),t.print("in"),t.space(),e.value.print(t)})),e(rc,(function(e,t){t.print("#"+e.name)})),e(wu,(function(e,t){var n;e.is_generator&&e.async?n="async*":e.is_generator?n="*":e.async&&(n="async"),e._print_getter_setter(n,!1,t)})),e(Iu,(function(e,t){t.print("static"),t.space(),r(e,t)})),Pu.DEFMETHOD("_do_print",(function(e){var t=this.definition();e.print_name(t?t.mangled_name||t.name:this.name)})),e(Pu,(function(e,t){e._do_print(t)})),e(_c,Bs),e(oc,(function(e,t){t.print("this")})),e(sc,(function(e,t){t.print("super")})),e(ac,(function(e,t){t.print(e.getValue())})),e(lc,(function(e,t){t.print_string(e.getValue(),e.quote,t.in_directive)})),e(uc,(function(e,t){(t.option("keep_numbers")||t.use_asm)&&e.raw?t.print(e.raw):t.print(f(e.getValue()))})),e(cc,(function(e,t){t.print(e.getValue()+"n")}));const a=/(<\s*\/\s*script)/i,l=/^\s*script/i,u=(e,t)=>t.replace("/","\\/");function c(e,t){t.option("braces")?p(e,t):!e||e instanceof ll?t.force_semicolon():e instanceof Zl||e instanceof Jl||e instanceof ku?p(e,t):e.print(t)}function f(e){var t,n,i,r=e.toString(10).replace(/^0\./,".").replace("e+","e"),o=[r];return Math.floor(e)===e&&(e<0?o.push("-0x"+(-e).toString(16).toLowerCase()):o.push("0x"+e.toString(16).toLowerCase())),(t=/^\.0+/.exec(r))?(n=t[0].length,i=r.slice(n),o.push(i+"e-"+(i.length+n-1))):(t=/0+$/.exec(r))?(n=t[0].length,o.push(r.slice(0,-n)+"e"+n)):(t=/^(\d)\.(\d+)e(-?\d+)$/.exec(r))&&o.push(t[1]+t[2]+"e"+(t[3]-t[2].length)),function(e){for(var t=e[0],n=t.length,i=1;i{n+=e})),n}(i):"",n=n.replace(a,u),l.test(n)&&t.last().endsWith("<")&&t.print(" "),t.print(t.to_utf8(`/${n}/${i}`,!1,!0));const r=t.parent();r instanceof mu&&/^\w/.test(r.operator)&&r.left===e&&t.print(" ")})),d([Qa,cl,El],Bs),d([yu,al,Wl,ku,ac,tl,ql,nl,jl,Rl,Sl,ou,Eu,ul,Pu,Kl,Gl,kl,xl,Xl],(function(e){e.add_mapping(this.start)})),d([Cu,Tu,Au,Du,wu,Ou],(function(e){e.add_mapping(this.start,!1)})),d([Xu,rc],(function(e){const t=this.end&&this.end.type;"name"===t||"privatename"===t?e.add_mapping(this.end,this.name):e.add_mapping(this.end)})),d([bu],(function(e){e.add_mapping(this.start,this.key)}))}();const Lc=(e,t)=>null===e&&null===t||e.TYPE===t.TYPE&&e.shallow_cmp(t),Vc=()=>!0;Qa.prototype.shallow_cmp=function(){throw new Error("did not find a shallow_cmp function for "+this.constructor.name)},tl.prototype.shallow_cmp=Vc,nl.prototype.shallow_cmp=function(e){return this.value===e.value},il.prototype.shallow_cmp=Vc,sl.prototype.shallow_cmp=Vc,ll.prototype.shallow_cmp=Vc,cl.prototype.shallow_cmp=function(e){return this.label.name===e.label.name},dl.prototype.shallow_cmp=Vc,hl.prototype.shallow_cmp=Vc,ml.prototype.shallow_cmp=function(e){return(null==this.init?null==e.init:this.init===e.init)&&(null==this.condition?null==e.condition:this.condition===e.condition)&&(null==this.step?null==e.step:this.step===e.step)},_l.prototype.shallow_cmp=Vc,gl.prototype.shallow_cmp=Vc,vl.prototype.shallow_cmp=Vc,El.prototype.shallow_cmp=Vc,bl.prototype.shallow_cmp=Vc,Sl.prototype.shallow_cmp=function(e){return this.is_generator===e.is_generator&&this.async===e.async},wl.prototype.shallow_cmp=function(e){return this.is_array===e.is_array},Ol.prototype.shallow_cmp=Vc,kl.prototype.shallow_cmp=Vc,xl.prototype.shallow_cmp=function(e){return this.value===e.value},Rl.prototype.shallow_cmp=Vc,Nl.prototype.shallow_cmp=Vc,Ll.prototype.shallow_cmp=Vc,Vl.prototype.shallow_cmp=function(e){return this.is_star===e.is_star},Ul.prototype.shallow_cmp=function(e){return null==this.alternative?null==e.alternative:this.alternative===e.alternative},Kl.prototype.shallow_cmp=Vc,Gl.prototype.shallow_cmp=Vc,Xl.prototype.shallow_cmp=function(e){return this.body===e.body&&(null==this.bcatch?null==e.bcatch:this.bcatch===e.bcatch)&&(null==this.bfinally?null==e.bfinally:this.bfinally===e.bfinally)},Wl.prototype.shallow_cmp=function(e){return null==this.argname?null==e.argname:this.argname===e.argname},jl.prototype.shallow_cmp=Vc,ql.prototype.shallow_cmp=Vc,Ql.prototype.shallow_cmp=function(e){return null==this.value?null==e.value:this.value===e.value},eu.prototype.shallow_cmp=Vc,tu.prototype.shallow_cmp=function(e){return(null==this.imported_name?null==e.imported_name:this.imported_name===e.imported_name)&&(null==this.imported_names?null==e.imported_names:this.imported_names===e.imported_names)},nu.prototype.shallow_cmp=Vc,iu.prototype.shallow_cmp=function(e){return(null==this.exported_definition?null==e.exported_definition:this.exported_definition===e.exported_definition)&&(null==this.exported_value?null==e.exported_value:this.exported_value===e.exported_value)&&(null==this.exported_names?null==e.exported_names:this.exported_names===e.exported_names)&&this.module_name===e.module_name&&this.is_default===e.is_default},ru.prototype.shallow_cmp=Vc,su.prototype.shallow_cmp=Vc,au.prototype.shallow_cmp=Vc,fu.prototype.shallow_cmp=Vc,lu.prototype.shallow_cmp=function(e){return this.property===e.property},uu.prototype.shallow_cmp=function(e){return this.property===e.property},pu.prototype.shallow_cmp=function(e){return this.operator===e.operator},mu.prototype.shallow_cmp=function(e){return this.operator===e.operator},_u.prototype.shallow_cmp=Vc,yu.prototype.shallow_cmp=Vc,Eu.prototype.shallow_cmp=Vc,bu.prototype.shallow_cmp=Vc,Su.prototype.shallow_cmp=function(e){return this.key===e.key},Tu.prototype.shallow_cmp=function(e){return this.static===e.static},Cu.prototype.shallow_cmp=function(e){return this.static===e.static},wu.prototype.shallow_cmp=function(e){return this.static===e.static&&this.is_generator===e.is_generator&&this.async===e.async},ku.prototype.shallow_cmp=function(e){return(null==this.name?null==e.name:this.name===e.name)&&(null==this.extends?null==e.extends:this.extends===e.extends)},xu.prototype.shallow_cmp=function(e){return this.static===e.static},Pu.prototype.shallow_cmp=function(e){return this.name===e.name},Bu.prototype.shallow_cmp=Vc,oc.prototype.shallow_cmp=Vc,sc.prototype.shallow_cmp=Vc,lc.prototype.shallow_cmp=function(e){return this.value===e.value},uc.prototype.shallow_cmp=function(e){return this.value===e.value},cc.prototype.shallow_cmp=function(e){return this.value===e.value},fc.prototype.shallow_cmp=function(e){return this.value.flags===e.value.flags&&this.value.source===e.value.source},pc.prototype.shallow_cmp=Vc;let Uc=null,Kc=null,Gc=null;class Hc{constructor(e,t,n){this.name=t.name,this.orig=[t],this.init=n,this.eliminated=0,this.assignments=0,this.scope=e,this.replaced=0,this.global=!1,this.export=0,this.mangled_name=null,this.undeclared=!1,this.id=Hc.next_id++,this.chained=!1,this.direct_access=!1,this.escaped=0,this.recursive_refs=0,this.references=[],this.should_replace=void 0,this.single_use=!1,this.fixed=!1,Object.seal(this)}fixed_value(){return!this.fixed||this.fixed instanceof Qa?this.fixed:this.fixed()}unmangleable(e){return e||(e={}),!!(Uc&&Uc.has(this.id)&&Zs(e.keep_fnames,this.orig[0].name))||this.global&&!e.toplevel||1&this.export||this.undeclared||!e.eval&&this.scope.pinned()||(this.orig[0]instanceof Wu||this.orig[0]instanceof zu)&&Zs(e.keep_fnames,this.orig[0].name)||this.orig[0]instanceof Xu||(this.orig[0]instanceof qu||this.orig[0]instanceof ju)&&Zs(e.keep_classnames,this.orig[0].name)}mangle(e){const t=e.cache&&e.cache.props;if(this.global&&t&&t.has(this.name))this.mangled_name=t.get(this.name);else if(!this.mangled_name&&!this.unmangleable(e)){var n=this.scope,i=this.orig[0];e.ie8&&i instanceof Wu&&(n=n.parent_scope);const r=zc(this);this.mangled_name=r?r.mangled_name||r.name:n.next_mangled(e,this),this.global&&t&&t.set(this.name,this.mangled_name)}}}function zc(e){if(e.orig[0]instanceof Yu&&e.scope.is_block_scope())return e.scope.get_defun_scope().variables.get(e.name)}function Xc(e,t){let n;Gc&&(n=e.get_defun_scope())&&Gc.has(n)&&(e=n);var i=e.enclosed,r=t.nth_identifier;e:for(;;){var o=r.get(++e.cname);if(!ca.has(o)&&!(t.reserved.has(o)||Kc&&Kc.has(o))){for(let e=i.length;--e>=0;){const n=i[e];if(o==(n.mangled_name||n.unmangleable(t)&&n.name))continue e}return o}}}function $c(e){return(e=Ps(e,{eval:!1,nth_identifier:Wc,ie8:!1,keep_classnames:!1,keep_fnames:!1,module:!1,reserved:[],toplevel:!1})).module&&(e.toplevel=!0),Array.isArray(e.reserved)||e.reserved instanceof Set||(e.reserved=[]),e.reserved=new Set(e.reserved),e.reserved.add("arguments"),e}Hc.next_id=1,yl.DEFMETHOD("figure_out_scope",(function(e,{parent_scope:t=null,toplevel:n=this}={}){if(e=Ps(e,{cache:null,ie8:!1,safari10:!1,module:!1}),!(n instanceof El))throw new Error("Invalid toplevel scope");var i=this.parent_scope=t,r=new Map,o=null,s=null,a=[],l=new Ac(((t,n)=>{if(t.is_block_scope()){const r=i;if(t.block_scope=i=new yl(t),i._block_scope=!0,i.init_scope_vars(r),i.uses_with=r.uses_with,i.uses_eval=r.uses_eval,e.safari10&&(t instanceof ml||t instanceof _l||t instanceof gl)&&a.push(i),t instanceof Kl){const e=i;i=r,t.expression.walk(l),i=e;for(let e=0;ee===t||(t instanceof Uu?e instanceof Wu:!(e instanceof Gu||e instanceof Ku))))||La(`"${t.name}" is redeclared`,t.start.file,t.start.line,t.start.col,t.start.pos),t instanceof Hu||u(m,2),o!==i){t.mark_enclosed();var m=i.find_variable(t);t.thedef!==m&&(t.thedef=m,t.reference())}}else if(t instanceof ic){var _=r.get(t.name);if(!_)throw new Error(Xs("Undefined label {name} [{line},{col}]",{name:t.name,line:t.start.line,col:t.start.col}));t.thedef=_}i instanceof El||!(t instanceof iu||t instanceof tu)||La(`"${t.TYPE}" statement may only appear at the top level`,t.start.file,t.start.line,t.start.col,t.start.pos)}}));function u(e,t){if(s){var n=0;do{t++}while(l.parent(n++)!==s)}var i=l.parent(t);if(e.export=i instanceof iu?1:0){var r=i.exported_definition;(r instanceof Cl||r instanceof Mu)&&i.is_default&&(e.export=2)}}if(e.module&&(l.directives["use strict"]=!0),this.walk(l),this instanceof El&&(this.globals=new Map),l=new Ac((e=>{if(e instanceof Nl&&e.label)return e.label.thedef.references.push(e),!0;if(e instanceof ec){var t,i=e.name;if("eval"==i&&l.parent()instanceof ru)for(var r=e.scope;r&&!r.uses_eval;r=r.parent_scope)r.uses_eval=!0;return l.parent()instanceof eu&&l.parent(1).module_name||!(t=e.scope.find_variable(i))?(t=n.def_global(e),e instanceof tc&&(t.export=1)):t.scope instanceof Sl&&"arguments"==i&&(t.scope.get_defun_scope().uses_arguments=!0),e.thedef=t,e.reference(),!e.scope.is_block_scope()||t.orig[0]instanceof Uu||(e.scope=e.scope.get_defun_scope()),!0}var o;if(e instanceof Yu&&(o=zc(e.definition())))for(r=e.scope;r&&(zs(r.enclosed,o),r!==o.scope);)r=r.parent_scope})),this.walk(l),(e.ie8||e.safari10)&&bc(this,(e=>{if(e instanceof Yu){var t=e.name,i=e.thedef.references,r=e.scope.get_defun_scope(),o=r.find_variable(t)||n.globals.get(t)||r.def_variable(e);return i.forEach((function(e){e.thedef=o,e.reference()})),e.thedef=o,e.reference(),!0}})),e.safari10)for(const e of a)e.parent_scope.variables.forEach((function(t){zs(e.enclosed,t)}))})),El.DEFMETHOD("def_global",(function(e){var t=this.globals,n=e.name;if(t.has(n))return t.get(n);var i=new Hc(this,e);return i.undeclared=!0,i.global=!0,t.set(n,i),i})),yl.DEFMETHOD("init_scope_vars",(function(e){this.variables=new Map,this.uses_with=!1,this.uses_eval=!1,this.parent_scope=e,this.enclosed=[],this.cname=-1})),yl.DEFMETHOD("conflicting_def",(function(e){return this.enclosed.find((t=>t.name===e))||this.variables.has(e)||this.parent_scope&&this.parent_scope.conflicting_def(e)})),yl.DEFMETHOD("conflicting_def_shallow",(function(e){return this.enclosed.find((t=>t.name===e))||this.variables.has(e)})),yl.DEFMETHOD("add_child_scope",(function(e){if(e.parent_scope===this)return;e.parent_scope=this,e instanceof Tl&&!this.uses_arguments&&(this.uses_arguments=bc(e,(e=>e instanceof ec&&e.scope instanceof Sl&&"arguments"===e.name?Dc:e instanceof Sl&&!(e instanceof Tl)||void 0))),this.uses_with=this.uses_with||e.uses_with,this.uses_eval=this.uses_eval||e.uses_eval;const t=(()=>{const e=[];let t=this;do{e.push(t)}while(t=t.parent_scope);return e.reverse(),e})(),n=new Set(e.enclosed),i=[];for(const e of t){i.forEach((t=>zs(e.enclosed,t)));for(const t of e.variables.values())n.has(t)&&(zs(i,t),zs(e.enclosed,t))}})),yl.DEFMETHOD("create_symbol",(function(e,{source:t,tentative_name:n,scope:i,conflict_scopes:r=[i],init:o=null}={}){let s;if(r=function(e){const t=new Set;for(const n of new Set(e))!function e(n){null==n||t.has(n)||(t.add(n),e(n.parent_scope))}(n);return[...t]}(r),n){n=s=n.replace(/(?:^[^a-z_$]|[^a-z0-9_$])/gi,"_");let e=0;for(;r.find((e=>e.conflicting_def_shallow(s)));)s=n+"$"+e++}if(!s)throw new Error("No symbol name could be generated in create_symbol()");const a=Hs(e,t,{name:s,scope:i});return this.def_variable(a,o||null),a.mark_enclosed(),a})),Qa.DEFMETHOD("is_block_scope",Ls),ku.DEFMETHOD("is_block_scope",Ls),Sl.DEFMETHOD("is_block_scope",Ls),El.DEFMETHOD("is_block_scope",Ls),Gl.DEFMETHOD("is_block_scope",Ls),sl.DEFMETHOD("is_block_scope",Vs),yl.DEFMETHOD("is_block_scope",(function(){return this._block_scope||!1})),fl.DEFMETHOD("is_block_scope",Vs),Sl.DEFMETHOD("init_scope_vars",(function(){yl.prototype.init_scope_vars.apply(this,arguments),this.uses_arguments=!1,this.def_variable(new Hu({name:"arguments",start:this.start,end:this.end}))})),Tl.DEFMETHOD("init_scope_vars",(function(){yl.prototype.init_scope_vars.apply(this,arguments),this.uses_arguments=!1})),Pu.DEFMETHOD("mark_enclosed",(function(){for(var e=this.definition(),t=this.scope;t&&(zs(t.enclosed,e),t!==e.scope);)t=t.parent_scope})),Pu.DEFMETHOD("reference",(function(){this.definition().references.push(this),this.mark_enclosed()})),yl.DEFMETHOD("find_variable",(function(e){return e instanceof Pu&&(e=e.name),this.variables.get(e)||this.parent_scope&&this.parent_scope.find_variable(e)})),yl.DEFMETHOD("def_function",(function(e,t){var n=this.def_variable(e,t);return(!n.init||n.init instanceof Cl)&&(n.init=t),n})),yl.DEFMETHOD("def_variable",(function(e,t){var n=this.variables.get(e.name);return n?(n.orig.push(e),n.init&&(n.scope!==e.scope||n.init instanceof Al)&&(n.init=t)):(n=new Hc(this,e,t),this.variables.set(e.name,n),n.global=!this.parent_scope),e.thedef=n})),yl.DEFMETHOD("next_mangled",(function(e){return Xc(this,e)})),El.DEFMETHOD("next_mangled",(function(e){let t;const n=this.mangled_names;do{t=Xc(this,e)}while(n.has(t));return t})),Al.DEFMETHOD("next_mangled",(function(e,t){for(var n=t.orig[0]instanceof Hu&&this.name&&this.name.definition(),i=n?n.mangled_name||n.name:null;;){var r=Xc(this,e);if(!i||i!=r)return r}})),Pu.DEFMETHOD("unmangleable",(function(e){var t=this.definition();return!t||t.unmangleable(e)})),Qu.DEFMETHOD("unmangleable",Ls),Pu.DEFMETHOD("unreferenced",(function(){return!this.definition().references.length&&!this.scope.pinned()})),Pu.DEFMETHOD("definition",(function(){return this.thedef})),Pu.DEFMETHOD("global",(function(){return this.thedef.global})),El.DEFMETHOD("mangle_names",(function(e){var t=(e=$c(e)).nth_identifier,n=-1,i=[];e.keep_fnames&&(Uc=new Set);const r=this.mangled_names=new Set;Kc=new Set,e.cache&&(this.globals.forEach(s),e.cache.props&&e.cache.props.forEach((function(e){r.add(e)})));var o=new Ac((function(r,a){if(r instanceof cl){var l=n;return a(),n=l,!0}if(r instanceof Cl&&!(o.parent()instanceof yl)&&(Gc=Gc||new Set,Gc.add(r.parent_scope.get_defun_scope())),r instanceof yl)r.variables.forEach(s);else if(r.is_block_scope())r.block_scope.variables.forEach(s);else if(Uc&&r instanceof Ql&&r.value instanceof Sl&&!r.value.name&&Zs(e.keep_fnames,r.name.name))Uc.add(r.name.definition().id);else{if(r instanceof Qu){let e;do{e=t.get(++n)}while(ca.has(e));return r.mangled_name=e,!0}!e.ie8&&!e.safari10&&r instanceof Yu&&i.push(r.definition())}}));function s(t){1&t.export?Kc.add(t.name):e.reserved.has(t.name)||i.push(t)}this.walk(o),(e.keep_fnames||e.keep_classnames)&&i.forEach((t=>{t.name.length<6&&t.unmangleable(e)&&Kc.add(t.name)})),i.forEach((t=>{t.mangle(e)})),Uc=null,Kc=null,Gc=null})),El.DEFMETHOD("find_colliding_names",(function(e){const t=e.cache&&e.cache.props,n=new Set;return e.reserved.forEach(i),this.globals.forEach(r),this.walk(new Ac((function(e){e instanceof yl&&e.variables.forEach(r),e instanceof Yu&&r(e.definition())}))),n;function i(e){n.add(e)}function r(n){var r=n.name;if(n.global&&t&&t.has(r))r=t.get(r);else if(!n.unmangleable(e))return;i(r)}})),El.DEFMETHOD("expand_names",(function(e){var t=(e=$c(e)).nth_identifier;t.reset&&t.sort&&(t.reset(),t.sort());var n=this.find_colliding_names(e),i=0;function r(r){if(r.global&&e.cache)return;if(r.unmangleable(e))return;if(e.reserved.has(r.name))return;const o=zc(r),s=r.name=o?o.name:function(){var e;do{e=t.get(i++)}while(n.has(e)||ca.has(e));return e}();r.orig.forEach((function(e){e.name=s})),r.references.forEach((function(e){e.name=s}))}this.globals.forEach(r),this.walk(new Ac((function(e){e instanceof yl&&e.variables.forEach(r),e instanceof Yu&&r(e.definition())})))})),Qa.DEFMETHOD("tail_node",Us),su.DEFMETHOD("tail_node",(function(){return this.expressions[this.expressions.length-1]})),El.DEFMETHOD("compute_char_frequency",(function(e){var t=(e=$c(e)).nth_identifier;if(t.reset&&t.consider&&t.sort){t.reset();try{Qa.prototype.print=function(i,r){this._print(i,r),this instanceof Pu&&!this.unmangleable(e)?t.consider(this.name,-1):e.properties&&(this instanceof uu?t.consider("#"+this.property,-1):this instanceof lu?t.consider(this.property,-1):this instanceof cu&&n(this.property))},t.consider(this.print_to_string(),1)}finally{Qa.prototype.print=Qa.prototype._print}t.sort()}function n(e){e instanceof lc?t.consider(e.value,-1):e instanceof _u?(n(e.consequent),n(e.alternative)):e instanceof su&&n(e.tail_node())}}));const Wc=(()=>{const e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_".split(""),t="0123456789".split("");let n,i;function r(){i=new Map,e.forEach((function(e){i.set(e,0)})),t.forEach((function(e){i.set(e,0)}))}function o(e,t){return i.get(t)-i.get(e)}function s(){n=Ws(e,o).concat(Ws(t,o))}return r(),s(),{get:function(e){var t="",i=54;e++;do{e--,t+=n[e%i],e=Math.floor(e/i),i=64}while(e>0);return t},consider:function(e,t){for(var n=e.length;--n>=0;)i.set(e[n],i.get(e[n])+t)},reset:r,sort:s}})();let jc;Qa.prototype.size=function(e,t){jc=e&&e._mangle_options;let n=0;return Sc(this,((e,t)=>{if(n+=e._size(t),e instanceof Tl&&e.is_braceless())return n+=e.body[0].value._size(t),!0}),t||e&&e.stack),jc=void 0,n},Qa.prototype._size=()=>0,tl.prototype._size=()=>8,nl.prototype._size=function(){return 2+this.value.length};const qc=e=>e.length&&e.length-1;sl.prototype._size=function(){return 2+qc(this.body)},El.prototype._size=function(){return qc(this.body)},ll.prototype._size=()=>1,cl.prototype._size=()=>2,dl.prototype._size=()=>9,hl.prototype._size=()=>7,ml.prototype._size=()=>8,_l.prototype._size=()=>8,vl.prototype._size=()=>6,bl.prototype._size=()=>3;const Yc=e=>(e.is_generator?1:0)+(e.async?6:0);Dl.prototype._size=function(){return Yc(this)+4+qc(this.argnames)+qc(this.body)},Al.prototype._size=function(e){return 2*!!Fc(e)+Yc(this)+12+qc(this.argnames)+qc(this.body)},Cl.prototype._size=function(){return Yc(this)+13+qc(this.argnames)+qc(this.body)},Tl.prototype._size=function(){let e=2+qc(this.argnames);1===this.argnames.length&&this.argnames[0]instanceof Pu||(e+=2);const t=this.is_braceless()?0:qc(this.body)+2;return Yc(this)+e+t},wl.prototype._size=()=>2,kl.prototype._size=function(){return 2+3*Math.floor(this.segments.length/2)},xl.prototype._size=function(){return this.value.length},Ml.prototype._size=function(){return this.value?7:6},Il.prototype._size=()=>6,Pl.prototype._size=function(){return this.label?6:5},Bl.prototype._size=function(){return this.label?9:8},Ul.prototype._size=()=>4,Kl.prototype._size=function(){return 8+qc(this.body)},zl.prototype._size=function(){return 5+qc(this.body)},Hl.prototype._size=function(){return 8+qc(this.body)},Xl.prototype._size=()=>3,Wl.prototype._size=function(){let e=7+qc(this.body);return this.argname&&(e+=2),e},jl.prototype._size=function(){return 7+qc(this.body)},Yl.prototype._size=function(){return 4+qc(this.definitions)},Zl.prototype._size=function(){return 4+qc(this.definitions)},Jl.prototype._size=function(){return 6+qc(this.definitions)},Ql.prototype._size=function(){return this.value?1:0},eu.prototype._size=function(){return this.name?4:0},tu.prototype._size=function(){let e=6;return this.imported_name&&(e+=1),(this.imported_name||this.imported_names)&&(e+=5),this.imported_names&&(e+=2+qc(this.imported_names)),e},nu.prototype._size=()=>11,iu.prototype._size=function(){let e=7+(this.is_default?8:0);return this.exported_value&&(e+=this.exported_value._size()),this.exported_names&&(e+=2+qc(this.exported_names)),this.module_name&&(e+=5),e},ru.prototype._size=function(){return this.optional?4+qc(this.args):2+qc(this.args)},ou.prototype._size=function(){return 6+qc(this.args)},su.prototype._size=function(){return qc(this.expressions)},lu.prototype._size=function(){return this.optional?this.property.length+2:this.property.length+1},uu.prototype._size=function(){return this.optional?this.property.length+3:this.property.length+2},cu.prototype._size=function(){return this.optional?4:2},pu.prototype._size=function(){return"typeof"===this.operator?7:"void"===this.operator?5:this.operator.length},mu.prototype._size=function(e){if("in"===this.operator)return 4;let t=this.operator.length;return("+"===this.operator||"-"===this.operator)&&this.right instanceof pu&&this.right.operator===this.operator&&(t+=1),this.needs_parens(e)&&(t+=2),t},_u.prototype._size=()=>3,yu.prototype._size=function(){return 2+qc(this.elements)},Eu.prototype._size=function(e){let t=2;return Fc(e)&&(t+=2),t+qc(this.properties)};const Zc=e=>"string"==typeof e?e.length:0;Su.prototype._size=function(){return Zc(this.key)+1};const Jc=e=>e?7:0;Cu.prototype._size=function(){return 5+Jc(this.static)+Zc(this.key)},Tu.prototype._size=function(){return 5+Jc(this.static)+Zc(this.key)},wu.prototype._size=function(){return Jc(this.static)+Zc(this.key)+Yc(this)},Ou.prototype._size=function(){return wu.prototype._size.call(this)+1},Au.prototype._size=Du.prototype._size=function(){return wu.prototype._size.call(this)+4},Fu.prototype._size=function(){return 5},ku.prototype._size=function(){return(this.name?8:7)+(this.extends?8:0)},Iu.prototype._size=function(){return 7+qc(this.body)},xu.prototype._size=function(){return Jc(this.static)+("string"==typeof this.key?this.key.length+2:0)+(this.value?1:0)},Ru.prototype._size=function(){return xu.prototype._size.call(this)+1},Pu.prototype._size=function(){return jc&&this.thedef&&!this.thedef.unmangleable(jc)?1:this.name.length},$u.prototype._size=function(){return this.name.length},ec.prototype._size=Lu.prototype._size=function(){return"arguments"===this.name?9:Pu.prototype._size.call(this)},Bu.prototype._size=()=>10,Ju.prototype._size=function(){return this.name.length},nc.prototype._size=function(){return this.name.length},oc.prototype._size=()=>4,sc.prototype._size=()=>5,lc.prototype._size=function(){return this.value.length+2},uc.prototype._size=function(){const{value:e}=this;return 0===e?1:e>0&&Math.floor(e)===e?Math.floor(Math.log10(e)+1):e.toString().length},cc.prototype._size=function(){return this.value.length},fc.prototype._size=function(){return this.value.toString().length},dc.prototype._size=()=>4,hc.prototype._size=()=>3,mc.prototype._size=()=>6,_c.prototype._size=()=>0,gc.prototype._size=()=>8,Ec.prototype._size=()=>4,yc.prototype._size=()=>5,Ll.prototype._size=()=>6,Vl.prototype._size=()=>6;const Qc=8,ef=32,tf=256,nf=1024,rf=768|nf,of=(e,t)=>e.flags&t,sf=(e,t)=>{e.flags|=t},af=(e,t)=>{e.flags&=~t};function lf(e,t){return t instanceof su?e.push(...t.expressions):e.push(t),e}function uf(e,t){if(1==t.length)return t[0];if(0==t.length)throw new Error("trying to create a sequence with length zero!");return Hs(su,e,{expressions:t.reduce(lf,[])})}function cf(e,t){switch(typeof e){case"string":return Hs(lc,t,{value:e});case"number":return isNaN(e)?Hs(hc,t):isFinite(e)?1/e<0?Hs(du,t,{operator:"-",expression:Hs(uc,t,{value:-e})}):Hs(uc,t,{value:e}):e<0?Hs(du,t,{operator:"-",expression:Hs(gc,t)}):Hs(gc,t);case"boolean":return Hs(e?Ec:yc,t);case"undefined":return Hs(mc,t);default:if(null===e)return Hs(dc,t,{value:null});if(e instanceof RegExp)return Hs(fc,t,{value:{source:Qs(e.source),flags:e.flags}});throw new Error(Xs("Can't handle constant of type: {type}",{type:typeof e}))}}function ff(e,t){return e.size()>t.size()?t:e}function pf(e,t,n){return Fc(e)?function(e,t){return ff(Hs(il,e,{body:e}),Hs(il,t,{body:t})).body}(t,n):ff(t,n)}function df(e){return e instanceof ac?e.getValue():e instanceof du&&"void"==e.operator&&e.expression instanceof ac?void 0:e}function hf(e,t){if(!((t=df(t))instanceof Qa)){var n;if(e instanceof yu){var i=e.elements;if("length"==t)return cf(i.length,e);"number"==typeof t&&t in i&&(n=i[t])}else if(e instanceof Eu){t=""+t;for(var r=e.properties,o=r.length;--o>=0;){if(!(r[o]instanceof Su))return;n||r[o].key!==t||(n=r[o].value)}}return n instanceof ec&&n.fixed_value()||n}}function mf(e,t){var n=!1,i=new Ac((function(t){return!!(n||t instanceof yl)||(t instanceof Nl&&i.loopcontrol_target(t)===e?n=!0:void 0)}));return t instanceof cl&&i.push(t),i.push(e),e.body.walk(i),n}function _f(e,t,n){return e instanceof du&&"delete"==e.operator||e instanceof ru&&e.expression===t&&(n instanceof fu||n instanceof au||n instanceof ec&&"eval"==n.name)?uf(t,[Hs(uc,t,{value:0}),n]):n}function gf(e){return e instanceof Tl||e instanceof Al}function vf(e){return"Call"==e.TYPE&&(e.expression instanceof Al||vf(e.expression))}function yf(e){return null===e||e instanceof ll||e instanceof al&&0==e.body.length}const Ef=js("Infinity NaN undefined");function bf(e){return e instanceof gc||e instanceof hc||e instanceof mc}function Sf(e,t){if(!(e instanceof ec))return!1;for(var n=e.definition().orig,i=n.length;--i>=0;)if(n[i]instanceof t)return!0}function Df(e){return!(e instanceof Mu||e instanceof Cl||e instanceof Zl||e instanceof Jl||e instanceof iu||e instanceof tu)}function Af(e){if(null===e)return[];if(e instanceof al)return e.body;if(e instanceof ll)return[];if(e instanceof el)return[e];throw new Error("Can't convert thing to statement array")}function Tf(e,t){const n=e=>{if(e instanceof ec&&t.includes(e.definition()))return Dc};return Sc(e,((t,i)=>{if(t instanceof yl&&t!==e){var r=i.parent();if(r instanceof ru&&r.expression===t&&!t.async&&!t.is_generator)return;return!bc(t,n)||Dc}}))}function Cf(e,t){for(var n,i=0;n=e.parent(i);i++)if(n instanceof Sl||n instanceof ku){var r=n.name;if(r&&r.definition()===t)return!0}return!1}function wf(e,t){return t.top_retain&&e instanceof Cl&&of(e,nf)&&e.name&&t.top_retain(e.name.definition())}function Of(e){const t=new Map;for(var n of Object.keys(e))t.set(n,js(e[n]));return(e,n)=>{const i=t.get(e);return null!=i&&i.has(n)}}const kf=new Set(["Number","String","Array","Object","Function","Promise"]),xf=["constructor","toString","valueOf"],Rf=Of({Array:["at","flat","includes","indexOf","join","lastIndexOf","slice",...xf],Boolean:xf,Function:xf,Number:["toExponential","toFixed","toPrecision",...xf],Object:xf,RegExp:["test",...xf],String:["at","charAt","charCodeAt","charPointAt","concat","endsWith","fromCharCode","fromCodePoint","includes","indexOf","italics","lastIndexOf","localeCompare","match","matchAll","normalize","padStart","padEnd","repeat","replace","replaceAll","search","slice","split","startsWith","substr","substring","repeat","toLocaleLowerCase","toLocaleUpperCase","toLowerCase","toUpperCase","trim","trimEnd","trimStart",...xf]}),Ff=Of({Array:["isArray"],Math:["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan","atan2","pow","max","min"],Number:["isFinite","isNaN"],Object:["create","getOwnPropertyDescriptor","getOwnPropertyNames","getPrototypeOf","isExtensible","isFrozen","isSealed","hasOwn","keys"],String:["fromCharCode"]}),Mf=Of({Math:["E","LN10","LN2","LOG2E","LOG10E","PI","SQRT1_2","SQRT2"],Number:["MAX_VALUE","MIN_VALUE","NaN","NEGATIVE_INFINITY","POSITIVE_INFINITY"]}),If=e=>e instanceof ec&&e.definition().undeclared,Nf=js("&& || ??"),Pf=js("delete ++ --");var Bf;function Lf(e,t){return of(e,Qc)||e instanceof mc||e instanceof du&&"void"==e.operator&&!e.expression.has_side_effects(t)}function Vf(e,t){let n;return e instanceof dc||Lf(e,t)||e instanceof ec&&(n=e.definition().fixed)instanceof Qa&&Kf(n,t)}function Uf(e,t){return e instanceof au||e instanceof ru?e.optional&&Vf(e.expression,t)||Uf(e.expression,t):e instanceof fu&&Uf(e.expression,t)}function Kf(e,t){return!!Vf(e,t)||Uf(e,t)}function Gf(e,t){return t instanceof pu&&Pf.has(t.operator)?t.expression:t instanceof gu&&t.left===e||t instanceof _l&&t.init===e?e:void 0}!function(e){const t=js("! delete"),n=js("in instanceof == != === !== < <= >= >");e(Qa,Ls),e(du,(function(){return t.has(this.operator)})),e(mu,(function(){return n.has(this.operator)||Nf.has(this.operator)&&this.left.is_boolean()&&this.right.is_boolean()})),e(_u,(function(){return this.consequent.is_boolean()&&this.alternative.is_boolean()})),e(gu,(function(){return"="==this.operator&&this.right.is_boolean()})),e(su,(function(){return this.tail_node().is_boolean()})),e(Ec,Vs),e(yc,Vs)}((function(e,t){e.DEFMETHOD("is_boolean",t)})),function(e){e(Qa,Ls),e(uc,Vs);const t=js("+ - ~ ++ --");e(pu,(function(){return t.has(this.operator)&&!(this.expression instanceof cc)}));const n=js("- * / % & | ^ << >> >>>");e(mu,(function(e){return n.has(this.operator)||"+"==this.operator&&this.left.is_number(e)&&this.right.is_number(e)})),e(gu,(function(e){return n.has(this.operator.slice(0,-1))||"="==this.operator&&this.right.is_number(e)})),e(su,(function(e){return this.tail_node().is_number(e)})),e(_u,(function(e){return this.consequent.is_number(e)&&this.alternative.is_number(e)}))}((function(e,t){e.DEFMETHOD("is_number",t)})),(Bf=function(e,t){e.DEFMETHOD("is_string",t)})(Qa,Ls),Bf(lc,Vs),Bf(kl,Vs),Bf(du,(function(){return"typeof"==this.operator})),Bf(mu,(function(e){return"+"==this.operator&&(this.left.is_string(e)||this.right.is_string(e))})),Bf(gu,(function(e){return("="==this.operator||"+="==this.operator)&&this.right.is_string(e)})),Bf(su,(function(e){return this.tail_node().is_string(e)})),Bf(_u,(function(e){return this.consequent.is_string(e)&&this.alternative.is_string(e)})),function(e){function t(e,t){for(var n=e.length;--n>=0;)if(e[n].has_side_effects(t))return!0;return!1}e(Qa,Vs),e(ll,Ls),e(ac,Ls),e(oc,Ls),e(sl,(function(e){return t(this.body,e)})),e(ru,(function(e){return!(this.is_callee_pure(e)||this.expression.is_call_pure(e)&&!this.expression.has_side_effects(e))||t(this.args,e)})),e(Kl,(function(e){return this.expression.has_side_effects(e)||t(this.body,e)})),e(zl,(function(e){return this.expression.has_side_effects(e)||t(this.body,e)})),e(Xl,(function(e){return this.body.has_side_effects(e)||this.bcatch&&this.bcatch.has_side_effects(e)||this.bfinally&&this.bfinally.has_side_effects(e)})),e(Ul,(function(e){return this.condition.has_side_effects(e)||this.body&&this.body.has_side_effects(e)||this.alternative&&this.alternative.has_side_effects(e)})),e(nu,Ls),e(cl,(function(e){return this.body.has_side_effects(e)})),e(il,(function(e){return this.body.has_side_effects(e)})),e(Sl,Ls),e(ku,(function(e){return!(!this.extends||!this.extends.has_side_effects(e))||t(this.properties,e)})),e(Iu,(function(e){return t(this.body,e)})),e(mu,(function(e){return this.left.has_side_effects(e)||this.right.has_side_effects(e)})),e(gu,Vs),e(_u,(function(e){return this.condition.has_side_effects(e)||this.consequent.has_side_effects(e)||this.alternative.has_side_effects(e)})),e(pu,(function(e){return Pf.has(this.operator)||this.expression.has_side_effects(e)})),e(ec,(function(e){return!this.is_declared(e)&&!kf.has(this.name)})),e($u,Ls),e(Lu,Ls),e(Eu,(function(e){return t(this.properties,e)})),e(bu,(function(e){return this.computed_key()&&this.key.has_side_effects(e)||this.value&&this.value.has_side_effects(e)})),e(xu,(function(e){return this.computed_key()&&this.key.has_side_effects(e)||this.static&&this.value&&this.value.has_side_effects(e)})),e(wu,(function(e){return this.computed_key()&&this.key.has_side_effects(e)})),e(Cu,(function(e){return this.computed_key()&&this.key.has_side_effects(e)})),e(Tu,(function(e){return this.computed_key()&&this.key.has_side_effects(e)})),e(yu,(function(e){return t(this.elements,e)})),e(lu,(function(e){return Kf(this,e)?this.expression.has_side_effects(e):!(this.optional||!this.expression.may_throw_on_access(e))||this.expression.has_side_effects(e)})),e(cu,(function(e){if(Kf(this,e))return this.expression.has_side_effects(e);if(!this.optional&&this.expression.may_throw_on_access(e))return!0;var t=this.property.has_side_effects(e);return!(!t||!this.optional)||t||this.expression.has_side_effects(e)})),e(fu,(function(e){return this.expression.has_side_effects(e)})),e(su,(function(e){return t(this.expressions,e)})),e(ql,(function(e){return t(this.definitions,e)})),e(Ql,(function(){return this.value})),e(xl,Ls),e(kl,(function(e){return t(this.segments,e)}))}((function(e,t){e.DEFMETHOD("has_side_effects",t)})),function(e){function t(e,t){for(var n=e.length;--n>=0;)if(e[n].may_throw(t))return!0;return!1}e(Qa,Vs),e(ac,Ls),e(ll,Ls),e(Sl,Ls),e(Lu,Ls),e(oc,Ls),e(nu,Ls),e(ku,(function(e){return!(!this.extends||!this.extends.may_throw(e))||t(this.properties,e)})),e(Iu,(function(e){return t(this.body,e)})),e(yu,(function(e){return t(this.elements,e)})),e(gu,(function(e){return!!this.right.may_throw(e)||!(!e.has_directive("use strict")&&"="==this.operator&&this.left instanceof ec)&&this.left.may_throw(e)})),e(mu,(function(e){return this.left.may_throw(e)||this.right.may_throw(e)})),e(sl,(function(e){return t(this.body,e)})),e(ru,(function(e){return!Kf(this,e)&&(!!t(this.args,e)||!this.is_callee_pure(e)&&(!!this.expression.may_throw(e)||!(this.expression instanceof Sl)||t(this.expression.body,e)))})),e(zl,(function(e){return this.expression.may_throw(e)||t(this.body,e)})),e(_u,(function(e){return this.condition.may_throw(e)||this.consequent.may_throw(e)||this.alternative.may_throw(e)})),e(ql,(function(e){return t(this.definitions,e)})),e(Ul,(function(e){return this.condition.may_throw(e)||this.body&&this.body.may_throw(e)||this.alternative&&this.alternative.may_throw(e)})),e(cl,(function(e){return this.body.may_throw(e)})),e(Eu,(function(e){return t(this.properties,e)})),e(bu,(function(e){return!!this.value&&this.value.may_throw(e)})),e(xu,(function(e){return this.computed_key()&&this.key.may_throw(e)||this.static&&this.value&&this.value.may_throw(e)})),e(wu,(function(e){return this.computed_key()&&this.key.may_throw(e)})),e(Cu,(function(e){return this.computed_key()&&this.key.may_throw(e)})),e(Tu,(function(e){return this.computed_key()&&this.key.may_throw(e)})),e(Ml,(function(e){return this.value&&this.value.may_throw(e)})),e(su,(function(e){return t(this.expressions,e)})),e(il,(function(e){return this.body.may_throw(e)})),e(lu,(function(e){return!Kf(this,e)&&(!this.optional&&this.expression.may_throw_on_access(e)||this.expression.may_throw(e))})),e(cu,(function(e){return!Kf(this,e)&&(!this.optional&&this.expression.may_throw_on_access(e)||this.expression.may_throw(e)||this.property.may_throw(e))})),e(fu,(function(e){return this.expression.may_throw(e)})),e(Kl,(function(e){return this.expression.may_throw(e)||t(this.body,e)})),e(ec,(function(e){return!this.is_declared(e)&&!kf.has(this.name)})),e($u,Ls),e(Xl,(function(e){return this.bcatch?this.bcatch.may_throw(e):this.body.may_throw(e)||this.bfinally&&this.bfinally.may_throw(e)})),e(pu,(function(e){return!("typeof"==this.operator&&this.expression instanceof ec)&&this.expression.may_throw(e)})),e(Ql,(function(e){return!!this.value&&this.value.may_throw(e)}))}((function(e,t){e.DEFMETHOD("may_throw",t)})),function(e){function t(e){let t=!0;return bc(this,(n=>{if(n instanceof ec){if(of(this,16))return t=!1,Dc;var i=n.definition();if(Is(i,this.enclosed)&&!this.variables.has(i.name)){if(e){var r=e.find_variable(n);if(i.undeclared?!r:r===i)return t="f",!0}return t=!1,Dc}return!0}if(n instanceof oc&&this instanceof Tl)return t=!1,Dc})),t}e(Qa,Ls),e(ac,Vs),e(ku,(function(e){if(this.extends&&!this.extends.is_constant_expression(e))return!1;for(const t of this.properties){if(t.computed_key()&&!t.key.is_constant_expression(e))return!1;if(t.static&&t.value&&!t.value.is_constant_expression(e))return!1;if(t instanceof Iu)return!1}return t.call(this,e)})),e(Sl,t),e(pu,(function(){return this.expression.is_constant_expression()})),e(mu,(function(){return this.left.is_constant_expression()&&this.right.is_constant_expression()})),e(yu,(function(){return this.elements.every((e=>e.is_constant_expression()))})),e(Eu,(function(){return this.properties.every((e=>e.is_constant_expression()))})),e(bu,(function(){return!(this.key instanceof Qa||!this.value||!this.value.is_constant_expression())}))}((function(e,t){e.DEFMETHOD("is_constant_expression",t)})),function(e){function t(e){return/strict/.test(e.option("pure_getters"))}Qa.DEFMETHOD("may_throw_on_access",(function(e){return!e.option("pure_getters")||this._dot_throw(e)})),e(Qa,t),e(dc,Vs),e(mc,Vs),e(ac,Ls),e(yu,Ls),e(Eu,(function(e){if(!t(e))return!1;for(var n=this.properties.length;--n>=0;)if(this.properties[n]._dot_throw(e))return!0;return!1})),e(ku,Ls),e(bu,Ls),e(Cu,Vs),e(bl,(function(e){return this.expression._dot_throw(e)})),e(Al,Ls),e(Tl,Ls),e(hu,Ls),e(du,(function(){return"void"==this.operator})),e(mu,(function(e){return("&&"==this.operator||"||"==this.operator||"??"==this.operator)&&(this.left._dot_throw(e)||this.right._dot_throw(e))})),e(gu,(function(e){return!!this.logical||"="==this.operator&&this.right._dot_throw(e)})),e(_u,(function(e){return this.consequent._dot_throw(e)||this.alternative._dot_throw(e)})),e(lu,(function(e){return!(!t(e)||"prototype"==this.property&&(this.expression instanceof Al||this.expression instanceof ku))})),e(fu,(function(e){return this.expression._dot_throw(e)})),e(su,(function(e){return this.tail_node()._dot_throw(e)})),e(ec,(function(e){if("arguments"===this.name&&this.scope instanceof Sl)return!1;if(of(this,Qc))return!0;if(!t(e))return!1;if(If(this)&&this.is_declared(e))return!1;if(this.is_immutable())return!1;var n=this.fixed_value();return!n||n._dot_throw(e)}))}((function(e,t){e.DEFMETHOD("_dot_throw",t)})),function(e){function t(e){return Hs(du,e,{operator:"!",expression:e})}function n(e,n,i){var r=t(e);if(i){var o=Hs(il,n,{body:n});return ff(r,o)===o?n:r}return ff(r,n)}e(Qa,(function(){return t(this)})),e(el,(function(){throw new Error("Cannot negate a statement")})),e(Al,(function(){return t(this)})),e(ku,(function(){return t(this)})),e(Tl,(function(){return t(this)})),e(du,(function(){return"!"==this.operator?this.expression:t(this)})),e(su,(function(e){var t=this.expressions.slice();return t.push(t.pop().negate(e)),uf(this,t)})),e(_u,(function(e,t){var i=this.clone();return i.consequent=i.consequent.negate(e),i.alternative=i.alternative.negate(e),n(this,i,t)})),e(mu,(function(e,i){var r=this.clone(),o=this.operator;if(e.option("unsafe_comps"))switch(o){case"<=":return r.operator=">",r;case"<":return r.operator=">=",r;case">=":return r.operator="<",r;case">":return r.operator="<=",r}switch(o){case"==":return r.operator="!=",r;case"!=":return r.operator="==",r;case"===":return r.operator="!==",r;case"!==":return r.operator="===",r;case"&&":return r.operator="||",r.left=r.left.negate(e,i),r.right=r.right.negate(e),n(this,r,i);case"||":return r.operator="&&",r.left=r.left.negate(e,i),r.right=r.right.negate(e),n(this,r,i)}return t(this)}))}((function(e,t){e.DEFMETHOD("negate",(function(e,n){return t.call(this,e,n)}))}));var Hf=js("Boolean decodeURI decodeURIComponent Date encodeURI encodeURIComponent Error escape EvalError isFinite isNaN Number Object parseFloat parseInt RangeError ReferenceError String SyntaxError TypeError unescape URIError");ru.DEFMETHOD("is_callee_pure",(function(e){if(e.option("unsafe")){var t=this.expression,n=this.args&&this.args[0]&&this.args[0].evaluate(e);if(t.expression&&"hasOwnProperty"===t.expression.name&&(null==n||n.thedef&&n.thedef.undeclared))return!1;if(If(t)&&Hf.has(t.name))return!0;if(t instanceof lu&&If(t.expression)&&Ff(t.expression.name,t.property))return!0}return!!(this instanceof ou&&e.option("pure_new"))||!(!e.option("side_effects")||!na(this,Cc))||!e.pure_funcs(this)})),Qa.DEFMETHOD("is_call_pure",Ls),lu.DEFMETHOD("is_call_pure",(function(e){if(!e.option("unsafe"))return;const t=this.expression;let n;return t instanceof yu?n="Array":t.is_boolean()?n="Boolean":t.is_number(e)?n="Number":t instanceof fc?n="RegExp":t.is_string(e)?n="String":this.may_throw_on_access(e)||(n="Object"),null!=n&&Rf(n,this.property)}));const zf=e=>e&&e.aborts();function Xf(e,t,n,i,r,o){var s=t.parent(r),a=Gf(n,s);if(a)return a;if(!o&&s instanceof ru&&s.expression===n&&!(i instanceof Tl)&&!(i instanceof ku)&&!s.is_callee_pure(e)&&(!(i instanceof Al)||!(s instanceof ou)&&i.contains_this()))return!0;if(s instanceof yu)return Xf(e,t,s,s,r+1);if(s instanceof Su&&n===s.value){var l=t.parent(r+1);return Xf(e,t,l,l,r+2)}if(s instanceof au&&s.expression===n){var u=hf(i,s.property);return!o&&Xf(e,t,s,u,r+1)}}function $f(e,t){e.DEFMETHOD("_eval",t)}!function(e){function t(){for(var e=0;ee instanceof oc?Dc:e!==this&&e instanceof yl&&!(e instanceof Tl)||void 0))}));const Wf=Symbol("This AST_Chain is nullish");Qa.DEFMETHOD("evaluate",(function(e){if(!e.option("evaluate"))return this;var t=this._eval(e,1);if(!t||t instanceof RegExp)return t;if("function"==typeof t||"object"==typeof t||t==Wf)return this;if("string"==typeof t){const n=this.size(e);if(t.length+2>n)return this}return t}));var jf=js("! ~ - + void");Qa.DEFMETHOD("is_constant",(function(){return this instanceof ac?!(this instanceof fc):this instanceof du&&this.expression instanceof ac&&jf.has(this.operator)})),$f(el,(function(){throw new Error(Xs("Cannot evaluate a statement [{file}:{line},{col}]",this.start))})),$f(Sl,Us),$f(ku,Us),$f(Qa,Us),$f(ac,(function(){return this.getValue()})),$f(cc,Us),$f(fc,(function(e){let t=e.evaluated_regexps.get(this.value);if(void 0===t&&ta(this.value.source)){try{const{source:e,flags:n}=this.value;t=new RegExp(e,n)}catch(e){t=null}e.evaluated_regexps.set(this.value,t)}return t||this})),$f(kl,(function(){return 1!==this.segments.length?this:this.segments[0].value})),$f(Al,(function(e){if(e.option("unsafe")){var t=function(){};return t.node=this,t.toString=()=>this.print_to_string(),t}return this})),$f(yu,(function(e,t){if(e.option("unsafe")){for(var n=[],i=0,r=this.elements.length;i"object"==typeof e||"function"==typeof e||"symbol"==typeof e;$f(mu,(function(e,t){Yf.has(this.operator)||t++;var n=this.left._eval(e,t);if(n===this.left)return this;var i,r=this.right._eval(e,t);if(r===this.right)return this;if(null!=n&&null!=r&&Zf.has(this.operator)&&Jf(n)&&Jf(r)&&typeof n==typeof r)return this;switch(this.operator){case"&&":i=n&&r;break;case"||":i=n||r;break;case"??":i=null!=n?n:r;break;case"|":i=n|r;break;case"&":i=n&r;break;case"^":i=n^r;break;case"+":i=n+r;break;case"*":i=n*r;break;case"**":i=Math.pow(n,r);break;case"/":i=n/r;break;case"%":i=n%r;break;case"-":i=n-r;break;case"<<":i=n<>":i=n>>r;break;case">>>":i=n>>>r;break;case"==":i=n==r;break;case"===":i=n===r;break;case"!=":i=n!=r;break;case"!==":i=n!==r;break;case"<":i=n":i=n>r;break;case">=":i=n>=r;break;default:return this}return isNaN(i)&&e.find_parent(vl)?this:i})),$f(_u,(function(e,t){var n=this.condition._eval(e,t);if(n===this.condition)return this;var i=n?this.consequent:this.alternative,r=i._eval(e,t);return r===i?this:r}));const Qf=new Set;$f(ec,(function(e,t){if(Qf.has(this))return this;var n=this.fixed_value();if(!n)return this;Qf.add(this);const i=n._eval(e,t);if(Qf.delete(this),i===n)return this;if(i&&"object"==typeof i){var r=this.definition().escaped;if(r&&t>r)return this}return i}));const ep={Array,Math,Number,Object,String},tp=new Set(["dotAll","global","ignoreCase","multiline","sticky","unicode"]);function np(e,t){e.DEFMETHOD("drop_side_effect_free",t)}function ip(e,t,n){var i=e.length;if(!i)return null;for(var r=[],o=!1,s=0;s!(e instanceof bl)))&&n.elements.every((t=>!t.has_side_effects(e))))return n.elements.length}if(e.option("unsafe")){var i=this.property;if(i instanceof Qa&&(i=i._eval(e,t))===this.property)return this;var r=this.expression;if(If(r)){var o,s="hasOwnProperty"===r.name&&"call"===i&&(o=e.parent()&&e.parent().args)&&o&&o[0]&&o[0].evaluate(e);if(null==(s=s instanceof lu?s.expression:s)||s.thedef&&s.thedef.undeclared)return this.clone();if(!Mf(r.name,i))return this;n=ep[r.name]}else{if(n instanceof RegExp){if("source"==i)return Qs(n.source);if("flags"==i||tp.has(i))return n[i]}if(!n||n===r||!Ys(n,i))return this;if("function"==typeof n)switch(i){case"name":return n.node.name?n.node.name.name:"";case"length":return n.node.length_property();default:return this}}return n[i]}return this})),$f(fu,(function(e,t){const n=this.expression._eval(e,t);return n===Wf?void 0:n===this.expression?this:n})),$f(ru,(function(e,t){var n=this.expression;const i=n._eval(e,t);if(i===Wf||this.optional&&null==i)return Wf;if(e.option("unsafe")&&n instanceof au){var r,o=n.property;if(o instanceof Qa&&(o=o._eval(e,t))===n.property)return this;var s=n.expression;if(If(s)){var a="hasOwnProperty"===s.name&&"call"===o&&this.args[0]&&this.args[0].evaluate(e);if(null==(a=a instanceof lu?a.expression:a)||a.thedef&&a.thedef.undeclared)return this.clone();if(!Ff(s.name,o))return this;r=ep[s.name]}else{if((r=s._eval(e,t+1))===s||!r)return this;if(!Rf(r.constructor.name,o))return this}for(var l=[],u=0,c=this.args.length;u{sp(e,t)}))}function up(e){e.safe_ids=Object.create(e.safe_ids)}function cp(e){e.safe_ids=Object.getPrototypeOf(e.safe_ids)}function fp(e,t,n){e.safe_ids[t.id]=n}function pp(e,t){if("m"==t.single_use)return!1;if(e.safe_ids[t.id]){if(null==t.fixed){var n=t.orig[0];if(n instanceof Hu||"arguments"==n.name)return!1;t.fixed=Hs(mc,n)}return!0}return t.fixed instanceof Cl}function dp(e,t,n,i){if(void 0===t.fixed)return!0;let r;return null===t.fixed&&(r=e.defs_to_safe_ids.get(t.id))?(r[t.id]=!1,e.defs_to_safe_ids.delete(t.id),!0):!!Ys(e.safe_ids,t.id)&&!!pp(e,t)&&!1!==t.fixed&&!(null!=t.fixed&&(!i||t.references.length>t.assignments))&&(t.fixed instanceof Cl?i instanceof Qa&&t.fixed.parent_scope===n:t.orig.every((e=>!(e instanceof Ku||e instanceof zu||e instanceof Wu))))}function hp(e,t,n,i,r,o=0,s=1){var a=e.parent(o);if(r){if(r.is_constant())return;if(r instanceof Nu)return}if(a instanceof gu&&("="===a.operator||a.logical)&&i===a.right||a instanceof ru&&(i!==a.expression||a instanceof ou)||a instanceof Fl&&i===a.value&&i.scope!==t.scope||a instanceof Ql&&i===a.value||a instanceof Vl&&i===a.value&&i.scope!==t.scope)return!(s>1)||r&&r.is_constant_expression(n)||(s=1),void((!t.escaped||t.escaped>s)&&(t.escaped=s));if(a instanceof yu||a instanceof Ll||a instanceof mu&&Nf.has(a.operator)||a instanceof _u&&i!==a.condition||a instanceof bl||a instanceof su&&i===a.tail_node())hp(e,t,n,a,a,o+1,s);else if(a instanceof Su&&i===a.value){var l=e.parent(o+1);hp(e,t,n,l,l,o+2,s)}else if(a instanceof au&&i===a.expression&&(hp(e,t,n,a,r=hf(r,a.property),o+1,s+1),r))return;o>0||a instanceof su&&i!==a.tail_node()||a instanceof il||(t.direct_access=!0)}yl.DEFMETHOD("drop_unused",(function(e){if(!e.option("unused"))return;if(e.has_directive("use asm"))return;if(!this.variables)return;var t=this;if(t.pinned())return;var n=!(t instanceof El)||e.toplevel.funcs,i=!(t instanceof El)||e.toplevel.vars;const r=rp.test(e.option("unused"))?Ls:function(e){return e instanceof gu&&!e.logical&&(of(e,ef)||"="==e.operator)?e.left:e instanceof pu&&of(e,ef)?e.expression:void 0};var o=new Map,s=new Map;t instanceof El&&e.top_retain&&t.variables.forEach((function(t){e.top_retain(t)&&o.set(t.id,t)}));var a=new Map,l=new Map,u=this,c=new Ac((function(r,f){if(r instanceof Sl&&r.uses_arguments&&!c.has_directive("use strict")&&r.argnames.forEach((function(e){if(e instanceof Lu){var t=e.definition();o.set(t.id,t)}})),r===t)return;if(r instanceof ku&&r.has_side_effects(e)&&r.visit_nondeferred_class_parts(c),r instanceof Cl||r instanceof Mu){var d=r.name.definition();return(c.parent()instanceof iu||!n&&u===t)&&d.global&&o.set(d.id,d),qs(l,d.id,r),!0}const h=u===t;if(r instanceof Hu&&h&&qs(a,r.definition().id,r),r instanceof ql&&h){const t=c.parent()instanceof iu;return r.definitions.forEach((function(n){if(n.name instanceof Vu&&qs(a,n.name.definition().id,n),!t&&i||bc(n.name,(e=>{if(e instanceof Lu){const t=e.definition();t.global&&o.set(t.id,t)}})),n.name instanceof wl&&n.walk(c),n.name instanceof Lu&&n.value){var r=n.name.definition();qs(l,r.id,n.value),r.chained||n.name.fixed_value()!==n.value||s.set(r.id,n),n.value.has_side_effects(e)&&n.value.walk(c)}})),!0}return p(r,f)}));t.walk(c),c=new Ac(p),o.forEach((function(e){var t=l.get(e.id);t&&t.forEach((function(e){e.walk(c)}))}));var f=new Tc((function(l,c,p){var d=f.parent();if(i){const e=r(l);if(e instanceof ec){var h=e.definition(),m=o.has(h.id);if(l instanceof gu){if(!m||s.has(h.id)&&s.get(h.id)!==l)return _f(d,l,l.right.transform(f))}else if(!m)return p?Gs.skip:Hs(uc,l,{value:0})}}if(u===t){if(l.name&&(l instanceof Nu&&!Zs(e.option("keep_classnames"),(h=l.name.definition()).name)||l instanceof Al&&!Zs(e.option("keep_fnames"),(h=l.name.definition()).name))&&(!o.has(h.id)||h.orig.length>1)&&(l.name=null),l instanceof Sl&&!(l instanceof Dl))for(var _=!e.option("keep_fargs"),g=l.argnames,v=g.length;--v>=0;){var y=g[v];y instanceof bl&&(y=y.expression),y instanceof vu&&(y=y.left),y instanceof wl||o.has(y.definition().id)?_=!1:(sf(y,1),_&&g.pop())}if(l instanceof Mu&&l!==t){const t=l.name.definition();if(c(l,this),!(t.global&&!n||o.has(t.id))){const n=l.drop_side_effect_free(e);return null==n?(t.eliminated++,p?Gs.skip:Hs(ll,l)):n}return l}if(l instanceof Cl&&l!==t){const e=l.name.definition();if(!(e.global&&!n||o.has(e.id)))return e.eliminated++,p?Gs.skip:Hs(ll,l)}if(l instanceof ql&&!(d instanceof _l&&d.init===l)){var E=!(d instanceof El||l instanceof Yl),b=[],S=[],D=[],A=[];switch(l.definitions.forEach((function(t){t.value&&(t.value=t.value.transform(f));var n=t.name instanceof wl,r=n?new Hc(null,{name:""}):t.name.definition();if(E&&r.global)return D.push(t);if(!i&&!E||n&&(t.name.names.length||t.name.is_array||1!=e.option("pure_getters"))||o.has(r.id)){if(t.value&&s.has(r.id)&&s.get(r.id)!==t&&(t.value=t.value.drop_side_effect_free(e)),t.name instanceof Vu){var u=a.get(r.id);if(u.length>1&&(!t.value||r.orig.indexOf(t.name)>r.eliminated)){if(t.value){var c=Hs(ec,t.name,t.name);r.references.push(c);var p=Hs(gu,t,{operator:"=",logical:!1,left:c,right:t.value});s.get(r.id)===t&&s.set(r.id,p),A.push(p.transform(f))}return $s(u,t),void r.eliminated++}}t.value?(A.length>0&&(D.length>0?(A.push(t.value),t.value=uf(t.value,A)):b.push(Hs(il,l,{body:uf(l,A)})),A=[]),D.push(t)):S.push(t)}else if(r.orig[0]instanceof Yu)(d=t.value&&t.value.drop_side_effect_free(e))&&A.push(d),t.value=null,S.push(t);else{var d;(d=t.value&&t.value.drop_side_effect_free(e))&&A.push(d),r.eliminated++}})),(S.length>0||D.length>0)&&(l.definitions=S.concat(D),b.push(l)),A.length>0&&b.push(Hs(il,l,{body:uf(l,A)})),b.length){case 0:return p?Gs.skip:Hs(ll,l);case 1:return b[0];default:return p?Gs.splice(b):Hs(al,l,{body:b})}}if(l instanceof ml)return c(l,this),l.init instanceof al&&(T=l.init,l.init=T.body.pop(),T.body.push(l)),l.init instanceof il?l.init=l.init.body:yf(l.init)&&(l.init=null),T?p?Gs.splice(T.body):T:l;if(l instanceof cl&&l.body instanceof ml){if(c(l,this),l.body instanceof al){var T=l.body;return l.body=T.body.pop(),T.body.push(l),p?Gs.splice(T.body):T}return l}if(l instanceof al)return c(l,this),p&&l.body.every(Df)?Gs.splice(l.body):l;if(l instanceof yl&&!(l instanceof Iu)){const e=u;return u=l,c(l,this),u=e,l}}}));function p(e,n){var i;const a=r(e);if(a instanceof ec&&!Sf(e.left,Uu)&&t.variables.get(a.name)===(i=a.definition()))return e instanceof gu&&(e.right.walk(c),i.chained||e.left.fixed_value()!==e.right||s.set(i.id,e)),!0;if(e instanceof ec){if(i=e.definition(),!o.has(i.id)&&(o.set(i.id,i),i.orig[0]instanceof Yu)){const e=i.scope.is_block_scope()&&i.scope.get_defun_scope().variables.get(i.name);e&&o.set(e.id,e)}return!0}if(e instanceof ku)return n(),!0;if(e instanceof yl&&!(e instanceof Iu)){var l=u;return u=e,n(),u=l,!0}}t.transform(f)})),op(Qa,Bs);const mp=e=>bc(e,(e=>{if(e instanceof Pu){var t=e.definition();t&&(e instanceof ec&&t.references.push(e),t.fixed=!1)}}));function _p(e){const t=[];bc(e,(n=>{if(n!==e)return n instanceof Cl&&t.push(n),n instanceof yl||n instanceof il||void 0}));const n=new Set,i=new Set,r=[];for(const o of t){const s=o.name.definition(),a=t.some((e=>e!==o&&-1!==e.enclosed.indexOf(s)));for(const t of o.enclosed)!1!==t.fixed&&t!==s&&t.scope.get_defun_scope()===e&&(0===t.assignments&&1===t.orig.length&&t.orig[0]instanceof zu||(a?t.fixed=!1:(r.push({defun:o,def:t,fname_def:s}),n.add(t.id),n.add(s.id),i.add(o))))}if(r.length){const t=[],o=new Set,s=new Map;let a;e.walk(a=new Ac(((e,r)=>{if(e instanceof Cl&&i.has(e)){const n=t.length;r();const i=t.length;return s.set(e,{start:n,end:i}),!0}if(e instanceof Pu&&e.thedef){const i=e.definition().id;n.has(i)&&((e instanceof Lu||Gf(e,a))&&o.add(t.length),t.push(i))}})));for(const{def:e,defun:n,fname_def:i}of r){const r=s.get(n),a=(e,n=0,i=!1)=>{let s=n;for(;s=t.indexOf(e,s),-1!==s;)if(s>=r.start&&sl&&(e.fixed=!1)}}}function gp(e){return e instanceof fl&&e.body instanceof al?e.body:e}function vp(e){if(e instanceof oc)return!0;if(e instanceof ec)return e.definition().orig[0]instanceof Wu;if(e instanceof au){if((e=e.expression)instanceof ec){if(e.is_immutable())return!1;e=e.fixed_value()}return!e||!(e instanceof fc)&&(e instanceof ac||vp(e))}return!1}function yp(e,t,n){bc(t,(i=>{if(i instanceof Yl){const e=(o=[],(r=i).definitions.forEach((function(e){e.name instanceof Lu?(e.value=null,o.push(e)):e.declarations_as_names().forEach((t=>{o.push(Hs(Ql,e,{name:t,value:null}))}))})),o.length?Hs(Yl,r,{definitions:o}):null);return e&&n.push(e),!0}var r,o;return i instanceof Cl&&(i===t||!e.has_directive("use strict"))?(n.push(i===t?i:Hs(Yl,i,{definitions:[Hs(Ql,i,{name:Hs(Vu,i.name,i.name),value:null})]})),!0):i instanceof iu||i instanceof tu?(n.push(i),!0):i instanceof yl||void 0}))}function Ep(e,t){const n=t.find_scope(),i=n.get_defun_scope(),{in_loop:r,in_try:o}=function(){var e=t.self(),n=0,i=!1,r=!1;do{if(e instanceof fl)i=!0;else{if(e instanceof yl)break;e instanceof $l&&(r=!0)}}while(e=t.parent(n++));return{in_loop:i,in_try:r}}();var s,a=10;do{s=!1,u(e),t.option("dead_code")&&f(e,t),t.option("if_return")&&c(e,t),t.sequences_limit>0&&(d(e,t),m(e,t)),t.option("join_vars")&&g(e),t.option("collapse_vars")&&l(e,t)}while(s&&a-- >0);function l(e,t){if(n.pinned()||i.pinned())return e;for(var a,l=[],u=e.length,c=new Tc((function(e){if(C)return e;if(!T)return e!==p[d]?e:++d=0;){0==u&&t.option("unused")&&I();var p=[];for(N(e[u]);l.length>0;){p=l.pop();var d=0,h=p[p.length-1],m=null,_=null,g=null,v=B(h);if(v&&!vp(v)&&!v.has_side_effects(t)){var y=V(h),E=K(v);v instanceof ec&&y.set(v.name,{def:v.definition(),modified:!1});var b=(R=h)instanceof pu?Pf.has(R.operator):L(R).has_side_effects(t),S=G(),D=h.may_throw(t),A=h.name instanceof Hu,T=A,C=!1,w=0,O=!a||!T;if(!O){for(let e=t.self().argnames.lastIndexOf(h.name)+1;!C&&ew)w=!1;else{for(C=!1,d=0,T=A,k=u;!C&&k!(e instanceof bl)))){var i=t.has_directive("use strict");i&&!Is(i,n.body)&&(i=!1);var r=n.argnames.length;a=e.args.slice(r);for(var o=new Set,s=r;--s>=0;){var u=n.argnames[s],c=e.args[s];const r=u.definition&&u.definition();if(!(r&&r.orig.length>1||(a.unshift(Hs(Ql,u,{name:u,value:c})),o.has(u.name))))if(o.add(u.name),u instanceof bl){var f=e.args.slice(s);f.every((e=>!M(n,e,i)))&&l.unshift([Hs(Ql,u,{name:u.expression,value:Hs(yu,e,{elements:f})})])}else c?(c instanceof Sl&&c.pinned()||M(n,c,i))&&(c=null):c=Hs(mc,u).transform(t),c&&l.unshift([Hs(Ql,u,{name:u,value:c})])}}}function N(e){if(p.push(e),e instanceof gu)e.left.has_side_effects(t)||e.right instanceof fu||l.push(p.slice()),N(e.right);else if(e instanceof mu)N(e.left),N(e.right);else if(e instanceof ru&&!na(e,Oc))N(e.expression),e.args.forEach(N);else if(e instanceof zl)N(e.expression);else if(e instanceof _u)N(e.condition),N(e.consequent),N(e.alternative);else if(e instanceof ql){var n=e.definitions.length,i=n-200;for(i<0&&(i=0);i1&&!(e.name instanceof Hu)||(i>1?function(e){var t=e.value;if(t instanceof ec&&"arguments"!=t.name){var n=t.definition();if(!n.undeclared)return m=n}}(e):!t.exposed(n))?Hs(ec,e.name,e.name):void 0}}function L(e){return e instanceof gu?e.right:e.value}function V(e){var n=new Map;if(e instanceof pu)return n;var i=new Ac((function(e){for(var r=e;r instanceof au;)r=r.expression;if(r instanceof ec){const o=n.get(r.name);o&&o.modified||n.set(r.name,{def:r.definition(),modified:Xf(t,i,e,e,0)})}}));return L(e).walk(i),n}function U(n){if(n.name instanceof Hu){var i=t.parent(),r=t.self().argnames,o=r.indexOf(n.name);if(o<0)i.args.length=Math.min(i.args.length,r.length-1);else{var s=i.args;s[o]&&(s[o]=Hs(uc,s[o],{value:0}))}return!0}var a=!1;return e[u].transform(new Tc((function(e,t,i){return a?e:e===n||e.body===n?(a=!0,e instanceof Ql?(e.value=e.name instanceof Ku?Hs(mc,e.value):null,e):i?Gs.skip:null):void 0}),(function(e){if(e instanceof su)switch(e.expressions.length){case 0:return null;case 1:return e.expressions[0]}})))}function K(e){for(;e instanceof au;)e=e.expression;return e instanceof ec&&e.definition().scope.get_defun_scope()===i&&!(r&&(y.has(e.name)||h instanceof pu||h instanceof gu&&!h.logical&&"="!=h.operator))}function G(){if(b)return!1;if(m)return!0;if(v instanceof ec){var e=v.definition();if(e.references.length-e.replaced==(h instanceof Ql?1:2))return!0}return!1}function H(e){if(!e.definition)return!0;var t=e.definition();return!(1==t.orig.length&&t.orig[0]instanceof zu)&&(t.scope.get_defun_scope()!==i||t.references.some((e=>e.scope.get_defun_scope()!==i)))}function z(e,t){if(e instanceof gu)return z(e.left,!0);if(e instanceof pu)return z(e.expression,!0);if(e instanceof Ql)return e.value&&z(e.value);if(t){if(e instanceof lu)return z(e.expression,!0);if(e instanceof cu)return z(e.expression,!0);if(e instanceof ec)return e.definition().scope.get_defun_scope()!==i}return!1}}function u(e){for(var t=[],n=0;n=0;){var i=e[n];if(i instanceof Ul&&i.body instanceof Ml&&++t>1)return!0}return!1}(e),r=n instanceof Sl,o=Math.min(e.length,500);--o>=0;){var a=e[o],l=_(o),u=e[l];if(r&&!u&&a instanceof Ml){if(!a.value){s=!0,e.splice(o,1);continue}if(a.value instanceof du&&"void"==a.value.operator){s=!0,e[o]=Hs(il,a,{body:a.value.expression});continue}}if(a instanceof Ul){let n,i;if(n=zf(a.body),d(n)&&(i=m(a.body,n))){n.label&&$s(n.label.thedef.references,n),s=!0,(a=a.clone()).condition=a.condition.negate(t),a.body=Hs(al,a,{body:Af(a.alternative).concat(h())}),a.alternative=Hs(al,a,{body:i}),e[o]=a.transform(t);continue}if(n=zf(a.alternative),d(n)&&(i=m(a.alternative,n))){n.label&&$s(n.label.thedef.references,n),s=!0,(a=a.clone()).body=Hs(al,a.body,{body:Af(a.body).concat(h())}),a.alternative=Hs(al,a.alternative,{body:i}),e[o]=a.transform(t);continue}}if(a instanceof Ul&&a.body instanceof Ml){var c=a.body.value;if(!c&&!a.alternative&&(r&&!u||u instanceof Ml&&!u.value)){s=!0,e[o]=Hs(il,a.condition,{body:a.condition});continue}if(c&&!a.alternative&&u instanceof Ml&&u.value){s=!0,(a=a.clone()).alternative=u,e[o]=a.transform(t),e.splice(l,1);continue}if(c&&!a.alternative&&(!u&&r&&i||u instanceof Ml)){s=!0,(a=a.clone()).alternative=u||Hs(Ml,a,{value:null}),e[o]=a.transform(t),u&&e.splice(l,1);continue}var f=e[g(o)];if(t.option("sequences")&&r&&!a.alternative&&f instanceof Ul&&f.body instanceof Ml&&_(l)==e.length&&u instanceof il){s=!0,(a=a.clone()).alternative=Hs(al,u,{body:[u,Hs(Ml,u,{value:null})]}),e[o]=a.transform(t),e.splice(l,1);continue}}}function d(i){if(!i)return!1;for(var s=o+1,a=e.length;s=0;){var i=e[n];if(!(i instanceof Yl&&p(i)))break}return n}}function f(e,t){for(var n,i=t.self(),r=0,o=0,a=e.length;r!e.value))}function d(e,t){if(!(e.length<2)){for(var n=[],i=0,r=0,o=e.length;r=t.sequences_limit&&u();var l=a.body;n.length>0&&(l=l.drop_side_effect_free(t)),l&&lf(n,l)}else a instanceof ql&&p(a)||a instanceof Cl||u(),e[i++]=a}u(),e.length=i,i!=o&&(s=!0)}function u(){if(n.length){var t=uf(n[0],n);e[i++]=Hs(il,t,{body:t}),n=[]}}}function h(e,t){if(!(e instanceof al))return e;for(var n=null,i=0,r=e.body.length;ie instanceof yl||(e instanceof mu&&"in"===e.operator?Dc:void 0)))||(a.init?a.init=n(a.init):(a.init=i.body,r--,s=!0)):a instanceof _l?a.init instanceof Jl||a.init instanceof Zl||(a.object=n(a.object)):a instanceof Ul?a.condition=n(a.condition):(a instanceof Kl||a instanceof vl)&&(a.expression=n(a.expression))),t.option("conditionals")&&a instanceof Ul){var l=[],u=h(a.body,l),c=h(a.alternative,l);if(!1!==u&&!1!==c&&l.length>0){var f=l.length;l.push(Hs(Ul,a,{condition:a.condition,body:u||Hs(ll,a.body),alternative:c})),l.unshift(r,1),[].splice.apply(e,l),o+=f,r+=f+1,i=null,s=!0;continue}}e[r++]=a,i=a instanceof il?a:null}e.length=r}function _(e,i){if(e instanceof ql){var r,o=e.definitions[e.definitions.length-1];if(o.value instanceof Eu&&(i instanceof gu&&!i.logical?r=[i]:i instanceof su&&(r=i.expressions.slice()),r)){var s=!1;do{var a=r[0];if(!(a instanceof gu))break;if("="!=a.operator)break;if(!(a.left instanceof au))break;var l=a.left.expression;if(!(l instanceof ec))break;if(o.name.name!=l.name)break;if(!a.right.is_constant_expression(n))break;var u=a.left.property;if(u instanceof Qa&&(u=u.evaluate(t)),u instanceof Qa)break;u=""+u;var c=t.option("ecma")<2015&&t.has_directive("use strict")?function(e){return e.key!=u&&e.key&&e.key.name!=u}:function(e){return e.key&&e.key.name!=u};if(!o.value.properties.every(c))break;var f=o.value.properties.filter((function(e){return e.key===u}))[0];f?f.value=new su({start:f.start,expressions:[f.value.clone(),a.right.clone()],end:f.end}):o.value.properties.push(Hs(Su,a,{key:u,value:a.right})),r.shift(),s=!0}while(r.length);return s&&r}}}function g(e){for(var t,n=0,i=-1,r=e.length;n{if(i.logical)return i.left.walk(e),up(e),i.right.walk(e),cp(e),!0};var o=i.left;if(!(o instanceof ec))return r();var s=o.definition(),a=dp(e,s,o.scope,i.right);if(s.assignments++,!a)return r();var l=s.fixed;if(!l&&"="!=i.operator&&!i.logical)return r();var u="="==i.operator,c=u?i.right:i;return Xf(n,e,i,c,0)?r():(s.references.push(o),i.logical||(u||(s.chained=!0),s.fixed=u?function(){return i.right}:function(){return Hs(mu,i,{operator:i.operator.slice(0,-1),left:l instanceof Qa?l:l(),right:i.right})}),i.logical?(fp(e,s,!1),up(e),i.right.walk(e),cp(e),!0):(fp(e,s,!1),i.right.walk(e),fp(e,s,!0),hp(e,s,o.scope,i,c,0,1),!0))})),op(mu,(function(e){if(Nf.has(this.operator))return this.left.walk(e),up(e),this.right.walk(e),cp(e),!0})),op(sl,(function(e,t,n){lp(n,this)})),op(zl,(function(e){return up(e),this.expression.walk(e),cp(e),up(e),rl(this,e),cp(e),!0})),op(ku,(function(e,t){return af(this,16),up(e),t(),cp(e),!0})),op(Iu,(function(e,t,n){lp(n,this)})),op(_u,(function(e){return this.condition.walk(e),up(e),this.consequent.walk(e),cp(e),up(e),this.alternative.walk(e),cp(e),!0})),op(fu,(function(e,t){const n=e.safe_ids;return t(),e.safe_ids=n,!0})),op(ru,(function(e){this.expression.walk(e),this.optional&&up(e);for(const t of this.args)t.walk(e);return!0})),op(au,(function(e){if(this.optional)return this.expression.walk(e),up(e),this.property instanceof Qa&&this.property.walk(e),!0})),op(Hl,(function(e,t){return up(e),t(),cp(e),!0})),op(Sl,(function(e,t,n){var i;return af(this,16),up(e),ap(e,n,this),!this.name&&!this.uses_arguments&&!this.pinned()&&(i=e.parent())instanceof ru&&i.expression===this&&!i.args.some((e=>e instanceof bl))&&this.argnames.every((e=>e instanceof Pu))&&this.argnames.forEach(((t,n)=>{if(t.definition){var r=t.definition();r.orig.length>1||(void 0!==r.fixed||this.uses_arguments&&!e.has_directive("use strict")?r.fixed=!1:(r.fixed=function(){return i.args[n]||Hs(mc,i)},e.loop_ids.set(r.id,e.in_loop),fp(e,r,!0)))}})),t(),cp(e),_p(this),!0})),op(dl,(function(e,t,n){lp(n,this);const i=e.in_loop;return e.in_loop=this,up(e),this.body.walk(e),mf(this)&&(cp(e),up(e)),this.condition.walk(e),cp(e),e.in_loop=i,!0})),op(ml,(function(e,t,n){lp(n,this),this.init&&this.init.walk(e);const i=e.in_loop;return e.in_loop=this,up(e),this.condition&&this.condition.walk(e),this.body.walk(e),this.step&&(mf(this)&&(cp(e),up(e)),this.step.walk(e)),cp(e),e.in_loop=i,!0})),op(_l,(function(e,t,n){lp(n,this),mp(this.init),this.object.walk(e);const i=e.in_loop;return e.in_loop=this,up(e),this.body.walk(e),cp(e),e.in_loop=i,!0})),op(Ul,(function(e){return this.condition.walk(e),up(e),this.body.walk(e),cp(e),this.alternative&&(up(e),this.alternative.walk(e),cp(e)),!0})),op(cl,(function(e){return up(e),this.body.walk(e),cp(e),!0})),op(Yu,(function(){this.definition().fixed=!1})),op(ec,(function(e,t,n){var i,r,o=this.definition();o.references.push(this),1==o.references.length&&!o.fixed&&o.orig[0]instanceof zu&&e.loop_ids.set(o.id,e.in_loop),void 0!==o.fixed&&pp(e,o)?o.fixed&&((i=this.fixed_value())instanceof Sl&&Cf(e,o)?o.recursive_refs++:i&&!n.exposed(o)&&function(e,t,n){return t.option("unused")&&!n.scope.pinned()&&n.references.length-n.recursive_refs==1&&e.loop_ids.get(n.id)===e.in_loop}(e,n,o)?o.single_use=i instanceof Sl&&!i.pinned()||i instanceof ku||o.scope===this.scope&&i.is_constant_expression():o.single_use=!1,Xf(n,e,this,i,0,!!(r=i)&&(r.is_constant()||r instanceof Sl||r instanceof oc))&&(o.single_use?o.single_use="m":o.fixed=!1)):o.fixed=!1,hp(e,o,this.scope,this,i,0,1)})),op(El,(function(e,t,n){return this.globals.forEach((function(e){sp(n,e)})),ap(e,n,this),t(),_p(this),!0})),op(Xl,(function(e,t,n){return lp(n,this),up(e),this.body.walk(e),cp(e),this.bcatch&&(up(e),this.bcatch.walk(e),cp(e)),this.bfinally&&this.bfinally.walk(e),!0})),op(pu,(function(e){var t=this;if("++"===t.operator||"--"===t.operator){var n=t.expression;if(n instanceof ec){var i=n.definition(),r=dp(e,i,n.scope,!0);if(i.assignments++,r){var o=i.fixed;if(o)return i.references.push(n),i.chained=!0,i.fixed=function(){return Hs(mu,t,{operator:t.operator.slice(0,-1),left:Hs(du,t,{operator:"+",expression:o instanceof Qa?o:o()}),right:Hs(uc,t,{value:1})})},fp(e,i,!0),!0}}}})),op(Ql,(function(e,t){var n=this;if(n.name instanceof wl)mp(n.name);else{var i=n.name.definition();if(n.value){if(dp(e,i,n.name.scope,n.value))return i.fixed=function(){return n.value},e.loop_ids.set(i.id,e.in_loop),fp(e,i,!1),t(),fp(e,i,!0),!0;i.fixed=!1}}})),op(hl,(function(e,t,n){lp(n,this);const i=e.in_loop;return e.in_loop=this,up(e),t(),cp(e),e.in_loop=i,!0})),function(e){function t(e,n){if(e instanceof Qa)return e instanceof ac||(e=e.clone(!0)),Hs(e.CTOR,n,e);if(Array.isArray(e))return Hs(yu,n,{elements:e.map((function(e){return t(e,n)}))});if(e&&"object"==typeof e){var i=[];for(var r in e)Ys(e,r)&&i.push(Hs(Su,n,{key:r,value:t(e[r],n)}));return Hs(Eu,n,{properties:i})}return cf(e,n)}El.DEFMETHOD("resolve_defines",(function(e){return e.option("global_defs")?(this.figure_out_scope({ie8:e.option("ie8")}),this.transform(new Tc((function(t){var n=t._find_defs(e,"");if(n){for(var i,r=0,o=t;(i=this.parent(r++))&&i instanceof au&&i.expression===o;)o=i;if(!Gf(o,i))return n}})))):this})),e(Qa,Bs),e(fu,(function(e,t){return this.expression._find_defs(e,t)})),e(lu,(function(e,t){return this.expression._find_defs(e,"."+this.property+t)})),e(Lu,(function(){this.global()})),e(ec,(function(e,n){if(this.global()){var i=e.option("global_defs"),r=this.name+n;return Ys(i,r)?t(i[r],this):void 0}})),e(nu,(function(e,n){var i=e.option("global_defs"),r="import.meta"+n;if(Ys(i,r))return t(i[r],this)}))}((function(e,t){e.DEFMETHOD("_find_defs",t)}));class Sp extends Ac{constructor(e,{false_by_default:t=!1,mangle_options:n=!1}){super(),void 0===e.defaults||e.defaults||(t=!0),this.options=Ps(e,{arguments:!1,arrows:!t,booleans:!t,booleans_as_integers:!1,collapse_vars:!t,comparisons:!t,computed_props:!t,conditionals:!t,dead_code:!t,defaults:!0,directives:!t,drop_console:!1,drop_debugger:!t,ecma:5,evaluate:!t,expression:!1,global_defs:!1,hoist_funs:!1,hoist_props:!t,hoist_vars:!1,ie8:!1,if_return:!t,inline:!t,join_vars:!t,keep_classnames:!1,keep_fargs:!0,keep_fnames:!1,keep_infinity:!1,lhs_constants:!t,loops:!t,module:!1,negate_iife:!t,passes:1,properties:!t,pure_getters:!t&&"strict",pure_funcs:null,pure_new:!1,reduce_funcs:!t,reduce_vars:!t,sequences:!t,side_effects:!t,switches:!t,top_retain:null,toplevel:!(!e||!e.top_retain),typeofs:!t,unsafe:!1,unsafe_arrows:!1,unsafe_comps:!1,unsafe_Function:!1,unsafe_math:!1,unsafe_symbols:!1,unsafe_methods:!1,unsafe_proto:!1,unsafe_regexp:!1,unsafe_undefined:!1,unused:!t,warnings:!1},!0);var i=this.options.global_defs;if("object"==typeof i)for(var r in i)"@"===r[0]&&Ys(i,r)&&(i[r.slice(1)]=ja(i[r],{expression:!0}));!0===this.options.inline&&(this.options.inline=3);var o=this.options.pure_funcs;this.pure_funcs="function"==typeof o?o:o?function(e){return!o.includes(e.expression.print_to_string())}:Vs;var s=this.options.top_retain;s instanceof RegExp?this.top_retain=function(e){return s.test(e.name)}:"function"==typeof s?this.top_retain=s:s&&("string"==typeof s&&(s=s.split(/,/)),this.top_retain=function(e){return s.includes(e.name)}),this.options.module&&(this.directives["use strict"]=!0,this.options.toplevel=!0);var a=this.options.toplevel;this.toplevel="string"==typeof a?{funcs:/funcs/.test(a),vars:/vars/.test(a)}:{funcs:a,vars:a};var l=this.options.sequences;this.sequences_limit=1==l?800:0|l,this.evaluated_regexps=new Map,this._toplevel=void 0,this._mangle_options=n?$c(n):n}mangle_options(){var e=this._mangle_options&&this._mangle_options.nth_identifier||Wc,t=this._mangle_options&&this._mangle_options.module||this.option("module");return{ie8:this.option("ie8"),nth_identifier:e,module:t}}option(e){return this.options[e]}exposed(e){if(e.export)return!0;if(e.global)for(var t=0,n=e.orig.length;t0||this.option("reduce_vars"))&&this._toplevel.reset_opt_flags(this),this._toplevel=this._toplevel.transform(this),t>1){let e=0;if(bc(this._toplevel,(()=>{e++})),e{if(!Lc(e,t))return!1;const n=[e],i=[t],r=n.push.bind(n),o=i.push.bind(i);for(;n.length&&i.length;){const e=n.pop(),t=i.pop();if(!Lc(e,t))return!1;if(e._children_backwards(r),t._children_backwards(o),n.length!==i.length)return!1}return 0==n.length&&0==i.length})(this,e)})),yl.DEFMETHOD("process_expression",(function(e,t){var n=this,i=new Tc((function(r){if(e&&r instanceof il)return Hs(Ml,r,{value:r.body});if(!e&&r instanceof Ml){if(t){var o=r.value&&r.value.drop_side_effect_free(t,!0);return o?Hs(il,r,{body:o}):Hs(ll,r)}return Hs(il,r,{body:r.value||Hs(du,r,{operator:"void",expression:Hs(uc,r,{value:0})})})}if(r instanceof ku||r instanceof Sl&&r!==n)return r;if(r instanceof sl){var s=r.body.length-1;s>=0&&(r.body[s]=r.body[s].transform(i))}else r instanceof Ul?(r.body=r.body.transform(i),r.alternative&&(r.alternative=r.alternative.transform(i))):r instanceof vl&&(r.body=r.body.transform(i));return r}));n.transform(i)})),El.DEFMETHOD("reset_opt_flags",(function(e){const t=this,n=e.option("reduce_vars"),i=new Ac((function(r,o){if(af(r,rf),n)return e.top_retain&&r instanceof Cl&&i.parent()===t&&sf(r,nf),r.reduce_vars(i,o,e)}));i.safe_ids=Object.create(null),i.in_loop=null,i.loop_ids=new Map,i.defs_to_safe_ids=new Map,t.walk(i)})),Pu.DEFMETHOD("fixed_value",(function(){var e=this.thedef.fixed;return!e||e instanceof Qa?e:e()})),ec.DEFMETHOD("is_immutable",(function(){var e=this.definition().orig;return 1==e.length&&e[0]instanceof Wu}));var Tp=js("Array Boolean clearInterval clearTimeout console Date decodeURI decodeURIComponent encodeURI encodeURIComponent Error escape eval EvalError Function isFinite isNaN JSON Math Number parseFloat parseInt RangeError ReferenceError RegExp Object setInterval setTimeout String SyntaxError TypeError unescape URIError");ec.DEFMETHOD("is_declared",(function(e){return!this.definition().undeclared||e.option("unsafe")&&Tp.has(this.name)}));var Cp=new Set(["use asm","use strict"]);function wp(e,t){return Ep(e.body,t),t.option("side_effects")&&1==e.body.length&&e.body[0]===t.has_directive("use strict")&&(e.body.length=0),e}function Op(e,t){var n=e.body instanceof al?e.body.body[0]:e.body;if(t.option("dead_code")&&r(n)){var i=[];return e.init instanceof el?i.push(e.init):e.init&&i.push(Hs(il,e.init,{body:e.init})),e.condition&&i.push(Hs(il,e.condition,{body:e.condition})),yp(t,e.body,i),Hs(al,e,{body:i})}return n instanceof Ul&&(r(n.body)?(e.condition?e.condition=Hs(mu,e.condition,{left:e.condition,operator:"&&",right:n.condition.negate(t)}):e.condition=n.condition.negate(t),o(n.alternative)):r(n.alternative)&&(e.condition?e.condition=Hs(mu,e.condition,{left:e.condition,operator:"&&",right:n.condition}):e.condition=n.condition,o(n.body))),e;function r(e){return e instanceof Pl&&t.loopcontrol_target(e)===t.self()}function o(n){n=Af(n),e.body instanceof al?(e.body=e.body.clone(),e.body.body=n.concat(e.body.body.slice(1)),e.body=e.body.transform(t)):e.body=Hs(al,e.body,{body:n}).transform(t),e=Op(e,t)}}Dp(nl,(function(e,t){return!t.option("directives")||Cp.has(e.value)&&t.has_directive(e.value)===e?e:Hs(ll,e)})),Dp(tl,(function(e,t){return t.option("drop_debugger")?Hs(ll,e):e})),Dp(cl,(function(e,t){return e.body instanceof Pl&&t.loopcontrol_target(e.body)===e.body?Hs(ll,e):0==e.label.references.length?e.body:e})),Dp(sl,(function(e,t){return Ep(e.body,t),e})),Dp(al,(function(e,t){switch(Ep(e.body,t),e.body.length){case 1:if(!t.has_directive("use strict")&&t.parent()instanceof Ul&&!((n=e.body[0])instanceof Jl||n instanceof Zl||n instanceof ku)||Df(e.body[0]))return e.body[0];break;case 0:return Hs(ll,e)}var n;return e})),Dp(Sl,wp),yl.DEFMETHOD("hoist_declarations",(function(e){var t=this;if(e.has_directive("use asm"))return t;var n=e.option("hoist_funs"),i=e.option("hoist_vars");if(n||i){var r=[],o=[],s=new Map,a=0,l=0;bc(t,(e=>e instanceof yl&&e!==t||(e instanceof Yl?(++l,!0):void 0))),i=i&&l>1;var u=new Tc((function(l){if(l!==t){if(l instanceof nl)return r.push(l),Hs(ll,l);if(n&&l instanceof Cl&&!(u.parent()instanceof iu)&&u.parent()===t)return o.push(l),Hs(ll,l);if(i&&l instanceof Yl&&!l.definitions.some((e=>e.name instanceof wl))){l.definitions.forEach((function(e){s.set(e.name.name,e),++a}));var c=l.to_assignments(e),f=u.parent();if(f instanceof _l&&f.init===l){if(null==c){var p=l.definitions[0].name;return Hs(ec,p,p)}return c}return f instanceof ml&&f.init===l?c:c?Hs(il,l,{body:c}):Hs(ll,l)}if(l instanceof yl)return l}}));if(t=t.transform(u),a>0){var c=[];const e=t instanceof Sl,n=e?t.args_as_names():null;if(s.forEach(((t,i)=>{e&&n.some((e=>e.name===t.name.name))?s.delete(i):((t=t.clone()).value=null,c.push(t),s.set(i,t))})),c.length>0){for(;0e instanceof bl||e.computed_key()))){s(o,this);const e=new Map,n=[];return u.properties.forEach((({key:i,value:s})=>{const l=r.find_scope(),u=t.create_symbol(a.CTOR,{source:a,scope:l,conflict_scopes:new Set([l,...a.definition().references.map((e=>e.scope))]),tentative_name:a.name+"_"+i});e.set(String(i),u.definition()),n.push(Hs(Ql,o,{name:u,value:s}))})),i.set(l.id,e),Gs.splice(n)}}else if(o instanceof au&&o.expression instanceof ec){const e=i.get(o.expression.definition().id);if(e){const t=e.get(String(df(o.property))),n=Hs(ec,o,{name:t.name,scope:o.expression.scope,thedef:t});return n.reference({}),n}}}));return t.transform(r)})),Dp(il,(function(e,t){if(t.option("side_effects")){var n=e.body,i=n.drop_side_effect_free(t,!0);if(!i)return Hs(ll,e);if(i!==n)return Hs(il,e,{body:i})}return e})),Dp(hl,(function(e,t){return t.option("loops")?Hs(ml,e,e).optimize(t):e})),Dp(dl,(function(e,t){if(!t.option("loops"))return e;var n=e.condition.tail_node().evaluate(t);if(!(n instanceof Qa)){if(n)return Hs(ml,e,{body:Hs(al,e.body,{body:[e.body,Hs(il,e.condition,{body:e.condition})]})}).optimize(t);if(!mf(e,t.parent()))return Hs(al,e.body,{body:[e.body,Hs(il,e.condition,{body:e.condition})]}).optimize(t)}return e})),Dp(ml,(function(e,t){if(!t.option("loops"))return e;if(t.option("side_effects")&&e.init&&(e.init=e.init.drop_side_effect_free(t)),e.condition){var n=e.condition.evaluate(t);if(!(n instanceof Qa))if(n)e.condition=null;else if(!t.option("dead_code")){var i=e.condition;e.condition=cf(n,e.condition),e.condition=ff(e.condition.transform(t),i)}if(t.option("dead_code")&&(n instanceof Qa&&(n=e.condition.tail_node().evaluate(t)),!n)){var r=[];return yp(t,e.body,r),e.init instanceof el?r.push(e.init):e.init&&r.push(Hs(il,e.init,{body:e.init})),r.push(Hs(il,e.condition,{body:e.condition})),Hs(al,e,{body:r}).optimize(t)}}return Op(e,t)})),Dp(Ul,(function(e,t){if(yf(e.alternative)&&(e.alternative=null),!t.option("conditionals"))return e;var n=e.condition.evaluate(t);if(!(t.option("dead_code")||n instanceof Qa)){var i=e.condition;e.condition=cf(n,i),e.condition=ff(e.condition.transform(t),i)}if(t.option("dead_code")){if(n instanceof Qa&&(n=e.condition.tail_node().evaluate(t)),!n){var r=[];return yp(t,e.body,r),r.push(Hs(il,e.condition,{body:e.condition})),e.alternative&&r.push(e.alternative),Hs(al,e,{body:r}).optimize(t)}if(!(n instanceof Qa))return(r=[]).push(Hs(il,e.condition,{body:e.condition})),r.push(e.body),e.alternative&&yp(t,e.alternative,r),Hs(al,e,{body:r}).optimize(t)}var o=e.condition.negate(t),s=e.condition.size(),a=o.size(),l=a(e===d||e.expression instanceof ac)&&(0===e.body.length||zf(e)||l.length-1===t))))for(let e=0;ee&&y(l[t--]);)s++;const a=l.splice(n-s,1+s);l.splice(e+1,0,...a),e+=a.length}}}for(let e=0;e=0;e--){let n=l[e].body;if(v(n[n.length-1],t)&&n.pop(),!y(l[e]))break}if(e++,!d||l.indexOf(d)>=e)for(let n=l.length-1;n>=e;n--){let e=l[n];if(e===d)d=null,l.pop();else{if(e.expression.has_side_effects(t))break;l.pop()}}}e:if(d){let e=l.indexOf(d),n=e;for(;n=0;i--){let e=l[i];if(e!==d&&e.expression.has_side_effects(t))break}if(n>i){let t=e-1;for(;t>=0&&y(l[t]);t--);let r=Math.max(i,t)+1,o=e;i>e?(o=i,l[i].body=l[n].body):d.body=l[n].body,l.splice(o+1,n-o),l.splice(r,e-r)}}e:if(d){let n,i=l.findIndex((e=>!y(e)));if(i===l.length-1){let t=l[i];if(g(e))break e;n=Hs(al,t,{body:t.body}),t.body=[]}else if(-1!==i)break e;let r=l.find((e=>e!==d&&e.expression.has_side_effects(t)));if(!r)return Hs(al,e,{body:a.concat(_(e.expression),d.expression?_(d.expression):[],n||[])}).optimize(t);const o=l.indexOf(d);if(l.splice(o,1),d=null,n)return Hs(al,e,{body:a.concat(e,n)}).optimize(t)}if(l.length>0&&(l[0].body=a.concat(l[0].body)),0==l.length)return Hs(al,e,{body:a.concat(_(e.expression))}).optimize(t);if(1==l.length&&!g(e)){let n=l[0];return Hs(Ul,e,{condition:Hs(mu,e,{operator:"===",left:e.expression,right:n.expression}),body:Hs(al,n,{body:n.body}),alternative:null}).optimize(t)}if(2===l.length&&d&&!g(e)){let n=l[0]===d?l[1]:l[0],i=d.expression&&_(d.expression);if(zf(l[0])){let r=l[0];return v(r.body[r.body.length-1],t)&&r.body.pop(),Hs(Ul,e,{condition:Hs(mu,e,{operator:"===",left:e.expression,right:n.expression}),body:Hs(al,n,{body:n.body}),alternative:Hs(al,d,{body:[].concat(i||[],d.body)})}).optimize(t)}let r="===",o=Hs(al,n,{body:n.body}),s=Hs(al,d,{body:[].concat(i||[],d.body)});if(l[0]===d){r="!==";let e=s;s=o,o=e}return Hs(al,e,{body:[Hs(Ul,e,{condition:Hs(mu,e,{operator:r,left:e.expression,right:n.expression}),body:o,alternative:null})].concat(s)}).optimize(t)}return e;function h(e,n){n&&!zf(n)?n.body=n.body.concat(e.body):yp(t,e,a)}function m(e,t,n){let i=e.body,r=t.body;if(n&&(i=i.concat(Hs(Pl))),i.length!==r.length)return!1;let o=Hs(al,e,{body:i}),s=Hs(al,t,{body:r});return o.equivalent_to(s)}function _(e){return Hs(il,e,{body:e})}function g(e){let t=!1,n=new Ac((e=>{if(t)return!0;if(e instanceof Sl)return!0;if(e instanceof il)return!0;if(!v(e,n))return;let i=n.parent();i instanceof Gl&&i.body[i.body.length-1]===e||(t=!0)}));return e.walk(n),t}function v(t,n){return t instanceof Pl&&n.loopcontrol_target(t)===e}function y(e){return!zf(e)&&!Hs(al,e,{body:e.body}).has_side_effects(t)}})),Dp(Xl,(function(e,t){if(e.bcatch&&e.bfinally&&e.bfinally.body.every(yf)&&(e.bfinally=null),t.option("dead_code")&&e.body.body.every(yf)){var n=[];return e.bcatch&&yp(t,e.bcatch,n),e.bfinally&&n.push(...e.bfinally.body),Hs(al,e,{body:n}).optimize(t)}return e})),ql.DEFMETHOD("to_assignments",(function(e){var t=e.option("reduce_vars"),n=[];for(const e of this.definitions){if(e.value){var i=Hs(ec,e.name,e.name);n.push(Hs(gu,e,{operator:"=",logical:!1,left:i,right:e.value})),t&&(i.definition().fixed=!1)}const r=e.name.definition();r.eliminated++,r.replaced--}return 0==n.length?null:uf(this,n)})),Dp(ql,(function(e){return 0==e.definitions.length?Hs(ll,e):e})),Dp(Ql,(function(e,t){return e.name instanceof Gu&&null!=e.value&&Lf(e.value,t)&&(e.value=null),e})),Dp(tu,(function(e){return e})),Dp(ru,(function(e,t){var n=e.expression,i=n;Np(e.args);var r=e.args.every((e=>!(e instanceof bl)));t.option("reduce_vars")&&i instanceof ec&&(i=i.fixed_value());var o=i instanceof Sl;if(o&&i.pinned())return e;if(t.option("unused")&&r&&o&&!i.uses_arguments){for(var s=0,a=0,l=0,u=e.args.length;l=i.argnames.length;if(c||of(i.argnames[l],1)){if(h=e.args[l].drop_side_effect_free(t))e.args[s++]=h;else if(!c){e.args[s++]=Hs(uc,e.args[l],{value:0});continue}}else e.args[s++]=e.args[l];a=s}e.args.length=a}if(t.option("unsafe")&&!n.contains_optional()){if(n instanceof lu&&"Array"===n.start.value&&"from"===n.property&&1===e.args.length){const[n]=e.args;if(n instanceof yu)return Hs(yu,n,{elements:n.elements}).optimize(t)}if(If(n))switch(n.name){case"Array":if(1!=e.args.length)return Hs(yu,e,{elements:e.args}).optimize(t);if(e.args[0]instanceof uc&&e.args[0].value<=11){const t=[];for(let n=0;n=1&&e.args.length<=2&&e.args.every((e=>{var n=e.evaluate(t);return f.push(n),e!==n}))&&ta(f[0])){let[n,i]=f;n=Qs(new RegExp(n).source);const r=Hs(fc,e,{value:{source:n,flags:i}});if(r._eval(t)!==r)return r}}else if(n instanceof lu)switch(n.property){case"toString":if(0==e.args.length&&!n.expression.may_throw_on_access(t))return Hs(mu,e,{left:Hs(lc,e,{value:""}),operator:"+",right:n.expression}).optimize(t);break;case"join":if(n.expression instanceof yu)e:{var p;if(!(e.args.length>0&&(p=e.args[0].evaluate(t))===e.args[0])){var d,h,m=[],_=[];for(l=0,u=n.expression.elements.length;l0&&(m.push(Hs(lc,e,{value:_.join(p)})),_.length=0),m.push(g))}return _.length>0&&m.push(Hs(lc,e,{value:_.join(p)})),0==m.length?Hs(lc,e,{value:""}):1==m.length?m[0].is_string(t)?m[0]:Hs(mu,m[0],{operator:"+",left:Hs(lc,e,{value:""}),right:m[0]}):""==p?(d=m[0].is_string(t)||m[1].is_string(t)?m.shift():Hs(lc,e,{value:""}),m.reduce((function(e,t){return Hs(mu,t,{operator:"+",left:e,right:t})}),d).optimize(t)):((h=e.clone()).expression=h.expression.clone(),h.expression.expression=h.expression.expression.clone(),h.expression.expression.elements=m,pf(t,e,h))}}break;case"charAt":if(n.expression.is_string(t)){var y=e.args[0],E=y?y.evaluate(t):0;if(E!==y)return Hs(cu,n,{expression:n.expression,property:cf(0|E,y||n)}).optimize(t)}break;case"apply":if(2==e.args.length&&e.args[1]instanceof yu){var b=e.args[1].elements.slice();return b.unshift(e.args[0]),Hs(ru,e,{expression:Hs(lu,n,{expression:n.expression,optional:!1,property:"call"}),args:b}).optimize(t)}break;case"call":var S=n.expression;if(S instanceof ec&&(S=S.fixed_value()),S instanceof Sl&&!S.contains_this())return(e.args.length?uf(this,[e.args[0],Hs(ru,e,{expression:n.expression,args:e.args.slice(1)})]):Hs(ru,e,{expression:n.expression,args:[]})).optimize(t)}}if(t.option("unsafe_Function")&&If(n)&&"Function"==n.name){if(0==e.args.length)return Hs(Al,e,{argnames:[],body:[]}).optimize(t);if(e.args.every((e=>e instanceof lc)))try{var D="n(function("+e.args.slice(0,-1).map((function(e){return e.value})).join(",")+"){"+e.args[e.args.length-1].value+"})",A=ja(D),T=t.mangle_options();A.figure_out_scope(T);var C,w=new Sp(t.options,{mangle_options:t._mangle_options});return(A=A.transform(w)).figure_out_scope(T),A.compute_char_frequency(T),A.mangle_names(T),bc(A,(e=>{if(gf(e))return C=e,Dc})),D=Bc(),al.prototype._codegen.call(C,C,D),e.args=[Hs(lc,e,{value:C.argnames.map((function(e){return e.print_to_string()})).join(",")}),Hs(lc,e.args[e.args.length-1],{value:D.get().replace(/^{|}$/g,"")})],e}catch(e){if(!(e instanceof Ba))throw e}}return function(e,t){var n=e.expression,i=n,r=e.args.every((e=>!(e instanceof bl)));if(t.option("reduce_vars")&&i instanceof ec&&!na(e,Oc)){const r=i.fixed_value();if(wf(r,t)||!t.toplevel.funcs&&n.definition().global)return e;i=r}var o=i instanceof Sl,s=o&&i.body[0],a=o&&!i.is_generator&&!i.async,l=a&&t.option("inline")&&!e.is_callee_pure(t);if(l&&s instanceof Ml){let n=s.value;if(!n||n.is_constant_expression()){n=n?n.clone(!0):Hs(mc,e);const i=e.args.concat(n);return uf(e,i).optimize(t)}if(1===i.argnames.length&&i.argnames[0]instanceof Hu&&e.args.length<2&&!(e.args[0]instanceof bl)&&n instanceof ec&&n.name===i.argnames[0].name){const n=(e.args[0]||Hs(mc)).optimize(t);let i;return n instanceof au&&(i=t.parent())instanceof ru&&i.expression===e?uf(e,[Hs(uc,e,{value:0}),n]):n}}if(l){var u,c,f=-1;let o,a,l;if(r&&!i.uses_arguments&&!(t.parent()instanceof ku)&&!(i.name&&i instanceof Al)&&(a=function(e){var n=i.body,r=n.length;if(t.option("inline")<3)return 1==r&&h(e);e=null;for(var o=0;o!e.value)))return!1}else{if(e)return!1;s instanceof ll||(e=s)}}return h(e)}(s))&&(n===i||na(e,wc)||t.option("unused")&&1==(o=n.definition()).references.length&&!Cf(t,o)&&i.is_constant_expression(n.scope))&&!na(e,Cc|Oc)&&!i.contains_this()&&function(){var e=new Set;do{if((u=t.parent(++f)).is_block_scope()&&u.block_scope&&u.block_scope.variables.forEach((function(t){e.add(t.name)})),u instanceof Wl)u.argname&&e.add(u.argname.name);else if(u instanceof fl)c=[];else if(u instanceof ec&&u.fixed_value()instanceof yl)return!1}while(!(u instanceof yl));var n=!(u instanceof El)||t.toplevel.vars,r=t.option("inline");return!(!function(e,t){for(var n=i.body.length,r=0;r=0;){var a=o.definitions[s].name;if(a instanceof wl||e.has(a.name)||Ef.has(a.name)||u.conflicting_def(a.name))return!1;c&&c.push(a.definition())}}}return!0}(e,r>=3&&n)||!function(e,t){for(var n=0,r=i.argnames.length;n=2&&n)||c&&0!=c.length&&Tf(i,c))}()&&(l=t.find_scope())&&!bp(l,i)&&!function(){let e,n=0;for(;e=t.parent(n++);){if(e instanceof vu)return!0;if(e instanceof sl)break}return!1}()&&!(u instanceof ku))return sf(i,tf),l.add_child_scope(i),uf(e,function(n){var r=[],o=[];if(function(t,n){for(var r=i.argnames.length,o=e.args.length;--o>=r;)n.push(e.args[o]);for(o=r;--o>=0;){var s=i.argnames[o],a=e.args[o];if(of(s,1)||!s.name||u.conflicting_def(s.name))a&&n.push(a);else{var l=Hs(Vu,s,s);s.definition().orig.push(l),!a&&c&&(a=Hs(mc,e)),m(t,n,l,a)}}t.reverse(),n.reverse()}(r,o),function(e,t){for(var n=t.length,r=0,o=i.body.length;re.name!=f.name))){var p=i.variables.get(f.name),d=Hs(ec,f,f);p.references.push(d),t.splice(n++,0,Hs(gu,u,{operator:"=",logical:!1,left:d,right:Hs(mc,f)}))}}}}(r,o),o.push(n),r.length){const e=u.body.indexOf(t.parent(f-1))+1;u.body.splice(e,0,Hs(Yl,i,{definitions:r}))}return o.map((e=>e.clone(!0)))}(a)).optimize(t)}if(l&&na(e,wc))return sf(i,tf),(i=(i=Hs(i.CTOR===Cl?Al:i.CTOR,i,i)).clone(!0)).figure_out_scope({},{parent_scope:t.find_scope(),toplevel:t.get_toplevel()}),Hs(ru,e,{expression:i,args:e.args}).optimize(t);if(a&&t.option("side_effects")&&i.body.every(yf)){var p=e.args.concat(Hs(mc,e));return uf(e,p).optimize(t)}if(t.option("negate_iife")&&t.parent()instanceof il&&vf(e))return e.negate(t,!0);var d=e.evaluate(t);return d!==e?(d=cf(d,e).optimize(t),pf(t,d,e)):e;function h(t){return t?t instanceof Ml?t.value?t.value.clone(!0):Hs(mc,e):t instanceof il?Hs(du,t,{operator:"void",expression:t.body.clone(!0)}):void 0:Hs(mc,e)}function m(t,n,i,r){var o=i.definition();u.variables.has(i.name)||(u.variables.set(i.name,o),u.enclosed.push(o),t.push(Hs(Ql,i,{name:i,value:null})));var s=Hs(ec,i,i);o.references.push(s),r&&n.push(Hs(gu,e,{operator:"=",logical:!1,left:s,right:r.clone()}))}}(e,t)})),Qa.DEFMETHOD("contains_optional",(function(){return(this instanceof au||this instanceof ru||this instanceof fu)&&(!!this.optional||this.expression.contains_optional())})),Dp(ou,(function(e,t){return t.option("unsafe")&&If(e.expression)&&["Object","RegExp","Function","Error","Array"].includes(e.expression.name)?Hs(ru,e,e).transform(t):e})),Dp(su,(function(e,t){if(!t.option("side_effects"))return e;var n,i,r=[];n=Fc(t),i=e.expressions.length-1,e.expressions.forEach((function(e,o){o0&&Lf(r[o],t);)o--;o0)return(n=this.clone()).right=uf(this.right,t.slice(o)),(t=t.slice(0,o)).push(n),uf(this,t).optimize(e)}}return this}));var kp=js("== === != !== * & | ^");function xp(e,t){return e instanceof ec||e.TYPE===t.TYPE}Dp(mu,(function(e,t){function n(){return e.left.is_constant()||e.right.is_constant()||!e.left.has_side_effects(t)&&!e.right.has_side_effects(t)}function i(t){if(n()){t&&(e.operator=t);var i=e.left;e.left=e.right,e.right=i}}if(t.option("lhs_constants")&&kp.has(e.operator)&&e.right.is_constant()&&!e.left.is_constant()&&(e.left instanceof mu&&$a[e.left.operator]>=$a[e.operator]||i()),e=e.lift_sequences(t),t.option("comparisons"))switch(e.operator){case"===":case"!==":var r=!0;(e.left.is_string(t)&&e.right.is_string(t)||e.left.is_number(t)&&e.right.is_number(t)||e.left.is_boolean()&&e.right.is_boolean()||e.left.equivalent_to(e.right))&&(e.operator=e.operator.substr(0,2));case"==":case"!=":if(!r&&Lf(e.left,t))e.left=Hs(dc,e.left);else if(!r&&Lf(e.right,t))e.right=Hs(dc,e.right);else if(t.option("typeofs")&&e.left instanceof lc&&"undefined"==e.left.value&&e.right instanceof du&&"typeof"==e.right.operator)((o=e.right.expression)instanceof ec?!o.is_declared(t):o instanceof au&&t.option("ie8"))||(e.right=o,e.left=Hs(mc,e.left).optimize(t),2==e.operator.length&&(e.operator+="="));else if(t.option("typeofs")&&e.left instanceof du&&"typeof"==e.left.operator&&e.right instanceof lc&&"undefined"==e.right.value){var o;((o=e.left.expression)instanceof ec?!o.is_declared(t):o instanceof au&&t.option("ie8"))||(e.left=o,e.right=Hs(mc,e.right).optimize(t),2==e.operator.length&&(e.operator+="="))}else if(e.left instanceof ec&&e.right instanceof ec&&e.left.definition()===e.right.definition()&&((l=e.left.fixed_value())instanceof yu||l instanceof Sl||l instanceof Eu||l instanceof ku))return Hs("="==e.operator[0]?Ec:yc,e);break;case"&&":case"||":var s=e.left;if(s.operator==e.operator&&(s=s.right),s instanceof mu&&s.operator==("&&"==e.operator?"!==":"===")&&e.right instanceof mu&&s.operator==e.right.operator&&(Lf(s.left,t)&&e.right.left instanceof dc||s.left instanceof dc&&Lf(e.right.left,t))&&!s.right.has_side_effects(t)&&s.right.equivalent_to(e.right.right)){var a=Hs(mu,e,{operator:s.operator.slice(0,-1),left:Hs(dc,e),right:s.right});return s!==e.left&&(a=Hs(mu,e,{operator:e.operator,left:e.left.left,right:a})),a}}var l;if("+"==e.operator&&t.in_boolean_context()){var u=e.left.evaluate(t),c=e.right.evaluate(t);if(u&&"string"==typeof u)return uf(e,[e.right,Hs(Ec,e)]).optimize(t);if(c&&"string"==typeof c)return uf(e,[e.left,Hs(Ec,e)]).optimize(t)}if(t.option("comparisons")&&e.is_boolean()){if(!(t.parent()instanceof mu)||t.parent()instanceof gu){var f=Hs(du,e,{operator:"!",expression:e.negate(t,Fc(t))});e=pf(t,e,f)}if(t.option("unsafe_comps"))switch(e.operator){case"<":i(">");break;case"<=":i(">=")}}if("+"==e.operator){if(e.right instanceof lc&&""==e.right.getValue()&&e.left.is_string(t))return e.left;if(e.left instanceof lc&&""==e.left.getValue()&&e.right.is_string(t))return e.right;if(e.left instanceof mu&&"+"==e.left.operator&&e.left.left instanceof lc&&""==e.left.left.getValue()&&e.right.is_string(t))return e.left=e.left.right,e}if(t.option("evaluate")){switch(e.operator){case"&&":if(!(u=!!of(e.left,2)||!of(e.left,4)&&e.left.evaluate(t)))return _f(t.parent(),t.self(),e.left).optimize(t);if(!(u instanceof Qa))return uf(e,[e.left,e.right]).optimize(t);if(c=e.right.evaluate(t)){if(!(c instanceof Qa)&&("&&"==(p=t.parent()).operator&&p.left===t.self()||t.in_boolean_context()))return e.left.optimize(t)}else{if(t.in_boolean_context())return uf(e,[e.left,Hs(yc,e)]).optimize(t);sf(e,4)}if("||"==e.left.operator&&!(d=e.left.right.evaluate(t)))return Hs(_u,e,{condition:e.left.left,consequent:e.right,alternative:e.left.right}).optimize(t);break;case"||":var p,d;if(!(u=!!of(e.left,2)||!of(e.left,4)&&e.left.evaluate(t)))return uf(e,[e.left,e.right]).optimize(t);if(!(u instanceof Qa))return _f(t.parent(),t.self(),e.left).optimize(t);if(c=e.right.evaluate(t)){if(!(c instanceof Qa)){if(t.in_boolean_context())return uf(e,[e.left,Hs(Ec,e)]).optimize(t);sf(e,2)}}else if("||"==(p=t.parent()).operator&&p.left===t.self()||t.in_boolean_context())return e.left.optimize(t);if("&&"==e.left.operator&&(d=e.left.right.evaluate(t))&&!(d instanceof Qa))return Hs(_u,e,{condition:e.left.left,consequent:e.left.right,alternative:e.right}).optimize(t);break;case"??":if(Kf(e.left,t))return e.right;if(!((u=e.left.evaluate(t))instanceof Qa))return null==u?e.right:e.left;if(t.in_boolean_context()){const n=e.right.evaluate(t);if(!(n instanceof Qa||n))return e.left}}var h=!0;switch(e.operator){case"+":if(e.right instanceof ac&&e.left instanceof mu&&"+"==e.left.operator&&e.left.is_string(t)){var m=(_=Hs(mu,e,{operator:"+",left:e.left.right,right:e.right})).optimize(t);_!==m&&(e=Hs(mu,e,{operator:"+",left:e.left.left,right:m}))}if(e.left instanceof mu&&"+"==e.left.operator&&e.left.is_string(t)&&e.right instanceof mu&&"+"==e.right.operator&&e.right.is_string(t)){var _,g=(_=Hs(mu,e,{operator:"+",left:e.left.right,right:e.right.left})).optimize(t);_!==g&&(e=Hs(mu,e,{operator:"+",left:Hs(mu,e.left,{operator:"+",left:e.left.left,right:g}),right:e.right.right}))}if(e.right instanceof du&&"-"==e.right.operator&&e.left.is_number(t)){e=Hs(mu,e,{operator:"-",left:e.left,right:e.right.expression});break}if(e.left instanceof du&&"-"==e.left.operator&&n()&&e.right.is_number(t)){e=Hs(mu,e,{operator:"-",left:e.right,right:e.left.expression});break}if(e.left instanceof kl){var v=e.left;if((m=e.right.evaluate(t))!=e.right)return v.segments[v.segments.length-1].value+=String(m),v}if(e.right instanceof kl&&(m=e.right,(v=e.left.evaluate(t))!=e.left))return m.segments[0].value=String(v)+m.segments[0].value,m;if(e.left instanceof kl&&e.right instanceof kl){var y=(v=e.left).segments;m=e.right,y[y.length-1].value+=m.segments[0].value;for(var E=1;E=$a[e.operator])){var b=Hs(mu,e,{operator:e.operator,left:e.right,right:e.left});e=e.right instanceof ac&&!(e.left instanceof ac)?pf(t,b,e):pf(t,e,b)}h&&e.is_number(t)&&(e.right instanceof mu&&e.right.operator==e.operator&&(e=Hs(mu,e,{operator:e.operator,left:Hs(mu,e.left,{operator:e.operator,left:e.left,right:e.right.left,start:e.left.start,end:e.right.left.end}),right:e.right.right})),e.right instanceof ac&&e.left instanceof mu&&e.left.operator==e.operator&&(e.left.left instanceof ac?e=Hs(mu,e,{operator:e.operator,left:Hs(mu,e.left,{operator:e.operator,left:e.left.left,right:e.right,start:e.left.left.start,end:e.right.end}),right:e.left.right}):e.left.right instanceof ac&&(e=Hs(mu,e,{operator:e.operator,left:Hs(mu,e.left,{operator:e.operator,left:e.left.right,right:e.right,start:e.left.right.start,end:e.right.end}),right:e.left.left}))),e.left instanceof mu&&e.left.operator==e.operator&&e.left.right instanceof ac&&e.right instanceof mu&&e.right.operator==e.operator&&e.right.left instanceof ac&&(e=Hs(mu,e,{operator:e.operator,left:Hs(mu,e.left,{operator:e.operator,left:Hs(mu,e.left.left,{operator:e.operator,left:e.left.right,right:e.right.left,start:e.left.right.start,end:e.right.left.end}),right:e.left.left}),right:e.right.right})))}}if(e.right instanceof mu&&e.right.operator==e.operator&&(Nf.has(e.operator)||"+"==e.operator&&(e.right.left.is_string(t)||e.left.is_string(t)&&e.right.right.is_string(t))))return e.left=Hs(mu,e.left,{operator:e.operator,left:e.left.transform(t),right:e.right.left.transform(t)}),e.right=e.right.right.transform(t),e.transform(t);var S=e.evaluate(t);return S!==e?(S=cf(S,e).optimize(t),pf(t,S,e)):e})),Dp(tc,(function(e){return e})),Dp(ec,(function(e,t){if(!t.option("ie8")&&If(e)&&!t.find_parent(vl))switch(e.name){case"undefined":return Hs(mc,e).optimize(t);case"NaN":return Hs(hc,e).optimize(t);case"Infinity":return Hs(gc,e).optimize(t)}return t.option("reduce_vars")&&!t.is_lhs()?function(e,t){const n=t.parent(),i=e.definition(),r=t.find_scope();let o=e.fixed_value();if(t.top_retain&&i.global&&t.top_retain(i)&&function(e,t){return 1!==e.orig.length||!t||t.size()>e.name.length}(i,o))return i.fixed=!1,i.single_use=!1,e;let s=i.single_use&&!(n instanceof ru&&n.is_callee_pure(t)||na(n,Oc))&&!(n instanceof iu&&o instanceof Sl&&o.name);if(s&&o instanceof Qa&&(s=!o.has_side_effects(t)&&!o.may_throw(t)),o instanceof ku&&i.scope!==e.scope)return e;if(s&&(o instanceof Sl||o instanceof ku))if(wf(o,t))s=!1;else if(i.scope===e.scope||1!=i.escaped&&!of(o,16)&&!function(e){for(var t,n=0;t=e.parent(n++);){if(t instanceof el)return!1;if(t instanceof yu||t instanceof Su||t instanceof Eu)return!0}return!1}(t)&&t.option("reduce_funcs")){if(Cf(t,i))s=!1;else if((i.scope!==e.scope||i.orig[0]instanceof Hu)&&(s=o.is_constant_expression(e.scope),"f"==s)){var a=e.scope;do{(a instanceof Cl||gf(a))&&sf(a,16)}while(a=a.parent_scope)}}else s=!1;if(s&&(o instanceof Sl||o instanceof ku)&&(s=i.scope===e.scope&&!bp(r,o)||n instanceof ru&&n.expression===e&&!bp(r,o)&&!(o.name&&o.name.definition().recursive_refs>0)),s&&o){if(o instanceof Mu&&(sf(o,tf),o=Hs(Nu,o,o)),o instanceof Cl&&(sf(o,tf),o=Hs(Al,o,o)),i.recursive_refs>0&&o.name instanceof zu){const e=o.name.definition();let t=o.variables.get(o.name.name),n=t&&t.orig[0];n instanceof Wu||(n=Hs(Wu,o.name,o.name),n.scope=o,o.name=n,t=o.def_function(n)),bc(o,(n=>{n instanceof ec&&n.definition()===e&&(n.thedef=t,t.references.push(n))}))}return(o instanceof Sl||o instanceof ku)&&o.parent_scope!==r&&(o=o.clone(!0,t.get_toplevel()),r.add_child_scope(o)),o.optimize(t)}if(o){let n;if(o instanceof oc)i.orig[0]instanceof Hu||!i.references.every((e=>i.scope===e.scope))||(n=o);else{var l=o.evaluate(t);l===o||!t.option("unsafe_regexp")&&l instanceof RegExp||(n=cf(l,o))}if(n){const r=e.size(t),o=n.size(t);let s=0;if(t.option("unused")&&!t.exposed(i)&&(s=(r+2+o)/(i.references.length-i.assignments)),o<=r+s)return n}}return e}(e,t):e})),Dp(mc,(function(e,t){if(t.option("unsafe_undefined")){var n=Ap(t,"undefined");if(n){var i=Hs(ec,e,{name:"undefined",scope:n.scope,thedef:n});return sf(i,Qc),i}}var r=t.is_lhs();return r&&xp(r,e)?e:Hs(du,e,{operator:"void",expression:Hs(uc,e,{value:0})})})),Dp(gc,(function(e,t){var n=t.is_lhs();return n&&xp(n,e)?e:!t.option("keep_infinity")||n&&!xp(n,e)||Ap(t,"Infinity")?Hs(mu,e,{operator:"/",left:Hs(uc,e,{value:1}),right:Hs(uc,e,{value:0})}):e})),Dp(hc,(function(e,t){var n=t.is_lhs();return n&&!xp(n,e)||Ap(t,"NaN")?Hs(mu,e,{operator:"/",left:Hs(uc,e,{value:0}),right:Hs(uc,e,{value:0})}):e}));const Rp=js("+ - / * % >> << >>> | ^ &"),Fp=js("* | ^ &");function Mp(e,t){return e instanceof ec&&(e=e.fixed_value()),!!e&&(!(e instanceof Sl||e instanceof ku)||!(e instanceof Sl&&e.contains_this())||t.parent()instanceof ou)}function Ip(e,t){return t.in_boolean_context()?pf(t,e,uf(e,[e,Hs(Ec,e)]).optimize(t)):e}function Np(e){for(var t=0;te instanceof _c))&&(e.splice(t,1,...i.elements),t--)}}}function Pp(e,t){if(!t.option("computed_props"))return e;if(!(e.key instanceof ac))return e;if(e.key instanceof lc||e.key instanceof uc){if("__proto__"===e.key.value)return e;if("constructor"==e.key.value&&t.parent()instanceof ku)return e;e instanceof Su?(e.quote=e.key.quote,e.key=e.key.value):e instanceof xu?(e.quote=e.key.quote,e.key=Hs($u,e.key,{name:e.key.value})):(e.quote=e.key.quote,e.key=Hs(Xu,e.key,{name:e.key.value}))}return e}Dp(gu,(function(e,t){if(e.logical)return e.lift_sequences(t);var n;if("="===e.operator&&e.left instanceof ec&&"arguments"!==e.left.name&&!(n=e.left.definition()).undeclared&&e.right.equivalent_to(e.left))return e.right;if(t.option("dead_code")&&e.left instanceof ec&&(n=e.left.definition()).scope===t.find_parent(Sl)){var i,r=0,o=e;do{if(i=o,(o=t.parent(r++))instanceof Fl){if(s(r,o))break;if(Tf(n.scope,[n]))break;return"="==e.operator?e.right:(n.fixed=!1,Hs(mu,e,{operator:e.operator.slice(0,-1),left:e.left,right:e.right}).optimize(t))}}while(o instanceof mu&&o.right===i||o instanceof su&&o.tail_node()===i)}return"="==(e=e.lift_sequences(t)).operator&&e.left instanceof ec&&e.right instanceof mu&&(e.right.left instanceof ec&&e.right.left.name==e.left.name&&Rp.has(e.right.operator)?(e.operator=e.right.operator+"=",e.right=e.right.right):e.right.right instanceof ec&&e.right.right.name==e.left.name&&Fp.has(e.right.operator)&&!e.right.left.has_side_effects(t)&&(e.operator=e.right.operator+"=",e.right=e.right.left)),e;function s(n,i){function r(){const n=e.right;e.right=Hs(dc,n);const r=i.may_throw(t);return e.right=n,r}for(var o,s=e.left.definition().scope.get_defun_scope();(o=t.parent(n++))!==s;)if(o instanceof Xl){if(o.bfinally)return!0;if(o.bcatch&&r())return!0}}})),Dp(vu,(function(e,t){if(!t.option("evaluate"))return e;var n=e.right.evaluate(t);let i,r;return void 0===n?(i=t.parent())instanceof Sl&&!1!==t.option("keep_fargs")&&("Call"!==(r=t.parent(1)).TYPE||r.expression!==i)||(e=e.left):n!==e.right&&(n=cf(n,e.right),e.right=ff(n,e.right)),e})),Dp(_u,(function(e,t){if(!t.option("conditionals"))return e;if(e.condition instanceof su){var n=e.condition.expressions.slice();return e.condition=n.pop(),n.push(e),uf(e,n)}var i=e.condition.evaluate(t);if(i!==e.condition)return _f(t.parent(),t.self(),i?e.consequent:e.alternative);var r=i.negate(t,Fc(t));pf(t,i,r)===r&&(e=Hs(_u,e,{condition:r,consequent:e.alternative,alternative:e.consequent}));var o,s=e.condition,a=e.consequent,l=e.alternative;if(s instanceof ec&&a instanceof ec&&s.definition()===a.definition())return Hs(mu,e,{operator:"||",left:s,right:l});if(a instanceof gu&&l instanceof gu&&a.operator===l.operator&&a.logical===l.logical&&a.left.equivalent_to(l.left)&&(!e.condition.has_side_effects(t)||"="==a.operator&&!a.left.has_side_effects(t)))return Hs(gu,e,{operator:a.operator,left:a.left,logical:a.logical,right:Hs(_u,e,{condition:e.condition,consequent:a.right,alternative:l.right})});if(a instanceof ru&&l.TYPE===a.TYPE&&a.args.length>0&&a.args.length==l.args.length&&a.expression.equivalent_to(l.expression)&&!e.condition.has_side_effects(t)&&!a.expression.has_side_effects(t)&&"number"==typeof(o=function(){for(var e=a.args,t=l.args,n=0,i=e.length;n=2020&&function(e,t,n){if(t.may_throw(n))return!1;let i;if(e instanceof mu&&"=="===e.operator&&((i=Kf(e.left,n)&&e.left)||(i=Kf(e.right,n)&&e.right))&&(i===e.left?e.right:e.left).equivalent_to(t))return!0;if(e instanceof mu&&"||"===e.operator){let i,r;const o=e=>{if(!(e instanceof mu)||"==="!==e.operator&&"=="!==e.operator)return!1;let o,s=0;return e.left instanceof dc&&(s++,i=e,o=e.right),e.right instanceof dc&&(s++,i=e,o=e.left),Lf(e.left,n)&&(s++,r=e,o=e.right),Lf(e.right,n)&&(s++,r=e,o=e.left),1===s&&!!o.equivalent_to(t)};if(!o(e.left))return!1;if(!o(e.right))return!1;if(i&&r&&i!==r)return!0}return!1}(s,l,t))return Hs(mu,e,{operator:"??",left:l,right:a}).optimize(t);if(l instanceof su&&a.equivalent_to(l.expressions[l.expressions.length-1]))return uf(e,[Hs(mu,e,{operator:"||",left:s,right:uf(e,l.expressions.slice(0,-1))}),a]).optimize(t);if(l instanceof mu&&"&&"==l.operator&&a.equivalent_to(l.right))return Hs(mu,e,{operator:"&&",left:Hs(mu,e,{operator:"||",left:s,right:l.left}),right:a}).optimize(t);if(a instanceof _u&&a.alternative.equivalent_to(l))return Hs(_u,e,{condition:Hs(mu,e,{left:e.condition,operator:"&&",right:a.condition}),consequent:a.consequent,alternative:l});if(a.equivalent_to(l))return uf(e,[e.condition,a]).optimize(t);if(a instanceof mu&&"||"==a.operator&&a.right.equivalent_to(l))return Hs(mu,e,{operator:"||",left:Hs(mu,e,{operator:"&&",left:e.condition,right:a.left}),right:l}).optimize(t);const c=t.in_boolean_context();return p(e.consequent)?d(e.alternative)?f(e.condition):Hs(mu,e,{operator:"||",left:f(e.condition),right:e.alternative}):d(e.consequent)?p(e.alternative)?f(e.condition.negate(t)):Hs(mu,e,{operator:"&&",left:f(e.condition.negate(t)),right:e.alternative}):p(e.alternative)?Hs(mu,e,{operator:"||",left:f(e.condition.negate(t)),right:e.consequent}):d(e.alternative)?Hs(mu,e,{operator:"&&",left:f(e.condition),right:e.consequent}):e;function f(e){return e.is_boolean()?e:Hs(du,e,{operator:"!",expression:e.negate(t)})}function p(e){return e instanceof Ec||c&&e instanceof ac&&e.getValue()||e instanceof du&&"!"==e.operator&&e.expression instanceof ac&&!e.expression.getValue()}function d(e){return e instanceof yc||c&&e instanceof ac&&!e.getValue()||e instanceof du&&"!"==e.operator&&e.expression instanceof ac&&e.expression.getValue()}})),Dp(vc,(function(e,t){if(t.in_boolean_context())return Hs(uc,e,{value:+e.value});var n=t.parent();return t.option("booleans_as_integers")?(n instanceof mu&&("==="==n.operator||"!=="==n.operator)&&(n.operator=n.operator.replace(/=$/,"")),Hs(uc,e,{value:+e.value})):t.option("booleans")?n instanceof mu&&("=="==n.operator||"!="==n.operator)?Hs(uc,e,{value:+e.value}):Hs(du,e,{operator:"!",expression:Hs(uc,e,{value:1-e.value})}):e})),au.DEFMETHOD("flatten_object",(function(e,t){if(t.option("properties")&&"__proto__"!==e){var n=t.option("unsafe_arrows")&&t.option("ecma")>=2015,i=this.expression;if(i instanceof Eu)for(var r=i.properties,o=r.length;--o>=0;){var s=r[o];if(""+(s instanceof wu?s.key.name:s.key)==e){const e=r.every((e=>(e instanceof Su||n&&e instanceof wu&&!e.is_generator)&&!e.computed_key()));if(!e)return;if(!Mp(s.value,t))return;return Hs(cu,this,{expression:Hs(yu,i,{elements:r.map((function(e){var t=e.value;t instanceof Dl&&(t=Hs(Al,t,t));var n=e.key;return n instanceof Qa&&!(n instanceof Xu)?uf(e,[n,t]):t}))}),property:Hs(uc,this,{value:o})})}}}})),Dp(cu,(function(e,t){var n,i=e.expression,r=e.property;if(t.option("properties")){var o=r.evaluate(t);if(o!==r){"string"==typeof o&&("undefined"==o?o=void 0:(b=parseFloat(o)).toString()==o&&(o=b)),r=e.property=ff(r,cf(o,r).transform(t));var s=""+o;if(Ia(s)&&s.length<=r.size()+1)return Hs(lu,e,{expression:i,optional:e.optional,property:s,quote:r.quote}).optimize(t)}}e:if(t.option("arguments")&&i instanceof ec&&"arguments"==i.name&&1==i.definition().orig.length&&(n=i.scope)instanceof Sl&&n.uses_arguments&&!(n instanceof Tl)&&r instanceof uc){for(var a=r.getValue(),l=new Set,u=n.argnames,c=0;c1)&&(p=null)}else if(!p&&!t.option("keep_fargs")&&a=n.argnames.length;)p=n.create_symbol(Hu,{source:n,scope:n,tentative_name:"argument_"+n.argnames.length}),n.argnames.push(p);if(p){var h=Hs(ec,e,p);return h.reference({}),af(p,1),h}}if(t.is_lhs())return e;if(o!==r){var m=e.flatten_object(s,t);m&&(i=e.expression=m.expression,r=e.property=m.property)}if(t.option("properties")&&t.option("side_effects")&&r instanceof uc&&i instanceof yu){a=r.getValue();var _=i.elements,g=_[a];e:if(Mp(g,t)){for(var v=!0,y=[],E=_.length;--E>a;)(b=_[E].drop_side_effect_free(t))&&(y.unshift(b),v&&b.has_side_effects(t)&&(v=!1));if(g instanceof bl)break e;for(g=g instanceof _c?Hs(mc,g):g,v||y.unshift(g);--E>=0;){var b;if((b=_[E])instanceof bl)break e;(b=b.drop_side_effect_free(t))?y.unshift(b):a--}return v?(y.push(g),uf(e,y).optimize(t)):Hs(cu,e,{expression:Hs(yu,i,{elements:y}),property:Hs(uc,r,{value:a})})}}var S=e.evaluate(t);return S!==e?pf(t,S=cf(S,e).optimize(t),e):e})),Dp(fu,(function(e,t){if(Kf(e.expression,t)){let n=t.parent();return n instanceof du&&"delete"===n.operator?cf(0,e):Hs(mc,e)}return e})),Dp(lu,(function(e,t){const n=t.parent();if(t.is_lhs())return e;if(t.option("unsafe_proto")&&e.expression instanceof lu&&"prototype"==e.expression.property){var i=e.expression.expression;if(If(i))switch(i.name){case"Array":e.expression=Hs(yu,e.expression,{elements:[]});break;case"Function":e.expression=Hs(Al,e.expression,{argnames:[],body:[]});break;case"Number":e.expression=Hs(uc,e.expression,{value:0});break;case"Object":e.expression=Hs(Eu,e.expression,{properties:[]});break;case"RegExp":e.expression=Hs(fc,e.expression,{value:{source:"t",flags:""}});break;case"String":e.expression=Hs(lc,e.expression,{value:""})}}if(!(n instanceof ru&&na(n,Oc))){const n=e.flatten_object(e.property,t);if(n)return n.optimize(t)}if(e.expression instanceof au&&n instanceof au)return e;let r=e.evaluate(t);return r!==e?(r=cf(r,e).optimize(t),pf(t,r,e)):e})),Dp(yu,(function(e,t){var n=Ip(e,t);return n!==e?n:(Np(e.elements),e)})),Dp(Eu,(function(e,t){var n=Ip(e,t);return n!==e?n:(function(e,t){for(var n=0;ne instanceof Su))?(e.splice(n,1,...r.properties),n--):(r instanceof ac&&!(r instanceof lc)||Kf(r,t))&&(e.splice(n,1),n--)}}}(e.properties,t),e)})),Dp(fc,Ip),Dp(Ml,(function(e,t){return e.value&&Lf(e.value,t)&&(e.value=null),e})),Dp(Tl,wp),Dp(Al,(function(e,t){return e=wp(e,t),!(t.option("unsafe_arrows")&&t.option("ecma")>=2015)||e.name||e.is_generator||e.uses_arguments||e.pinned()||bc(e,(e=>{if(e instanceof oc)return Dc}))?e:Hs(Tl,e,e).optimize(t)})),Dp(ku,(function(e){for(let t=0;t=2015&&(!(n instanceof RegExp)||n.test(e.key+""))){var i=e.key,r=e.value;if((r instanceof Tl&&Array.isArray(r.body)&&!r.contains_this()||r instanceof Al)&&!r.name)return Hs(wu,e,{async:r.async,is_generator:r.is_generator,key:i instanceof Qa?i:Hs(Xu,e,{name:i}),value:Hs(Dl,r,r),quote:e.quote})}return e})),Dp(wl,(function(e,t){if(1==t.option("pure_getters")&&t.option("unused")&&!e.is_array&&Array.isArray(e.names)&&!function(e){for(var t=[/^VarDef$/,/^(Const|Let|Var)$/,/^Export$/],n=0,i=0,r=t.length;n{e instanceof Ru||e instanceof Ou||e instanceof Au||e instanceof Du||e instanceof uu||(e instanceof Su?"string"==typeof e.key&&na(e,xc)&&t.add(e.key):e instanceof bu?na(e,xc)&&t.add(e.key.name):e instanceof lu?na(e,xc)&&t.add(e.property):e instanceof cu&&e.property instanceof lc&&na(e,xc)&&t.add(e.property.value))})),t}var Kp=n(851).lW,Gp=n(790),Hp=void 0!==Kp?e=>Kp.from(e,"base64").toString():e=>decodeURIComponent(escape(atob(e))),zp=void 0!==Kp?e=>Kp.from(e).toString("base64"):e=>btoa(unescape(encodeURIComponent(e)));function Xp(e,t,n){t[e]&&n.forEach((function(n){t[n]&&("object"!=typeof t[n]&&(t[n]={}),e in t[n]||(t[n][e]=t[e]))}))}function $p(e){e&&("props"in e?e.props instanceof Map||(e.props=function(e){var t=new Map;for(var n in e)Ys(e,n)&&"$"===n.charAt(0)&&t.set(n.substr(1),e[n]);return t}(e.props)):e.props=new Map)}function Wp(e){return{props:(t=e.props,n=Object.create(null),t.forEach((function(e,t){n["$"+t]=e})),n)};var t,n}function*jp(e,t,n){n&&"object"==typeof Gp&&Gp.env&&"string"==typeof Gp.env.TERSER_DEBUG_DIR&&function(e,t,n,i){if(!(n&&n.writeFileSync&&n.mkdirSync))return;try{n.mkdirSync(i)}catch(e){if("EEXIST"!==e.code)throw e}const r=`${i}/terser-debug-${9999999*Math.random()|0}.log`;t=t||{};const o=JSON.stringify(t,((e,t)=>"function"==typeof t?"[Function "+t.toString()+"]":t instanceof RegExp?"[RegExp "+t.toString()+"]":t),4),s=e=>"object"==typeof e&&t.parse&&t.parse.spidermonkey?JSON.stringify(e,null,2):"object"==typeof e?Object.keys(e).map((t=>t+": "+s(e[t]))).join("\n\n"):"string"==typeof e?"```\n"+e+"\n```":e;n.writeFileSync(r,"Options: \n"+o+"\n\nInput files:\n\n"+s(e)+"\n")}(e,t,n,Gp.env.TERSER_DEBUG_DIR);var i,r,o,s,a,l=(t=Ps(t,{compress:{},ecma:void 0,enclose:!1,ie8:!1,keep_classnames:void 0,keep_fnames:!1,mangle:{},module:!1,nameCache:null,output:null,format:null,parse:{},rename:void 0,safari10:!1,sourceMap:!1,spidermonkey:!1,timings:!1,toplevel:!1,warnings:!1,wrap:!1},!0)).timings&&{start:Date.now()};if(void 0===t.keep_classnames&&(t.keep_classnames=t.keep_fnames),void 0===t.rename&&(t.rename=t.compress&&t.mangle),t.output&&t.format)throw new Error("Please only specify either output or format option, preferrably format.");if(t.format=t.format||t.output||{},Xp("ecma",t,["parse","compress","format"]),Xp("ie8",t,["compress","mangle","format"]),Xp("keep_classnames",t,["compress","mangle"]),Xp("keep_fnames",t,["compress","mangle"]),Xp("module",t,["parse","compress","mangle"]),Xp("safari10",t,["mangle","format"]),Xp("toplevel",t,["compress","mangle"]),Xp("warnings",t,["compress"]),t.mangle&&(t.mangle=Ps(t.mangle,{cache:t.nameCache&&(t.nameCache.vars||{}),eval:!1,ie8:!1,keep_classnames:!1,keep_fnames:!1,module:!1,nth_identifier:Wc,properties:!1,reserved:[],safari10:!1,toplevel:!1},!0),t.mangle.properties&&("object"!=typeof t.mangle.properties&&(t.mangle.properties={}),t.mangle.properties.keep_quoted&&(i=t.mangle.properties.reserved,Array.isArray(i)||(i=[]),t.mangle.properties.reserved=i),t.nameCache&&!("cache"in t.mangle.properties)&&(t.mangle.properties.cache=t.nameCache.props||{})),$p(t.mangle.cache),$p(t.mangle.properties.cache)),t.sourceMap&&(t.sourceMap=Ps(t.sourceMap,{asObject:!1,content:null,filename:null,includeSources:!1,root:null,url:null},!0)),l&&(l.parse=Date.now()),e instanceof El)r=e;else{if(("string"==typeof e||t.parse.spidermonkey&&!Array.isArray(e))&&(e=[e]),t.parse=t.parse||{},t.parse.toplevel=null,t.parse.spidermonkey)t.parse.toplevel=Qa.from_mozilla_ast(Object.keys(e).reduce((function(t,n){return t?(t.body=t.body.concat(e[n].body),t):e[n]}),null));else for(var u in delete t.parse.spidermonkey,e)if(Ys(e,u)&&(t.parse.filename=u,t.parse.toplevel=ja(e[u],t.parse),t.sourceMap&&"inline"==t.sourceMap.content)){if(Object.keys(e).length>1)throw new Error("inline source map only works with singular input");t.sourceMap.content=(o=e[u],void 0,(s=/(?:^|[^.])\/\/# sourceMappingURL=data:application\/json(;[\w=-]*)?;base64,([+/0-9A-Za-z]*=*)\s*$/.exec(o))?Hp(s[2]):(console.warn("inline source map not found"),null))}if(null===t.parse.toplevel)throw new Error("no source file given");r=t.parse.toplevel}i&&"strict"!==t.mangle.properties.keep_quoted&&function(e,t){function n(e){zs(t,e)}e.walk(new Ac((function(e){e instanceof Su&&e.quote?n(e.key):e instanceof bu&&e.quote?n(e.key.name):e instanceof cu&&Vp(e.property,n)})))}(r,i),t.mangle&&t.mangle.properties&&(a=Up(r)),t.wrap&&(r=r.wrap_commonjs(t.wrap)),t.enclose&&(r=r.wrap_enclose(t.enclose)),l&&(l.rename=Date.now()),l&&(l.compress=Date.now()),t.compress&&(r=new Sp(t.compress,{mangle_options:t.mangle}).compress(r)),l&&(l.scope=Date.now()),t.mangle&&r.figure_out_scope(t.mangle),l&&(l.mangle=Date.now()),t.mangle&&(r.compute_char_frequency(t.mangle),r.mangle_names(t.mangle),r=function(e,t){var n=-1,i=new Map,r=t.nth_identifier||Wc;return e.transform(new Tc((function(e){e instanceof Ru||e instanceof Ou||e instanceof Au||e instanceof Du||e instanceof Fu?e.key.name=o(e.key.name):e instanceof uu&&(e.property=o(e.property))})));function o(e){let t=i.get(e);return t||(t=r.get(++n),i.set(e,t)),t}}(r,t.mangle)),l&&(l.properties=Date.now()),t.mangle&&t.mangle.properties&&(r=function(e,t,n=Up(e)){var i=(t=Ps(t,{builtins:!1,cache:null,debug:!1,keep_quoted:!1,nth_identifier:Wc,only_cache:!1,regex:null,reserved:null,undeclared:!1,only_annotated:!1},!0)).nth_identifier,r=t.reserved;Array.isArray(r)||(r=[r]);var o=new Set(r);t.builtins||function(e){Lp.forEach(i);var t={},n="object"==typeof global?global:self;function i(t){e.add(t)}["Symbol","Map","Promise","Proxy","Reflect","Set","WeakMap","WeakSet"].forEach((function(e){t[e]=n[e]||function(){}})),["null","true","false","NaN","Infinity","-Infinity","undefined"].forEach(i),[Object,Array,Function,Number,String,Boolean,Error,Math,Date,RegExp,t.Symbol,ArrayBuffer,DataView,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,eval,EvalError,Float32Array,Float64Array,Int8Array,Int16Array,Int32Array,isFinite,isNaN,JSON,t.Map,parseFloat,parseInt,t.Promise,t.Proxy,RangeError,ReferenceError,t.Reflect,t.Set,SyntaxError,TypeError,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,URIError,t.WeakMap,t.WeakSet].forEach((function(e){Object.getOwnPropertyNames(e).map(i),e.prototype&&Object.getOwnPropertyNames(e.prototype).map(i)}))}(o);var s,a=-1;s=t.cache?t.cache.props:new Map;var l,u=t.only_annotated,c=t.regex&&new RegExp(t.regex),f=!1!==t.debug;f&&(l=!0===t.debug?"":t.debug);var p=new Set,d=new Set;s.forEach((e=>d.add(e)));var h=!!t.keep_quoted;return e.walk(new Ac((function(e){if(e instanceof Ru||e instanceof Ou||e instanceof Au||e instanceof Du||e instanceof uu);else if(e instanceof Su)"string"!=typeof e.key||h&&e.quote||g(e.key);else if(e instanceof bu)h&&e.quote||g(e.key.name);else if(e instanceof lu){var n=!!t.undeclared;if(!n){for(var i=e;i.expression;)i=i.expression;n=!(i.thedef&&i.thedef.undeclared)}!n||h&&e.quote||g(e.property)}else e instanceof cu?h||Vp(e.property,g):e instanceof ru&&"Object.defineProperty"==e.expression.print_to_string()?Vp(e.args[1],g):e instanceof mu&&"in"===e.operator?Vp(e.left,g):e instanceof lc&&na(e,kc)&&g(e.value)}))),e.transform(new Tc((function(e){e instanceof Ru||e instanceof Ou||e instanceof Au||e instanceof Du||e instanceof uu||(e instanceof Su?"string"!=typeof e.key||h&&e.quote||(e.key=v(e.key)):e instanceof bu?h&&e.quote||(e.key.name=v(e.key.name)):e instanceof lu?h&&e.quote||(e.property=v(e.property)):!h&&e instanceof cu?e.property=y(e.property):e instanceof ru&&"Object.defineProperty"==e.expression.print_to_string()?e.args[1]=y(e.args[1]):e instanceof mu&&"in"===e.operator?e.left=y(e.left):e instanceof lc&&na(e,kc)&&(ra(e,kc),e.value=v(e.value)))})));function m(e){return!d.has(e)&&!o.has(e)&&(t.only_cache?s.has(e):!/^-?[0-9]+(\.[0-9]+)?(e[+-][0-9]+)?$/.test(e))}function _(e){return!(u&&!n.has(e))&&(c&&!c.test(e)?n.has(e):!o.has(e)&&(s.has(e)||p.has(e)))}function g(e){m(e)&&p.add(e),_(e)||d.add(e)}function v(e){if(!_(e))return e;var t=s.get(e);if(!t){if(f){var n="_$"+e+"$"+l+"_";m(n)&&(t=n)}if(!t)do{t=i.get(++a)}while(!m(t));s.set(e,t)}return t}function y(e){return e.transform(new Tc((function(e){if(e instanceof su){var t=e.expressions.length-1;e.expressions[t]=y(e.expressions[t])}else e instanceof lc?(ra(e,kc),e.value=v(e.value)):e instanceof _u&&(e.consequent=y(e.consequent),e.alternative=y(e.alternative));return e})))}}(r,t.mangle.properties,a)),l&&(l.format=Date.now());var c={};let f;if(t.format.ast&&(c.ast=r),t.format.spidermonkey&&(c.ast=r.to_mozilla_ast()),!Ys(t.format,"code")||t.format.code){if(f={...t.format},f.ast||(f._destroy_ast=!0,bc(r,(e=>{e instanceof yl&&(e.variables=void 0,e.enclosed=void 0,e.parent_scope=void 0),e.block_scope&&(e.block_scope.variables=void 0,e.block_scope.enclosed=void 0,e.parent_scope=void 0)}))),t.sourceMap){if(t.sourceMap.includeSources&&e instanceof El)throw new Error("original source content unavailable");f.source_map=yield*function*(e){var t;e=Ps(e,{file:null,root:null,orig:null,files:{}});var n=new Bp.SourceMapGenerator({file:e.file,sourceRoot:e.root});let i={__proto__:null},r=e.files;for(var o in r)Ys(r,o)&&(i[o]=r[o]);function s(e){return e.sourcesContent&&e.sourcesContent.every((e=>null==e))&&delete e.sourcesContent,void 0===e.file&&delete e.file,void 0===e.sourceRoot&&delete e.sourceRoot,e}return e.orig&&(t=yield new Bp.SourceMapConsumer(e.orig)).sourcesContent&&t.sources.forEach((function(e,n){var r=t.sourcesContent[n];r&&(i[e]=r)})),{add:function(e,r,o,s,a,l){let u={line:r,column:o};if(t){var c=t.originalPositionFor({line:s,column:a});if(null===c.source)return void n.addMapping({generated:u,original:null,source:null,name:null});e=c.source,s=c.line,a=c.column,l=c.name||l}n.addMapping({generated:u,original:{line:s,column:a},source:e,name:l}),n.setSourceContent(e,i[e])},getDecoded:function(){return n.toDecodedMap?s(n.toDecodedMap()):null},getEncoded:function(){return s(n.toJSON())},destroy:function(){t&&t.destroy&&t.destroy()}}}({file:t.sourceMap.filename,orig:t.sourceMap.content,root:t.sourceMap.root,files:t.sourceMap.includeSources?e:null})}delete f.ast,delete f.code,delete f.spidermonkey;var p=Bc(f);if(r.print(p),c.code=p.get(),t.sourceMap)if(Object.defineProperty(c,"map",{configurable:!0,enumerable:!0,get(){const e=f.source_map.getEncoded();return c.map=t.sourceMap.asObject?e:JSON.stringify(e)},set(e){Object.defineProperty(c,"map",{value:e,writable:!0})}}),c.decoded_map=f.source_map.getDecoded(),"inline"==t.sourceMap.url){var d="object"==typeof c.map?JSON.stringify(c.map):c.map;c.code+="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,"+zp(d)}else t.sourceMap.url&&(c.code+="\n//# sourceMappingURL="+t.sourceMap.url)}return t.nameCache&&t.mangle&&(t.mangle.cache&&(t.nameCache.vars=Wp(t.mangle.cache)),t.mangle.properties&&t.mangle.properties.cache&&(t.nameCache.props=Wp(t.mangle.properties.cache))),f&&f.source_map&&f.source_map.destroy(),l&&(l.end=Date.now(),c.timings={parse:.001*(l.rename-l.parse),rename:.001*(l.compress-l.rename),compress:.001*(l.scope-l.compress),scope:.001*(l.mangle-l.scope),mangle:.001*(l.properties-l.mangle),properties:.001*(l.format-l.properties),format:.001*(l.end-l.format),total:.001*(l.end-l.start)}),c}n(790);const qp={class:"language-js"};var Yp=n(221),Zp=n.n(Yp);n(74),n(385);const Jp={name:"Output",props:{code:String},mounted(){Zp().highlightAllUnder(this.$el)}},Qp=(0,ps.Z)(Jp,[["render",function(e,t,n,i,r,o){return ar(),fr("div",null,[vr("pre",null,[vr("code",qp,q(n.code),1)])])}]]),ed={class:"size"},td={class:"data"},nd={templates:{app:{title:"JavaScript Minify Tool",description:"A web tool for the DigitalOcean Community to quickly minify JavaScript files.",liveCompression:"Enable live compression as you type",compress:"Compress Code",input:"Input JavaScript",errors:"Errors",warnings:"Warnings",output:"Output JavaScript",map:"Source Map",mapTitle:"Generated Source Map",errorMsg:"An error occurred during minification",warningMsg:"A warning was generated during the minification",warningsMsg:"Some warnings were generated during the minification",oss:"This tool is {link|open-source on GitHub|https://github.com/do-community/minify-tool} under the {link|Apache-2.0|https://github.com/do-community/minify-tool/blob/master/LICENSE} license! We welcome feedback and contributions."},config:{terserDefaultsPreset:"Use the default options for Terser, which will mangle the code but not remove unused code",compressionPreset:"Enable compression with Terser defaults, mangling and removing any unused code",safeCompressionPreset:"Enable compression, but preserve functions and classes from being mangled or removed",module:"Module",moduleDesc:"Enable if you are minifying an ES6 module",filename:"File name",filenameDesc:"Provide a filename for your output script to enable source map generation",comments:"Comments",commentsRemove:"Remove all comments",commentsPreserve:"Preserve JSDoc @preserve and @license comments",commentsKeep:"Keep all comments",compress:{compress:"Compress",compressDesc:"Compress the output script",deadCodeDesc:"Remove unreachable code from the script",dropConsoleDesc:"Remove calls to console.* from the script",dropDebuggerDesc:"Remove calls to debugger from the script",keepClassnamesDesc:"Preserve unused classes in the script",keepFargsDesc:"Preserve unused arguments within functions",keepFnamesDesc:"Preserve unused functions in the script",keepInfinityDesc:"Preserve `Infinity` usage, instead of replacing it with `1/0`"},mangle:{mangle:"Mangle",mangleDesc:"Mangle variable names within the script",evalDesc:"Mangle variable names within `eval` scopes",classnamesDesc:"Enable to preserve class names and not mangle them",fnamesDesc:"Enable to preserve function names and not mangle them",toplevelDesc:"Enable to mangle names within the top-level scope",safari10Desc:"Enable to work around a Safari 10 iterator bug"}},explainer:{whyMinifyYourJavaScript:"Why minify your JavaScript?",whyMinifyYourJavaScriptContent:["Minifying, or minification, is where you remove unnecessary characters from your code, whether they might be whitespace (such as indentation), code that isn't ever used, comments in your code or long names for variables that can be replaced with something shorter.","Minification of your code results in it taking up less space, making it faster to send from a server to a client, as well as using less bandwidth in doing so. This improves the user experience on your site as it can load faster.","You should only minify the code that you are distributing though, not your source version that you are writing, as minified code is harder to read and understand, making debugging more complicated. Providing a source map helps with this, as it maps the minified code back to the original source code, allowing production errors to be mapped to the correct bit of code in the source version."],usingTerserInAProductionPipeline:"Using Terser in a production pipeline",usingTerserInAProductionPipelineContent:["There are many different options available for minifying your code in a production workflow, such as uglify-js or minify, but Terser seems to be the most popular tool currently available, as it is able to handle both ES5 & ES6 syntax out of the box.","Terser is available on NPM, and can be installed in your project with `npm install terser`. Optionally, you can install it globally on your machine by adding the `-g` flag to the command, allowing the CLI to be used anywhere and the module to be included in any project.","Once installed, there are two main ways to interact with Terser. Either, you can use the command line interface (CLI) via your terminal/console, or you can use the Terser JavaScript API which allows for more fine control over how your code is minified.","To minify a file with Terser via the CLI, you can run `terser my_code.js --output my_file.min.js`. Compression and mangling can be enabled with the `--compress` and `--mangle` flags respectively. Sourcemap generation can also be enabled with the `--source-map` flag. An example of how to minify your code using the Terser JavaScript API is included below."],forMoreInformationPleaseSee:"For more information on using the Terser CLI & API, please see",theirDocumentationOnGitHub:"their documentation on GitHub.",exampleUsageForTerser:"Example usage for Terser with your current config"},size:{codeSize:"Code Size",before:"Before:",after:"After:",saving:"Saving:"}}};var id=n(271),rd=n.n(id);const od=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],sd=["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],ad=["b","kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],ld=["b","kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],ud=(e,t,n)=>{let i=e;return"string"==typeof t||Array.isArray(t)?i=e.toLocaleString(t,n):!0!==t&&void 0===n||(i=e.toLocaleString(void 0,n)),i},cd={name:"Size",props:{before:String,after:String},data:()=>({i18n:nd}),computed:{beforeSize(){return rd()(this.$props.before)},afterSize(){return rd()(this.$props.after)},saving(){return this.beforeSize-this.afterSize},savingPer(){return this.saving/this.beforeSize*100},savingClass(){return this.savingPer<=0?"has-text-danger":this.savingPer<=30?"has-text-warning":"has-text-success"}},methods:{prettyBytes:function(e,t){if(!Number.isFinite(e))throw new TypeError(`Expected a finite number, got ${typeof e}: ${e}`);const n=(t={bits:!1,binary:!1,space:!0,...t}).bits?t.binary?ld:ad:t.binary?sd:od,i=t.space?" ":"";if(t.signed&&0===e)return` 0${i}${n[0]}`;const r=e<0,o=r?"-":t.signed?"+":"";let s;if(r&&(e=-e),void 0!==t.minimumFractionDigits&&(s={minimumFractionDigits:t.minimumFractionDigits}),void 0!==t.maximumFractionDigits&&(s={maximumFractionDigits:t.maximumFractionDigits,...s}),e<1)return o+ud(e,t.locale,s)+i+n[0];const a=Math.min(Math.floor(t.binary?Math.log(e)/Math.log(1024):Math.log10(e)/3),n.length-1);return e/=(t.binary?1024:1e3)**a,s||(e=e.toPrecision(3)),o+ud(Number(e),t.locale,s)+i+n[a]}}},fd=(0,ps.Z)(cd,[["render",function(e,t,n,i,r,o){return ar(),fr("div",ed,[vr("h4",null,q(r.i18n.templates.size.codeSize),1),vr("div",td,[vr("p",null,[Sr(q(r.i18n.templates.size.before)+" ",1),vr("b",null,q(o.prettyBytes(o.beforeSize)),1)]),vr("p",null,[Sr(q(r.i18n.templates.size.after)+" ",1),vr("b",null,q(o.prettyBytes(o.afterSize)),1)]),vr("p",null,[Sr(q(r.i18n.templates.size.saving)+" ",1),vr("b",{class:X(o.savingClass)},q((o.savingPer||0).toLocaleString(void 0,{maximumFractionDigits:2}))+"% ("+q(o.prettyBytes(o.saving))+") ",3)])])])}]]),pd={class:"language-json"};n(333);const dd={name:"SourceMap",props:{code:String},mounted(){Zp().highlightAllUnder(this.$el)}},hd=(0,ps.Z)(dd,[["render",function(e,t,n,i,r,o){return ar(),fr("div",null,[vr("pre",null,[vr("code",pd,q(n.code),1)])])}]]),md={class:"config"},_d=vr("h4",null,"Config Presets",-1),gd={class:"field is-grouped presets"},vd={class:"control"},yd=["content"],Ed={class:"control"},bd=["content"],Sd={class:"control"},Dd=["content"],Ad=vr("h4",null,"Terser Config",-1),Td={class:"field is-horizontal is-aligned-top"},Cd={class:"field-label"},wd={class:"label"},Od={class:"field-body"},kd={class:"field"},xd={class:"control"},Rd={class:"checkbox"},Fd=vr("i",{class:"icon fas fa-check"},null,-1),Md={class:"field is-horizontal"},Id={class:"field-label"},Nd={class:"label"},Pd={class:"field-body"},Bd={class:"field"},Ld={class:"control"},Vd=vr("br",null,null,-1),Ud={class:"field is-horizontal"},Kd={class:"field-label"},Gd={class:"label"},Hd={class:"field-body"},zd={class:"field"},Xd={class:"control"};var $d=Object.defineProperty,Wd=Object.defineProperties,jd=Object.getOwnPropertyDescriptors,qd=Object.getOwnPropertySymbols,Yd=Object.prototype.hasOwnProperty,Zd=Object.prototype.propertyIsEnumerable,Jd=(e,t,n)=>t in e?$d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qd=(e,t)=>{for(var n in t||(t={}))Yd.call(t,n)&&Jd(e,n,t[n]);if(qd)for(var n of qd(t))Zd.call(t,n)&&Jd(e,n,t[n]);return e},eh=(e,t)=>Wd(e,jd(t));const th={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(e){this.autoscroll&&e&&this.$nextTick((()=>this.maybeAdjustScroll()))}},methods:{maybeAdjustScroll(){var e;const t=(null==(e=this.$refs.dropdownMenu)?void 0:e.children[this.typeAheadPointer])||!1;if(t){const e=this.getDropdownViewport(),{top:n,bottom:i,height:r}=t.getBoundingClientRect();if(ne.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(e.height-r)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},nh={data:()=>({typeAheadPointer:-1}),watch:{filteredOptions(){for(let e=0;e=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown(){for(let e=this.typeAheadPointer+1;e({mutableLoading:!1}),watch:{search(){this.$emit("search",this.search,this.toggleLoading)},loading(e){this.mutableLoading=e}},methods:{toggleLoading(e=null){return this.mutableLoading=null==e?!this.mutableLoading:e}}},rh=(e,t)=>{const n=e.__vccOpts||e;for(const[e,i]of t)n[e]=i;return n},oh={},sh={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"},ah=[vr("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1)],lh=rh(oh,[["render",function(e,t){return ar(),fr("svg",sh,ah)}]]),uh={},ch={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"},fh=[vr("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1)],ph={Deselect:lh,OpenIndicator:rh(uh,[["render",function(e,t){return ar(),fr("svg",ch,fh)}]])},dh={mounted(e,{instance:t}){if(t.appendToBody){const{height:n,top:i,left:r,width:o}=t.$refs.toggle.getBoundingClientRect();let s=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;e.unbindPosition=t.calculatePosition(e,t,{width:o+"px",left:s+r+"px",top:a+i+n+"px"}),document.body.appendChild(e)}},unmounted(e,{instance:t}){t.appendToBody&&(e.unbindPosition&&"function"==typeof e.unbindPosition&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}};let hh=0;const mh={components:Qd({},ph),directives:{appendToBody:dh},mixins:[th,nh,ih],compatConfig:{MODE:3},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:e=>e},selectable:{type:Function,default:e=>!0},getOptionLabel:{type:Function,default(e){return"object"==typeof e?e.hasOwnProperty(this.label)?e[this.label]:console.warn(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(e)}.\nhttps://vue-select.org/api/props.html#getoptionlabel`):e}},getOptionKey:{type:Function,default(e){if("object"!=typeof e)return e;try{return e.hasOwnProperty("id")?e.id:function(e){const t={};return Object.keys(e).sort().forEach((n=>{t[n]=e[n]})),JSON.stringify(t)}(e)}catch(t){return console.warn("[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\nhttps://vue-select.org/api/props.html#getoptionkey",e,t)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default:(e,t,n)=>(t||"").toLocaleLowerCase().indexOf(n.toLocaleLowerCase())>-1},filter:{type:Function,default(e,t){return e.filter((e=>{let n=this.getOptionLabel(e);return"number"==typeof n&&(n=n.toString()),this.filterBy(e,n,t)}))}},createOption:{type:Function,default(e){return"object"==typeof this.optionList[0]?{[this.label]:e}:e}},resetOnOptionsChange:{default:!1,validator:e=>["function","boolean"].includes(typeof e)},clearSearchOnBlur:{type:Function,default:function({clearSearchOnSelect:e,multiple:t}){return e&&!t}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:(e,t)=>e},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(e,t,{width:n,top:i,left:r}){e.style.top=i,e.style.left=r,e.style.width=n}},dropdownShouldOpen:{type:Function,default:({noDrop:e,open:t,mutableLoading:n})=>!e&&t&&!n},uid:{type:[String,Number],default:()=>++hh}},data:()=>({search:"",open:!1,isComposing:!1,pushedTags:[],_value:[],deselectButtons:[]}),computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return void 0===this.modelValue||this.isReducingValues},selectedValue(){let e=this.modelValue;return this.isTrackingValues&&(e=this.$data._value),null!=e&&""!==e?[].concat(e):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const e={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:Qd({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,"aria-autocomplete":"list","aria-labelledby":`vs${this.uid}__combobox`,"aria-controls":`vs${this.uid}__listbox`,ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs${this.uid}__option-${this.typeAheadPointer}`}:{}),events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:e=>this.search=e.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:e,listFooter:e,header:eh(Qd({},e),{deselect:this.deselect}),footer:eh(Qd({},e),{deselect:this.deselect})}},childComponents(){return Qd(Qd({},ph),this.components)},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const e=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e;const t=this.search.length?this.filter(e,this.search,this):e;if(this.taggable&&this.search.length){const e=this.createOption(this.search);this.optionExists(e)||t.unshift(e)}return t},isValueEmpty(){return 0===this.selectedValue.length},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(e,t){!this.taggable&&(()=>"function"==typeof this.resetOnOptionsChange?this.resetOnOptionsChange(e,t,this.selectedValue):this.resetOnOptionsChange)()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple(){this.clearSelection()},open(e){this.$emit(e?"open":"close")}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(e){Array.isArray(e)?this.$data._value=e.map((e=>this.findOptionFromReducedValue(e))):this.$data._value=this.findOptionFromReducedValue(e)},select(e){this.$emit("option:selecting",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&(this.$emit("option:created",e),this.pushTag(e)),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit("option:selected",e)),this.onAfterSelect(e)},deselect(e){this.$emit("option:deselecting",e),this.updateValue(this.selectedValue.filter((t=>!this.optionComparator(t,e)))),this.$emit("option:deselected",e)},clearSelection(){this.updateValue(this.multiple?[]:null)},onAfterSelect(e){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search="")},updateValue(e){void 0===this.modelValue&&(this.$data._value=e),null!==e&&(e=Array.isArray(e)?e.map((e=>this.reduce(e))):this.reduce(e)),this.$emit("update:modelValue",e)},toggleDropdown(e){const t=e.target!==this.searchEl;t&&e.preventDefault();const n=[...this.deselectButtons||[],this.$refs.clearButton];void 0===this.searchEl||n.filter(Boolean).some((t=>t.contains(e.target)||t===e.target))?e.preventDefault():this.open&&t?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(e){return this.selectedValue.some((t=>this.optionComparator(t,e)))},isOptionDeselectable(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},optionComparator(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue(e){const t=[...this.options,...this.pushedTags].filter((t=>JSON.stringify(this.reduce(t))===JSON.stringify(e)));return 1===t.length?t[0]:t.find((e=>this.optionComparator(e,this.$data._value)))||e},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let e=null;this.multiple&&(e=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(e)}},optionExists(e){return this.optionList.some((t=>this.optionComparator(t,e)))},normalizeOptionForSlot(e){return"object"==typeof e?e:{[this.label]:e}},pushTag(e){this.pushedTags.push(e)},onEscape(){this.search.length?this.search="":this.searchEl.blur()},onSearchBlur(){if(!this.mousedown||this.searching){const{clearSearchOnSelect:e,multiple:t}=this;return this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=""),void this.closeSearchOptions()}this.mousedown=!1,0!==this.search.length||0!==this.options.length||this.closeSearchOptions()},onSearchFocus(){this.open=!0,this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onSearchKeyDown(e){const t=e=>(e.preventDefault(),!this.isComposing&&this.typeAheadSelect()),n={8:e=>this.maybeDeleteValue(),9:e=>this.onTab(),27:e=>this.onEscape(),38:e=>(e.preventDefault(),this.typeAheadUp()),40:e=>(e.preventDefault(),this.typeAheadDown())};this.selectOnKeyCodes.forEach((e=>n[e]=t));const i=this.mapKeydown(n,this);if("function"==typeof i[e.keyCode])return i[e.keyCode](e)}}},_h=["dir"],gh=["id","aria-expanded","aria-owns"],vh={ref:"selectedOptions",class:"vs__selected-options"},yh=["disabled","title","aria-label","onClick"],Eh={ref:"actions",class:"vs__actions"},bh=["disabled"],Sh={class:"vs__spinner"},Dh=["id"],Ah=["id","aria-selected","onMouseover","onClick"],Th={key:0,class:"vs__no-options"},Ch=Sr(" Sorry, no matching options. "),wh=["id"],Oh=rh(mh,[["render",function(e,t,n,i,r,o){const s=vn("append-to-body");return ar(),fr("div",{dir:n.dir,class:X(["v-select",o.stateClasses])},[ci(e.$slots,"header",$(Er(o.scope.header))),vr("div",{id:`vs${n.uid}__combobox`,ref:"toggle",class:"vs__dropdown-toggle",role:"combobox","aria-expanded":o.dropdownOpen.toString(),"aria-owns":`vs${n.uid}__listbox`,"aria-label":"Search for option",onMousedown:t[1]||(t[1]=e=>o.toggleDropdown(e))},[vr("div",vh,[(ar(!0),fr(tr,null,li(o.selectedValue,((t,i)=>ci(e.$slots,"selected-option-container",{option:o.normalizeOptionForSlot(t),deselect:o.deselect,multiple:n.multiple,disabled:n.disabled},(()=>[(ar(),fr("span",{key:n.getOptionKey(t),class:"vs__selected"},[ci(e.$slots,"selected-option",$(Er(o.normalizeOptionForSlot(t))),(()=>[Sr(q(n.getOptionLabel(t)),1)])),n.multiple?(ar(),fr("button",{key:0,ref_for:!0,ref:e=>r.deselectButtons[i]=e,disabled:n.disabled,type:"button",class:"vs__deselect",title:`Deselect ${n.getOptionLabel(t)}`,"aria-label":`Deselect ${n.getOptionLabel(t)}`,onClick:e=>o.deselect(t)},[(ar(),pr(gn(o.childComponents.Deselect)))],8,yh)):Dr("",!0)]))])))),256)),ci(e.$slots,"search",$(Er(o.scope.search)),(()=>[vr("input",wr({class:"vs__search"},o.scope.search.attributes,pi(o.scope.search.events)),null,16)]))],512),vr("div",Eh,[kn(vr("button",{ref:"clearButton",disabled:n.disabled,type:"button",class:"vs__clear",title:"Clear Selected","aria-label":"Clear Selected",onClick:t[0]||(t[0]=(...e)=>o.clearSelection&&o.clearSelection(...e))},[(ar(),pr(gn(o.childComponents.Deselect)))],8,bh),[[po,o.showClearButton]]),ci(e.$slots,"open-indicator",$(Er(o.scope.openIndicator)),(()=>[n.noDrop?Dr("",!0):(ar(),pr(gn(o.childComponents.OpenIndicator),$(wr({key:0},o.scope.openIndicator.attributes)),null,16))])),ci(e.$slots,"spinner",$(Er(o.scope.spinner)),(()=>[kn(vr("div",Sh,"Loading...",512),[[po,e.mutableLoading]])]))],512)],40,gh),yr(Qr,{name:n.transition},{default:un((()=>[o.dropdownOpen?kn((ar(),fr("ul",{id:`vs${n.uid}__listbox`,ref:"dropdownMenu",key:`vs${n.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox",tabindex:"-1",onMousedown:t[2]||(t[2]=No(((...e)=>o.onMousedown&&o.onMousedown(...e)),["prevent"])),onMouseup:t[3]||(t[3]=(...e)=>o.onMouseUp&&o.onMouseUp(...e))},[ci(e.$slots,"list-header",$(Er(o.scope.listHeader))),(ar(!0),fr(tr,null,li(o.filteredOptions,((t,i)=>(ar(),fr("li",{id:`vs${n.uid}__option-${i}`,key:n.getOptionKey(t),role:"option",class:X(["vs__dropdown-option",{"vs__dropdown-option--deselect":o.isOptionDeselectable(t)&&i===e.typeAheadPointer,"vs__dropdown-option--selected":o.isOptionSelected(t),"vs__dropdown-option--highlight":i===e.typeAheadPointer,"vs__dropdown-option--disabled":!n.selectable(t)}]),"aria-selected":i===e.typeAheadPointer||null,onMouseover:r=>n.selectable(t)?e.typeAheadPointer=i:null,onClick:No((e=>n.selectable(t)?o.select(t):null),["prevent","stop"])},[ci(e.$slots,"option",$(Er(o.normalizeOptionForSlot(t))),(()=>[Sr(q(n.getOptionLabel(t)),1)]))],42,Ah)))),128)),0===o.filteredOptions.length?(ar(),fr("li",Th,[ci(e.$slots,"no-options",$(Er(o.scope.noOptions)),(()=>[Ch]))])):Dr("",!0),ci(e.$slots,"list-footer",$(Er(o.scope.listFooter)))],40,Dh)),[[s]]):(ar(),fr("ul",{key:1,id:`vs${n.uid}__listbox`,role:"listbox",style:{display:"none",visibility:"hidden"}},null,8,wh))])),_:3},8,["name"]),ci(e.$slots,"footer",$(Er(o.scope.footer)))],10,_h)}]]);var kh="top",xh="bottom",Rh="right",Fh="left",Mh="auto",Ih=[kh,xh,Rh,Fh],Nh="start",Ph="end",Bh="clippingParents",Lh="viewport",Vh="popper",Uh="reference",Kh=Ih.reduce((function(e,t){return e.concat([t+"-"+Nh,t+"-"+Ph])}),[]),Gh=[].concat(Ih,[Mh]).reduce((function(e,t){return e.concat([t,t+"-"+Nh,t+"-"+Ph])}),[]),Hh=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function zh(e){return e?(e.nodeName||"").toLowerCase():null}function Xh(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function $h(e){return e instanceof Xh(e).Element||e instanceof Element}function Wh(e){return e instanceof Xh(e).HTMLElement||e instanceof HTMLElement}function jh(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Xh(e).ShadowRoot||e instanceof ShadowRoot)}var qh={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},r=t.elements[e];Wh(r)&&zh(r)&&(Object.assign(r.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});Wh(i)&&zh(i)&&(Object.assign(i.style,o),Object.keys(r).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function Yh(e){return e.split("-")[0]}var Zh=Math.max,Jh=Math.min,Qh=Math.round;function em(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),i=1,r=1;if(Wh(e)&&t){var o=e.offsetHeight,s=e.offsetWidth;s>0&&(i=Qh(n.width)/s||1),o>0&&(r=Qh(n.height)/o||1)}return{width:n.width/i,height:n.height/r,top:n.top/r,right:n.right/i,bottom:n.bottom/r,left:n.left/i,x:n.left/i,y:n.top/r}}function tm(e){var t=em(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function nm(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&jh(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function im(e){return Xh(e).getComputedStyle(e)}function rm(e){return["table","td","th"].indexOf(zh(e))>=0}function om(e){return(($h(e)?e.ownerDocument:e.document)||window.document).documentElement}function sm(e){return"html"===zh(e)?e:e.assignedSlot||e.parentNode||(jh(e)?e.host:null)||om(e)}function am(e){return Wh(e)&&"fixed"!==im(e).position?e.offsetParent:null}function lm(e){for(var t=Xh(e),n=am(e);n&&rm(n)&&"static"===im(n).position;)n=am(n);return n&&("html"===zh(n)||"body"===zh(n)&&"static"===im(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Wh(e)&&"fixed"===im(e).position)return null;for(var n=sm(e);Wh(n)&&["html","body"].indexOf(zh(n))<0;){var i=im(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function um(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function cm(e,t,n){return Zh(e,Jh(t,n))}function fm(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function pm(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var dm={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,i=e.name,r=e.options,o=n.elements.arrow,s=n.modifiersData.popperOffsets,a=Yh(n.placement),l=um(a),u=[Fh,Rh].indexOf(a)>=0?"height":"width";if(o&&s){var c=function(e,t){return fm("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:pm(e,Ih))}(r.padding,n),f=tm(o),p="y"===l?kh:Fh,d="y"===l?xh:Rh,h=n.rects.reference[u]+n.rects.reference[l]-s[l]-n.rects.popper[u],m=s[l]-n.rects.reference[l],_=lm(o),g=_?"y"===l?_.clientHeight||0:_.clientWidth||0:0,v=h/2-m/2,y=c[p],E=g-f[u]-c[d],b=g/2-f[u]/2+v,S=cm(y,b,E),D=l;n.modifiersData[i]=((t={})[D]=S,t.centerOffset=S-b,t)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&nm(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function hm(e){return e.split("-")[1]}var mm={top:"auto",right:"auto",bottom:"auto",left:"auto"};function _m(e){var t,n=e.popper,i=e.popperRect,r=e.placement,o=e.variation,s=e.offsets,a=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,p=!0===c?function(e){var t=e.x,n=e.y,i=window.devicePixelRatio||1;return{x:Qh(t*i)/i||0,y:Qh(n*i)/i||0}}(s):"function"==typeof c?c(s):s,d=p.x,h=void 0===d?0:d,m=p.y,_=void 0===m?0:m,g=s.hasOwnProperty("x"),v=s.hasOwnProperty("y"),y=Fh,E=kh,b=window;if(u){var S=lm(n),D="clientHeight",A="clientWidth";S===Xh(n)&&"static"!==im(S=om(n)).position&&"absolute"===a&&(D="scrollHeight",A="scrollWidth"),(r===kh||(r===Fh||r===Rh)&&o===Ph)&&(E=xh,_-=(f&&b.visualViewport?b.visualViewport.height:S[D])-i.height,_*=l?1:-1),r!==Fh&&(r!==kh&&r!==xh||o!==Ph)||(y=Rh,h-=(f&&b.visualViewport?b.visualViewport.width:S[A])-i.width,h*=l?1:-1)}var T,C=Object.assign({position:a},u&&mm);return l?Object.assign({},C,((T={})[E]=v?"0":"",T[y]=g?"0":"",T.transform=(b.devicePixelRatio||1)<=1?"translate("+h+"px, "+_+"px)":"translate3d("+h+"px, "+_+"px, 0)",T)):Object.assign({},C,((t={})[E]=v?_+"px":"",t[y]=g?h+"px":"",t.transform="",t))}var gm={passive:!0},vm={left:"right",right:"left",bottom:"top",top:"bottom"};function ym(e){return e.replace(/left|right|bottom|top/g,(function(e){return vm[e]}))}var Em={start:"end",end:"start"};function bm(e){return e.replace(/start|end/g,(function(e){return Em[e]}))}function Sm(e){var t=Xh(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Dm(e){return em(om(e)).left+Sm(e).scrollLeft}function Am(e){var t=im(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+i)}function Tm(e){return["html","body","#document"].indexOf(zh(e))>=0?e.ownerDocument.body:Wh(e)&&Am(e)?e:Tm(sm(e))}function Cm(e,t){var n;void 0===t&&(t=[]);var i=Tm(e),r=i===(null==(n=e.ownerDocument)?void 0:n.body),o=Xh(i),s=r?[o].concat(o.visualViewport||[],Am(i)?i:[]):i,a=t.concat(s);return r?a:a.concat(Cm(sm(s)))}function wm(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Om(e,t){return t===Lh?wm(function(e){var t=Xh(e),n=om(e),i=t.visualViewport,r=n.clientWidth,o=n.clientHeight,s=0,a=0;return i&&(r=i.width,o=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=i.offsetLeft,a=i.offsetTop)),{width:r,height:o,x:s+Dm(e),y:a}}(e)):$h(t)?function(e){var t=em(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):wm(function(e){var t,n=om(e),i=Sm(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=Zh(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=Zh(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-i.scrollLeft+Dm(e),l=-i.scrollTop;return"rtl"===im(r||n).direction&&(a+=Zh(n.clientWidth,r?r.clientWidth:0)-o),{width:o,height:s,x:a,y:l}}(om(e)))}function km(e){var t,n=e.reference,i=e.element,r=e.placement,o=r?Yh(r):null,s=r?hm(r):null,a=n.x+n.width/2-i.width/2,l=n.y+n.height/2-i.height/2;switch(o){case kh:t={x:a,y:n.y-i.height};break;case xh:t={x:a,y:n.y+n.height};break;case Rh:t={x:n.x+n.width,y:l};break;case Fh:t={x:n.x-i.width,y:l};break;default:t={x:n.x,y:n.y}}var u=o?um(o):null;if(null!=u){var c="y"===u?"height":"width";switch(s){case Nh:t[u]=t[u]-(n[c]/2-i[c]/2);break;case Ph:t[u]=t[u]+(n[c]/2-i[c]/2)}}return t}function xm(e,t){void 0===t&&(t={});var n=t,i=n.placement,r=void 0===i?e.placement:i,o=n.boundary,s=void 0===o?Bh:o,a=n.rootBoundary,l=void 0===a?Lh:a,u=n.elementContext,c=void 0===u?Vh:u,f=n.altBoundary,p=void 0!==f&&f,d=n.padding,h=void 0===d?0:d,m=fm("number"!=typeof h?h:pm(h,Ih)),_=c===Vh?Uh:Vh,g=e.rects.popper,v=e.elements[p?_:c],y=function(e,t,n){var i="clippingParents"===t?function(e){var t=Cm(sm(e)),n=["absolute","fixed"].indexOf(im(e).position)>=0,i=n&&Wh(e)?lm(e):e;return $h(i)?t.filter((function(e){return $h(e)&&nm(e,i)&&"body"!==zh(e)&&(!n||"static"!==im(e).position)})):[]}(e):[].concat(t),r=[].concat(i,[n]),o=r[0],s=r.reduce((function(t,n){var i=Om(e,n);return t.top=Zh(i.top,t.top),t.right=Jh(i.right,t.right),t.bottom=Jh(i.bottom,t.bottom),t.left=Zh(i.left,t.left),t}),Om(e,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}($h(v)?v:v.contextElement||om(e.elements.popper),s,l),E=em(e.elements.reference),b=km({reference:E,element:g,strategy:"absolute",placement:r}),S=wm(Object.assign({},g,b)),D=c===Vh?S:E,A={top:y.top-D.top+m.top,bottom:D.bottom-y.bottom+m.bottom,left:y.left-D.left+m.left,right:D.right-y.right+m.right},T=e.modifiersData.offset;if(c===Vh&&T){var C=T[r];Object.keys(A).forEach((function(e){var t=[Rh,xh].indexOf(e)>=0?1:-1,n=[kh,xh].indexOf(e)>=0?"y":"x";A[e]+=C[n]*t}))}return A}function Rm(e,t){void 0===t&&(t={});var n=t,i=n.placement,r=n.boundary,o=n.rootBoundary,s=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?Gh:l,c=hm(i),f=c?a?Kh:Kh.filter((function(e){return hm(e)===c})):Ih,p=f.filter((function(e){return u.indexOf(e)>=0}));0===p.length&&(p=f);var d=p.reduce((function(t,n){return t[n]=xm(e,{placement:n,boundary:r,rootBoundary:o,padding:s})[Yh(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var Fm={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var r=n.mainAxis,o=void 0===r||r,s=n.altAxis,a=void 0===s||s,l=n.fallbackPlacements,u=n.padding,c=n.boundary,f=n.rootBoundary,p=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,_=t.options.placement,g=Yh(_),v=l||(g!==_&&h?function(e){if(Yh(e)===Mh)return[];var t=ym(e);return[bm(e),t,bm(t)]}(_):[ym(_)]),y=[_].concat(v).reduce((function(e,n){return e.concat(Yh(n)===Mh?Rm(t,{placement:n,boundary:c,rootBoundary:f,padding:u,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),E=t.rects.reference,b=t.rects.popper,S=new Map,D=!0,A=y[0],T=0;T=0,x=k?"width":"height",R=xm(t,{placement:C,boundary:c,rootBoundary:f,altBoundary:p,padding:u}),F=k?O?Rh:Fh:O?xh:kh;E[x]>b[x]&&(F=ym(F));var M=ym(F),I=[];if(o&&I.push(R[w]<=0),a&&I.push(R[F]<=0,R[M]<=0),I.every((function(e){return e}))){A=C,D=!1;break}S.set(C,I)}if(D)for(var N=function(e){var t=y.find((function(t){var n=S.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return A=t,"break"},P=h?3:1;P>0&&"break"!==N(P);P--);t.placement!==A&&(t.modifiersData[i]._skip=!0,t.placement=A,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Mm(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Im(e){return[kh,Rh,xh,Fh].some((function(t){return e[t]>=0}))}var Nm={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,i=e.name,r=n.offset,o=void 0===r?[0,0]:r,s=Gh.reduce((function(e,n){return e[n]=function(e,t,n){var i=Yh(e),r=[Fh,kh].indexOf(i)>=0?-1:1,o="function"==typeof n?n(Object.assign({},t,{placement:e})):n,s=o[0],a=o[1];return s=s||0,a=(a||0)*r,[Fh,Rh].indexOf(i)>=0?{x:a,y:s}:{x:s,y:a}}(n,t.rects,o),e}),{}),a=s[t.placement],l=a.x,u=a.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[i]=s}};function Pm(e,t,n){void 0===n&&(n=!1);var i,r,o=Wh(t),s=Wh(t)&&function(e){var t=e.getBoundingClientRect(),n=Qh(t.width)/e.offsetWidth||1,i=Qh(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=om(t),l=em(e,s),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!n)&&(("body"!==zh(t)||Am(a))&&(u=(i=t)!==Xh(i)&&Wh(i)?{scrollLeft:(r=i).scrollLeft,scrollTop:r.scrollTop}:Sm(i)),Wh(t)?((c=em(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=Dm(a))),{x:l.left+u.scrollLeft-c.x,y:l.top+u.scrollTop-c.y,width:l.width,height:l.height}}function Bm(e){var t=new Map,n=new Set,i=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&r(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),i}var Lm={placement:"bottom",modifiers:[],strategy:"absolute"};function Vm(){for(var e=arguments.length,t=new Array(e),n=0;nn?n:i}(ae,te,le):cm(d?ae:ie,te,d?le:re);S[b]=ue,O[b]=ue-te}t.modifiersData[i]=O}},requiresIfExists:["offset"]},dm,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,s=xm(t,{elementContext:"reference"}),a=xm(t,{altBoundary:!0}),l=Mm(s,i),u=Mm(a,r,o),c=Im(l),f=Im(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}}]}),Gm="tippy-content",Hm="tippy-backdrop",zm="tippy-arrow",Xm="tippy-svg-arrow",$m={passive:!0,capture:!0},Wm=function(){return document.body};function jm(e,t,n){if(Array.isArray(e)){var i=e[t];return null==i?Array.isArray(n)?n[t]:n:i}return e}function qm(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function Ym(e,t){return"function"==typeof e?e.apply(void 0,t):e}function Zm(e,t){return 0===t?e:function(i){clearTimeout(n),n=setTimeout((function(){e(i)}),t)};var n}function Jm(e){return[].concat(e)}function Qm(e,t){-1===e.indexOf(t)&&e.push(t)}function e_(e){return e.split("-")[0]}function t_(e){return[].slice.call(e)}function n_(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function i_(){return document.createElement("div")}function r_(e){return["Element","Fragment"].some((function(t){return qm(e,t)}))}function o_(e){return qm(e,"MouseEvent")}function s_(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function a_(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function l_(e){var t,n=Jm(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function u_(e,t,n){var i=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[i](t,n)}))}function c_(e,t){for(var n=t;n;){var i;if(e.contains(n))return!0;n=null==n.getRootNode||null==(i=n.getRootNode())?void 0:i.host}return!1}var f_={isTouch:!1},p_=0;function d_(){f_.isTouch||(f_.isTouch=!0,window.performance&&document.addEventListener("mousemove",h_))}function h_(){var e=performance.now();e-p_<20&&(f_.isTouch=!1,document.removeEventListener("mousemove",h_)),p_=e}function m_(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var __=!("undefined"==typeof window||"undefined"==typeof document||!window.msCrypto),g_=Object.assign({appendTo:Wm,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),v_=Object.keys(g_);function y_(e){var t=(e.plugins||[]).reduce((function(t,n){var i,r=n.name,o=n.defaultValue;return r&&(t[r]=void 0!==e[r]?e[r]:null!=(i=g_[r])?i:o),t}),{});return Object.assign({},e,t)}function E_(e,t){var n=Object.assign({},t,{content:Ym(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(y_(Object.assign({},g_,{plugins:t}))):v_).reduce((function(t,n){var i=(e.getAttribute("data-tippy-"+n)||"").trim();if(!i)return t;if("content"===n)t[n]=i;else try{t[n]=JSON.parse(i)}catch(e){t[n]=i}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},g_.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}var b_=function(){return"innerHTML"};function S_(e,t){e[b_()]=t}function D_(e){var t=i_();return!0===e?t.className=zm:(t.className=Xm,r_(e)?t.appendChild(e):S_(t,e)),t}function A_(e,t){r_(t.content)?(S_(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?S_(e,t.content):e.textContent=t.content)}function T_(e){var t=e.firstElementChild,n=t_(t.children);return{box:t,content:n.find((function(e){return e.classList.contains(Gm)})),arrow:n.find((function(e){return e.classList.contains(zm)||e.classList.contains(Xm)})),backdrop:n.find((function(e){return e.classList.contains(Hm)}))}}function C_(e){var t=i_(),n=i_();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var i=i_();function r(n,i){var r=T_(t),o=r.box,s=r.content,a=r.arrow;i.theme?o.setAttribute("data-theme",i.theme):o.removeAttribute("data-theme"),"string"==typeof i.animation?o.setAttribute("data-animation",i.animation):o.removeAttribute("data-animation"),i.inertia?o.setAttribute("data-inertia",""):o.removeAttribute("data-inertia"),o.style.maxWidth="number"==typeof i.maxWidth?i.maxWidth+"px":i.maxWidth,i.role?o.setAttribute("role",i.role):o.removeAttribute("role"),n.content===i.content&&n.allowHTML===i.allowHTML||A_(s,e.props),i.arrow?a?n.arrow!==i.arrow&&(o.removeChild(a),o.appendChild(D_(i.arrow))):o.appendChild(D_(i.arrow)):a&&o.removeChild(a)}return i.className=Gm,i.setAttribute("data-state","hidden"),A_(i,e.props),t.appendChild(n),n.appendChild(i),r(e.props,e.props),{popper:t,onUpdate:r}}C_.$$tippy=!0;var w_=1,O_=[],k_=[];function x_(e,t){var n,i,r,o,s,a,l,u,c=E_(e,Object.assign({},g_,y_(n_(t)))),f=!1,p=!1,d=!1,h=!1,m=[],_=Zm(W,c.interactiveDebounce),g=w_++,v=(u=c.plugins).filter((function(e,t){return u.indexOf(e)===t})),y={id:g,reference:e,popper:i_(),popperInstance:null,props:c,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:v,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(i),cancelAnimationFrame(r)},setProps:function(t){if(!y.state.isDestroyed){M("onBeforeUpdate",[y,t]),X();var n=y.props,i=E_(e,Object.assign({},n,n_(t),{ignoreAttributes:!0}));y.props=i,z(),n.interactiveDebounce!==i.interactiveDebounce&&(P(),_=Zm(W,i.interactiveDebounce)),n.triggerTarget&&!i.triggerTarget?Jm(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):i.triggerTarget&&e.removeAttribute("aria-expanded"),N(),F(),S&&S(n,i),y.popperInstance&&(Z(),Q().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)}))),M("onAfterUpdate",[y,t])}},setContent:function(e){y.setProps({content:e})},show:function(){var e=y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,i=f_.isTouch&&!y.props.touch,r=jm(y.props.duration,0,g_.duration);if(!(e||t||n||i||O().hasAttribute("disabled")||(M("onShow",[y],!1),!1===y.props.onShow(y)))){if(y.state.isVisible=!0,w()&&(b.style.visibility="visible"),F(),U(),y.state.isMounted||(b.style.transition="none"),w()){var o=x();s_([o.box,o.content],0)}var s,l,u;a=function(){var e;if(y.state.isVisible&&!h){if(h=!0,b.offsetHeight,b.style.transition=y.props.moveTransition,w()&&y.props.animation){var t=x(),n=t.box,i=t.content;s_([n,i],r),a_([n,i],"visible")}I(),N(),Qm(k_,y),null==(e=y.popperInstance)||e.forceUpdate(),M("onMount",[y]),y.props.animation&&w()&&function(e,t){G(e,(function(){y.state.isShown=!0,M("onShown",[y])}))}(r)}},l=y.props.appendTo,u=O(),(s=y.props.interactive&&l===Wm||"parent"===l?u.parentNode:Ym(l,[u])).contains(b)||s.appendChild(b),y.state.isMounted=!0,Z()}},hide:function(){var e=!y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,i=jm(y.props.duration,1,g_.duration);if(!(e||t||n)&&(M("onHide",[y],!1),!1!==y.props.onHide(y))){if(y.state.isVisible=!1,y.state.isShown=!1,h=!1,f=!1,w()&&(b.style.visibility="hidden"),P(),K(),F(!0),w()){var r=x(),o=r.box,s=r.content;y.props.animation&&(s_([o,s],i),a_([o,s],"hidden"))}I(),N(),y.props.animation?w()&&function(e,t){G(e,(function(){!y.state.isVisible&&b.parentNode&&b.parentNode.contains(b)&&t()}))}(i,y.unmount):y.unmount()}},hideWithInteractivity:function(e){k().addEventListener("mousemove",_),Qm(O_,_),_(e)},enable:function(){y.state.isEnabled=!0},disable:function(){y.hide(),y.state.isEnabled=!1},unmount:function(){y.state.isVisible&&y.hide(),y.state.isMounted&&(J(),Q().forEach((function(e){e._tippy.unmount()})),b.parentNode&&b.parentNode.removeChild(b),k_=k_.filter((function(e){return e!==y})),y.state.isMounted=!1,M("onHidden",[y]))},destroy:function(){y.state.isDestroyed||(y.clearDelayTimeouts(),y.unmount(),X(),delete e._tippy,y.state.isDestroyed=!0,M("onDestroy",[y]))}};if(!c.render)return y;var E=c.render(y),b=E.popper,S=E.onUpdate;b.setAttribute("data-tippy-root",""),b.id="tippy-"+y.id,y.popper=b,e._tippy=y,b._tippy=y;var D=v.map((function(e){return e.fn(y)})),A=e.hasAttribute("aria-expanded");return z(),N(),F(),M("onCreate",[y]),c.showOnCreate&&ee(),b.addEventListener("mouseenter",(function(){y.props.interactive&&y.state.isVisible&&y.clearDelayTimeouts()})),b.addEventListener("mouseleave",(function(){y.props.interactive&&y.props.trigger.indexOf("mouseenter")>=0&&k().addEventListener("mousemove",_)})),y;function T(){var e=y.props.touch;return Array.isArray(e)?e:[e,0]}function C(){return"hold"===T()[0]}function w(){var e;return!(null==(e=y.props.render)||!e.$$tippy)}function O(){return l||e}function k(){var e=O().parentNode;return e?l_(e):document}function x(){return T_(b)}function R(e){return y.state.isMounted&&!y.state.isVisible||f_.isTouch||o&&"focus"===o.type?0:jm(y.props.delay,e?0:1,g_.delay)}function F(e){void 0===e&&(e=!1),b.style.pointerEvents=y.props.interactive&&!e?"":"none",b.style.zIndex=""+y.props.zIndex}function M(e,t,n){var i;void 0===n&&(n=!0),D.forEach((function(n){n[e]&&n[e].apply(n,t)})),n&&(i=y.props)[e].apply(i,t)}function I(){var t=y.props.aria;if(t.content){var n="aria-"+t.content,i=b.id;Jm(y.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(y.state.isVisible)e.setAttribute(n,t?t+" "+i:i);else{var r=t&&t.replace(i,"").trim();r?e.setAttribute(n,r):e.removeAttribute(n)}}))}}function N(){!A&&y.props.aria.expanded&&Jm(y.props.triggerTarget||e).forEach((function(e){y.props.interactive?e.setAttribute("aria-expanded",y.state.isVisible&&e===O()?"true":"false"):e.removeAttribute("aria-expanded")}))}function P(){k().removeEventListener("mousemove",_),O_=O_.filter((function(e){return e!==_}))}function B(t){if(!f_.isTouch||!d&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!y.props.interactive||!c_(b,n)){if(Jm(y.props.triggerTarget||e).some((function(e){return c_(e,n)}))){if(f_.isTouch)return;if(y.state.isVisible&&y.props.trigger.indexOf("click")>=0)return}else M("onClickOutside",[y,t]);!0===y.props.hideOnClick&&(y.clearDelayTimeouts(),y.hide(),p=!0,setTimeout((function(){p=!1})),y.state.isMounted||K())}}}function L(){d=!0}function V(){d=!1}function U(){var e=k();e.addEventListener("mousedown",B,!0),e.addEventListener("touchend",B,$m),e.addEventListener("touchstart",V,$m),e.addEventListener("touchmove",L,$m)}function K(){var e=k();e.removeEventListener("mousedown",B,!0),e.removeEventListener("touchend",B,$m),e.removeEventListener("touchstart",V,$m),e.removeEventListener("touchmove",L,$m)}function G(e,t){var n=x().box;function i(e){e.target===n&&(u_(n,"remove",i),t())}if(0===e)return t();u_(n,"remove",s),u_(n,"add",i),s=i}function H(t,n,i){void 0===i&&(i=!1),Jm(y.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,i),m.push({node:e,eventType:t,handler:n,options:i})}))}function z(){var e;C()&&(H("touchstart",$,{passive:!0}),H("touchend",j,{passive:!0})),(e=y.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(H(e,$),e){case"mouseenter":H("mouseleave",j);break;case"focus":H(__?"focusout":"blur",q);break;case"focusin":H("focusout",q)}}))}function X(){m.forEach((function(e){var t=e.node,n=e.eventType,i=e.handler,r=e.options;t.removeEventListener(n,i,r)})),m=[]}function $(e){var t,n=!1;if(y.state.isEnabled&&!Y(e)&&!p){var i="focus"===(null==(t=o)?void 0:t.type);o=e,l=e.currentTarget,N(),!y.state.isVisible&&o_(e)&&O_.forEach((function(t){return t(e)})),"click"===e.type&&(y.props.trigger.indexOf("mouseenter")<0||f)&&!1!==y.props.hideOnClick&&y.state.isVisible?n=!0:ee(e),"click"===e.type&&(f=!n),n&&!i&&te(e)}}function W(e){var t=e.target,n=O().contains(t)||b.contains(t);if("mousemove"!==e.type||!n){var i=Q().concat(b).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:c}:null})).filter(Boolean);(function(e,t){var n=t.clientX,i=t.clientY;return e.every((function(e){var t=e.popperRect,r=e.popperState,o=e.props.interactiveBorder,s=e_(r.placement),a=r.modifiersData.offset;if(!a)return!0;var l="bottom"===s?a.top.y:0,u="top"===s?a.bottom.y:0,c="right"===s?a.left.x:0,f="left"===s?a.right.x:0,p=t.top-i+l>o,d=i-t.bottom-u>o,h=t.left-n+c>o,m=n-t.right-f>o;return p||d||h||m}))})(i,e)&&(P(),te(e))}}function j(e){Y(e)||y.props.trigger.indexOf("click")>=0&&f||(y.props.interactive?y.hideWithInteractivity(e):te(e))}function q(e){y.props.trigger.indexOf("focusin")<0&&e.target!==O()||y.props.interactive&&e.relatedTarget&&b.contains(e.relatedTarget)||te(e)}function Y(e){return!!f_.isTouch&&C()!==e.type.indexOf("touch")>=0}function Z(){J();var t=y.props,n=t.popperOptions,i=t.placement,r=t.offset,o=t.getReferenceClientRect,s=t.moveTransition,l=w()?T_(b).arrow:null,u=o?{getBoundingClientRect:o,contextElement:o.contextElement||O()}:e,c=[{name:"offset",options:{offset:r}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(w()){var n=x().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];w()&&l&&c.push({name:"arrow",options:{element:l,padding:3}}),c.push.apply(c,(null==n?void 0:n.modifiers)||[]),y.popperInstance=Km(u,b,Object.assign({},n,{placement:i,onFirstUpdate:a,modifiers:c}))}function J(){y.popperInstance&&(y.popperInstance.destroy(),y.popperInstance=null)}function Q(){return t_(b.querySelectorAll("[data-tippy-root]"))}function ee(e){y.clearDelayTimeouts(),e&&M("onTrigger",[y,e]),U();var t=R(!0),i=T(),r=i[0],o=i[1];f_.isTouch&&"hold"===r&&o&&(t=o),t?n=setTimeout((function(){y.show()}),t):y.show()}function te(e){if(y.clearDelayTimeouts(),M("onUntrigger",[y,e]),y.state.isVisible){if(!(y.props.trigger.indexOf("mouseenter")>=0&&y.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&f)){var t=R(!1);t?i=setTimeout((function(){y.state.isVisible&&y.hide()}),t):r=requestAnimationFrame((function(){y.hide()}))}}else K()}}function R_(e,t){void 0===t&&(t={});var n=g_.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",d_,$m),window.addEventListener("blur",m_);var i,r=Object.assign({},t,{plugins:n}),o=(i=e,r_(i)?[i]:function(e){return qm(e,"NodeList")}(i)?t_(i):Array.isArray(i)?i:t_(document.querySelectorAll(i))).reduce((function(e,t){var n=t&&x_(t,r);return n&&e.push(n),e}),[]);return r_(e)?o[0]:o}R_.defaultProps=g_,R_.setDefaultProps=function(e){Object.keys(e).forEach((function(t){g_[t]=e[t]}))},R_.currentInput=f_;var F_=Object.assign({},qh,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),M_={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=T_(e.popper),i=n.box,r=n.content,o=e.props.animateFill?function(){var e=i_();return e.className=Hm,a_([e],"hidden"),e}():null;return{onCreate:function(){o&&(i.insertBefore(o,i.firstElementChild),i.setAttribute("data-animatefill",""),i.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(o){var e=i.style.transitionDuration,t=Number(e.replace("ms",""));r.style.transitionDelay=Math.round(t/10)+"ms",o.style.transitionDuration=e,a_([o],"visible")}},onShow:function(){o&&(o.style.transitionDuration="0ms")},onHide:function(){o&&a_([o],"hidden")}}}},I_={clientX:0,clientY:0},N_=[];function P_(e){var t=e.clientX,n=e.clientY;I_={clientX:t,clientY:n}}var B_={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=l_(e.props.triggerTarget||t),i=!1,r=!1,o=!0,s=e.props;function a(){return"initial"===e.props.followCursor&&e.state.isVisible}function l(){n.addEventListener("mousemove",f)}function u(){n.removeEventListener("mousemove",f)}function c(){i=!0,e.setProps({getReferenceClientRect:null}),i=!1}function f(n){var i=!n.target||t.contains(n.target),r=e.props.followCursor,o=n.clientX,s=n.clientY,a=t.getBoundingClientRect(),l=o-a.left,u=s-a.top;!i&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=o,i=s;"initial"===r&&(n=e.left+l,i=e.top+u);var a="horizontal"===r?e.top:i,c="vertical"===r?e.right:n,f="horizontal"===r?e.bottom:i,p="vertical"===r?e.left:n;return{width:c-p,height:f-a,top:a,right:c,bottom:f,left:p}}})}function p(){e.props.followCursor&&(N_.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",P_)}(n))}function d(){0===(N_=N_.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",P_)}(n)}return{onCreate:p,onDestroy:d,onBeforeUpdate:function(){s=e.props},onAfterUpdate:function(t,n){var o=n.followCursor;i||void 0!==o&&s.followCursor!==o&&(d(),o?(p(),!e.state.isMounted||r||a()||l()):(u(),c()))},onMount:function(){e.props.followCursor&&!r&&(o&&(f(I_),o=!1),a()||l())},onTrigger:function(e,t){o_(t)&&(I_={clientX:t.clientX,clientY:t.clientY}),r="focus"===t.type},onHidden:function(){e.props.followCursor&&(c(),u(),o=!0)}}}},L_={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference,i=-1,r=!1,o=[],s={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(r){var s=r.state;e.props.inlinePositioning&&(-1!==o.indexOf(s.placement)&&(o=[]),t!==s.placement&&-1===o.indexOf(s.placement)&&(o.push(s.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,i){if(n.length<2||null===e)return t;if(2===n.length&&i>=0&&n[0].left>n[1].right)return n[i]||t;switch(e){case"top":case"bottom":var r=n[0],o=n[n.length-1],s="top"===e,a=r.top,l=o.bottom,u=s?r.left:o.left,c=s?r.right:o.right;return{top:a,bottom:l,left:u,right:c,width:c-u,height:l-a};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),p=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===p})),h=d[0].top,m=d[d.length-1].bottom;return{top:h,bottom:m,left:f,right:p,width:p-f,height:m-h};default:return t}}(e_(e),n.getBoundingClientRect(),t_(n.getClientRects()),i)}(s.placement)}})),t=s.placement)}};function a(){var t;r||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,s),r=!0,e.setProps(t),r=!1)}return{onCreate:a,onAfterUpdate:a,onTrigger:function(t,n){if(o_(n)){var r=t_(e.reference.getClientRects()),o=r.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),s=r.indexOf(o);i=s>-1?s:i}},onHidden:function(){i=-1}}}},V_={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function i(t){return!0===e.props.sticky||e.props.sticky===t}var r=null,o=null;function s(){var a=i("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,l=i("popper")?n.getBoundingClientRect():null;(a&&U_(r,a)||l&&U_(o,l))&&e.popperInstance&&e.popperInstance.update(),r=a,o=l,e.state.isMounted&&requestAnimationFrame(s)}return{onMount:function(){e.props.sticky&&s()}}}};function U_(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}function K_(e,t={},n={mount:!0,appName:"Tippy"}){n=Object.assign({mount:!0,appName:"Tippy"},n);const i=Fr(),r=Et(),o=Et({isEnabled:!1,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1}),s=bt(undefined,!0);let a=null;const l=()=>a||(a=document.createDocumentFragment(),a),u=e=>{let t,r=yt(e)?e.value:e;return dr(r)?(s.value||(s.value=Lo({name:n.appName,setup:()=>()=>yt(e)?e.value:e}),i&&Object.assign(s.value._context,i.appContext),s.value.mount(l())),t=()=>l()):"object"==typeof r?(s.value||(s.value=Lo({name:n.appName,setup:()=>()=>Xr(yt(e)?e.value:e)}),i&&Object.assign(s.value._context,i.appContext),s.value.mount(l())),t=()=>l()):t=r,t},c=e=>{let t={};return t=yt(e)?e.value||{}:(lt(e),{...e}),t.content&&(t.content=u(t.content)),t.triggerTarget&&(t.triggerTarget=yt(t.triggerTarget)?t.triggerTarget.value:t.triggerTarget),t.plugins&&Array.isArray(t.plugins)||(t.plugins=[]),t.plugins=t.plugins.filter((e=>"vueTippyReactiveState"!==e.name)),t.plugins.push({name:"vueTippyReactiveState",fn:()=>({onCreate(){o.value.isEnabled=!0},onMount(){o.value.isMounted=!0},onShow(){o.value.isMounted=!0,o.value.isVisible=!0},onShown(){o.value.isShown=!0},onHide(){o.value.isMounted=!1,o.value.isVisible=!1},onHidden(){o.value.isShown=!1},onUnmounted(){o.value.isMounted=!1},onDestroy(){o.value.isDestroyed=!0}})}),t},f=()=>{r.value&&r.value.setProps(c(t))},p=()=>{r.value&&t.content&&r.value.setContent(u(t.content))},d=()=>{var e;r.value&&(r.value.destroy(),r.value=void 0),a=null,null===(e=s.value)||void 0===e||e.unmount(),s.value=void 0},h=()=>{if(!e)return;let n=yt(e)?e.value:e;"function"==typeof n&&(n=n()),n&&(r.value=R_(n,c(t)),n.$tippy=m)},m={tippy:r,refresh:f,refreshContent:p,setContent:e=>{var t;null===(t=r.value)||void 0===t||t.setContent(u(e))},setProps:e=>{var t;null===(t=r.value)||void 0===t||t.setProps(c(e))},destroy:d,hide:()=>{var e;null===(e=r.value)||void 0===e||e.hide()},show:()=>{var e;null===(e=r.value)||void 0===e||e.show()},disable:()=>{var e;null===(e=r.value)||void 0===e||e.disable(),o.value.isEnabled=!1},enable:()=>{var e;null===(e=r.value)||void 0===e||e.enable(),o.value.isEnabled=!0},unmount:()=>{var e;null===(e=r.value)||void 0===e||e.unmount()},mount:h,state:o};return n.mount&&(i?i.isMounted?h():Qn(h):h()),i&&ii((()=>{d()})),yt(t)||lt(t)?An(t,f,{immediate:!1}):yt(t.content)&&An(t.content,p,{immediate:!1}),m}R_.setDefaultProps({render:C_}),R_.setDefaultProps({onShow:e=>{if(!e.props.content)return!1}}),Hn({props:{to:{type:[String,Function]},tag:{type:[String,Object],default:"span"},contentTag:{type:[String,Object],default:"span"},contentClass:{type:String,default:null},appendTo:{default:()=>R_.defaultProps.appendTo},aria:{default:()=>R_.defaultProps.aria},delay:{default:()=>R_.defaultProps.delay},duration:{default:()=>R_.defaultProps.duration},getReferenceClientRect:{default:()=>R_.defaultProps.getReferenceClientRect},hideOnClick:{type:[Boolean,String],default:()=>R_.defaultProps.hideOnClick},ignoreAttributes:{type:Boolean,default:()=>R_.defaultProps.ignoreAttributes},interactive:{type:Boolean,default:()=>R_.defaultProps.interactive},interactiveBorder:{default:()=>R_.defaultProps.interactiveBorder},interactiveDebounce:{default:()=>R_.defaultProps.interactiveDebounce},moveTransition:{default:()=>R_.defaultProps.moveTransition},offset:{default:()=>R_.defaultProps.offset},onAfterUpdate:{default:()=>R_.defaultProps.onAfterUpdate},onBeforeUpdate:{default:()=>R_.defaultProps.onBeforeUpdate},onCreate:{default:()=>R_.defaultProps.onCreate},onDestroy:{default:()=>R_.defaultProps.onDestroy},onHidden:{default:()=>R_.defaultProps.onHidden},onHide:{default:()=>R_.defaultProps.onHide},onMount:{default:()=>R_.defaultProps.onMount},onShow:{default:()=>R_.defaultProps.onShow},onShown:{default:()=>R_.defaultProps.onShown},onTrigger:{default:()=>R_.defaultProps.onTrigger},onUntrigger:{default:()=>R_.defaultProps.onUntrigger},onClickOutside:{default:()=>R_.defaultProps.onClickOutside},placement:{default:()=>R_.defaultProps.placement},plugins:{default:()=>R_.defaultProps.plugins},popperOptions:{default:()=>R_.defaultProps.popperOptions},render:{default:()=>R_.defaultProps.render},showOnCreate:{type:Boolean,default:()=>R_.defaultProps.showOnCreate},touch:{type:[Boolean,String,Array],default:()=>R_.defaultProps.touch},trigger:{default:()=>R_.defaultProps.trigger},triggerTarget:{default:()=>R_.defaultProps.triggerTarget},animateFill:{type:Boolean,default:()=>R_.defaultProps.animateFill},followCursor:{type:[Boolean,String],default:()=>R_.defaultProps.followCursor},inlinePositioning:{type:Boolean,default:()=>R_.defaultProps.inlinePositioning},sticky:{type:[Boolean,String],default:()=>R_.defaultProps.sticky},allowHTML:{type:Boolean,default:()=>R_.defaultProps.allowHTML},animation:{default:()=>R_.defaultProps.animation},arrow:{default:()=>R_.defaultProps.arrow},content:{default:()=>R_.defaultProps.content},inertia:{default:()=>R_.defaultProps.inertia},maxWidth:{default:()=>R_.defaultProps.maxWidth},role:{default:()=>R_.defaultProps.role},theme:{default:()=>R_.defaultProps.theme},zIndex:{default:()=>R_.defaultProps.zIndex}},emits:["state"],setup(e,{slots:t,emit:n,expose:i}){const r=Et(),o=Et(),s=Et(),a=Et(!1),l=()=>{let t={...e};for(const e of["to","tag","contentTag","contentClass"])t.hasOwnProperty(e)&&delete t[e];return t};let u=()=>function(e){var t,n;const i="function"==typeof(r=e)?r():Dt(r);var r;return null!==(n=null===(t=i)||void 0===t?void 0:t.$el)&&void 0!==n?n:i}(r);e.to&&("undefined"!=typeof Element&&e.to instanceof Element?u=()=>e.to:"parent"===e.to?u=()=>{let e=r.value;return e||(e=r.value=o.value.parentElement),e}:("string"==typeof e.to||e.to instanceof String)&&(u=()=>document.querySelector(e.to)));const c=K_(u,l());let f=t.content;f||"parent"!==e.to||(f=t.default),Qn((()=>{a.value=!0,Lt((()=>{f&&c.setContent((()=>s.value))}))})),An(c.state,(()=>{n("state",Dt(c.state))}),{immediate:!0,deep:!0}),An((()=>e),(()=>{c.setProps(l()),f&&c.setContent((()=>s.value))}),{deep:!0});let p=ot({elem:r,contentElem:s,mounted:a,...c});return i(p),()=>{const n=(e.contentTag,e.contentTag),i=f?Xr(n,{ref:s,style:{display:a.value?"inherit":"none"},class:e.contentClass},f(p)):null;if("parent"===e.to){const e=[];if(!r.value){const t=Xr("span",{ref:o,"data-v-tippy":"",style:{display:"none"}});e.push(t)}return i&&e.push(i),e}const l=t.default?t.default(p):[];if(!e.tag){const e=Xr(l[0],{ref:r,"data-v-tippy":""});return i?[e,i]:e}return Xr((e.tag,e.tag),{ref:r,"data-v-tippy":""},i?[l,i]:l)}}});const G_=["a11y","allowHTML","arrow","flip","flipOnUpdate","hideOnClick","ignoreAttributes","inertia","interactive","lazy","multiple","showOnInit","touch","touchHold"];let H_={};Object.keys(R_.defaultProps).forEach((e=>{G_.includes(e)?H_[e]={type:Boolean,default:function(){return R_.defaultProps[e]}}:H_[e]={default:function(){return R_.defaultProps[e]}}})),Hn({props:H_,setup(e){const t=Et([]),{singleton:n}=function(e,t){const n=Et();return Qn((()=>{const i=(Array.isArray(e)?e.map((e=>e.value)):"function"==typeof e?e():e.value).map((e=>e instanceof Element?e._tippy:e)).filter(Boolean);n.value=function(e,t){var n;void 0===t&&(t={});var i,r=e,o=[],s=[],a=t.overrides,l=[],u=!1;function c(){s=r.map((function(e){return Jm(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function f(){o=r.map((function(e){return e.reference}))}function p(e){r.forEach((function(t){e?t.enable():t.disable()}))}function d(e){return r.map((function(t){var n=t.setProps;return t.setProps=function(r){n(r),t.reference===i&&e.setProps(r)},function(){t.setProps=n}}))}function h(e,t){var n=s.indexOf(t);if(t!==i){i=t;var l=(a||[]).concat("content").reduce((function(e,t){return e[t]=r[n].props[t],e}),{});e.setProps(Object.assign({},l,{getReferenceClientRect:"function"==typeof l.getReferenceClientRect?l.getReferenceClientRect:function(){var e;return null==(e=o[n])?void 0:e.getBoundingClientRect()}}))}}p(!1),f(),c();var m={fn:function(){return{onDestroy:function(){p(!0)},onHidden:function(){i=null},onClickOutside:function(e){e.props.showOnCreate&&!u&&(u=!0,i=null)},onShow:function(e){e.props.showOnCreate&&!u&&(u=!0,h(e,o[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},_=R_(i_(),Object.assign({},function(e,t){var n=Object.assign({},e);return["overrides"].forEach((function(e){delete n[e]})),n}(t),{plugins:[m].concat(t.plugins||[]),triggerTarget:s,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[F_])})})),g=_.show;_.show=function(e){if(g(),!i&&null==e)return h(_,o[0]);if(!i||null!=e){if("number"==typeof e)return o[e]&&h(_,o[e]);if(r.indexOf(e)>=0){var t=e.reference;return h(_,t)}return o.indexOf(e)>=0?h(_,e):void 0}},_.showNext=function(){var e=o[0];if(!i)return _.show(0);var t=o.indexOf(i);_.show(o[t+1]||e)},_.showPrevious=function(){var e=o[o.length-1];if(!i)return _.show(e);var t=o.indexOf(i),n=o[t-1]||e;_.show(n)};var v=_.setProps;return _.setProps=function(e){a=e.overrides||a,v(e)},_.setInstances=function(e){p(!0),l.forEach((function(e){return e()})),r=e,p(!1),f(),c(),l=d(_),_.setProps({triggerTarget:s})},l=d(_),_}(i,t?{allowHTML:!0,...t}:{allowHTML:!0})})),{singleton:n}}(t,e);return{instances:t,singleton:n}},mounted(){var e;const t=this.$el.parentElement.querySelectorAll("[data-v-tippy]");this.instances=Array.from(t).map((e=>e._tippy)).filter(Boolean),null===(e=this.singleton)||void 0===e||e.setInstances(this.instances)},render(){let e=this.$slots.default?this.$slots.default():[];return Xr((()=>e))}});const z_={mounted(e,t,n){const i="string"==typeof t.value?{content:t.value}:t.value||{},r=Object.keys(t.modifiers||{}),o=r.find((e=>"arrow"!==e)),s=-1!==r.findIndex((e=>"arrow"===e));o&&(i.placement=i.placement||o),s&&(i.arrow=void 0===i.arrow||i.arrow),n.props&&n.props.onTippyShow&&(i.onShow=function(...e){var t;return null===(t=n.props)||void 0===t?void 0:t.onTippyShow(...e)}),n.props&&n.props.onTippyShown&&(i.onShown=function(...e){var t;return null===(t=n.props)||void 0===t?void 0:t.onTippyShown(...e)}),n.props&&n.props.onTippyHidden&&(i.onHidden=function(...e){var t;return null===(t=n.props)||void 0===t?void 0:t.onTippyHidden(...e)}),n.props&&n.props.onTippyHide&&(i.onHide=function(...e){var t;return null===(t=n.props)||void 0===t?void 0:t.onTippyHide(...e)}),n.props&&n.props.onTippyMount&&(i.onMount=function(...e){var t;return null===(t=n.props)||void 0===t?void 0:t.onTippyMount(...e)}),e.getAttribute("title")&&!i.content&&(i.content=e.getAttribute("title"),e.removeAttribute("title")),e.getAttribute("content")&&!i.content&&(i.content=e.getAttribute("content")),K_(e,i)},unmounted(e){e.$tippy?e.$tippy.destroy():e._tippy&&e._tippy.destroy()},updated(e,t){const n="string"==typeof t.value?{content:t.value}:t.value||{};e.getAttribute("title")&&!n.content&&(n.content=e.getAttribute("title"),e.removeAttribute("title")),e.getAttribute("content")&&!n.content&&(n.content=e.getAttribute("content")),e.$tippy?e.$tippy.setProps(n||{}):e._tippy&&e._tippy.setProps(n||{})}};(0,R_.setDefaultProps)({ignoreAttributes:!0,plugins:[V_,L_,B_,M_]});const X_={class:"field is-horizontal is-aligned-top"},$_={class:"field-label"},W_={class:"label"},j_={class:"field-body is-vertical"},q_={class:"field"},Y_={class:"control"},Z_={class:"checkbox"},J_=vr("i",{class:"icon fas fa-check"},null,-1),Q_={key:0,class:"field"},eg={class:"field is-horizontal is-aligned-top"},tg=vr("div",{class:"field-label"},[vr("label",{class:"label"},"dead_code")],-1),ng={class:"field-body"},ig={class:"field"},rg={class:"control"},og={class:"checkbox"},sg=vr("i",{class:"icon fas fa-check"},null,-1),ag={class:"field is-horizontal is-aligned-top"},lg=vr("div",{class:"field-label"},[vr("label",{class:"label"},"drop_console")],-1),ug={class:"field-body"},cg={class:"field"},fg={class:"control"},pg={class:"checkbox"},dg=vr("i",{class:"icon fas fa-check"},null,-1),hg={class:"field is-horizontal is-aligned-top"},mg=vr("div",{class:"field-label"},[vr("label",{class:"label"},"drop_debugger")],-1),_g={class:"field-body"},gg={class:"field"},vg={class:"control"},yg={class:"checkbox"},Eg=vr("i",{class:"icon fas fa-check"},null,-1),bg={class:"field is-horizontal is-aligned-top"},Sg=vr("div",{class:"field-label"},[vr("label",{class:"label"},"keep_classnames")],-1),Dg={class:"field-body"},Ag={class:"field"},Tg={class:"control"},Cg={class:"checkbox"},wg=vr("i",{class:"icon fas fa-check"},null,-1),Og={class:"field is-horizontal is-aligned-top"},kg=vr("div",{class:"field-label"},[vr("label",{class:"label"},"keep_fargs")],-1),xg={class:"field-body"},Rg={class:"field"},Fg={class:"control"},Mg={class:"checkbox"},Ig=vr("i",{class:"icon fas fa-check"},null,-1),Ng={class:"field is-horizontal is-aligned-top"},Pg=vr("div",{class:"field-label"},[vr("label",{class:"label"},"keep_fnames")],-1),Bg={class:"field-body"},Lg={class:"field"},Vg={class:"control"},Ug={class:"checkbox"},Kg=vr("i",{class:"icon fas fa-check"},null,-1),Gg={class:"field is-horizontal is-aligned-top"},Hg=vr("div",{class:"field-label"},[vr("label",{class:"label"},"keep_infinity")],-1),zg={class:"field-body"},Xg={class:"field"},$g={class:"control"},Wg={class:"checkbox"},jg=vr("i",{class:"icon fas fa-check"},null,-1),qg={name:"CompressConfig",components:{PrettyCheck:xs},props:{config:Object},data:()=>({i18n:nd,compressBool:!1,compressOpts:{dead_code:!0,drop_console:!1,drop_debugger:!0,keep_classnames:!1,keep_fargs:!0,keep_fnames:!1,keep_infinity:!1}}),watch:{compressBool(){this.setCompress()},compressOpts:{handler(){this.setCompress()},deep:!0},config:{handler(e){!1!==e.compress?(this.$data.compressBool=!0,this.$data.compressOpts=e.compress):this.$data.compressBool=!1},deep:!0}},created(){this.setCompress()},methods:{setCompress(){this.$props.config.compress=!1!==this.$data.compressBool&&this.$data.compressOpts}}},Yg=(0,ps.Z)(qg,[["render",function(e,t,n,i,r,o){const s=mn("PrettyCheck");return ar(),fr("div",X_,[vr("div",$_,[vr("label",W_,q(r.i18n.templates.config.compress.compress),1)]),vr("div",j_,[vr("div",q_,[vr("div",Y_,[vr("div",Z_,[yr(s,{modelValue:r.compressBool,"onUpdate:modelValue":t[0]||(t[0]=e=>r.compressBool=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[J_])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.compress.compressDesc),1)])),_:1},8,["modelValue"])])])]),r.compressBool?(ar(),fr("div",Q_,[vr("div",eg,[tg,vr("div",ng,[vr("div",ig,[vr("div",rg,[vr("div",og,[yr(s,{modelValue:r.compressOpts.dead_code,"onUpdate:modelValue":t[1]||(t[1]=e=>r.compressOpts.dead_code=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[sg])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.compress.deadCodeDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",ag,[lg,vr("div",ug,[vr("div",cg,[vr("div",fg,[vr("div",pg,[yr(s,{modelValue:r.compressOpts.drop_console,"onUpdate:modelValue":t[2]||(t[2]=e=>r.compressOpts.drop_console=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[dg])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.compress.dropConsoleDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",hg,[mg,vr("div",_g,[vr("div",gg,[vr("div",vg,[vr("div",yg,[yr(s,{modelValue:r.compressOpts.drop_debugger,"onUpdate:modelValue":t[3]||(t[3]=e=>r.compressOpts.drop_debugger=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[Eg])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.compress.dropDebuggerDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",bg,[Sg,vr("div",Dg,[vr("div",Ag,[vr("div",Tg,[vr("div",Cg,[yr(s,{modelValue:r.compressOpts.keep_classnames,"onUpdate:modelValue":t[4]||(t[4]=e=>r.compressOpts.keep_classnames=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[wg])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.compress.keepClassnamesDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",Og,[kg,vr("div",xg,[vr("div",Rg,[vr("div",Fg,[vr("div",Mg,[yr(s,{modelValue:r.compressOpts.keep_fargs,"onUpdate:modelValue":t[5]||(t[5]=e=>r.compressOpts.keep_fargs=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[Ig])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.compress.keepFargsDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",Ng,[Pg,vr("div",Bg,[vr("div",Lg,[vr("div",Vg,[vr("div",Ug,[yr(s,{modelValue:r.compressOpts.keep_fnames,"onUpdate:modelValue":t[6]||(t[6]=e=>r.compressOpts.keep_fnames=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[Kg])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.compress.keepFnamesDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",Gg,[Hg,vr("div",zg,[vr("div",Xg,[vr("div",$g,[vr("div",Wg,[yr(s,{modelValue:r.compressOpts.keep_infinity,"onUpdate:modelValue":t[7]||(t[7]=e=>r.compressOpts.keep_infinity=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[jg])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.compress.keepInfinityDesc),1)])),_:1},8,["modelValue"])])])])])])])):Dr("v-if",!0)])])}]]),Zg={class:"field is-horizontal is-aligned-top"},Jg={class:"field-label"},Qg={class:"label"},ev={class:"field-body is-vertical"},tv={class:"field"},nv={class:"control"},iv={class:"checkbox"},rv=vr("i",{class:"icon fas fa-check"},null,-1),ov={key:0,class:"field"},sv={class:"field is-horizontal is-aligned-top"},av=vr("div",{class:"field-label"},[vr("label",{class:"label"},"eval")],-1),lv={class:"field-body"},uv={class:"field"},cv={class:"control"},fv={class:"checkbox"},pv=vr("i",{class:"icon fas fa-check"},null,-1),dv={class:"field is-horizontal is-aligned-top"},hv=vr("div",{class:"field-label"},[vr("label",{class:"label"},"keep_classnames")],-1),mv={class:"field-body"},_v={class:"field"},gv={class:"control"},vv={class:"checkbox"},yv=vr("i",{class:"icon fas fa-check"},null,-1),Ev={class:"field is-horizontal is-aligned-top"},bv=vr("div",{class:"field-label"},[vr("label",{class:"label"},"keep_fnames")],-1),Sv={class:"field-body"},Dv={class:"field"},Av={class:"control"},Tv={class:"checkbox"},Cv=vr("i",{class:"icon fas fa-check"},null,-1),wv={class:"field is-horizontal is-aligned-top"},Ov=vr("div",{class:"field-label"},[vr("label",{class:"label"},"toplevel")],-1),kv={class:"field-body"},xv={class:"field"},Rv={class:"control"},Fv={class:"checkbox"},Mv=vr("i",{class:"icon fas fa-check"},null,-1),Iv={class:"field is-horizontal is-aligned-top"},Nv=vr("div",{class:"field-label"},[vr("label",{class:"label"},"safari10")],-1),Pv={class:"field-body"},Bv={class:"field"},Lv={class:"control"},Vv={class:"checkbox"},Uv=vr("i",{class:"icon fas fa-check"},null,-1),Kv={name:"MangleConfig",components:{PrettyCheck:xs},props:{config:Object},data:()=>({i18n:nd,mangleBool:!0,mangleOpts:{eval:!1,keep_classnames:!1,keep_fnames:!1,toplevel:!1,safari10:!1}}),watch:{mangleBool(){this.setMangle()},mangleOpts:{handler(){this.setMangle()},deep:!0},config:{handler(e){!1!==e.mangle?(this.$data.mangleBool=!0,this.$data.mangleOpts=e.mangle):this.$data.mangleBool=!1},deep:!0}},created(){this.setMangle()},methods:{setMangle(){this.$props.config.mangle=!1!==this.$data.mangleBool&&this.$data.mangleOpts}}},Gv={name:"Config",components:{PrettyCheck:xs,VueSelect:Oh,CompressConfig:Yg,MangleConfig:(0,ps.Z)(Kv,[["render",function(e,t,n,i,r,o){const s=mn("PrettyCheck");return ar(),fr("div",Zg,[vr("div",Jg,[vr("label",Qg,q(r.i18n.templates.config.mangle.mangle),1)]),vr("div",ev,[vr("div",tv,[vr("div",nv,[vr("div",iv,[yr(s,{modelValue:r.mangleBool,"onUpdate:modelValue":t[0]||(t[0]=e=>r.mangleBool=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[rv])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.mangle.mangleDesc),1)])),_:1},8,["modelValue"])])])]),r.mangleBool?(ar(),fr("div",ov,[vr("div",sv,[av,vr("div",lv,[vr("div",uv,[vr("div",cv,[vr("div",fv,[yr(s,{modelValue:r.mangleOpts.eval,"onUpdate:modelValue":t[1]||(t[1]=e=>r.mangleOpts.eval=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[pv])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.mangle.evalDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",dv,[hv,vr("div",mv,[vr("div",_v,[vr("div",gv,[vr("div",vv,[yr(s,{modelValue:r.mangleOpts.keep_classnames,"onUpdate:modelValue":t[2]||(t[2]=e=>r.mangleOpts.keep_classnames=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[yv])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.mangle.classnamesDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",Ev,[bv,vr("div",Sv,[vr("div",Dv,[vr("div",Av,[vr("div",Tv,[yr(s,{modelValue:r.mangleOpts.keep_fnames,"onUpdate:modelValue":t[3]||(t[3]=e=>r.mangleOpts.keep_fnames=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[Cv])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.mangle.fnamesDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",wv,[Ov,vr("div",kv,[vr("div",xv,[vr("div",Rv,[vr("div",Fv,[yr(s,{modelValue:r.mangleOpts.toplevel,"onUpdate:modelValue":t[4]||(t[4]=e=>r.mangleOpts.toplevel=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[Mv])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.mangle.toplevelDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",Iv,[Nv,vr("div",Pv,[vr("div",Bv,[vr("div",Lv,[vr("div",Vv,[yr(s,{modelValue:r.mangleOpts.safari10,"onUpdate:modelValue":t[5]||(t[5]=e=>r.mangleOpts.safari10=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[Uv])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.mangle.safari10Desc)+" ",1)])),_:1},8,["modelValue"])])])])])])])):Dr("v-if",!0)])])}]])},directives:{tippy:z_},delegated:{compress:!1,mangle:!0,module:!1,sourceMap:!1,output:{comments:"some"}},props:{config:Object},data:()=>({i18n:nd,filename:"",commentsOptions:[{label:nd.templates.config.commentsRemove,value:!1},{label:nd.templates.config.commentsPreserve,value:"some"},{label:nd.templates.config.commentsKeep,value:!0}]}),computed:{module:{get(){return this.$props.config.module},set(e){this.$props.config.module=e}},comments:{get(){return this.$props.config.output.comments},set(e){this.$props.config.output.comments=e}}},watch:{filename(){this.setSourceMap()}},mounted(){this.preset("compress")},methods:{setSourceMap(){this.$props.config.sourceMap=!!this.$data.filename.length&&{filename:this.$data.filename,url:`${this.$data.filename}.map`}},preset(e){switch("terser"!==e&&"compress"!==e||(this.$props.config.mangle={eval:!1,keep_classnames:!1,keep_fnames:!1,toplevel:!1,safari10:!1},this.$props.config.output={comments:"some"}),e){case"terser":this.$props.config.compress=!1;break;case"compress":this.$props.config.compress={dead_code:!0,drop_console:!1,drop_debugger:!0,keep_classnames:!1,keep_fargs:!0,keep_fnames:!1,keep_infinity:!1};break;case"safe-compress":this.$props.config.compress={dead_code:!0,drop_console:!1,drop_debugger:!1,keep_classnames:!0,keep_fargs:!0,keep_fnames:!0,keep_infinity:!0},this.$props.config.mangle={eval:!1,keep_classnames:!0,keep_fnames:!0,toplevel:!1,safari10:!1},this.$props.config.output={comments:!0}}}}},Hv=(0,ps.Z)(Gv,[["render",function(e,t,n,i,r,o){const s=mn("CompressConfig"),a=mn("MangleConfig"),l=mn("PrettyCheck"),u=mn("VueSelect"),c=vn("tippy");return ar(),fr("div",md,[_d,vr("div",gd,[vr("div",vd,[kn((ar(),fr("a",{class:"button is-primary",content:r.i18n.templates.config.terserDefaultsPreset,onClick:t[0]||(t[0]=e=>o.preset("terser"))},[Sr("Terser Defaults")],8,yd)),[[c]])]),vr("div",Ed,[kn((ar(),fr("a",{class:"button is-primary",content:r.i18n.templates.config.compressionPreset,onClick:t[1]||(t[1]=e=>o.preset("compress"))},[Sr("Compression")],8,bd)),[[c]])]),vr("div",Sd,[kn((ar(),fr("a",{class:"button is-primary",content:r.i18n.templates.config.safeCompressionPreset,onClick:t[2]||(t[2]=e=>o.preset("safe-compress"))},[Sr("Safe Compression")],8,Dd)),[[c]])])]),Ad,yr(s,{config:n.config},null,8,["config"]),yr(a,{config:n.config},null,8,["config"]),vr("div",Td,[vr("div",Cd,[vr("label",wd,q(r.i18n.templates.config.module),1)]),vr("div",Od,[vr("div",kd,[vr("div",xd,[vr("div",Rd,[yr(l,{modelValue:o.module,"onUpdate:modelValue":t[3]||(t[3]=e=>o.module=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[Fd])),default:un((()=>[Sr(" "+q(r.i18n.templates.config.moduleDesc),1)])),_:1},8,["modelValue"])])])])])]),vr("div",Md,[vr("div",Id,[vr("label",Nd,q(r.i18n.templates.config.filename),1)]),vr("div",Pd,[vr("div",Bd,[vr("div",Ld,[kn(vr("input",{"onUpdate:modelValue":t[4]||(t[4]=e=>r.filename=e),class:"input",type:"text",placeholder:"dist.min.js"},null,512),[[Fo,r.filename,void 0,{lazy:!0,trim:!0}]]),Vd,vr("small",null,q(r.i18n.templates.config.filenameDesc),1)])])])]),vr("div",Ud,[vr("div",Kd,[vr("label",Gd,q(r.i18n.templates.config.comments),1)]),vr("div",Hd,[vr("div",zd,[vr("div",Xd,[yr(u,{modelValue:o.comments,"onUpdate:modelValue":t[5]||(t[5]=e=>o.comments=e),options:r.commentsOptions,clearable:!1,reduce:e=>e.value},null,8,["modelValue","options","reduce"])])])])])])}]]),zv={class:"explainer"},Xv=["innerHTML"],$v=["innerHTML"],{toString:Wv}=Object.prototype,{propertyIsEnumerable:jv}=Object.prototype;const qv="// Import Terser so we can use it\nconst { minify } = require('terser');\n\n// Import fs so we can read/write files\nconst fs = require('fs');\n\n// Define the config for how Terser should minify the code\n// This is set to how you currently have this web tool configured\nconst config = {{CONFIG}};\n\n// Load in your code to minify\nconst code = fs.readFileSync('my_code.js', 'utf8');\n\n// Minify the code with Terser\nconst minified = await minify(code, config);",Yv=`${qv}\n\n// Save the code!\nfs.writeFileSync('my_code.min.js', minified.code);`,Zv=`${qv}\n\n// Save the code!\nfs.writeFileSync('{{FILE}}', minified.code);\n\n// Save the generated sourcemap\nfs.writeFileSync('{{FILE}}.map', minified.map);`,Jv={name:"Explainer",components:{ExternalLink:Ds,Output:Qp},props:{config:Object},data:()=>({i18n:nd}),computed:{example(){const e=function(e,t,n){const i=[];return function e(t,n={},r=""){const o=n.indent||"\t";let s;s=void 0===n.inlineCharacterLimit?{newline:"\n",newlineOrSpace:"\n",pad:r,indent:r+o}:{newline:"@@__STRINGIFY_OBJECT_NEW_LINE__@@",newlineOrSpace:"@@__STRINGIFY_OBJECT_NEW_LINE_OR_SPACE__@@",pad:"@@__STRINGIFY_OBJECT_PAD__@@",indent:"@@__STRINGIFY_OBJECT_INDENT__@@"};const a=e=>{if(void 0===n.inlineCharacterLimit)return e;const t=e.replace(new RegExp(s.newline,"g"),"").replace(new RegExp(s.newlineOrSpace,"g")," ").replace(new RegExp(s.pad+"|"+s.indent,"g"),"");return t.length<=n.inlineCharacterLimit?t:e.replace(new RegExp(s.newline+"|"+s.newlineOrSpace,"g"),"\n").replace(new RegExp(s.pad,"g"),r).replace(new RegExp(s.indent,"g"),r+o)};if(i.includes(t))return'"[Circular]"';if(null==t||"number"==typeof t||"boolean"==typeof t||"function"==typeof t||"symbol"==typeof t||(l=t,"[object RegExp]"===Wv.call(l)))return String(t);var l,u;if(t instanceof Date)return`new Date('${t.toISOString()}')`;if(Array.isArray(t)){if(0===t.length)return"[]";i.push(t);const l="["+s.newline+t.map(((i,a)=>{const l=t.length-1===a?s.newline:","+s.newlineOrSpace;let u=e(i,n,r+o);return n.transform&&(u=n.transform(t,a,u)),s.indent+u+l})).join("")+s.pad+"]";return i.pop(),a(l)}if(function(e){const t=typeof e;return null!==e&&("object"===t||"function"===t)}(t)){let l=(u=t,[...Object.keys(u),...Object.getOwnPropertySymbols(u).filter((e=>jv.call(u,e)))]);if(n.filter&&(l=l.filter((e=>n.filter(t,e)))),0===l.length)return"{}";i.push(t);const c="{"+s.newline+l.map(((i,a)=>{const u=l.length-1===a?s.newline:","+s.newlineOrSpace,c="symbol"==typeof i,f=!c&&/^[a-z$_][$\w]*$/i.test(i),p=c||f?i:e(i,n);let d=e(t[i],n,r+o);return n.transform&&(d=n.transform(t,i,d)),s.indent+String(p)+": "+d+u})).join("")+s.pad+"}";return i.pop(),a(c)}return t=t.replace(/\\/g,"\\\\"),t=String(t).replace(/[\r\n]/g,(e=>"\n"===e?"\\n":"\\r")),!1===n.singleQuotes?`"${t=t.replace(/"/g,'\\"')}"`:`'${t=t.replace(/'/g,"\\'")}'`}(e,t,n)}(this.$props.config,{indent:" ",singleQuotes:!0});return this.$props.config.sourceMap?Zv.replace(/{{CONFIG}}/g,e).replace(/{{FILE}}/g,this.$props.config.sourceMap.filename):Yv.replace(/{{CONFIG}}/g,e)}},methods:{inlineCode:e=>e.replace(/`([^`]+)`/g,"$1")}},Qv={name:"App",components:{Header:ds,PrettyCheck:xs,PrismEditor:rs,Output:Qp,Size:fd,SourceMap:hd,Config:Hv,Explainer:(0,ps.Z)(Jv,[["render",function(e,t,n,i,r,o){const s=mn("ExternalLink"),a=mn("Output");return ar(),fr("div",zv,[vr("h3",null,q(r.i18n.templates.explainer.whyMinifyYourJavaScript),1),(ar(!0),fr(tr,null,li(r.i18n.templates.explainer.whyMinifyYourJavaScriptContent,(e=>(ar(),fr("p",{innerHTML:o.inlineCode(e)},null,8,Xv)))),256)),vr("h3",null,q(r.i18n.templates.explainer.usingTerserInAProductionPipeline),1),(ar(!0),fr(tr,null,li(r.i18n.templates.explainer.usingTerserInAProductionPipelineContent,(e=>(ar(),fr("p",{innerHTML:o.inlineCode(e)},null,8,$v)))),256)),vr("p",null,[Sr(q(r.i18n.templates.explainer.forMoreInformationPleaseSee)+" ",1),yr(s,{link:"https://github.com/terser/terser#command-line-usage",text:r.i18n.templates.explainer.theirDocumentationOnGitHub},null,8,["text"])]),vr("h4",null,q(r.i18n.templates.explainer.exampleUsageForTerser),1),(ar(),pr(a,{key:o.example,code:o.example},null,8,["code"]))])}]]),Footer:Ts},data:()=>({i18n:nd,liveCompress:!0,input:"/* This a top-level function with some arguments that should be mangled */\nconst test = (argumentOne, argumentTwo) => {\n\n /* This is an unused function that compression should remove as dead code */\n const hello = () => console.log('hello world');\n\n /* Use the input arguments, which should match the new mangled names */\n console.log(argumentOne, argumentTwo);\n};",tab:"output",error:"",warn:"",output:"",map:"",config:Hv.delegated}),watch:{input(){this.$data.liveCompress&&this.generate()},config:{handler(){this.generate()},deep:!0},error(e){e||"errors"!==this.$data.tab?e&&(this.$data.tab="errors"):this.$data.tab="output"},warn(e){e||"warnings"!==this.$data.tab||(this.$data.tab="output")},map(e){e||"map"!==this.$data.tab||(this.$data.tab="output")}},methods:{async generate(){try{const e=await async function(e,t,n){const i=jp(e,t,void 0);let r,o;do{o=i.next(await r),r=o.value}while(!o.done);return o.value}(this.$data.input,{...Fs()(this.$data.config),warnings:"verbose"});this.$data.error=null,this.$data.warn=e.warnings,this.$data.output=e.code,this.$data.map=e.map}catch(e){this.$data.error=`Line ${e.line.toLocaleString()}: ${e.message}`,this.$data.warn=null,this.$data.output="// Failed to generate",this.$data.map=null}},highlighter:e=>(0,os.highlight)(e,os.languages.js)}},ey=(0,ps.Z)(Qv,[["render",function(e,t,n,i,r,o){const s=mn("Header"),a=mn("PrettyCheck"),l=mn("PrismEditor"),u=mn("Output"),c=mn("Size"),f=mn("SourceMap"),p=mn("Config"),d=mn("Explainer"),h=mn("Footer");return ar(),fr("div",Vo,[vr("div",Uo,[yr(s,{title:r.i18n.templates.app.title},{description:un((()=>[Sr(q(r.i18n.templates.app.description),1)])),_:1},8,["title"]),vr("div",Ko,[vr("div",Go,[vr("div",Ho,[vr("a",{class:"button is-primary",onClick:t[0]||(t[0]=(...e)=>o.generate&&o.generate(...e))},q(r.i18n.templates.app.compress),1),vr("div",zo,[yr(a,{modelValue:r.liveCompress,"onUpdate:modelValue":t[1]||(t[1]=e=>r.liveCompress=e),class:"p-default p-curve p-fill p-icon"},{extra:un((()=>[Xo])),default:un((()=>[Sr(" "+q(r.i18n.templates.app.liveCompression),1)])),_:1},8,["modelValue"])])]),vr("h3",null,q(r.i18n.templates.app.input),1),vr("div",$o,[yr(l,{modelValue:r.input,"onUpdate:modelValue":t[2]||(t[2]=e=>r.input=e),highlight:o.highlighter},null,8,["modelValue","highlight"])])]),vr("div",Wo,[vr("div",jo,[vr("ul",null,[r.error?(ar(),fr("li",{key:0,class:X("errors"===r.tab?"is-active":""),onClick:t[3]||(t[3]=e=>r.tab="errors")},[vr("a",null,q(r.i18n.templates.app.errors),1)],2)):Dr("v-if",!0),r.warn?(ar(),fr("li",{key:1,class:X("warnings"===r.tab?"is-active":""),onClick:t[4]||(t[4]=e=>r.tab="warnings")},[vr("a",null,q(r.i18n.templates.app.warnings),1)],2)):Dr("v-if",!0),vr("li",{class:X("output"===r.tab?"is-active":""),onClick:t[5]||(t[5]=e=>r.tab="output")},[vr("a",null,q(r.i18n.templates.app.output),1)],2),r.map?(ar(),fr("li",{key:2,class:X("map"===r.tab?"is-active":""),onClick:t[6]||(t[6]=e=>r.tab="map")},[vr("a",null,q(r.i18n.templates.app.map),1)],2)):Dr("v-if",!0)])]),"errors"===r.tab?(ar(),fr("article",qo,[vr("div",Yo,[vr("p",null,q(r.i18n.templates.app.errorMsg),1)]),vr("div",Zo,q(r.error),1)])):Dr("v-if",!0),"warnings"===r.tab?(ar(),fr("article",Jo,[vr("div",Qo,[vr("p",null,q(1===r.warn.length?r.i18n.templates.app.warningMsg:r.i18n.templates.app.warningsMsg),1)]),vr("div",es,[(ar(!0),fr(tr,null,li(r.warn,(e=>(ar(),fr("ul",null,[vr("li",null,q(e),1)])))),256))])])):Dr("v-if",!0),"output"===r.tab?(ar(),fr(tr,{key:2},[vr("h3",null,q(r.i18n.templates.app.output),1),(ar(),pr(u,{key:r.output,code:r.output},null,8,["code"])),yr(c,{before:r.input,after:r.output},null,8,["before","after"])],64)):Dr("v-if",!0),"map"===r.tab?(ar(),fr(tr,{key:3},[vr("h3",null,q(r.i18n.templates.app.mapTitle),1),(ar(),pr(f,{key:r.map,code:r.map},null,8,["code"]))],64)):Dr("v-if",!0)])]),yr(p,{config:r.config},null,8,["config"]),yr(d,{config:r.config},null,8,["config"])]),yr(h,{text:r.i18n.templates.app.oss},null,8,["text"])])}]]);document.head.title=nd.templates.app.title,Lo(ey).mount("#app")})()})(); +//# sourceMappingURL=mount.js.map \ No newline at end of file diff --git a/mount.js.LICENSE.txt b/mount.js.LICENSE.txt new file mode 100644 index 0000000..f6d47db --- /dev/null +++ b/mount.js.LICENSE.txt @@ -0,0 +1,31 @@ +/*! + * vue-tippy v6.4.1 + * (c) 2023 + * @license MIT + */ + +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +/*! #__NO_SIDE_EFFECTS__ */ + +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */ + +/** +* @vue/shared v3.4.15 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ diff --git a/mount.js.map b/mount.js.map new file mode 100644 index 0000000..f0a124d --- /dev/null +++ b/mount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mount.js","mappings":"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G,QAAUmqB,EAAK7jB,MAAMtG,SAC1BmqB,EAAK7jB,MAAQs5G,EAErB,CACA,OAAOz1F,EAgBP,SAAS01F,EAAczd,EAAYp0E,GAC/B,QAAIA,EAAIsoD,WAAWt2E,UACdguB,EAAIhN,UACLohF,EAAW9xB,SAAS86B,QAChBhJ,EAAW2C,YACJ3C,EAAW2C,WAAW/2E,GAKzC,CACJ,kBC9sHW8xF,GAAW,CAClB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,iBACA,uBACA,2BACA,0BACA,2BACA,iCACA,sBACA,4BACA,iCACA,kBACA,2BACA,kBACA,wBACA,wBACA,wBACA,oBACA,oBACA,0BACA,0BACA,0BACA,iBACA,qBACA,gBACA,yBACA,kBACA,gBACA,kBACA,kBACA,6BACA,8BACA,+BACA,eACA,oBACA,kBACA,oBACA,cACA,0BACA,sBACA,iCACA,kCACA,8BACA,+BACA,mBACA,qBACA,mBACA,0BACA,gBACA,wBACA,iBACA,wBACA,uBACA,kBACA,wBACA,2BACA,2BACA,kCACA,kBACA,kBACA,mBACA,mBACA,uBACA,wBACA,sBACA,qBACA,oBACA,0BACA,8BACA,6BACA,8BACA,oCACA,yBACA,+BACA,oCACA,qBACA,8BACA,0BACA,4BACA,0BACA,oCACA,qCACA,uBACA,wBACA,iCACA,kCACA,oBACA,wBACA,mBACA,4BACA,qBACA,mBACA,qBACA,qBACA,iBACA,eACA,qBACA,yBACA,oBACA,oBACA,sBACA,oBACA,0BACA,qBACA,eACA,oBACA,yBACA,qBACA,sBACA,wBACA,0BACA,0BACA,sBACA,oBACA,gBACA,sBACA,6BACA,0BACA,2BACA,sBACA,4BACA,4BACA,oBACA,2BACA,0BACA,qBACA,2BACA,8BACA,8BACA,qCACA,sBACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,aACA,YACA,SACA,oBACA,iBACA,kBACA,wBACA,WACA,2BACA,2BACA,MACA,uBACA,UACA,QACA,aACA,mBACA,WACA,SACA,qBACA,kCACA,WACA,0BACA,eACA,uBACA,mBACA,iBACA,YACA,kBACA,cACA,4BACA,gBACA,gBACA,oBACA,iBACA,eACA,YACA,kBACA,iBACA,yBACA,oBACA,qBACA,MACA,mBACA,6BACA,QACA,cACA,YACA,UACA,OACA,QACA,cACA,wBACA,eACA,uBACA,gBACA,YACA,aACA,gBACA,uBACA,2BACA,mBACA,eACA,mBACA,iCACA,mCACA,wBACA,yBACA,OACA,yBACA,cACA,WACA,QACA,cACA,kBACA,gBACA,iBACA,uBACA,qBACA,kBACA,gBACA,OACA,YACA,OACA,OACA,eACA,YACA,YACA,YACA,OACA,wBACA,iBACA,cACA,eACA,OACA,oBACA,yBACA,wBACA,8BACA,UACA,kBACA,mBACA,WACA,iBACA,2BACA,kBACA,oBACA,SACA,gBACA,iBACA,mBACA,OACA,YACA,YACA,oCACA,kBACA,oCACA,gCACA,4BACA,6BACA,gBACA,UACA,mBACA,4BACA,kBACA,MACA,eACA,qBACA,SACA,eACA,WACA,gBACA,QACA,SACA,UACA,QACA,oBACA,oBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACA,oBACA,kBACA,eACA,yBACA,iBACA,wBACA,gCACA,gCACA,gCACA,+BACA,6BACA,UACA,sBACA,4BACA,aACA,iBACA,iBACA,iBACA,qBACA,eACA,WACA,mBACA,2BACA,WACA,oBACA,4BACA,qBACA,MACA,iBACA,eACA,iBACA,mBACA,sBACA,kBACA,2BACA,kBACA,gBACA,gBACA,kBACA,mBACA,kBACA,gBACA,aACA,aACA,gBACA,iBACA,aACA,eACA,qBACA,eACA,qBACA,mBACA,mBACA,kBACA,kBACA,cACA,iBACA,mBACA,oBACA,YACA,UACA,cACA,WACA,UACA,WACA,WACA,sBACA,eACA,gBACA,gBACA,kBACA,wBACA,oBACA,gBACA,eACA,eACA,iBACA,mBACA,WACA,eACA,4BACA,0BACA,mBACA,kBACA,WACA,SACA,cACA,aACA,UACA,gBACA,UACA,UACA,kBACA,wBACA,sBACA,oBACA,yBACA,uBACA,wBACA,oBACA,qBACA,uBACA,sBACA,mBACA,WACA,SACA,YACA,SACA,cACA,UACA,aACA,eACA,SACA,SACA,aACA,SACA,iBACA,kBACA,sBACA,SACA,SACA,UACA,WACA,eACA,aACA,eACA,cACA,cACA,cACA,QACA,YACA,cACA,aACA,aACA,aACA,WACA,YACA,YACA,aACA,gBACA,kBACA,iBACA,iBACA,iBACA,cACA,UACA,iBACA,SACA,WACA,WACA,SACA,YACA,iBACA,kBACA,gBACA,wBACA,SACA,KACA,QACA,eACA,2BACA,gCACA,iBACA,gBACA,2BACA,gBACA,oBACA,sBACA,gBACA,aACA,iBACA,YACA,iBACA,gBACA,aACA,WACA,eACA,UACA,eACA,mBACA,oBACA,UACA,qBACA,cACA,gBACA,uBACA,UACA,aACA,uBACA,SACA,YACA,wBACA,cACA,eACA,iBACA,WACA,WACA,OACA,YACA,gBACA,QACA,mBACA,oBACA,mBACA,aACA,mBACA,oBACA,kBACA,oBACA,oBACA,qBACA,aACA,cACA,gBACA,2BACA,aACA,kBACA,oBACA,iBACA,iBACA,kBACA,eACA,WACA,uBACA,SACA,yBACA,gBACA,iCACA,6BACA,iCACA,8BACA,4CACA,8BACA,qBACA,YACA,WACA,eACA,oBACA,sBACA,YACA,oBACA,YACA,WACA,mBACA,UACA,UACA,cACA,kBACA,aACA,qBACA,uBACA,gBACA,eACA,eACA,sBACA,iBACA,iBACA,kBACA,wBACA,+BACA,uBACA,4BACA,8BACA,0BACA,yBACA,0BACA,2BACA,yBACA,4BACA,wBACA,0BACA,0BACA,yBACA,4BACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,gBACA,aACA,aACA,eACA,mBACA,kBACA,YACA,cACA,WACA,mBACA,oBACA,oBACA,oBACA,WACA,gBACA,mBACA,oBACA,eACA,uBACA,6BACA,qBACA,eACA,eACA,sBACA,iBACA,iBACA,eACA,cACA,WACA,iBACA,gBACA,gBACA,gBACA,sBACA,cACA,WACA,cACA,aACA,eACA,gBACA,eACA,gBACA,qBACA,iBACA,eACA,WACA,YACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,eACA,eACA,WACA,sBACA,WACA,gBACA,eACA,cACA,cACA,mBACA,cACA,sBACA,WACA,gBACA,WACA,eACA,WACA,cACA,eACA,WACA,cACA,kBACA,mBACA,WACA,cACA,oBACA,kBACA,WACA,oBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,kBACA,WACA,eACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,mBACA,mBACA,oBACA,kBACA,sBACA,4BACA,oBACA,WACA,aACA,kBACA,gBACA,mBACA,iBACA,eACA,iBACA,gBACA,cACA,cACA,cACA,eACA,qBACA,oBACA,oBACA,WACA,uBACA,eACA,WACA,cACA,gBACA,eACA,WACA,qBACA,gBACA,mBACA,mBACA,eACA,eACA,eACA,eACA,kBACA,WACA,aACA,eACA,WACA,oBACA,cACA,iBACA,YACA,WACA,qBACA,qBACA,mBACA,WACA,aACA,gBACA,oBACA,uBACA,sBACA,sBACA,sBACA,yBACA,uBACA,sBACA,uBACA,sBACA,wBACA,0BACA,yBACA,4BACA,yBACA,4BACA,sBACA,qBACA,qBACA,qBACA,uBACA,wBACA,WACA,6BACA,iCACA,kCACA,kCACA,8BACA,mCACA,4BACA,2BACA,2BACA,4BACA,2BACA,2BACA,mCACA,kCACA,6BACA,6BACA,6BACA,2BACA,qBACA,qBACA,6BACA,wBACA,qBACA,0BACA,qBACA,kCACA,2BACA,yBACA,mBACA,sBACA,0BACA,gCACA,qBACA,oBACA,4BACA,wBACA,0BACA,oBACA,sBACA,sBACA,yBACA,0BACA,wBACA,wBACA,2BACA,8BACA,qBACA,mBACA,sBACA,0BACA,wBACA,0BACA,0BACA,wBACA,oCACA,kCACA,iCACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,2BACA,wBACA,qBACA,6BACA,uBACA,wBACA,qBACA,wBACA,wBACA,0BACA,oCACA,kCACA,sBACA,4BACA,yBACA,oBACA,qBACA,4BACA,qBACA,yBACA,uBACA,sBACA,sBACA,yBACA,2BACA,0BACA,oBACA,wBACA,uBACA,sBACA,4BACA,6BACA,0BACA,+BACA,4BACA,4BACA,qBACA,6BACA,6BACA,4BACA,0BACA,uBACA,qBACA,qBACA,sBACA,6BACA,wBACA,sBACA,qBACA,yBACA,wBACA,wBACA,0BACA,yBACA,qBACA,sBACA,yBACA,2BACA,uBACA,wBACA,wBACA,wBACA,oBACA,4BACA,sBACA,qBACA,wBACA,wBACA,6BACA,qBACA,qBACA,oBACA,qBACA,uBACA,wBACA,yBACA,WACA,WACA,cACA,OACA,YACA,cACA,WACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,mBACA,2BACA,YACA,YACA,eACA,eACA,eACA,cACA,eACA,mBACA,uBACA,WACA,OACA,iBACA,sBACA,YACA,wBACA,sBACA,4BACA,mBACA,oBACA,gCACA,gCACA,yBACA,uBACA,gBACA,2BACA,YACA,eACA,WACA,mBACA,mBACA,eACA,YACA,yBACA,IACA,uBACA,+BACA,eACA,QACA,eACA,QACA,aACA,eACA,cACA,wBACA,UACA,QACA,aACA,QACA,uBACA,UACA,mBACA,eACA,6BACA,SACA,kBACA,QACA,aACA,YACA,QACA,iBACA,cACA,cACA,WACA,UACA,UACA,gBACA,mBACA,gBACA,cACA,iBACA,0BACA,QACA,iCACA,aACA,eACA,eACA,aACA,eACA,eACA,aACA,eACA,eACA,aACA,aACA,aACA,QACA,iBACA,2BACA,WACA,kBACA,kCACA,sCACA,cACA,oCACA,mCACA,wCACA,wCACA,oCACA,oCACA,qCACA,qCACA,kCACA,sCACA,+CACA,uCACA,uCACA,sBACA,uBACA,sBACA,oCACA,oCACA,4CACA,qCACA,0BACA,QACA,iBACA,aACA,WACA,wBACA,gBACA,gBACA,mCACA,sBACA,OACA,YACA,OACA,YACA,WACA,aACA,aACA,2BACA,4BACA,kBACA,sBACA,uBACA,aACA,eACA,eACA,aACA,WACA,cACA,uBACA,WACA,gBACA,oBACA,WACA,uBACA,SACA,UACA,QACA,aACA,WACA,UACA,uBACA,gBACA,qBACA,eACA,wBACA,cACA,cACA,yBACA,sBACA,2BACA,eACA,SACA,YACA,aACA,oBACA,mBACA,mBACA,gBACA,eACA,mBACA,SACA,wBACA,WACA,YACA,aACA,WACA,aACA,kBACA,OACA,oBACA,oBACA,oBACA,kBACA,mBACA,gBACA,kBACA,sBACA,wBACA,kBACA,oBACA,oBACA,iBACA,qBACA,qBACA,mBACA,kBACA,sBACA,qBACA,oBACA,uBACA,iBACA,eACA,cACA,mBACA,sBACA,kBACA,6BACA,kBACA,mBACA,sBACA,gBACA,kBACA,qBACA,kBACA,oBACA,mBACA,mBACA,qBACA,oBACA,gBACA,mBACA,oBACA,kBACA,iBACA,qBACA,mBACA,kBACA,sBACA,kBACA,mBACA,iBACA,mBACA,oBACA,sBACA,oBACA,wBACA,oBACA,uBACA,mBACA,qBACA,iBACA,sBACA,2BACA,mBACA,oBACA,oBACA,oBACA,kBACA,oBACA,kBACA,mBACA,0BACA,uBACA,sBACA,mBACA,sBACA,0BACA,sBACA,sBACA,kBACA,mBACA,mBACA,mBACA,qBACA,mBACA,kBACA,UACA,UACA,KACA,eACA,aACA,gBACA,gBACA,aACA,gBACA,cACA,YACA,qBACA,cACA,uBACA,aACA,gBACA,iBACA,WACA,cACA,iBACA,iBACA,mBACA,aACA,iBACA,wBACA,OACA,gBACA,mCACA,iCACA,cACA,OACA,YACA,QACA,iBACA,WACA,MACA,sBACA,qBACA,iBACA,uBACA,iBACA,mBACA,WACA,WACA,WACA,sBACA,qBACA,wBACA,eACA,yBACA,gCACA,gBACA,2BACA,wBACA,oBACA,oBACA,gBACA,mBACA,SACA,eACA,eACA,QACA,cACA,8BACA,eACA,YACA,WACA,0BACA,kBACA,aACA,qBACA,iBACA,qBACA,WACA,aACA,aACA,YACA,SACA,gBACA,uBACA,4BACA,OACA,4BACA,WACA,OACA,OACA,UACA,iBACA,gBACA,WACA,QACA,WACA,WACA,gBACA,oBACA,iBACA,uBACA,gCACA,uBACA,SACA,OACA,SACA,kBACA,uBACA,wBACA,QACA,YACA,aACA,aACA,cACA,OACA,OACA,MACA,SACA,UACA,SACA,QACA,UACA,WACA,YACA,UACA,cACA,iBACA,YACA,kBACA,yBACA,cACA,yBACA,2BACA,YACA,aACA,mBACA,SACA,WACA,OACA,cACA,WACA,YACA,MACA,sBACA,2BACA,gCACA,wBACA,2CACA,mCACA,8BACA,yCACA,4BACA,mBACA,uBACA,wBACA,oBACA,gCACA,8BACA,kCACA,+BACA,2BACA,wBACA,mBACA,cACA,0BACA,0BACA,uBACA,iCACA,mBACA,gDACA,0CACA,6CACA,yBACA,8BACA,YACA,yBACA,sBACA,qBACA,+BACA,iCACA,4BACA,gCACA,6BACA,oBACA,oBACA,mBACA,sBACA,oBACA,8BACA,sBACA,sBACA,8BACA,sBACA,uBACA,uBACA,aACA,eACA,aACA,YACA,aACA,sBACA,YACA,eACA,mBACA,aACA,gBACA,WACA,MACA,2BACA,mBACA,YACA,kBACA,oBACA,mBACA,eACA,YACA,YACA,YACA,WACA,YACA,UACA,qBACA,oBACA,oBACA,oBACA,sBACA,mBACA,iBACA,mBACA,qBACA,uBACA,wBACA,qBACA,yBACA,sBACA,uBACA,qBACA,uBACA,2CACA,kCACA,qCACA,iCACA,gCACA,8BACA,2BACA,6BACA,+BACA,kCACA,kCACA,iCACA,gCACA,kCACA,kCACA,gCACA,yBACA,yBACA,yBACA,iCACA,yBACA,0BACA,0BACA,MACA,OACA,gBACA,oBACA,wBACA,kBACA,kBACA,eACA,8BACA,sBACA,aACA,gBACA,gBACA,uBACA,sBACA,kBACA,oBACA,uBACA,YACA,YACA,gBACA,iBACA,sBACA,gBACA,0BACA,eACA,qBACA,cACA,cACA,kCACA,6BACA,mBACA,mBACA,kCACA,wBACA,SACA,iBACA,eACA,cACA,UACA,WACA,gBACA,SACA,aACA,mBACA,eACA,oBACA,wBACA,uBACA,uBACA,6BACA,mBACA,wBACA,6BACA,gBACA,wBACA,aACA,wBACA,eACA,oBACA,oBACA,oBACA,iBACA,sBACA,uBACA,iBACA,sBACA,sBACA,sBACA,qBACA,cACA,kBACA,aACA,qBACA,eACA,aACA,eACA,qBACA,sBACA,iBACA,gBACA,eACA,gBACA,qBACA,qBACA,qBACA,iBACA,aACA,wBACA,eACA,yBACA,0BACA,0BACA,aACA,iBACA,eACA,iBACA,cACA,gBACA,yBACA,sBACA,YACA,sBACA,mBACA,6BACA,8BACA,0BACA,2BACA,gBACA,kBACA,iBACA,uBACA,kBACA,mBACA,cACA,gBACA,iBACA,aACA,mBACA,yBACA,wBACA,yBACA,oBACA,eACA,qBACA,oBACA,gBACA,qBACA,wBACA,wBACA,8BACA,eACA,eACA,gBACA,gBACA,oBACA,kBACA,gBACA,mBACA,iBACA,gBACA,iBACA,UACA,wBACA,yBACA,oBACA,gBACA,cACA,eACA,iBACA,kBACA,oBACA,QACA,MACA,OACA,oBACA,SACA,aACA,cACA,wBACA,cACA,OACA,oBACA,gBACA,QACA,WACA,kBACA,gBACA,mBACA,oBACA,sBACA,SACA,WACA,8BACA,cACA,iCACA,MACA,eACA,2BACA,YACA,cACA,qBACA,OACA,aACA,eACA,WACA,WACA,eACA,mBACA,SACA,eACA,cACA,WACA,KACA,MACA,2BACA,2BACA,sBACA,sBACA,sBACA,sBACA,OACA,SACA,UACA,6BACA,6BACA,cACA,gBACA,SACA,8BACA,sBACA,sBACA,kBACA,oCACA,SACA,oBACA,iBACA,uBACA,gBACA,iBACA,kBACA,mBACA,iBACA,YACA,YACA,kBACA,kBACA,oBACA,4BACA,4BACA,mCACA,mCACA,gCACA,gCACA,uCACA,uCACA,qBACA,gCACA,gCACA,qBACA,8BACA,8BACA,qBACA,qBACA,kBACA,kBACA,UACA,oBACA,aACA,KACA,oBACA,4BACA,sBACA,8BACA,gBACA,SACA,wBACA,sBACA,uBACA,uBACA,oBACA,OACA,oBACA,8BACA,kBACA,sBACA,eACA,mBACA,aACA,qBACA,SACA,iBACA,qBACA,iBACA,2BACA,iBACA,4BACA,kBACA,cACA,2BACA,mBACA,yBACA,4BACA,kBACA,qBACA,wBACA,8BACA,sBACA,+BACA,yBACA,4BACA,0BACA,oBACA,sBACA,eACA,mBACA,cACA,oBACA,yBACA,SACA,cACA,cACA,eACA,gBACA,oBACA,eACA,2BACA,yBACA,uCACA,mCACA,6BACA,uBACA,sBACA,wBACA,gBACA,UACA,wBACA,mBACA,QACA,sBACA,cACA,mBACA,0BACA,IACA,gBACA,eACA,yBACA,YACA,qBACA,iBACA,iBACA,OACA,OACA,QACA,OACA,OACA,QACA,KACA,MACA,OACA,WACA,qBACA,OACA,cACA,mBACA,2BACA,YACA,gBACA,aACA,MACA,WACA,cACA,UACA,eACA,0BACA,uBACA,yBACA,0BACA,0BACA,sBACA,+BACA,wBACA,uBACA,4BACA,qBACA,WACA,yCACA,wBACA,8BACA,yCACA,8BACA,2BACA,oBACA,SACA,UACA,KACA,QACA,QACA,SACA,QACA,QACA,SACA,MACA,OACA,QACA,YACA,MACA,WACA,aACA,SACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,OACA,QACA,SACA,aACA,UACA,OACA,UACA,UACA,WACA,UACA,UACA,WACA,QACA,QACA,SACA,UACA,cACA,eACA,WACA,cACA,aACA,qBACA,4BACA,iBACA,gBACA,yBACA,iBACA,sBACA,mBACA,WACA,gBACA,kBACA,kBACA,oBACA,iCACA,4BACA,iBACA,eACA,oBACA,mBACA,wBACA,iBACA,gBACA,gBACA,QACA,aACA,iBACA,iBACA,8BACA,mBACA,OACA,iBACA,UACA,SACA,4BACA,qBACA,iBACA,SACA,aACA,oBACA,UACA,iBACA,sBACA,qBACA,WACA,eACA,aACA,mBACA,0BACA,oBACA,aACA,kBACA,eACA,sBACA,UACA,2BACA,iBACA,kBACA,yBACA,wBACA,WACA,kBACA,cACA,eACA,mBACA,iBACA,aACA,YACA,eACA,eACA,SACA,mBACA,gBACA,iBACA,uBACA,mBACA,kBACA,cACA,2BACA,aACA,QACA,UACA,WACA,iBACA,qBACA,eACA,gBACA,yBACA,qBACA,eACA,cACA,wBACA,gBACA,8BACA,YACA,WACA,oBACA,OACA,aACA,eACA,UACA,QACA,SACA,YACA,qBACA,YACA,OACA,QACA,eACA,eACA,iBACA,cACA,cACA,cACA,UACA,qBACA,oBACA,oBACA,+BACA,+BACA,mBACA,0BACA,yBACA,eACA,qBACA,sBACA,eACA,eACA,gBACA,iBACA,0BACA,0BACA,cACA,eACA,qBACA,oBACA,UACA,kBACA,cACA,cACA,cACA,cACA,aACA,gBACA,gBACA,cACA,wBACA,qBACA,yBACA,WACA,yBACA,oBACA,0BACA,6BACA,mBACA,qBACA,yBACA,qBACA,oBACA,wBACA,oBACA,wBACA,iCACA,kBACA,oBACA,2BACA,sBACA,mBACA,qBACA,WACA,sCACA,mBACA,iBACA,iBACA,oBACA,cACA,aACA,qBACA,yBACA,oBACA,eACA,oBACA,0BACA,gCACA,wBACA,6BACA,8BACA,8BACA,2BACA,yBACA,oBACA,oBACA,oBACA,oBACA,oBACA,2BACA,oBACA,oBACA,wBACA,yBACA,qBACA,yBACA,+BACA,wBACA,mBACA,yBACA,mBACA,iBACA,qBACA,2BACA,yBACA,wBACA,wBACA,0BACA,cACA,qBACA,kBACA,qBACA,qBACA,qBACA,kBACA,kBACA,YACA,gBACA,iBACA,2BACA,kBACA,mBACA,iBACA,YACA,qBACA,yBACA,YACA,gBACA,WACA,iBACA,aACA,mBACA,mBACA,sBACA,4BACA,4BACA,kCACA,kCACA,gCACA,gCACA,sCACA,sCACA,sBACA,gCACA,gCACA,sBACA,8BACA,8BACA,iBACA,sBACA,sBACA,oBACA,WACA,eACA,oBACA,qBACA,yBACA,2BACA,UACA,iBACA,qBACA,gBACA,mBACA,gBACA,iBACA,gBACA,kBACA,mBACA,mBACA,iBACA,kBACA,wBACA,iBACA,qBACA,4BACA,kBACA,eACA,mBACA,eACA,gBACA,kBACA,iBACA,cACA,gBACA,eACA,oBACA,qBACA,oBACA,wBACA,4BACA,gBACA,gBACA,gBACA,gBACA,sBACA,6BACA,yBACA,kCACA,wBACA,yBACA,oBACA,uBACA,oBACA,yBACA,8BACA,+BACA,0BACA,8BACA,6BACA,8BACA,uBACA,2BACA,8BACA,4BACA,0BACA,2BACA,8BACA,0BACA,8BACA,2BACA,mCACA,0CACA,gCACA,kCACA,iCACA,wCACA,qCACA,wCACA,sCACA,qCACA,uCACA,sCACA,gCACA,8BACA,+BACA,gCACA,mCACA,+BACA,wBACA,oBACA,qBACA,qBACA,oBACA,oBACA,wBACA,oBACA,4BACA,oBACA,oBACA,yBACA,8BACA,0BACA,iCACA,0BACA,yBACA,4BACA,qBACA,yBACA,4BACA,uBACA,wBACA,0BACA,iCACA,gCACA,kCACA,6BACA,qBACA,yBACA,kCACA,wBACA,oBACA,iCACA,yBACA,6BACA,sCACA,+BACA,kCACA,mCACA,mCACA,mCACA,mCACA,mCACA,mCACA,mCACA,mCACA,mCACA,uBACA,2BACA,0BACA,2BACA,0BACA,wBACA,yBACA,uBACA,uBACA,sBACA,sBACA,sBACA,0BACA,wBACA,mCACA,iCACA,8BACA,kCACA,wBACA,+BACA,qBACA,yBACA,yBACA,yBACA,iBACA,aACA,aACA,0BACA,6BACA,cACA,aACA,aACA,SACA,oBACA,SACA,sBACA,kBACA,+BACA,YACA,SACA,mBACA,gBACA,yBACA,4BACA,qBACA,MACA,aACA,oBACA,eACA,qBACA,eACA,mBACA,kBACA,4BACA,uBACA,2BACA,uBACA,cACA,mBACA,gBACA,UACA,eACA,iBACA,SACA,aACA,mBACA,2BACA,aACA,iBACA,cACA,eACA,SACA,cACA,cACA,YACA,4BACA,8BACA,8BACA,4BACA,6BACA,+BACA,UACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,aACA,mBACA,aACA,qBACA,kBACA,qBACA,2BACA,qBACA,2BACA,uBACA,uBACA,mBACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,2BACA,2BACA,qBACA,6BACA,oBACA,kBACA,qBACA,kBACA,iBACA,iBACA,iBACA,YACA,UACA,cACA,kBACA,kBACA,gBACA,2BACA,qBACA,4BACA,6BACA,4BACA,oCACA,iCACA,iCACA,kCACA,4BACA,wCACA,8BACA,WACA,YACA,eACA,iBACA,oBACA,WACA,oBACA,gBACA,cACA,gBACA,QACA,wBACA,OACA,cACA,oBACA,cACA,oBACA,YACA,cACA,YACA,eACA,mBACA,gBACA,YACA,aACA,QACA,aACA,YACA,aACA,kBACA,kBACA,aACA,cACA,gBACA,mBACA,oBACA,2BACA,YACA,cACA,MACA,UACA,WACA,UACA,uBACA,gCACA,uCACA,wBACA,0BACA,sBACA,8CACA,4CACA,iBACA,yBACA,kCACA,sBACA,uBACA,uBACA,wBACA,iBACA,eACA,eACA,cACA,eACA,0BACA,wBACA,+BACA,+BACA,mBACA,qCACA,sBACA,sBACA,iCACA,oBACA,qBACA,qBACA,mBACA,oBACA,SACA,aACA,gBACA,eACA,+BACA,oBACA,8BACA,2BACA,0BACA,gCACA,0BACA,4BACA,oBACA,oBACA,oBACA,sBACA,iBACA,yBACA,yBACA,uBACA,6BACA,cACA,WACA,MACA,kBACA,eACA,mBACA,MACA,wBACA,mBACA,qBACA,YACA,cACA,sBACA,eACA,iCACA,iCACA,kCACA,kCACA,uBACA,MACA,cACA,cACA,aACA,oBACA,iBACA,qBACA,+BACA,qBACA,kBACA,iBACA,iBACA,SACA,UACA,iBACA,cACA,SACA,uBACA,qCACA,8BACA,oCACA,8BACA,8BACA,iCACA,8BACA,2BACA,6BACA,2BACA,gBACA,WACA,gBACA,UACA,WACA,gBACA,YACA,wBACA,iBACA,kBACA,gBACA,cACA,SACA,oBACA,SACA,YACA,gBACA,uBACA,mBACA,iBACA,cACA,qBACA,wBACA,uBACA,qBACA,QACA,qBACA,WACA,mBACA,aACA,iBACA,UACA,UACA,UACA,cACA,yBACA,kBACA,cACA,oBACA,mBACA,eACA,aACA,oBACA,wBACA,eACA,cACA,6BACA,YACA,eACA,yBACA,uBACA,mBACA,yBACA,uBACA,oBACA,sBACA,uBACA,wBACA,yBACA,kBACA,sBACA,0BACA,gBACA,gBACA,sBACA,6BACA,wBACA,kBACA,oBACA,yBACA,kBACA,wCACA,cACA,mBACA,qBACA,yBACA,wBACA,YACA,qBACA,mBACA,kBACA,kBACA,uBACA,2BACA,0BACA,0BACA,gCACA,sBACA,2BACA,gCACA,mBACA,2BACA,uBACA,yBACA,uBACA,+BACA,gCACA,oBACA,qBACA,4BACA,6BACA,iBACA,qBACA,gBACA,wBACA,kBACA,gBACA,kBACA,kBACA,eACA,aACA,kBACA,sBACA,iBACA,iBACA,mBACA,iBACA,uBACA,kBACA,aACA,iBACA,sBACA,kBACA,mBACA,qBACA,sBACA,sBACA,mBACA,iBACA,cACA,oBACA,0BACA,sBACA,uBACA,mBACA,wBACA,wBACA,kBACA,wBACA,uBACA,mBACA,wBACA,2BACA,2BACA,iCACA,mBACA,aACA,SACA,SACA,UACA,iBACA,8BACA,cACA,iBACA,4BACA,0BACA,8BACA,uBACA,gBACA,qCACA,iBACA,iBACA,kBACA,kBACA,cACA,0BACA,oBACA,UACA,kBACA,kBACA,gBACA,qBACA,qBACA,4BACA,UACA,SACA,QACA,mBACA,wBACA,gBACA,mBACA,YACA,iBACA,UACA,WACA,gCACA,gCACA,SACA,eACA,aACA,eACA,gBACA,OACA,SACA,SACA,UACA,mBACA,mBACA,mBACA,mBACA,UACA,YACA,gBACA,IACA,QACA,OACA,QACA,UACA,MACA,WACA,eACA,+BACA,cACA,SACA,gBACA,aACA,SACA,YACA,iBACA,WACA,OACA,QACA,SACA,YACA,UACA,YACA,SACA,aACA,gBACA,sBACA,oBACA,gBACA,mBACA,0BACA,2BACA,wBACA,yBACA,MACA,SACA,cACA,eACA,eACA,SACA,aACA,mBACA,YACA,gBACA,aACA,kBACA,YACA,cACA,YACA,WACA,cACA,UACA,aACA,WACA,YACA,UACA,kBACA,kBACA,YACA,eACA,WACA,iBACA,sBACA,QACA,aACA,iBACA,kBACA,SACA,UACA,cACA,eACA,eACA,eACA,YACA,qBACA,MACA,UACA,QACA,QACA,QACA,YACA,QACA,gBACA,cACA,aACA,eACA,aACA,YACA,oBACA,aACA,MACA,aACA,QACA,kBACA,sBACA,oBACA,kBACA,gBACA,gBACA,QACA,YACA,yBACA,MACA,cACA,UACA,SACA,UACA,YACA,mBACA,aACA,WACA,mBACA,YACA,kBACA,SACA,aACA,eACA,UACA,MACA,QACA,sBACA,kBACA,UACA,UACA,uBACA,gCACA,sBACA,iBACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,iBACA,qBACA,oBACA,oBACA,0BACA,gBACA,qBACA,qBACA,0BACA,mBACA,cACA,YACA,qBACA,MACA,MACA,cACA,kBACA,UACA,mBACA,aACA,aACA,SACA,eACA,cACA,aACA,aACA,eACA,cACA,aACA,eACA,kBACA,oBACA,UACA,mBACA,uBACA,QACA,mBACA,eACA,MACA,QACA,eACA,UACA,QACA,YACA,aACA,mBACA,WACA,cACA,eACA,eACA,cACA,cACA,kBACA,eACA,eACA,eACA,aACA,mBACA,YACA,YACA,WACA,YACA,gBACA,sBACA,kBACA,kBACA,eACA,cACA,eACA,eACA,eACA,sBACA,eACA,eACA,cACA,eACA,cACA,WACA,eACA,eACA,eACA,gBACA,cACA,kBACA,cACA,SACA,UACA,KACA,SACA,UACA,OACA,QACA,SACA,SACA,SACA,mBACA,gBACA,eACA,QACA,gBACA,QACA,OACA,QACA,QACA,OACA,cACA,kBACA,eACA,eACA,cACA,SACA,oBACA,aACA,WACA,kBACA,gBACA,qBACA,oBACA,oBACA,aACA,cACA,qBACA,cACA,eACA,4BACA,oBACA,gBACA,aACA,iBACA,eACA,cACA,YACA,iBACA,WACA,cACA,YACA,WACA,aACA,eACA,YACA,WACA,KACA,OACA,OACA,KACA,UACA,IACA,OACA,sBACA,qBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,wBACA,wBACA,oBACA,kBACA,uBACA,sBACA,iBACA,kBACA,kBACA,kBACA,mBACA,qBACA,sBACA,sBACA,mBACA,iBACA,WACA,QACA,UACA,iBACA,iBACA,iBACA,cACA,YACA,eACA,WACA,aACA,UACA,UACA,gBACA,UACA,OACA,SACA,mBACA,eACA,iBACA,sBACA,YACA,aACA,kBACA,yBACA,4BACA,WACA,iBACA,eACA,eACA,OACA,gBACA,UACA,eACA,OACA,MACA,WACA,YACA,aACA,OACA,qBACA,aACA,iBACA,kBACA,kBACA,mBACA,mBACA,cACA,cACA,wBACA,kBACA,UACA,UACA,QACA,aACA,gBACA,wBACA,YACA,oBACA,QACA,kBACA,OACA,aACA,iBACA,YACA,aACA,OACA,YACA,OACA,OACA,WACA,OACA,YACA,eACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,wBACA,0BACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,cACA,mBACA,iBACA,sBACA,sBACA,sBACA,mBACA,wBACA,wBACA,wBACA,mBACA,mBACA,eACA,oBACA,yBACA,0BACA,oBACA,oBACA,gBACA,iBACA,cACA,kBACA,mBACA,qBACA,uBACA,cACA,oBACA,oBACA,mBACA,oBACA,mBACA,eACA,oBACA,kBACA,uBACA,uBACA,uBACA,oBACA,yBACA,yBACA,yBACA,oBACA,oBACA,aACA,kBACA,kBACA,kBACA,eACA,cACA,mBACA,mBACA,mBACA,gBACA,uBACA,yBACA,cACA,YACA,iBACA,sBACA,uBACA,iBACA,iBACA,cACA,SACA,eACA,QACA,gBACA,qBACA,iBACA,eACA,cACA,gBACA,SACA,iBACA,uBACA,aACA,aACA,qBACA,YACA,YACA,QACA,SACA,cACA,eACA,eACA,aACA,cACA,cACA,YACA,kBACA,OACA,UACA,SACA,aACA,cACA,aACA,gBACA,WACA,iBACA,6BACA,UACA,UACA,cACA,SACA,WACA,UACA,aACA,aACA,cACA,eACA,IACA,QACA,SACA,OACA,SACA,iBACA,eACA,cACA,kBACA,cACA,gBACA,iBACA,cACA,aACA,0BACA,SACA,sBACA,uBACA,eACA,qBACA,wBACA,2BACA,0BACA,aACA,YACA,gBACA,SACA,eACA,UACA,eACA,cACA,UACA,gBACA,oBACA,gBACA,cACA,iBACA,aACA,yBACA,sBACA,OACA,QACA,WACA,OACA,KACA,OACA,YACA,cACA,cACA,QACA,KACA,QACA,QACA,YACA,aACA,iBACA,UACA,eACA,mBACA,wBACA,OACA,SACA,WACA,aACA,YACA,aACA,gBACA,wBACA,eACA,iBACA,WACA,eACA,UACA,QACA,iBACA,yBACA,oBACA,gBACA,UACA,oBACA,YACA,aACA,WACA,SACA,aACA,OACA,OACA,iBACA,UACA,YACA,YACA,UACA,QACA,gBACA,kBACA,cACA,gBACA,gBACA,gBACA,iBACA,aACA,YACA,aACA,YACA,iBACA,gBACA,yBACA,aACA,6BACA,gBACA,kBACA,YACA,uBACA,cACA,eACA,eACA,aACA,aACA,QACA,aACA,iBACA,eACA,oBACA,aACA,aACA,cACA,YACA,iBACA,cACA,UACA,UACA,OACA,YACA,YACA,aACA,WACA,WACA,gBACA,YACA,WACA,UACA,YACA,gBACA,QACA,gBACA,YACA,aACA,QACA,YACA,SACA,UACA,MACA,QACA,KACA,MACA,OACA,WACA,cACA,WACA,UACA,WACA,gBACA,kBACA,YACA,UACA,QACA,QACA,eACA,sBACA,8BACA,cACA,mBACA,aACA,eACA,qBACA,4BACA,YACA,aACA,YACA,OACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,cACA,aACA,YACA,eACA,aACA,kBACA,kBACA,kBACA,aACA,cACA,UACA,UACA,SACA,oBACA,eACA,0BACA,UACA,UACA,wBACA,0BACA,mBACA,kBACA,cACA,eACA,aACA,aACA,UACA,gBACA,mBACA,WACA,YACA,qBACA,WACA,eACA,YACA,uBACA,yBACA,uBACA,uBACA,0BACA,0BACA,UACA,mBACA,SACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,oBACA,qBACA,iBACA,YACA,UACA,qBACA,uCACA,kCACA,UACA,aACA,eACA,eACA,YACA,aACA,iBACA,kBACA,kBACA,cACA,UACA,cACA,YACA,aACA,qBACA,YACA,cACA,YACA,UACA,cACA,gBACA,eACA,gBACA,WACA,eACA,UACA,iBACA,kBACA,kBACA,cACA,kBACA,cACA,oBACA,mBACA,cACA,gBACA,UACA,cACA,cACA,WACA,qBACA,aACA,UACA,oBACA,qBACA,aACA,WACA,eACA,uBACA,sBACA,sBACA,gBACA,0BACA,SACA,gBACA,SACA,oBACA,qBACA,sBACA,6BACA,kBACA,iBACA,oBACA,oBACA,sBACA,uBACA,gBACA,aACA,uBACA,0BACA,uBACA,MACA,OACA,QACA,aACA,oBACA,gBACA,cACA,mBACA,eACA,aACA,UACA,WACA,kBACA,SACA,iBACA,eACA,kBACA,oBACA,kBACA,wBACA,qBACA,eACA,qBACA,qBACA,sBACA,gBACA,sBACA,wBACA,uBACA,gBACA,wBACA,6BACA,uBACA,2BACA,qBACA,kBACA,mBACA,oBACA,cACA,kBACA,iBACA,yBACA,qBACA,2BACA,gBACA,kBACA,wBACA,cACA,oBACA,mBACA,oBACA,iBACA,aACA,iBACA,aACA,qBACA,kBACA,oBACA,kBACA,cACA,uBACA,uBACA,2BACA,kBACA,+BACA,0BACA,+BACA,oBACA,mBACA,qBACA,qBACA,oBACA,kBACA,cACA,mBACA,eACA,gBACA,qBACA,uBACA,eACA,cACA,8BACA,gBACA,cACA,iBACA,uBACA,cACA,wBACA,eACA,4BACA,uBACA,4BACA,qBACA,iBACA,kBACA,kBACA,kBACA,yBACA,yBACA,4BACA,kCACA,kCACA,wCACA,wCACA,sCACA,sCACA,4CACA,4CACA,4BACA,sCACA,sCACA,4BACA,oCACA,oCACA,4BACA,4BACA,iBACA,gBACA,qBACA,+BACA,gBACA,eACA,wBACA,kBACA,gBACA,eACA,qBACA,mBACA,qBACA,mBACA,cACA,cACA,cACA,iBACA,kBACA,gBACA,cACA,kBACA,0BACA,mBACA,oBACA,aACA,mBACA,eACA,cACA,cACA,sBACA,SACA,MACA,MACA,WACA,WACA,UACA,eACA,UACA,WACA,OACA,WACA,WACA,mBACA,0BACA,cACA,cACA,cACA,2BACA,eACA,gBACA,aACA,eACA,eACA,gBACA,cACA,mBACA,cACA,SACA,QACA,iBACA,cACA,KACA,KACA,IACA,OACA,UACA,eACA,WACA,kBACA,eACA,UACA,eACA,WACA,YACA,UACA,WACA,KACA,QACA,kBACA,UACA,SACA,kBACA,YACA,qBACA,kBACA,WACA,eACA,UACA,UACA,iBACA,iBACA,eACA,sBACA,gBACA,mBACA,eACA,iBACA,kBACA,gBACA,aACA,eACA,cACA,gBACA,QACA,SACA,sBACA,sBACA,mBACA,iBACA,MACA,QACA,YACA,iBACA,SACA,eACA,gBACA,aACA,iBACA,aACA,iBACA,oBACA,qBACA,cACA,eACA,oBACA,gBACA,iBACA,cACA,qBACA,YACA,aACA,gBACA,eACA,aACA,cACA,cACA,gBACA,0BACA,oBACA,uBACA,WACA,eACA,iBACA,oBACA,QACA,YACA,SACA,SACA,SACA,oBACA,YACA,iBACA,sBACA,kBACA,eACA,cACA,WACA,YACA,cACA,YACA,YACA,qBACA,aACA,gBACA,eACA,yBACA,qBACA,eACA,oBACA,QACA,aACA,YACA,cACA,cACA,aACA,cACA,cACA,iBACA,UACA,SACA,cACA,eACA,SACA,UACA,SACA,SACA,SACA,cACA,WACA,eACA,4BACA,mBACA,iBACA,iBACA,qBACA,qBACA,wBACA,aACA,aACA,aACA,kBACA,SACA,YACA,aACA,MACA,UACA,YACA,SACA,UACA,0BACA,wBACA,2BACA,WACA,kBACA,aACA,kBACA,gBACA,qBACA,6BACA,UACA,YACA,cACA,cACA,gBACA,MACA,UACA,SACA,WACA,WACA,aACA,WACA,UACA,WACA,kBACA,eACA,cACA,UACA,oBACA,cACA,cACA,cACA,2BACA,6BACA,iBACA,aACA,kBACA,SACA,kBACA,oBACA,oBACA,mBACA,OACA,gBACA,SACA,cACA,WACA,WACA,gBACA,aACA,OACA,MACA,OACA,WACA,YACA,OACA,aACA,sBACA,2BACA,cACA,sBACA,eACA,wBACA,6BACA,oBACA,YACA,oBACA,cACA,sBACA,eACA,oBACA,sBACA,sBACA,qBACA,aACA,qBACA,WACA,YACA,OACA,OACA,cACA,YACA,aACA,WACA,SACA,QACA,KACA,KACA,SACA,IACA,WACA,SACA,gBACA,qBACA,gBACA,cACA,UACA,mBACA,gBACA,WACA,oBACA,YACA,UACA,KACA,QACA,SACA,OACA,QACA,cACA,aACA,YACA,cACA,mBACA,SACA,mBACA,oBACA,0BACA,0BACA,UACA,gBACA,SACA,aACA,YACA,qBACA,kBACA,WACA,eACA,UACA,UACA,MACA,eACA,aACA,eACA,oBACA,sBACA,cACA,YACA,WACA,UACA,uBACA,QACA,WACA,iBACA,YACA,WACA,eACA,WACA,UACA,aACA,YACA,aACA,YACA,mBACA,oBACA,uBACA,SACA,QACA,YACA,cACA,YACA,SACA,WACA,OACA,WACA,QACA,aACA,QACA,KACA,YACA,WACA,OACA,cACA,sBACA,aACA,iBACA,iBACA,uBACA,kBACA,cACA,MACA,SACA,yBACA,UACA,YACA,aACA,iBACA,UACA,aACA,yBACA,QACA,WACA,+BACA,YACA,UACA,SACA,aACA,aACA,eACA,WACA,4BACA,kBACA,kBACA,cACA,MACA,IACA,OACA,eACA,SACA,gBACA,WACA,SACA,aACA,0BACA,WACA,QACA,YACA,gBACA,kBACA,WACA,YACA,QACA,aACA,UACA,UACA,cACA,OACA,kBACA,aACA,mBACA,WACA,WACA,kBACA,WACA,QACA,aACA,OACA,eACA,YACA,gBACA,cACA,WACA,WACA,YACA,WACA,SACA,aACA,aACA,cACA,UACA,UACA,OACA,YACA,WACA,WACA,SACA,WACA,YACA,mBACA,aACA,oBACA,YACA,QACA,QACA,OACA,UACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,YACA,gBACA,WACA,WACA,aACA,WACA,QACA,QACA,QACA,UACA,UACA,cACA,gBACA,aACA,eACA,QACA,QACA,QACA,YACA,cACA,OACA,cACA,wBACA,eACA,yBACA,sBACA,YACA,mBACA,eACA,aACA,iBACA,eACA,0BACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,aACA,sBACA,cACA,uBACA,oBACA,WACA,iBACA,uBACA,cACA,YACA,gBACA,cACA,wBACA,kBACA,uBACA,uBACA,qBACA,sBACA,wBACA,aACA,YACA,YACA,QACA,WACA,MACA,UACA,QACA,uBACA,cACA,OACA,aACA,WACA,cACA,aACA,iBACA,aACA,SACA,gBACA,QACA,UACA,WACA,WACA,WACA,aACA,KACA,WACA,oBACA,QACA,cACA,eACA,eACA,cACA,oBACA,0BACA,uBACA,0BACA,mBACA,SACA,YACA,SACA,YACA,oBACA,OACA,eACA,gBACA,cACA,cACA,mBACA,mBACA,aACA,YACA,WACA,WACA,YACA,SACA,WACA,aACA,kBACA,aACA,oBACA,oBACA,KACA,KACA,IACA,OACA,UACA,QACA,MACA,iBACA,OACA,iBACA,sBACA,cACA,iBACA,kBACA,cACA,gBACA,MACA,kBACA,mBACA,4BACA,iCACA,oBACA,kBACA,SACA,aACA,wBACA,yBACA,gBACA,YACA,cACA,qBACA,oBACA,eACA,iBACA,oBACA,mBACA,qBACA,mBACA,iBACA,kBACA,UACA,aACA,cACA,eACA,qBACA,UACA,cACA,wBACA,YACA,cACA,qBACA,mBACA,uBACA,wBACA,sBACA,SACA,+BACA,sBACA,kBACA,iBACA,uBACA,oBACA,qBACA,4BACA,gBACA,iBACA,qBACA,qBACA,6BACA,mBACA,wBACA,oBACA,mBACA,iBACA,aACA,uBACA,yBACA,kBACA,eACA,aACA,qBACA,oBACA,iBACA,UACA,mBACA,UACA,SACA,0BACA,gBACA,iBACA,gCACA,aACA,eACA,kBACA,sBACA,cACA,iBACA,yBACA,oBACA,uBACA,yBACA,mBACA,uBACA,aACA,mBACA,mBACA,WACA,eACA,kBACA,mBACA,aACA,UACA,WACA,yBACA,kBACA,aACA,aACA,wBACA,yBACA,gBACA,sBACA,eACA,oCACA,uBACA,cACA,cACA,uBACA,oBACA,qCACA,WACA,uBACA,SACA,eACA,sBACA,0BACA,WACA,WACA,UACA,6BACA,sBACA,UACA,WACA,SACA,eACA,YACA,eACA,cACA,qBACA,qBACA,kBACA,iBACA,WACA,qBACA,0BACA,cACA,cACA,kBACA,aACA,mBACA,WACA,eACA,iBACA,kCACA,mBACA,cACA,mBACA,0BACA,qBACA,mCACA,mBACA,2BACA,4BACA,sBACA,wBACA,eACA,gBACA,YACA,qBACA,uBACA,mBACA,mBACA,UACA,qBACA,gBACA,uBACA,2BACA,2BACA,oBACA,oBACA,qBACA,oBACA,sBACA,sBACA,sBACA,uBACA,kBACA,mBACA,iBACA,WACA,oBACA,mBACA,kBACA,aACA,YACA,eACA,eACA,kBACA,mBACA,sBACA,wBACA,sBACA,mBACA,2BACA,oBACA,UACA,cACA,oBACA,iBACA,sBACA,eACA,aACA,2BACA,eACA,aACA,aACA,cACA,mBACA,qBACA,2BACA,kBACA,oBACA,eACA,aACA,2BACA,yBACA,eACA,WACA,WACA,qBACA,oBACA,gBACA,iBACA,qBACA,kBACA,0BACA,yBACA,sBACA,mBACA,4BACA,UACA,kBACA,kBACA,UACA,oBACA,YACA,iBACA,eACA,YACA,kBACA,eACA,8BACA,wBACA,gBACA,UACA,iBACA,aACA,YACA,iBACA,cACA,qBACA,gBACA,cACA,gBACA,YACA,YACA,WACA,aACA,uBACA,oBACA,qBACA,eACA,gBACA,YACA,aACA,mBACA,kBACA,wBACA,0BACA,iBACA,gBACA,cACA,YACA,mBACA,YACA,UACA,YACA,SACA,cACA,2BACA,aACA,6BACA,2BACA,WACA,KACA,MACA,YACA,OACA,oBACA,gBACA,WACA,QACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,kBACA,oBACA,WACA,WACA,eACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,WACA,kBACA,eACA,eACA,aACA,gBACA,gBACA,kBACA,UACA,UACA,aACA,aACA,eACA,eACA,oBACA,sBACA,mBACA,YACA,QACA,SACA,iBACA,WACA,UACA,iBACA,OACA,aACA,kBACA,sBACA,MACA,eACA,iBACA,gBACA,gBACA,gBACA,iBACA,mBACA,wBACA,eACA,qBACA,aACA,WACA,cACA,YACA,iBACA,iBACA,oBACA,cACA,aACA,mBACA,OACA,OACA,UACA,UACA,SACA,SACA,OACA,YACA,OACA,gBACA,OACA,QACA,UACA,kBACA,kBACA,qBACA,OACA,gBACA,WACA,OACA,gBACA,WACA,SACA,wBACA,UACA,WACA,YACA,wBACA,cACA,UACA,QACA,QACA,qBACA,oBACA,eACA,OACA,UACA,KACA,aACA,WACA,cACA,YACA,aACA,oBACA,oBACA,kBACA,cACA,mBACA,iBACA,aACA,wBACA,wBACA,cACA,aACA,SACA,WACA,UACA,iBACA,wBACA,YACA,aACA,mBACA,UACA,OACA,OACA,KACA,MACA,MACA,kCACA,UACA,WACA,cACA,gBACA,QACA,aACA,UACA,YACA,WACA,UACA,QACA,sBACA,sBACA,OACA,OACA,qBACA,sBACA,qBACA,iBACA,mBACA,uBACA,kBACA,WACA,eACA,wBACA,6BACA,gBACA,iBACA,YACA,iBACA,mBACA,sBACA,eACA,oBACA,0BACA,mBACA,iBACA,uBACA,sBACA,oBACA,mBACA,oBACA,gBACA,0BACA,mBACA,oBACA,oBACA,sBACA,yBACA,mBACA,gBACA,gBACA,iBACA,sBACA,cACA,2BACA,4BACA,uBACA,iBACA,cACA,aACA,gBACA,cACA,aACA,4BACA,QACA,YACA,cACA,YACA,aACA,QACA,cACA,gBACA,cACA,YACA,cACA,eACA,YACA,SACA,wBACA,qBACA,qBACA,eACA,aACA,aACA,aACA,oBACA,mBACA,aACA,YACA,aACA,QACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,aACA,gBACA,kBACA,cACA,iBACA,mBACA,aACA,eACA,cACA,uBACA,cACA,QACA,QACA,OACA,YACA,kBACA,YACA,iBACA,gBACA,kBACA,oBACA,oBACA,aACA,iBACA,iBACA,iBACA,oBACA,mBACA,iBACA,WACA,uBACA,wBACA,2BACA,UACA,aACA,KACA,OACA,WACA,cACA,UACA,6BACA,WACA,2BACA,SACA,cACA,cACA,qBACA,cACA,oBACA,6BACA,gBACA,qBACA,cACA,aACA,YACA,UACA,cACA,eACA,sCACA,oBACA,SACA,WACA,gBACA,WACA,cACA,SACA,sBACA,OACA,aACA,aACA,YACA,iBACA,aACA,QACA,cACA,QACA,SACA,gBACA,gBACA,iBACA,kBACA,kBACA,eACA,YACA,YACA,qBACA,8BACA,gBACA,UACA,iBACA,gBACA,aACA,YACA,WACA,cACA,WACA,kBACA,qBACA,WACA,cACA,SACA,aACA,YACA,sBACA,YACA,kBACA,gDACA,gBACA,SACA,YACA,wBACA,yBACA,YACA,UACA,OACA,SACA,WACA,UACA,YACA,WACA,YACA,QACA,cACA,qBACA,WACA,cACA,WACA,OACA,OACA,kBACA,gBACA,eACA,iBACA,eACA,cACA,KACA,KACA,KACA,KACA,MACA,YACA,eACA,oBACA,oBACA,UACA,MACA,UACA,SACA,gBACA,kBACA,cACA,UACA,cACA,YACA,UACA,WACA,WACA,OACA,UACA,OACA,OACA,QACA,SACA,OACA,WACA,YACA,eACA,YACA,mBACA,cACA,YACA,cACA,gBACA,YACA,qBACA,kBACA,eACA,mBACA,WACA,YACA,YACA,oBACA,WACA,SACA,SACA,SACA,aACA,aACA,iBACA,iBACA,iBACA,iBACA,SACA,OACA,cACA,cACA,aACA,uBACA,iBACA,SACA,eACA,mBACA,iBACA,gBACA,QACA,iBACA,gBACA,oBACA,SACA,OACA,aACA,cACA,YACA,YACA,UACA,iBACA,aACA,WACA,UACA,aACA,UACA,SACA,YACA,qBACA,0BACA,iBACA,SACA,QACA,OACA,YACA,cACA,QACA,OACA,aACA,mBACA,sBACA,kBACA,YACA,iBACA,oBACA,gBACA,WACA,OACA,eACA,iBACA,SACA,WACA,YACA,SACA,UACA,mBACA,YACA,eACA,eACA,SACA,gBACA,WACA,cACA,OACA,SACA,aACA,QACA,cACA,cACA,MACA,QACA,QACA,OACA,cACA,cACA,WACA,YACA,qBACA,eACA,OACA,UACA,YACA,UACA,OACA,MACA,QACA,aACA,YACA,SACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,YACA,mBACA,WACA,eACA,mBACA,MACA,WACA,WACA,mBACA,UACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,cACA,iBACA,mBACA,eACA,eACA,eACA,kBACA,oBACA,aACA,cACA,YACA,cACA,OACA,SACA,aACA,aACA,gBACA,eACA,YACA,eACA,YACA,eACA,cACA,cACA,cACA,QACA,OACA,YACA,iBACA,aACA,YACA,cACA,gBACA,kBACA,kBACA,cACA,YACA,YACA,WACA,gBACA,mBACA,YACA,WACA,aACA,eACA,gBACA,gBACA,aACA,WACA,WACA,YACA,QACA,WACA,aACA,cACA,UACA,SACA,kBACA,MACA,iBACA,aACA,kBACA,YACA,aACA,kBACA,gBACA,gBACA,iCACA,0BACA,eACA,gBACA,kBACA,cACA,mCACA,sBACA,oCACA,2BACA,2BACA,2BACA,iCACA,mCACA,0BACA,cACA,cACA,eACA,4CACA,4CACA,YACA,gBACA,gCACA,+BACA,YACA,YACA,iBACA,oBACA,iBACA,mCACA,4BACA,8BACA,kCACA,mCACA,wBACA,wBACA,wBACA,wBACA,iBACA,8BACA,kCACA,WACA,sBACA,6BACA,mBACA,WACA,UACA,cACA,QACA,oBACA,eACA,eACA,aACA,YACA,eACA,cACA,YACA,cACA,SACA,UACA,kBACA,UACA,eACA,kBACA,cACA,WACA,UACA,WACA,SACA,gBACA,aACA,MACA,WACA,YACA,MACA,iBACA,aACA,kBACA,YACA,iBACA,eACA,cACA,YACA,YACA,gBACA,YACA,kCACA,kCACA,WACA,WACA,WACA,gBACA,eACA,aACA,iBACA,eACA,KACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,SACA,UACA,YACA,gBACA,gBACA,iBACA,cACA,WACA,UACA,YACA,SACA,iBACA,oBACA,cACA,YACA,YACA,SACA,wBACA,UACA,UACA,mBACA,sBACA,qBACA,0BACA,sBACA,iCACA,mBACA,6BACA,iBACA,aACA,cACA,sBACA,sBACA,6BACA,YACA,UACA,gBACA,mBACA,qBACA,cACA,iBACA,gBACA,gBACA,uBACA,uBACA,YACA,gBACA,eACA,eACA,iBACA,kBACA,cACA,aACA,YACA,2BACA,eACA,kBACA,kBACA,iBACA,iBACA,UACA,eACA,WACA,YACA,qBACA,qBACA,eACA,eACA,YACA,iBACA,gBACA,mBACA,kBACA,SACA,wBACA,qBACA,oBACA,cACA,mBACA,qBACA,uBACA,2BACA,YACA,2BACA,uBACA,wBACA,eACA,qBACA,gBACA,eACA,YACA,eACA,eACA,aACA,uBACA,mBACA,qBACA,KACA,cACA,mBACA,uBACA,sBACA,sBACA,4BACA,kBACA,uBACA,uBACA,4BACA,uBACA,qBACA,6BACA,YACA,mBACA,gCACA,uBACA,mBACA,UACA,wBACA,sBACA,qBACA,wBACA,wBACA,oBACA,0BACA,wBACA,mBACA,eACA,WACA,eACA,sBACA,qBACA,mBACA,iBACA,aACA,eACA,SACA,cACA,kBACA,aACA,kBACA,iBACA,iBACA,cACA,aACA,iBACA,sBACA,aACA,aACA,aACA,wBACA,sBACA,sBACA,oBACA,qBACA,2BACA,wBACA,eACA,oBACA,mBACA,gBACA,YACA,iBACA,gBACA,aACA,WACA,uBACA,wBACA,wBACA,uBACA,YACA,0BACA,aACA,cACA,sBACA,iBACA,cACA,SACA,cACA,oBACA,6BACA,eACA,oBACA,mBACA,gBACA,kBACA,gBACA,sBACA,mBACA,6BACA,kBACA,mBACA,mBACA,0BACA,0BACA,sBACA,aACA,mBACA,mBACA,gBACA,oBACA,oBACA,oBACA,oBACA,gBACA,sBACA,sBACA,mBACA,gBACA,gBACA,sBACA,iBACA,iBACA,sBACA,0BACA,mBACA,WACA,gBACA,gBACA,gCACA,+BACA,iCACA,gCACA,cACA,oBACA,mBACA,eACA,oBACA,uBACA,uBACA,6BACA,sBACA,gCACA,eACA,oBACA,aACA,eACA,gBACA,sBACA,SACA,WACA,KACA,MACA,aACA,oBACA,YACA,WACA,WACA,eACA,cACA,eACA,cACA,QACA,IACA,OACA,WACA,YACA,iBACA,QACA,eACA,aACA,gBACA,eACA,WACA,aACA,iBACA,oBACA,kBACA,YACA,OACA,yBACA,WACA,aACA,WACA,eACA,WACA,eACA,SACA,WACA,yBACA,aACA,UACA,OACA,qBACA,kBACA,WACA,WACA,cACA,WACA,SACA,WACA,WACA,UACA,aACA,SACA,OACA,WACA,WACA,YACA,QACA,YACA,wBACA,eACA,YACA,OACA,cACA,UACA,SACA,SACA,MACA,aACA,SACA,mBACA,iBACA,gBACA,kBACA,cACA,mBACA,SACA,aACA,kBACA,YACA,iBACA,cACA,mBACA,aACA,UACA,oBACA,KACA,qBACA,SACA,gBACA,kBACA,cACA,gBACA,eACA,iBACA,eACA,aACA,aACA,eACA,aACA,eACA,YACA,cACA,UACA,UACA,KACA,SACA,WACA,aACA,kBACA,SACA,sBACA,UACA,8BACA,aACA,WACA,oBACA,cACA,aACA,eACA,uBACA,gBACA,oBACA,iBACA,uBACA,mBACA,iBACA,aACA,iBACA,eACA,iBACA,sBACA,aACA,mBACA,eACA,cACA,qBACA,oBACA,wBACA,gBACA,gBACA,wBACA,iBACA,iBACA,mBACA,UACA,YACA,SACA,WACA,aACA,sBACA,WACA,WACA,wBACA,wBACA,0BACA,YACA,mBACA,OACA,eACA,WACA,+BACA,mBACA,uBACA,aACA,UACA,UACA,YACA,4BACA,aACA,YACA,eACA,wBACA,0BACA,gBACA,qBACA,kBACA,SACA,cACA,QACA,kBACA,gBACA,mBACA,oBACA,aACA,eACA,iBACA,gBACA,iBACA,sBACA,8BACA,oBACA,0BACA,eACA,YACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,mBACA,YACA,cACA,QACA,UACA,UACA,0BACA,UACA,gBACA,SACA,iBACA,WACA,UACA,YACA,aACA,aACA,WACA,qBACA,oBACA,yBACA,2BACA,kBACA,eACA,iBACA,sBACA,eACA,SACA,iBACA,sBACA,6BACA,4BACA,aACA,UACA,uBACA,YACA,YACA,aACA,sBACA,UACA,mBACA,mBACA,0BACA,gBACA,SACA,eACA,mBACA,YACA,YACA,gBACA,iBACA,cACA,gBACA,uBACA,OACA,SACA,YACA,iBACA,gBACA,cACA,eACA,eACA,cACA,aACA,cACA,YACA,eACA,SACA,YACA,cACA,wBACA,uBACA,yBACA,yBACA,wBACA,kBACA,uBACA,sBACA,oBACA,uBACA,iBACA,kBACA,mBACA,iBACA,wBACA,mBACA,yBACA,+BACA,cACA,wBACA,oBACA,kBACA,mBACA,mBACA,mBACA,kBACA,iBACA,kBACA,gBACA,kCACA,qBACA,SACA,sBACA,YACA,aACA,aACA,YACA,WACA,SACA,sBACA,eACA,aACA,aACA,UACA,UACA,sBACA,wBACA,SACA,YACA,sBACA,kBACA,gBACA,iBACA,iBACA,sBACA,qBACA,gBACA,eACA,gBACA,qBACA,cACA,aACA,mBACA,aACA,mBACA,eACA,YACA,qBACA,qBACA,YACA,WACA,uBACA,iBACA,gBACA,WACA,UACA,WACA,cACA,gBACA,6BACA,WACA,WACA,aACA,YACA,eACA,iBACA,WACA,WACA,4BACA,WACA,YACA,WACA,gCACA,cACA,oBACA,gBACA,0BACA,yBACA,SACA,yBACA,aACA,eACA,gBACA,iBACA,gBACA,eACA,cACA,gBACA,YACA,eACA,iBACA,YACA,UACA,gBACA,SACA,YACA,kBACA,WACA,YACA,YACA,cACA,cACA,YACA,eACA,WACA,eACA,gBACA,aACA,cACA,eACA,UACA,qBACA,kBACA,kBACA,oBACA,oBACA,uBACA,WACA,WACA,WACA,cACA,gBACA,gBACA,gBACA,kBACA,kBACA,kBACA,qBACA,kBACA,iBACA,sBACA,qBACA,wBACA,wBACA,2BACA,YACA,kBACA,YACA,uBACA,6BACA,yBACA,iDACA,2BACA,0BACA,mBACA,mBACA,qBACA,kBACA,4BACA,4CACA,4BACA,2BACA,mCACA,wBACA,UACA,SACA,UACA,OACA,aACA,eACA,gBACA,SACA,SACA,QACA,YACA,gBACA,WACA,MACA,UACA,UACA,KACA,QACA,SACA,SACA,UACA,MACA,eACA,SACA,cACA,aACA,cACA,eACA,eACA,eACA,SACA,iBACA,iBACA,UACA,QACA,YACA,cACA,YACA,aACA,UACA,gBACA,iBACA,gBACA,gBACA,eACA,gBACA,eACA,eACA,eACA,qBACA,gBACA,UACA,WACA,kBACA,iBACA,kBACA,gBACA,aACA,aACA,iBACA,gBACA,iBACA,eACA,YACA,YACA,mBACA,aACA,sBACA,4BACA,6BACA,wBACA,wBACA,qBACA,0BACA,2BACA,sBACA,sBACA,UACA,gBACA,eACA,YACA,YACA,kBACA,gBACA,KACA,KACA,KACA,KACA,aACA,UACA,MACA,SACA,WACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,eACA,kBACA,oBACA,gBACA,gBACA,mBACA,qBACA,cACA,eACA,aACA,OACA,mBACA,oBACA,oBACA,iBACA,kBACA,kBACA,YACA,WACA,UACA,QACA,cACA,QACA,cACA,QACA,cACA,aACA,gBACA,YACA,eACA,UACA,MACA,eACA,gBACA,aACA,SACA,gBACA,aACA,aACA,mBACA,iBACA,eACA,QACA,WACA,aACA,kBACA,WACA,OACA,eACA,SACA,UACA,WACA,YACA,OACA,aACA,cACA,cACA,sBACA,WACA,UACA,sBACA,kBACA,mBACA,eACA,QACA,kBACA,cACA,iBACA,yBACA,SACA,aACA,YACA,aACA,iBACA,KACA,eACA,UACA,0BACA,2BACA,UACA,cACA,eACA,aACA,kBACA,cACA,UACA,YACA,cACA,cACA,qBACA,oBACA,QACA,qBACA,oBACA,QACA,0BACA,0BACA,yBACA,OACA,cACA,SACA,QACA,cACA,aACA,cACA,YACA,aACA,cACA,WACA,yBACA,yBACA,aACA,gBACA,cACA,aACA,eACA,aACA,YACA,cACA,WACA,kBACA,YACA,OACA,aACA,YACA,eACA,gBACA,eACA,SACA,mBACA,cACA,UACA,cACA,QACA,iBACA,6BACA,iBACA,gBACA,YACA,qBACA,cACA,SACA,YACA,YACA,YACA,gBACA,MACA,gBACA,gBACA,iBACA,sBACA,kBACA,iBACA,OACA,QACA,QACA,QACA,YACA,YACA,UACA,WACA,SACA,WACA,OACA,WACA,gBACA,YACA,YACA,YACA,YACA,cACA,aACA,SACA,MACA,iBACA,WACA,kBACA,kBACA,YACA,yBACA,yBACA,SACA,UACA,qBACA,UACA,eACA,gBACA,sBACA,4BACA,UACA,WACA,YACA,iBACA,oBACA,sBACA,yBACA,eACA,eACA,eACA,gBACA,kBACA,oBACA,aACA,YACA,gBACA,iBACA,aACA,QACA,WACA,aACA,0BACA,UACA,oBACA,gBACA,kBACA,mBACA,UACA,YACA,cACA,aACA,UACA,aACA,WACA,mBACA,UACA,SACA,aACA,uBACA,eACA,WACA,eACA,YACA,WACA,cACA,gBACA,KACA,WACA,YACA,YACA,QACA,OACA,iBACA,iBACA,cACA,mBACA,YACA,MACA,eACA,KACA,mBACA,YACA,aACA,QACA,sBACA,uBACA,oBACA,wBACA,mBACA,oBACA,gBACA,mBACA,WACA,QACA,iBACA,QACA,SACA,IACA,KACA,KACA,OACA,MACA,aACA,UACA,UACA,SACA,QACA,aACA,WACA,WACA,cACA,gBACA,cACA,iBACA,OACA,QACA,MACA,QACA,OACA,oBACA,qBACA,aACA,gBACA,aACA,aACA,cACA,WACA,aACA,sBACA,WACA,YACA,WACA,QACA,aACA,SACA,SACA,gBACA,WACA,YACA,YACA,YACA,eACA,mBACA,YACA,OACA,MACA,kBACA,WACA,gBACA,cACA,gBACA,aACA,SACA,cACA,YACA,cACA,OACA,OACA,gBACA,iBACA,WACA,iBACA,UACA,SACA,gBACA,gBACA,WACA,UACA,WACA,yBACA,kBACA,mBACA,0BACA,SACA,MACA,UACA,iBACA,cACA,cACA,gBACA,UACA,iBACA,gBACA,mBACA,cACA,wBACA,wBACA,WACA,gBACA,SACA,MACA,iBACA,SACA,oBACA,SACA,kBACA,kBACA,oBACA,sBACA,iBACA,cACA,YACA,sBACA,eACA,eACA,aACA,iBACA,kBACA,oBACA,aACA,kBACA,iBACA,cACA,eACA,aACA,sCACA,qBACA,eACA,cACA,iBACA,yBACA,iCACA,UACA,eACA,eACA,cACA,aACA,cACA,sBACA,iCACA,iBACA,gBACA,WACA,SACA,UACA,sBACA,aACA,eACA,kBACA,cACA,YACA,cACA,cACA,eACA,cACA,eACA,mBACA,cACA,iBACA,UACA,iBACA,qBACA,wBACA,sBACA,cACA,gBACA,eACA,oBACA,uBACA,wCACA,YACA,sBACA,oBACA,8BACA,oBACA,0BACA,qBACA,iBACA,wBACA,iBACA,eACA,uBACA,gBACA,4BACA,mBACA,qBACA,WACA,qBACA,mBACA,iBACA,QACA,YACA,iBACA,SACA,WACA,WACA,UACA,kBACA,gBACA,WACA,WACA,eACA,cACA,gBACA,gBACA,eACA,eACA,cACA,cACA,aACA,UACA,SACA,cACA,aACA,UACA,SACA,kBACA,0BACA,QACA,cACA,MACA,UACA,WACA,YACA,kBACA,WACA,QACA,eACA,eACA,cACA,wBACA,kBACA,OACA,gBACA,OACA,aACA,cACA,aACA,SACA,kBACA,sBACA,mBACA,uBACA,aACA,WACA,gBACA,eACA,QACA,YACA,UACA,SACA,WACA,UACA,OACA,eACA,gBACA,MACA,aACA,gBACA,YACA,eACA,eACA,QACA,UACA,eACA,KACA,KACA,IACA,SACA,SACA,cACA,iBACA,aACA,aACA,UACA,oBACA,oBACA,UACA,OACA,WACA,QACA,UACA,cACA,kBACA,sBACA,YACA,SACA,UACA,QACA,YACA,SACA,SACA,mBACA,gBACA,aACA,2BACA,2BACA,YACA,UACA,UACA,YACA,UACA,SACA,kBACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,eACA,iBACA,WACA,gBACA,gBACA,cACA,eACA,iBACA,yBACA,aACA,gBACA,eACA,oBACA,uBACA,yBACA,qBACA,qBACA,wBACA,0BACA,mBACA,oBACA,kBACA,aACA,aACA,gBACA,qBACA,wBACA,0BACA,sBACA,sBACA,yBACA,2BACA,oBACA,qBACA,mBACA,oBACA,kBACA,iBACA,WACA,YACA,eACA,cACA,UACA,UACA,kBACA,kBACA,wBACA,sBACA,qBACA,iBACA,2BACA,qBACA,0BACA,uBACA,sBACA,iBACA,aACA,YACA,mBACA,OACA,gBACA,MACA,gBACA,gBACA,SACA,OACA,SACA,YACA,uBACA,eACA,kBACA,wBACA,WACA,OACA,kBACA,WACA,UACA,SACA,oBACA,2BACA,sBACA,aACA,qBACA,cACA,mBACA,kBACA,WACA,gBACA,kBACA,wBACA,wBACA,YACA,qBACA,eACA,iBACA,WACA,eACA,OACA,OACA,eACA,aACA,SACA,YACA,gBACA,YACA,eACA,oBACA,eACA,UACA,gBACA,UACA,YACA,iBACA,MACA,mBACA,YACA,WACA,cACA,eACA,iBACA,mBACA,qBACA,mBACA,cACA,eACA,eACA,8BACA,mBACA,aACA,sBACA,WACA,wBACA,mBACA,iBACA,oBACA,UACA,UACA,eACA,SACA,cACA,eACA,cACA,eACA,eACA,aACA,aACA,gBACA,eACA,cACA,iBACA,WACA,sBACA,eACA,iBACA,WACA,WACA,UACA,cACA,UACA,eACA,aACA,cACA,cACA,eACA,uBACA,sBACA,YACA,iBACA,eACA,kBACA,aACA,gBACA,WACA,eACA,iBACA,2BACA,mBACA,kBACA,iBACA,mCACA,WACA,eACA,gBACA,kBACA,cACA,oBACA,cACA,mBACA,gBACA,cACA,iBACA,cACA,sBACA,YACA,eACA,uBACA,mBACA,eACA,8BACA,YACA,WACA,iBACA,aACA,oBACA,uBACA,YACA,YACA,WACA,WACA,WACA,gBACA,iBACA,kBACA,sBACA,aACA,iBACA,iBACA,mBACA,kBACA,uBACA,UACA,aACA,eACA,eACA,aACA,iBACA,cACA,qBACA,gBACA,cACA,gBACA,YACA,YACA,WACA,SACA,cACA,iBACA,sBACA,cACA,cACA,aACA,kBACA,cACA,UACA,cACA,eACA,MACA,iBACA,eACA,aACA,cACA,gBACA,gBACA,aACA,QACA,wBACA,eACA,gBACA,kBACA,sBACA,cACA,eACA,iBACA,QACA,QACA,WACA,YACA,kBACA,iBACA,eACA,OACA,WACA,YACA,kBACA,qBACA,mBACA,UACA,OACA,SACA,iBACA,YACA,SACA,MACA,kBACA,OACA,SACA,6BACA,OACA,gBACA,QACA,QACA,QACA,QACA,YACA,QACA,YACA,QACA,QACA,OACA,QACA,OACA,SACA,wBACA,cACA,eACA,iBACA,OACA,OACA,cACA,SACA,eACA,gBACA,qBACA,aACA,cACA,YACA,UACA,UACA,OACA,QACA,UACA,WACA,UACA,YACA,mBACA,mBACA,kBACA,QACA,eACA,aACA,SACA,QACA,YACA,eACA,OACA,MACA,aACA,YACA,YACA,YACA,SACA,SACA,UACA,SACA,QACA,kBACA,aACA,kBACA,aACA,UACA,QACA,iBACA,WACA,gBACA,qBACA,cACA,iBACA,iBACA,aACA,YACA,aACA,QACA,SACA,aACA,gBACA,aACA,YACA,gBACA,gBACA,cACA,oBACA,eACA,cACA,sBACA,gBACA,cACA,sBACA,YACA,oBACA,kBACA,kBACA,iBACA,mBACA,OACA,WACA,eACA,WACA,SACA,SACA,cACA,OACA,aACA,eACA,YACA,2BACA,oBACA,cACA,gBACA,kBACA,YACA,UACA,UACA,cACA,cACA,gBACA,iBACA,QACA,UACA,qCACA,gCACA,aACA,SACA,UACA,UACA,SACA,SACA,cACA,YACA,mBACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,kBACA,mBACA,gBACA,iBACA,mBACA,gBACA,aACA,cACA,aACA,cACA,QACA,aACA,WACA,aACA,aACA,iBACA,cACA,MACA,WACA,UACA,SACA,cACA,YACA,YACA,SACA,YACA,gBACA,SACA,UACA,SACA,WACA,UACA,MACA,YACA,4BACA,sBACA,WACA,kBACA,eACA,mBACA,UACA,gBACA,YACA,WACA,YACA,UACA,OACA,eACA,SACA,aACA,WACA,iBACA,aACA,aACA,UACA,QACA,QACA,WACA,QACA,eACA,cACA,cACA,MACA,UACA,SACA,OACA,eACA,YACA,cACA,MACA,qBACA,OACA,SACA,gBACA,gBACA,iBACA,gBACA,UACA,UACA,UACA,UACA,MACA,MACA,YACA,OACA,aACA,aACA,gBACA,gBACA,eACA,eACA,gBACA,gBACA,OACA,aACA,kBACA,cACA,uBACA,kBACA,wBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,wBACA,0BACA,YACA,gBACA,aACA,gBACA,eACA,qBACA,cACA,iBACA,sBACA,sBACA,qBACA,4BACA,qBACA,yBACA,wBACA,sBACA,0BACA,0BACA,eACA,oBACA,uBACA,oBACA,aACA,cACA,kBACA,cACA,mBACA,aACA,kBACA,eACA,gBACA,aACA,aACA,gBACA,sBACA,wBACA,UACA,OACA,WACA,YACA,aACA,QACA,QACA,OACA,UACA,UACA,aACA,gBACA,YACA,WACA,WACA,eACA,UACA,YACA,kBACA,kBACA,SACA,QACA,KACA,UACA,SACA,YACA,eACA,YACA,gBACA,UACA,iBACA,iBACA,cACA,cACA,SACA,qBACA,iBACA,oBACA,iBACA,qBACA,oBACA,cACA,WACA,WACA,cACA,cACA,QACA,WACA,eACA,WACA,cACA,QACA,eACA,cACA,cACA,SACA,kBACA,yBACA,OACA,aACA,UACA,WACA,UACA,MACA,YACA,WACA,QACA,kBACA,mBACA,eACA,cACA,UACA,UACA,QACA,QACA,kBACA,cACA,eACA,cACA,6BACA,0BACA,sBACA,aACA,cACA,eACA,wBACA,YACA,gBACA,mBACA,kBACA,eACA,4BACA,kBACA,iBACA,kBACA,iBACA,sBACA,sBACA,aACA,mBACA,sBACA,sBACA,6BACA,kBACA,qBACA,qBACA,2BACA,YACA,gBACA,eACA,eACA,YACA,OACA,UACA,WACA,YACA,YACA,YACA,QACA,WACA,eACA,OACA,QACA,OACA,aACA,eACA,gBACA,QACA,MACA,SACA,SACA,SACA,QACA,eACA,iBACA,cACA,YACA,WACA,SACA,UACA,eACA,cACA,eACA,YACA,aACA,YACA,aACA,aACA,cACA,YACA,aACA,YACA,aACA,aACA,cACA,YACA,aACA,YACA,aACA,aACA,cACA,YACA,aACA,YACA,aACA,aACA,cACA,sBACA,mBACA,qBACA,qBACA,mBACA,qBACA,qBACA,mBACA,qBACA,qBACA,SACA,WACA,eACA,OACA,WACA,QACA,iBACA,mBACA,SACA,QACA,UACA,YACA,UACA,oBACA,cACA,aACA,2BACA,4BACA,cACA,eACA,UACA,cACA,kBACA,qBACA,UACA,YACA,YACA,MACA,MACA,MACA,SACA,iBACA,YACA,iBACA,qBACA,oBACA,iBACA,eACA,iBACA,aACA,UACA,WACA,UACA,SACA,cACA,WACA,QACA,aACA,YACA,MACA,MACA,MACA,OACA,QACA,SACA,MACA,kBACA,kBACA,qBACA,iBACA,SACA,aACA,YACA,cACA,iBACA,YACA,gBACA,aACA,aACA,WACA,eACA,aACA,kBACA,WACA,mBACA,YACA,OACA,kBACA,SACA,QACA,QACA,WACA,kBACA,oBACA,WACA,QACA,cACA,gBACA,gBACA,wBACA,eACA,UACA,YACA,YACA,SACA,WACA,UACA,oBACA,gBACA,eACA,kBACA,oBACA,YACA,YACA,SACA,WACA,YACA,SACA,UACA,SACA,iBACA,kBACA,iBACA,kBACA,iBACA,kBACA,iBACA,kBACA,sBACA,2BACA,kBACA,mBACA,mBACA,oBACA,uBACA,sBACA,WACA,iBACA,gBACA,mBACA,KACA,UACA,oBACA,qBACA,cACA,cACA,aACA,OACA,UACA,gBACA,gBACA,cACA,aACA,mBACA,WACA,kBACA,kBACA,kBACA,QACA,oBACA,aACA,kBACA,UACA,iBACA,aACA,OACA,OACA,QACA,WACA,SACA,OACA,SACA,KACA,IACA,OACA,WACA,UACA,OACA,WACA,OACA,OACA,WACA,eACA,QACA,oBACA,gBACA,YACA,eACA,qBACA,mBACA,kBACA,kBACA,uBACA,2BACA,0BACA,0BACA,gCACA,sBACA,2BACA,gCACA,mBACA,qBACA,8BACA,wBACA,2BACA,mBACA,6BACA,uBACA,wBACA,wBACA,yBACA,2BACA,4BACA,4BACA,yBACA,uBACA,+BACA,+BACA,gCACA,oBACA,0BACA,0BACA,yBACA,0BACA,yBACA,qBACA,4BACA,6BACA,iBACA,qBACA,gBACA,wBACA,kBACA,gBACA,kBACA,kBACA,6BACA,yBACA,yBACA,oCACA,6BACA,8BACA,mCACA,mCACA,yBACA,iCACA,wCACA,0BACA,oCACA,6BACA,0BACA,wBACA,wBACA,gBACA,uBACA,uBACA,wBACA,eACA,aACA,kBACA,sBACA,iBACA,iBACA,mBACA,iBACA,uCACA,0BACA,0BACA,2BACA,mBACA,yBACA,mBACA,yBACA,yBACA,sBACA,oBACA,uBACA,sBACA,4BACA,qBACA,0BACA,eACA,kBACA,oBACA,yBACA,6BACA,mBACA,iBACA,oBACA,uBACA,mBACA,uBACA,8BACA,kBACA,yBACA,qBACA,uBACA,aACA,kBACA,uBACA,wBACA,aACA,iBACA,sBACA,kBACA,mBACA,qBACA,sBACA,sBACA,mBACA,iBACA,wBACA,oBACA,sBACA,4BACA,cACA,oBACA,yBACA,0BACA,oBACA,0BACA,2BACA,oBACA,uBACA,uBACA,0BACA,sBACA,qBACA,8BACA,0BACA,0BACA,0BACA,2BACA,kCACA,qBACA,oCACA,mBACA,iCACA,cACA,sBACA,0BACA,0BACA,+BACA,+BACA,oBACA,2BACA,yBACA,sBACA,uBACA,mBACA,wBACA,wBACA,kBACA,wBACA,uBACA,mBACA,wBACA,2BACA,2BACA,iCACA,YACA,0BACA,mBACA,8BACA,wBACA,sCACA,kBACA,iBACA,WACA,SACA,uBACA,aACA,aACA,cACA,cACA,cACA,QACA,cACA,aACA,YACA,SACA,QACA,cACA,aACA,eACA,SACA,kBACA,aACA,eACA,YACA,YACA,cACA,WACA,cACA,QACA,OACA,UACA,WACA,sBACA,QACA,cACA,YACA,YACA,eACA,iBACA,aACA,uBACA,UACA,eACA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","sources":["webpack://minify-tool/../node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","webpack://minify-tool/../node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs","webpack://minify-tool/../node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs","webpack://minify-tool/../node_modules/@jridgewell/set-array/dist/set-array.mjs","webpack://minify-tool/../node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs","webpack://minify-tool/../../src/source-map.ts","webpack://minify-tool/./node_modules/base64-js/index.js","webpack://minify-tool/./node_modules/buffer/index.js","webpack://minify-tool/./node_modules/clone/clone.js","webpack://minify-tool/./node_modules/ieee754/index.js","webpack://minify-tool/./node_modules/prismjs/components/prism-clike.js","webpack://minify-tool/./node_modules/prismjs/components/prism-core.js","webpack://minify-tool/./node_modules/prismjs/components/prism-javascript.js","webpack://minify-tool/./node_modules/prismjs/components/prism-json.js","webpack://minify-tool/./node_modules/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js","webpack://minify-tool/./node_modules/prismjs/plugins/toolbar/prism-toolbar.js","webpack://minify-tool/./node_modules/prismjs/prism.js","webpack://minify-tool/./node_modules/process/browser.js","webpack://minify-tool/./node_modules/utf8-byte-length/browser.js","webpack://minify-tool/./node_modules/vue-loader/dist/exportHelper.js","webpack://minify-tool/webpack/bootstrap","webpack://minify-tool/webpack/runtime/compat get default export","webpack://minify-tool/webpack/runtime/define property getters","webpack://minify-tool/webpack/runtime/global","webpack://minify-tool/webpack/runtime/hasOwnProperty shorthand","webpack://minify-tool/webpack/runtime/compat","webpack://minify-tool/./node_modules/do-vue/src/webpack-dynamic-import.js","webpack://minify-tool/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://minify-tool/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://minify-tool/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://minify-tool/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://minify-tool/./src/minify-tool/templates/app.vue","webpack://minify-tool/../src/Editor.ts","webpack://minify-tool/./node_modules/do-vue/src/templates/header.vue","webpack://minify-tool/./node_modules/do-vue/src/templates/header.vue?974f","webpack://minify-tool/./node_modules/do-vue/src/templates/footer.vue","webpack://minify-tool/./node_modules/do-vue/src/i18n/index.js","webpack://minify-tool/./node_modules/do-vue/src/i18n/en/index.js","webpack://minify-tool/./node_modules/do-vue/src/i18n/en/templates/index.js","webpack://minify-tool/./node_modules/do-vue/src/i18n/en/templates/footer.js","webpack://minify-tool/./node_modules/do-vue/src/i18n/en/templates/landing.js","webpack://minify-tool/./node_modules/do-vue/src/templates/external_link.vue","webpack://minify-tool/./node_modules/do-vue/src/templates/external_link.vue?7d11","webpack://minify-tool/./node_modules/do-vue/src/utils/dataUrlParser.js","webpack://minify-tool/./node_modules/do-vue/src/templates/footer.vue?e2bb","webpack://minify-tool/./node_modules/pretty-checkbox-vue/src/PrettyInput.vue","webpack://minify-tool/./node_modules/pretty-checkbox-vue/src/PrettyInput.vue?2935","webpack://minify-tool/./node_modules/do-vue/src/templates/pretty-checkbox-vue/pretty_input.vue?a4cb","webpack://minify-tool/./node_modules/do-vue/src/templates/pretty-checkbox-vue/pretty_input.vue","webpack://minify-tool/./node_modules/do-vue/src/templates/pretty-checkbox-vue/pretty_check.vue","webpack://minify-tool/./node_modules/terser/lib/utils/index.js","webpack://minify-tool/./node_modules/terser/lib/parse.js","webpack://minify-tool/./node_modules/terser/lib/ast.js","webpack://minify-tool/./node_modules/terser/lib/transform.js","webpack://minify-tool/./node_modules/terser/lib/utils/first_in_statement.js","webpack://minify-tool/./node_modules/terser/lib/mozilla-ast.js","webpack://minify-tool/./node_modules/terser/lib/output.js","webpack://minify-tool/./node_modules/terser/lib/equivalent-to.js","webpack://minify-tool/./node_modules/terser/lib/scope.js","webpack://minify-tool/./node_modules/terser/lib/size.js","webpack://minify-tool/./node_modules/terser/lib/compress/compressor-flags.js","webpack://minify-tool/./node_modules/terser/lib/compress/common.js","webpack://minify-tool/./node_modules/terser/lib/compress/native-objects.js","webpack://minify-tool/./node_modules/terser/lib/compress/inference.js","webpack://minify-tool/./node_modules/terser/lib/compress/evaluate.js","webpack://minify-tool/./node_modules/terser/lib/compress/drop-side-effect-free.js","webpack://minify-tool/./node_modules/terser/lib/compress/drop-unused.js","webpack://minify-tool/./node_modules/terser/lib/compress/reduce-vars.js","webpack://minify-tool/./node_modules/terser/lib/compress/tighten-body.js","webpack://minify-tool/./node_modules/terser/lib/compress/inline.js","webpack://minify-tool/./node_modules/terser/lib/compress/global-defs.js","webpack://minify-tool/./node_modules/terser/lib/compress/index.js","webpack://minify-tool/./node_modules/terser/tools/domprops.js","webpack://minify-tool/./node_modules/terser/lib/propmangle.js","webpack://minify-tool/./node_modules/terser/lib/minify.js","webpack://minify-tool/./node_modules/terser/lib/sourcemap.js","webpack://minify-tool/./src/minify-tool/templates/output.vue","webpack://minify-tool/./src/minify-tool/templates/output.vue?22c8","webpack://minify-tool/./src/minify-tool/templates/size.vue","webpack://minify-tool/./src/minify-tool/i18n/index.js","webpack://minify-tool/./src/minify-tool/i18n/en/index.js","webpack://minify-tool/./src/minify-tool/i18n/en/templates/index.js","webpack://minify-tool/./src/minify-tool/i18n/en/templates/app.js","webpack://minify-tool/./src/minify-tool/i18n/en/templates/config/index.js","webpack://minify-tool/./src/minify-tool/i18n/en/templates/config/compress.js","webpack://minify-tool/./src/minify-tool/i18n/en/templates/config/mangle.js","webpack://minify-tool/./src/minify-tool/i18n/en/templates/explainer.js","webpack://minify-tool/./src/minify-tool/i18n/en/templates/size.js","webpack://minify-tool/./node_modules/pretty-bytes/index.js","webpack://minify-tool/./src/minify-tool/templates/size.vue?8ffe","webpack://minify-tool/./src/minify-tool/templates/sourcemap.vue","webpack://minify-tool/./src/minify-tool/templates/sourcemap.vue?4488","webpack://minify-tool/./src/minify-tool/templates/config.vue","webpack://minify-tool/./node_modules/vue-select/dist/vue-select.es.js","webpack://minify-tool/./node_modules/vue-tippy/dist/vue-tippy.esm-browser.js","webpack://minify-tool/./src/minify-tool/templates/config/compress.vue","webpack://minify-tool/./src/minify-tool/templates/config/compress.vue?8573","webpack://minify-tool/./src/minify-tool/templates/config/mangle.vue","webpack://minify-tool/./src/minify-tool/templates/config/mangle.vue?0792","webpack://minify-tool/./src/minify-tool/templates/config.vue?ccd8","webpack://minify-tool/./src/minify-tool/templates/explainer.vue","webpack://minify-tool/./node_modules/is-regexp/index.js","webpack://minify-tool/./node_modules/get-own-enumerable-keys/index.js","webpack://minify-tool/./src/minify-tool/data/terser/base.js","webpack://minify-tool/./src/minify-tool/data/terser/normal_usage.js","webpack://minify-tool/./src/minify-tool/data/terser/sourcemap_usage.js","webpack://minify-tool/./node_modules/stringify-object/index.js","webpack://minify-tool/./node_modules/is-obj/index.js","webpack://minify-tool/./src/minify-tool/templates/explainer.vue?1d9c","webpack://minify-tool/./src/minify-tool/data/example_code.js","webpack://minify-tool/./src/minify-tool/templates/app.vue?6c0a","webpack://minify-tool/./src/minify-tool/mount.js"],"sourcesContent":["const comma = ','.charCodeAt(0);\nconst semicolon = ';'.charCodeAt(0);\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInteger = new Uint8Array(128); // z is 122 in ASCII\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n charToInteger[c] = i;\n intToChar[i] = c;\n}\n// Provide a fallback for older environments.\nconst td = typeof TextDecoder !== 'undefined'\n ? new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf) {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\nfunction decode(mappings) {\n const state = new Int32Array(5);\n const decoded = [];\n let line = [];\n let sorted = true;\n let lastCol = 0;\n for (let i = 0; i < mappings.length;) {\n const c = mappings.charCodeAt(i);\n if (c === comma) {\n i++;\n }\n else if (c === semicolon) {\n state[0] = lastCol = 0;\n if (!sorted)\n sort(line);\n sorted = true;\n decoded.push(line);\n line = [];\n i++;\n }\n else {\n i = decodeInteger(mappings, i, state, 0); // generatedCodeColumn\n const col = state[0];\n if (col < lastCol)\n sorted = false;\n lastCol = col;\n if (!hasMoreSegments(mappings, i)) {\n line.push([col]);\n continue;\n }\n i = decodeInteger(mappings, i, state, 1); // sourceFileIndex\n i = decodeInteger(mappings, i, state, 2); // sourceCodeLine\n i = decodeInteger(mappings, i, state, 3); // sourceCodeColumn\n if (!hasMoreSegments(mappings, i)) {\n line.push([col, state[1], state[2], state[3]]);\n continue;\n }\n i = decodeInteger(mappings, i, state, 4); // nameIndex\n line.push([col, state[1], state[2], state[3], state[4]]);\n }\n }\n if (!sorted)\n sort(line);\n decoded.push(line);\n return decoded;\n}\nfunction decodeInteger(mappings, pos, state, j) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = mappings.charCodeAt(pos++);\n integer = charToInteger[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n state[j] += value;\n return pos;\n}\nfunction hasMoreSegments(mappings, i) {\n if (i >= mappings.length)\n return false;\n const c = mappings.charCodeAt(i);\n if (c === comma || c === semicolon)\n return false;\n return true;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const state = new Int32Array(5);\n let buf = new Uint8Array(1024);\n let pos = 0;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) {\n buf = reserve(buf, pos, 1);\n buf[pos++] = semicolon;\n }\n if (line.length === 0)\n continue;\n state[0] = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n // We can push up to 5 ints, each int can take at most 7 chars, and we\n // may push a comma.\n buf = reserve(buf, pos, 36);\n if (j > 0)\n buf[pos++] = comma;\n pos = encodeInteger(buf, pos, state, segment, 0); // generatedCodeColumn\n if (segment.length === 1)\n continue;\n pos = encodeInteger(buf, pos, state, segment, 1); // sourceFileIndex\n pos = encodeInteger(buf, pos, state, segment, 2); // sourceCodeLine\n pos = encodeInteger(buf, pos, state, segment, 3); // sourceCodeColumn\n if (segment.length === 4)\n continue;\n pos = encodeInteger(buf, pos, state, segment, 4); // nameIndex\n }\n }\n return td.decode(buf.subarray(0, pos));\n}\nfunction reserve(buf, pos, count) {\n if (buf.length > pos + count)\n return buf;\n const swap = new Uint8Array(buf.length * 2);\n swap.set(buf);\n return swap;\n}\nfunction encodeInteger(buf, pos, state, segment, j) {\n const next = segment[j];\n let num = next - state[j];\n state[j] = next;\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n let clamped = num & 0b011111;\n num >>>= 5;\n if (num > 0)\n clamped |= 0b100000;\n buf[pos++] = intToChar[clamped];\n } while (num > 0);\n return pos;\n}\n\nexport { decode, encode };\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?/;\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may inclue \"/\", guaranteed.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/]*)?)?(\\/?.*)/i;\nfunction isAbsoluteUrl(input) {\n return schemeRegex.test(input);\n}\nfunction isSchemeRelativeUrl(input) {\n return input.startsWith('//');\n}\nfunction isAbsolutePath(input) {\n return input.startsWith('/');\n}\nfunction isFileUrl(input) {\n return input.startsWith('file:');\n}\nfunction parseAbsoluteUrl(input) {\n const match = urlRegex.exec(input);\n return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/');\n}\nfunction parseFileUrl(input) {\n const match = fileRegex.exec(input);\n const path = match[2];\n return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path);\n}\nfunction makeUrl(scheme, user, host, port, path) {\n return {\n scheme,\n user,\n host,\n port,\n path,\n relativePath: false,\n };\n}\nfunction parseUrl(input) {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n return url;\n }\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n return url;\n }\n if (isFileUrl(input))\n return parseFileUrl(input);\n if (isAbsoluteUrl(input))\n return parseAbsoluteUrl(input);\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.relativePath = true;\n return url;\n}\nfunction stripPathFilename(path) {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..'))\n return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\nfunction mergePaths(url, base) {\n // If we're not a relative path, then we're an absolute path, and it doesn't matter what base is.\n if (!url.relativePath)\n return;\n normalizePath(base);\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n }\n else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n // If the base path is absolute, then our path is now absolute too.\n url.relativePath = base.relativePath;\n}\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url) {\n const { relativePath } = url;\n const pieces = url.path.split('/');\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n // A current directory, which we can always drop.\n if (piece === '.')\n continue;\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n }\n else if (relativePath) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nfunction resolve(input, base) {\n if (!input && !base)\n return '';\n const url = parseUrl(input);\n // If we have a base, and the input isn't already an absolute URL, then we need to merge.\n if (base && !url.scheme) {\n const baseUrl = parseUrl(base);\n url.scheme = baseUrl.scheme;\n // If there's no host, then we were just a path.\n if (!url.host) {\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n }\n mergePaths(url, baseUrl);\n }\n normalizePath(url);\n // If the input (and base, if there was one) are both relative, then we need to output a relative.\n if (url.relativePath) {\n // The first char is always a \"/\".\n const path = url.path.slice(1);\n if (!path)\n return '.';\n // If base started with a leading \".\", or there is no base and input started with a \".\", then we\n // need to ensure that the relative path starts with a \".\". We don't know if relative starts\n // with a \"..\", though, so check before prepending.\n const keepRelative = (base || input).startsWith('.');\n return !keepRelative || path.startsWith('.') ? path : './' + path;\n }\n // If there's no host (and no scheme/user/port), then we need to output an absolute path.\n if (!url.scheme && !url.host)\n return url.path;\n // We're outputting either an absolute URL, or a protocol relative one.\n return `${url.scheme}//${url.user}${url.host}${url.port}${url.path}`;\n}\n\nexport { resolve as default };\n//# sourceMappingURL=resolve-uri.mjs.map\n","import { encode, decode } from '@jridgewell/sourcemap-codec';\nimport resolveUri from '@jridgewell/resolve-uri';\n\nfunction resolve(input, base) {\n // The base is always treated as a directory, if it's not empty.\n // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327\n // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401\n if (base && !base.endsWith('/'))\n base += '/';\n return resolveUri(input, base);\n}\n\n/**\n * Removes everything after the last \"/\", but leaves the slash.\n */\nfunction stripFilename(path) {\n if (!path)\n return '';\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nconst COLUMN = 0;\nconst SOURCES_INDEX = 1;\nconst SOURCE_LINE = 2;\nconst SOURCE_COLUMN = 3;\nconst NAMES_INDEX = 4;\nconst REV_GENERATED_LINE = 1;\nconst REV_GENERATED_COLUMN = 2;\n\nfunction maybeSort(mappings, owned) {\n const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);\n if (unsortedIndex === mappings.length)\n return mappings;\n // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If\n // not, we do not want to modify the consumer's input array.\n if (!owned)\n mappings = mappings.slice();\n for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {\n mappings[i] = sortSegments(mappings[i], owned);\n }\n return mappings;\n}\nfunction nextUnsortedSegmentLine(mappings, start) {\n for (let i = start; i < mappings.length; i++) {\n if (!isSorted(mappings[i]))\n return i;\n }\n return mappings.length;\n}\nfunction isSorted(line) {\n for (let j = 1; j < line.length; j++) {\n if (line[j][COLUMN] < line[j - 1][COLUMN]) {\n return false;\n }\n }\n return true;\n}\nfunction sortSegments(line, owned) {\n if (!owned)\n line = line.slice();\n return line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[COLUMN] - b[COLUMN];\n}\n\nlet found = false;\n/**\n * A binary search implementation that returns the index if a match is found.\n * If no match is found, then the left-index (the index associated with the item that comes just\n * before the desired index) is returned. To maintain proper sort order, a splice would happen at\n * the next index:\n *\n * ```js\n * const array = [1, 3];\n * const needle = 2;\n * const index = binarySearch(array, needle, (item, needle) => item - needle);\n *\n * assert.equal(index, 0);\n * array.splice(index + 1, 0, needle);\n * assert.deepEqual(array, [1, 2, 3]);\n * ```\n */\nfunction binarySearch(haystack, needle, low, high) {\n while (low <= high) {\n const mid = low + ((high - low) >> 1);\n const cmp = haystack[mid][COLUMN] - needle;\n if (cmp === 0) {\n found = true;\n return mid;\n }\n if (cmp < 0) {\n low = mid + 1;\n }\n else {\n high = mid - 1;\n }\n }\n found = false;\n return low - 1;\n}\nfunction upperBound(haystack, needle, index) {\n for (let i = index + 1; i < haystack.length; i++, index++) {\n if (haystack[i][COLUMN] !== needle)\n break;\n }\n return index;\n}\nfunction lowerBound(haystack, needle, index) {\n for (let i = index - 1; i >= 0; i--, index--) {\n if (haystack[i][COLUMN] !== needle)\n break;\n }\n return index;\n}\nfunction memoizedState() {\n return {\n lastKey: -1,\n lastNeedle: -1,\n lastIndex: -1,\n };\n}\n/**\n * This overly complicated beast is just to record the last tested line/column and the resulting\n * index, allowing us to skip a few tests if mappings are monotonically increasing.\n */\nfunction memoizedBinarySearch(haystack, needle, state, key) {\n const { lastKey, lastNeedle, lastIndex } = state;\n let low = 0;\n let high = haystack.length - 1;\n if (key === lastKey) {\n if (needle === lastNeedle) {\n found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle;\n return lastIndex;\n }\n if (needle >= lastNeedle) {\n // lastIndex may be -1 if the previous needle was not found.\n low = lastIndex === -1 ? 0 : lastIndex;\n }\n else {\n high = lastIndex;\n }\n }\n state.lastKey = key;\n state.lastNeedle = needle;\n return (state.lastIndex = binarySearch(haystack, needle, low, high));\n}\n\n// Rebuilds the original source files, with mappings that are ordered by source line/column instead\n// of generated line/column.\nfunction buildBySources(decoded, memos) {\n const sources = memos.map(buildNullArray);\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n if (seg.length === 1)\n continue;\n const sourceIndex = seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n const originalSource = sources[sourceIndex];\n const originalLine = (originalSource[sourceLine] || (originalSource[sourceLine] = []));\n const memo = memos[sourceIndex];\n // The binary search either found a match, or it found the left-index just before where the\n // segment should go. Either way, we want to insert after that. And there may be multiple\n // generated segments associated with an original location, so there may need to move several\n // indexes before we find where we need to insert.\n const index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine));\n insert(originalLine, (memo.lastIndex = index + 1), [sourceColumn, i, seg[COLUMN]]);\n }\n }\n return sources;\n}\nfunction insert(array, index, value) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\n// Null arrays allow us to use ordered index keys without actually allocating contiguous memory like\n// a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations.\n// Numeric properties on objects are magically sorted in ascending order by the engine regardless of\n// the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending\n// order when iterating with for-in.\nfunction buildNullArray() {\n return { __proto__: null };\n}\n\nconst AnyMap = function (map, mapUrl) {\n const parsed = typeof map === 'string' ? JSON.parse(map) : map;\n if (!('sections' in parsed))\n return new TraceMap(parsed, mapUrl);\n const mappings = [];\n const sources = [];\n const sourcesContent = [];\n const names = [];\n const { sections } = parsed;\n let i = 0;\n for (; i < sections.length - 1; i++) {\n const no = sections[i + 1].offset;\n addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, no.line, no.column);\n }\n if (sections.length > 0) {\n addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, Infinity, Infinity);\n }\n const joined = {\n version: 3,\n file: parsed.file,\n names,\n sources,\n sourcesContent,\n mappings,\n };\n return presortedDecodedMap(joined);\n};\nfunction addSection(section, mapUrl, mappings, sources, sourcesContent, names, stopLine, stopColumn) {\n const map = AnyMap(section.map, mapUrl);\n const { line: lineOffset, column: columnOffset } = section.offset;\n const sourcesOffset = sources.length;\n const namesOffset = names.length;\n const decoded = decodedMappings(map);\n const { resolvedSources } = map;\n append(sources, resolvedSources);\n append(sourcesContent, map.sourcesContent || fillSourcesContent(resolvedSources.length));\n append(names, map.names);\n // If this section jumps forwards several lines, we need to add lines to the output mappings catch up.\n for (let i = mappings.length; i <= lineOffset; i++)\n mappings.push([]);\n // We can only add so many lines before we step into the range that the next section's map\n // controls. When we get to the last line, then we'll start checking the segments to see if\n // they've crossed into the column range.\n const stopI = stopLine - lineOffset;\n const len = Math.min(decoded.length, stopI + 1);\n for (let i = 0; i < len; i++) {\n const line = decoded[i];\n // On the 0th loop, the line will already exist due to a previous section, or the line catch up\n // loop above.\n const out = i === 0 ? mappings[lineOffset] : (mappings[lineOffset + i] = []);\n // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the\n // map can be multiple lines), it doesn't.\n const cOffset = i === 0 ? columnOffset : 0;\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const column = cOffset + seg[COLUMN];\n // If this segment steps into the column range that the next section's map controls, we need\n // to stop early.\n if (i === stopI && column >= stopColumn)\n break;\n if (seg.length === 1) {\n out.push([column]);\n continue;\n }\n const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n if (seg.length === 4) {\n out.push([column, sourcesIndex, sourceLine, sourceColumn]);\n continue;\n }\n out.push([column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]);\n }\n }\n}\nfunction append(arr, other) {\n for (let i = 0; i < other.length; i++)\n arr.push(other[i]);\n}\n// Sourcemaps don't need to have sourcesContent, and if they don't, we need to create an array of\n// equal length to the sources. This is because the sources and sourcesContent are paired arrays,\n// where `sourcesContent[i]` is the content of the `sources[i]` file. If we didn't, then joined\n// sourcemap would desynchronize the sources/contents.\nfunction fillSourcesContent(len) {\n const sourcesContent = [];\n for (let i = 0; i < len; i++)\n sourcesContent[i] = null;\n return sourcesContent;\n}\n\nconst INVALID_ORIGINAL_MAPPING = Object.freeze({\n source: null,\n line: null,\n column: null,\n name: null,\n});\nconst INVALID_GENERATED_MAPPING = Object.freeze({\n line: null,\n column: null,\n});\nconst LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)';\nconst COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)';\nconst LEAST_UPPER_BOUND = -1;\nconst GREATEST_LOWER_BOUND = 1;\n/**\n * Returns the encoded (VLQ string) form of the SourceMap's mappings field.\n */\nlet encodedMappings;\n/**\n * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.\n */\nlet decodedMappings;\n/**\n * A low-level API to find the segment associated with a generated line/column (think, from a\n * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.\n */\nlet traceSegment;\n/**\n * A higher-level API to find the source/line/column associated with a generated line/column\n * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in\n * `source-map` library.\n */\nlet originalPositionFor;\n/**\n * Finds the source/line/column directly after the mapping returned by originalPositionFor, provided\n * the found mapping is from the same source and line as the originalPositionFor mapping.\n *\n * Eg, in the code `let id = 1`, `originalPositionAfter` could find the mapping associated with `1`\n * using the same needle that would return `id` when calling `originalPositionFor`.\n */\nlet generatedPositionFor;\n/**\n * Iterates each mapping in generated position order.\n */\nlet eachMapping;\n/**\n * A helper that skips sorting of the input map's mappings array, which can be expensive for larger\n * maps.\n */\nlet presortedDecodedMap;\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nlet decodedMap;\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nlet encodedMap;\nclass TraceMap {\n constructor(map, mapUrl) {\n this._decodedMemo = memoizedState();\n this._bySources = undefined;\n this._bySourceMemos = undefined;\n const isString = typeof map === 'string';\n if (!isString && map.constructor === TraceMap)\n return map;\n const parsed = (isString ? JSON.parse(map) : map);\n const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;\n this.version = version;\n this.file = file;\n this.names = names;\n this.sourceRoot = sourceRoot;\n this.sources = sources;\n this.sourcesContent = sourcesContent;\n if (sourceRoot || mapUrl) {\n const from = resolve(sourceRoot || '', stripFilename(mapUrl));\n this.resolvedSources = sources.map((s) => resolve(s || '', from));\n }\n else {\n this.resolvedSources = sources.map((s) => s || '');\n }\n const { mappings } = parsed;\n if (typeof mappings === 'string') {\n this._encoded = mappings;\n this._decoded = undefined;\n }\n else {\n this._encoded = undefined;\n this._decoded = maybeSort(mappings, isString);\n }\n }\n}\n(() => {\n encodedMappings = (map) => {\n var _a;\n return ((_a = map._encoded) !== null && _a !== void 0 ? _a : (map._encoded = encode(map._decoded)));\n };\n decodedMappings = (map) => {\n return (map._decoded || (map._decoded = decode(map._encoded)));\n };\n traceSegment = (map, line, column) => {\n const decoded = decodedMappings(map);\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length)\n return null;\n return traceSegmentInternal(decoded[line], map._decodedMemo, line, column, GREATEST_LOWER_BOUND);\n };\n originalPositionFor = (map, { line, column, bias }) => {\n line--;\n if (line < 0)\n throw new Error(LINE_GTR_ZERO);\n if (column < 0)\n throw new Error(COL_GTR_EQ_ZERO);\n const decoded = decodedMappings(map);\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length)\n return INVALID_ORIGINAL_MAPPING;\n const segment = traceSegmentInternal(decoded[line], map._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND);\n if (segment == null)\n return INVALID_ORIGINAL_MAPPING;\n if (segment.length == 1)\n return INVALID_ORIGINAL_MAPPING;\n const { names, resolvedSources } = map;\n return {\n source: resolvedSources[segment[SOURCES_INDEX]],\n line: segment[SOURCE_LINE] + 1,\n column: segment[SOURCE_COLUMN],\n name: segment.length === 5 ? names[segment[NAMES_INDEX]] : null,\n };\n };\n generatedPositionFor = (map, { source, line, column, bias }) => {\n line--;\n if (line < 0)\n throw new Error(LINE_GTR_ZERO);\n if (column < 0)\n throw new Error(COL_GTR_EQ_ZERO);\n const { sources, resolvedSources } = map;\n let sourceIndex = sources.indexOf(source);\n if (sourceIndex === -1)\n sourceIndex = resolvedSources.indexOf(source);\n if (sourceIndex === -1)\n return INVALID_GENERATED_MAPPING;\n const generated = (map._bySources || (map._bySources = buildBySources(decodedMappings(map), (map._bySourceMemos = sources.map(memoizedState)))));\n const memos = map._bySourceMemos;\n const segments = generated[sourceIndex][line];\n if (segments == null)\n return INVALID_GENERATED_MAPPING;\n const segment = traceSegmentInternal(segments, memos[sourceIndex], line, column, bias || GREATEST_LOWER_BOUND);\n if (segment == null)\n return INVALID_GENERATED_MAPPING;\n return {\n line: segment[REV_GENERATED_LINE] + 1,\n column: segment[REV_GENERATED_COLUMN],\n };\n };\n eachMapping = (map, cb) => {\n const decoded = decodedMappings(map);\n const { names, resolvedSources } = map;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const generatedLine = i + 1;\n const generatedColumn = seg[0];\n let source = null;\n let originalLine = null;\n let originalColumn = null;\n let name = null;\n if (seg.length !== 1) {\n source = resolvedSources[seg[1]];\n originalLine = seg[2] + 1;\n originalColumn = seg[3];\n }\n if (seg.length === 5)\n name = names[seg[4]];\n cb({\n generatedLine,\n generatedColumn,\n source,\n originalLine,\n originalColumn,\n name,\n });\n }\n }\n };\n presortedDecodedMap = (map, mapUrl) => {\n const clone = Object.assign({}, map);\n clone.mappings = [];\n const tracer = new TraceMap(clone, mapUrl);\n tracer._decoded = map.mappings;\n return tracer;\n };\n decodedMap = (map) => {\n return {\n version: 3,\n file: map.file,\n names: map.names,\n sourceRoot: map.sourceRoot,\n sources: map.sources,\n sourcesContent: map.sourcesContent,\n mappings: decodedMappings(map),\n };\n };\n encodedMap = (map) => {\n return {\n version: 3,\n file: map.file,\n names: map.names,\n sourceRoot: map.sourceRoot,\n sources: map.sources,\n sourcesContent: map.sourcesContent,\n mappings: encodedMappings(map),\n };\n };\n})();\nfunction traceSegmentInternal(segments, memo, line, column, bias) {\n let index = memoizedBinarySearch(segments, column, memo, line);\n if (found) {\n index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);\n }\n else if (bias === LEAST_UPPER_BOUND)\n index++;\n if (index === -1 || index === segments.length)\n return null;\n return segments[index];\n}\n\nexport { AnyMap, GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap, decodedMap, decodedMappings, eachMapping, encodedMap, encodedMappings, generatedPositionFor, originalPositionFor, presortedDecodedMap, traceSegment };\n//# sourceMappingURL=trace-mapping.mjs.map\n","/**\n * Gets the index associated with `key` in the backing array, if it is already present.\n */\nlet get;\n/**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\nlet put;\n/**\n * Pops the last added item out of the SetArray.\n */\nlet pop;\n/**\n * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the\n * index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of the backing array,\n * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,\n * and there are never duplicates.\n */\nclass SetArray {\n constructor() {\n this._indexes = { __proto__: null };\n this.array = [];\n }\n}\n(() => {\n get = (strarr, key) => strarr._indexes[key];\n put = (strarr, key) => {\n // The key may or may not be present. If it is present, it's a number.\n const index = get(strarr, key);\n if (index !== undefined)\n return index;\n const { array, _indexes: indexes } = strarr;\n return (indexes[key] = array.push(key) - 1);\n };\n pop = (strarr) => {\n const { array, _indexes: indexes } = strarr;\n if (array.length === 0)\n return;\n const last = array.pop();\n indexes[last] = undefined;\n };\n})();\n\nexport { SetArray, get, pop, put };\n//# sourceMappingURL=set-array.mjs.map\n","import { SetArray, put } from '@jridgewell/set-array';\nimport { encode } from '@jridgewell/sourcemap-codec';\nimport { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';\n\nconst COLUMN = 0;\nconst SOURCES_INDEX = 1;\nconst SOURCE_LINE = 2;\nconst SOURCE_COLUMN = 3;\nconst NAMES_INDEX = 4;\n\nconst NO_NAME = -1;\n/**\n * A low-level API to associate a generated position with an original source position. Line and\n * column here are 0-based, unlike `addMapping`.\n */\nlet addSegment;\n/**\n * A high-level API to associate a generated position with an original source position. Line is\n * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.\n */\nlet addMapping;\n/**\n * Same as `addSegment`, but will only add the segment if it generates useful information in the\n * resulting map. This only works correctly if segments are added **in order**, meaning you should\n * not add a segment with a lower generated line/column than one that came before.\n */\nlet maybeAddSegment;\n/**\n * Same as `addMapping`, but will only add the mapping if it generates useful information in the\n * resulting map. This only works correctly if mappings are added **in order**, meaning you should\n * not add a mapping with a lower generated line/column than one that came before.\n */\nlet maybeAddMapping;\n/**\n * Adds/removes the content of the source file to the source map.\n */\nlet setSourceContent;\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nlet toDecodedMap;\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nlet toEncodedMap;\n/**\n * Constructs a new GenMapping, using the already present mappings of the input.\n */\nlet fromMap;\n/**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\nlet allMappings;\n// This split declaration is only so that terser can elminiate the static initialization block.\nlet addSegmentInternal;\n/**\n * Provides the state to generate a sourcemap.\n */\nclass GenMapping {\n constructor({ file, sourceRoot } = {}) {\n this._names = new SetArray();\n this._sources = new SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n }\n}\n(() => {\n addSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name) => {\n return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name);\n };\n maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name) => {\n return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name);\n };\n addMapping = (map, mapping) => {\n return addMappingInternal(false, map, mapping);\n };\n maybeAddMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping);\n };\n setSourceContent = (map, source, content) => {\n const { _sources: sources, _sourcesContent: sourcesContent } = map;\n sourcesContent[put(sources, source)] = content;\n };\n toDecodedMap = (map) => {\n const { file, sourceRoot, _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map;\n removeEmptyFinalLines(mappings);\n return {\n version: 3,\n file: file || undefined,\n names: names.array,\n sourceRoot: sourceRoot || undefined,\n sources: sources.array,\n sourcesContent,\n mappings,\n };\n };\n toEncodedMap = (map) => {\n const decoded = toDecodedMap(map);\n return Object.assign(Object.assign({}, decoded), { mappings: encode(decoded.mappings) });\n };\n allMappings = (map) => {\n const out = [];\n const { _mappings: mappings, _sources: sources, _names: names } = map;\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source = undefined;\n let original = undefined;\n let name = undefined;\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n if (seg.length === 5)\n name = names.array[seg[NAMES_INDEX]];\n }\n out.push({ generated, source, original, name });\n }\n }\n return out;\n };\n fromMap = (input) => {\n const map = new TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n putAll(gen._names, map.names);\n putAll(gen._sources, map.sources);\n gen._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n gen._mappings = decodedMappings(map);\n return gen;\n };\n // Internal helpers\n addSegmentInternal = (skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name) => {\n const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map;\n const line = getLine(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n if (!source) {\n if (skipable && skipSourceless(line, index))\n return;\n return insert(line, index, [genColumn]);\n }\n const sourcesIndex = put(sources, source);\n const namesIndex = name ? put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length)\n sourcesContent[sourcesIndex] = null;\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n return insert(line, index, name\n ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]\n : [genColumn, sourcesIndex, sourceLine, sourceColumn]);\n };\n})();\nfunction getLine(mappings, index) {\n for (let i = mappings.length; i <= index; i++) {\n mappings[i] = [];\n }\n return mappings[index];\n}\nfunction getColumnIndex(line, genColumn) {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN])\n break;\n }\n return index;\n}\nfunction insert(array, index, value) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\nfunction removeEmptyFinalLines(mappings) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0)\n break;\n }\n if (len < length)\n mappings.length = len;\n}\nfunction putAll(strarr, array) {\n for (let i = 0; i < array.length; i++)\n put(strarr, array[i]);\n}\nfunction skipSourceless(line, index) {\n // The start of a line is already sourceless, so adding a sourceless segment to the beginning\n // doesn't generate any useful information.\n if (index === 0)\n return true;\n const prev = line[index - 1];\n // If the previous segment is also sourceless, then adding another sourceless segment doesn't\n // genrate any new information. Else, this segment will end the source/named segment and point to\n // a sourceless position, which is useful.\n return prev.length === 1;\n}\nfunction skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {\n // A source/named segment at the start of a line gives position at that genColumn\n if (index === 0)\n return false;\n const prev = line[index - 1];\n // If the previous segment is sourceless, then we're transitioning to a source.\n if (prev.length === 1)\n return false;\n // If the previous segment maps to the exact same source position, then this segment doesn't\n // provide any new position information.\n return (sourcesIndex === prev[SOURCES_INDEX] &&\n sourceLine === prev[SOURCE_LINE] &&\n sourceColumn === prev[SOURCE_COLUMN] &&\n namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME));\n}\nfunction addMappingInternal(skipable, map, mapping) {\n const { generated, source, original, name } = mapping;\n if (!source) {\n return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null);\n }\n const s = source;\n return addSegmentInternal(skipable, map, generated.line - 1, generated.column, s, original.line - 1, original.column, name);\n}\n\nexport { GenMapping, addMapping, addSegment, allMappings, fromMap, maybeAddMapping, maybeAddSegment, setSourceContent, toDecodedMap, toEncodedMap };\n//# sourceMappingURL=gen-mapping.mjs.map\n","import { AnyMap, originalPositionFor } from '@jridgewell/trace-mapping';\nimport {\n GenMapping,\n maybeAddMapping,\n toDecodedMap,\n toEncodedMap,\n setSourceContent,\n} from '@jridgewell/gen-mapping';\n\nimport type { TraceMap, SectionedSourceMapInput } from '@jridgewell/trace-mapping';\nexport type { TraceMap, SectionedSourceMapInput };\n\nimport type { Mapping, EncodedSourceMap, DecodedSourceMap } from '@jridgewell/gen-mapping';\nexport type { Mapping, EncodedSourceMap, DecodedSourceMap };\n\nexport class SourceMapConsumer {\n private declare _map: TraceMap;\n declare file: TraceMap['file'];\n declare names: TraceMap['names'];\n declare sourceRoot: TraceMap['sourceRoot'];\n declare sources: TraceMap['sources'];\n declare sourcesContent: TraceMap['sourcesContent'];\n\n constructor(map: ConstructorParameters[0], mapUrl: Parameters[1]) {\n const trace = (this._map = new AnyMap(map, mapUrl));\n\n this.file = trace.file;\n this.names = trace.names;\n this.sourceRoot = trace.sourceRoot;\n this.sources = trace.resolvedSources;\n this.sourcesContent = trace.sourcesContent;\n }\n\n originalPositionFor(\n needle: Parameters[1],\n ): ReturnType {\n return originalPositionFor(this._map, needle);\n }\n\n destroy() {\n // noop.\n }\n}\n\nexport class SourceMapGenerator {\n private declare _map: GenMapping;\n\n constructor(opts: ConstructorParameters[0]) {\n this._map = new GenMapping(opts);\n }\n\n addMapping(mapping: Parameters[1]): ReturnType {\n maybeAddMapping(this._map, mapping);\n }\n\n setSourceContent(\n source: Parameters[1],\n content: Parameters[2],\n ): ReturnType {\n setSourceContent(this._map, source, content);\n }\n\n toJSON(): ReturnType {\n return toEncodedMap(this._map);\n }\n\n toDecodedMap(): ReturnType {\n return toDecodedMap(this._map);\n }\n}\n","'use strict'\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 * 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'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * 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 * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\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 // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\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(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(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 interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(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(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\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(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(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.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 buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.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 === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let 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 (!Array.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 let 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 const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\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 (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let 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 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) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let 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 coercion 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// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let 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 const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let 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 const length = this.length\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.toLocaleString = Buffer.prototype.toString\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 let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\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 let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let 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 (numberIsNaN(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 (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 let indexSize = 1\n let arrLength = arr.length\n let 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 let i\n if (dir) {\n let 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 let found = true\n for (let 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 const 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 const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(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 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 } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const 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 let 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 case 'latin1':\n case 'binary':\n return asciiWrite(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 const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let 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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const 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 let res = ''\n let 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 let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; 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 const 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 const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\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 =\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 let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\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 let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\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.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\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 let val = this[offset]\n let mul = 1\n let 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 let i = byteLength\n let mul = 1\n let 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 offset = offset >>> 0\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 offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let 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 =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let 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 =\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 this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\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 this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let 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 const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let 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 (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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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 value = +value\n offset = offset >>> 0\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 value = +value\n offset = offset >>> 0\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 (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\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('Index out of range')\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 const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\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 (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 if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\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 let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().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 utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let 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 const byteArray = []\n for (let 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 let c, hi, lo\n const byteArray = []\n for (let 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 let i\n for (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\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","/*! 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","Prism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n","/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new \n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { defineComponent, h } from 'vue';\n\nimport './styles.css';\nconst KEYCODE_ENTER = 13;\nconst KEYCODE_TAB = 9;\nconst KEYCODE_BACKSPACE = 8;\nconst KEYCODE_Y = 89;\nconst KEYCODE_Z = 90;\nconst KEYCODE_M = 77;\nconst KEYCODE_PARENS = 57;\nconst KEYCODE_BRACKETS = 219;\nconst KEYCODE_QUOTE = 222;\nconst KEYCODE_BACK_QUOTE = 192;\nconst KEYCODE_ESCAPE = 27;\n\nconst HISTORY_LIMIT = 100;\nconst HISTORY_TIME_GAP = 3000;\n\nconst isWindows = typeof window !== 'undefined' && navigator && /Win/i.test(navigator.platform);\nconst isMacLike = typeof window !== 'undefined' && navigator && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n\nexport interface EditorProps {\n lineNumbers: boolean;\n autoStyleLineNumbers: boolean;\n readonly: boolean;\n value: string;\n highlight: () => string;\n tabSize: number;\n insertSpaces: boolean;\n ignoreTabKey: boolean;\n placeholder: string;\n}\nexport interface Record {\n value: string;\n selectionStart: number;\n selectionEnd: number;\n}\n\nexport interface History {\n stack: Array;\n offset: number;\n}\n\nexport const PrismEditor = defineComponent({\n props: {\n lineNumbers: {\n type: Boolean,\n default: false,\n },\n autoStyleLineNumbers: {\n type: Boolean,\n default: true,\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n modelValue: {\n type: String,\n default: '',\n },\n highlight: {\n type: Function,\n required: true,\n },\n tabSize: {\n type: Number,\n default: 2,\n },\n insertSpaces: {\n type: Boolean,\n default: true,\n },\n ignoreTabKey: {\n type: Boolean,\n default: false,\n },\n placeholder: {\n type: String,\n default: '',\n },\n },\n data() {\n return {\n capture: true,\n history: {\n stack: [],\n offset: -1,\n } as History,\n lineNumbersHeight: '20px',\n codeData: '',\n };\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal: string): void {\n if (!newVal) {\n this.codeData = '';\n } else {\n this.codeData = newVal;\n }\n },\n },\n content: {\n immediate: true,\n handler(): void {\n if (this.lineNumbers) {\n this.$nextTick(() => {\n this.setLineNumbersHeight();\n });\n }\n },\n },\n lineNumbers(): void {\n this.$nextTick(() => {\n this.styleLineNumbers();\n this.setLineNumbersHeight();\n });\n },\n },\n computed: {\n isEmpty(): boolean {\n return this.codeData.length === 0;\n },\n content(): string {\n const result = this.highlight(this.codeData) + '
';\n // todo: VNode support?\n return result;\n },\n lineNumbersCount(): number {\n const totalLines = this.codeData.split(/\\r\\n|\\n/).length;\n return totalLines;\n },\n },\n mounted() {\n this._recordCurrentState();\n this.styleLineNumbers();\n },\n\n methods: {\n setLineNumbersHeight(): void {\n this.lineNumbersHeight = getComputedStyle(this.$refs.pre as HTMLTextAreaElement).height;\n },\n styleLineNumbers(): void {\n if (!this.lineNumbers || !this.autoStyleLineNumbers) return;\n\n const $editor = this.$refs.pre as HTMLTextAreaElement;\n const $lineNumbers: HTMLDivElement | null = this.$el.querySelector('.prism-editor__line-numbers');\n const editorStyles = window.getComputedStyle($editor);\n\n this.$nextTick(() => {\n const btlr: any = 'border-top-left-radius';\n const bblr: any = 'border-bottom-left-radius';\n if (!$lineNumbers) return;\n $lineNumbers.style[btlr] = editorStyles[btlr];\n $lineNumbers.style[bblr] = editorStyles[bblr];\n $editor.style[btlr] = '0';\n $editor.style[bblr] = '0';\n\n const stylesList = ['background-color', 'margin-top', 'padding-top', 'font-family', 'font-size', 'line-height'];\n stylesList.forEach((style: any) => {\n $lineNumbers.style[style] = editorStyles[style];\n });\n $lineNumbers.style['margin-bottom' as any] = '-' + editorStyles['padding-top' as any];\n });\n },\n _recordCurrentState(): void {\n const input = this.$refs.textarea as HTMLTextAreaElement;\n\n if (!input) return;\n // Save current state of the input\n const { value, selectionStart, selectionEnd } = input;\n\n this._recordChange({\n value,\n selectionStart,\n selectionEnd,\n });\n },\n _getLines(text: string, position: number): Array {\n return text.substring(0, position).split('\\n');\n },\n _applyEdits(record: Record): void {\n // Save last selection state\n const input = this.$refs.textarea as HTMLTextAreaElement;\n const last = this.history.stack[this.history.offset];\n\n if (last && input) {\n this.history.stack[this.history.offset] = {\n ...last,\n selectionStart: input.selectionStart,\n selectionEnd: input.selectionEnd,\n };\n }\n\n // Save the changes\n this._recordChange(record);\n this._updateInput(record);\n },\n _recordChange(record: Record, overwrite = false): void {\n const { stack, offset } = this.history;\n\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n this.history.stack = stack.slice(0, offset + 1);\n\n // Limit the number of operations to 100\n const count = this.history.stack.length;\n\n if (count > HISTORY_LIMIT) {\n const extras = count - HISTORY_LIMIT;\n\n this.history.stack = stack.slice(extras, count);\n this.history.offset = Math.max(this.history.offset - extras, 0);\n }\n }\n\n const timestamp = Date.now();\n\n if (overwrite) {\n const last = this.history.stack[this.history.offset];\n\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n // A previous entry exists and was in short interval\n\n // Match the last word in the line\n const re = /[^a-z0-9]([a-z0-9]+)$/i;\n\n // Get the previous line\n const previous = this._getLines(last.value, last.selectionStart).pop()?.match(re);\n\n // Get the current line\n const current = this._getLines(record.value, record.selectionStart).pop()?.match(re);\n\n if (previous && current && current[1].startsWith(previous[1])) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n this.history.stack[this.history.offset] = {\n ...record,\n timestamp,\n };\n\n return;\n }\n }\n }\n\n // Add the new operation to the stack\n this.history.stack.push({ ...record, timestamp });\n this.history.offset++;\n },\n\n _updateInput(record: Record): void {\n const input = this.$refs.textarea as HTMLTextAreaElement;\n\n if (!input) return;\n\n // Update values and selection state\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n\n this.$emit('update:modelValue', record.value);\n // this.props.onValueChange(record.value);\n },\n handleChange(e: KeyboardEvent): void {\n const { value, selectionStart, selectionEnd } = e.target as HTMLTextAreaElement;\n\n this._recordChange(\n {\n value,\n selectionStart,\n selectionEnd,\n },\n true\n );\n this.$emit('update:modelValue', value);\n // this.props.onValueChange(value);\n },\n _undoEdit(): void {\n const { stack, offset } = this.history;\n\n // Get the previous edit\n const record = stack[offset - 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n this.history.offset = Math.max(offset - 1, 0);\n }\n },\n _redoEdit(): void {\n const { stack, offset } = this.history;\n\n // Get the next edit\n const record = stack[offset + 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n this.history.offset = Math.min(offset + 1, stack.length - 1);\n }\n },\n handleKeyDown(e: KeyboardEvent): void {\n // console.log(navigator.platform);\n const { tabSize, insertSpaces, ignoreTabKey } = this;\n\n // onKeyDown(e);\n this.$emit('keydown', e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (e.keyCode === KEYCODE_ESCAPE) {\n (e.target).blur();\n this.$emit('blur', e);\n }\n\n const { value, selectionStart, selectionEnd } = e.target as HTMLTextAreaElement;\n\n const tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n\n if (e.keyCode === KEYCODE_TAB && !ignoreTabKey && this.capture) {\n // Prevent focus change\n e.preventDefault();\n\n if (e.shiftKey) {\n // Unindent selected lines\n const linesBeforeCaret = this._getLines(value, selectionStart);\n const startLine = linesBeforeCaret.length - 1;\n const endLine = this._getLines(value, selectionEnd).length - 1;\n const nextValue = value\n .split('\\n')\n .map((line, i) => {\n if (i >= startLine && i <= endLine && line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n\n return line;\n })\n .join('\\n');\n\n if (value !== nextValue) {\n const startLineText = linesBeforeCaret[startLine];\n\n this._applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: startLineText.startsWith(tabCharacter)\n ? selectionStart - tabCharacter.length\n : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length),\n });\n }\n } else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n const linesBeforeCaret = this._getLines(value, selectionStart);\n const startLine = linesBeforeCaret.length - 1;\n const endLine = this._getLines(value, selectionEnd).length - 1;\n const startLineText = linesBeforeCaret[startLine];\n\n this._applyEdits({\n value: value\n .split('\\n')\n .map((line, i) => {\n if (i >= startLine && i <= endLine) {\n return tabCharacter + line;\n }\n\n return line;\n })\n .join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: /\\S/.test(startLineText) ? selectionStart + tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (endLine - startLine + 1),\n });\n } else {\n const updatedSelection = selectionStart + tabCharacter.length;\n\n this._applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) + tabCharacter + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n } else if (e.keyCode === KEYCODE_BACKSPACE) {\n const hasSelection = selectionStart !== selectionEnd;\n const textBeforeCaret = value.substring(0, selectionStart);\n\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n\n const updatedSelection = selectionStart - tabCharacter.length;\n\n this._applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n } else if (e.keyCode === KEYCODE_ENTER) {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n const line = this._getLines(value, selectionStart).pop();\n const matches = line?.match(/^\\s+/);\n\n if (matches && matches[0]) {\n e.preventDefault();\n\n // Preserve indentation on inserting a new line\n const indent = '\\n' + matches[0];\n const updatedSelection = selectionStart + indent.length;\n\n this._applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) + indent + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n } else if (\n e.keyCode === KEYCODE_PARENS ||\n e.keyCode === KEYCODE_BRACKETS ||\n e.keyCode === KEYCODE_QUOTE ||\n e.keyCode === KEYCODE_BACK_QUOTE\n ) {\n let chars;\n\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n } else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n } else {\n chars = ['[', ']'];\n }\n } else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n } else {\n chars = [\"'\", \"'\"];\n }\n } else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n }\n\n // console.log(isMacLike, \"navigator\" in global && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform));\n\n // If text is selected, wrap them in the characters\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n\n this._applyEdits({\n value:\n value.substring(0, selectionStart) +\n chars[0] +\n value.substring(selectionStart, selectionEnd) +\n chars[1] +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart,\n selectionEnd: selectionEnd + 2,\n });\n }\n } else if (\n (isMacLike\n ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z\n : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) &&\n !e.shiftKey &&\n !e.altKey\n ) {\n e.preventDefault();\n\n this._undoEdit();\n } else if (\n (isMacLike\n ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey\n : isWindows\n ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y\n : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) &&\n !e.altKey\n ) {\n e.preventDefault();\n\n this._redoEdit();\n } else if (e.keyCode === KEYCODE_M && e.ctrlKey && (isMacLike ? e.shiftKey : true)) {\n e.preventDefault();\n\n // Toggle capturing tab key so users can focus away\n this.capture = !this.capture;\n }\n },\n },\n render() {\n const lineNumberWidthCalculator = h(\n 'div',\n {\n class: 'prism-editor__line-width-calc',\n style: 'height: 0px; visibility: hidden; pointer-events: none;',\n },\n '999'\n );\n const lineNumbers = h(\n 'div',\n {\n class: 'prism-editor__line-numbers',\n style: {\n 'min-height': this.lineNumbersHeight,\n },\n 'aria-hidden': 'true',\n },\n [\n lineNumberWidthCalculator,\n Array.from(Array(this.lineNumbersCount).keys()).map((_, index) => {\n return h('div', { class: 'prism-editor__line-number token comment' }, `${++index}`);\n }),\n ]\n );\n\n const textarea = h('textarea', {\n ref: 'textarea',\n onInput: this.handleChange,\n onKeydown: this.handleKeyDown,\n onClick: ($event: MouseEvent) => {\n this.$emit('click', $event);\n },\n onKeyup: ($event: KeyboardEvent) => {\n this.$emit('keyup', $event);\n },\n onFocus: ($event: FocusEvent) => {\n this.$emit('focus', $event);\n },\n onBlur: ($event: FocusEvent) => {\n this.$emit('blur', $event);\n },\n class: {\n 'prism-editor__textarea': true,\n 'prism-editor__textarea--empty': this.isEmpty,\n },\n spellCheck: 'false',\n autocapitalize: 'off',\n autocomplete: 'off',\n autocorrect: 'off',\n 'data-gramm': 'false',\n placeholder: this.placeholder,\n 'data-testid': 'textarea',\n readonly: this.readonly,\n value: this.codeData,\n });\n const preview = h('pre', {\n ref: 'pre',\n class: 'prism-editor__editor',\n 'data-testid': 'preview',\n innerHTML: this.content,\n });\n const editorContainer = h('div', { class: 'prism-editor__container' }, [textarea, preview]);\n return h('div', { class: 'prism-editor-wrapper' }, [this.lineNumbers && lineNumbers, editorContainer]);\n },\n});\n","\n\n\n\n\n","import { render } from \"./header.vue?vue&type=template&id=309c6d29\"\nimport script from \"./header.vue?vue&type=script&lang=js\"\nexport * from \"./header.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport en from './en';\n\nconst lang = 'en';\nconst packs = { en };\n\nexport default packs[lang];\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport templates from './templates';\n\nexport default { templates };\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport footer from './footer';\nimport landing from './landing';\n\nexport default { footer, landing };\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nexport default {\n backToTop: 'Back To Top',\n};\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nexport default {\n github: 'View this tool on GitHub',\n};\n","\n\n\n\n\n","import { render } from \"./external_link.vue?vue&type=template&id=79fd939c\"\nimport script from \"./external_link.vue?vue&type=script&lang=js\"\nexport * from \"./external_link.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Parses URL's from data.\nexport default text => {\n const matchRegex = /{link\\|([^|]+)\\|([^|]+)}/;\n const items = [];\n for (;;) {\n const match = text.match(matchRegex);\n if (!match) break;\n const splitByMatch = text.split(match[0]);\n items.push(splitByMatch[0]);\n items.push([match[1], match[2]]);\n text = splitByMatch[1];\n }\n items.push(text);\n return items;\n};\n","import { render } from \"./footer.vue?vue&type=template&id=e740372e\"\nimport script from \"./footer.vue?vue&type=script&lang=js\"\nexport * from \"./footer.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./PrettyInput.vue?vue&type=template&id=75ce80d5\"\nimport script from \"./PrettyInput.vue?vue&type=script&lang=js\"\nexport * from \"./PrettyInput.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./pretty_input.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./pretty_input.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./pretty_check.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./pretty_check.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\n\"use strict\";\n\nimport { AST_Node } from \"../ast.js\";\n\nfunction characters(str) {\n return str.split(\"\");\n}\n\nfunction member(name, array) {\n return array.includes(name);\n}\n\nclass DefaultsError extends Error {\n constructor(msg, defs) {\n super();\n\n this.name = \"DefaultsError\";\n this.message = msg;\n this.defs = defs;\n }\n}\n\nfunction defaults(args, defs, croak) {\n if (args === true) {\n args = {};\n } else if (args != null && typeof args === \"object\") {\n args = {...args};\n }\n\n const ret = args || {};\n\n if (croak) for (const i in ret) if (HOP(ret, i) && !HOP(defs, i)) {\n throw new DefaultsError(\"`\" + i + \"` is not a supported option\", defs);\n }\n\n for (const i in defs) if (HOP(defs, i)) {\n if (!args || !HOP(args, i)) {\n ret[i] = defs[i];\n } else if (i === \"ecma\") {\n let ecma = args[i] | 0;\n if (ecma > 5 && ecma < 2015) ecma += 2009;\n ret[i] = ecma;\n } else {\n ret[i] = (args && HOP(args, i)) ? args[i] : defs[i];\n }\n }\n\n return ret;\n}\n\nfunction noop() {}\nfunction return_false() { return false; }\nfunction return_true() { return true; }\nfunction return_this() { return this; }\nfunction return_null() { return null; }\n\nvar MAP = (function() {\n function MAP(a, tw, allow_splicing = true) {\n const new_a = [];\n\n for (let i = 0; i < a.length; ++i) {\n let item = a[i];\n let ret = item.transform(tw, allow_splicing);\n\n if (ret instanceof AST_Node) {\n new_a.push(ret);\n } else if (ret instanceof Splice) {\n new_a.push(...ret.v);\n }\n }\n\n return new_a;\n }\n\n MAP.splice = function(val) { return new Splice(val); };\n MAP.skip = {};\n function Splice(val) { this.v = val; }\n return MAP;\n})();\n\nfunction make_node(ctor, orig, props) {\n if (!props) props = {};\n if (orig) {\n if (!props.start) props.start = orig.start;\n if (!props.end) props.end = orig.end;\n }\n return new ctor(props);\n}\n\nfunction push_uniq(array, el) {\n if (!array.includes(el))\n array.push(el);\n}\n\nfunction string_template(text, props) {\n return text.replace(/{(.+?)}/g, function(str, p) {\n return props && props[p];\n });\n}\n\nfunction remove(array, el) {\n for (var i = array.length; --i >= 0;) {\n if (array[i] === el) array.splice(i, 1);\n }\n}\n\nfunction mergeSort(array, cmp) {\n if (array.length < 2) return array.slice();\n function merge(a, b) {\n var r = [], ai = 0, bi = 0, i = 0;\n while (ai < a.length && bi < b.length) {\n cmp(a[ai], b[bi]) <= 0\n ? r[i++] = a[ai++]\n : r[i++] = b[bi++];\n }\n if (ai < a.length) r.push.apply(r, a.slice(ai));\n if (bi < b.length) r.push.apply(r, b.slice(bi));\n return r;\n }\n function _ms(a) {\n if (a.length <= 1)\n return a;\n var m = Math.floor(a.length / 2), left = a.slice(0, m), right = a.slice(m);\n left = _ms(left);\n right = _ms(right);\n return merge(left, right);\n }\n return _ms(array);\n}\n\nfunction makePredicate(words) {\n if (!Array.isArray(words)) words = words.split(\" \");\n\n return new Set(words.sort());\n}\n\nfunction map_add(map, key, value) {\n if (map.has(key)) {\n map.get(key).push(value);\n } else {\n map.set(key, [ value ]);\n }\n}\n\nfunction map_from_object(obj) {\n var map = new Map();\n for (var key in obj) {\n if (HOP(obj, key) && key.charAt(0) === \"$\") {\n map.set(key.substr(1), obj[key]);\n }\n }\n return map;\n}\n\nfunction map_to_object(map) {\n var obj = Object.create(null);\n map.forEach(function (value, key) {\n obj[\"$\" + key] = value;\n });\n return obj;\n}\n\nfunction HOP(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nfunction keep_name(keep_setting, name) {\n return keep_setting === true\n || (keep_setting instanceof RegExp && keep_setting.test(name));\n}\n\nvar lineTerminatorEscape = {\n \"\\0\": \"0\",\n \"\\n\": \"n\",\n \"\\r\": \"r\",\n \"\\u2028\": \"u2028\",\n \"\\u2029\": \"u2029\",\n};\nfunction regexp_source_fix(source) {\n // V8 does not escape line terminators in regexp patterns in node 12\n // We'll also remove literal \\0\n return source.replace(/[\\0\\n\\r\\u2028\\u2029]/g, function (match, offset) {\n var escaped = source[offset - 1] == \"\\\\\"\n && (source[offset - 2] != \"\\\\\"\n || /(?:^|[^\\\\])(?:\\\\{2})*$/.test(source.slice(0, offset - 1)));\n return (escaped ? \"\" : \"\\\\\") + lineTerminatorEscape[match];\n });\n}\n\n// Subset of regexps that is not going to cause regexp based DDOS\n// https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS\nconst re_safe_regexp = /^[\\\\/|\\0\\s\\w^$.[\\]()]*$/;\n\n/** Check if the regexp is safe for Terser to create without risking a RegExp DOS */\nexport const regexp_is_safe = (source) => re_safe_regexp.test(source);\n\nconst all_flags = \"dgimsuyv\";\nfunction sort_regexp_flags(flags) {\n const existing_flags = new Set(flags.split(\"\"));\n let out = \"\";\n for (const flag of all_flags) {\n if (existing_flags.has(flag)) {\n out += flag;\n existing_flags.delete(flag);\n }\n }\n if (existing_flags.size) {\n // Flags Terser doesn't know about\n existing_flags.forEach(flag => { out += flag; });\n }\n return out;\n}\n\nfunction has_annotation(node, annotation) {\n return node._annotations & annotation;\n}\n\nfunction set_annotation(node, annotation) {\n node._annotations |= annotation;\n}\n\nfunction clear_annotation(node, annotation) {\n node._annotations &= ~annotation;\n}\n\nexport {\n characters,\n defaults,\n HOP,\n keep_name,\n make_node,\n makePredicate,\n map_add,\n map_from_object,\n map_to_object,\n MAP,\n member,\n mergeSort,\n noop,\n push_uniq,\n regexp_source_fix,\n remove,\n return_false,\n return_null,\n return_this,\n return_true,\n sort_regexp_flags,\n string_template,\n has_annotation,\n set_annotation,\n clear_annotation,\n};\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n Parser based on parse-js (http://marijn.haverbeke.nl/parse-js/).\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\n\"use strict\";\n\nimport {\n characters,\n defaults,\n makePredicate,\n set_annotation,\n} from \"./utils/index.js\";\nimport {\n AST_Accessor,\n AST_Array,\n AST_Arrow,\n AST_Assign,\n AST_Await,\n AST_BigInt,\n AST_Binary,\n AST_BlockStatement,\n AST_Break,\n AST_Call,\n AST_Case,\n AST_Catch,\n AST_Chain,\n AST_ClassExpression,\n AST_ClassPrivateProperty,\n AST_ClassProperty,\n AST_ClassStaticBlock,\n AST_ConciseMethod,\n AST_PrivateIn,\n AST_PrivateGetter,\n AST_PrivateMethod,\n AST_PrivateSetter,\n AST_Conditional,\n AST_Const,\n AST_Continue,\n AST_Debugger,\n AST_Default,\n AST_DefaultAssign,\n AST_DefClass,\n AST_Definitions,\n AST_Defun,\n AST_Destructuring,\n AST_Directive,\n AST_Do,\n AST_Dot,\n AST_DotHash,\n AST_EmptyStatement,\n AST_Expansion,\n AST_Export,\n AST_False,\n AST_Finally,\n AST_For,\n AST_ForIn,\n AST_ForOf,\n AST_Function,\n AST_Hole,\n AST_If,\n AST_Import,\n AST_ImportMeta,\n AST_IterationStatement,\n AST_Label,\n AST_LabeledStatement,\n AST_LabelRef,\n AST_Let,\n AST_NameMapping,\n AST_New,\n AST_NewTarget,\n AST_Node,\n AST_Null,\n AST_Number,\n AST_Object,\n AST_ObjectGetter,\n AST_ObjectKeyVal,\n AST_ObjectProperty,\n AST_ObjectSetter,\n AST_PrefixedTemplateString,\n AST_PropAccess,\n AST_RegExp,\n AST_Return,\n AST_Sequence,\n AST_SimpleStatement,\n AST_String,\n AST_Sub,\n AST_Super,\n AST_Switch,\n AST_SymbolCatch,\n AST_SymbolClass,\n AST_SymbolClassProperty,\n AST_SymbolConst,\n AST_SymbolDeclaration,\n AST_SymbolDefClass,\n AST_SymbolDefun,\n AST_SymbolExport,\n AST_SymbolExportForeign,\n AST_SymbolFunarg,\n AST_SymbolImport,\n AST_SymbolImportForeign,\n AST_SymbolLambda,\n AST_SymbolLet,\n AST_SymbolMethod,\n AST_SymbolRef,\n AST_SymbolVar,\n AST_TemplateSegment,\n AST_TemplateString,\n AST_This,\n AST_SymbolPrivateProperty,\n AST_Throw,\n AST_Token,\n AST_Toplevel,\n AST_True,\n AST_Try,\n AST_TryBlock,\n AST_UnaryPostfix,\n AST_UnaryPrefix,\n AST_Var,\n AST_VarDef,\n AST_While,\n AST_With,\n AST_Yield,\n _INLINE,\n _NOINLINE,\n _PURE,\n _KEY,\n _MANGLEPROP,\n} from \"./ast.js\";\n\nvar LATEST_RAW = \"\"; // Only used for numbers and template strings\nvar TEMPLATE_RAWS = new Map(); // Raw template strings\n\nvar KEYWORDS = \"break case catch class const continue debugger default delete do else export extends finally for function if in instanceof let new return switch throw try typeof var void while with\";\nvar KEYWORDS_ATOM = \"false null true\";\nvar RESERVED_WORDS = \"enum import super this \" + KEYWORDS_ATOM + \" \" + KEYWORDS;\nvar ALL_RESERVED_WORDS = \"implements interface package private protected public static \" + RESERVED_WORDS;\nvar KEYWORDS_BEFORE_EXPRESSION = \"return new delete throw else case yield await\";\n\nKEYWORDS = makePredicate(KEYWORDS);\nRESERVED_WORDS = makePredicate(RESERVED_WORDS);\nKEYWORDS_BEFORE_EXPRESSION = makePredicate(KEYWORDS_BEFORE_EXPRESSION);\nKEYWORDS_ATOM = makePredicate(KEYWORDS_ATOM);\nALL_RESERVED_WORDS = makePredicate(ALL_RESERVED_WORDS);\n\nvar OPERATOR_CHARS = makePredicate(characters(\"+-*&%=<>!?|~^\"));\n\nvar RE_NUM_LITERAL = /[0-9a-f]/i;\nvar RE_HEX_NUMBER = /^0x[0-9a-f]+$/i;\nvar RE_OCT_NUMBER = /^0[0-7]+$/;\nvar RE_ES6_OCT_NUMBER = /^0o[0-7]+$/i;\nvar RE_BIN_NUMBER = /^0b[01]+$/i;\nvar RE_DEC_NUMBER = /^\\d*\\.?\\d*(?:e[+-]?\\d*(?:\\d\\.?|\\.?\\d)\\d*)?$/i;\nvar RE_BIG_INT = /^(0[xob])?[0-9a-f]+n$/i;\n\nvar OPERATORS = makePredicate([\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"new\",\n \"void\",\n \"delete\",\n \"++\",\n \"--\",\n \"+\",\n \"-\",\n \"!\",\n \"~\",\n \"&\",\n \"|\",\n \"^\",\n \"*\",\n \"**\",\n \"/\",\n \"%\",\n \">>\",\n \"<<\",\n \">>>\",\n \"<\",\n \">\",\n \"<=\",\n \">=\",\n \"==\",\n \"===\",\n \"!=\",\n \"!==\",\n \"?\",\n \"=\",\n \"+=\",\n \"-=\",\n \"||=\",\n \"&&=\",\n \"??=\",\n \"/=\",\n \"*=\",\n \"**=\",\n \"%=\",\n \">>=\",\n \"<<=\",\n \">>>=\",\n \"|=\",\n \"^=\",\n \"&=\",\n \"&&\",\n \"??\",\n \"||\",\n]);\n\nvar WHITESPACE_CHARS = makePredicate(characters(\" \\u00a0\\n\\r\\t\\f\\u000b\\u200b\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\uFEFF\"));\n\nvar NEWLINE_CHARS = makePredicate(characters(\"\\n\\r\\u2028\\u2029\"));\n\nvar PUNC_AFTER_EXPRESSION = makePredicate(characters(\";]),:\"));\n\nvar PUNC_BEFORE_EXPRESSION = makePredicate(characters(\"[{(,;:\"));\n\nvar PUNC_CHARS = makePredicate(characters(\"[]{}(),;:\"));\n\n/* -----[ Tokenizer ]----- */\n\n// surrogate safe regexps adapted from https://github.com/mathiasbynens/unicode-8.0.0/tree/89b412d8a71ecca9ed593d9e9fa073ab64acfebe/Binary_Property\nvar UNICODE = {\n ID_Start: /[$A-Z_a-z\\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]/,\n ID_Continue: /(?:[$0-9A-Z_a-z\\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])+/,\n};\n\ntry {\n UNICODE = {\n // https://262.ecma-international.org/13.0/#prod-IdentifierStartChar\n // $, _, ID_Start\n ID_Start: new RegExp(\"[_$\\\\p{ID_Start}]\", \"u\"),\n // https://262.ecma-international.org/13.0/#prod-IdentifierPartChar\n // $, zero-width-joiner, zero-width-non-joiner, ID_Continue\n ID_Continue: new RegExp(\"[$\\\\u200C\\\\u200D\\\\p{ID_Continue}]+\", \"u\"),\n };\n} catch(e) {\n // Could not use modern JS \\p{...}. UNICODE is already defined above so let's continue\n}\n\nfunction get_full_char(str, pos) {\n if (is_surrogate_pair_head(str.charCodeAt(pos))) {\n if (is_surrogate_pair_tail(str.charCodeAt(pos + 1))) {\n return str.charAt(pos) + str.charAt(pos + 1);\n }\n } else if (is_surrogate_pair_tail(str.charCodeAt(pos))) {\n if (is_surrogate_pair_head(str.charCodeAt(pos - 1))) {\n return str.charAt(pos - 1) + str.charAt(pos);\n }\n }\n return str.charAt(pos);\n}\n\nfunction get_full_char_code(str, pos) {\n // https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\n if (is_surrogate_pair_head(str.charCodeAt(pos))) {\n return 0x10000 + (str.charCodeAt(pos) - 0xd800 << 10) + str.charCodeAt(pos + 1) - 0xdc00;\n }\n return str.charCodeAt(pos);\n}\n\nfunction get_full_char_length(str) {\n var surrogates = 0;\n\n for (var i = 0; i < str.length; i++) {\n if (is_surrogate_pair_head(str.charCodeAt(i)) && is_surrogate_pair_tail(str.charCodeAt(i + 1))) {\n surrogates++;\n i++;\n }\n }\n\n return str.length - surrogates;\n}\n\nfunction from_char_code(code) {\n // Based on https://github.com/mathiasbynens/String.fromCodePoint/blob/master/fromcodepoint.js\n if (code > 0xFFFF) {\n code -= 0x10000;\n return (String.fromCharCode((code >> 10) + 0xD800) +\n String.fromCharCode((code % 0x400) + 0xDC00));\n }\n return String.fromCharCode(code);\n}\n\nfunction is_surrogate_pair_head(code) {\n return code >= 0xd800 && code <= 0xdbff;\n}\n\nfunction is_surrogate_pair_tail(code) {\n return code >= 0xdc00 && code <= 0xdfff;\n}\n\nfunction is_digit(code) {\n return code >= 48 && code <= 57;\n}\n\nfunction is_identifier_start(ch) {\n return UNICODE.ID_Start.test(ch);\n}\n\nfunction is_identifier_char(ch) {\n return UNICODE.ID_Continue.test(ch);\n}\n\nconst BASIC_IDENT = /^[a-z_$][a-z0-9_$]*$/i;\n\nfunction is_basic_identifier_string(str) {\n return BASIC_IDENT.test(str);\n}\n\nfunction is_identifier_string(str, allow_surrogates) {\n if (BASIC_IDENT.test(str)) {\n return true;\n }\n if (!allow_surrogates && /[\\ud800-\\udfff]/.test(str)) {\n return false;\n }\n var match = UNICODE.ID_Start.exec(str);\n if (!match || match.index !== 0) {\n return false;\n }\n\n str = str.slice(match[0].length);\n if (!str) {\n return true;\n }\n\n match = UNICODE.ID_Continue.exec(str);\n return !!match && match[0].length === str.length;\n}\n\nfunction parse_js_number(num, allow_e = true) {\n if (!allow_e && num.includes(\"e\")) {\n return NaN;\n }\n if (RE_HEX_NUMBER.test(num)) {\n return parseInt(num.substr(2), 16);\n } else if (RE_OCT_NUMBER.test(num)) {\n return parseInt(num.substr(1), 8);\n } else if (RE_ES6_OCT_NUMBER.test(num)) {\n return parseInt(num.substr(2), 8);\n } else if (RE_BIN_NUMBER.test(num)) {\n return parseInt(num.substr(2), 2);\n } else if (RE_DEC_NUMBER.test(num)) {\n return parseFloat(num);\n } else {\n var val = parseFloat(num);\n if (val == num) return val;\n }\n}\n\nclass JS_Parse_Error extends Error {\n constructor(message, filename, line, col, pos) {\n super();\n\n this.name = \"SyntaxError\";\n this.message = message;\n this.filename = filename;\n this.line = line;\n this.col = col;\n this.pos = pos;\n }\n}\n\nfunction js_error(message, filename, line, col, pos) {\n throw new JS_Parse_Error(message, filename, line, col, pos);\n}\n\nfunction is_token(token, type, val) {\n return token.type == type && (val == null || token.value == val);\n}\n\nvar EX_EOF = {};\n\nfunction tokenizer($TEXT, filename, html5_comments, shebang) {\n var S = {\n text : $TEXT,\n filename : filename,\n pos : 0,\n tokpos : 0,\n line : 1,\n tokline : 0,\n col : 0,\n tokcol : 0,\n newline_before : false,\n regex_allowed : false,\n brace_counter : 0,\n template_braces : [],\n comments_before : [],\n directives : {},\n directive_stack : []\n };\n\n function peek() { return get_full_char(S.text, S.pos); }\n\n // Used because parsing ?. involves a lookahead for a digit\n function is_option_chain_op() {\n const must_be_dot = S.text.charCodeAt(S.pos + 1) === 46;\n if (!must_be_dot) return false;\n\n const cannot_be_digit = S.text.charCodeAt(S.pos + 2);\n return cannot_be_digit < 48 || cannot_be_digit > 57;\n }\n\n function next(signal_eof, in_string) {\n var ch = get_full_char(S.text, S.pos++);\n if (signal_eof && !ch)\n throw EX_EOF;\n if (NEWLINE_CHARS.has(ch)) {\n S.newline_before = S.newline_before || !in_string;\n ++S.line;\n S.col = 0;\n if (ch == \"\\r\" && peek() == \"\\n\") {\n // treat a \\r\\n sequence as a single \\n\n ++S.pos;\n ch = \"\\n\";\n }\n } else {\n if (ch.length > 1) {\n ++S.pos;\n ++S.col;\n }\n ++S.col;\n }\n return ch;\n }\n\n function forward(i) {\n while (i--) next();\n }\n\n function looking_at(str) {\n return S.text.substr(S.pos, str.length) == str;\n }\n\n function find_eol() {\n var text = S.text;\n for (var i = S.pos, n = S.text.length; i < n; ++i) {\n var ch = text[i];\n if (NEWLINE_CHARS.has(ch))\n return i;\n }\n return -1;\n }\n\n function find(what, signal_eof) {\n var pos = S.text.indexOf(what, S.pos);\n if (signal_eof && pos == -1) throw EX_EOF;\n return pos;\n }\n\n function start_token() {\n S.tokline = S.line;\n S.tokcol = S.col;\n S.tokpos = S.pos;\n }\n\n var prev_was_dot = false;\n var previous_token = null;\n function token(type, value, is_comment) {\n S.regex_allowed = ((type == \"operator\" && !UNARY_POSTFIX.has(value)) ||\n (type == \"keyword\" && KEYWORDS_BEFORE_EXPRESSION.has(value)) ||\n (type == \"punc\" && PUNC_BEFORE_EXPRESSION.has(value))) ||\n (type == \"arrow\");\n if (type == \"punc\" && (value == \".\" || value == \"?.\")) {\n prev_was_dot = true;\n } else if (!is_comment) {\n prev_was_dot = false;\n }\n const line = S.tokline;\n const col = S.tokcol;\n const pos = S.tokpos;\n const nlb = S.newline_before;\n const file = filename;\n let comments_before = [];\n let comments_after = [];\n\n if (!is_comment) {\n comments_before = S.comments_before;\n comments_after = S.comments_before = [];\n }\n S.newline_before = false;\n const tok = new AST_Token(type, value, line, col, pos, nlb, comments_before, comments_after, file);\n\n if (!is_comment) previous_token = tok;\n return tok;\n }\n\n function skip_whitespace() {\n while (WHITESPACE_CHARS.has(peek()))\n next();\n }\n\n function read_while(pred) {\n var ret = \"\", ch, i = 0;\n while ((ch = peek()) && pred(ch, i++))\n ret += next();\n return ret;\n }\n\n function parse_error(err) {\n js_error(err, filename, S.tokline, S.tokcol, S.tokpos);\n }\n\n function read_num(prefix) {\n var has_e = false, after_e = false, has_x = false, has_dot = prefix == \".\", is_big_int = false, numeric_separator = false;\n var num = read_while(function(ch, i) {\n if (is_big_int) return false;\n\n var code = ch.charCodeAt(0);\n switch (code) {\n case 95: // _\n return (numeric_separator = true);\n case 98: case 66: // bB\n return (has_x = true); // Can occur in hex sequence, don't return false yet\n case 111: case 79: // oO\n case 120: case 88: // xX\n return has_x ? false : (has_x = true);\n case 101: case 69: // eE\n return has_x ? true : has_e ? false : (has_e = after_e = true);\n case 45: // -\n return after_e || (i == 0 && !prefix);\n case 43: // +\n return after_e;\n case (after_e = false, 46): // .\n return (!has_dot && !has_x && !has_e) ? (has_dot = true) : false;\n }\n\n if (ch === \"n\") {\n is_big_int = true;\n\n return true;\n }\n\n return RE_NUM_LITERAL.test(ch);\n });\n if (prefix) num = prefix + num;\n\n LATEST_RAW = num;\n\n if (RE_OCT_NUMBER.test(num) && next_token.has_directive(\"use strict\")) {\n parse_error(\"Legacy octal literals are not allowed in strict mode\");\n }\n if (numeric_separator) {\n if (num.endsWith(\"_\")) {\n parse_error(\"Numeric separators are not allowed at the end of numeric literals\");\n } else if (num.includes(\"__\")) {\n parse_error(\"Only one underscore is allowed as numeric separator\");\n }\n num = num.replace(/_/g, \"\");\n }\n if (num.endsWith(\"n\")) {\n const without_n = num.slice(0, -1);\n const allow_e = RE_HEX_NUMBER.test(without_n);\n const valid = parse_js_number(without_n, allow_e);\n if (!has_dot && RE_BIG_INT.test(num) && !isNaN(valid))\n return token(\"big_int\", without_n);\n parse_error(\"Invalid or unexpected token\");\n }\n var valid = parse_js_number(num);\n if (!isNaN(valid)) {\n return token(\"num\", valid);\n } else {\n parse_error(\"Invalid syntax: \" + num);\n }\n }\n\n function is_octal(ch) {\n return ch >= \"0\" && ch <= \"7\";\n }\n\n function read_escaped_char(in_string, strict_hex, template_string) {\n var ch = next(true, in_string);\n switch (ch.charCodeAt(0)) {\n case 110 : return \"\\n\";\n case 114 : return \"\\r\";\n case 116 : return \"\\t\";\n case 98 : return \"\\b\";\n case 118 : return \"\\u000b\"; // \\v\n case 102 : return \"\\f\";\n case 120 : return String.fromCharCode(hex_bytes(2, strict_hex)); // \\x\n case 117 : // \\u\n if (peek() == \"{\") {\n next(true);\n if (peek() === \"}\")\n parse_error(\"Expecting hex-character between {}\");\n while (peek() == \"0\") next(true); // No significance\n var result, length = find(\"}\", true) - S.pos;\n // Avoid 32 bit integer overflow (1 << 32 === 1)\n // We know first character isn't 0 and thus out of range anyway\n if (length > 6 || (result = hex_bytes(length, strict_hex)) > 0x10FFFF) {\n parse_error(\"Unicode reference out of bounds\");\n }\n next(true);\n return from_char_code(result);\n }\n return String.fromCharCode(hex_bytes(4, strict_hex));\n case 10 : return \"\"; // newline\n case 13 : // \\r\n if (peek() == \"\\n\") { // DOS newline\n next(true, in_string);\n return \"\";\n }\n }\n if (is_octal(ch)) {\n if (template_string && strict_hex) {\n const represents_null_character = ch === \"0\" && !is_octal(peek());\n if (!represents_null_character) {\n parse_error(\"Octal escape sequences are not allowed in template strings\");\n }\n }\n return read_octal_escape_sequence(ch, strict_hex);\n }\n return ch;\n }\n\n function read_octal_escape_sequence(ch, strict_octal) {\n // Read\n var p = peek();\n if (p >= \"0\" && p <= \"7\") {\n ch += next(true);\n if (ch[0] <= \"3\" && (p = peek()) >= \"0\" && p <= \"7\")\n ch += next(true);\n }\n\n // Parse\n if (ch === \"0\") return \"\\0\";\n if (ch.length > 0 && next_token.has_directive(\"use strict\") && strict_octal)\n parse_error(\"Legacy octal escape sequences are not allowed in strict mode\");\n return String.fromCharCode(parseInt(ch, 8));\n }\n\n function hex_bytes(n, strict_hex) {\n var num = 0;\n for (; n > 0; --n) {\n if (!strict_hex && isNaN(parseInt(peek(), 16))) {\n return parseInt(num, 16) || \"\";\n }\n var digit = next(true);\n if (isNaN(parseInt(digit, 16)))\n parse_error(\"Invalid hex-character pattern in string\");\n num += digit;\n }\n return parseInt(num, 16);\n }\n\n var read_string = with_eof_error(\"Unterminated string constant\", function() {\n const start_pos = S.pos;\n var quote = next(), ret = [];\n for (;;) {\n var ch = next(true, true);\n if (ch == \"\\\\\") ch = read_escaped_char(true, true);\n else if (ch == \"\\r\" || ch == \"\\n\") parse_error(\"Unterminated string constant\");\n else if (ch == quote) break;\n ret.push(ch);\n }\n var tok = token(\"string\", ret.join(\"\"));\n LATEST_RAW = S.text.slice(start_pos, S.pos);\n tok.quote = quote;\n return tok;\n });\n\n var read_template_characters = with_eof_error(\"Unterminated template\", function(begin) {\n if (begin) {\n S.template_braces.push(S.brace_counter);\n }\n var content = \"\", raw = \"\", ch, tok;\n next(true, true);\n while ((ch = next(true, true)) != \"`\") {\n if (ch == \"\\r\") {\n if (peek() == \"\\n\") ++S.pos;\n ch = \"\\n\";\n } else if (ch == \"$\" && peek() == \"{\") {\n next(true, true);\n S.brace_counter++;\n tok = token(begin ? \"template_head\" : \"template_substitution\", content);\n TEMPLATE_RAWS.set(tok, raw);\n tok.template_end = false;\n return tok;\n }\n\n raw += ch;\n if (ch == \"\\\\\") {\n var tmp = S.pos;\n var prev_is_tag = previous_token && (previous_token.type === \"name\" || previous_token.type === \"punc\" && (previous_token.value === \")\" || previous_token.value === \"]\"));\n ch = read_escaped_char(true, !prev_is_tag, true);\n raw += S.text.substr(tmp, S.pos - tmp);\n }\n\n content += ch;\n }\n S.template_braces.pop();\n tok = token(begin ? \"template_head\" : \"template_substitution\", content);\n TEMPLATE_RAWS.set(tok, raw);\n tok.template_end = true;\n return tok;\n });\n\n function skip_line_comment(type) {\n var regex_allowed = S.regex_allowed;\n var i = find_eol(), ret;\n if (i == -1) {\n ret = S.text.substr(S.pos);\n S.pos = S.text.length;\n } else {\n ret = S.text.substring(S.pos, i);\n S.pos = i;\n }\n S.col = S.tokcol + (S.pos - S.tokpos);\n S.comments_before.push(token(type, ret, true));\n S.regex_allowed = regex_allowed;\n return next_token;\n }\n\n var skip_multiline_comment = with_eof_error(\"Unterminated multiline comment\", function() {\n var regex_allowed = S.regex_allowed;\n var i = find(\"*/\", true);\n var text = S.text.substring(S.pos, i).replace(/\\r\\n|\\r|\\u2028|\\u2029/g, \"\\n\");\n // update stream position\n forward(get_full_char_length(text) /* text length doesn't count \\r\\n as 2 char while S.pos - i does */ + 2);\n S.comments_before.push(token(\"comment2\", text, true));\n S.newline_before = S.newline_before || text.includes(\"\\n\");\n S.regex_allowed = regex_allowed;\n return next_token;\n });\n\n var read_name = with_eof_error(\"Unterminated identifier name\", function() {\n var name = [], ch, escaped = false;\n var read_escaped_identifier_char = function() {\n escaped = true;\n next();\n if (peek() !== \"u\") {\n parse_error(\"Expecting UnicodeEscapeSequence -- uXXXX or u{XXXX}\");\n }\n return read_escaped_char(false, true);\n };\n\n // Read first character (ID_Start)\n if ((ch = peek()) === \"\\\\\") {\n ch = read_escaped_identifier_char();\n if (!is_identifier_start(ch)) {\n parse_error(\"First identifier char is an invalid identifier char\");\n }\n } else if (is_identifier_start(ch)) {\n next();\n } else {\n return \"\";\n }\n\n name.push(ch);\n\n // Read ID_Continue\n while ((ch = peek()) != null) {\n if ((ch = peek()) === \"\\\\\") {\n ch = read_escaped_identifier_char();\n if (!is_identifier_char(ch)) {\n parse_error(\"Invalid escaped identifier char\");\n }\n } else {\n if (!is_identifier_char(ch)) {\n break;\n }\n next();\n }\n name.push(ch);\n }\n const name_str = name.join(\"\");\n if (RESERVED_WORDS.has(name_str) && escaped) {\n parse_error(\"Escaped characters are not allowed in keywords\");\n }\n return name_str;\n });\n\n var read_regexp = with_eof_error(\"Unterminated regular expression\", function(source) {\n var prev_backslash = false, ch, in_class = false;\n while ((ch = next(true))) if (NEWLINE_CHARS.has(ch)) {\n parse_error(\"Unexpected line terminator\");\n } else if (prev_backslash) {\n source += \"\\\\\" + ch;\n prev_backslash = false;\n } else if (ch == \"[\") {\n in_class = true;\n source += ch;\n } else if (ch == \"]\" && in_class) {\n in_class = false;\n source += ch;\n } else if (ch == \"/\" && !in_class) {\n break;\n } else if (ch == \"\\\\\") {\n prev_backslash = true;\n } else {\n source += ch;\n }\n const flags = read_name();\n return token(\"regexp\", \"/\" + source + \"/\" + flags);\n });\n\n function read_operator(prefix) {\n function grow(op) {\n if (!peek()) return op;\n var bigger = op + peek();\n if (OPERATORS.has(bigger)) {\n next();\n return grow(bigger);\n } else {\n return op;\n }\n }\n return token(\"operator\", grow(prefix || next()));\n }\n\n function handle_slash() {\n next();\n switch (peek()) {\n case \"/\":\n next();\n return skip_line_comment(\"comment1\");\n case \"*\":\n next();\n return skip_multiline_comment();\n }\n return S.regex_allowed ? read_regexp(\"\") : read_operator(\"/\");\n }\n\n function handle_eq_sign() {\n next();\n if (peek() === \">\") {\n next();\n return token(\"arrow\", \"=>\");\n } else {\n return read_operator(\"=\");\n }\n }\n\n function handle_dot() {\n next();\n if (is_digit(peek().charCodeAt(0))) {\n return read_num(\".\");\n }\n if (peek() === \".\") {\n next(); // Consume second dot\n next(); // Consume third dot\n return token(\"expand\", \"...\");\n }\n\n return token(\"punc\", \".\");\n }\n\n function read_word() {\n var word = read_name();\n if (prev_was_dot) return token(\"name\", word);\n return KEYWORDS_ATOM.has(word) ? token(\"atom\", word)\n : !KEYWORDS.has(word) ? token(\"name\", word)\n : OPERATORS.has(word) ? token(\"operator\", word)\n : token(\"keyword\", word);\n }\n\n function read_private_word() {\n next();\n return token(\"privatename\", read_name());\n }\n\n function with_eof_error(eof_error, cont) {\n return function(x) {\n try {\n return cont(x);\n } catch(ex) {\n if (ex === EX_EOF) parse_error(eof_error);\n else throw ex;\n }\n };\n }\n\n function next_token(force_regexp) {\n if (force_regexp != null)\n return read_regexp(force_regexp);\n if (shebang && S.pos == 0 && looking_at(\"#!\")) {\n start_token();\n forward(2);\n skip_line_comment(\"comment5\");\n }\n for (;;) {\n skip_whitespace();\n start_token();\n if (html5_comments) {\n if (looking_at(\"\") && S.newline_before) {\n forward(3);\n skip_line_comment(\"comment4\");\n continue;\n }\n }\n var ch = peek();\n if (!ch) return token(\"eof\");\n var code = ch.charCodeAt(0);\n switch (code) {\n case 34: case 39: return read_string();\n case 46: return handle_dot();\n case 47: {\n var tok = handle_slash();\n if (tok === next_token) continue;\n return tok;\n }\n case 61: return handle_eq_sign();\n case 63: {\n if (!is_option_chain_op()) break; // Handled below\n\n next(); // ?\n next(); // .\n\n return token(\"punc\", \"?.\");\n }\n case 96: return read_template_characters(true);\n case 123:\n S.brace_counter++;\n break;\n case 125:\n S.brace_counter--;\n if (S.template_braces.length > 0\n && S.template_braces[S.template_braces.length - 1] === S.brace_counter)\n return read_template_characters(false);\n break;\n }\n if (is_digit(code)) return read_num();\n if (PUNC_CHARS.has(ch)) return token(\"punc\", next());\n if (OPERATOR_CHARS.has(ch)) return read_operator();\n if (code == 92 || is_identifier_start(ch)) return read_word();\n if (code == 35) return read_private_word();\n break;\n }\n parse_error(\"Unexpected character '\" + ch + \"'\");\n }\n\n next_token.next = next;\n next_token.peek = peek;\n\n next_token.context = function(nc) {\n if (nc) S = nc;\n return S;\n };\n\n next_token.add_directive = function(directive) {\n S.directive_stack[S.directive_stack.length - 1].push(directive);\n\n if (S.directives[directive] === undefined) {\n S.directives[directive] = 1;\n } else {\n S.directives[directive]++;\n }\n };\n\n next_token.push_directives_stack = function() {\n S.directive_stack.push([]);\n };\n\n next_token.pop_directives_stack = function() {\n var directives = S.directive_stack[S.directive_stack.length - 1];\n\n for (var i = 0; i < directives.length; i++) {\n S.directives[directives[i]]--;\n }\n\n S.directive_stack.pop();\n };\n\n next_token.has_directive = function(directive) {\n return S.directives[directive] > 0;\n };\n\n return next_token;\n\n}\n\n/* -----[ Parser (constants) ]----- */\n\nvar UNARY_PREFIX = makePredicate([\n \"typeof\",\n \"void\",\n \"delete\",\n \"--\",\n \"++\",\n \"!\",\n \"~\",\n \"-\",\n \"+\"\n]);\n\nvar UNARY_POSTFIX = makePredicate([ \"--\", \"++\" ]);\n\nvar ASSIGNMENT = makePredicate([ \"=\", \"+=\", \"-=\", \"??=\", \"&&=\", \"||=\", \"/=\", \"*=\", \"**=\", \"%=\", \">>=\", \"<<=\", \">>>=\", \"|=\", \"^=\", \"&=\" ]);\n\nvar LOGICAL_ASSIGNMENT = makePredicate([ \"??=\", \"&&=\", \"||=\" ]);\n\nvar PRECEDENCE = (function(a, ret) {\n for (var i = 0; i < a.length; ++i) {\n var b = a[i];\n for (var j = 0; j < b.length; ++j) {\n ret[b[j]] = i + 1;\n }\n }\n return ret;\n})(\n [\n [\"||\"],\n [\"??\"],\n [\"&&\"],\n [\"|\"],\n [\"^\"],\n [\"&\"],\n [\"==\", \"===\", \"!=\", \"!==\"],\n [\"<\", \">\", \"<=\", \">=\", \"in\", \"instanceof\"],\n [\">>\", \"<<\", \">>>\"],\n [\"+\", \"-\"],\n [\"*\", \"/\", \"%\"],\n [\"**\"]\n ],\n {}\n);\n\nvar ATOMIC_START_TOKEN = makePredicate([ \"atom\", \"num\", \"big_int\", \"string\", \"regexp\", \"name\"]);\n\n/* -----[ Parser ]----- */\n\nfunction parse($TEXT, options) {\n // maps start tokens to count of comments found outside of their parens\n // Example: /* I count */ ( /* I don't */ foo() )\n // Useful because comments_before property of call with parens outside\n // contains both comments inside and outside these parens. Used to find the\n // right #__PURE__ comments for an expression\n const outer_comments_before_counts = new WeakMap();\n\n options = defaults(options, {\n bare_returns : false,\n ecma : null, // Legacy\n expression : false,\n filename : null,\n html5_comments : true,\n module : false,\n shebang : true,\n strict : false,\n toplevel : null,\n }, true);\n\n var S = {\n input : (typeof $TEXT == \"string\"\n ? tokenizer($TEXT, options.filename,\n options.html5_comments, options.shebang)\n : $TEXT),\n token : null,\n prev : null,\n peeked : null,\n in_function : 0,\n in_async : -1,\n in_generator : -1,\n in_directives : true,\n in_loop : 0,\n labels : []\n };\n\n S.token = next();\n\n function is(type, value) {\n return is_token(S.token, type, value);\n }\n\n function peek() { return S.peeked || (S.peeked = S.input()); }\n\n function next() {\n S.prev = S.token;\n\n if (!S.peeked) peek();\n S.token = S.peeked;\n S.peeked = null;\n S.in_directives = S.in_directives && (\n S.token.type == \"string\" || is(\"punc\", \";\")\n );\n return S.token;\n }\n\n function prev() {\n return S.prev;\n }\n\n function croak(msg, line, col, pos) {\n var ctx = S.input.context();\n js_error(msg,\n ctx.filename,\n line != null ? line : ctx.tokline,\n col != null ? col : ctx.tokcol,\n pos != null ? pos : ctx.tokpos);\n }\n\n function token_error(token, msg) {\n croak(msg, token.line, token.col);\n }\n\n function unexpected(token) {\n if (token == null)\n token = S.token;\n token_error(token, \"Unexpected token: \" + token.type + \" (\" + token.value + \")\");\n }\n\n function expect_token(type, val) {\n if (is(type, val)) {\n return next();\n }\n token_error(S.token, \"Unexpected token \" + S.token.type + \" «\" + S.token.value + \"»\" + \", expected \" + type + \" «\" + val + \"»\");\n }\n\n function expect(punc) { return expect_token(\"punc\", punc); }\n\n function has_newline_before(token) {\n return token.nlb || !token.comments_before.every((comment) => !comment.nlb);\n }\n\n function can_insert_semicolon() {\n return !options.strict\n && (is(\"eof\") || is(\"punc\", \"}\") || has_newline_before(S.token));\n }\n\n function is_in_generator() {\n return S.in_generator === S.in_function;\n }\n\n function is_in_async() {\n return S.in_async === S.in_function;\n }\n\n function can_await() {\n return (\n S.in_async === S.in_function\n || S.in_function === 0 && S.input.has_directive(\"use strict\")\n );\n }\n\n function semicolon(optional) {\n if (is(\"punc\", \";\")) next();\n else if (!optional && !can_insert_semicolon()) unexpected();\n }\n\n function parenthesised() {\n expect(\"(\");\n var exp = expression(true);\n expect(\")\");\n return exp;\n }\n\n function embed_tokens(parser) {\n return function _embed_tokens_wrapper(...args) {\n const start = S.token;\n const expr = parser(...args);\n expr.start = start;\n expr.end = prev();\n return expr;\n };\n }\n\n function handle_regexp() {\n if (is(\"operator\", \"/\") || is(\"operator\", \"/=\")) {\n S.peeked = null;\n S.token = S.input(S.token.value.substr(1)); // force regexp\n }\n }\n\n var statement = embed_tokens(function statement(is_export_default, is_for_body, is_if_body) {\n handle_regexp();\n switch (S.token.type) {\n case \"string\":\n if (S.in_directives) {\n var token = peek();\n if (!LATEST_RAW.includes(\"\\\\\")\n && (is_token(token, \"punc\", \";\")\n || is_token(token, \"punc\", \"}\")\n || has_newline_before(token)\n || is_token(token, \"eof\"))) {\n S.input.add_directive(S.token.value);\n } else {\n S.in_directives = false;\n }\n }\n var dir = S.in_directives, stat = simple_statement();\n return dir && stat.body instanceof AST_String ? new AST_Directive(stat.body) : stat;\n case \"template_head\":\n case \"num\":\n case \"big_int\":\n case \"regexp\":\n case \"operator\":\n case \"atom\":\n return simple_statement();\n\n case \"name\":\n case \"privatename\":\n if(is(\"privatename\") && !S.in_class)\n croak(\"Private field must be used in an enclosing class\");\n\n if (S.token.value == \"async\" && is_token(peek(), \"keyword\", \"function\")) {\n next();\n next();\n if (is_for_body) {\n croak(\"functions are not allowed as the body of a loop\");\n }\n return function_(AST_Defun, false, true, is_export_default);\n }\n if (S.token.value == \"import\" && !is_token(peek(), \"punc\", \"(\") && !is_token(peek(), \"punc\", \".\")) {\n next();\n var node = import_statement();\n semicolon();\n return node;\n }\n return is_token(peek(), \"punc\", \":\")\n ? labeled_statement()\n : simple_statement();\n\n case \"punc\":\n switch (S.token.value) {\n case \"{\":\n return new AST_BlockStatement({\n start : S.token,\n body : block_(),\n end : prev()\n });\n case \"[\":\n case \"(\":\n return simple_statement();\n case \";\":\n S.in_directives = false;\n next();\n return new AST_EmptyStatement();\n default:\n unexpected();\n }\n\n case \"keyword\":\n switch (S.token.value) {\n case \"break\":\n next();\n return break_cont(AST_Break);\n\n case \"continue\":\n next();\n return break_cont(AST_Continue);\n\n case \"debugger\":\n next();\n semicolon();\n return new AST_Debugger();\n\n case \"do\":\n next();\n var body = in_loop(statement);\n expect_token(\"keyword\", \"while\");\n var condition = parenthesised();\n semicolon(true);\n return new AST_Do({\n body : body,\n condition : condition\n });\n\n case \"while\":\n next();\n return new AST_While({\n condition : parenthesised(),\n body : in_loop(function() { return statement(false, true); })\n });\n\n case \"for\":\n next();\n return for_();\n\n case \"class\":\n next();\n if (is_for_body) {\n croak(\"classes are not allowed as the body of a loop\");\n }\n if (is_if_body) {\n croak(\"classes are not allowed as the body of an if\");\n }\n return class_(AST_DefClass, is_export_default);\n\n case \"function\":\n next();\n if (is_for_body) {\n croak(\"functions are not allowed as the body of a loop\");\n }\n return function_(AST_Defun, false, false, is_export_default);\n\n case \"if\":\n next();\n return if_();\n\n case \"return\":\n if (S.in_function == 0 && !options.bare_returns)\n croak(\"'return' outside of function\");\n next();\n var value = null;\n if (is(\"punc\", \";\")) {\n next();\n } else if (!can_insert_semicolon()) {\n value = expression(true);\n semicolon();\n }\n return new AST_Return({\n value: value\n });\n\n case \"switch\":\n next();\n return new AST_Switch({\n expression : parenthesised(),\n body : in_loop(switch_body_)\n });\n\n case \"throw\":\n next();\n if (has_newline_before(S.token))\n croak(\"Illegal newline after 'throw'\");\n var value = expression(true);\n semicolon();\n return new AST_Throw({\n value: value\n });\n\n case \"try\":\n next();\n return try_();\n\n case \"var\":\n next();\n var node = var_();\n semicolon();\n return node;\n\n case \"let\":\n next();\n var node = let_();\n semicolon();\n return node;\n\n case \"const\":\n next();\n var node = const_();\n semicolon();\n return node;\n\n case \"with\":\n if (S.input.has_directive(\"use strict\")) {\n croak(\"Strict mode may not include a with statement\");\n }\n next();\n return new AST_With({\n expression : parenthesised(),\n body : statement()\n });\n\n case \"export\":\n if (!is_token(peek(), \"punc\", \"(\")) {\n next();\n var node = export_statement();\n if (is(\"punc\", \";\")) semicolon();\n return node;\n }\n }\n }\n unexpected();\n });\n\n function labeled_statement() {\n var label = as_symbol(AST_Label);\n if (label.name === \"await\" && is_in_async()) {\n token_error(S.prev, \"await cannot be used as label inside async function\");\n }\n if (S.labels.some((l) => l.name === label.name)) {\n // ECMA-262, 12.12: An ECMAScript program is considered\n // syntactically incorrect if it contains a\n // LabelledStatement that is enclosed by a\n // LabelledStatement with the same Identifier as label.\n croak(\"Label \" + label.name + \" defined twice\");\n }\n expect(\":\");\n S.labels.push(label);\n var stat = statement();\n S.labels.pop();\n if (!(stat instanceof AST_IterationStatement)) {\n // check for `continue` that refers to this label.\n // those should be reported as syntax errors.\n // https://github.com/mishoo/UglifyJS2/issues/287\n label.references.forEach(function(ref) {\n if (ref instanceof AST_Continue) {\n ref = ref.label.start;\n croak(\"Continue label `\" + label.name + \"` refers to non-IterationStatement.\",\n ref.line, ref.col, ref.pos);\n }\n });\n }\n return new AST_LabeledStatement({ body: stat, label: label });\n }\n\n function simple_statement(tmp) {\n return new AST_SimpleStatement({ body: (tmp = expression(true), semicolon(), tmp) });\n }\n\n function break_cont(type) {\n var label = null, ldef;\n if (!can_insert_semicolon()) {\n label = as_symbol(AST_LabelRef, true);\n }\n if (label != null) {\n ldef = S.labels.find((l) => l.name === label.name);\n if (!ldef)\n croak(\"Undefined label \" + label.name);\n label.thedef = ldef;\n } else if (S.in_loop == 0)\n croak(type.TYPE + \" not inside a loop or switch\");\n semicolon();\n var stat = new type({ label: label });\n if (ldef) ldef.references.push(stat);\n return stat;\n }\n\n function for_() {\n var for_await_error = \"`for await` invalid in this context\";\n var await_tok = S.token;\n if (await_tok.type == \"name\" && await_tok.value == \"await\") {\n if (!can_await()) {\n token_error(await_tok, for_await_error);\n }\n next();\n } else {\n await_tok = false;\n }\n expect(\"(\");\n var init = null;\n if (!is(\"punc\", \";\")) {\n init =\n is(\"keyword\", \"var\") ? (next(), var_(true)) :\n is(\"keyword\", \"let\") ? (next(), let_(true)) :\n is(\"keyword\", \"const\") ? (next(), const_(true)) :\n expression(true, true);\n var is_in = is(\"operator\", \"in\");\n var is_of = is(\"name\", \"of\");\n if (await_tok && !is_of) {\n token_error(await_tok, for_await_error);\n }\n if (is_in || is_of) {\n if (init instanceof AST_Definitions) {\n if (init.definitions.length > 1)\n token_error(init.start, \"Only one variable declaration allowed in for..in loop\");\n } else if (!(is_assignable(init) || (init = to_destructuring(init)) instanceof AST_Destructuring)) {\n token_error(init.start, \"Invalid left-hand side in for..in loop\");\n }\n next();\n if (is_in) {\n return for_in(init);\n } else {\n return for_of(init, !!await_tok);\n }\n }\n } else if (await_tok) {\n token_error(await_tok, for_await_error);\n }\n return regular_for(init);\n }\n\n function regular_for(init) {\n expect(\";\");\n var test = is(\"punc\", \";\") ? null : expression(true);\n expect(\";\");\n var step = is(\"punc\", \")\") ? null : expression(true);\n expect(\")\");\n return new AST_For({\n init : init,\n condition : test,\n step : step,\n body : in_loop(function() { return statement(false, true); })\n });\n }\n\n function for_of(init, is_await) {\n var lhs = init instanceof AST_Definitions ? init.definitions[0].name : null;\n var obj = expression(true);\n expect(\")\");\n return new AST_ForOf({\n await : is_await,\n init : init,\n name : lhs,\n object : obj,\n body : in_loop(function() { return statement(false, true); })\n });\n }\n\n function for_in(init) {\n var obj = expression(true);\n expect(\")\");\n return new AST_ForIn({\n init : init,\n object : obj,\n body : in_loop(function() { return statement(false, true); })\n });\n }\n\n var arrow_function = function(start, argnames, is_async) {\n if (has_newline_before(S.token)) {\n croak(\"Unexpected newline before arrow (=>)\");\n }\n\n expect_token(\"arrow\", \"=>\");\n\n var body = _function_body(is(\"punc\", \"{\"), false, is_async);\n\n var end =\n body instanceof Array && body.length ? body[body.length - 1].end :\n body instanceof Array ? start :\n body.end;\n\n return new AST_Arrow({\n start : start,\n end : end,\n async : is_async,\n argnames : argnames,\n body : body\n });\n };\n\n var function_ = function(ctor, is_generator_property, is_async, is_export_default) {\n var in_statement = ctor === AST_Defun;\n var is_generator = is(\"operator\", \"*\");\n if (is_generator) {\n next();\n }\n\n var name = is(\"name\") ? as_symbol(in_statement ? AST_SymbolDefun : AST_SymbolLambda) : null;\n if (in_statement && !name) {\n if (is_export_default) {\n ctor = AST_Function;\n } else {\n unexpected();\n }\n }\n\n if (name && ctor !== AST_Accessor && !(name instanceof AST_SymbolDeclaration))\n unexpected(prev());\n\n var args = [];\n var body = _function_body(true, is_generator || is_generator_property, is_async, name, args);\n return new ctor({\n start : args.start,\n end : body.end,\n is_generator: is_generator,\n async : is_async,\n name : name,\n argnames: args,\n body : body\n });\n };\n\n class UsedParametersTracker {\n constructor(is_parameter, strict, duplicates_ok = false) {\n this.is_parameter = is_parameter;\n this.duplicates_ok = duplicates_ok;\n this.parameters = new Set();\n this.duplicate = null;\n this.default_assignment = false;\n this.spread = false;\n this.strict_mode = !!strict;\n }\n add_parameter(token) {\n if (this.parameters.has(token.value)) {\n if (this.duplicate === null) {\n this.duplicate = token;\n }\n this.check_strict();\n } else {\n this.parameters.add(token.value);\n if (this.is_parameter) {\n switch (token.value) {\n case \"arguments\":\n case \"eval\":\n case \"yield\":\n if (this.strict_mode) {\n token_error(token, \"Unexpected \" + token.value + \" identifier as parameter inside strict mode\");\n }\n break;\n default:\n if (RESERVED_WORDS.has(token.value)) {\n unexpected();\n }\n }\n }\n }\n }\n mark_default_assignment(token) {\n if (this.default_assignment === false) {\n this.default_assignment = token;\n }\n }\n mark_spread(token) {\n if (this.spread === false) {\n this.spread = token;\n }\n }\n mark_strict_mode() {\n this.strict_mode = true;\n }\n is_strict() {\n return this.default_assignment !== false || this.spread !== false || this.strict_mode;\n }\n check_strict() {\n if (this.is_strict() && this.duplicate !== null && !this.duplicates_ok) {\n token_error(this.duplicate, \"Parameter \" + this.duplicate.value + \" was used already\");\n }\n }\n }\n\n function parameters(params) {\n var used_parameters = new UsedParametersTracker(true, S.input.has_directive(\"use strict\"));\n\n expect(\"(\");\n\n while (!is(\"punc\", \")\")) {\n var param = parameter(used_parameters);\n params.push(param);\n\n if (!is(\"punc\", \")\")) {\n expect(\",\");\n }\n\n if (param instanceof AST_Expansion) {\n break;\n }\n }\n\n next();\n }\n\n function parameter(used_parameters, symbol_type) {\n var param;\n var expand = false;\n if (used_parameters === undefined) {\n used_parameters = new UsedParametersTracker(true, S.input.has_directive(\"use strict\"));\n }\n if (is(\"expand\", \"...\")) {\n expand = S.token;\n used_parameters.mark_spread(S.token);\n next();\n }\n param = binding_element(used_parameters, symbol_type);\n\n if (is(\"operator\", \"=\") && expand === false) {\n used_parameters.mark_default_assignment(S.token);\n next();\n param = new AST_DefaultAssign({\n start: param.start,\n left: param,\n operator: \"=\",\n right: expression(false),\n end: S.token\n });\n }\n\n if (expand !== false) {\n if (!is(\"punc\", \")\")) {\n unexpected();\n }\n param = new AST_Expansion({\n start: expand,\n expression: param,\n end: expand\n });\n }\n used_parameters.check_strict();\n\n return param;\n }\n\n function binding_element(used_parameters, symbol_type) {\n var elements = [];\n var first = true;\n var is_expand = false;\n var expand_token;\n var first_token = S.token;\n if (used_parameters === undefined) {\n const strict = S.input.has_directive(\"use strict\");\n const duplicates_ok = symbol_type === AST_SymbolVar;\n used_parameters = new UsedParametersTracker(false, strict, duplicates_ok);\n }\n symbol_type = symbol_type === undefined ? AST_SymbolFunarg : symbol_type;\n if (is(\"punc\", \"[\")) {\n next();\n while (!is(\"punc\", \"]\")) {\n if (first) {\n first = false;\n } else {\n expect(\",\");\n }\n\n if (is(\"expand\", \"...\")) {\n is_expand = true;\n expand_token = S.token;\n used_parameters.mark_spread(S.token);\n next();\n }\n if (is(\"punc\")) {\n switch (S.token.value) {\n case \",\":\n elements.push(new AST_Hole({\n start: S.token,\n end: S.token\n }));\n continue;\n case \"]\": // Trailing comma after last element\n break;\n case \"[\":\n case \"{\":\n elements.push(binding_element(used_parameters, symbol_type));\n break;\n default:\n unexpected();\n }\n } else if (is(\"name\")) {\n used_parameters.add_parameter(S.token);\n elements.push(as_symbol(symbol_type));\n } else {\n croak(\"Invalid function parameter\");\n }\n if (is(\"operator\", \"=\") && is_expand === false) {\n used_parameters.mark_default_assignment(S.token);\n next();\n elements[elements.length - 1] = new AST_DefaultAssign({\n start: elements[elements.length - 1].start,\n left: elements[elements.length - 1],\n operator: \"=\",\n right: expression(false),\n end: S.token\n });\n }\n if (is_expand) {\n if (!is(\"punc\", \"]\")) {\n croak(\"Rest element must be last element\");\n }\n elements[elements.length - 1] = new AST_Expansion({\n start: expand_token,\n expression: elements[elements.length - 1],\n end: expand_token\n });\n }\n }\n expect(\"]\");\n used_parameters.check_strict();\n return new AST_Destructuring({\n start: first_token,\n names: elements,\n is_array: true,\n end: prev()\n });\n } else if (is(\"punc\", \"{\")) {\n next();\n while (!is(\"punc\", \"}\")) {\n if (first) {\n first = false;\n } else {\n expect(\",\");\n }\n if (is(\"expand\", \"...\")) {\n is_expand = true;\n expand_token = S.token;\n used_parameters.mark_spread(S.token);\n next();\n }\n if (is(\"name\") && (is_token(peek(), \"punc\") || is_token(peek(), \"operator\")) && [\",\", \"}\", \"=\"].includes(peek().value)) {\n used_parameters.add_parameter(S.token);\n var start = prev();\n var value = as_symbol(symbol_type);\n if (is_expand) {\n elements.push(new AST_Expansion({\n start: expand_token,\n expression: value,\n end: value.end,\n }));\n } else {\n elements.push(new AST_ObjectKeyVal({\n start: start,\n key: value.name,\n value: value,\n end: value.end,\n }));\n }\n } else if (is(\"punc\", \"}\")) {\n continue; // Allow trailing hole\n } else {\n var property_token = S.token;\n var property = as_property_name();\n if (property === null) {\n unexpected(prev());\n } else if (prev().type === \"name\" && !is(\"punc\", \":\")) {\n elements.push(new AST_ObjectKeyVal({\n start: prev(),\n key: property,\n value: new symbol_type({\n start: prev(),\n name: property,\n end: prev()\n }),\n end: prev()\n }));\n } else {\n expect(\":\");\n elements.push(new AST_ObjectKeyVal({\n start: property_token,\n quote: property_token.quote,\n key: property,\n value: binding_element(used_parameters, symbol_type),\n end: prev()\n }));\n }\n }\n if (is_expand) {\n if (!is(\"punc\", \"}\")) {\n croak(\"Rest element must be last element\");\n }\n } else if (is(\"operator\", \"=\")) {\n used_parameters.mark_default_assignment(S.token);\n next();\n elements[elements.length - 1].value = new AST_DefaultAssign({\n start: elements[elements.length - 1].value.start,\n left: elements[elements.length - 1].value,\n operator: \"=\",\n right: expression(false),\n end: S.token\n });\n }\n }\n expect(\"}\");\n used_parameters.check_strict();\n return new AST_Destructuring({\n start: first_token,\n names: elements,\n is_array: false,\n end: prev()\n });\n } else if (is(\"name\")) {\n used_parameters.add_parameter(S.token);\n return as_symbol(symbol_type);\n } else {\n croak(\"Invalid function parameter\");\n }\n }\n\n function params_or_seq_(allow_arrows, maybe_sequence) {\n var spread_token;\n var invalid_sequence;\n var trailing_comma;\n var a = [];\n expect(\"(\");\n while (!is(\"punc\", \")\")) {\n if (spread_token) unexpected(spread_token);\n if (is(\"expand\", \"...\")) {\n spread_token = S.token;\n if (maybe_sequence) invalid_sequence = S.token;\n next();\n a.push(new AST_Expansion({\n start: prev(),\n expression: expression(),\n end: S.token,\n }));\n } else {\n a.push(expression());\n }\n if (!is(\"punc\", \")\")) {\n expect(\",\");\n if (is(\"punc\", \")\")) {\n trailing_comma = prev();\n if (maybe_sequence) invalid_sequence = trailing_comma;\n }\n }\n }\n expect(\")\");\n if (allow_arrows && is(\"arrow\", \"=>\")) {\n if (spread_token && trailing_comma) unexpected(trailing_comma);\n } else if (invalid_sequence) {\n unexpected(invalid_sequence);\n }\n return a;\n }\n\n function _function_body(block, generator, is_async, name, args) {\n var loop = S.in_loop;\n var labels = S.labels;\n var current_generator = S.in_generator;\n var current_async = S.in_async;\n ++S.in_function;\n if (generator)\n S.in_generator = S.in_function;\n if (is_async)\n S.in_async = S.in_function;\n if (args) parameters(args);\n if (block)\n S.in_directives = true;\n S.in_loop = 0;\n S.labels = [];\n if (block) {\n S.input.push_directives_stack();\n var a = block_();\n if (name) _verify_symbol(name);\n if (args) args.forEach(_verify_symbol);\n S.input.pop_directives_stack();\n } else {\n var a = [new AST_Return({\n start: S.token,\n value: expression(false),\n end: S.token\n })];\n }\n --S.in_function;\n S.in_loop = loop;\n S.labels = labels;\n S.in_generator = current_generator;\n S.in_async = current_async;\n return a;\n }\n\n function _await_expression() {\n // Previous token must be \"await\" and not be interpreted as an identifier\n if (!can_await()) {\n croak(\"Unexpected await expression outside async function\",\n S.prev.line, S.prev.col, S.prev.pos);\n }\n // the await expression is parsed as a unary expression in Babel\n return new AST_Await({\n start: prev(),\n end: S.token,\n expression : maybe_unary(true),\n });\n }\n\n function _yield_expression() {\n // Previous token must be keyword yield and not be interpret as an identifier\n if (!is_in_generator()) {\n croak(\"Unexpected yield expression outside generator function\",\n S.prev.line, S.prev.col, S.prev.pos);\n }\n var start = S.token;\n var star = false;\n var has_expression = true;\n\n // Attempt to get expression or star (and then the mandatory expression)\n // behind yield on the same line.\n //\n // If nothing follows on the same line of the yieldExpression,\n // it should default to the value `undefined` for yield to return.\n // In that case, the `undefined` stored as `null` in ast.\n //\n // Note 1: It isn't allowed for yield* to close without an expression\n // Note 2: If there is a nlb between yield and star, it is interpret as\n // yield *\n if (can_insert_semicolon() ||\n (is(\"punc\") && PUNC_AFTER_EXPRESSION.has(S.token.value))) {\n has_expression = false;\n\n } else if (is(\"operator\", \"*\")) {\n star = true;\n next();\n }\n\n return new AST_Yield({\n start : start,\n is_star : star,\n expression : has_expression ? expression() : null,\n end : prev()\n });\n }\n\n function if_() {\n var cond = parenthesised(), body = statement(false, false, true), belse = null;\n if (is(\"keyword\", \"else\")) {\n next();\n belse = statement(false, false, true);\n }\n return new AST_If({\n condition : cond,\n body : body,\n alternative : belse\n });\n }\n\n function block_() {\n expect(\"{\");\n var a = [];\n while (!is(\"punc\", \"}\")) {\n if (is(\"eof\")) unexpected();\n a.push(statement());\n }\n next();\n return a;\n }\n\n function switch_body_() {\n expect(\"{\");\n var a = [], cur = null, branch = null, tmp;\n while (!is(\"punc\", \"}\")) {\n if (is(\"eof\")) unexpected();\n if (is(\"keyword\", \"case\")) {\n if (branch) branch.end = prev();\n cur = [];\n branch = new AST_Case({\n start : (tmp = S.token, next(), tmp),\n expression : expression(true),\n body : cur\n });\n a.push(branch);\n expect(\":\");\n } else if (is(\"keyword\", \"default\")) {\n if (branch) branch.end = prev();\n cur = [];\n branch = new AST_Default({\n start : (tmp = S.token, next(), expect(\":\"), tmp),\n body : cur\n });\n a.push(branch);\n } else {\n if (!cur) unexpected();\n cur.push(statement());\n }\n }\n if (branch) branch.end = prev();\n next();\n return a;\n }\n\n function try_() {\n var body, bcatch = null, bfinally = null;\n body = new AST_TryBlock({\n start : S.token,\n body : block_(),\n end : prev(),\n });\n if (is(\"keyword\", \"catch\")) {\n var start = S.token;\n next();\n if (is(\"punc\", \"{\")) {\n var name = null;\n } else {\n expect(\"(\");\n var name = parameter(undefined, AST_SymbolCatch);\n expect(\")\");\n }\n bcatch = new AST_Catch({\n start : start,\n argname : name,\n body : block_(),\n end : prev()\n });\n }\n if (is(\"keyword\", \"finally\")) {\n var start = S.token;\n next();\n bfinally = new AST_Finally({\n start : start,\n body : block_(),\n end : prev()\n });\n }\n if (!bcatch && !bfinally)\n croak(\"Missing catch/finally blocks\");\n return new AST_Try({\n body : body,\n bcatch : bcatch,\n bfinally : bfinally\n });\n }\n\n /**\n * var\n * vardef1 = 2,\n * vardef2 = 3;\n */\n function vardefs(no_in, kind) {\n var var_defs = [];\n var def;\n for (;;) {\n var sym_type =\n kind === \"var\" ? AST_SymbolVar :\n kind === \"const\" ? AST_SymbolConst :\n kind === \"let\" ? AST_SymbolLet : null;\n // var { a } = b\n if (is(\"punc\", \"{\") || is(\"punc\", \"[\")) {\n def = new AST_VarDef({\n start: S.token,\n name: binding_element(undefined, sym_type),\n value: is(\"operator\", \"=\") ? (expect_token(\"operator\", \"=\"), expression(false, no_in)) : null,\n end: prev()\n });\n } else {\n def = new AST_VarDef({\n start : S.token,\n name : as_symbol(sym_type),\n value : is(\"operator\", \"=\")\n ? (next(), expression(false, no_in))\n : !no_in && kind === \"const\"\n ? croak(\"Missing initializer in const declaration\") : null,\n end : prev()\n });\n if (def.name.name == \"import\") croak(\"Unexpected token: import\");\n }\n var_defs.push(def);\n if (!is(\"punc\", \",\"))\n break;\n next();\n }\n return var_defs;\n }\n\n var var_ = function(no_in) {\n return new AST_Var({\n start : prev(),\n definitions : vardefs(no_in, \"var\"),\n end : prev()\n });\n };\n\n var let_ = function(no_in) {\n return new AST_Let({\n start : prev(),\n definitions : vardefs(no_in, \"let\"),\n end : prev()\n });\n };\n\n var const_ = function(no_in) {\n return new AST_Const({\n start : prev(),\n definitions : vardefs(no_in, \"const\"),\n end : prev()\n });\n };\n\n var new_ = function(allow_calls) {\n var start = S.token;\n expect_token(\"operator\", \"new\");\n if (is(\"punc\", \".\")) {\n next();\n expect_token(\"name\", \"target\");\n return subscripts(new AST_NewTarget({\n start : start,\n end : prev()\n }), allow_calls);\n }\n var newexp = expr_atom(false), args;\n if (is(\"punc\", \"(\")) {\n next();\n args = expr_list(\")\", true);\n } else {\n args = [];\n }\n var call = new AST_New({\n start : start,\n expression : newexp,\n args : args,\n end : prev()\n });\n annotate(call);\n return subscripts(call, allow_calls);\n };\n\n function as_atom_node() {\n var tok = S.token, ret;\n switch (tok.type) {\n case \"name\":\n ret = _make_symbol(AST_SymbolRef);\n break;\n case \"num\":\n ret = new AST_Number({\n start: tok,\n end: tok,\n value: tok.value,\n raw: LATEST_RAW\n });\n break;\n case \"big_int\":\n ret = new AST_BigInt({ start: tok, end: tok, value: tok.value });\n break;\n case \"string\":\n ret = new AST_String({\n start : tok,\n end : tok,\n value : tok.value,\n quote : tok.quote\n });\n annotate(ret);\n break;\n case \"regexp\":\n const [_, source, flags] = tok.value.match(/^\\/(.*)\\/(\\w*)$/);\n\n ret = new AST_RegExp({ start: tok, end: tok, value: { source, flags } });\n break;\n case \"atom\":\n switch (tok.value) {\n case \"false\":\n ret = new AST_False({ start: tok, end: tok });\n break;\n case \"true\":\n ret = new AST_True({ start: tok, end: tok });\n break;\n case \"null\":\n ret = new AST_Null({ start: tok, end: tok });\n break;\n }\n break;\n }\n next();\n return ret;\n }\n\n function to_fun_args(ex, default_seen_above) {\n var insert_default = function(ex, default_value) {\n if (default_value) {\n return new AST_DefaultAssign({\n start: ex.start,\n left: ex,\n operator: \"=\",\n right: default_value,\n end: default_value.end\n });\n }\n return ex;\n };\n if (ex instanceof AST_Object) {\n return insert_default(new AST_Destructuring({\n start: ex.start,\n end: ex.end,\n is_array: false,\n names: ex.properties.map(prop => to_fun_args(prop))\n }), default_seen_above);\n } else if (ex instanceof AST_ObjectKeyVal) {\n ex.value = to_fun_args(ex.value);\n return insert_default(ex, default_seen_above);\n } else if (ex instanceof AST_Hole) {\n return ex;\n } else if (ex instanceof AST_Destructuring) {\n ex.names = ex.names.map(name => to_fun_args(name));\n return insert_default(ex, default_seen_above);\n } else if (ex instanceof AST_SymbolRef) {\n return insert_default(new AST_SymbolFunarg({\n name: ex.name,\n start: ex.start,\n end: ex.end\n }), default_seen_above);\n } else if (ex instanceof AST_Expansion) {\n ex.expression = to_fun_args(ex.expression);\n return insert_default(ex, default_seen_above);\n } else if (ex instanceof AST_Array) {\n return insert_default(new AST_Destructuring({\n start: ex.start,\n end: ex.end,\n is_array: true,\n names: ex.elements.map(elm => to_fun_args(elm))\n }), default_seen_above);\n } else if (ex instanceof AST_Assign) {\n return insert_default(to_fun_args(ex.left, ex.right), default_seen_above);\n } else if (ex instanceof AST_DefaultAssign) {\n ex.left = to_fun_args(ex.left);\n return ex;\n } else {\n croak(\"Invalid function parameter\", ex.start.line, ex.start.col);\n }\n }\n\n var expr_atom = function(allow_calls, allow_arrows) {\n if (is(\"operator\", \"new\")) {\n return new_(allow_calls);\n }\n if (is(\"name\", \"import\") && is_token(peek(), \"punc\", \".\")) {\n return import_meta(allow_calls);\n }\n var start = S.token;\n var peeked;\n var async = is(\"name\", \"async\")\n && (peeked = peek()).value != \"[\"\n && peeked.type != \"arrow\"\n && as_atom_node();\n if (is(\"punc\")) {\n switch (S.token.value) {\n case \"(\":\n if (async && !allow_calls) break;\n var exprs = params_or_seq_(allow_arrows, !async);\n if (allow_arrows && is(\"arrow\", \"=>\")) {\n return arrow_function(start, exprs.map(e => to_fun_args(e)), !!async);\n }\n var ex = async ? new AST_Call({\n expression: async,\n args: exprs\n }) : to_expr_or_sequence(start, exprs);\n if (ex.start) {\n const outer_comments_before = start.comments_before.length;\n outer_comments_before_counts.set(start, outer_comments_before);\n ex.start.comments_before.unshift(...start.comments_before);\n start.comments_before = ex.start.comments_before;\n if (outer_comments_before == 0 && start.comments_before.length > 0) {\n var comment = start.comments_before[0];\n if (!comment.nlb) {\n comment.nlb = start.nlb;\n start.nlb = false;\n }\n }\n start.comments_after = ex.start.comments_after;\n }\n ex.start = start;\n var end = prev();\n if (ex.end) {\n end.comments_before = ex.end.comments_before;\n ex.end.comments_after.push(...end.comments_after);\n end.comments_after = ex.end.comments_after;\n }\n ex.end = end;\n if (ex instanceof AST_Call) annotate(ex);\n return subscripts(ex, allow_calls);\n case \"[\":\n return subscripts(array_(), allow_calls);\n case \"{\":\n return subscripts(object_or_destructuring_(), allow_calls);\n }\n if (!async) unexpected();\n }\n if (allow_arrows && is(\"name\") && is_token(peek(), \"arrow\")) {\n var param = new AST_SymbolFunarg({\n name: S.token.value,\n start: start,\n end: start,\n });\n next();\n return arrow_function(start, [param], !!async);\n }\n if (is(\"keyword\", \"function\")) {\n next();\n var func = function_(AST_Function, false, !!async);\n func.start = start;\n func.end = prev();\n return subscripts(func, allow_calls);\n }\n if (async) return subscripts(async, allow_calls);\n if (is(\"keyword\", \"class\")) {\n next();\n var cls = class_(AST_ClassExpression);\n cls.start = start;\n cls.end = prev();\n return subscripts(cls, allow_calls);\n }\n if (is(\"template_head\")) {\n return subscripts(template_string(), allow_calls);\n }\n if (is(\"privatename\")) {\n if(!S.in_class) {\n croak(\"Private field must be used in an enclosing class\");\n }\n\n const start = S.token;\n const key = new AST_SymbolPrivateProperty({\n start,\n name: start.value,\n end: start\n });\n next();\n expect_token(\"operator\", \"in\");\n\n const private_in = new AST_PrivateIn({\n start,\n key,\n value: subscripts(as_atom_node(), allow_calls),\n end: prev()\n });\n\n return subscripts(private_in, allow_calls);\n }\n if (ATOMIC_START_TOKEN.has(S.token.type)) {\n return subscripts(as_atom_node(), allow_calls);\n }\n unexpected();\n };\n\n function template_string() {\n var segments = [], start = S.token;\n\n segments.push(new AST_TemplateSegment({\n start: S.token,\n raw: TEMPLATE_RAWS.get(S.token),\n value: S.token.value,\n end: S.token\n }));\n\n while (!S.token.template_end) {\n next();\n handle_regexp();\n segments.push(expression(true));\n\n segments.push(new AST_TemplateSegment({\n start: S.token,\n raw: TEMPLATE_RAWS.get(S.token),\n value: S.token.value,\n end: S.token\n }));\n }\n next();\n\n return new AST_TemplateString({\n start: start,\n segments: segments,\n end: S.token\n });\n }\n\n function expr_list(closing, allow_trailing_comma, allow_empty) {\n var first = true, a = [];\n while (!is(\"punc\", closing)) {\n if (first) first = false; else expect(\",\");\n if (allow_trailing_comma && is(\"punc\", closing)) break;\n if (is(\"punc\", \",\") && allow_empty) {\n a.push(new AST_Hole({ start: S.token, end: S.token }));\n } else if (is(\"expand\", \"...\")) {\n next();\n a.push(new AST_Expansion({start: prev(), expression: expression(),end: S.token}));\n } else {\n a.push(expression(false));\n }\n }\n next();\n return a;\n }\n\n var array_ = embed_tokens(function() {\n expect(\"[\");\n return new AST_Array({\n elements: expr_list(\"]\", !options.strict, true)\n });\n });\n\n var create_accessor = embed_tokens((is_generator, is_async) => {\n return function_(AST_Accessor, is_generator, is_async);\n });\n\n var object_or_destructuring_ = embed_tokens(function object_or_destructuring_() {\n var start = S.token, first = true, a = [];\n expect(\"{\");\n while (!is(\"punc\", \"}\")) {\n if (first) first = false; else expect(\",\");\n if (!options.strict && is(\"punc\", \"}\"))\n // allow trailing comma\n break;\n\n start = S.token;\n if (start.type == \"expand\") {\n next();\n a.push(new AST_Expansion({\n start: start,\n expression: expression(false),\n end: prev(),\n }));\n continue;\n }\n if(is(\"privatename\")) {\n croak(\"private fields are not allowed in an object\");\n }\n var name = as_property_name();\n var value;\n\n // Check property and fetch value\n if (!is(\"punc\", \":\")) {\n var concise = concise_method_or_getset(name, start);\n if (concise) {\n a.push(concise);\n continue;\n }\n\n value = new AST_SymbolRef({\n start: prev(),\n name: name,\n end: prev()\n });\n } else if (name === null) {\n unexpected(prev());\n } else {\n next(); // `:` - see first condition\n value = expression(false);\n }\n\n // Check for default value and alter value accordingly if necessary\n if (is(\"operator\", \"=\")) {\n next();\n value = new AST_Assign({\n start: start,\n left: value,\n operator: \"=\",\n right: expression(false),\n logical: false,\n end: prev()\n });\n }\n\n // Create property\n const kv = new AST_ObjectKeyVal({\n start: start,\n quote: start.quote,\n key: name instanceof AST_Node ? name : \"\" + name,\n value: value,\n end: prev()\n });\n a.push(annotate(kv));\n }\n next();\n return new AST_Object({ properties: a });\n });\n\n function class_(KindOfClass, is_export_default) {\n var start, method, class_name, extends_, a = [];\n\n S.input.push_directives_stack(); // Push directive stack, but not scope stack\n S.input.add_directive(\"use strict\");\n\n if (S.token.type == \"name\" && S.token.value != \"extends\") {\n class_name = as_symbol(KindOfClass === AST_DefClass ? AST_SymbolDefClass : AST_SymbolClass);\n }\n\n if (KindOfClass === AST_DefClass && !class_name) {\n if (is_export_default) {\n KindOfClass = AST_ClassExpression;\n } else {\n unexpected();\n }\n }\n\n if (S.token.value == \"extends\") {\n next();\n extends_ = expression(true);\n }\n\n expect(\"{\");\n // mark in class feild,\n const save_in_class = S.in_class;\n S.in_class = true;\n while (is(\"punc\", \";\")) { next(); } // Leading semicolons are okay in class bodies.\n while (!is(\"punc\", \"}\")) {\n start = S.token;\n method = concise_method_or_getset(as_property_name(), start, true);\n if (!method) { unexpected(); }\n a.push(method);\n while (is(\"punc\", \";\")) { next(); }\n }\n // mark in class feild,\n S.in_class = save_in_class;\n\n S.input.pop_directives_stack();\n\n next();\n\n return new KindOfClass({\n start: start,\n name: class_name,\n extends: extends_,\n properties: a,\n end: prev(),\n });\n }\n\n function concise_method_or_getset(name, start, is_class) {\n const get_symbol_ast = (name, SymbolClass = AST_SymbolMethod) => {\n if (typeof name === \"string\" || typeof name === \"number\") {\n return new SymbolClass({\n start,\n name: \"\" + name,\n end: prev()\n });\n } else if (name === null) {\n unexpected();\n }\n return name;\n };\n\n const is_not_method_start = () =>\n !is(\"punc\", \"(\") && !is(\"punc\", \",\") && !is(\"punc\", \"}\") && !is(\"punc\", \";\") && !is(\"operator\", \"=\");\n\n var is_async = false;\n var is_static = false;\n var is_generator = false;\n var is_private = false;\n var accessor_type = null;\n\n if (is_class && name === \"static\" && is_not_method_start()) {\n const static_block = class_static_block();\n if (static_block != null) {\n return static_block;\n }\n is_static = true;\n name = as_property_name();\n }\n if (name === \"async\" && is_not_method_start()) {\n is_async = true;\n name = as_property_name();\n }\n if (prev().type === \"operator\" && prev().value === \"*\") {\n is_generator = true;\n name = as_property_name();\n }\n if ((name === \"get\" || name === \"set\") && is_not_method_start()) {\n accessor_type = name;\n name = as_property_name();\n }\n if (prev().type === \"privatename\") {\n is_private = true;\n }\n\n const property_token = prev();\n\n if (accessor_type != null) {\n if (!is_private) {\n const AccessorClass = accessor_type === \"get\"\n ? AST_ObjectGetter\n : AST_ObjectSetter;\n\n name = get_symbol_ast(name);\n return annotate(new AccessorClass({\n start,\n static: is_static,\n key: name,\n quote: name instanceof AST_SymbolMethod ? property_token.quote : undefined,\n value: create_accessor(),\n end: prev()\n }));\n } else {\n const AccessorClass = accessor_type === \"get\"\n ? AST_PrivateGetter\n : AST_PrivateSetter;\n\n return annotate(new AccessorClass({\n start,\n static: is_static,\n key: get_symbol_ast(name),\n value: create_accessor(),\n end: prev(),\n }));\n }\n }\n\n if (is(\"punc\", \"(\")) {\n name = get_symbol_ast(name);\n const AST_MethodVariant = is_private\n ? AST_PrivateMethod\n : AST_ConciseMethod;\n var node = new AST_MethodVariant({\n start : start,\n static : is_static,\n is_generator: is_generator,\n async : is_async,\n key : name,\n quote : name instanceof AST_SymbolMethod ?\n property_token.quote : undefined,\n value : create_accessor(is_generator, is_async),\n end : prev()\n });\n return annotate(node);\n }\n\n if (is_class) {\n const key = get_symbol_ast(name, AST_SymbolClassProperty);\n const quote = key instanceof AST_SymbolClassProperty\n ? property_token.quote\n : undefined;\n const AST_ClassPropertyVariant = is_private\n ? AST_ClassPrivateProperty\n : AST_ClassProperty;\n if (is(\"operator\", \"=\")) {\n next();\n return annotate(\n new AST_ClassPropertyVariant({\n start,\n static: is_static,\n quote,\n key,\n value: expression(false),\n end: prev()\n })\n );\n } else if (\n is(\"name\")\n || is(\"privatename\")\n || is(\"operator\", \"*\")\n || is(\"punc\", \";\")\n || is(\"punc\", \"}\")\n ) {\n return annotate(\n new AST_ClassPropertyVariant({\n start,\n static: is_static,\n quote,\n key,\n end: prev()\n })\n );\n }\n }\n }\n\n function class_static_block() {\n if (!is(\"punc\", \"{\")) {\n return null;\n }\n\n const start = S.token;\n const body = [];\n\n next();\n\n while (!is(\"punc\", \"}\")) {\n body.push(statement());\n }\n\n next();\n\n return new AST_ClassStaticBlock({ start, body, end: prev() });\n }\n\n function maybe_import_assertion() {\n if (is(\"name\", \"assert\") && !has_newline_before(S.token)) {\n next();\n return object_or_destructuring_();\n }\n return null;\n }\n\n function import_statement() {\n var start = prev();\n\n var imported_name;\n var imported_names;\n if (is(\"name\")) {\n imported_name = as_symbol(AST_SymbolImport);\n }\n\n if (is(\"punc\", \",\")) {\n next();\n }\n\n imported_names = map_names(true);\n\n if (imported_names || imported_name) {\n expect_token(\"name\", \"from\");\n }\n var mod_str = S.token;\n if (mod_str.type !== \"string\") {\n unexpected();\n }\n next();\n\n const assert_clause = maybe_import_assertion();\n\n return new AST_Import({\n start,\n imported_name,\n imported_names,\n module_name: new AST_String({\n start: mod_str,\n value: mod_str.value,\n quote: mod_str.quote,\n end: mod_str,\n }),\n assert_clause,\n end: S.token,\n });\n }\n\n function import_meta(allow_calls) {\n var start = S.token;\n expect_token(\"name\", \"import\");\n expect_token(\"punc\", \".\");\n expect_token(\"name\", \"meta\");\n return subscripts(new AST_ImportMeta({\n start: start,\n end: prev()\n }), allow_calls);\n }\n\n function map_name(is_import) {\n function make_symbol(type, quote) {\n return new type({\n name: as_property_name(),\n quote: quote || undefined,\n start: prev(),\n end: prev()\n });\n }\n\n var foreign_type = is_import ? AST_SymbolImportForeign : AST_SymbolExportForeign;\n var type = is_import ? AST_SymbolImport : AST_SymbolExport;\n var start = S.token;\n var foreign_name;\n var name;\n\n if (is_import) {\n foreign_name = make_symbol(foreign_type, start.quote);\n } else {\n name = make_symbol(type, start.quote);\n }\n if (is(\"name\", \"as\")) {\n next(); // The \"as\" word\n if (is_import) {\n name = make_symbol(type);\n } else {\n foreign_name = make_symbol(foreign_type, S.token.quote);\n }\n } else if (is_import) {\n name = new type(foreign_name);\n } else {\n foreign_name = new foreign_type(name);\n }\n\n return new AST_NameMapping({\n start: start,\n foreign_name: foreign_name,\n name: name,\n end: prev(),\n });\n }\n\n function map_nameAsterisk(is_import, import_or_export_foreign_name) {\n var foreign_type = is_import ? AST_SymbolImportForeign : AST_SymbolExportForeign;\n var type = is_import ? AST_SymbolImport : AST_SymbolExport;\n var start = S.token;\n var name, foreign_name;\n var end = prev();\n\n if (is_import) {\n name = import_or_export_foreign_name;\n } else {\n foreign_name = import_or_export_foreign_name;\n }\n\n name = name || new type({\n start: start,\n name: \"*\",\n end: end,\n });\n\n foreign_name = foreign_name || new foreign_type({\n start: start,\n name: \"*\",\n end: end,\n });\n\n return new AST_NameMapping({\n start: start,\n foreign_name: foreign_name,\n name: name,\n end: end,\n });\n }\n\n function map_names(is_import) {\n var names;\n if (is(\"punc\", \"{\")) {\n next();\n names = [];\n while (!is(\"punc\", \"}\")) {\n names.push(map_name(is_import));\n if (is(\"punc\", \",\")) {\n next();\n }\n }\n next();\n } else if (is(\"operator\", \"*\")) {\n var name;\n next();\n if (is(\"name\", \"as\")) {\n next(); // The \"as\" word\n name = is_import ? as_symbol(AST_SymbolImport) : as_symbol_or_string(AST_SymbolExportForeign);\n }\n names = [map_nameAsterisk(is_import, name)];\n }\n return names;\n }\n\n function export_statement() {\n var start = S.token;\n var is_default;\n var exported_names;\n\n if (is(\"keyword\", \"default\")) {\n is_default = true;\n next();\n } else if (exported_names = map_names(false)) {\n if (is(\"name\", \"from\")) {\n next();\n\n var mod_str = S.token;\n if (mod_str.type !== \"string\") {\n unexpected();\n }\n next();\n\n const assert_clause = maybe_import_assertion();\n\n return new AST_Export({\n start: start,\n is_default: is_default,\n exported_names: exported_names,\n module_name: new AST_String({\n start: mod_str,\n value: mod_str.value,\n quote: mod_str.quote,\n end: mod_str,\n }),\n end: prev(),\n assert_clause\n });\n } else {\n return new AST_Export({\n start: start,\n is_default: is_default,\n exported_names: exported_names,\n end: prev(),\n });\n }\n }\n\n var node;\n var exported_value;\n var exported_definition;\n if (is(\"punc\", \"{\")\n || is_default\n && (is(\"keyword\", \"class\") || is(\"keyword\", \"function\"))\n && is_token(peek(), \"punc\")) {\n exported_value = expression(false);\n semicolon();\n } else if ((node = statement(is_default)) instanceof AST_Definitions && is_default) {\n unexpected(node.start);\n } else if (\n node instanceof AST_Definitions\n || node instanceof AST_Defun\n || node instanceof AST_DefClass\n ) {\n exported_definition = node;\n } else if (\n node instanceof AST_ClassExpression\n || node instanceof AST_Function\n ) {\n exported_value = node;\n } else if (node instanceof AST_SimpleStatement) {\n exported_value = node.body;\n } else {\n unexpected(node.start);\n }\n\n return new AST_Export({\n start: start,\n is_default: is_default,\n exported_value: exported_value,\n exported_definition: exported_definition,\n end: prev(),\n assert_clause: null\n });\n }\n\n function as_property_name() {\n var tmp = S.token;\n switch (tmp.type) {\n case \"punc\":\n if (tmp.value === \"[\") {\n next();\n var ex = expression(false);\n expect(\"]\");\n return ex;\n } else unexpected(tmp);\n case \"operator\":\n if (tmp.value === \"*\") {\n next();\n return null;\n }\n if (![\"delete\", \"in\", \"instanceof\", \"new\", \"typeof\", \"void\"].includes(tmp.value)) {\n unexpected(tmp);\n }\n /* falls through */\n case \"name\":\n case \"privatename\":\n case \"string\":\n case \"num\":\n case \"big_int\":\n case \"keyword\":\n case \"atom\":\n next();\n return tmp.value;\n default:\n unexpected(tmp);\n }\n }\n\n function as_name() {\n var tmp = S.token;\n if (tmp.type != \"name\" && tmp.type != \"privatename\") unexpected();\n next();\n return tmp.value;\n }\n\n function _make_symbol(type) {\n var name = S.token.value;\n return new (name == \"this\" ? AST_This :\n name == \"super\" ? AST_Super :\n type)({\n name : String(name),\n start : S.token,\n end : S.token\n });\n }\n\n function _verify_symbol(sym) {\n var name = sym.name;\n if (is_in_generator() && name == \"yield\") {\n token_error(sym.start, \"Yield cannot be used as identifier inside generators\");\n }\n if (S.input.has_directive(\"use strict\")) {\n if (name == \"yield\") {\n token_error(sym.start, \"Unexpected yield identifier inside strict mode\");\n }\n if (sym instanceof AST_SymbolDeclaration && (name == \"arguments\" || name == \"eval\")) {\n token_error(sym.start, \"Unexpected \" + name + \" in strict mode\");\n }\n }\n }\n\n function as_symbol(type, noerror) {\n if (!is(\"name\")) {\n if (!noerror) croak(\"Name expected\");\n return null;\n }\n var sym = _make_symbol(type);\n _verify_symbol(sym);\n next();\n return sym;\n }\n\n function as_symbol_or_string(type) {\n if (!is(\"name\")) {\n if (!is(\"string\")) {\n croak(\"Name or string expected\");\n }\n var tok = S.token;\n var ret = new type({\n start : tok,\n end : tok,\n name : tok.value,\n quote : tok.quote\n });\n next();\n return ret;\n }\n var sym = _make_symbol(type);\n _verify_symbol(sym);\n next();\n return sym;\n }\n\n // Annotate AST_Call, AST_Lambda or AST_New with the special comments\n function annotate(node, before_token = node.start) {\n var comments = before_token.comments_before;\n const comments_outside_parens = outer_comments_before_counts.get(before_token);\n var i = comments_outside_parens != null ? comments_outside_parens : comments.length;\n while (--i >= 0) {\n var comment = comments[i];\n if (/[@#]__/.test(comment.value)) {\n if (/[@#]__PURE__/.test(comment.value)) {\n set_annotation(node, _PURE);\n break;\n }\n if (/[@#]__INLINE__/.test(comment.value)) {\n set_annotation(node, _INLINE);\n break;\n }\n if (/[@#]__NOINLINE__/.test(comment.value)) {\n set_annotation(node, _NOINLINE);\n break;\n }\n if (/[@#]__KEY__/.test(comment.value)) {\n set_annotation(node, _KEY);\n break;\n }\n if (/[@#]__MANGLE_PROP__/.test(comment.value)) {\n set_annotation(node, _MANGLEPROP);\n break;\n }\n }\n }\n return node;\n }\n\n var subscripts = function(expr, allow_calls, is_chain) {\n var start = expr.start;\n if (is(\"punc\", \".\")) {\n next();\n if(is(\"privatename\") && !S.in_class) \n croak(\"Private field must be used in an enclosing class\");\n const AST_DotVariant = is(\"privatename\") ? AST_DotHash : AST_Dot;\n return annotate(subscripts(new AST_DotVariant({\n start : start,\n expression : expr,\n optional : false,\n property : as_name(),\n end : prev()\n }), allow_calls, is_chain));\n }\n if (is(\"punc\", \"[\")) {\n next();\n var prop = expression(true);\n expect(\"]\");\n return annotate(subscripts(new AST_Sub({\n start : start,\n expression : expr,\n optional : false,\n property : prop,\n end : prev()\n }), allow_calls, is_chain));\n }\n if (allow_calls && is(\"punc\", \"(\")) {\n next();\n var call = new AST_Call({\n start : start,\n expression : expr,\n optional : false,\n args : call_args(),\n end : prev()\n });\n annotate(call);\n return subscripts(call, true, is_chain);\n }\n\n if (is(\"punc\", \"?.\")) {\n next();\n\n let chain_contents;\n\n if (allow_calls && is(\"punc\", \"(\")) {\n next();\n\n const call = new AST_Call({\n start,\n optional: true,\n expression: expr,\n args: call_args(),\n end: prev()\n });\n annotate(call);\n\n chain_contents = subscripts(call, true, true);\n } else if (is(\"name\") || is(\"privatename\")) {\n if(is(\"privatename\") && !S.in_class) \n croak(\"Private field must be used in an enclosing class\");\n const AST_DotVariant = is(\"privatename\") ? AST_DotHash : AST_Dot;\n chain_contents = annotate(subscripts(new AST_DotVariant({\n start,\n expression: expr,\n optional: true,\n property: as_name(),\n end: prev()\n }), allow_calls, true));\n } else if (is(\"punc\", \"[\")) {\n next();\n const property = expression(true);\n expect(\"]\");\n chain_contents = annotate(subscripts(new AST_Sub({\n start,\n expression: expr,\n optional: true,\n property,\n end: prev()\n }), allow_calls, true));\n }\n\n if (!chain_contents) unexpected();\n\n if (chain_contents instanceof AST_Chain) return chain_contents;\n\n return new AST_Chain({\n start,\n expression: chain_contents,\n end: prev()\n });\n }\n\n if (is(\"template_head\")) {\n if (is_chain) {\n // a?.b`c` is a syntax error\n unexpected();\n }\n\n return subscripts(new AST_PrefixedTemplateString({\n start: start,\n prefix: expr,\n template_string: template_string(),\n end: prev()\n }), allow_calls);\n }\n return expr;\n };\n\n function call_args() {\n var args = [];\n while (!is(\"punc\", \")\")) {\n if (is(\"expand\", \"...\")) {\n next();\n args.push(new AST_Expansion({\n start: prev(),\n expression: expression(false),\n end: prev()\n }));\n } else {\n args.push(expression(false));\n }\n if (!is(\"punc\", \")\")) {\n expect(\",\");\n }\n }\n next();\n return args;\n }\n\n var maybe_unary = function(allow_calls, allow_arrows) {\n var start = S.token;\n if (start.type == \"name\" && start.value == \"await\" && can_await()) {\n next();\n return _await_expression();\n }\n if (is(\"operator\") && UNARY_PREFIX.has(start.value)) {\n next();\n handle_regexp();\n var ex = make_unary(AST_UnaryPrefix, start, maybe_unary(allow_calls));\n ex.start = start;\n ex.end = prev();\n return ex;\n }\n var val = expr_atom(allow_calls, allow_arrows);\n while (is(\"operator\") && UNARY_POSTFIX.has(S.token.value) && !has_newline_before(S.token)) {\n if (val instanceof AST_Arrow) unexpected();\n val = make_unary(AST_UnaryPostfix, S.token, val);\n val.start = start;\n val.end = S.token;\n next();\n }\n return val;\n };\n\n function make_unary(ctor, token, expr) {\n var op = token.value;\n switch (op) {\n case \"++\":\n case \"--\":\n if (!is_assignable(expr))\n croak(\"Invalid use of \" + op + \" operator\", token.line, token.col, token.pos);\n break;\n case \"delete\":\n if (expr instanceof AST_SymbolRef && S.input.has_directive(\"use strict\"))\n croak(\"Calling delete on expression not allowed in strict mode\", expr.start.line, expr.start.col, expr.start.pos);\n break;\n }\n return new ctor({ operator: op, expression: expr });\n }\n\n var expr_op = function(left, min_prec, no_in) {\n var op = is(\"operator\") ? S.token.value : null;\n if (op == \"in\" && no_in) op = null;\n if (op == \"**\" && left instanceof AST_UnaryPrefix\n /* unary token in front not allowed - parenthesis required */\n && !is_token(left.start, \"punc\", \"(\")\n && left.operator !== \"--\" && left.operator !== \"++\")\n unexpected(left.start);\n var prec = op != null ? PRECEDENCE[op] : null;\n if (prec != null && (prec > min_prec || (op === \"**\" && min_prec === prec))) {\n next();\n var right = expr_op(maybe_unary(true), prec, no_in);\n return expr_op(new AST_Binary({\n start : left.start,\n left : left,\n operator : op,\n right : right,\n end : right.end\n }), min_prec, no_in);\n }\n return left;\n };\n\n function expr_ops(no_in) {\n return expr_op(maybe_unary(true, true), 0, no_in);\n }\n\n var maybe_conditional = function(no_in) {\n var start = S.token;\n var expr = expr_ops(no_in);\n if (is(\"operator\", \"?\")) {\n next();\n var yes = expression(false);\n expect(\":\");\n return new AST_Conditional({\n start : start,\n condition : expr,\n consequent : yes,\n alternative : expression(false, no_in),\n end : prev()\n });\n }\n return expr;\n };\n\n function is_assignable(expr) {\n return expr instanceof AST_PropAccess || expr instanceof AST_SymbolRef;\n }\n\n function to_destructuring(node) {\n if (node instanceof AST_Object) {\n node = new AST_Destructuring({\n start: node.start,\n names: node.properties.map(to_destructuring),\n is_array: false,\n end: node.end\n });\n } else if (node instanceof AST_Array) {\n var names = [];\n\n for (var i = 0; i < node.elements.length; i++) {\n // Only allow expansion as last element\n if (node.elements[i] instanceof AST_Expansion) {\n if (i + 1 !== node.elements.length) {\n token_error(node.elements[i].start, \"Spread must the be last element in destructuring array\");\n }\n node.elements[i].expression = to_destructuring(node.elements[i].expression);\n }\n\n names.push(to_destructuring(node.elements[i]));\n }\n\n node = new AST_Destructuring({\n start: node.start,\n names: names,\n is_array: true,\n end: node.end\n });\n } else if (node instanceof AST_ObjectProperty) {\n node.value = to_destructuring(node.value);\n } else if (node instanceof AST_Assign) {\n node = new AST_DefaultAssign({\n start: node.start,\n left: node.left,\n operator: \"=\",\n right: node.right,\n end: node.end\n });\n }\n return node;\n }\n\n // In ES6, AssignmentExpression can also be an ArrowFunction\n var maybe_assign = function(no_in) {\n handle_regexp();\n var start = S.token;\n\n if (start.type == \"name\" && start.value == \"yield\") {\n if (is_in_generator()) {\n next();\n return _yield_expression();\n } else if (S.input.has_directive(\"use strict\")) {\n token_error(S.token, \"Unexpected yield identifier inside strict mode\");\n }\n }\n\n var left = maybe_conditional(no_in);\n var val = S.token.value;\n\n if (is(\"operator\") && ASSIGNMENT.has(val)) {\n if (is_assignable(left) || (left = to_destructuring(left)) instanceof AST_Destructuring) {\n next();\n\n return new AST_Assign({\n start : start,\n left : left,\n operator : val,\n right : maybe_assign(no_in),\n logical : LOGICAL_ASSIGNMENT.has(val),\n end : prev()\n });\n }\n croak(\"Invalid assignment\");\n }\n return left;\n };\n\n var to_expr_or_sequence = function(start, exprs) {\n if (exprs.length === 1) {\n return exprs[0];\n } else if (exprs.length > 1) {\n return new AST_Sequence({ start, expressions: exprs, end: peek() });\n } else {\n croak(\"Invalid parenthesized expression\");\n }\n };\n\n var expression = function(commas, no_in) {\n var start = S.token;\n var exprs = [];\n while (true) {\n exprs.push(maybe_assign(no_in));\n if (!commas || !is(\"punc\", \",\")) break;\n next();\n commas = true;\n }\n return to_expr_or_sequence(start, exprs);\n };\n\n function in_loop(cont) {\n ++S.in_loop;\n var ret = cont();\n --S.in_loop;\n return ret;\n }\n\n if (options.expression) {\n return expression(true);\n }\n\n return (function parse_toplevel() {\n var start = S.token;\n var body = [];\n S.input.push_directives_stack();\n if (options.module) S.input.add_directive(\"use strict\");\n while (!is(\"eof\")) {\n body.push(statement());\n }\n S.input.pop_directives_stack();\n var end = prev();\n var toplevel = options.toplevel;\n if (toplevel) {\n toplevel.body = toplevel.body.concat(body);\n toplevel.end = end;\n } else {\n toplevel = new AST_Toplevel({ start: start, body: body, end: end });\n }\n TEMPLATE_RAWS = new Map();\n return toplevel;\n })();\n\n}\n\nexport {\n get_full_char_code,\n get_full_char,\n is_identifier_char,\n is_basic_identifier_string,\n is_identifier_string,\n is_surrogate_pair_head,\n is_surrogate_pair_tail,\n js_error,\n JS_Parse_Error,\n parse,\n PRECEDENCE,\n ALL_RESERVED_WORDS,\n tokenizer,\n};\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n HOP,\n MAP,\n noop\n} from \"./utils/index.js\";\nimport { parse } from \"./parse.js\";\n\nfunction DEFNODE(type, props, ctor, methods, base = AST_Node) {\n if (!props) props = [];\n else props = props.split(/\\s+/);\n var self_props = props;\n if (base && base.PROPS)\n props = props.concat(base.PROPS);\n const proto = base && Object.create(base.prototype);\n if (proto) {\n ctor.prototype = proto;\n ctor.BASE = base;\n }\n if (base) base.SUBCLASSES.push(ctor);\n ctor.prototype.CTOR = ctor;\n ctor.prototype.constructor = ctor;\n ctor.PROPS = props || null;\n ctor.SELF_PROPS = self_props;\n ctor.SUBCLASSES = [];\n if (type) {\n ctor.prototype.TYPE = ctor.TYPE = type;\n }\n if (methods) for (let i in methods) if (HOP(methods, i)) {\n if (i[0] === \"$\") {\n ctor[i.substr(1)] = methods[i];\n } else {\n ctor.prototype[i] = methods[i];\n }\n }\n ctor.DEFMETHOD = function(name, method) {\n this.prototype[name] = method;\n };\n return ctor;\n}\n\nconst has_tok_flag = (tok, flag) => Boolean(tok.flags & flag);\nconst set_tok_flag = (tok, flag, truth) => {\n if (truth) {\n tok.flags |= flag;\n } else {\n tok.flags &= ~flag;\n }\n};\n\nconst TOK_FLAG_NLB = 0b0001;\nconst TOK_FLAG_QUOTE_SINGLE = 0b0010;\nconst TOK_FLAG_QUOTE_EXISTS = 0b0100;\nconst TOK_FLAG_TEMPLATE_END = 0b1000;\n\nclass AST_Token {\n constructor(type, value, line, col, pos, nlb, comments_before, comments_after, file) {\n this.flags = (nlb ? 1 : 0);\n\n this.type = type;\n this.value = value;\n this.line = line;\n this.col = col;\n this.pos = pos;\n this.comments_before = comments_before;\n this.comments_after = comments_after;\n this.file = file;\n\n Object.seal(this);\n }\n\n // Return a string summary of the token for node.js console.log\n [Symbol.for(\"nodejs.util.inspect.custom\")](_depth, options) {\n const special = str => options.stylize(str, \"special\");\n const quote = typeof this.value === \"string\" && this.value.includes(\"`\") ? \"'\" : \"`\";\n const value = `${quote}${this.value}${quote}`;\n return `${special(\"[AST_Token\")} ${value} at ${this.line}:${this.col}${special(\"]\")}`;\n }\n\n get nlb() {\n return has_tok_flag(this, TOK_FLAG_NLB);\n }\n\n set nlb(new_nlb) {\n set_tok_flag(this, TOK_FLAG_NLB, new_nlb);\n }\n\n get quote() {\n return !has_tok_flag(this, TOK_FLAG_QUOTE_EXISTS)\n ? \"\"\n : (has_tok_flag(this, TOK_FLAG_QUOTE_SINGLE) ? \"'\" : '\"');\n }\n\n set quote(quote_type) {\n set_tok_flag(this, TOK_FLAG_QUOTE_SINGLE, quote_type === \"'\");\n set_tok_flag(this, TOK_FLAG_QUOTE_EXISTS, !!quote_type);\n }\n\n get template_end() {\n return has_tok_flag(this, TOK_FLAG_TEMPLATE_END);\n }\n\n set template_end(new_template_end) {\n set_tok_flag(this, TOK_FLAG_TEMPLATE_END, new_template_end);\n }\n}\n\nvar AST_Node = DEFNODE(\"Node\", \"start end\", function AST_Node(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n _clone: function(deep) {\n if (deep) {\n var self = this.clone();\n return self.transform(new TreeTransformer(function(node) {\n if (node !== self) {\n return node.clone(true);\n }\n }));\n }\n return new this.CTOR(this);\n },\n clone: function(deep) {\n return this._clone(deep);\n },\n $documentation: \"Base class of all AST nodes\",\n $propdoc: {\n start: \"[AST_Token] The first token of this node\",\n end: \"[AST_Token] The last token of this node\"\n },\n _walk: function(visitor) {\n return visitor._visit(this);\n },\n walk: function(visitor) {\n return this._walk(visitor); // not sure the indirection will be any help\n },\n _children_backwards: () => {}\n}, null);\n\n/* -----[ statements ]----- */\n\nvar AST_Statement = DEFNODE(\"Statement\", null, function AST_Statement(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class of all statements\",\n});\n\nvar AST_Debugger = DEFNODE(\"Debugger\", null, function AST_Debugger(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Represents a debugger statement\",\n}, AST_Statement);\n\nvar AST_Directive = DEFNODE(\"Directive\", \"value quote\", function AST_Directive(props) {\n if (props) {\n this.value = props.value;\n this.quote = props.quote;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Represents a directive, like \\\"use strict\\\";\",\n $propdoc: {\n value: \"[string] The value of this directive as a plain string (it's not an AST_String!)\",\n quote: \"[string] the original quote character\"\n },\n}, AST_Statement);\n\nvar AST_SimpleStatement = DEFNODE(\"SimpleStatement\", \"body\", function AST_SimpleStatement(props) {\n if (props) {\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A statement consisting of an expression, i.e. a = 1 + 2\",\n $propdoc: {\n body: \"[AST_Node] an expression node (should not be instanceof AST_Statement)\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.body._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.body);\n }\n}, AST_Statement);\n\nfunction walk_body(node, visitor) {\n const body = node.body;\n for (var i = 0, len = body.length; i < len; i++) {\n body[i]._walk(visitor);\n }\n}\n\nfunction clone_block_scope(deep) {\n var clone = this._clone(deep);\n if (this.block_scope) {\n clone.block_scope = this.block_scope.clone();\n }\n return clone;\n}\n\nvar AST_Block = DEFNODE(\"Block\", \"body block_scope\", function AST_Block(props) {\n if (props) {\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A body of statements (usually braced)\",\n $propdoc: {\n body: \"[AST_Statement*] an array of statements\",\n block_scope: \"[AST_Scope] the block scope\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n walk_body(this, visitor);\n });\n },\n _children_backwards(push) {\n let i = this.body.length;\n while (i--) push(this.body[i]);\n },\n clone: clone_block_scope\n}, AST_Statement);\n\nvar AST_BlockStatement = DEFNODE(\"BlockStatement\", null, function AST_BlockStatement(props) {\n if (props) {\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A block statement\",\n}, AST_Block);\n\nvar AST_EmptyStatement = DEFNODE(\"EmptyStatement\", null, function AST_EmptyStatement(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The empty statement (empty block or simply a semicolon)\"\n}, AST_Statement);\n\nvar AST_StatementWithBody = DEFNODE(\"StatementWithBody\", \"body\", function AST_StatementWithBody(props) {\n if (props) {\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for all statements that contain one nested body: `For`, `ForIn`, `Do`, `While`, `With`\",\n $propdoc: {\n body: \"[AST_Statement] the body; this should always be present, even if it's an AST_EmptyStatement\"\n }\n}, AST_Statement);\n\nvar AST_LabeledStatement = DEFNODE(\"LabeledStatement\", \"label\", function AST_LabeledStatement(props) {\n if (props) {\n this.label = props.label;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Statement with a label\",\n $propdoc: {\n label: \"[AST_Label] a label definition\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.label._walk(visitor);\n this.body._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.body);\n push(this.label);\n },\n clone: function(deep) {\n var node = this._clone(deep);\n if (deep) {\n var label = node.label;\n var def = this.label;\n node.walk(new TreeWalker(function(node) {\n if (node instanceof AST_LoopControl\n && node.label && node.label.thedef === def) {\n node.label.thedef = label;\n label.references.push(node);\n }\n }));\n }\n return node;\n }\n}, AST_StatementWithBody);\n\nvar AST_IterationStatement = DEFNODE(\n \"IterationStatement\",\n \"block_scope\",\n function AST_IterationStatement(props) {\n if (props) {\n this.block_scope = props.block_scope;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"Internal class. All loops inherit from it.\",\n $propdoc: {\n block_scope: \"[AST_Scope] the block scope for this iteration statement.\"\n },\n clone: clone_block_scope\n },\n AST_StatementWithBody\n);\n\nvar AST_DWLoop = DEFNODE(\"DWLoop\", \"condition\", function AST_DWLoop(props) {\n if (props) {\n this.condition = props.condition;\n this.block_scope = props.block_scope;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for do/while statements\",\n $propdoc: {\n condition: \"[AST_Node] the loop condition. Should not be instanceof AST_Statement\"\n }\n}, AST_IterationStatement);\n\nvar AST_Do = DEFNODE(\"Do\", null, function AST_Do(props) {\n if (props) {\n this.condition = props.condition;\n this.block_scope = props.block_scope;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `do` statement\",\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.body._walk(visitor);\n this.condition._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.condition);\n push(this.body);\n }\n}, AST_DWLoop);\n\nvar AST_While = DEFNODE(\"While\", null, function AST_While(props) {\n if (props) {\n this.condition = props.condition;\n this.block_scope = props.block_scope;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `while` statement\",\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.condition._walk(visitor);\n this.body._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.body);\n push(this.condition);\n },\n}, AST_DWLoop);\n\nvar AST_For = DEFNODE(\"For\", \"init condition step\", function AST_For(props) {\n if (props) {\n this.init = props.init;\n this.condition = props.condition;\n this.step = props.step;\n this.block_scope = props.block_scope;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `for` statement\",\n $propdoc: {\n init: \"[AST_Node?] the `for` initialization code, or null if empty\",\n condition: \"[AST_Node?] the `for` termination clause, or null if empty\",\n step: \"[AST_Node?] the `for` update clause, or null if empty\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n if (this.init) this.init._walk(visitor);\n if (this.condition) this.condition._walk(visitor);\n if (this.step) this.step._walk(visitor);\n this.body._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.body);\n if (this.step) push(this.step);\n if (this.condition) push(this.condition);\n if (this.init) push(this.init);\n },\n}, AST_IterationStatement);\n\nvar AST_ForIn = DEFNODE(\"ForIn\", \"init object\", function AST_ForIn(props) {\n if (props) {\n this.init = props.init;\n this.object = props.object;\n this.block_scope = props.block_scope;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `for ... in` statement\",\n $propdoc: {\n init: \"[AST_Node] the `for/in` initialization code\",\n object: \"[AST_Node] the object that we're looping through\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.init._walk(visitor);\n this.object._walk(visitor);\n this.body._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.body);\n if (this.object) push(this.object);\n if (this.init) push(this.init);\n },\n}, AST_IterationStatement);\n\nvar AST_ForOf = DEFNODE(\"ForOf\", \"await\", function AST_ForOf(props) {\n if (props) {\n this.await = props.await;\n this.init = props.init;\n this.object = props.object;\n this.block_scope = props.block_scope;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `for ... of` statement\",\n}, AST_ForIn);\n\nvar AST_With = DEFNODE(\"With\", \"expression\", function AST_With(props) {\n if (props) {\n this.expression = props.expression;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `with` statement\",\n $propdoc: {\n expression: \"[AST_Node] the `with` expression\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expression._walk(visitor);\n this.body._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.body);\n push(this.expression);\n },\n}, AST_StatementWithBody);\n\n/* -----[ scope and functions ]----- */\n\nvar AST_Scope = DEFNODE(\n \"Scope\",\n \"variables uses_with uses_eval parent_scope enclosed cname\",\n function AST_Scope(props) {\n if (props) {\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"Base class for all statements introducing a lexical scope\",\n $propdoc: {\n variables: \"[Map/S] a map of name -> SymbolDef for all variables/functions defined in this scope\",\n uses_with: \"[boolean/S] tells whether this scope uses the `with` statement\",\n uses_eval: \"[boolean/S] tells whether this scope contains a direct call to the global `eval`\",\n parent_scope: \"[AST_Scope?/S] link to the parent scope\",\n enclosed: \"[SymbolDef*/S] a list of all symbol definitions that are accessed from this scope or any subscopes\",\n cname: \"[integer/S] current index for mangling variables (used internally by the mangler)\",\n },\n get_defun_scope: function() {\n var self = this;\n while (self.is_block_scope()) {\n self = self.parent_scope;\n }\n return self;\n },\n clone: function(deep, toplevel) {\n var node = this._clone(deep);\n if (deep && this.variables && toplevel && !this._block_scope) {\n node.figure_out_scope({}, {\n toplevel: toplevel,\n parent_scope: this.parent_scope\n });\n } else {\n if (this.variables) node.variables = new Map(this.variables);\n if (this.enclosed) node.enclosed = this.enclosed.slice();\n if (this._block_scope) node._block_scope = this._block_scope;\n }\n return node;\n },\n pinned: function() {\n return this.uses_eval || this.uses_with;\n }\n },\n AST_Block\n);\n\nvar AST_Toplevel = DEFNODE(\"Toplevel\", \"globals\", function AST_Toplevel(props) {\n if (props) {\n this.globals = props.globals;\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The toplevel scope\",\n $propdoc: {\n globals: \"[Map/S] a map of name -> SymbolDef for all undeclared names\",\n },\n wrap_commonjs: function(name) {\n var body = this.body;\n var wrapped_tl = \"(function(exports){'$ORIG';})(typeof \" + name + \"=='undefined'?(\" + name + \"={}):\" + name + \");\";\n wrapped_tl = parse(wrapped_tl);\n wrapped_tl = wrapped_tl.transform(new TreeTransformer(function(node) {\n if (node instanceof AST_Directive && node.value == \"$ORIG\") {\n return MAP.splice(body);\n }\n }));\n return wrapped_tl;\n },\n wrap_enclose: function(args_values) {\n if (typeof args_values != \"string\") args_values = \"\";\n var index = args_values.indexOf(\":\");\n if (index < 0) index = args_values.length;\n var body = this.body;\n return parse([\n \"(function(\",\n args_values.slice(0, index),\n '){\"$ORIG\"})(',\n args_values.slice(index + 1),\n \")\"\n ].join(\"\")).transform(new TreeTransformer(function(node) {\n if (node instanceof AST_Directive && node.value == \"$ORIG\") {\n return MAP.splice(body);\n }\n }));\n }\n}, AST_Scope);\n\nvar AST_Expansion = DEFNODE(\"Expansion\", \"expression\", function AST_Expansion(props) {\n if (props) {\n this.expression = props.expression;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"An expandible argument, such as ...rest, a splat, such as [1,2,...all], or an expansion in a variable declaration, such as var [first, ...rest] = list\",\n $propdoc: {\n expression: \"[AST_Node] the thing to be expanded\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expression.walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.expression);\n },\n});\n\nvar AST_Lambda = DEFNODE(\n \"Lambda\",\n \"name argnames uses_arguments is_generator async\",\n function AST_Lambda(props) {\n if (props) {\n this.name = props.name;\n this.argnames = props.argnames;\n this.uses_arguments = props.uses_arguments;\n this.is_generator = props.is_generator;\n this.async = props.async;\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"Base class for functions\",\n $propdoc: {\n name: \"[AST_SymbolDeclaration?] the name of this function\",\n argnames: \"[AST_SymbolFunarg|AST_Destructuring|AST_Expansion|AST_DefaultAssign*] array of function arguments, destructurings, or expanding arguments\",\n uses_arguments: \"[boolean/S] tells whether this function accesses the arguments array\",\n is_generator: \"[boolean] is this a generator method\",\n async: \"[boolean] is this method async\",\n },\n args_as_names: function () {\n var out = [];\n for (var i = 0; i < this.argnames.length; i++) {\n if (this.argnames[i] instanceof AST_Destructuring) {\n out.push(...this.argnames[i].all_symbols());\n } else {\n out.push(this.argnames[i]);\n }\n }\n return out;\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n if (this.name) this.name._walk(visitor);\n var argnames = this.argnames;\n for (var i = 0, len = argnames.length; i < len; i++) {\n argnames[i]._walk(visitor);\n }\n walk_body(this, visitor);\n });\n },\n _children_backwards(push) {\n let i = this.body.length;\n while (i--) push(this.body[i]);\n\n i = this.argnames.length;\n while (i--) push(this.argnames[i]);\n\n if (this.name) push(this.name);\n },\n is_braceless() {\n return this.body[0] instanceof AST_Return && this.body[0].value;\n },\n // Default args and expansion don't count, so .argnames.length doesn't cut it\n length_property() {\n let length = 0;\n\n for (const arg of this.argnames) {\n if (arg instanceof AST_SymbolFunarg || arg instanceof AST_Destructuring) {\n length++;\n }\n }\n\n return length;\n }\n },\n AST_Scope\n);\n\nvar AST_Accessor = DEFNODE(\"Accessor\", null, function AST_Accessor(props) {\n if (props) {\n this.name = props.name;\n this.argnames = props.argnames;\n this.uses_arguments = props.uses_arguments;\n this.is_generator = props.is_generator;\n this.async = props.async;\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A setter/getter function. The `name` property is always null.\"\n}, AST_Lambda);\n\nvar AST_Function = DEFNODE(\"Function\", null, function AST_Function(props) {\n if (props) {\n this.name = props.name;\n this.argnames = props.argnames;\n this.uses_arguments = props.uses_arguments;\n this.is_generator = props.is_generator;\n this.async = props.async;\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A function expression\"\n}, AST_Lambda);\n\nvar AST_Arrow = DEFNODE(\"Arrow\", null, function AST_Arrow(props) {\n if (props) {\n this.name = props.name;\n this.argnames = props.argnames;\n this.uses_arguments = props.uses_arguments;\n this.is_generator = props.is_generator;\n this.async = props.async;\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"An ES6 Arrow function ((a) => b)\"\n}, AST_Lambda);\n\nvar AST_Defun = DEFNODE(\"Defun\", null, function AST_Defun(props) {\n if (props) {\n this.name = props.name;\n this.argnames = props.argnames;\n this.uses_arguments = props.uses_arguments;\n this.is_generator = props.is_generator;\n this.async = props.async;\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A function definition\"\n}, AST_Lambda);\n\n/* -----[ DESTRUCTURING ]----- */\nvar AST_Destructuring = DEFNODE(\"Destructuring\", \"names is_array\", function AST_Destructuring(props) {\n if (props) {\n this.names = props.names;\n this.is_array = props.is_array;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A destructuring of several names. Used in destructuring assignment and with destructuring function argument names\",\n $propdoc: {\n \"names\": \"[AST_Node*] Array of properties or elements\",\n \"is_array\": \"[Boolean] Whether the destructuring represents an object or array\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.names.forEach(function(name) {\n name._walk(visitor);\n });\n });\n },\n _children_backwards(push) {\n let i = this.names.length;\n while (i--) push(this.names[i]);\n },\n all_symbols: function() {\n var out = [];\n walk(this, node => {\n if (node instanceof AST_SymbolDeclaration) {\n out.push(node);\n }\n if (node instanceof AST_Lambda) {\n return true;\n }\n });\n return out;\n }\n});\n\nvar AST_PrefixedTemplateString = DEFNODE(\n \"PrefixedTemplateString\",\n \"template_string prefix\",\n function AST_PrefixedTemplateString(props) {\n if (props) {\n this.template_string = props.template_string;\n this.prefix = props.prefix;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"A templatestring with a prefix, such as String.raw`foobarbaz`\",\n $propdoc: {\n template_string: \"[AST_TemplateString] The template string\",\n prefix: \"[AST_Node] The prefix, which will get called.\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function () {\n this.prefix._walk(visitor);\n this.template_string._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.template_string);\n push(this.prefix);\n },\n }\n);\n\nvar AST_TemplateString = DEFNODE(\"TemplateString\", \"segments\", function AST_TemplateString(props) {\n if (props) {\n this.segments = props.segments;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A template string literal\",\n $propdoc: {\n segments: \"[AST_Node*] One or more segments, starting with AST_TemplateSegment. AST_Node may follow AST_TemplateSegment, but each AST_Node must be followed by AST_TemplateSegment.\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.segments.forEach(function(seg) {\n seg._walk(visitor);\n });\n });\n },\n _children_backwards(push) {\n let i = this.segments.length;\n while (i--) push(this.segments[i]);\n }\n});\n\nvar AST_TemplateSegment = DEFNODE(\"TemplateSegment\", \"value raw\", function AST_TemplateSegment(props) {\n if (props) {\n this.value = props.value;\n this.raw = props.raw;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A segment of a template string literal\",\n $propdoc: {\n value: \"Content of the segment\",\n raw: \"Raw source of the segment\",\n }\n});\n\n/* -----[ JUMPS ]----- */\n\nvar AST_Jump = DEFNODE(\"Jump\", null, function AST_Jump(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for “jumps” (for now that's `return`, `throw`, `break` and `continue`)\"\n}, AST_Statement);\n\n/** Base class for “exits” (`return` and `throw`) */\nvar AST_Exit = DEFNODE(\"Exit\", \"value\", function AST_Exit(props) {\n if (props) {\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for “exits” (`return` and `throw`)\",\n $propdoc: {\n value: \"[AST_Node?] the value returned or thrown by this statement; could be null for AST_Return\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, this.value && function() {\n this.value._walk(visitor);\n });\n },\n _children_backwards(push) {\n if (this.value) push(this.value);\n },\n}, AST_Jump);\n\nvar AST_Return = DEFNODE(\"Return\", null, function AST_Return(props) {\n if (props) {\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `return` statement\"\n}, AST_Exit);\n\nvar AST_Throw = DEFNODE(\"Throw\", null, function AST_Throw(props) {\n if (props) {\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `throw` statement\"\n}, AST_Exit);\n\nvar AST_LoopControl = DEFNODE(\"LoopControl\", \"label\", function AST_LoopControl(props) {\n if (props) {\n this.label = props.label;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for loop control statements (`break` and `continue`)\",\n $propdoc: {\n label: \"[AST_LabelRef?] the label, or null if none\",\n },\n _walk: function(visitor) {\n return visitor._visit(this, this.label && function() {\n this.label._walk(visitor);\n });\n },\n _children_backwards(push) {\n if (this.label) push(this.label);\n },\n}, AST_Jump);\n\nvar AST_Break = DEFNODE(\"Break\", null, function AST_Break(props) {\n if (props) {\n this.label = props.label;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `break` statement\"\n}, AST_LoopControl);\n\nvar AST_Continue = DEFNODE(\"Continue\", null, function AST_Continue(props) {\n if (props) {\n this.label = props.label;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `continue` statement\"\n}, AST_LoopControl);\n\nvar AST_Await = DEFNODE(\"Await\", \"expression\", function AST_Await(props) {\n if (props) {\n this.expression = props.expression;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"An `await` statement\",\n $propdoc: {\n expression: \"[AST_Node] the mandatory expression being awaited\",\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expression._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.expression);\n },\n});\n\nvar AST_Yield = DEFNODE(\"Yield\", \"expression is_star\", function AST_Yield(props) {\n if (props) {\n this.expression = props.expression;\n this.is_star = props.is_star;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `yield` statement\",\n $propdoc: {\n expression: \"[AST_Node?] the value returned or thrown by this statement; could be null (representing undefined) but only when is_star is set to false\",\n is_star: \"[Boolean] Whether this is a yield or yield* statement\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, this.expression && function() {\n this.expression._walk(visitor);\n });\n },\n _children_backwards(push) {\n if (this.expression) push(this.expression);\n }\n});\n\n/* -----[ IF ]----- */\n\nvar AST_If = DEFNODE(\"If\", \"condition alternative\", function AST_If(props) {\n if (props) {\n this.condition = props.condition;\n this.alternative = props.alternative;\n this.body = props.body;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `if` statement\",\n $propdoc: {\n condition: \"[AST_Node] the `if` condition\",\n alternative: \"[AST_Statement?] the `else` part, or null if not present\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.condition._walk(visitor);\n this.body._walk(visitor);\n if (this.alternative) this.alternative._walk(visitor);\n });\n },\n _children_backwards(push) {\n if (this.alternative) {\n push(this.alternative);\n }\n push(this.body);\n push(this.condition);\n }\n}, AST_StatementWithBody);\n\n/* -----[ SWITCH ]----- */\n\nvar AST_Switch = DEFNODE(\"Switch\", \"expression\", function AST_Switch(props) {\n if (props) {\n this.expression = props.expression;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `switch` statement\",\n $propdoc: {\n expression: \"[AST_Node] the `switch` “discriminant”\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expression._walk(visitor);\n walk_body(this, visitor);\n });\n },\n _children_backwards(push) {\n let i = this.body.length;\n while (i--) push(this.body[i]);\n push(this.expression);\n }\n}, AST_Block);\n\nvar AST_SwitchBranch = DEFNODE(\"SwitchBranch\", null, function AST_SwitchBranch(props) {\n if (props) {\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for `switch` branches\",\n}, AST_Block);\n\nvar AST_Default = DEFNODE(\"Default\", null, function AST_Default(props) {\n if (props) {\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `default` switch branch\",\n}, AST_SwitchBranch);\n\nvar AST_Case = DEFNODE(\"Case\", \"expression\", function AST_Case(props) {\n if (props) {\n this.expression = props.expression;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `case` switch branch\",\n $propdoc: {\n expression: \"[AST_Node] the `case` expression\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expression._walk(visitor);\n walk_body(this, visitor);\n });\n },\n _children_backwards(push) {\n let i = this.body.length;\n while (i--) push(this.body[i]);\n push(this.expression);\n },\n}, AST_SwitchBranch);\n\n/* -----[ EXCEPTIONS ]----- */\n\nvar AST_Try = DEFNODE(\"Try\", \"body bcatch bfinally\", function AST_Try(props) {\n if (props) {\n this.body = props.body;\n this.bcatch = props.bcatch;\n this.bfinally = props.bfinally;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `try` statement\",\n $propdoc: {\n body: \"[AST_TryBlock] the try block\",\n bcatch: \"[AST_Catch?] the catch block, or null if not present\",\n bfinally: \"[AST_Finally?] the finally block, or null if not present\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.body._walk(visitor);\n if (this.bcatch) this.bcatch._walk(visitor);\n if (this.bfinally) this.bfinally._walk(visitor);\n });\n },\n _children_backwards(push) {\n if (this.bfinally) push(this.bfinally);\n if (this.bcatch) push(this.bcatch);\n push(this.body);\n },\n}, AST_Statement);\n\nvar AST_TryBlock = DEFNODE(\"TryBlock\", null, function AST_TryBlock(props) {\n if (props) {\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The `try` block of a try statement\"\n}, AST_Block);\n\nvar AST_Catch = DEFNODE(\"Catch\", \"argname\", function AST_Catch(props) {\n if (props) {\n this.argname = props.argname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `catch` node; only makes sense as part of a `try` statement\",\n $propdoc: {\n argname: \"[AST_SymbolCatch|AST_Destructuring|AST_Expansion|AST_DefaultAssign] symbol for the exception\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n if (this.argname) this.argname._walk(visitor);\n walk_body(this, visitor);\n });\n },\n _children_backwards(push) {\n let i = this.body.length;\n while (i--) push(this.body[i]);\n if (this.argname) push(this.argname);\n },\n}, AST_Block);\n\nvar AST_Finally = DEFNODE(\"Finally\", null, function AST_Finally(props) {\n if (props) {\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `finally` node; only makes sense as part of a `try` statement\"\n}, AST_Block);\n\n/* -----[ VAR/CONST ]----- */\n\nvar AST_Definitions = DEFNODE(\"Definitions\", \"definitions\", function AST_Definitions(props) {\n if (props) {\n this.definitions = props.definitions;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for `var` or `const` nodes (variable declarations/initializations)\",\n $propdoc: {\n definitions: \"[AST_VarDef*] array of variable definitions\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n var definitions = this.definitions;\n for (var i = 0, len = definitions.length; i < len; i++) {\n definitions[i]._walk(visitor);\n }\n });\n },\n _children_backwards(push) {\n let i = this.definitions.length;\n while (i--) push(this.definitions[i]);\n },\n}, AST_Statement);\n\nvar AST_Var = DEFNODE(\"Var\", null, function AST_Var(props) {\n if (props) {\n this.definitions = props.definitions;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `var` statement\"\n}, AST_Definitions);\n\nvar AST_Let = DEFNODE(\"Let\", null, function AST_Let(props) {\n if (props) {\n this.definitions = props.definitions;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `let` statement\"\n}, AST_Definitions);\n\nvar AST_Const = DEFNODE(\"Const\", null, function AST_Const(props) {\n if (props) {\n this.definitions = props.definitions;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A `const` statement\"\n}, AST_Definitions);\n\nvar AST_VarDef = DEFNODE(\"VarDef\", \"name value\", function AST_VarDef(props) {\n if (props) {\n this.name = props.name;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A variable declaration; only appears in a AST_Definitions node\",\n $propdoc: {\n name: \"[AST_Destructuring|AST_SymbolConst|AST_SymbolLet|AST_SymbolVar] name of the variable\",\n value: \"[AST_Node?] initializer, or null of there's no initializer\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.name._walk(visitor);\n if (this.value) this.value._walk(visitor);\n });\n },\n _children_backwards(push) {\n if (this.value) push(this.value);\n push(this.name);\n },\n declarations_as_names() {\n if (this.name instanceof AST_SymbolDeclaration) {\n return [this];\n } else {\n return this.name.all_symbols();\n }\n }\n});\n\nvar AST_NameMapping = DEFNODE(\"NameMapping\", \"foreign_name name\", function AST_NameMapping(props) {\n if (props) {\n this.foreign_name = props.foreign_name;\n this.name = props.name;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The part of the export/import statement that declare names from a module.\",\n $propdoc: {\n foreign_name: \"[AST_SymbolExportForeign|AST_SymbolImportForeign] The name being exported/imported (as specified in the module)\",\n name: \"[AST_SymbolExport|AST_SymbolImport] The name as it is visible to this module.\"\n },\n _walk: function (visitor) {\n return visitor._visit(this, function() {\n this.foreign_name._walk(visitor);\n this.name._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.name);\n push(this.foreign_name);\n },\n});\n\nvar AST_Import = DEFNODE(\n \"Import\",\n \"imported_name imported_names module_name assert_clause\",\n function AST_Import(props) {\n if (props) {\n this.imported_name = props.imported_name;\n this.imported_names = props.imported_names;\n this.module_name = props.module_name;\n this.assert_clause = props.assert_clause;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"An `import` statement\",\n $propdoc: {\n imported_name: \"[AST_SymbolImport] The name of the variable holding the module's default export.\",\n imported_names: \"[AST_NameMapping*] The names of non-default imported variables\",\n module_name: \"[AST_String] String literal describing where this module came from\",\n assert_clause: \"[AST_Object?] The import assertion\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n if (this.imported_name) {\n this.imported_name._walk(visitor);\n }\n if (this.imported_names) {\n this.imported_names.forEach(function(name_import) {\n name_import._walk(visitor);\n });\n }\n this.module_name._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.module_name);\n if (this.imported_names) {\n let i = this.imported_names.length;\n while (i--) push(this.imported_names[i]);\n }\n if (this.imported_name) push(this.imported_name);\n },\n }\n);\n\nvar AST_ImportMeta = DEFNODE(\"ImportMeta\", null, function AST_ImportMeta(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A reference to import.meta\",\n});\n\nvar AST_Export = DEFNODE(\n \"Export\",\n \"exported_definition exported_value is_default exported_names module_name assert_clause\",\n function AST_Export(props) {\n if (props) {\n this.exported_definition = props.exported_definition;\n this.exported_value = props.exported_value;\n this.is_default = props.is_default;\n this.exported_names = props.exported_names;\n this.module_name = props.module_name;\n this.assert_clause = props.assert_clause;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"An `export` statement\",\n $propdoc: {\n exported_definition: \"[AST_Defun|AST_Definitions|AST_DefClass?] An exported definition\",\n exported_value: \"[AST_Node?] An exported value\",\n exported_names: \"[AST_NameMapping*?] List of exported names\",\n module_name: \"[AST_String?] Name of the file to load exports from\",\n is_default: \"[Boolean] Whether this is the default exported value of this module\",\n assert_clause: \"[AST_Object?] The import assertion\"\n },\n _walk: function (visitor) {\n return visitor._visit(this, function () {\n if (this.exported_definition) {\n this.exported_definition._walk(visitor);\n }\n if (this.exported_value) {\n this.exported_value._walk(visitor);\n }\n if (this.exported_names) {\n this.exported_names.forEach(function(name_export) {\n name_export._walk(visitor);\n });\n }\n if (this.module_name) {\n this.module_name._walk(visitor);\n }\n });\n },\n _children_backwards(push) {\n if (this.module_name) push(this.module_name);\n if (this.exported_names) {\n let i = this.exported_names.length;\n while (i--) push(this.exported_names[i]);\n }\n if (this.exported_value) push(this.exported_value);\n if (this.exported_definition) push(this.exported_definition);\n }\n },\n AST_Statement\n);\n\n/* -----[ OTHER ]----- */\n\nvar AST_Call = DEFNODE(\n \"Call\",\n \"expression args optional _annotations\",\n function AST_Call(props) {\n if (props) {\n this.expression = props.expression;\n this.args = props.args;\n this.optional = props.optional;\n this._annotations = props._annotations;\n this.start = props.start;\n this.end = props.end;\n this.initialize();\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"A function call expression\",\n $propdoc: {\n expression: \"[AST_Node] expression to invoke as function\",\n args: \"[AST_Node*] array of arguments\",\n optional: \"[boolean] whether this is an optional call (IE ?.() )\",\n _annotations: \"[number] bitfield containing information about the call\"\n },\n initialize() {\n if (this._annotations == null) this._annotations = 0;\n },\n _walk(visitor) {\n return visitor._visit(this, function() {\n var args = this.args;\n for (var i = 0, len = args.length; i < len; i++) {\n args[i]._walk(visitor);\n }\n this.expression._walk(visitor); // TODO why do we need to crawl this last?\n });\n },\n _children_backwards(push) {\n let i = this.args.length;\n while (i--) push(this.args[i]);\n push(this.expression);\n },\n }\n);\n\nvar AST_New = DEFNODE(\"New\", null, function AST_New(props) {\n if (props) {\n this.expression = props.expression;\n this.args = props.args;\n this.optional = props.optional;\n this._annotations = props._annotations;\n this.start = props.start;\n this.end = props.end;\n this.initialize();\n }\n\n this.flags = 0;\n}, {\n $documentation: \"An object instantiation. Derives from a function call since it has exactly the same properties\"\n}, AST_Call);\n\nvar AST_Sequence = DEFNODE(\"Sequence\", \"expressions\", function AST_Sequence(props) {\n if (props) {\n this.expressions = props.expressions;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A sequence expression (comma-separated expressions)\",\n $propdoc: {\n expressions: \"[AST_Node*] array of expressions (at least two)\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expressions.forEach(function(node) {\n node._walk(visitor);\n });\n });\n },\n _children_backwards(push) {\n let i = this.expressions.length;\n while (i--) push(this.expressions[i]);\n },\n});\n\nvar AST_PropAccess = DEFNODE(\n \"PropAccess\",\n \"expression property optional\",\n function AST_PropAccess(props) {\n if (props) {\n this.expression = props.expression;\n this.property = props.property;\n this.optional = props.optional;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"Base class for property access expressions, i.e. `a.foo` or `a[\\\"foo\\\"]`\",\n $propdoc: {\n expression: \"[AST_Node] the “container” expression\",\n property: \"[AST_Node|string] the property to access. For AST_Dot & AST_DotHash this is always a plain string, while for AST_Sub it's an arbitrary AST_Node\",\n\n optional: \"[boolean] whether this is an optional property access (IE ?.)\"\n }\n }\n);\n\nvar AST_Dot = DEFNODE(\"Dot\", \"quote\", function AST_Dot(props) {\n if (props) {\n this.quote = props.quote;\n this.expression = props.expression;\n this.property = props.property;\n this.optional = props.optional;\n this._annotations = props._annotations;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A dotted property access expression\",\n $propdoc: {\n quote: \"[string] the original quote character when transformed from AST_Sub\",\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expression._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.expression);\n },\n}, AST_PropAccess);\n\nvar AST_DotHash = DEFNODE(\"DotHash\", \"\", function AST_DotHash(props) {\n if (props) {\n this.expression = props.expression;\n this.property = props.property;\n this.optional = props.optional;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A dotted property access to a private property\",\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expression._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.expression);\n },\n}, AST_PropAccess);\n\nvar AST_Sub = DEFNODE(\"Sub\", null, function AST_Sub(props) {\n if (props) {\n this.expression = props.expression;\n this.property = props.property;\n this.optional = props.optional;\n this._annotations = props._annotations;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Index-style property access, i.e. `a[\\\"foo\\\"]`\",\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expression._walk(visitor);\n this.property._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.property);\n push(this.expression);\n },\n}, AST_PropAccess);\n\nvar AST_Chain = DEFNODE(\"Chain\", \"expression\", function AST_Chain(props) {\n if (props) {\n this.expression = props.expression;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A chain expression like a?.b?.(c)?.[d]\",\n $propdoc: {\n expression: \"[AST_Call|AST_Dot|AST_DotHash|AST_Sub] chain element.\"\n },\n _walk: function (visitor) {\n return visitor._visit(this, function() {\n this.expression._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.expression);\n },\n});\n\nvar AST_Unary = DEFNODE(\"Unary\", \"operator expression\", function AST_Unary(props) {\n if (props) {\n this.operator = props.operator;\n this.expression = props.expression;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for unary expressions\",\n $propdoc: {\n operator: \"[string] the operator\",\n expression: \"[AST_Node] expression that this unary operator applies to\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.expression._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.expression);\n },\n});\n\nvar AST_UnaryPrefix = DEFNODE(\"UnaryPrefix\", null, function AST_UnaryPrefix(props) {\n if (props) {\n this.operator = props.operator;\n this.expression = props.expression;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Unary prefix expression, i.e. `typeof i` or `++i`\"\n}, AST_Unary);\n\nvar AST_UnaryPostfix = DEFNODE(\"UnaryPostfix\", null, function AST_UnaryPostfix(props) {\n if (props) {\n this.operator = props.operator;\n this.expression = props.expression;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Unary postfix expression, i.e. `i++`\"\n}, AST_Unary);\n\nvar AST_Binary = DEFNODE(\"Binary\", \"operator left right\", function AST_Binary(props) {\n if (props) {\n this.operator = props.operator;\n this.left = props.left;\n this.right = props.right;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Binary expression, i.e. `a + b`\",\n $propdoc: {\n left: \"[AST_Node] left-hand side expression\",\n operator: \"[string] the operator\",\n right: \"[AST_Node] right-hand side expression\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.left._walk(visitor);\n this.right._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.right);\n push(this.left);\n },\n});\n\nvar AST_Conditional = DEFNODE(\n \"Conditional\",\n \"condition consequent alternative\",\n function AST_Conditional(props) {\n if (props) {\n this.condition = props.condition;\n this.consequent = props.consequent;\n this.alternative = props.alternative;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"Conditional expression using the ternary operator, i.e. `a ? b : c`\",\n $propdoc: {\n condition: \"[AST_Node]\",\n consequent: \"[AST_Node]\",\n alternative: \"[AST_Node]\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.condition._walk(visitor);\n this.consequent._walk(visitor);\n this.alternative._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.alternative);\n push(this.consequent);\n push(this.condition);\n },\n }\n);\n\nvar AST_Assign = DEFNODE(\"Assign\", \"logical\", function AST_Assign(props) {\n if (props) {\n this.logical = props.logical;\n this.operator = props.operator;\n this.left = props.left;\n this.right = props.right;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"An assignment expression — `a = b + 5`\",\n $propdoc: {\n logical: \"Whether it's a logical assignment\"\n }\n}, AST_Binary);\n\nvar AST_DefaultAssign = DEFNODE(\"DefaultAssign\", null, function AST_DefaultAssign(props) {\n if (props) {\n this.operator = props.operator;\n this.left = props.left;\n this.right = props.right;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A default assignment expression like in `(a = 3) => a`\"\n}, AST_Binary);\n\n/* -----[ LITERALS ]----- */\n\nvar AST_Array = DEFNODE(\"Array\", \"elements\", function AST_Array(props) {\n if (props) {\n this.elements = props.elements;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"An array literal\",\n $propdoc: {\n elements: \"[AST_Node*] array of elements\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n var elements = this.elements;\n for (var i = 0, len = elements.length; i < len; i++) {\n elements[i]._walk(visitor);\n }\n });\n },\n _children_backwards(push) {\n let i = this.elements.length;\n while (i--) push(this.elements[i]);\n },\n});\n\nvar AST_Object = DEFNODE(\"Object\", \"properties\", function AST_Object(props) {\n if (props) {\n this.properties = props.properties;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"An object literal\",\n $propdoc: {\n properties: \"[AST_ObjectProperty*] array of properties\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n var properties = this.properties;\n for (var i = 0, len = properties.length; i < len; i++) {\n properties[i]._walk(visitor);\n }\n });\n },\n _children_backwards(push) {\n let i = this.properties.length;\n while (i--) push(this.properties[i]);\n },\n});\n\nvar AST_ObjectProperty = DEFNODE(\"ObjectProperty\", \"key value\", function AST_ObjectProperty(props) {\n if (props) {\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n this._annotations = props._annotations;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for literal object properties\",\n $propdoc: {\n key: \"[string|AST_Node] property name. For ObjectKeyVal this is a string. For getters, setters and computed property this is an AST_Node.\",\n value: \"[AST_Node] property value. For getters and setters this is an AST_Accessor.\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n if (this.key instanceof AST_Node)\n this.key._walk(visitor);\n this.value._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.value);\n if (this.key instanceof AST_Node) push(this.key);\n }\n});\n\nvar AST_ObjectKeyVal = DEFNODE(\"ObjectKeyVal\", \"quote\", function AST_ObjectKeyVal(props) {\n if (props) {\n this.quote = props.quote;\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n this._annotations = props._annotations;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A key: value object property\",\n $propdoc: {\n quote: \"[string] the original quote character\"\n },\n computed_key() {\n return this.key instanceof AST_Node;\n }\n}, AST_ObjectProperty);\n\nvar AST_PrivateSetter = DEFNODE(\"PrivateSetter\", \"static\", function AST_PrivateSetter(props) {\n if (props) {\n this.static = props.static;\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $propdoc: {\n static: \"[boolean] whether this is a static private setter\"\n },\n $documentation: \"A private setter property\",\n computed_key() {\n return false;\n }\n}, AST_ObjectProperty);\n\nvar AST_PrivateGetter = DEFNODE(\"PrivateGetter\", \"static\", function AST_PrivateGetter(props) {\n if (props) {\n this.static = props.static;\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $propdoc: {\n static: \"[boolean] whether this is a static private getter\"\n },\n $documentation: \"A private getter property\",\n computed_key() {\n return false;\n }\n}, AST_ObjectProperty);\n\nvar AST_ObjectSetter = DEFNODE(\"ObjectSetter\", \"quote static\", function AST_ObjectSetter(props) {\n if (props) {\n this.quote = props.quote;\n this.static = props.static;\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n this._annotations = props._annotations;\n }\n\n this.flags = 0;\n}, {\n $propdoc: {\n quote: \"[string|undefined] the original quote character, if any\",\n static: \"[boolean] whether this is a static setter (classes only)\"\n },\n $documentation: \"An object setter property\",\n computed_key() {\n return !(this.key instanceof AST_SymbolMethod);\n }\n}, AST_ObjectProperty);\n\nvar AST_ObjectGetter = DEFNODE(\"ObjectGetter\", \"quote static\", function AST_ObjectGetter(props) {\n if (props) {\n this.quote = props.quote;\n this.static = props.static;\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n this._annotations = props._annotations;\n }\n\n this.flags = 0;\n}, {\n $propdoc: {\n quote: \"[string|undefined] the original quote character, if any\",\n static: \"[boolean] whether this is a static getter (classes only)\"\n },\n $documentation: \"An object getter property\",\n computed_key() {\n return !(this.key instanceof AST_SymbolMethod);\n }\n}, AST_ObjectProperty);\n\nvar AST_ConciseMethod = DEFNODE(\n \"ConciseMethod\",\n \"quote static is_generator async\",\n function AST_ConciseMethod(props) {\n if (props) {\n this.quote = props.quote;\n this.static = props.static;\n this.is_generator = props.is_generator;\n this.async = props.async;\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n this._annotations = props._annotations;\n }\n\n this.flags = 0;\n },\n {\n $propdoc: {\n quote: \"[string|undefined] the original quote character, if any\",\n static: \"[boolean] is this method static (classes only)\",\n is_generator: \"[boolean] is this a generator method\",\n async: \"[boolean] is this method async\",\n },\n $documentation: \"An ES6 concise method inside an object or class\",\n computed_key() {\n return !(this.key instanceof AST_SymbolMethod);\n }\n },\n AST_ObjectProperty\n);\n\nvar AST_PrivateMethod = DEFNODE(\"PrivateMethod\", \"\", function AST_PrivateMethod(props) {\n if (props) {\n this.quote = props.quote;\n this.static = props.static;\n this.is_generator = props.is_generator;\n this.async = props.async;\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A private class method inside a class\",\n}, AST_ConciseMethod);\n\nvar AST_Class = DEFNODE(\"Class\", \"name extends properties\", function AST_Class(props) {\n if (props) {\n this.name = props.name;\n this.extends = props.extends;\n this.properties = props.properties;\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $propdoc: {\n name: \"[AST_SymbolClass|AST_SymbolDefClass?] optional class name.\",\n extends: \"[AST_Node]? optional parent class\",\n properties: \"[AST_ObjectProperty*] array of properties\"\n },\n $documentation: \"An ES6 class\",\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n if (this.name) {\n this.name._walk(visitor);\n }\n if (this.extends) {\n this.extends._walk(visitor);\n }\n this.properties.forEach((prop) => prop._walk(visitor));\n });\n },\n _children_backwards(push) {\n let i = this.properties.length;\n while (i--) push(this.properties[i]);\n if (this.extends) push(this.extends);\n if (this.name) push(this.name);\n },\n /** go through the bits that are executed instantly, not when the class is `new`'d. Doesn't walk the name. */\n visit_nondeferred_class_parts(visitor) {\n if (this.extends) {\n this.extends._walk(visitor);\n }\n this.properties.forEach((prop) => {\n if (prop instanceof AST_ClassStaticBlock) {\n prop._walk(visitor);\n return;\n }\n if (prop.computed_key()) {\n visitor.push(prop);\n prop.key._walk(visitor);\n visitor.pop();\n }\n if ((prop instanceof AST_ClassPrivateProperty || prop instanceof AST_ClassProperty) && prop.static && prop.value) {\n visitor.push(prop);\n prop.value._walk(visitor);\n visitor.pop();\n }\n });\n },\n /** go through the bits that are executed later, when the class is `new`'d or a static method is called */\n visit_deferred_class_parts(visitor) {\n this.properties.forEach((prop) => {\n if (prop instanceof AST_ConciseMethod) {\n prop.walk(visitor);\n } else if (prop instanceof AST_ClassProperty && !prop.static && prop.value) {\n visitor.push(prop);\n prop.value._walk(visitor);\n visitor.pop();\n }\n });\n },\n}, AST_Scope /* TODO a class might have a scope but it's not a scope */);\n\nvar AST_ClassProperty = DEFNODE(\"ClassProperty\", \"static quote\", function AST_ClassProperty(props) {\n if (props) {\n this.static = props.static;\n this.quote = props.quote;\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n this._annotations = props._annotations;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A class property\",\n $propdoc: {\n static: \"[boolean] whether this is a static key\",\n quote: \"[string] which quote is being used\"\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n if (this.key instanceof AST_Node)\n this.key._walk(visitor);\n if (this.value instanceof AST_Node)\n this.value._walk(visitor);\n });\n },\n _children_backwards(push) {\n if (this.value instanceof AST_Node) push(this.value);\n if (this.key instanceof AST_Node) push(this.key);\n },\n computed_key() {\n return !(this.key instanceof AST_SymbolClassProperty);\n }\n}, AST_ObjectProperty);\n\nvar AST_ClassPrivateProperty = DEFNODE(\"ClassPrivateProperty\", \"\", function AST_ClassPrivateProperty(props) {\n if (props) {\n this.static = props.static;\n this.quote = props.quote;\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A class property for a private property\",\n}, AST_ClassProperty);\n\nvar AST_PrivateIn = DEFNODE(\"PrivateIn\", \"key value\", function AST_PrivateIn(props) {\n if (props) {\n this.key = props.key;\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"An `in` binop when the key is private, eg #x in this\",\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n this.key._walk(visitor);\n this.value._walk(visitor);\n });\n },\n _children_backwards(push) {\n push(this.value);\n push(this.key);\n },\n});\n\nvar AST_DefClass = DEFNODE(\"DefClass\", null, function AST_DefClass(props) {\n if (props) {\n this.name = props.name;\n this.extends = props.extends;\n this.properties = props.properties;\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A class definition\",\n}, AST_Class);\n\nvar AST_ClassStaticBlock = DEFNODE(\"ClassStaticBlock\", \"body block_scope\", function AST_ClassStaticBlock (props) {\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n}, {\n $documentation: \"A block containing statements to be executed in the context of the class\",\n $propdoc: {\n body: \"[AST_Statement*] an array of statements\",\n },\n _walk: function(visitor) {\n return visitor._visit(this, function() {\n walk_body(this, visitor);\n });\n },\n _children_backwards(push) {\n let i = this.body.length;\n while (i--) push(this.body[i]);\n },\n clone: clone_block_scope,\n computed_key: () => false\n}, AST_Scope);\n\nvar AST_ClassExpression = DEFNODE(\"ClassExpression\", null, function AST_ClassExpression(props) {\n if (props) {\n this.name = props.name;\n this.extends = props.extends;\n this.properties = props.properties;\n this.variables = props.variables;\n this.uses_with = props.uses_with;\n this.uses_eval = props.uses_eval;\n this.parent_scope = props.parent_scope;\n this.enclosed = props.enclosed;\n this.cname = props.cname;\n this.body = props.body;\n this.block_scope = props.block_scope;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A class expression.\"\n}, AST_Class);\n\nvar AST_Symbol = DEFNODE(\"Symbol\", \"scope name thedef\", function AST_Symbol(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $propdoc: {\n name: \"[string] name of this symbol\",\n scope: \"[AST_Scope/S] the current scope (not necessarily the definition scope)\",\n thedef: \"[SymbolDef/S] the definition of this symbol\"\n },\n $documentation: \"Base class for all symbols\"\n});\n\nvar AST_NewTarget = DEFNODE(\"NewTarget\", null, function AST_NewTarget(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A reference to new.target\"\n});\n\nvar AST_SymbolDeclaration = DEFNODE(\"SymbolDeclaration\", \"init\", function AST_SymbolDeclaration(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A declaration symbol (symbol in var/const, function name or argument, symbol in catch)\",\n}, AST_Symbol);\n\nvar AST_SymbolVar = DEFNODE(\"SymbolVar\", null, function AST_SymbolVar(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol defining a variable\",\n}, AST_SymbolDeclaration);\n\nvar AST_SymbolBlockDeclaration = DEFNODE(\n \"SymbolBlockDeclaration\",\n null,\n function AST_SymbolBlockDeclaration(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n },\n {\n $documentation: \"Base class for block-scoped declaration symbols\"\n },\n AST_SymbolDeclaration\n);\n\nvar AST_SymbolConst = DEFNODE(\"SymbolConst\", null, function AST_SymbolConst(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A constant declaration\"\n}, AST_SymbolBlockDeclaration);\n\nvar AST_SymbolLet = DEFNODE(\"SymbolLet\", null, function AST_SymbolLet(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A block-scoped `let` declaration\"\n}, AST_SymbolBlockDeclaration);\n\nvar AST_SymbolFunarg = DEFNODE(\"SymbolFunarg\", null, function AST_SymbolFunarg(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol naming a function argument\",\n}, AST_SymbolVar);\n\nvar AST_SymbolDefun = DEFNODE(\"SymbolDefun\", null, function AST_SymbolDefun(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol defining a function\",\n}, AST_SymbolDeclaration);\n\nvar AST_SymbolMethod = DEFNODE(\"SymbolMethod\", null, function AST_SymbolMethod(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol in an object defining a method\",\n}, AST_Symbol);\n\nvar AST_SymbolClassProperty = DEFNODE(\"SymbolClassProperty\", null, function AST_SymbolClassProperty(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol for a class property\",\n}, AST_Symbol);\n\nvar AST_SymbolLambda = DEFNODE(\"SymbolLambda\", null, function AST_SymbolLambda(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol naming a function expression\",\n}, AST_SymbolDeclaration);\n\nvar AST_SymbolDefClass = DEFNODE(\"SymbolDefClass\", null, function AST_SymbolDefClass(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol naming a class's name in a class declaration. Lexically scoped to its containing scope, and accessible within the class.\"\n}, AST_SymbolBlockDeclaration);\n\nvar AST_SymbolClass = DEFNODE(\"SymbolClass\", null, function AST_SymbolClass(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol naming a class's name. Lexically scoped to the class.\"\n}, AST_SymbolDeclaration);\n\nvar AST_SymbolCatch = DEFNODE(\"SymbolCatch\", null, function AST_SymbolCatch(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol naming the exception in catch\",\n}, AST_SymbolBlockDeclaration);\n\nvar AST_SymbolImport = DEFNODE(\"SymbolImport\", null, function AST_SymbolImport(props) {\n if (props) {\n this.init = props.init;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol referring to an imported name\",\n}, AST_SymbolBlockDeclaration);\n\nvar AST_SymbolImportForeign = DEFNODE(\"SymbolImportForeign\", null, function AST_SymbolImportForeign(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.quote = props.quote;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A symbol imported from a module, but it is defined in the other module, and its real name is irrelevant for this module's purposes\",\n}, AST_Symbol);\n\nvar AST_Label = DEFNODE(\"Label\", \"references\", function AST_Label(props) {\n if (props) {\n this.references = props.references;\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n this.initialize();\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol naming a label (declaration)\",\n $propdoc: {\n references: \"[AST_LoopControl*] a list of nodes referring to this label\"\n },\n initialize: function() {\n this.references = [];\n this.thedef = this;\n }\n}, AST_Symbol);\n\nvar AST_SymbolRef = DEFNODE(\"SymbolRef\", null, function AST_SymbolRef(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Reference to some symbol (not definition/declaration)\",\n}, AST_Symbol);\n\nvar AST_SymbolExport = DEFNODE(\"SymbolExport\", null, function AST_SymbolExport(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.quote = props.quote;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Symbol referring to a name to export\",\n}, AST_SymbolRef);\n\nvar AST_SymbolExportForeign = DEFNODE(\"SymbolExportForeign\", null, function AST_SymbolExportForeign(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.quote = props.quote;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A symbol exported from this module, but it is used in the other module, and its real name is irrelevant for this module's purposes\",\n}, AST_Symbol);\n\nvar AST_LabelRef = DEFNODE(\"LabelRef\", null, function AST_LabelRef(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Reference to a label symbol\",\n}, AST_Symbol);\n\nvar AST_SymbolPrivateProperty = DEFNODE(\"SymbolPrivateProperty\", null, function AST_SymbolPrivateProperty(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A symbol that refers to a private property\",\n}, AST_Symbol);\n\nvar AST_This = DEFNODE(\"This\", null, function AST_This(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The `this` symbol\",\n}, AST_Symbol);\n\nvar AST_Super = DEFNODE(\"Super\", null, function AST_Super(props) {\n if (props) {\n this.scope = props.scope;\n this.name = props.name;\n this.thedef = props.thedef;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The `super` symbol\",\n}, AST_This);\n\nvar AST_Constant = DEFNODE(\"Constant\", null, function AST_Constant(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for all constants\",\n getValue: function() {\n return this.value;\n }\n});\n\nvar AST_String = DEFNODE(\"String\", \"value quote\", function AST_String(props) {\n if (props) {\n this.value = props.value;\n this.quote = props.quote;\n this.start = props.start;\n this.end = props.end;\n this._annotations = props._annotations;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A string literal\",\n $propdoc: {\n value: \"[string] the contents of this string\",\n quote: \"[string] the original quote character\"\n }\n}, AST_Constant);\n\nvar AST_Number = DEFNODE(\"Number\", \"value raw\", function AST_Number(props) {\n if (props) {\n this.value = props.value;\n this.raw = props.raw;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A number literal\",\n $propdoc: {\n value: \"[number] the numeric value\",\n raw: \"[string] numeric value as string\"\n }\n}, AST_Constant);\n\nvar AST_BigInt = DEFNODE(\"BigInt\", \"value\", function AST_BigInt(props) {\n if (props) {\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A big int literal\",\n $propdoc: {\n value: \"[string] big int value\"\n }\n}, AST_Constant);\n\nvar AST_RegExp = DEFNODE(\"RegExp\", \"value\", function AST_RegExp(props) {\n if (props) {\n this.value = props.value;\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A regexp literal\",\n $propdoc: {\n value: \"[RegExp] the actual regexp\",\n }\n}, AST_Constant);\n\nvar AST_Atom = DEFNODE(\"Atom\", null, function AST_Atom(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for atoms\",\n}, AST_Constant);\n\nvar AST_Null = DEFNODE(\"Null\", null, function AST_Null(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The `null` atom\",\n value: null\n}, AST_Atom);\n\nvar AST_NaN = DEFNODE(\"NaN\", null, function AST_NaN(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The impossible value\",\n value: 0/0\n}, AST_Atom);\n\nvar AST_Undefined = DEFNODE(\"Undefined\", null, function AST_Undefined(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The `undefined` value\",\n value: (function() {}())\n}, AST_Atom);\n\nvar AST_Hole = DEFNODE(\"Hole\", null, function AST_Hole(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"A hole in an array\",\n value: (function() {}())\n}, AST_Atom);\n\nvar AST_Infinity = DEFNODE(\"Infinity\", null, function AST_Infinity(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The `Infinity` value\",\n value: 1/0\n}, AST_Atom);\n\nvar AST_Boolean = DEFNODE(\"Boolean\", null, function AST_Boolean(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"Base class for booleans\",\n}, AST_Atom);\n\nvar AST_False = DEFNODE(\"False\", null, function AST_False(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The `false` atom\",\n value: false\n}, AST_Boolean);\n\nvar AST_True = DEFNODE(\"True\", null, function AST_True(props) {\n if (props) {\n this.start = props.start;\n this.end = props.end;\n }\n\n this.flags = 0;\n}, {\n $documentation: \"The `true` atom\",\n value: true\n}, AST_Boolean);\n\n/* -----[ Walk function ]---- */\n\n/**\n * Walk nodes in depth-first search fashion.\n * Callback can return `walk_abort` symbol to stop iteration.\n * It can also return `true` to stop iteration just for child nodes.\n * Iteration can be stopped and continued by passing the `to_visit` argument,\n * which is given to the callback in the second argument.\n **/\nfunction walk(node, cb, to_visit = [node]) {\n const push = to_visit.push.bind(to_visit);\n while (to_visit.length) {\n const node = to_visit.pop();\n const ret = cb(node, to_visit);\n\n if (ret) {\n if (ret === walk_abort) return true;\n continue;\n }\n\n node._children_backwards(push);\n }\n return false;\n}\n\n/**\n * Walks an AST node and its children.\n *\n * {cb} can return `walk_abort` to interrupt the walk.\n *\n * @param node\n * @param cb {(node, info: { parent: (nth) => any }) => (boolean | undefined)}\n *\n * @returns {boolean} whether the walk was aborted\n *\n * @example\n * const found_some_cond = walk_parent(my_ast_node, (node, { parent }) => {\n * if (some_cond(node, parent())) return walk_abort\n * });\n */\nfunction walk_parent(node, cb, initial_stack) {\n const to_visit = [node];\n const push = to_visit.push.bind(to_visit);\n const stack = initial_stack ? initial_stack.slice() : [];\n const parent_pop_indices = [];\n\n let current;\n\n const info = {\n parent: (n = 0) => {\n if (n === -1) {\n return current;\n }\n\n // [ p1 p0 ] [ 1 0 ]\n if (initial_stack && n >= stack.length) {\n n -= stack.length;\n return initial_stack[\n initial_stack.length - (n + 1)\n ];\n }\n\n return stack[stack.length - (1 + n)];\n },\n };\n\n while (to_visit.length) {\n current = to_visit.pop();\n\n while (\n parent_pop_indices.length &&\n to_visit.length == parent_pop_indices[parent_pop_indices.length - 1]\n ) {\n stack.pop();\n parent_pop_indices.pop();\n }\n\n const ret = cb(current, info);\n\n if (ret) {\n if (ret === walk_abort) return true;\n continue;\n }\n\n const visit_length = to_visit.length;\n\n current._children_backwards(push);\n\n // Push only if we're going to traverse the children\n if (to_visit.length > visit_length) {\n stack.push(current);\n parent_pop_indices.push(visit_length - 1);\n }\n }\n\n return false;\n}\n\nconst walk_abort = Symbol(\"abort walk\");\n\n/* -----[ TreeWalker ]----- */\n\nclass TreeWalker {\n constructor(callback) {\n this.visit = callback;\n this.stack = [];\n this.directives = Object.create(null);\n }\n\n _visit(node, descend) {\n this.push(node);\n var ret = this.visit(node, descend ? function() {\n descend.call(node);\n } : noop);\n if (!ret && descend) {\n descend.call(node);\n }\n this.pop();\n return ret;\n }\n\n parent(n) {\n return this.stack[this.stack.length - 2 - (n || 0)];\n }\n\n push(node) {\n if (node instanceof AST_Lambda) {\n this.directives = Object.create(this.directives);\n } else if (node instanceof AST_Directive && !this.directives[node.value]) {\n this.directives[node.value] = node;\n } else if (node instanceof AST_Class) {\n this.directives = Object.create(this.directives);\n if (!this.directives[\"use strict\"]) {\n this.directives[\"use strict\"] = node;\n }\n }\n this.stack.push(node);\n }\n\n pop() {\n var node = this.stack.pop();\n if (node instanceof AST_Lambda || node instanceof AST_Class) {\n this.directives = Object.getPrototypeOf(this.directives);\n }\n }\n\n self() {\n return this.stack[this.stack.length - 1];\n }\n\n find_parent(type) {\n var stack = this.stack;\n for (var i = stack.length; --i >= 0;) {\n var x = stack[i];\n if (x instanceof type) return x;\n }\n }\n\n find_scope() {\n var stack = this.stack;\n for (var i = stack.length; --i >= 0;) {\n const p = stack[i];\n if (p instanceof AST_Toplevel) return p;\n if (p instanceof AST_Lambda) return p;\n if (p.block_scope) return p.block_scope;\n }\n }\n\n has_directive(type) {\n var dir = this.directives[type];\n if (dir) return dir;\n var node = this.stack[this.stack.length - 1];\n if (node instanceof AST_Scope && node.body) {\n for (var i = 0; i < node.body.length; ++i) {\n var st = node.body[i];\n if (!(st instanceof AST_Directive)) break;\n if (st.value == type) return st;\n }\n }\n }\n\n loopcontrol_target(node) {\n var stack = this.stack;\n if (node.label) for (var i = stack.length; --i >= 0;) {\n var x = stack[i];\n if (x instanceof AST_LabeledStatement && x.label.name == node.label.name)\n return x.body;\n } else for (var i = stack.length; --i >= 0;) {\n var x = stack[i];\n if (x instanceof AST_IterationStatement\n || node instanceof AST_Break && x instanceof AST_Switch)\n return x;\n }\n }\n}\n\n// Tree transformer helpers.\nclass TreeTransformer extends TreeWalker {\n constructor(before, after) {\n super();\n this.before = before;\n this.after = after;\n }\n}\n\nconst _PURE = 0b00000001;\nconst _INLINE = 0b00000010;\nconst _NOINLINE = 0b00000100;\nconst _KEY = 0b00001000;\nconst _MANGLEPROP = 0b00010000;\n\nexport {\n AST_Accessor,\n AST_Array,\n AST_Arrow,\n AST_Assign,\n AST_Atom,\n AST_Await,\n AST_BigInt,\n AST_Binary,\n AST_Block,\n AST_BlockStatement,\n AST_Boolean,\n AST_Break,\n AST_Call,\n AST_Case,\n AST_Catch,\n AST_Chain,\n AST_Class,\n AST_ClassExpression,\n AST_ClassPrivateProperty,\n AST_PrivateIn,\n AST_ClassProperty,\n AST_ClassStaticBlock,\n AST_ConciseMethod,\n AST_Conditional,\n AST_Const,\n AST_Constant,\n AST_Continue,\n AST_Debugger,\n AST_Default,\n AST_DefaultAssign,\n AST_DefClass,\n AST_Definitions,\n AST_Defun,\n AST_Destructuring,\n AST_Directive,\n AST_Do,\n AST_Dot,\n AST_DotHash,\n AST_DWLoop,\n AST_EmptyStatement,\n AST_Exit,\n AST_Expansion,\n AST_Export,\n AST_False,\n AST_Finally,\n AST_For,\n AST_ForIn,\n AST_ForOf,\n AST_Function,\n AST_Hole,\n AST_If,\n AST_Import,\n AST_ImportMeta,\n AST_Infinity,\n AST_IterationStatement,\n AST_Jump,\n AST_Label,\n AST_LabeledStatement,\n AST_LabelRef,\n AST_Lambda,\n AST_Let,\n AST_LoopControl,\n AST_NameMapping,\n AST_NaN,\n AST_New,\n AST_NewTarget,\n AST_Node,\n AST_Null,\n AST_Number,\n AST_Object,\n AST_ObjectGetter,\n AST_ObjectKeyVal,\n AST_ObjectProperty,\n AST_ObjectSetter,\n AST_PrefixedTemplateString,\n AST_PrivateGetter,\n AST_PrivateMethod,\n AST_PrivateSetter,\n AST_PropAccess,\n AST_RegExp,\n AST_Return,\n AST_Scope,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Statement,\n AST_StatementWithBody,\n AST_String,\n AST_Sub,\n AST_Super,\n AST_Switch,\n AST_SwitchBranch,\n AST_Symbol,\n AST_SymbolBlockDeclaration,\n AST_SymbolCatch,\n AST_SymbolClass,\n AST_SymbolClassProperty,\n AST_SymbolConst,\n AST_SymbolDeclaration,\n AST_SymbolDefClass,\n AST_SymbolDefun,\n AST_SymbolExport,\n AST_SymbolExportForeign,\n AST_SymbolFunarg,\n AST_SymbolImport,\n AST_SymbolImportForeign,\n AST_SymbolLambda,\n AST_SymbolLet,\n AST_SymbolMethod,\n AST_SymbolRef,\n AST_SymbolVar,\n AST_TemplateSegment,\n AST_TemplateString,\n AST_SymbolPrivateProperty,\n AST_This,\n AST_Throw,\n AST_Token,\n AST_Toplevel,\n AST_True,\n AST_Try,\n AST_TryBlock,\n AST_Unary,\n AST_UnaryPostfix,\n AST_UnaryPrefix,\n AST_Undefined,\n AST_Var,\n AST_VarDef,\n AST_While,\n AST_With,\n AST_Yield,\n\n // Walkers\n TreeTransformer,\n TreeWalker,\n walk,\n walk_abort,\n walk_body,\n walk_parent,\n\n // annotations\n _INLINE,\n _NOINLINE,\n _PURE,\n _KEY,\n _MANGLEPROP,\n};\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\n\"use strict\";\n\nimport {\n AST_Array,\n AST_Await,\n AST_Binary,\n AST_PrivateIn,\n AST_Block,\n AST_Call,\n AST_Case,\n AST_Catch,\n AST_Chain,\n AST_Class,\n AST_ClassStaticBlock,\n AST_Conditional,\n AST_Definitions,\n AST_Destructuring,\n AST_Do,\n AST_Exit,\n AST_Expansion,\n AST_Export,\n AST_For,\n AST_ForIn,\n AST_If,\n AST_Import,\n AST_LabeledStatement,\n AST_Lambda,\n AST_LoopControl,\n AST_NameMapping,\n AST_Node,\n AST_Number,\n AST_Object,\n AST_ObjectProperty,\n AST_PrefixedTemplateString,\n AST_PropAccess,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Sub,\n AST_Switch,\n AST_TemplateString,\n AST_Try,\n AST_Unary,\n AST_VarDef,\n AST_While,\n AST_With,\n AST_Yield,\n} from \"./ast.js\";\nimport {\n MAP as do_list,\n noop,\n} from \"./utils/index.js\";\n\nfunction def_transform(node, descend) {\n node.DEFMETHOD(\"transform\", function(tw, in_list) {\n let transformed = undefined;\n tw.push(this);\n if (tw.before) transformed = tw.before(this, descend, in_list);\n if (transformed === undefined) {\n transformed = this;\n descend(transformed, tw);\n if (tw.after) {\n const after_ret = tw.after(transformed, in_list);\n if (after_ret !== undefined) transformed = after_ret;\n }\n }\n tw.pop();\n return transformed;\n });\n}\n\ndef_transform(AST_Node, noop);\n\ndef_transform(AST_LabeledStatement, function(self, tw) {\n self.label = self.label.transform(tw);\n self.body = self.body.transform(tw);\n});\n\ndef_transform(AST_SimpleStatement, function(self, tw) {\n self.body = self.body.transform(tw);\n});\n\ndef_transform(AST_Block, function(self, tw) {\n self.body = do_list(self.body, tw);\n});\n\ndef_transform(AST_Do, function(self, tw) {\n self.body = self.body.transform(tw);\n self.condition = self.condition.transform(tw);\n});\n\ndef_transform(AST_While, function(self, tw) {\n self.condition = self.condition.transform(tw);\n self.body = self.body.transform(tw);\n});\n\ndef_transform(AST_For, function(self, tw) {\n if (self.init) self.init = self.init.transform(tw);\n if (self.condition) self.condition = self.condition.transform(tw);\n if (self.step) self.step = self.step.transform(tw);\n self.body = self.body.transform(tw);\n});\n\ndef_transform(AST_ForIn, function(self, tw) {\n self.init = self.init.transform(tw);\n self.object = self.object.transform(tw);\n self.body = self.body.transform(tw);\n});\n\ndef_transform(AST_With, function(self, tw) {\n self.expression = self.expression.transform(tw);\n self.body = self.body.transform(tw);\n});\n\ndef_transform(AST_Exit, function(self, tw) {\n if (self.value) self.value = self.value.transform(tw);\n});\n\ndef_transform(AST_LoopControl, function(self, tw) {\n if (self.label) self.label = self.label.transform(tw);\n});\n\ndef_transform(AST_If, function(self, tw) {\n self.condition = self.condition.transform(tw);\n self.body = self.body.transform(tw);\n if (self.alternative) self.alternative = self.alternative.transform(tw);\n});\n\ndef_transform(AST_Switch, function(self, tw) {\n self.expression = self.expression.transform(tw);\n self.body = do_list(self.body, tw);\n});\n\ndef_transform(AST_Case, function(self, tw) {\n self.expression = self.expression.transform(tw);\n self.body = do_list(self.body, tw);\n});\n\ndef_transform(AST_Try, function(self, tw) {\n self.body = self.body.transform(tw);\n if (self.bcatch) self.bcatch = self.bcatch.transform(tw);\n if (self.bfinally) self.bfinally = self.bfinally.transform(tw);\n});\n\ndef_transform(AST_Catch, function(self, tw) {\n if (self.argname) self.argname = self.argname.transform(tw);\n self.body = do_list(self.body, tw);\n});\n\ndef_transform(AST_Definitions, function(self, tw) {\n self.definitions = do_list(self.definitions, tw);\n});\n\ndef_transform(AST_VarDef, function(self, tw) {\n self.name = self.name.transform(tw);\n if (self.value) self.value = self.value.transform(tw);\n});\n\ndef_transform(AST_Destructuring, function(self, tw) {\n self.names = do_list(self.names, tw);\n});\n\ndef_transform(AST_Lambda, function(self, tw) {\n if (self.name) self.name = self.name.transform(tw);\n self.argnames = do_list(self.argnames, tw, /* allow_splicing */ false);\n if (self.body instanceof AST_Node) {\n self.body = self.body.transform(tw);\n } else {\n self.body = do_list(self.body, tw);\n }\n});\n\ndef_transform(AST_Call, function(self, tw) {\n self.expression = self.expression.transform(tw);\n self.args = do_list(self.args, tw, /* allow_splicing */ false);\n});\n\ndef_transform(AST_Sequence, function(self, tw) {\n const result = do_list(self.expressions, tw);\n self.expressions = result.length\n ? result\n : [new AST_Number({ value: 0 })];\n});\n\ndef_transform(AST_PropAccess, function(self, tw) {\n self.expression = self.expression.transform(tw);\n});\n\ndef_transform(AST_Sub, function(self, tw) {\n self.expression = self.expression.transform(tw);\n self.property = self.property.transform(tw);\n});\n\ndef_transform(AST_Chain, function(self, tw) {\n self.expression = self.expression.transform(tw);\n});\n\ndef_transform(AST_Yield, function(self, tw) {\n if (self.expression) self.expression = self.expression.transform(tw);\n});\n\ndef_transform(AST_Await, function(self, tw) {\n self.expression = self.expression.transform(tw);\n});\n\ndef_transform(AST_Unary, function(self, tw) {\n self.expression = self.expression.transform(tw);\n});\n\ndef_transform(AST_Binary, function(self, tw) {\n self.left = self.left.transform(tw);\n self.right = self.right.transform(tw);\n});\n\ndef_transform(AST_PrivateIn, function(self, tw) {\n self.key = self.key.transform(tw);\n self.value = self.value.transform(tw);\n});\n\ndef_transform(AST_Conditional, function(self, tw) {\n self.condition = self.condition.transform(tw);\n self.consequent = self.consequent.transform(tw);\n self.alternative = self.alternative.transform(tw);\n});\n\ndef_transform(AST_Array, function(self, tw) {\n self.elements = do_list(self.elements, tw);\n});\n\ndef_transform(AST_Object, function(self, tw) {\n self.properties = do_list(self.properties, tw);\n});\n\ndef_transform(AST_ObjectProperty, function(self, tw) {\n if (self.key instanceof AST_Node) {\n self.key = self.key.transform(tw);\n }\n if (self.value) self.value = self.value.transform(tw);\n});\n\ndef_transform(AST_Class, function(self, tw) {\n if (self.name) self.name = self.name.transform(tw);\n if (self.extends) self.extends = self.extends.transform(tw);\n self.properties = do_list(self.properties, tw);\n});\n\ndef_transform(AST_ClassStaticBlock, function(self, tw) {\n self.body = do_list(self.body, tw);\n});\n\ndef_transform(AST_Expansion, function(self, tw) {\n self.expression = self.expression.transform(tw);\n});\n\ndef_transform(AST_NameMapping, function(self, tw) {\n self.foreign_name = self.foreign_name.transform(tw);\n self.name = self.name.transform(tw);\n});\n\ndef_transform(AST_Import, function(self, tw) {\n if (self.imported_name) self.imported_name = self.imported_name.transform(tw);\n if (self.imported_names) do_list(self.imported_names, tw);\n self.module_name = self.module_name.transform(tw);\n});\n\ndef_transform(AST_Export, function(self, tw) {\n if (self.exported_definition) self.exported_definition = self.exported_definition.transform(tw);\n if (self.exported_value) self.exported_value = self.exported_value.transform(tw);\n if (self.exported_names) do_list(self.exported_names, tw);\n if (self.module_name) self.module_name = self.module_name.transform(tw);\n});\n\ndef_transform(AST_TemplateString, function(self, tw) {\n self.segments = do_list(self.segments, tw);\n});\n\ndef_transform(AST_PrefixedTemplateString, function(self, tw) {\n self.prefix = self.prefix.transform(tw);\n self.template_string = self.template_string.transform(tw);\n});\n\n","import {\n AST_Binary,\n AST_Conditional,\n AST_Chain,\n AST_Dot,\n AST_Object,\n AST_Sequence,\n AST_Statement,\n AST_Sub,\n AST_UnaryPostfix,\n AST_PrefixedTemplateString\n} from \"../ast.js\";\n\n// return true if the node at the top of the stack (that means the\n// innermost node in the current output) is lexically the first in\n// a statement.\nfunction first_in_statement(stack) {\n let node = stack.parent(-1);\n for (let i = 0, p; p = stack.parent(i); i++) {\n if (p instanceof AST_Statement && p.body === node)\n return true;\n if ((p instanceof AST_Sequence && p.expressions[0] === node) ||\n (p.TYPE === \"Call\" && p.expression === node) ||\n (p instanceof AST_PrefixedTemplateString && p.prefix === node) ||\n (p instanceof AST_Dot && p.expression === node) ||\n (p instanceof AST_Sub && p.expression === node) ||\n (p instanceof AST_Chain && p.expression === node) ||\n (p instanceof AST_Conditional && p.condition === node) ||\n (p instanceof AST_Binary && p.left === node) ||\n (p instanceof AST_UnaryPostfix && p.expression === node)\n ) {\n node = p;\n } else {\n return false;\n }\n }\n}\n\n// Returns whether the leftmost item in the expression is an object\nfunction left_is_object(node) {\n if (node instanceof AST_Object) return true;\n if (node instanceof AST_Sequence) return left_is_object(node.expressions[0]);\n if (node.TYPE === \"Call\") return left_is_object(node.expression);\n if (node instanceof AST_PrefixedTemplateString) return left_is_object(node.prefix);\n if (node instanceof AST_Dot || node instanceof AST_Sub) return left_is_object(node.expression);\n if (node instanceof AST_Chain) return left_is_object(node.expression);\n if (node instanceof AST_Conditional) return left_is_object(node.condition);\n if (node instanceof AST_Binary) return left_is_object(node.left);\n if (node instanceof AST_UnaryPostfix) return left_is_object(node.expression);\n return false;\n}\n\nexport { first_in_statement, left_is_object };\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport { make_node } from \"./utils/index.js\";\nimport {\n AST_Accessor,\n AST_Array,\n AST_Arrow,\n AST_Assign,\n AST_Atom,\n AST_Await,\n AST_BigInt,\n AST_Binary,\n AST_Block,\n AST_BlockStatement,\n AST_Boolean,\n AST_Break,\n AST_Call,\n AST_Case,\n AST_Catch,\n AST_Chain,\n AST_Class,\n AST_ClassStaticBlock,\n AST_ClassExpression,\n AST_ClassProperty,\n AST_ClassPrivateProperty,\n AST_ConciseMethod,\n AST_Conditional,\n AST_Const,\n AST_Constant,\n AST_Continue,\n AST_Debugger,\n AST_Default,\n AST_DefaultAssign,\n AST_DefClass,\n AST_Definitions,\n AST_Defun,\n AST_Destructuring,\n AST_Directive,\n AST_Do,\n AST_Dot,\n AST_DotHash,\n AST_EmptyStatement,\n AST_Expansion,\n AST_Export,\n AST_False,\n AST_Finally,\n AST_For,\n AST_ForIn,\n AST_ForOf,\n AST_Function,\n AST_Hole,\n AST_If,\n AST_Import,\n AST_ImportMeta,\n AST_Label,\n AST_LabeledStatement,\n AST_LabelRef,\n AST_Lambda,\n AST_Let,\n AST_NameMapping,\n AST_New,\n AST_NewTarget,\n AST_Node,\n AST_Null,\n AST_Number,\n AST_Object,\n AST_ObjectGetter,\n AST_ObjectKeyVal,\n AST_ObjectProperty,\n AST_ObjectSetter,\n AST_PrefixedTemplateString,\n AST_PrivateGetter,\n AST_PrivateMethod,\n AST_PrivateSetter,\n AST_PrivateIn,\n AST_PropAccess,\n AST_RegExp,\n AST_Return,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Statement,\n AST_String,\n AST_Sub,\n AST_Super,\n AST_Switch,\n AST_SwitchBranch,\n AST_Symbol,\n AST_SymbolCatch,\n AST_SymbolClass,\n AST_SymbolClassProperty,\n AST_SymbolPrivateProperty,\n AST_SymbolConst,\n AST_SymbolDefClass,\n AST_SymbolDefun,\n AST_SymbolExport,\n AST_SymbolExportForeign,\n AST_SymbolFunarg,\n AST_SymbolImport,\n AST_SymbolImportForeign,\n AST_SymbolLambda,\n AST_SymbolLet,\n AST_SymbolMethod,\n AST_SymbolRef,\n AST_SymbolVar,\n AST_TemplateSegment,\n AST_TemplateString,\n AST_This,\n AST_Throw,\n AST_Token,\n AST_Toplevel,\n AST_True,\n AST_Try,\n AST_TryBlock,\n AST_Unary,\n AST_UnaryPostfix,\n AST_UnaryPrefix,\n AST_Var,\n AST_VarDef,\n AST_While,\n AST_With,\n AST_Yield,\n} from \"./ast.js\";\nimport { is_basic_identifier_string } from \"./parse.js\";\n\n(function() {\n\n var normalize_directives = function(body) {\n for (var i = 0; i < body.length; i++) {\n if (body[i] instanceof AST_Statement && body[i].body instanceof AST_String) {\n body[i] = new AST_Directive({\n start: body[i].start,\n end: body[i].end,\n value: body[i].body.value\n });\n } else {\n return body;\n }\n }\n\n return body;\n };\n\n const assert_clause_from_moz = (assertions) => {\n if (assertions && assertions.length > 0) {\n return new AST_Object({\n start: my_start_token(assertions),\n end: my_end_token(assertions),\n properties: assertions.map((assertion_kv) =>\n new AST_ObjectKeyVal({\n start: my_start_token(assertion_kv),\n end: my_end_token(assertion_kv),\n key: assertion_kv.key.name || assertion_kv.key.value,\n value: from_moz(assertion_kv.value)\n })\n )\n });\n }\n return null;\n };\n\n var MOZ_TO_ME = {\n Program: function(M) {\n return new AST_Toplevel({\n start: my_start_token(M),\n end: my_end_token(M),\n body: normalize_directives(M.body.map(from_moz))\n });\n },\n\n ArrayPattern: function(M) {\n return new AST_Destructuring({\n start: my_start_token(M),\n end: my_end_token(M),\n names: M.elements.map(function(elm) {\n if (elm === null) {\n return new AST_Hole();\n }\n return from_moz(elm);\n }),\n is_array: true\n });\n },\n\n ObjectPattern: function(M) {\n return new AST_Destructuring({\n start: my_start_token(M),\n end: my_end_token(M),\n names: M.properties.map(from_moz),\n is_array: false\n });\n },\n\n AssignmentPattern: function(M) {\n return new AST_DefaultAssign({\n start: my_start_token(M),\n end: my_end_token(M),\n left: from_moz(M.left),\n operator: \"=\",\n right: from_moz(M.right)\n });\n },\n\n SpreadElement: function(M) {\n return new AST_Expansion({\n start: my_start_token(M),\n end: my_end_token(M),\n expression: from_moz(M.argument)\n });\n },\n\n RestElement: function(M) {\n return new AST_Expansion({\n start: my_start_token(M),\n end: my_end_token(M),\n expression: from_moz(M.argument)\n });\n },\n\n TemplateElement: function(M) {\n return new AST_TemplateSegment({\n start: my_start_token(M),\n end: my_end_token(M),\n value: M.value.cooked,\n raw: M.value.raw\n });\n },\n\n TemplateLiteral: function(M) {\n var segments = [];\n for (var i = 0; i < M.quasis.length; i++) {\n segments.push(from_moz(M.quasis[i]));\n if (M.expressions[i]) {\n segments.push(from_moz(M.expressions[i]));\n }\n }\n return new AST_TemplateString({\n start: my_start_token(M),\n end: my_end_token(M),\n segments: segments\n });\n },\n\n TaggedTemplateExpression: function(M) {\n return new AST_PrefixedTemplateString({\n start: my_start_token(M),\n end: my_end_token(M),\n template_string: from_moz(M.quasi),\n prefix: from_moz(M.tag)\n });\n },\n\n FunctionDeclaration: function(M) {\n return new AST_Defun({\n start: my_start_token(M),\n end: my_end_token(M),\n name: from_moz(M.id),\n argnames: M.params.map(from_moz),\n is_generator: M.generator,\n async: M.async,\n body: normalize_directives(from_moz(M.body).body)\n });\n },\n\n FunctionExpression: function(M) {\n return new AST_Function({\n start: my_start_token(M),\n end: my_end_token(M),\n name: from_moz(M.id),\n argnames: M.params.map(from_moz),\n is_generator: M.generator,\n async: M.async,\n body: normalize_directives(from_moz(M.body).body)\n });\n },\n\n ArrowFunctionExpression: function(M) {\n const body = M.body.type === \"BlockStatement\"\n ? from_moz(M.body).body\n : [make_node(AST_Return, {}, { value: from_moz(M.body) })];\n return new AST_Arrow({\n start: my_start_token(M),\n end: my_end_token(M),\n argnames: M.params.map(from_moz),\n body,\n async: M.async,\n });\n },\n\n ExpressionStatement: function(M) {\n return new AST_SimpleStatement({\n start: my_start_token(M),\n end: my_end_token(M),\n body: from_moz(M.expression)\n });\n },\n\n TryStatement: function(M) {\n var handlers = M.handlers || [M.handler];\n if (handlers.length > 1 || M.guardedHandlers && M.guardedHandlers.length) {\n throw new Error(\"Multiple catch clauses are not supported.\");\n }\n return new AST_Try({\n start : my_start_token(M),\n end : my_end_token(M),\n body : new AST_TryBlock(from_moz(M.block)),\n bcatch : from_moz(handlers[0]),\n bfinally : M.finalizer ? new AST_Finally(from_moz(M.finalizer)) : null\n });\n },\n\n Property: function(M) {\n var key = M.key;\n var args = {\n start : my_start_token(key || M.value),\n end : my_end_token(M.value),\n key : key.type == \"Identifier\" ? key.name : key.value,\n value : from_moz(M.value)\n };\n if (M.computed) {\n args.key = from_moz(M.key);\n }\n if (M.method) {\n args.is_generator = M.value.generator;\n args.async = M.value.async;\n if (!M.computed) {\n args.key = new AST_SymbolMethod({ name: args.key });\n } else {\n args.key = from_moz(M.key);\n }\n return new AST_ConciseMethod(args);\n }\n if (M.kind == \"init\") {\n if (key.type != \"Identifier\" && key.type != \"Literal\") {\n args.key = from_moz(key);\n }\n return new AST_ObjectKeyVal(args);\n }\n if (typeof args.key === \"string\" || typeof args.key === \"number\") {\n args.key = new AST_SymbolMethod({\n name: args.key\n });\n }\n args.value = new AST_Accessor(args.value);\n if (M.kind == \"get\") return new AST_ObjectGetter(args);\n if (M.kind == \"set\") return new AST_ObjectSetter(args);\n if (M.kind == \"method\") {\n args.async = M.value.async;\n args.is_generator = M.value.generator;\n args.quote = M.computed ? \"\\\"\" : null;\n return new AST_ConciseMethod(args);\n }\n },\n\n MethodDefinition: function(M) {\n const is_private = M.key.type === \"PrivateIdentifier\";\n const key = M.computed ? from_moz(M.key) : new AST_SymbolMethod({ name: M.key.name || M.key.value });\n\n var args = {\n start : my_start_token(M),\n end : my_end_token(M),\n key,\n value : from_moz(M.value),\n static : M.static,\n };\n if (M.kind == \"get\") {\n return new (is_private ? AST_PrivateGetter : AST_ObjectGetter)(args);\n }\n if (M.kind == \"set\") {\n return new (is_private ? AST_PrivateSetter : AST_ObjectSetter)(args);\n }\n args.is_generator = M.value.generator;\n args.async = M.value.async;\n return new (is_private ? AST_PrivateMethod : AST_ConciseMethod)(args);\n },\n\n FieldDefinition: function(M) {\n let key;\n if (M.computed) {\n key = from_moz(M.key);\n } else {\n if (M.key.type !== \"Identifier\") throw new Error(\"Non-Identifier key in FieldDefinition\");\n key = from_moz(M.key);\n }\n return new AST_ClassProperty({\n start : my_start_token(M),\n end : my_end_token(M),\n key,\n value : from_moz(M.value),\n static : M.static,\n });\n },\n\n PropertyDefinition: function(M) {\n let key;\n if (M.computed) {\n key = from_moz(M.key);\n } else if (M.key.type === \"PrivateIdentifier\") {\n return new AST_ClassPrivateProperty({\n start : my_start_token(M),\n end : my_end_token(M),\n key : from_moz(M.key),\n value : from_moz(M.value),\n static : M.static,\n });\n } else {\n if (M.key.type !== \"Identifier\") {\n throw new Error(\"Non-Identifier key in PropertyDefinition\");\n }\n key = from_moz(M.key);\n }\n\n return new AST_ClassProperty({\n start : my_start_token(M),\n end : my_end_token(M),\n key,\n value : from_moz(M.value),\n static : M.static,\n });\n },\n\n PrivateIdentifier: function (M) {\n return new AST_SymbolPrivateProperty({\n start: my_start_token(M),\n end: my_end_token(M),\n name: M.name\n });\n },\n\n StaticBlock: function(M) {\n return new AST_ClassStaticBlock({\n start : my_start_token(M),\n end : my_end_token(M),\n body : M.body.map(from_moz),\n });\n },\n\n ArrayExpression: function(M) {\n return new AST_Array({\n start : my_start_token(M),\n end : my_end_token(M),\n elements : M.elements.map(function(elem) {\n return elem === null ? new AST_Hole() : from_moz(elem);\n })\n });\n },\n\n ObjectExpression: function(M) {\n return new AST_Object({\n start : my_start_token(M),\n end : my_end_token(M),\n properties : M.properties.map(function(prop) {\n if (prop.type === \"SpreadElement\") {\n return from_moz(prop);\n }\n prop.type = \"Property\";\n return from_moz(prop);\n })\n });\n },\n\n SequenceExpression: function(M) {\n return new AST_Sequence({\n start : my_start_token(M),\n end : my_end_token(M),\n expressions: M.expressions.map(from_moz)\n });\n },\n\n MemberExpression: function(M) {\n if (M.property.type === \"PrivateIdentifier\") {\n return new AST_DotHash({\n start : my_start_token(M),\n end : my_end_token(M),\n property : M.property.name,\n expression : from_moz(M.object),\n optional : M.optional || false\n });\n }\n return new (M.computed ? AST_Sub : AST_Dot)({\n start : my_start_token(M),\n end : my_end_token(M),\n property : M.computed ? from_moz(M.property) : M.property.name,\n expression : from_moz(M.object),\n optional : M.optional || false\n });\n },\n\n ChainExpression: function(M) {\n return new AST_Chain({\n start : my_start_token(M),\n end : my_end_token(M),\n expression : from_moz(M.expression)\n });\n },\n\n SwitchCase: function(M) {\n return new (M.test ? AST_Case : AST_Default)({\n start : my_start_token(M),\n end : my_end_token(M),\n expression : from_moz(M.test),\n body : M.consequent.map(from_moz)\n });\n },\n\n VariableDeclaration: function(M) {\n return new (M.kind === \"const\" ? AST_Const :\n M.kind === \"let\" ? AST_Let : AST_Var)({\n start : my_start_token(M),\n end : my_end_token(M),\n definitions : M.declarations.map(from_moz)\n });\n },\n\n ImportDeclaration: function(M) {\n var imported_name = null;\n var imported_names = null;\n M.specifiers.forEach(function (specifier) {\n if (specifier.type === \"ImportSpecifier\" || specifier.type === \"ImportNamespaceSpecifier\") {\n if (!imported_names) { imported_names = []; }\n imported_names.push(from_moz(specifier));\n } else if (specifier.type === \"ImportDefaultSpecifier\") {\n imported_name = from_moz(specifier);\n }\n });\n return new AST_Import({\n start : my_start_token(M),\n end : my_end_token(M),\n imported_name: imported_name,\n imported_names : imported_names,\n module_name : from_moz(M.source),\n assert_clause: assert_clause_from_moz(M.assertions)\n });\n },\n\n ImportSpecifier: function(M) {\n return new AST_NameMapping({\n start: my_start_token(M),\n end: my_end_token(M),\n foreign_name: from_moz(M.imported),\n name: from_moz(M.local)\n });\n },\n\n ImportDefaultSpecifier: function(M) {\n return from_moz(M.local);\n },\n\n ImportNamespaceSpecifier: function(M) {\n return new AST_NameMapping({\n start: my_start_token(M),\n end: my_end_token(M),\n foreign_name: new AST_SymbolImportForeign({ name: \"*\" }),\n name: from_moz(M.local)\n });\n },\n\n ExportAllDeclaration: function(M) {\n var foreign_name = M.exported == null ? \n new AST_SymbolExportForeign({ name: \"*\" }) :\n from_moz(M.exported);\n return new AST_Export({\n start: my_start_token(M),\n end: my_end_token(M),\n exported_names: [\n new AST_NameMapping({\n name: new AST_SymbolExportForeign({ name: \"*\" }),\n foreign_name: foreign_name\n })\n ],\n module_name: from_moz(M.source),\n assert_clause: assert_clause_from_moz(M.assertions)\n });\n },\n\n ExportNamedDeclaration: function(M) {\n return new AST_Export({\n start: my_start_token(M),\n end: my_end_token(M),\n exported_definition: from_moz(M.declaration),\n exported_names: M.specifiers && M.specifiers.length ? M.specifiers.map(function (specifier) {\n return from_moz(specifier);\n }) : null,\n module_name: from_moz(M.source),\n assert_clause: assert_clause_from_moz(M.assertions)\n });\n },\n\n ExportDefaultDeclaration: function(M) {\n return new AST_Export({\n start: my_start_token(M),\n end: my_end_token(M),\n exported_value: from_moz(M.declaration),\n is_default: true\n });\n },\n\n ExportSpecifier: function(M) {\n return new AST_NameMapping({\n foreign_name: from_moz(M.exported),\n name: from_moz(M.local)\n });\n },\n\n Literal: function(M) {\n var val = M.value, args = {\n start : my_start_token(M),\n end : my_end_token(M)\n };\n var rx = M.regex;\n if (rx && rx.pattern) {\n // RegExpLiteral as per ESTree AST spec\n args.value = {\n source: rx.pattern,\n flags: rx.flags\n };\n return new AST_RegExp(args);\n } else if (rx) {\n // support legacy RegExp\n const rx_source = M.raw || val;\n const match = rx_source.match(/^\\/(.*)\\/(\\w*)$/);\n if (!match) throw new Error(\"Invalid regex source \" + rx_source);\n const [_, source, flags] = match;\n args.value = { source, flags };\n return new AST_RegExp(args);\n }\n if (val === null) return new AST_Null(args);\n switch (typeof val) {\n case \"string\":\n args.quote = \"\\\"\";\n var p = FROM_MOZ_STACK[FROM_MOZ_STACK.length - 2];\n if (p.type == \"ImportSpecifier\") {\n args.name = val;\n return new AST_SymbolImportForeign(args);\n } else if (p.type == \"ExportSpecifier\") {\n args.name = val;\n if (M == p.exported) {\n return new AST_SymbolExportForeign(args);\n } else {\n return new AST_SymbolExport(args);\n }\n } else if (p.type == \"ExportAllDeclaration\" && M == p.exported) {\n args.name = val;\n return new AST_SymbolExportForeign(args);\n }\n args.value = val;\n return new AST_String(args);\n case \"number\":\n args.value = val;\n args.raw = M.raw || val.toString();\n return new AST_Number(args);\n case \"boolean\":\n return new (val ? AST_True : AST_False)(args);\n }\n },\n\n MetaProperty: function(M) {\n if (M.meta.name === \"new\" && M.property.name === \"target\") {\n return new AST_NewTarget({\n start: my_start_token(M),\n end: my_end_token(M)\n });\n } else if (M.meta.name === \"import\" && M.property.name === \"meta\") {\n return new AST_ImportMeta({\n start: my_start_token(M),\n end: my_end_token(M)\n });\n }\n },\n\n Identifier: function(M) {\n var p = FROM_MOZ_STACK[FROM_MOZ_STACK.length - 2];\n return new ( p.type == \"LabeledStatement\" ? AST_Label\n : p.type == \"VariableDeclarator\" && p.id === M ? (p.kind == \"const\" ? AST_SymbolConst : p.kind == \"let\" ? AST_SymbolLet : AST_SymbolVar)\n : /Import.*Specifier/.test(p.type) ? (p.local === M ? AST_SymbolImport : AST_SymbolImportForeign)\n : p.type == \"ExportSpecifier\" ? (p.local === M ? AST_SymbolExport : AST_SymbolExportForeign)\n : p.type == \"FunctionExpression\" ? (p.id === M ? AST_SymbolLambda : AST_SymbolFunarg)\n : p.type == \"FunctionDeclaration\" ? (p.id === M ? AST_SymbolDefun : AST_SymbolFunarg)\n : p.type == \"ArrowFunctionExpression\" ? (p.params.includes(M)) ? AST_SymbolFunarg : AST_SymbolRef\n : p.type == \"ClassExpression\" ? (p.id === M ? AST_SymbolClass : AST_SymbolRef)\n : p.type == \"Property\" ? (p.key === M && p.computed || p.value === M ? AST_SymbolRef : AST_SymbolMethod)\n : p.type == \"PropertyDefinition\" || p.type === \"FieldDefinition\" ? (p.key === M && p.computed || p.value === M ? AST_SymbolRef : AST_SymbolClassProperty)\n : p.type == \"ClassDeclaration\" ? (p.id === M ? AST_SymbolDefClass : AST_SymbolRef)\n : p.type == \"MethodDefinition\" ? (p.computed ? AST_SymbolRef : AST_SymbolMethod)\n : p.type == \"CatchClause\" ? AST_SymbolCatch\n : p.type == \"BreakStatement\" || p.type == \"ContinueStatement\" ? AST_LabelRef\n : AST_SymbolRef)({\n start : my_start_token(M),\n end : my_end_token(M),\n name : M.name\n });\n },\n\n BigIntLiteral(M) {\n return new AST_BigInt({\n start : my_start_token(M),\n end : my_end_token(M),\n value : M.value\n });\n },\n\n EmptyStatement: function(M) {\n return new AST_EmptyStatement({\n start: my_start_token(M),\n end: my_end_token(M)\n });\n },\n\n BlockStatement: function(M) {\n return new AST_BlockStatement({\n start: my_start_token(M),\n end: my_end_token(M),\n body: M.body.map(from_moz)\n });\n },\n\n IfStatement: function(M) {\n return new AST_If({\n start: my_start_token(M),\n end: my_end_token(M),\n condition: from_moz(M.test),\n body: from_moz(M.consequent),\n alternative: from_moz(M.alternate)\n });\n },\n\n LabeledStatement: function(M) {\n return new AST_LabeledStatement({\n start: my_start_token(M),\n end: my_end_token(M),\n label: from_moz(M.label),\n body: from_moz(M.body)\n });\n },\n\n BreakStatement: function(M) {\n return new AST_Break({\n start: my_start_token(M),\n end: my_end_token(M),\n label: from_moz(M.label)\n });\n },\n\n ContinueStatement: function(M) {\n return new AST_Continue({\n start: my_start_token(M),\n end: my_end_token(M),\n label: from_moz(M.label)\n });\n },\n\n WithStatement: function(M) {\n return new AST_With({\n start: my_start_token(M),\n end: my_end_token(M),\n expression: from_moz(M.object),\n body: from_moz(M.body)\n });\n },\n\n SwitchStatement: function(M) {\n return new AST_Switch({\n start: my_start_token(M),\n end: my_end_token(M),\n expression: from_moz(M.discriminant),\n body: M.cases.map(from_moz)\n });\n },\n\n ReturnStatement: function(M) {\n return new AST_Return({\n start: my_start_token(M),\n end: my_end_token(M),\n value: from_moz(M.argument)\n });\n },\n\n ThrowStatement: function(M) {\n return new AST_Throw({\n start: my_start_token(M),\n end: my_end_token(M),\n value: from_moz(M.argument)\n });\n },\n\n WhileStatement: function(M) {\n return new AST_While({\n start: my_start_token(M),\n end: my_end_token(M),\n condition: from_moz(M.test),\n body: from_moz(M.body)\n });\n },\n\n DoWhileStatement: function(M) {\n return new AST_Do({\n start: my_start_token(M),\n end: my_end_token(M),\n condition: from_moz(M.test),\n body: from_moz(M.body)\n });\n },\n\n ForStatement: function(M) {\n return new AST_For({\n start: my_start_token(M),\n end: my_end_token(M),\n init: from_moz(M.init),\n condition: from_moz(M.test),\n step: from_moz(M.update),\n body: from_moz(M.body)\n });\n },\n\n ForInStatement: function(M) {\n return new AST_ForIn({\n start: my_start_token(M),\n end: my_end_token(M),\n init: from_moz(M.left),\n object: from_moz(M.right),\n body: from_moz(M.body)\n });\n },\n\n ForOfStatement: function(M) {\n return new AST_ForOf({\n start: my_start_token(M),\n end: my_end_token(M),\n init: from_moz(M.left),\n object: from_moz(M.right),\n body: from_moz(M.body),\n await: M.await\n });\n },\n\n AwaitExpression: function(M) {\n return new AST_Await({\n start: my_start_token(M),\n end: my_end_token(M),\n expression: from_moz(M.argument)\n });\n },\n\n YieldExpression: function(M) {\n return new AST_Yield({\n start: my_start_token(M),\n end: my_end_token(M),\n expression: from_moz(M.argument),\n is_star: M.delegate\n });\n },\n\n DebuggerStatement: function(M) {\n return new AST_Debugger({\n start: my_start_token(M),\n end: my_end_token(M)\n });\n },\n\n VariableDeclarator: function(M) {\n return new AST_VarDef({\n start: my_start_token(M),\n end: my_end_token(M),\n name: from_moz(M.id),\n value: from_moz(M.init)\n });\n },\n\n CatchClause: function(M) {\n return new AST_Catch({\n start: my_start_token(M),\n end: my_end_token(M),\n argname: from_moz(M.param),\n body: from_moz(M.body).body\n });\n },\n\n ThisExpression: function(M) {\n return new AST_This({\n start: my_start_token(M),\n end: my_end_token(M)\n });\n },\n\n Super: function(M) {\n return new AST_Super({\n start: my_start_token(M),\n end: my_end_token(M)\n });\n },\n\n BinaryExpression: function(M) {\n if (M.left.type === \"PrivateIdentifier\") {\n return new AST_PrivateIn({\n start: my_start_token(M),\n end: my_end_token(M),\n key: new AST_SymbolPrivateProperty({\n start: my_start_token(M.left),\n end: my_end_token(M.left),\n name: M.left.name\n }),\n value: from_moz(M.right),\n });\n }\n return new AST_Binary({\n start: my_start_token(M),\n end: my_end_token(M),\n operator: M.operator,\n left: from_moz(M.left),\n right: from_moz(M.right)\n });\n },\n\n LogicalExpression: function(M) {\n return new AST_Binary({\n start: my_start_token(M),\n end: my_end_token(M),\n operator: M.operator,\n left: from_moz(M.left),\n right: from_moz(M.right)\n });\n },\n\n AssignmentExpression: function(M) {\n return new AST_Assign({\n start: my_start_token(M),\n end: my_end_token(M),\n operator: M.operator,\n left: from_moz(M.left),\n right: from_moz(M.right)\n });\n },\n\n ConditionalExpression: function(M) {\n return new AST_Conditional({\n start: my_start_token(M),\n end: my_end_token(M),\n condition: from_moz(M.test),\n consequent: from_moz(M.consequent),\n alternative: from_moz(M.alternate)\n });\n },\n\n NewExpression: function(M) {\n return new AST_New({\n start: my_start_token(M),\n end: my_end_token(M),\n expression: from_moz(M.callee),\n args: M.arguments.map(from_moz)\n });\n },\n\n CallExpression: function(M) {\n return new AST_Call({\n start: my_start_token(M),\n end: my_end_token(M),\n expression: from_moz(M.callee),\n optional: M.optional,\n args: M.arguments.map(from_moz)\n });\n }\n };\n\n MOZ_TO_ME.UpdateExpression =\n MOZ_TO_ME.UnaryExpression = function To_Moz_Unary(M) {\n var prefix = \"prefix\" in M ? M.prefix\n : M.type == \"UnaryExpression\" ? true : false;\n return new (prefix ? AST_UnaryPrefix : AST_UnaryPostfix)({\n start : my_start_token(M),\n end : my_end_token(M),\n operator : M.operator,\n expression : from_moz(M.argument)\n });\n };\n\n MOZ_TO_ME.ClassDeclaration =\n MOZ_TO_ME.ClassExpression = function From_Moz_Class(M) {\n return new (M.type === \"ClassDeclaration\" ? AST_DefClass : AST_ClassExpression)({\n start : my_start_token(M),\n end : my_end_token(M),\n name : from_moz(M.id),\n extends : from_moz(M.superClass),\n properties: M.body.body.map(from_moz)\n });\n };\n\n def_to_moz(AST_EmptyStatement, function To_Moz_EmptyStatement() {\n return {\n type: \"EmptyStatement\"\n };\n });\n def_to_moz(AST_BlockStatement, function To_Moz_BlockStatement(M) {\n return {\n type: \"BlockStatement\",\n body: M.body.map(to_moz)\n };\n });\n def_to_moz(AST_If, function To_Moz_IfStatement(M) {\n return {\n type: \"IfStatement\",\n test: to_moz(M.condition),\n consequent: to_moz(M.body),\n alternate: to_moz(M.alternative)\n };\n });\n def_to_moz(AST_LabeledStatement, function To_Moz_LabeledStatement(M) {\n return {\n type: \"LabeledStatement\",\n label: to_moz(M.label),\n body: to_moz(M.body)\n };\n });\n def_to_moz(AST_Break, function To_Moz_BreakStatement(M) {\n return {\n type: \"BreakStatement\",\n label: to_moz(M.label)\n };\n });\n def_to_moz(AST_Continue, function To_Moz_ContinueStatement(M) {\n return {\n type: \"ContinueStatement\",\n label: to_moz(M.label)\n };\n });\n def_to_moz(AST_With, function To_Moz_WithStatement(M) {\n return {\n type: \"WithStatement\",\n object: to_moz(M.expression),\n body: to_moz(M.body)\n };\n });\n def_to_moz(AST_Switch, function To_Moz_SwitchStatement(M) {\n return {\n type: \"SwitchStatement\",\n discriminant: to_moz(M.expression),\n cases: M.body.map(to_moz)\n };\n });\n def_to_moz(AST_Return, function To_Moz_ReturnStatement(M) {\n return {\n type: \"ReturnStatement\",\n argument: to_moz(M.value)\n };\n });\n def_to_moz(AST_Throw, function To_Moz_ThrowStatement(M) {\n return {\n type: \"ThrowStatement\",\n argument: to_moz(M.value)\n };\n });\n def_to_moz(AST_While, function To_Moz_WhileStatement(M) {\n return {\n type: \"WhileStatement\",\n test: to_moz(M.condition),\n body: to_moz(M.body)\n };\n });\n def_to_moz(AST_Do, function To_Moz_DoWhileStatement(M) {\n return {\n type: \"DoWhileStatement\",\n test: to_moz(M.condition),\n body: to_moz(M.body)\n };\n });\n def_to_moz(AST_For, function To_Moz_ForStatement(M) {\n return {\n type: \"ForStatement\",\n init: to_moz(M.init),\n test: to_moz(M.condition),\n update: to_moz(M.step),\n body: to_moz(M.body)\n };\n });\n def_to_moz(AST_ForIn, function To_Moz_ForInStatement(M) {\n return {\n type: \"ForInStatement\",\n left: to_moz(M.init),\n right: to_moz(M.object),\n body: to_moz(M.body)\n };\n });\n def_to_moz(AST_ForOf, function To_Moz_ForOfStatement(M) {\n return {\n type: \"ForOfStatement\",\n left: to_moz(M.init),\n right: to_moz(M.object),\n body: to_moz(M.body),\n await: M.await\n };\n });\n def_to_moz(AST_Await, function To_Moz_AwaitExpression(M) {\n return {\n type: \"AwaitExpression\",\n argument: to_moz(M.expression)\n };\n });\n def_to_moz(AST_Yield, function To_Moz_YieldExpression(M) {\n return {\n type: \"YieldExpression\",\n argument: to_moz(M.expression),\n delegate: M.is_star\n };\n });\n def_to_moz(AST_Debugger, function To_Moz_DebuggerStatement() {\n return {\n type: \"DebuggerStatement\"\n };\n });\n def_to_moz(AST_VarDef, function To_Moz_VariableDeclarator(M) {\n return {\n type: \"VariableDeclarator\",\n id: to_moz(M.name),\n init: to_moz(M.value)\n };\n });\n def_to_moz(AST_Catch, function To_Moz_CatchClause(M) {\n return {\n type: \"CatchClause\",\n param: to_moz(M.argname),\n body: to_moz_block(M)\n };\n });\n\n def_to_moz(AST_This, function To_Moz_ThisExpression() {\n return {\n type: \"ThisExpression\"\n };\n });\n def_to_moz(AST_Super, function To_Moz_Super() {\n return {\n type: \"Super\"\n };\n });\n def_to_moz(AST_Binary, function To_Moz_BinaryExpression(M) {\n return {\n type: \"BinaryExpression\",\n operator: M.operator,\n left: to_moz(M.left),\n right: to_moz(M.right)\n };\n });\n def_to_moz(AST_Binary, function To_Moz_LogicalExpression(M) {\n return {\n type: \"LogicalExpression\",\n operator: M.operator,\n left: to_moz(M.left),\n right: to_moz(M.right)\n };\n });\n def_to_moz(AST_Assign, function To_Moz_AssignmentExpression(M) {\n return {\n type: \"AssignmentExpression\",\n operator: M.operator,\n left: to_moz(M.left),\n right: to_moz(M.right)\n };\n });\n def_to_moz(AST_Conditional, function To_Moz_ConditionalExpression(M) {\n return {\n type: \"ConditionalExpression\",\n test: to_moz(M.condition),\n consequent: to_moz(M.consequent),\n alternate: to_moz(M.alternative)\n };\n });\n def_to_moz(AST_New, function To_Moz_NewExpression(M) {\n return {\n type: \"NewExpression\",\n callee: to_moz(M.expression),\n arguments: M.args.map(to_moz)\n };\n });\n def_to_moz(AST_Call, function To_Moz_CallExpression(M) {\n return {\n type: \"CallExpression\",\n callee: to_moz(M.expression),\n optional: M.optional,\n arguments: M.args.map(to_moz)\n };\n });\n\n def_to_moz(AST_Toplevel, function To_Moz_Program(M) {\n return to_moz_scope(\"Program\", M);\n });\n\n def_to_moz(AST_Expansion, function To_Moz_Spread(M) {\n return {\n type: to_moz_in_destructuring() ? \"RestElement\" : \"SpreadElement\",\n argument: to_moz(M.expression)\n };\n });\n\n def_to_moz(AST_PrefixedTemplateString, function To_Moz_TaggedTemplateExpression(M) {\n return {\n type: \"TaggedTemplateExpression\",\n tag: to_moz(M.prefix),\n quasi: to_moz(M.template_string)\n };\n });\n\n def_to_moz(AST_TemplateString, function To_Moz_TemplateLiteral(M) {\n var quasis = [];\n var expressions = [];\n for (var i = 0; i < M.segments.length; i++) {\n if (i % 2 !== 0) {\n expressions.push(to_moz(M.segments[i]));\n } else {\n quasis.push({\n type: \"TemplateElement\",\n value: {\n raw: M.segments[i].raw,\n cooked: M.segments[i].value\n },\n tail: i === M.segments.length - 1\n });\n }\n }\n return {\n type: \"TemplateLiteral\",\n quasis: quasis,\n expressions: expressions\n };\n });\n\n def_to_moz(AST_Defun, function To_Moz_FunctionDeclaration(M) {\n return {\n type: \"FunctionDeclaration\",\n id: to_moz(M.name),\n params: M.argnames.map(to_moz),\n generator: M.is_generator,\n async: M.async,\n body: to_moz_scope(\"BlockStatement\", M)\n };\n });\n\n def_to_moz(AST_Function, function To_Moz_FunctionExpression(M, parent) {\n var is_generator = parent.is_generator !== undefined ?\n parent.is_generator : M.is_generator;\n return {\n type: \"FunctionExpression\",\n id: to_moz(M.name),\n params: M.argnames.map(to_moz),\n generator: is_generator,\n async: M.async,\n body: to_moz_scope(\"BlockStatement\", M)\n };\n });\n\n def_to_moz(AST_Arrow, function To_Moz_ArrowFunctionExpression(M) {\n var body = {\n type: \"BlockStatement\",\n body: M.body.map(to_moz)\n };\n return {\n type: \"ArrowFunctionExpression\",\n params: M.argnames.map(to_moz),\n async: M.async,\n body: body\n };\n });\n\n def_to_moz(AST_Destructuring, function To_Moz_ObjectPattern(M) {\n if (M.is_array) {\n return {\n type: \"ArrayPattern\",\n elements: M.names.map(to_moz)\n };\n }\n return {\n type: \"ObjectPattern\",\n properties: M.names.map(to_moz)\n };\n });\n\n def_to_moz(AST_Directive, function To_Moz_Directive(M) {\n return {\n type: \"ExpressionStatement\",\n expression: {\n type: \"Literal\",\n value: M.value,\n raw: M.print_to_string()\n },\n directive: M.value\n };\n });\n\n def_to_moz(AST_SimpleStatement, function To_Moz_ExpressionStatement(M) {\n return {\n type: \"ExpressionStatement\",\n expression: to_moz(M.body)\n };\n });\n\n def_to_moz(AST_SwitchBranch, function To_Moz_SwitchCase(M) {\n return {\n type: \"SwitchCase\",\n test: to_moz(M.expression),\n consequent: M.body.map(to_moz)\n };\n });\n\n def_to_moz(AST_Try, function To_Moz_TryStatement(M) {\n return {\n type: \"TryStatement\",\n block: to_moz_block(M.body),\n handler: to_moz(M.bcatch),\n guardedHandlers: [],\n finalizer: to_moz(M.bfinally)\n };\n });\n\n def_to_moz(AST_Catch, function To_Moz_CatchClause(M) {\n return {\n type: \"CatchClause\",\n param: to_moz(M.argname),\n guard: null,\n body: to_moz_block(M)\n };\n });\n\n def_to_moz(AST_Definitions, function To_Moz_VariableDeclaration(M) {\n return {\n type: \"VariableDeclaration\",\n kind:\n M instanceof AST_Const ? \"const\" :\n M instanceof AST_Let ? \"let\" : \"var\",\n declarations: M.definitions.map(to_moz)\n };\n });\n\n const assert_clause_to_moz = assert_clause => {\n const assertions = [];\n if (assert_clause) {\n for (const { key, value } of assert_clause.properties) {\n const key_moz = is_basic_identifier_string(key)\n ? { type: \"Identifier\", name: key }\n : { type: \"Literal\", value: key, raw: JSON.stringify(key) };\n assertions.push({\n type: \"ImportAttribute\",\n key: key_moz,\n value: to_moz(value)\n });\n }\n }\n return assertions;\n };\n\n def_to_moz(AST_Export, function To_Moz_ExportDeclaration(M) {\n if (M.exported_names) {\n var first_exported = M.exported_names[0];\n var first_exported_name = first_exported.name;\n if (first_exported_name.name === \"*\" && !first_exported_name.quote) {\n var foreign_name = first_exported.foreign_name;\n var exported = foreign_name.name === \"*\" && !foreign_name.quote\n ? null\n : to_moz(foreign_name);\n return {\n type: \"ExportAllDeclaration\",\n source: to_moz(M.module_name),\n exported: exported,\n assertions: assert_clause_to_moz(M.assert_clause)\n };\n }\n return {\n type: \"ExportNamedDeclaration\",\n specifiers: M.exported_names.map(function (name_mapping) {\n return {\n type: \"ExportSpecifier\",\n exported: to_moz(name_mapping.foreign_name),\n local: to_moz(name_mapping.name)\n };\n }),\n declaration: to_moz(M.exported_definition),\n source: to_moz(M.module_name),\n assertions: assert_clause_to_moz(M.assert_clause)\n };\n }\n return {\n type: M.is_default ? \"ExportDefaultDeclaration\" : \"ExportNamedDeclaration\",\n declaration: to_moz(M.exported_value || M.exported_definition)\n };\n });\n\n def_to_moz(AST_Import, function To_Moz_ImportDeclaration(M) {\n var specifiers = [];\n if (M.imported_name) {\n specifiers.push({\n type: \"ImportDefaultSpecifier\",\n local: to_moz(M.imported_name)\n });\n }\n if (M.imported_names) {\n var first_imported_foreign_name = M.imported_names[0].foreign_name;\n if (first_imported_foreign_name.name === \"*\" && !first_imported_foreign_name.quote) {\n specifiers.push({\n type: \"ImportNamespaceSpecifier\",\n local: to_moz(M.imported_names[0].name)\n });\n } else {\n M.imported_names.forEach(function(name_mapping) {\n specifiers.push({\n type: \"ImportSpecifier\",\n local: to_moz(name_mapping.name),\n imported: to_moz(name_mapping.foreign_name)\n });\n });\n }\n }\n return {\n type: \"ImportDeclaration\",\n specifiers: specifiers,\n source: to_moz(M.module_name),\n assertions: assert_clause_to_moz(M.assert_clause)\n };\n });\n\n def_to_moz(AST_ImportMeta, function To_Moz_MetaProperty() {\n return {\n type: \"MetaProperty\",\n meta: {\n type: \"Identifier\",\n name: \"import\"\n },\n property: {\n type: \"Identifier\",\n name: \"meta\"\n }\n };\n });\n\n def_to_moz(AST_Sequence, function To_Moz_SequenceExpression(M) {\n return {\n type: \"SequenceExpression\",\n expressions: M.expressions.map(to_moz)\n };\n });\n\n def_to_moz(AST_DotHash, function To_Moz_PrivateMemberExpression(M) {\n return {\n type: \"MemberExpression\",\n object: to_moz(M.expression),\n computed: false,\n property: {\n type: \"PrivateIdentifier\",\n name: M.property\n },\n optional: M.optional\n };\n });\n\n def_to_moz(AST_PropAccess, function To_Moz_MemberExpression(M) {\n var isComputed = M instanceof AST_Sub;\n return {\n type: \"MemberExpression\",\n object: to_moz(M.expression),\n computed: isComputed,\n property: isComputed ? to_moz(M.property) : {type: \"Identifier\", name: M.property},\n optional: M.optional\n };\n });\n\n def_to_moz(AST_Chain, function To_Moz_ChainExpression(M) {\n return {\n type: \"ChainExpression\",\n expression: to_moz(M.expression)\n };\n });\n\n def_to_moz(AST_Unary, function To_Moz_Unary(M) {\n return {\n type: M.operator == \"++\" || M.operator == \"--\" ? \"UpdateExpression\" : \"UnaryExpression\",\n operator: M.operator,\n prefix: M instanceof AST_UnaryPrefix,\n argument: to_moz(M.expression)\n };\n });\n\n def_to_moz(AST_Binary, function To_Moz_BinaryExpression(M) {\n if (M.operator == \"=\" && to_moz_in_destructuring()) {\n return {\n type: \"AssignmentPattern\",\n left: to_moz(M.left),\n right: to_moz(M.right)\n };\n }\n\n const type = M.operator == \"&&\" || M.operator == \"||\" || M.operator === \"??\"\n ? \"LogicalExpression\"\n : \"BinaryExpression\";\n\n return {\n type,\n left: to_moz(M.left),\n operator: M.operator,\n right: to_moz(M.right)\n };\n });\n\n def_to_moz(AST_PrivateIn, function To_Moz_BinaryExpression_PrivateIn(M) {\n return {\n type: \"BinaryExpression\",\n left: { type: \"PrivateIdentifier\", name: M.key.name },\n operator: \"in\",\n right: to_moz(M.value),\n };\n });\n\n def_to_moz(AST_Array, function To_Moz_ArrayExpression(M) {\n return {\n type: \"ArrayExpression\",\n elements: M.elements.map(to_moz)\n };\n });\n\n def_to_moz(AST_Object, function To_Moz_ObjectExpression(M) {\n return {\n type: \"ObjectExpression\",\n properties: M.properties.map(to_moz)\n };\n });\n\n def_to_moz(AST_ObjectProperty, function To_Moz_Property(M, parent) {\n var key = M.key instanceof AST_Node ? to_moz(M.key) : {\n type: \"Identifier\",\n value: M.key\n };\n if (typeof M.key === \"number\") {\n key = {\n type: \"Literal\",\n value: Number(M.key)\n };\n }\n if (typeof M.key === \"string\") {\n key = {\n type: \"Identifier\",\n name: M.key\n };\n }\n var kind;\n var string_or_num = typeof M.key === \"string\" || typeof M.key === \"number\";\n var computed = string_or_num ? false : !(M.key instanceof AST_Symbol) || M.key instanceof AST_SymbolRef;\n if (M instanceof AST_ObjectKeyVal) {\n kind = \"init\";\n computed = !string_or_num;\n } else\n if (M instanceof AST_ObjectGetter) {\n kind = \"get\";\n } else\n if (M instanceof AST_ObjectSetter) {\n kind = \"set\";\n }\n if (M instanceof AST_PrivateGetter || M instanceof AST_PrivateSetter) {\n const kind = M instanceof AST_PrivateGetter ? \"get\" : \"set\";\n return {\n type: \"MethodDefinition\",\n computed: false,\n kind: kind,\n static: M.static,\n key: {\n type: \"PrivateIdentifier\",\n name: M.key.name\n },\n value: to_moz(M.value)\n };\n }\n if (M instanceof AST_ClassPrivateProperty) {\n return {\n type: \"PropertyDefinition\",\n key: {\n type: \"PrivateIdentifier\",\n name: M.key.name\n },\n value: to_moz(M.value),\n computed: false,\n static: M.static\n };\n }\n if (M instanceof AST_ClassProperty) {\n return {\n type: \"PropertyDefinition\",\n key,\n value: to_moz(M.value),\n computed,\n static: M.static\n };\n }\n if (parent instanceof AST_Class) {\n return {\n type: \"MethodDefinition\",\n computed: computed,\n kind: kind,\n static: M.static,\n key: to_moz(M.key),\n value: to_moz(M.value)\n };\n }\n return {\n type: \"Property\",\n computed: computed,\n kind: kind,\n key: key,\n value: to_moz(M.value)\n };\n });\n\n def_to_moz(AST_ConciseMethod, function To_Moz_MethodDefinition(M, parent) {\n if (parent instanceof AST_Object) {\n return {\n type: \"Property\",\n computed: !(M.key instanceof AST_Symbol) || M.key instanceof AST_SymbolRef,\n kind: \"init\",\n method: true,\n shorthand: false,\n key: to_moz(M.key),\n value: to_moz(M.value)\n };\n }\n\n const key = M instanceof AST_PrivateMethod\n ? {\n type: \"PrivateIdentifier\",\n name: M.key.name\n }\n : to_moz(M.key);\n\n return {\n type: \"MethodDefinition\",\n kind: M.key === \"constructor\" ? \"constructor\" : \"method\",\n key,\n value: to_moz(M.value),\n computed: !(M.key instanceof AST_Symbol) || M.key instanceof AST_SymbolRef,\n static: M.static,\n };\n });\n\n def_to_moz(AST_Class, function To_Moz_Class(M) {\n var type = M instanceof AST_ClassExpression ? \"ClassExpression\" : \"ClassDeclaration\";\n return {\n type: type,\n superClass: to_moz(M.extends),\n id: M.name ? to_moz(M.name) : null,\n body: {\n type: \"ClassBody\",\n body: M.properties.map(to_moz)\n }\n };\n });\n\n def_to_moz(AST_ClassStaticBlock, function To_Moz_StaticBlock(M) {\n return {\n type: \"StaticBlock\",\n body: M.body.map(to_moz),\n };\n });\n\n def_to_moz(AST_NewTarget, function To_Moz_MetaProperty() {\n return {\n type: \"MetaProperty\",\n meta: {\n type: \"Identifier\",\n name: \"new\"\n },\n property: {\n type: \"Identifier\",\n name: \"target\"\n }\n };\n });\n\n def_to_moz(AST_Symbol, function To_Moz_Identifier(M, parent) {\n if (\n (M instanceof AST_SymbolMethod && parent.quote) ||\n ((\n M instanceof AST_SymbolImportForeign ||\n M instanceof AST_SymbolExportForeign ||\n M instanceof AST_SymbolExport\n ) && M.quote)\n ) {\n return {\n type: \"Literal\",\n value: M.name\n };\n }\n var def = M.definition();\n return {\n type: \"Identifier\",\n name: def ? def.mangled_name || def.name : M.name\n };\n });\n\n def_to_moz(AST_RegExp, function To_Moz_RegExpLiteral(M) {\n const pattern = M.value.source;\n const flags = M.value.flags;\n return {\n type: \"Literal\",\n value: null,\n raw: M.print_to_string(),\n regex: { pattern, flags }\n };\n });\n\n def_to_moz(AST_Constant, function To_Moz_Literal(M) {\n var value = M.value;\n return {\n type: \"Literal\",\n value: value,\n raw: M.raw || M.print_to_string()\n };\n });\n\n def_to_moz(AST_Atom, function To_Moz_Atom(M) {\n return {\n type: \"Identifier\",\n name: String(M.value)\n };\n });\n\n def_to_moz(AST_BigInt, M => ({\n type: \"BigIntLiteral\",\n value: M.value\n }));\n\n AST_Boolean.DEFMETHOD(\"to_mozilla_ast\", AST_Constant.prototype.to_mozilla_ast);\n AST_Null.DEFMETHOD(\"to_mozilla_ast\", AST_Constant.prototype.to_mozilla_ast);\n AST_Hole.DEFMETHOD(\"to_mozilla_ast\", function To_Moz_ArrayHole() { return null; });\n\n AST_Block.DEFMETHOD(\"to_mozilla_ast\", AST_BlockStatement.prototype.to_mozilla_ast);\n AST_Lambda.DEFMETHOD(\"to_mozilla_ast\", AST_Function.prototype.to_mozilla_ast);\n\n /* -----[ tools ]----- */\n\n function my_start_token(moznode) {\n var loc = moznode.loc, start = loc && loc.start;\n var range = moznode.range;\n return new AST_Token(\n \"\",\n \"\",\n start && start.line || 0,\n start && start.column || 0,\n range ? range [0] : moznode.start,\n false,\n [],\n [],\n loc && loc.source,\n );\n }\n\n function my_end_token(moznode) {\n var loc = moznode.loc, end = loc && loc.end;\n var range = moznode.range;\n return new AST_Token(\n \"\",\n \"\",\n end && end.line || 0,\n end && end.column || 0,\n range ? range [0] : moznode.end,\n false,\n [],\n [],\n loc && loc.source,\n );\n }\n\n var FROM_MOZ_STACK = null;\n\n function from_moz(node) {\n FROM_MOZ_STACK.push(node);\n var ret = node != null ? MOZ_TO_ME[node.type](node) : null;\n FROM_MOZ_STACK.pop();\n return ret;\n }\n\n AST_Node.from_mozilla_ast = function(node) {\n var save_stack = FROM_MOZ_STACK;\n FROM_MOZ_STACK = [];\n var ast = from_moz(node);\n FROM_MOZ_STACK = save_stack;\n return ast;\n };\n\n function set_moz_loc(mynode, moznode) {\n var start = mynode.start;\n var end = mynode.end;\n if (!(start && end)) {\n return moznode;\n }\n if (start.pos != null && end.endpos != null) {\n moznode.range = [start.pos, end.endpos];\n }\n if (start.line) {\n moznode.loc = {\n start: {line: start.line, column: start.col},\n end: end.endline ? {line: end.endline, column: end.endcol} : null\n };\n if (start.file) {\n moznode.loc.source = start.file;\n }\n }\n return moznode;\n }\n\n function def_to_moz(mytype, handler) {\n mytype.DEFMETHOD(\"to_mozilla_ast\", function(parent) {\n return set_moz_loc(this, handler(this, parent));\n });\n }\n\n var TO_MOZ_STACK = null;\n\n function to_moz(node) {\n if (TO_MOZ_STACK === null) { TO_MOZ_STACK = []; }\n TO_MOZ_STACK.push(node);\n var ast = node != null ? node.to_mozilla_ast(TO_MOZ_STACK[TO_MOZ_STACK.length - 2]) : null;\n TO_MOZ_STACK.pop();\n if (TO_MOZ_STACK.length === 0) { TO_MOZ_STACK = null; }\n return ast;\n }\n\n function to_moz_in_destructuring() {\n var i = TO_MOZ_STACK.length;\n while (i--) {\n if (TO_MOZ_STACK[i] instanceof AST_Destructuring) {\n return true;\n }\n }\n return false;\n }\n\n function to_moz_block(node) {\n return {\n type: \"BlockStatement\",\n body: node.body.map(to_moz)\n };\n }\n\n function to_moz_scope(type, node) {\n var body = node.body.map(to_moz);\n if (node.body[0] instanceof AST_SimpleStatement && node.body[0].body instanceof AST_String) {\n body.unshift(to_moz(new AST_EmptyStatement(node.body[0])));\n }\n return {\n type: type,\n body: body\n };\n }\n})();\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\n\"use strict\";\n\nimport {\n defaults,\n makePredicate,\n noop,\n regexp_source_fix,\n sort_regexp_flags,\n return_false,\n return_true,\n} from \"./utils/index.js\";\nimport { first_in_statement, left_is_object } from \"./utils/first_in_statement.js\";\nimport {\n AST_Array,\n AST_Arrow,\n AST_Assign,\n AST_Await,\n AST_BigInt,\n AST_Binary,\n AST_BlockStatement,\n AST_Break,\n AST_Call,\n AST_Case,\n AST_Catch,\n AST_Chain,\n AST_Class,\n AST_ClassExpression,\n AST_ClassPrivateProperty,\n AST_ClassProperty,\n AST_ClassStaticBlock,\n AST_ConciseMethod,\n AST_PrivateGetter,\n AST_PrivateMethod,\n AST_SymbolPrivateProperty,\n AST_PrivateSetter,\n AST_PrivateIn,\n AST_Conditional,\n AST_Const,\n AST_Constant,\n AST_Continue,\n AST_Debugger,\n AST_Default,\n AST_DefaultAssign,\n AST_Definitions,\n AST_Defun,\n AST_Destructuring,\n AST_Directive,\n AST_Do,\n AST_Dot,\n AST_DotHash,\n AST_EmptyStatement,\n AST_Exit,\n AST_Expansion,\n AST_Export,\n AST_Finally,\n AST_For,\n AST_ForIn,\n AST_ForOf,\n AST_Function,\n AST_Hole,\n AST_If,\n AST_Import,\n AST_ImportMeta,\n AST_Jump,\n AST_LabeledStatement,\n AST_Lambda,\n AST_Let,\n AST_LoopControl,\n AST_NameMapping,\n AST_New,\n AST_NewTarget,\n AST_Node,\n AST_Number,\n AST_Object,\n AST_ObjectGetter,\n AST_ObjectKeyVal,\n AST_ObjectProperty,\n AST_ObjectSetter,\n AST_PrefixedTemplateString,\n AST_PropAccess,\n AST_RegExp,\n AST_Return,\n AST_Scope,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Statement,\n AST_StatementWithBody,\n AST_String,\n AST_Sub,\n AST_Super,\n AST_Switch,\n AST_SwitchBranch,\n AST_Symbol,\n AST_SymbolClassProperty,\n AST_SymbolMethod,\n AST_SymbolRef,\n AST_TemplateSegment,\n AST_TemplateString,\n AST_This,\n AST_Throw,\n AST_Toplevel,\n AST_Try,\n AST_TryBlock,\n AST_Unary,\n AST_UnaryPostfix,\n AST_UnaryPrefix,\n AST_Var,\n AST_VarDef,\n AST_While,\n AST_With,\n AST_Yield,\n TreeWalker,\n walk,\n walk_abort\n} from \"./ast.js\";\nimport {\n get_full_char_code,\n get_full_char,\n is_identifier_char,\n is_basic_identifier_string,\n is_identifier_string,\n PRECEDENCE,\n ALL_RESERVED_WORDS,\n} from \"./parse.js\";\n\nconst CODE_LINE_BREAK = 10;\nconst CODE_SPACE = 32;\n\nconst r_annotation = /[@#]__(PURE|INLINE|NOINLINE)__/;\n\nfunction is_some_comments(comment) {\n // multiline comment\n return (\n (comment.type === \"comment2\" || comment.type === \"comment1\")\n && /@preserve|@copyright|@lic|@cc_on|^\\**!/i.test(comment.value)\n );\n}\n\nconst ROPE_COMMIT_WHEN = 8 * 1000;\nclass Rope {\n constructor() {\n this.committed = \"\";\n this.current = \"\";\n }\n\n append(str) {\n /** When `this.current` is too long, commit it. */\n if (this.current.length > ROPE_COMMIT_WHEN) {\n this.committed += this.current + str;\n this.current = \"\";\n } else {\n this.current += str;\n }\n }\n\n insertAt(char, index) {\n const { committed, current } = this;\n if (index < committed.length) {\n this.committed = committed.slice(0, index) + char + committed.slice(index);\n } else if (index === committed.length) {\n this.committed += char;\n } else {\n index -= committed.length;\n this.committed += current.slice(0, index) + char;\n this.current = current.slice(index);\n }\n }\n\n charAt(index) {\n const { committed } = this;\n if (index < committed.length) return committed[index];\n return this.current[index - committed.length];\n }\n\n charCodeAt(index) {\n const { committed } = this;\n if (index < committed.length) return committed.charCodeAt(index);\n return this.current.charCodeAt(index - committed.length);\n }\n\n length() {\n return this.committed.length + this.current.length;\n }\n\n expectDirective() {\n // /^$|[;{][\\s\\n]*$/\n\n let ch, n = this.length();\n\n if (n <= 0) return true;\n\n // Skip N whitespace from the end\n while (\n (ch = this.charCodeAt(--n))\n && (ch == CODE_SPACE || ch == CODE_LINE_BREAK)\n );\n\n // either \";\", or \"{\", or the string ended\n return !ch || ch === 59 || ch === 123;\n }\n\n hasNLB() {\n let n = this.length() - 1;\n while (n >= 0) {\n const code = this.charCodeAt(n--);\n\n if (code === CODE_LINE_BREAK) return true;\n if (code !== CODE_SPACE) return false;\n }\n return true;\n }\n\n\n toString() {\n return this.committed + this.current;\n }\n}\n\nfunction OutputStream(options) {\n\n var readonly = !options;\n options = defaults(options, {\n ascii_only : false,\n beautify : false,\n braces : false,\n comments : \"some\",\n ecma : 5,\n ie8 : false,\n indent_level : 4,\n indent_start : 0,\n inline_script : true,\n keep_numbers : false,\n keep_quoted_props : false,\n max_line_len : false,\n preamble : null,\n preserve_annotations : false,\n quote_keys : false,\n quote_style : 0,\n safari10 : false,\n semicolons : true,\n shebang : true,\n shorthand : undefined,\n source_map : null,\n webkit : false,\n width : 80,\n wrap_iife : false,\n wrap_func_args : true,\n\n _destroy_ast : false\n }, true);\n\n if (options.shorthand === undefined)\n options.shorthand = options.ecma > 5;\n\n // Convert comment option to RegExp if necessary and set up comments filter\n var comment_filter = return_false; // Default case, throw all comments away\n if (options.comments) {\n let comments = options.comments;\n if (typeof options.comments === \"string\" && /^\\/.*\\/[a-zA-Z]*$/.test(options.comments)) {\n var regex_pos = options.comments.lastIndexOf(\"/\");\n comments = new RegExp(\n options.comments.substr(1, regex_pos - 1),\n options.comments.substr(regex_pos + 1)\n );\n }\n if (comments instanceof RegExp) {\n comment_filter = function(comment) {\n return comment.type != \"comment5\" && comments.test(comment.value);\n };\n } else if (typeof comments === \"function\") {\n comment_filter = function(comment) {\n return comment.type != \"comment5\" && comments(this, comment);\n };\n } else if (comments === \"some\") {\n comment_filter = is_some_comments;\n } else { // NOTE includes \"all\" option\n comment_filter = return_true;\n }\n }\n\n if (options.preserve_annotations) {\n let prev_comment_filter = comment_filter;\n comment_filter = function (comment) {\n return r_annotation.test(comment.value) || prev_comment_filter.apply(this, arguments);\n };\n }\n\n var indentation = 0;\n var current_col = 0;\n var current_line = 1;\n var current_pos = 0;\n var OUTPUT = new Rope();\n let printed_comments = new Set();\n\n var to_utf8 = options.ascii_only ? function(str, identifier = false, regexp = false) {\n if (options.ecma >= 2015 && !options.safari10 && !regexp) {\n str = str.replace(/[\\ud800-\\udbff][\\udc00-\\udfff]/g, function(ch) {\n var code = get_full_char_code(ch, 0).toString(16);\n return \"\\\\u{\" + code + \"}\";\n });\n }\n return str.replace(/[\\u0000-\\u001f\\u007f-\\uffff]/g, function(ch) {\n var code = ch.charCodeAt(0).toString(16);\n if (code.length <= 2 && !identifier) {\n while (code.length < 2) code = \"0\" + code;\n return \"\\\\x\" + code;\n } else {\n while (code.length < 4) code = \"0\" + code;\n return \"\\\\u\" + code;\n }\n });\n } : function(str) {\n return str.replace(/[\\ud800-\\udbff][\\udc00-\\udfff]|([\\ud800-\\udbff]|[\\udc00-\\udfff])/g, function(match, lone) {\n if (lone) {\n return \"\\\\u\" + lone.charCodeAt(0).toString(16);\n }\n return match;\n });\n };\n\n function make_string(str, quote) {\n var dq = 0, sq = 0;\n str = str.replace(/[\\\\\\b\\f\\n\\r\\v\\t\\x22\\x27\\u2028\\u2029\\0\\ufeff]/g,\n function(s, i) {\n switch (s) {\n case '\"': ++dq; return '\"';\n case \"'\": ++sq; return \"'\";\n case \"\\\\\": return \"\\\\\\\\\";\n case \"\\n\": return \"\\\\n\";\n case \"\\r\": return \"\\\\r\";\n case \"\\t\": return \"\\\\t\";\n case \"\\b\": return \"\\\\b\";\n case \"\\f\": return \"\\\\f\";\n case \"\\x0B\": return options.ie8 ? \"\\\\x0B\" : \"\\\\v\";\n case \"\\u2028\": return \"\\\\u2028\";\n case \"\\u2029\": return \"\\\\u2029\";\n case \"\\ufeff\": return \"\\\\ufeff\";\n case \"\\0\":\n return /[0-9]/.test(get_full_char(str, i+1)) ? \"\\\\x00\" : \"\\\\0\";\n }\n return s;\n });\n function quote_single() {\n return \"'\" + str.replace(/\\x27/g, \"\\\\'\") + \"'\";\n }\n function quote_double() {\n return '\"' + str.replace(/\\x22/g, '\\\\\"') + '\"';\n }\n function quote_template() {\n return \"`\" + str.replace(/`/g, \"\\\\`\") + \"`\";\n }\n str = to_utf8(str);\n if (quote === \"`\") return quote_template();\n switch (options.quote_style) {\n case 1:\n return quote_single();\n case 2:\n return quote_double();\n case 3:\n return quote == \"'\" ? quote_single() : quote_double();\n default:\n return dq > sq ? quote_single() : quote_double();\n }\n }\n\n function encode_string(str, quote) {\n var ret = make_string(str, quote);\n if (options.inline_script) {\n ret = ret.replace(/<\\x2f(script)([>\\/\\t\\n\\f\\r ])/gi, \"<\\\\/$1$2\");\n ret = ret.replace(/\\x3c!--/g, \"\\\\x3c!--\");\n ret = ret.replace(/--\\x3e/g, \"--\\\\x3e\");\n }\n return ret;\n }\n\n function make_name(name) {\n name = name.toString();\n name = to_utf8(name, true);\n return name;\n }\n\n function make_indent(back) {\n return \" \".repeat(options.indent_start + indentation - back * options.indent_level);\n }\n\n /* -----[ beautification/minification ]----- */\n\n var has_parens = false;\n var might_need_space = false;\n var might_need_semicolon = false;\n var might_add_newline = 0;\n var need_newline_indented = false;\n var need_space = false;\n var newline_insert = -1;\n var last = \"\";\n var mapping_token, mapping_name, mappings = options.source_map && [];\n\n var do_add_mapping = mappings ? function() {\n mappings.forEach(function(mapping) {\n try {\n let { name, token } = mapping;\n if (name !== false) {\n if (token.type == \"name\" || token.type === \"privatename\") {\n name = token.value;\n } else if (name instanceof AST_Symbol) {\n name = token.type === \"string\" ? token.value : name.name;\n }\n }\n options.source_map.add(\n mapping.token.file,\n mapping.line, mapping.col,\n mapping.token.line, mapping.token.col,\n is_basic_identifier_string(name) ? name : undefined\n );\n } catch(ex) {\n // Ignore bad mapping\n }\n });\n mappings = [];\n } : noop;\n\n var ensure_line_len = options.max_line_len ? function() {\n if (current_col > options.max_line_len) {\n if (might_add_newline) {\n OUTPUT.insertAt(\"\\n\", might_add_newline);\n const len_after_newline = OUTPUT.length() - might_add_newline - 1;\n if (mappings) {\n var delta = len_after_newline - current_col;\n mappings.forEach(function(mapping) {\n mapping.line++;\n mapping.col += delta;\n });\n }\n current_line++;\n current_pos++;\n current_col = len_after_newline;\n }\n }\n if (might_add_newline) {\n might_add_newline = 0;\n do_add_mapping();\n }\n } : noop;\n\n var requireSemicolonChars = makePredicate(\"( [ + * / - , . `\");\n\n function print(str) {\n str = String(str);\n var ch = get_full_char(str, 0);\n if (need_newline_indented && ch) {\n need_newline_indented = false;\n if (ch !== \"\\n\") {\n print(\"\\n\");\n indent();\n }\n }\n if (need_space && ch) {\n need_space = false;\n if (!/[\\s;})]/.test(ch)) {\n space();\n }\n }\n newline_insert = -1;\n var prev = last.charAt(last.length - 1);\n if (might_need_semicolon) {\n might_need_semicolon = false;\n\n if (prev === \":\" && ch === \"}\" || (!ch || !\";}\".includes(ch)) && prev !== \";\") {\n if (options.semicolons || requireSemicolonChars.has(ch)) {\n OUTPUT.append(\";\");\n current_col++;\n current_pos++;\n } else {\n ensure_line_len();\n if (current_col > 0) {\n OUTPUT.append(\"\\n\");\n current_pos++;\n current_line++;\n current_col = 0;\n }\n\n if (/^\\s+$/.test(str)) {\n // reset the semicolon flag, since we didn't print one\n // now and might still have to later\n might_need_semicolon = true;\n }\n }\n\n if (!options.beautify)\n might_need_space = false;\n }\n }\n\n if (might_need_space) {\n if ((is_identifier_char(prev)\n && (is_identifier_char(ch) || ch == \"\\\\\"))\n || (ch == \"/\" && ch == prev)\n || ((ch == \"+\" || ch == \"-\") && ch == last)\n ) {\n OUTPUT.append(\" \");\n current_col++;\n current_pos++;\n }\n might_need_space = false;\n }\n\n if (mapping_token) {\n mappings.push({\n token: mapping_token,\n name: mapping_name,\n line: current_line,\n col: current_col\n });\n mapping_token = false;\n if (!might_add_newline) do_add_mapping();\n }\n\n OUTPUT.append(str);\n has_parens = str[str.length - 1] == \"(\";\n current_pos += str.length;\n var a = str.split(/\\r?\\n/), n = a.length - 1;\n current_line += n;\n current_col += a[0].length;\n if (n > 0) {\n ensure_line_len();\n current_col = a[n].length;\n }\n last = str;\n }\n\n var star = function() {\n print(\"*\");\n };\n\n var space = options.beautify ? function() {\n print(\" \");\n } : function() {\n might_need_space = true;\n };\n\n var indent = options.beautify ? function(half) {\n if (options.beautify) {\n print(make_indent(half ? 0.5 : 0));\n }\n } : noop;\n\n var with_indent = options.beautify ? function(col, cont) {\n if (col === true) col = next_indent();\n var save_indentation = indentation;\n indentation = col;\n var ret = cont();\n indentation = save_indentation;\n return ret;\n } : function(col, cont) { return cont(); };\n\n var newline = options.beautify ? function() {\n if (newline_insert < 0) return print(\"\\n\");\n if (OUTPUT.charAt(newline_insert) != \"\\n\") {\n OUTPUT.insertAt(\"\\n\", newline_insert);\n current_pos++;\n current_line++;\n }\n newline_insert++;\n } : options.max_line_len ? function() {\n ensure_line_len();\n might_add_newline = OUTPUT.length();\n } : noop;\n\n var semicolon = options.beautify ? function() {\n print(\";\");\n } : function() {\n might_need_semicolon = true;\n };\n\n function force_semicolon() {\n might_need_semicolon = false;\n print(\";\");\n }\n\n function next_indent() {\n return indentation + options.indent_level;\n }\n\n function with_block(cont) {\n var ret;\n print(\"{\");\n newline();\n with_indent(next_indent(), function() {\n ret = cont();\n });\n indent();\n print(\"}\");\n return ret;\n }\n\n function with_parens(cont) {\n print(\"(\");\n //XXX: still nice to have that for argument lists\n //var ret = with_indent(current_col, cont);\n var ret = cont();\n print(\")\");\n return ret;\n }\n\n function with_square(cont) {\n print(\"[\");\n //var ret = with_indent(current_col, cont);\n var ret = cont();\n print(\"]\");\n return ret;\n }\n\n function comma() {\n print(\",\");\n space();\n }\n\n function colon() {\n print(\":\");\n space();\n }\n\n var add_mapping = mappings ? function(token, name) {\n mapping_token = token;\n mapping_name = name;\n } : noop;\n\n function get() {\n if (might_add_newline) {\n ensure_line_len();\n }\n return OUTPUT.toString();\n }\n\n function filter_comment(comment) {\n if (!options.preserve_annotations) {\n comment = comment.replace(r_annotation, \" \");\n }\n if (/^\\s*$/.test(comment)) {\n return \"\";\n }\n return comment.replace(/(<\\s*\\/\\s*)(script)/i, \"<\\\\/$2\");\n }\n\n function prepend_comments(node) {\n var self = this;\n var start = node.start;\n if (!start) return;\n var printed_comments = self.printed_comments;\n\n // There cannot be a newline between return/yield and its value.\n const keyword_with_value = \n node instanceof AST_Exit && node.value\n || (node instanceof AST_Await || node instanceof AST_Yield)\n && node.expression;\n\n if (\n start.comments_before\n && printed_comments.has(start.comments_before)\n ) {\n if (keyword_with_value) {\n start.comments_before = [];\n } else {\n return;\n }\n }\n\n var comments = start.comments_before;\n if (!comments) {\n comments = start.comments_before = [];\n }\n printed_comments.add(comments);\n\n if (keyword_with_value) {\n var tw = new TreeWalker(function(node) {\n var parent = tw.parent();\n if (parent instanceof AST_Exit\n || parent instanceof AST_Await\n || parent instanceof AST_Yield\n || parent instanceof AST_Binary && parent.left === node\n || parent.TYPE == \"Call\" && parent.expression === node\n || parent instanceof AST_Conditional && parent.condition === node\n || parent instanceof AST_Dot && parent.expression === node\n || parent instanceof AST_Sequence && parent.expressions[0] === node\n || parent instanceof AST_Sub && parent.expression === node\n || parent instanceof AST_UnaryPostfix) {\n if (!node.start) return;\n var text = node.start.comments_before;\n if (text && !printed_comments.has(text)) {\n printed_comments.add(text);\n comments = comments.concat(text);\n }\n } else {\n return true;\n }\n });\n tw.push(node);\n keyword_with_value.walk(tw);\n }\n\n if (current_pos == 0) {\n if (comments.length > 0 && options.shebang && comments[0].type === \"comment5\"\n && !printed_comments.has(comments[0])) {\n print(\"#!\" + comments.shift().value + \"\\n\");\n indent();\n }\n var preamble = options.preamble;\n if (preamble) {\n print(preamble.replace(/\\r\\n?|[\\n\\u2028\\u2029]|\\s*$/g, \"\\n\"));\n }\n }\n\n comments = comments.filter(comment_filter, node).filter(c => !printed_comments.has(c));\n if (comments.length == 0) return;\n var last_nlb = OUTPUT.hasNLB();\n comments.forEach(function(c, i) {\n printed_comments.add(c);\n if (!last_nlb) {\n if (c.nlb) {\n print(\"\\n\");\n indent();\n last_nlb = true;\n } else if (i > 0) {\n space();\n }\n }\n\n if (/comment[134]/.test(c.type)) {\n var value = filter_comment(c.value);\n if (value) {\n print(\"//\" + value + \"\\n\");\n indent();\n }\n last_nlb = true;\n } else if (c.type == \"comment2\") {\n var value = filter_comment(c.value);\n if (value) {\n print(\"/*\" + value + \"*/\");\n }\n last_nlb = false;\n }\n });\n if (!last_nlb) {\n if (start.nlb) {\n print(\"\\n\");\n indent();\n } else {\n space();\n }\n }\n }\n\n function append_comments(node, tail) {\n var self = this;\n var token = node.end;\n if (!token) return;\n var printed_comments = self.printed_comments;\n var comments = token[tail ? \"comments_before\" : \"comments_after\"];\n if (!comments || printed_comments.has(comments)) return;\n if (!(node instanceof AST_Statement || comments.every((c) =>\n !/comment[134]/.test(c.type)\n ))) return;\n printed_comments.add(comments);\n var insert = OUTPUT.length();\n comments.filter(comment_filter, node).forEach(function(c, i) {\n if (printed_comments.has(c)) return;\n printed_comments.add(c);\n need_space = false;\n if (need_newline_indented) {\n print(\"\\n\");\n indent();\n need_newline_indented = false;\n } else if (c.nlb && (i > 0 || !OUTPUT.hasNLB())) {\n print(\"\\n\");\n indent();\n } else if (i > 0 || !tail) {\n space();\n }\n if (/comment[134]/.test(c.type)) {\n const value = filter_comment(c.value);\n if (value) {\n print(\"//\" + value);\n }\n need_newline_indented = true;\n } else if (c.type == \"comment2\") {\n const value = filter_comment(c.value);\n if (value) {\n print(\"/*\" + value + \"*/\");\n }\n need_space = true;\n }\n });\n if (OUTPUT.length() > insert) newline_insert = insert;\n }\n\n /**\n * When output.option(\"_destroy_ast\") is enabled, destroy the function.\n * Call this after printing it.\n */\n const gc_scope =\n options[\"_destroy_ast\"]\n ? function gc_scope(scope) {\n scope.body.length = 0;\n scope.argnames.length = 0;\n }\n : noop;\n\n var stack = [];\n return {\n get : get,\n toString : get,\n indent : indent,\n in_directive : false,\n use_asm : null,\n active_scope : null,\n indentation : function() { return indentation; },\n current_width : function() { return current_col - indentation; },\n should_break : function() { return options.width && this.current_width() >= options.width; },\n has_parens : function() { return has_parens; },\n newline : newline,\n print : print,\n star : star,\n space : space,\n comma : comma,\n colon : colon,\n last : function() { return last; },\n semicolon : semicolon,\n force_semicolon : force_semicolon,\n to_utf8 : to_utf8,\n print_name : function(name) { print(make_name(name)); },\n print_string : function(str, quote, escape_directive) {\n var encoded = encode_string(str, quote);\n if (escape_directive === true && !encoded.includes(\"\\\\\")) {\n // Insert semicolons to break directive prologue\n if (!OUTPUT.expectDirective()) {\n force_semicolon();\n }\n force_semicolon();\n }\n print(encoded);\n },\n print_template_string_chars: function(str) {\n var encoded = encode_string(str, \"`\").replace(/\\${/g, \"\\\\${\");\n return print(encoded.substr(1, encoded.length - 2));\n },\n encode_string : encode_string,\n next_indent : next_indent,\n with_indent : with_indent,\n with_block : with_block,\n with_parens : with_parens,\n with_square : with_square,\n add_mapping : add_mapping,\n option : function(opt) { return options[opt]; },\n gc_scope,\n printed_comments: printed_comments,\n prepend_comments: readonly ? noop : prepend_comments,\n append_comments : readonly || comment_filter === return_false ? noop : append_comments,\n line : function() { return current_line; },\n col : function() { return current_col; },\n pos : function() { return current_pos; },\n push_node : function(node) { stack.push(node); },\n pop_node : function() { return stack.pop(); },\n parent : function(n) {\n return stack[stack.length - 2 - (n || 0)];\n }\n };\n\n}\n\n/* -----[ code generators ]----- */\n\n(function() {\n\n /* -----[ utils ]----- */\n\n function DEFPRINT(nodetype, generator) {\n nodetype.DEFMETHOD(\"_codegen\", generator);\n }\n\n AST_Node.DEFMETHOD(\"print\", function(output, force_parens) {\n var self = this, generator = self._codegen;\n if (self instanceof AST_Scope) {\n output.active_scope = self;\n } else if (!output.use_asm && self instanceof AST_Directive && self.value == \"use asm\") {\n output.use_asm = output.active_scope;\n }\n function doit() {\n output.prepend_comments(self);\n self.add_source_map(output);\n generator(self, output);\n output.append_comments(self);\n }\n output.push_node(self);\n if (force_parens || self.needs_parens(output)) {\n output.with_parens(doit);\n } else {\n doit();\n }\n output.pop_node();\n if (self === output.use_asm) {\n output.use_asm = null;\n }\n });\n AST_Node.DEFMETHOD(\"_print\", AST_Node.prototype.print);\n\n AST_Node.DEFMETHOD(\"print_to_string\", function(options) {\n var output = OutputStream(options);\n this.print(output);\n return output.get();\n });\n\n /* -----[ PARENTHESES ]----- */\n\n function PARENS(nodetype, func) {\n if (Array.isArray(nodetype)) {\n nodetype.forEach(function(nodetype) {\n PARENS(nodetype, func);\n });\n } else {\n nodetype.DEFMETHOD(\"needs_parens\", func);\n }\n }\n\n PARENS(AST_Node, return_false);\n\n // a function expression needs parens around it when it's provably\n // the first token to appear in a statement.\n PARENS(AST_Function, function(output) {\n if (!output.has_parens() && first_in_statement(output)) {\n return true;\n }\n\n if (output.option(\"webkit\")) {\n var p = output.parent();\n if (p instanceof AST_PropAccess && p.expression === this) {\n return true;\n }\n }\n\n if (output.option(\"wrap_iife\")) {\n var p = output.parent();\n if (p instanceof AST_Call && p.expression === this) {\n return true;\n }\n }\n\n if (output.option(\"wrap_func_args\")) {\n var p = output.parent();\n if (p instanceof AST_Call && p.args.includes(this)) {\n return true;\n }\n }\n\n return false;\n });\n\n PARENS(AST_Arrow, function(output) {\n var p = output.parent();\n\n if (\n output.option(\"wrap_func_args\")\n && p instanceof AST_Call\n && p.args.includes(this)\n ) {\n return true;\n }\n return p instanceof AST_PropAccess && p.expression === this\n || p instanceof AST_Conditional && p.condition === this;\n });\n\n // same goes for an object literal (as in AST_Function), because\n // otherwise {...} would be interpreted as a block of code.\n PARENS(AST_Object, function(output) {\n return !output.has_parens() && first_in_statement(output);\n });\n\n PARENS(AST_ClassExpression, first_in_statement);\n\n PARENS(AST_Unary, function(output) {\n var p = output.parent();\n return p instanceof AST_PropAccess && p.expression === this\n || p instanceof AST_Call && p.expression === this\n || p instanceof AST_Binary\n && p.operator === \"**\"\n && this instanceof AST_UnaryPrefix\n && p.left === this\n && this.operator !== \"++\"\n && this.operator !== \"--\";\n });\n\n PARENS(AST_Await, function(output) {\n var p = output.parent();\n return p instanceof AST_PropAccess && p.expression === this\n || p instanceof AST_Call && p.expression === this\n || p instanceof AST_Binary && p.operator === \"**\" && p.left === this\n || output.option(\"safari10\") && p instanceof AST_UnaryPrefix;\n });\n\n PARENS(AST_Sequence, function(output) {\n var p = output.parent();\n return p instanceof AST_Call // (foo, bar)() or foo(1, (2, 3), 4)\n || p instanceof AST_Unary // !(foo, bar, baz)\n || p instanceof AST_Binary // 1 + (2, 3) + 4 ==> 8\n || p instanceof AST_VarDef // var a = (1, 2), b = a + a; ==> b == 4\n || p instanceof AST_PropAccess // (1, {foo:2}).foo or (1, {foo:2})[\"foo\"] ==> 2\n || p instanceof AST_Array // [ 1, (2, 3), 4 ] ==> [ 1, 3, 4 ]\n || p instanceof AST_ObjectProperty // { foo: (1, 2) }.foo ==> 2\n || p instanceof AST_Conditional /* (false, true) ? (a = 10, b = 20) : (c = 30)\n * ==> 20 (side effect, set a := 10 and b := 20) */\n || p instanceof AST_Arrow // x => (x, x)\n || p instanceof AST_DefaultAssign // x => (x = (0, function(){}))\n || p instanceof AST_Expansion // [...(a, b)]\n || p instanceof AST_ForOf && this === p.object // for (e of (foo, bar)) {}\n || p instanceof AST_Yield // yield (foo, bar)\n || p instanceof AST_Export // export default (foo, bar)\n ;\n });\n\n PARENS(AST_Binary, function(output) {\n var p = output.parent();\n // (foo && bar)()\n if (p instanceof AST_Call && p.expression === this)\n return true;\n // typeof (foo && bar)\n if (p instanceof AST_Unary)\n return true;\n // (foo && bar)[\"prop\"], (foo && bar).prop\n if (p instanceof AST_PropAccess && p.expression === this)\n return true;\n // this deals with precedence: 3 * (2 + 1)\n if (p instanceof AST_Binary) {\n const po = p.operator;\n const so = this.operator;\n\n if (so === \"??\" && (po === \"||\" || po === \"&&\")) {\n return true;\n }\n\n if (po === \"??\" && (so === \"||\" || so === \"&&\")) {\n return true;\n }\n\n const pp = PRECEDENCE[po];\n const sp = PRECEDENCE[so];\n if (pp > sp\n || (pp == sp\n && (this === p.right || po == \"**\"))) {\n return true;\n }\n }\n });\n\n PARENS(AST_Yield, function(output) {\n var p = output.parent();\n // (yield 1) + (yield 2)\n // a = yield 3\n if (p instanceof AST_Binary && p.operator !== \"=\")\n return true;\n // (yield 1)()\n // new (yield 1)()\n if (p instanceof AST_Call && p.expression === this)\n return true;\n // (yield 1) ? yield 2 : yield 3\n if (p instanceof AST_Conditional && p.condition === this)\n return true;\n // -(yield 4)\n if (p instanceof AST_Unary)\n return true;\n // (yield x).foo\n // (yield x)['foo']\n if (p instanceof AST_PropAccess && p.expression === this)\n return true;\n });\n\n PARENS(AST_Chain, function(output) {\n var p = output.parent();\n if (!(p instanceof AST_Call || p instanceof AST_PropAccess)) return false;\n return p.expression === this;\n });\n\n PARENS(AST_PropAccess, function(output) {\n var p = output.parent();\n if (p instanceof AST_New && p.expression === this) {\n // i.e. new (foo.bar().baz)\n //\n // if there's one call into this subtree, then we need\n // parens around it too, otherwise the call will be\n // interpreted as passing the arguments to the upper New\n // expression.\n return walk(this, node => {\n if (node instanceof AST_Scope) return true;\n if (node instanceof AST_Call) {\n return walk_abort; // makes walk() return true.\n }\n });\n }\n });\n\n PARENS(AST_Call, function(output) {\n var p = output.parent(), p1;\n if (p instanceof AST_New && p.expression === this\n || p instanceof AST_Export && p.is_default && this.expression instanceof AST_Function)\n return true;\n\n // workaround for Safari bug.\n // https://bugs.webkit.org/show_bug.cgi?id=123506\n return this.expression instanceof AST_Function\n && p instanceof AST_PropAccess\n && p.expression === this\n && (p1 = output.parent(1)) instanceof AST_Assign\n && p1.left === p;\n });\n\n PARENS(AST_New, function(output) {\n var p = output.parent();\n if (this.args.length === 0\n && (p instanceof AST_PropAccess // (new Date).getTime(), (new Date)[\"getTime\"]()\n || p instanceof AST_Call && p.expression === this\n || p instanceof AST_PrefixedTemplateString && p.prefix === this)) // (new foo)(bar)\n return true;\n });\n\n PARENS(AST_Number, function(output) {\n var p = output.parent();\n if (p instanceof AST_PropAccess && p.expression === this) {\n var value = this.getValue();\n if (value < 0 || /^0/.test(make_num(value))) {\n return true;\n }\n }\n });\n\n PARENS(AST_BigInt, function(output) {\n var p = output.parent();\n if (p instanceof AST_PropAccess && p.expression === this) {\n var value = this.getValue();\n if (value.startsWith(\"-\")) {\n return true;\n }\n }\n });\n\n PARENS([ AST_Assign, AST_Conditional ], function(output) {\n var p = output.parent();\n // !(a = false) → true\n if (p instanceof AST_Unary)\n return true;\n // 1 + (a = 2) + 3 → 6, side effect setting a = 2\n if (p instanceof AST_Binary && !(p instanceof AST_Assign))\n return true;\n // (a = func)() —or— new (a = Object)()\n if (p instanceof AST_Call && p.expression === this)\n return true;\n // (a = foo) ? bar : baz\n if (p instanceof AST_Conditional && p.condition === this)\n return true;\n // (a = foo)[\"prop\"] —or— (a = foo).prop\n if (p instanceof AST_PropAccess && p.expression === this)\n return true;\n // ({a, b} = {a: 1, b: 2}), a destructuring assignment\n if (this instanceof AST_Assign && this.left instanceof AST_Destructuring && this.left.is_array === false)\n return true;\n });\n\n /* -----[ PRINTERS ]----- */\n\n DEFPRINT(AST_Directive, function(self, output) {\n output.print_string(self.value, self.quote);\n output.semicolon();\n });\n\n DEFPRINT(AST_Expansion, function (self, output) {\n output.print(\"...\");\n self.expression.print(output);\n });\n\n DEFPRINT(AST_Destructuring, function (self, output) {\n output.print(self.is_array ? \"[\" : \"{\");\n var len = self.names.length;\n self.names.forEach(function (name, i) {\n if (i > 0) output.comma();\n name.print(output);\n // If the final element is a hole, we need to make sure it\n // doesn't look like a trailing comma, by inserting an actual\n // trailing comma.\n if (i == len - 1 && name instanceof AST_Hole) output.comma();\n });\n output.print(self.is_array ? \"]\" : \"}\");\n });\n\n DEFPRINT(AST_Debugger, function(self, output) {\n output.print(\"debugger\");\n output.semicolon();\n });\n\n /* -----[ statements ]----- */\n\n function display_body(body, is_toplevel, output, allow_directives) {\n var last = body.length - 1;\n output.in_directive = allow_directives;\n body.forEach(function(stmt, i) {\n if (output.in_directive === true && !(stmt instanceof AST_Directive ||\n stmt instanceof AST_EmptyStatement ||\n (stmt instanceof AST_SimpleStatement && stmt.body instanceof AST_String)\n )) {\n output.in_directive = false;\n }\n if (!(stmt instanceof AST_EmptyStatement)) {\n output.indent();\n stmt.print(output);\n if (!(i == last && is_toplevel)) {\n output.newline();\n if (is_toplevel) output.newline();\n }\n }\n if (output.in_directive === true &&\n stmt instanceof AST_SimpleStatement &&\n stmt.body instanceof AST_String\n ) {\n output.in_directive = false;\n }\n });\n output.in_directive = false;\n }\n\n AST_StatementWithBody.DEFMETHOD(\"_do_print_body\", function(output) {\n print_maybe_braced_body(this.body, output);\n });\n\n DEFPRINT(AST_Statement, function(self, output) {\n self.body.print(output);\n output.semicolon();\n });\n DEFPRINT(AST_Toplevel, function(self, output) {\n display_body(self.body, true, output, true);\n output.print(\"\");\n });\n DEFPRINT(AST_LabeledStatement, function(self, output) {\n self.label.print(output);\n output.colon();\n self.body.print(output);\n });\n DEFPRINT(AST_SimpleStatement, function(self, output) {\n self.body.print(output);\n output.semicolon();\n });\n function print_braced_empty(self, output) {\n output.print(\"{\");\n output.with_indent(output.next_indent(), function() {\n output.append_comments(self, true);\n });\n output.add_mapping(self.end);\n output.print(\"}\");\n }\n function print_braced(self, output, allow_directives) {\n if (self.body.length > 0) {\n output.with_block(function() {\n display_body(self.body, false, output, allow_directives);\n output.add_mapping(self.end);\n });\n } else print_braced_empty(self, output);\n }\n DEFPRINT(AST_BlockStatement, function(self, output) {\n print_braced(self, output);\n });\n DEFPRINT(AST_EmptyStatement, function(self, output) {\n output.semicolon();\n });\n DEFPRINT(AST_Do, function(self, output) {\n output.print(\"do\");\n output.space();\n make_block(self.body, output);\n output.space();\n output.print(\"while\");\n output.space();\n output.with_parens(function() {\n self.condition.print(output);\n });\n output.semicolon();\n });\n DEFPRINT(AST_While, function(self, output) {\n output.print(\"while\");\n output.space();\n output.with_parens(function() {\n self.condition.print(output);\n });\n output.space();\n self._do_print_body(output);\n });\n DEFPRINT(AST_For, function(self, output) {\n output.print(\"for\");\n output.space();\n output.with_parens(function() {\n if (self.init) {\n if (self.init instanceof AST_Definitions) {\n self.init.print(output);\n } else {\n parenthesize_for_noin(self.init, output, true);\n }\n output.print(\";\");\n output.space();\n } else {\n output.print(\";\");\n }\n if (self.condition) {\n self.condition.print(output);\n output.print(\";\");\n output.space();\n } else {\n output.print(\";\");\n }\n if (self.step) {\n self.step.print(output);\n }\n });\n output.space();\n self._do_print_body(output);\n });\n DEFPRINT(AST_ForIn, function(self, output) {\n output.print(\"for\");\n if (self.await) {\n output.space();\n output.print(\"await\");\n }\n output.space();\n output.with_parens(function() {\n self.init.print(output);\n output.space();\n output.print(self instanceof AST_ForOf ? \"of\" : \"in\");\n output.space();\n self.object.print(output);\n });\n output.space();\n self._do_print_body(output);\n });\n DEFPRINT(AST_With, function(self, output) {\n output.print(\"with\");\n output.space();\n output.with_parens(function() {\n self.expression.print(output);\n });\n output.space();\n self._do_print_body(output);\n });\n\n /* -----[ functions ]----- */\n AST_Lambda.DEFMETHOD(\"_do_print\", function(output, nokeyword) {\n var self = this;\n if (!nokeyword) {\n if (self.async) {\n output.print(\"async\");\n output.space();\n }\n output.print(\"function\");\n if (self.is_generator) {\n output.star();\n }\n if (self.name) {\n output.space();\n }\n }\n if (self.name instanceof AST_Symbol) {\n self.name.print(output);\n } else if (nokeyword && self.name instanceof AST_Node) {\n output.with_square(function() {\n self.name.print(output); // Computed method name\n });\n }\n output.with_parens(function() {\n self.argnames.forEach(function(arg, i) {\n if (i) output.comma();\n arg.print(output);\n });\n });\n output.space();\n print_braced(self, output, true);\n });\n DEFPRINT(AST_Lambda, function(self, output) {\n self._do_print(output);\n output.gc_scope(self);\n });\n\n DEFPRINT(AST_PrefixedTemplateString, function(self, output) {\n var tag = self.prefix;\n var parenthesize_tag = tag instanceof AST_Lambda\n || tag instanceof AST_Binary\n || tag instanceof AST_Conditional\n || tag instanceof AST_Sequence\n || tag instanceof AST_Unary\n || tag instanceof AST_Dot && tag.expression instanceof AST_Object;\n if (parenthesize_tag) output.print(\"(\");\n self.prefix.print(output);\n if (parenthesize_tag) output.print(\")\");\n self.template_string.print(output);\n });\n DEFPRINT(AST_TemplateString, function(self, output) {\n var is_tagged = output.parent() instanceof AST_PrefixedTemplateString;\n\n output.print(\"`\");\n for (var i = 0; i < self.segments.length; i++) {\n if (!(self.segments[i] instanceof AST_TemplateSegment)) {\n output.print(\"${\");\n self.segments[i].print(output);\n output.print(\"}\");\n } else if (is_tagged) {\n output.print(self.segments[i].raw);\n } else {\n output.print_template_string_chars(self.segments[i].value);\n }\n }\n output.print(\"`\");\n });\n DEFPRINT(AST_TemplateSegment, function(self, output) {\n output.print_template_string_chars(self.value);\n });\n\n AST_Arrow.DEFMETHOD(\"_do_print\", function(output) {\n var self = this;\n var parent = output.parent();\n var needs_parens = (parent instanceof AST_Binary && !(parent instanceof AST_Assign)) ||\n parent instanceof AST_Unary ||\n (parent instanceof AST_Call && self === parent.expression);\n if (needs_parens) { output.print(\"(\"); }\n if (self.async) {\n output.print(\"async\");\n output.space();\n }\n if (self.argnames.length === 1 && self.argnames[0] instanceof AST_Symbol) {\n self.argnames[0].print(output);\n } else {\n output.with_parens(function() {\n self.argnames.forEach(function(arg, i) {\n if (i) output.comma();\n arg.print(output);\n });\n });\n }\n output.space();\n output.print(\"=>\");\n output.space();\n const first_statement = self.body[0];\n if (\n self.body.length === 1\n && first_statement instanceof AST_Return\n ) {\n const returned = first_statement.value;\n if (!returned) {\n output.print(\"{}\");\n } else if (left_is_object(returned)) {\n output.print(\"(\");\n returned.print(output);\n output.print(\")\");\n } else {\n returned.print(output);\n }\n } else {\n print_braced(self, output);\n }\n if (needs_parens) { output.print(\")\"); }\n output.gc_scope(self);\n });\n\n /* -----[ exits ]----- */\n AST_Exit.DEFMETHOD(\"_do_print\", function(output, kind) {\n output.print(kind);\n if (this.value) {\n output.space();\n const comments = this.value.start.comments_before;\n if (comments && comments.length && !output.printed_comments.has(comments)) {\n output.print(\"(\");\n this.value.print(output);\n output.print(\")\");\n } else {\n this.value.print(output);\n }\n }\n output.semicolon();\n });\n DEFPRINT(AST_Return, function(self, output) {\n self._do_print(output, \"return\");\n });\n DEFPRINT(AST_Throw, function(self, output) {\n self._do_print(output, \"throw\");\n });\n\n /* -----[ yield ]----- */\n\n DEFPRINT(AST_Yield, function(self, output) {\n var star = self.is_star ? \"*\" : \"\";\n output.print(\"yield\" + star);\n if (self.expression) {\n output.space();\n self.expression.print(output);\n }\n });\n\n DEFPRINT(AST_Await, function(self, output) {\n output.print(\"await\");\n output.space();\n var e = self.expression;\n var parens = !(\n e instanceof AST_Call\n || e instanceof AST_SymbolRef\n || e instanceof AST_PropAccess\n || e instanceof AST_Unary\n || e instanceof AST_Constant\n || e instanceof AST_Await\n || e instanceof AST_Object\n );\n if (parens) output.print(\"(\");\n self.expression.print(output);\n if (parens) output.print(\")\");\n });\n\n /* -----[ loop control ]----- */\n AST_LoopControl.DEFMETHOD(\"_do_print\", function(output, kind) {\n output.print(kind);\n if (this.label) {\n output.space();\n this.label.print(output);\n }\n output.semicolon();\n });\n DEFPRINT(AST_Break, function(self, output) {\n self._do_print(output, \"break\");\n });\n DEFPRINT(AST_Continue, function(self, output) {\n self._do_print(output, \"continue\");\n });\n\n /* -----[ if ]----- */\n function make_then(self, output) {\n var b = self.body;\n if (output.option(\"braces\")\n || output.option(\"ie8\") && b instanceof AST_Do)\n return make_block(b, output);\n // The squeezer replaces \"block\"-s that contain only a single\n // statement with the statement itself; technically, the AST\n // is correct, but this can create problems when we output an\n // IF having an ELSE clause where the THEN clause ends in an\n // IF *without* an ELSE block (then the outer ELSE would refer\n // to the inner IF). This function checks for this case and\n // adds the block braces if needed.\n if (!b) return output.force_semicolon();\n while (true) {\n if (b instanceof AST_If) {\n if (!b.alternative) {\n make_block(self.body, output);\n return;\n }\n b = b.alternative;\n } else if (b instanceof AST_StatementWithBody) {\n b = b.body;\n } else break;\n }\n print_maybe_braced_body(self.body, output);\n }\n DEFPRINT(AST_If, function(self, output) {\n output.print(\"if\");\n output.space();\n output.with_parens(function() {\n self.condition.print(output);\n });\n output.space();\n if (self.alternative) {\n make_then(self, output);\n output.space();\n output.print(\"else\");\n output.space();\n if (self.alternative instanceof AST_If)\n self.alternative.print(output);\n else\n print_maybe_braced_body(self.alternative, output);\n } else {\n self._do_print_body(output);\n }\n });\n\n /* -----[ switch ]----- */\n DEFPRINT(AST_Switch, function(self, output) {\n output.print(\"switch\");\n output.space();\n output.with_parens(function() {\n self.expression.print(output);\n });\n output.space();\n var last = self.body.length - 1;\n if (last < 0) print_braced_empty(self, output);\n else output.with_block(function() {\n self.body.forEach(function(branch, i) {\n output.indent(true);\n branch.print(output);\n if (i < last && branch.body.length > 0)\n output.newline();\n });\n });\n });\n AST_SwitchBranch.DEFMETHOD(\"_do_print_body\", function(output) {\n output.newline();\n this.body.forEach(function(stmt) {\n output.indent();\n stmt.print(output);\n output.newline();\n });\n });\n DEFPRINT(AST_Default, function(self, output) {\n output.print(\"default:\");\n self._do_print_body(output);\n });\n DEFPRINT(AST_Case, function(self, output) {\n output.print(\"case\");\n output.space();\n self.expression.print(output);\n output.print(\":\");\n self._do_print_body(output);\n });\n\n /* -----[ exceptions ]----- */\n DEFPRINT(AST_Try, function(self, output) {\n output.print(\"try\");\n output.space();\n self.body.print(output);\n if (self.bcatch) {\n output.space();\n self.bcatch.print(output);\n }\n if (self.bfinally) {\n output.space();\n self.bfinally.print(output);\n }\n });\n DEFPRINT(AST_TryBlock, function(self, output) {\n print_braced(self, output);\n });\n DEFPRINT(AST_Catch, function(self, output) {\n output.print(\"catch\");\n if (self.argname) {\n output.space();\n output.with_parens(function() {\n self.argname.print(output);\n });\n }\n output.space();\n print_braced(self, output);\n });\n DEFPRINT(AST_Finally, function(self, output) {\n output.print(\"finally\");\n output.space();\n print_braced(self, output);\n });\n\n /* -----[ var/const ]----- */\n AST_Definitions.DEFMETHOD(\"_do_print\", function(output, kind) {\n output.print(kind);\n output.space();\n this.definitions.forEach(function(def, i) {\n if (i) output.comma();\n def.print(output);\n });\n var p = output.parent();\n var in_for = p instanceof AST_For || p instanceof AST_ForIn;\n var output_semicolon = !in_for || p && p.init !== this;\n if (output_semicolon)\n output.semicolon();\n });\n DEFPRINT(AST_Let, function(self, output) {\n self._do_print(output, \"let\");\n });\n DEFPRINT(AST_Var, function(self, output) {\n self._do_print(output, \"var\");\n });\n DEFPRINT(AST_Const, function(self, output) {\n self._do_print(output, \"const\");\n });\n DEFPRINT(AST_Import, function(self, output) {\n output.print(\"import\");\n output.space();\n if (self.imported_name) {\n self.imported_name.print(output);\n }\n if (self.imported_name && self.imported_names) {\n output.print(\",\");\n output.space();\n }\n if (self.imported_names) {\n if (self.imported_names.length === 1 &&\n self.imported_names[0].foreign_name.name === \"*\" &&\n !self.imported_names[0].foreign_name.quote) {\n self.imported_names[0].print(output);\n } else {\n output.print(\"{\");\n self.imported_names.forEach(function (name_import, i) {\n output.space();\n name_import.print(output);\n if (i < self.imported_names.length - 1) {\n output.print(\",\");\n }\n });\n output.space();\n output.print(\"}\");\n }\n }\n if (self.imported_name || self.imported_names) {\n output.space();\n output.print(\"from\");\n output.space();\n }\n self.module_name.print(output);\n if (self.assert_clause) {\n output.print(\"assert\");\n self.assert_clause.print(output);\n }\n output.semicolon();\n });\n DEFPRINT(AST_ImportMeta, function(self, output) {\n output.print(\"import.meta\");\n });\n\n DEFPRINT(AST_NameMapping, function(self, output) {\n var is_import = output.parent() instanceof AST_Import;\n var definition = self.name.definition();\n var foreign_name = self.foreign_name;\n var names_are_different =\n (definition && definition.mangled_name || self.name.name) !==\n foreign_name.name;\n if (!names_are_different &&\n foreign_name.name === \"*\" &&\n foreign_name.quote != self.name.quote) {\n // export * as \"*\"\n names_are_different = true;\n }\n var foreign_name_is_name = foreign_name.quote == null;\n if (names_are_different) {\n if (is_import) {\n if (foreign_name_is_name) {\n output.print(foreign_name.name);\n } else {\n output.print_string(foreign_name.name, foreign_name.quote);\n }\n } else {\n if (self.name.quote == null) {\n self.name.print(output);\n } else {\n output.print_string(self.name.name, self.name.quote);\n }\n \n }\n output.space();\n output.print(\"as\");\n output.space();\n if (is_import) {\n self.name.print(output);\n } else {\n if (foreign_name_is_name) {\n output.print(foreign_name.name);\n } else {\n output.print_string(foreign_name.name, foreign_name.quote);\n }\n }\n } else {\n if (self.name.quote == null) {\n self.name.print(output);\n } else {\n output.print_string(self.name.name, self.name.quote);\n }\n }\n });\n\n DEFPRINT(AST_Export, function(self, output) {\n output.print(\"export\");\n output.space();\n if (self.is_default) {\n output.print(\"default\");\n output.space();\n }\n if (self.exported_names) {\n if (self.exported_names.length === 1 &&\n self.exported_names[0].name.name === \"*\" &&\n !self.exported_names[0].name.quote) {\n self.exported_names[0].print(output);\n } else {\n output.print(\"{\");\n self.exported_names.forEach(function(name_export, i) {\n output.space();\n name_export.print(output);\n if (i < self.exported_names.length - 1) {\n output.print(\",\");\n }\n });\n output.space();\n output.print(\"}\");\n }\n } else if (self.exported_value) {\n self.exported_value.print(output);\n } else if (self.exported_definition) {\n self.exported_definition.print(output);\n if (self.exported_definition instanceof AST_Definitions) return;\n }\n if (self.module_name) {\n output.space();\n output.print(\"from\");\n output.space();\n self.module_name.print(output);\n }\n if (self.assert_clause) {\n output.print(\"assert\");\n self.assert_clause.print(output);\n }\n if (self.exported_value\n && !(self.exported_value instanceof AST_Defun ||\n self.exported_value instanceof AST_Function ||\n self.exported_value instanceof AST_Class)\n || self.module_name\n || self.exported_names\n ) {\n output.semicolon();\n }\n });\n\n function parenthesize_for_noin(node, output, noin) {\n var parens = false;\n // need to take some precautions here:\n // https://github.com/mishoo/UglifyJS2/issues/60\n if (noin) {\n parens = walk(node, node => {\n // Don't go into scopes -- except arrow functions:\n // https://github.com/terser/terser/issues/1019#issuecomment-877642607\n if (node instanceof AST_Scope && !(node instanceof AST_Arrow)) {\n return true;\n }\n if (\n node instanceof AST_Binary && node.operator == \"in\"\n || node instanceof AST_PrivateIn\n ) {\n return walk_abort; // makes walk() return true\n }\n });\n }\n node.print(output, parens);\n }\n\n DEFPRINT(AST_VarDef, function(self, output) {\n self.name.print(output);\n if (self.value) {\n output.space();\n output.print(\"=\");\n output.space();\n var p = output.parent(1);\n var noin = p instanceof AST_For || p instanceof AST_ForIn;\n parenthesize_for_noin(self.value, output, noin);\n }\n });\n\n /* -----[ other expressions ]----- */\n DEFPRINT(AST_Call, function(self, output) {\n self.expression.print(output);\n if (self instanceof AST_New && self.args.length === 0)\n return;\n if (self.expression instanceof AST_Call || self.expression instanceof AST_Lambda) {\n output.add_mapping(self.start);\n }\n if (self.optional) output.print(\"?.\");\n output.with_parens(function() {\n self.args.forEach(function(expr, i) {\n if (i) output.comma();\n expr.print(output);\n });\n });\n });\n DEFPRINT(AST_New, function(self, output) {\n output.print(\"new\");\n output.space();\n AST_Call.prototype._codegen(self, output);\n });\n\n AST_Sequence.DEFMETHOD(\"_do_print\", function(output) {\n this.expressions.forEach(function(node, index) {\n if (index > 0) {\n output.comma();\n if (output.should_break()) {\n output.newline();\n output.indent();\n }\n }\n node.print(output);\n });\n });\n DEFPRINT(AST_Sequence, function(self, output) {\n self._do_print(output);\n // var p = output.parent();\n // if (p instanceof AST_Statement) {\n // output.with_indent(output.next_indent(), function(){\n // self._do_print(output);\n // });\n // } else {\n // self._do_print(output);\n // }\n });\n DEFPRINT(AST_Dot, function(self, output) {\n var expr = self.expression;\n expr.print(output);\n var prop = self.property;\n var print_computed = ALL_RESERVED_WORDS.has(prop)\n ? output.option(\"ie8\")\n : !is_identifier_string(\n prop,\n output.option(\"ecma\") >= 2015 && !output.option(\"safari10\")\n );\n\n if (self.optional) output.print(\"?.\");\n\n if (print_computed) {\n output.print(\"[\");\n output.add_mapping(self.end);\n output.print_string(prop);\n output.print(\"]\");\n } else {\n if (expr instanceof AST_Number && expr.getValue() >= 0) {\n if (!/[xa-f.)]/i.test(output.last())) {\n output.print(\".\");\n }\n }\n if (!self.optional) output.print(\".\");\n // the name after dot would be mapped about here.\n output.add_mapping(self.end);\n output.print_name(prop);\n }\n });\n DEFPRINT(AST_DotHash, function(self, output) {\n var expr = self.expression;\n expr.print(output);\n var prop = self.property;\n\n if (self.optional) output.print(\"?\");\n output.print(\".#\");\n output.add_mapping(self.end);\n output.print_name(prop);\n });\n DEFPRINT(AST_Sub, function(self, output) {\n self.expression.print(output);\n if (self.optional) output.print(\"?.\");\n output.print(\"[\");\n self.property.print(output);\n output.print(\"]\");\n });\n DEFPRINT(AST_Chain, function(self, output) {\n self.expression.print(output);\n });\n DEFPRINT(AST_UnaryPrefix, function(self, output) {\n var op = self.operator;\n if (op === \"--\" && output.last().endsWith(\"!\")) {\n // avoid printing \"\n output.print(\" \");\n } else {\n // the space is optional depending on \"beautify\"\n output.space();\n }\n output.print(op);\n output.space();\n self.right.print(output);\n });\n DEFPRINT(AST_Conditional, function(self, output) {\n self.condition.print(output);\n output.space();\n output.print(\"?\");\n output.space();\n self.consequent.print(output);\n output.space();\n output.colon();\n self.alternative.print(output);\n });\n\n /* -----[ literals ]----- */\n DEFPRINT(AST_Array, function(self, output) {\n output.with_square(function() {\n var a = self.elements, len = a.length;\n if (len > 0) output.space();\n a.forEach(function(exp, i) {\n if (i) output.comma();\n exp.print(output);\n // If the final element is a hole, we need to make sure it\n // doesn't look like a trailing comma, by inserting an actual\n // trailing comma.\n if (i === len - 1 && exp instanceof AST_Hole)\n output.comma();\n });\n if (len > 0) output.space();\n });\n });\n DEFPRINT(AST_Object, function(self, output) {\n if (self.properties.length > 0) output.with_block(function() {\n self.properties.forEach(function(prop, i) {\n if (i) {\n output.print(\",\");\n output.newline();\n }\n output.indent();\n prop.print(output);\n });\n output.newline();\n });\n else print_braced_empty(self, output);\n });\n DEFPRINT(AST_Class, function(self, output) {\n output.print(\"class\");\n output.space();\n if (self.name) {\n self.name.print(output);\n output.space();\n }\n if (self.extends) {\n var parens = (\n !(self.extends instanceof AST_SymbolRef)\n && !(self.extends instanceof AST_PropAccess)\n && !(self.extends instanceof AST_ClassExpression)\n && !(self.extends instanceof AST_Function)\n );\n output.print(\"extends\");\n if (parens) {\n output.print(\"(\");\n } else {\n output.space();\n }\n self.extends.print(output);\n if (parens) {\n output.print(\")\");\n } else {\n output.space();\n }\n }\n if (self.properties.length > 0) output.with_block(function() {\n self.properties.forEach(function(prop, i) {\n if (i) {\n output.newline();\n }\n output.indent();\n prop.print(output);\n });\n output.newline();\n });\n else output.print(\"{}\");\n });\n DEFPRINT(AST_NewTarget, function(self, output) {\n output.print(\"new.target\");\n });\n\n /** Prints a prop name. Returns whether it can be used as a shorthand. */\n function print_property_name(key, quote, output) {\n if (output.option(\"quote_keys\")) {\n output.print_string(key);\n return false;\n }\n if (\"\" + +key == key && key >= 0) {\n if (output.option(\"keep_numbers\")) {\n output.print(key);\n return false;\n }\n output.print(make_num(key));\n return false;\n }\n var print_string = ALL_RESERVED_WORDS.has(key)\n ? output.option(\"ie8\")\n : (\n output.option(\"ecma\") < 2015 || output.option(\"safari10\")\n ? !is_basic_identifier_string(key)\n : !is_identifier_string(key, true)\n );\n if (print_string || (quote && output.option(\"keep_quoted_props\"))) {\n output.print_string(key, quote);\n return false;\n }\n output.print_name(key);\n return true;\n }\n\n DEFPRINT(AST_ObjectKeyVal, function(self, output) {\n function get_name(self) {\n var def = self.definition();\n return def ? def.mangled_name || def.name : self.name;\n }\n\n const try_shorthand = output.option(\"shorthand\") && !(self.key instanceof AST_Node);\n if (\n try_shorthand\n && self.value instanceof AST_Symbol\n && get_name(self.value) === self.key\n && !ALL_RESERVED_WORDS.has(self.key)\n ) {\n const was_shorthand = print_property_name(self.key, self.quote, output);\n if (!was_shorthand) {\n output.colon();\n self.value.print(output);\n }\n } else if (\n try_shorthand\n && self.value instanceof AST_DefaultAssign\n && self.value.left instanceof AST_Symbol\n && get_name(self.value.left) === self.key\n ) {\n const was_shorthand = print_property_name(self.key, self.quote, output);\n if (!was_shorthand) {\n output.colon();\n self.value.left.print(output);\n }\n output.space();\n output.print(\"=\");\n output.space();\n self.value.right.print(output);\n } else {\n if (!(self.key instanceof AST_Node)) {\n print_property_name(self.key, self.quote, output);\n } else {\n output.with_square(function() {\n self.key.print(output);\n });\n }\n output.colon();\n self.value.print(output);\n }\n });\n DEFPRINT(AST_ClassPrivateProperty, (self, output) => {\n if (self.static) {\n output.print(\"static\");\n output.space();\n }\n\n output.print(\"#\");\n \n print_property_name(self.key.name, self.quote, output);\n\n if (self.value) {\n output.print(\"=\");\n self.value.print(output);\n }\n\n output.semicolon();\n });\n DEFPRINT(AST_ClassProperty, (self, output) => {\n if (self.static) {\n output.print(\"static\");\n output.space();\n }\n\n if (self.key instanceof AST_SymbolClassProperty) {\n print_property_name(self.key.name, self.quote, output);\n } else {\n output.print(\"[\");\n self.key.print(output);\n output.print(\"]\");\n }\n\n if (self.value) {\n output.print(\"=\");\n self.value.print(output);\n }\n\n output.semicolon();\n });\n AST_ObjectProperty.DEFMETHOD(\"_print_getter_setter\", function(type, is_private, output) {\n var self = this;\n if (self.static) {\n output.print(\"static\");\n output.space();\n }\n if (type) {\n output.print(type);\n output.space();\n }\n if (self.key instanceof AST_SymbolMethod) {\n if (is_private) output.print(\"#\");\n print_property_name(self.key.name, self.quote, output);\n self.key.add_source_map(output);\n } else {\n output.with_square(function() {\n self.key.print(output);\n });\n }\n self.value._do_print(output, true);\n });\n DEFPRINT(AST_ObjectSetter, function(self, output) {\n self._print_getter_setter(\"set\", false, output);\n });\n DEFPRINT(AST_ObjectGetter, function(self, output) {\n self._print_getter_setter(\"get\", false, output);\n });\n DEFPRINT(AST_PrivateSetter, function(self, output) {\n self._print_getter_setter(\"set\", true, output);\n });\n DEFPRINT(AST_PrivateGetter, function(self, output) {\n self._print_getter_setter(\"get\", true, output);\n });\n DEFPRINT(AST_PrivateMethod, function(self, output) {\n var type;\n if (self.is_generator && self.async) {\n type = \"async*\";\n } else if (self.is_generator) {\n type = \"*\";\n } else if (self.async) {\n type = \"async\";\n }\n self._print_getter_setter(type, true, output);\n });\n DEFPRINT(AST_PrivateIn, function(self, output) {\n self.key.print(output);\n output.space();\n output.print(\"in\");\n output.space();\n self.value.print(output);\n });\n DEFPRINT(AST_SymbolPrivateProperty, function(self, output) {\n output.print(\"#\" + self.name);\n });\n DEFPRINT(AST_ConciseMethod, function(self, output) {\n var type;\n if (self.is_generator && self.async) {\n type = \"async*\";\n } else if (self.is_generator) {\n type = \"*\";\n } else if (self.async) {\n type = \"async\";\n }\n self._print_getter_setter(type, false, output);\n });\n DEFPRINT(AST_ClassStaticBlock, function (self, output) {\n output.print(\"static\");\n output.space();\n print_braced(self, output);\n });\n AST_Symbol.DEFMETHOD(\"_do_print\", function(output) {\n var def = this.definition();\n output.print_name(def ? def.mangled_name || def.name : this.name);\n });\n DEFPRINT(AST_Symbol, function (self, output) {\n self._do_print(output);\n });\n DEFPRINT(AST_Hole, noop);\n DEFPRINT(AST_This, function(self, output) {\n output.print(\"this\");\n });\n DEFPRINT(AST_Super, function(self, output) {\n output.print(\"super\");\n });\n DEFPRINT(AST_Constant, function(self, output) {\n output.print(self.getValue());\n });\n DEFPRINT(AST_String, function(self, output) {\n output.print_string(self.getValue(), self.quote, output.in_directive);\n });\n DEFPRINT(AST_Number, function(self, output) {\n if ((output.option(\"keep_numbers\") || output.use_asm) && self.raw) {\n output.print(self.raw);\n } else {\n output.print(make_num(self.getValue()));\n }\n });\n DEFPRINT(AST_BigInt, function(self, output) {\n output.print(self.getValue() + \"n\");\n });\n\n const r_slash_script = /(<\\s*\\/\\s*script)/i;\n const r_starts_with_script = /^\\s*script/i;\n const slash_script_replace = (_, $1) => $1.replace(\"/\", \"\\\\/\");\n DEFPRINT(AST_RegExp, function(self, output) {\n let { source, flags } = self.getValue();\n source = regexp_source_fix(source);\n flags = flags ? sort_regexp_flags(flags) : \"\";\n\n // Avoid outputting end of script tag\n source = source.replace(r_slash_script, slash_script_replace);\n if (r_starts_with_script.test(source) && output.last().endsWith(\"<\")) {\n output.print(\" \");\n }\n\n output.print(output.to_utf8(`/${source}/${flags}`, false, true));\n\n const parent = output.parent();\n if (\n parent instanceof AST_Binary\n && /^\\w/.test(parent.operator)\n && parent.left === self\n ) {\n output.print(\" \");\n }\n });\n\n /** if, for, while, may or may not have braces surrounding its body */\n function print_maybe_braced_body(stat, output) {\n if (output.option(\"braces\")) {\n make_block(stat, output);\n } else {\n if (!stat || stat instanceof AST_EmptyStatement)\n output.force_semicolon();\n else if (stat instanceof AST_Let || stat instanceof AST_Const || stat instanceof AST_Class)\n make_block(stat, output);\n else\n stat.print(output);\n }\n }\n\n function best_of(a) {\n var best = a[0], len = best.length;\n for (var i = 1; i < a.length; ++i) {\n if (a[i].length < len) {\n best = a[i];\n len = best.length;\n }\n }\n return best;\n }\n\n function make_num(num) {\n var str = num.toString(10).replace(/^0\\./, \".\").replace(\"e+\", \"e\");\n var candidates = [ str ];\n if (Math.floor(num) === num) {\n if (num < 0) {\n candidates.push(\"-0x\" + (-num).toString(16).toLowerCase());\n } else {\n candidates.push(\"0x\" + num.toString(16).toLowerCase());\n }\n }\n var match, len, digits;\n if (match = /^\\.0+/.exec(str)) {\n len = match[0].length;\n digits = str.slice(len);\n candidates.push(digits + \"e-\" + (digits.length + len - 1));\n } else if (match = /0+$/.exec(str)) {\n len = match[0].length;\n candidates.push(str.slice(0, -len) + \"e\" + len);\n } else if (match = /^(\\d)\\.(\\d+)e(-?\\d+)$/.exec(str)) {\n candidates.push(match[1] + match[2] + \"e\" + (match[3] - match[2].length));\n }\n return best_of(candidates);\n }\n\n function make_block(stmt, output) {\n if (!stmt || stmt instanceof AST_EmptyStatement)\n output.print(\"{}\");\n else if (stmt instanceof AST_BlockStatement)\n stmt.print(output);\n else output.with_block(function() {\n output.indent();\n stmt.print(output);\n output.newline();\n });\n }\n\n /* -----[ source map generators ]----- */\n\n function DEFMAP(nodetype, generator) {\n nodetype.forEach(function(nodetype) {\n nodetype.DEFMETHOD(\"add_source_map\", generator);\n });\n }\n\n DEFMAP([\n // We could easily add info for ALL nodes, but it seems to me that\n // would be quite wasteful, hence this noop in the base class.\n AST_Node,\n // since the label symbol will mark it\n AST_LabeledStatement,\n AST_Toplevel,\n ], noop);\n\n // XXX: I'm not exactly sure if we need it for all of these nodes,\n // or if we should add even more.\n DEFMAP([\n AST_Array,\n AST_BlockStatement,\n AST_Catch,\n AST_Class,\n AST_Constant,\n AST_Debugger,\n AST_Definitions,\n AST_Directive,\n AST_Finally,\n AST_Jump,\n AST_Lambda,\n AST_New,\n AST_Object,\n AST_StatementWithBody,\n AST_Symbol,\n AST_Switch,\n AST_SwitchBranch,\n AST_TemplateString,\n AST_TemplateSegment,\n AST_Try,\n ], function(output) {\n output.add_mapping(this.start);\n });\n\n DEFMAP([\n AST_ObjectGetter,\n AST_ObjectSetter,\n AST_PrivateGetter,\n AST_PrivateSetter,\n AST_ConciseMethod,\n AST_PrivateMethod,\n ], function(output) {\n output.add_mapping(this.start, false /*name handled below*/);\n });\n\n DEFMAP([\n AST_SymbolMethod,\n AST_SymbolPrivateProperty\n ], function(output) {\n const tok_type = this.end && this.end.type;\n if (tok_type === \"name\" || tok_type === \"privatename\") {\n output.add_mapping(this.end, this.name);\n } else {\n output.add_mapping(this.end);\n }\n });\n\n DEFMAP([ AST_ObjectProperty ], function(output) {\n output.add_mapping(this.start, this.key);\n });\n})();\n\nexport {\n OutputStream,\n};\n","import {\n AST_Array,\n AST_Atom,\n AST_Await,\n AST_BigInt,\n AST_Binary,\n AST_Block,\n AST_Call,\n AST_Catch,\n AST_Chain,\n AST_Class,\n AST_ClassProperty,\n AST_ConciseMethod,\n AST_Conditional,\n AST_Debugger,\n AST_Definitions,\n AST_Destructuring,\n AST_Directive,\n AST_Do,\n AST_Dot,\n AST_DotHash,\n AST_EmptyStatement,\n AST_Expansion,\n AST_Export,\n AST_Finally,\n AST_For,\n AST_ForIn,\n AST_ForOf,\n AST_If,\n AST_Import,\n AST_ImportMeta,\n AST_Jump,\n AST_LabeledStatement,\n AST_Lambda,\n AST_LoopControl,\n AST_NameMapping,\n AST_NewTarget,\n AST_Node,\n AST_Number,\n AST_Object,\n AST_ObjectGetter,\n AST_ObjectKeyVal,\n AST_ObjectProperty,\n AST_ObjectSetter,\n AST_PrefixedTemplateString,\n AST_PropAccess,\n AST_RegExp,\n AST_Sequence,\n AST_SimpleStatement,\n AST_String,\n AST_Super,\n AST_Switch,\n AST_SwitchBranch,\n AST_Symbol,\n AST_TemplateSegment,\n AST_TemplateString,\n AST_This,\n AST_Toplevel,\n AST_Try,\n AST_Unary,\n AST_VarDef,\n AST_While,\n AST_With,\n AST_Yield\n} from \"./ast.js\";\n\nconst shallow_cmp = (node1, node2) => {\n return (\n node1 === null && node2 === null\n || node1.TYPE === node2.TYPE && node1.shallow_cmp(node2)\n );\n};\n\nexport const equivalent_to = (tree1, tree2) => {\n if (!shallow_cmp(tree1, tree2)) return false;\n const walk_1_state = [tree1];\n const walk_2_state = [tree2];\n\n const walk_1_push = walk_1_state.push.bind(walk_1_state);\n const walk_2_push = walk_2_state.push.bind(walk_2_state);\n\n while (walk_1_state.length && walk_2_state.length) {\n const node_1 = walk_1_state.pop();\n const node_2 = walk_2_state.pop();\n\n if (!shallow_cmp(node_1, node_2)) return false;\n\n node_1._children_backwards(walk_1_push);\n node_2._children_backwards(walk_2_push);\n\n if (walk_1_state.length !== walk_2_state.length) {\n // Different number of children\n return false;\n }\n }\n\n return walk_1_state.length == 0 && walk_2_state.length == 0;\n};\n\nconst pass_through = () => true;\n\nAST_Node.prototype.shallow_cmp = function () {\n throw new Error(\"did not find a shallow_cmp function for \" + this.constructor.name);\n};\n\nAST_Debugger.prototype.shallow_cmp = pass_through;\n\nAST_Directive.prototype.shallow_cmp = function(other) {\n return this.value === other.value;\n};\n\nAST_SimpleStatement.prototype.shallow_cmp = pass_through;\n\nAST_Block.prototype.shallow_cmp = pass_through;\n\nAST_EmptyStatement.prototype.shallow_cmp = pass_through;\n\nAST_LabeledStatement.prototype.shallow_cmp = function(other) {\n return this.label.name === other.label.name;\n};\n\nAST_Do.prototype.shallow_cmp = pass_through;\n\nAST_While.prototype.shallow_cmp = pass_through;\n\nAST_For.prototype.shallow_cmp = function(other) {\n return (this.init == null ? other.init == null : this.init === other.init) && (this.condition == null ? other.condition == null : this.condition === other.condition) && (this.step == null ? other.step == null : this.step === other.step);\n};\n\nAST_ForIn.prototype.shallow_cmp = pass_through;\n\nAST_ForOf.prototype.shallow_cmp = pass_through;\n\nAST_With.prototype.shallow_cmp = pass_through;\n\nAST_Toplevel.prototype.shallow_cmp = pass_through;\n\nAST_Expansion.prototype.shallow_cmp = pass_through;\n\nAST_Lambda.prototype.shallow_cmp = function(other) {\n return this.is_generator === other.is_generator && this.async === other.async;\n};\n\nAST_Destructuring.prototype.shallow_cmp = function(other) {\n return this.is_array === other.is_array;\n};\n\nAST_PrefixedTemplateString.prototype.shallow_cmp = pass_through;\n\nAST_TemplateString.prototype.shallow_cmp = pass_through;\n\nAST_TemplateSegment.prototype.shallow_cmp = function(other) {\n return this.value === other.value;\n};\n\nAST_Jump.prototype.shallow_cmp = pass_through;\n\nAST_LoopControl.prototype.shallow_cmp = pass_through;\n\nAST_Await.prototype.shallow_cmp = pass_through;\n\nAST_Yield.prototype.shallow_cmp = function(other) {\n return this.is_star === other.is_star;\n};\n\nAST_If.prototype.shallow_cmp = function(other) {\n return this.alternative == null ? other.alternative == null : this.alternative === other.alternative;\n};\n\nAST_Switch.prototype.shallow_cmp = pass_through;\n\nAST_SwitchBranch.prototype.shallow_cmp = pass_through;\n\nAST_Try.prototype.shallow_cmp = function(other) {\n return (this.body === other.body) && (this.bcatch == null ? other.bcatch == null : this.bcatch === other.bcatch) && (this.bfinally == null ? other.bfinally == null : this.bfinally === other.bfinally);\n};\n\nAST_Catch.prototype.shallow_cmp = function(other) {\n return this.argname == null ? other.argname == null : this.argname === other.argname;\n};\n\nAST_Finally.prototype.shallow_cmp = pass_through;\n\nAST_Definitions.prototype.shallow_cmp = pass_through;\n\nAST_VarDef.prototype.shallow_cmp = function(other) {\n return this.value == null ? other.value == null : this.value === other.value;\n};\n\nAST_NameMapping.prototype.shallow_cmp = pass_through;\n\nAST_Import.prototype.shallow_cmp = function(other) {\n return (this.imported_name == null ? other.imported_name == null : this.imported_name === other.imported_name) && (this.imported_names == null ? other.imported_names == null : this.imported_names === other.imported_names);\n};\n\nAST_ImportMeta.prototype.shallow_cmp = pass_through;\n\nAST_Export.prototype.shallow_cmp = function(other) {\n return (this.exported_definition == null ? other.exported_definition == null : this.exported_definition === other.exported_definition) && (this.exported_value == null ? other.exported_value == null : this.exported_value === other.exported_value) && (this.exported_names == null ? other.exported_names == null : this.exported_names === other.exported_names) && this.module_name === other.module_name && this.is_default === other.is_default;\n};\n\nAST_Call.prototype.shallow_cmp = pass_through;\n\nAST_Sequence.prototype.shallow_cmp = pass_through;\n\nAST_PropAccess.prototype.shallow_cmp = pass_through;\n\nAST_Chain.prototype.shallow_cmp = pass_through;\n\nAST_Dot.prototype.shallow_cmp = function(other) {\n return this.property === other.property;\n};\n\nAST_DotHash.prototype.shallow_cmp = function(other) {\n return this.property === other.property;\n};\n\nAST_Unary.prototype.shallow_cmp = function(other) {\n return this.operator === other.operator;\n};\n\nAST_Binary.prototype.shallow_cmp = function(other) {\n return this.operator === other.operator;\n};\n\nAST_Conditional.prototype.shallow_cmp = pass_through;\n\nAST_Array.prototype.shallow_cmp = pass_through;\n\nAST_Object.prototype.shallow_cmp = pass_through;\n\nAST_ObjectProperty.prototype.shallow_cmp = pass_through;\n\nAST_ObjectKeyVal.prototype.shallow_cmp = function(other) {\n return this.key === other.key;\n};\n\nAST_ObjectSetter.prototype.shallow_cmp = function(other) {\n return this.static === other.static;\n};\n\nAST_ObjectGetter.prototype.shallow_cmp = function(other) {\n return this.static === other.static;\n};\n\nAST_ConciseMethod.prototype.shallow_cmp = function(other) {\n return this.static === other.static && this.is_generator === other.is_generator && this.async === other.async;\n};\n\nAST_Class.prototype.shallow_cmp = function(other) {\n return (this.name == null ? other.name == null : this.name === other.name) && (this.extends == null ? other.extends == null : this.extends === other.extends);\n};\n\nAST_ClassProperty.prototype.shallow_cmp = function(other) {\n return this.static === other.static;\n};\n\nAST_Symbol.prototype.shallow_cmp = function(other) {\n return this.name === other.name;\n};\n\nAST_NewTarget.prototype.shallow_cmp = pass_through;\n\nAST_This.prototype.shallow_cmp = pass_through;\n\nAST_Super.prototype.shallow_cmp = pass_through;\n\nAST_String.prototype.shallow_cmp = function(other) {\n return this.value === other.value;\n};\n\nAST_Number.prototype.shallow_cmp = function(other) {\n return this.value === other.value;\n};\n\nAST_BigInt.prototype.shallow_cmp = function(other) {\n return this.value === other.value;\n};\n\nAST_RegExp.prototype.shallow_cmp = function (other) {\n return (\n this.value.flags === other.value.flags\n && this.value.source === other.value.source\n );\n};\n\nAST_Atom.prototype.shallow_cmp = pass_through;\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\n\"use strict\";\n\nimport {\n defaults,\n keep_name,\n mergeSort,\n push_uniq,\n make_node,\n return_false,\n return_this,\n return_true,\n string_template,\n} from \"./utils/index.js\";\nimport {\n AST_Arrow,\n AST_Block,\n AST_Call,\n AST_Class,\n AST_Conditional,\n AST_DefClass,\n AST_Defun,\n AST_Destructuring,\n AST_Dot,\n AST_DotHash,\n AST_Export,\n AST_For,\n AST_ForIn,\n AST_ForOf,\n AST_Function,\n AST_Import,\n AST_IterationStatement,\n AST_Label,\n AST_LabeledStatement,\n AST_LabelRef,\n AST_Lambda,\n AST_LoopControl,\n AST_NameMapping,\n AST_Node,\n AST_Scope,\n AST_Sequence,\n AST_String,\n AST_Sub,\n AST_Switch,\n AST_SwitchBranch,\n AST_Symbol,\n AST_SymbolBlockDeclaration,\n AST_SymbolCatch,\n AST_SymbolClass,\n AST_SymbolConst,\n AST_SymbolDefClass,\n AST_SymbolDefun,\n AST_SymbolExport,\n AST_SymbolFunarg,\n AST_SymbolImport,\n AST_SymbolLambda,\n AST_SymbolLet,\n AST_SymbolMethod,\n AST_SymbolRef,\n AST_SymbolVar,\n AST_Toplevel,\n AST_VarDef,\n AST_With,\n TreeWalker,\n walk,\n walk_abort\n} from \"./ast.js\";\nimport {\n ALL_RESERVED_WORDS,\n js_error,\n} from \"./parse.js\";\n\nconst MASK_EXPORT_DONT_MANGLE = 1 << 0;\nconst MASK_EXPORT_WANT_MANGLE = 1 << 1;\n\nlet function_defs = null;\nlet unmangleable_names = null;\n/**\n * When defined, there is a function declaration somewhere that's inside of a block.\n * See https://tc39.es/ecma262/multipage/additional-ecmascript-features-for-web-browsers.html#sec-block-level-function-declarations-web-legacy-compatibility-semantics\n*/\nlet scopes_with_block_defuns = null;\n\nclass SymbolDef {\n constructor(scope, orig, init) {\n this.name = orig.name;\n this.orig = [ orig ];\n this.init = init;\n this.eliminated = 0;\n this.assignments = 0;\n this.scope = scope;\n this.replaced = 0;\n this.global = false;\n this.export = 0;\n this.mangled_name = null;\n this.undeclared = false;\n this.id = SymbolDef.next_id++;\n this.chained = false;\n this.direct_access = false;\n this.escaped = 0;\n this.recursive_refs = 0;\n this.references = [];\n this.should_replace = undefined;\n this.single_use = false;\n this.fixed = false;\n Object.seal(this);\n }\n fixed_value() {\n if (!this.fixed || this.fixed instanceof AST_Node) return this.fixed;\n return this.fixed();\n }\n unmangleable(options) {\n if (!options) options = {};\n\n if (\n function_defs &&\n function_defs.has(this.id) &&\n keep_name(options.keep_fnames, this.orig[0].name)\n ) return true;\n\n return this.global && !options.toplevel\n || (this.export & MASK_EXPORT_DONT_MANGLE)\n || this.undeclared\n || !options.eval && this.scope.pinned()\n || (this.orig[0] instanceof AST_SymbolLambda\n || this.orig[0] instanceof AST_SymbolDefun) && keep_name(options.keep_fnames, this.orig[0].name)\n || this.orig[0] instanceof AST_SymbolMethod\n || (this.orig[0] instanceof AST_SymbolClass\n || this.orig[0] instanceof AST_SymbolDefClass) && keep_name(options.keep_classnames, this.orig[0].name);\n }\n mangle(options) {\n const cache = options.cache && options.cache.props;\n if (this.global && cache && cache.has(this.name)) {\n this.mangled_name = cache.get(this.name);\n } else if (!this.mangled_name && !this.unmangleable(options)) {\n var s = this.scope;\n var sym = this.orig[0];\n if (options.ie8 && sym instanceof AST_SymbolLambda)\n s = s.parent_scope;\n const redefinition = redefined_catch_def(this);\n this.mangled_name = redefinition\n ? redefinition.mangled_name || redefinition.name\n : s.next_mangled(options, this);\n if (this.global && cache) {\n cache.set(this.name, this.mangled_name);\n }\n }\n }\n}\n\nSymbolDef.next_id = 1;\n\nfunction redefined_catch_def(def) {\n if (def.orig[0] instanceof AST_SymbolCatch\n && def.scope.is_block_scope()\n ) {\n return def.scope.get_defun_scope().variables.get(def.name);\n }\n}\n\nAST_Scope.DEFMETHOD(\"figure_out_scope\", function(options, { parent_scope = null, toplevel = this } = {}) {\n options = defaults(options, {\n cache: null,\n ie8: false,\n safari10: false,\n module: false,\n });\n\n if (!(toplevel instanceof AST_Toplevel)) {\n throw new Error(\"Invalid toplevel scope\");\n }\n\n // pass 1: setup scope chaining and handle definitions\n var scope = this.parent_scope = parent_scope;\n var labels = new Map();\n var defun = null;\n var in_destructuring = null;\n var for_scopes = [];\n var tw = new TreeWalker((node, descend) => {\n if (node.is_block_scope()) {\n const save_scope = scope;\n node.block_scope = scope = new AST_Scope(node);\n scope._block_scope = true;\n scope.init_scope_vars(save_scope);\n scope.uses_with = save_scope.uses_with;\n scope.uses_eval = save_scope.uses_eval;\n\n if (options.safari10) {\n if (node instanceof AST_For || node instanceof AST_ForIn || node instanceof AST_ForOf) {\n for_scopes.push(scope);\n }\n }\n\n if (node instanceof AST_Switch) {\n // XXX: HACK! Ensure the switch expression gets the correct scope (the parent scope) and the body gets the contained scope\n // AST_Switch has a scope within the body, but it itself \"is a block scope\"\n // This means the switched expression has to belong to the outer scope\n // while the body inside belongs to the switch itself.\n // This is pretty nasty and warrants an AST change\n const the_block_scope = scope;\n scope = save_scope;\n node.expression.walk(tw);\n scope = the_block_scope;\n for (let i = 0; i < node.body.length; i++) {\n node.body[i].walk(tw);\n }\n } else {\n descend();\n }\n scope = save_scope;\n return true;\n }\n if (node instanceof AST_Destructuring) {\n const save_destructuring = in_destructuring;\n in_destructuring = node;\n descend();\n in_destructuring = save_destructuring;\n return true;\n }\n if (node instanceof AST_Scope) {\n node.init_scope_vars(scope);\n var save_scope = scope;\n var save_defun = defun;\n var save_labels = labels;\n defun = scope = node;\n labels = new Map();\n descend();\n scope = save_scope;\n defun = save_defun;\n labels = save_labels;\n return true; // don't descend again in TreeWalker\n }\n if (node instanceof AST_LabeledStatement) {\n var l = node.label;\n if (labels.has(l.name)) {\n throw new Error(string_template(\"Label {name} defined twice\", l));\n }\n labels.set(l.name, l);\n descend();\n labels.delete(l.name);\n return true; // no descend again\n }\n if (node instanceof AST_With) {\n for (var s = scope; s; s = s.parent_scope)\n s.uses_with = true;\n return;\n }\n if (node instanceof AST_Symbol) {\n node.scope = scope;\n }\n if (node instanceof AST_Label) {\n node.thedef = node;\n node.references = [];\n }\n if (node instanceof AST_SymbolLambda) {\n defun.def_function(node, node.name == \"arguments\" ? undefined : defun);\n } else if (node instanceof AST_SymbolDefun) {\n // Careful here, the scope where this should be defined is\n // the parent scope. The reason is that we enter a new\n // scope when we encounter the AST_Defun node (which is\n // instanceof AST_Scope) but we get to the symbol a bit\n // later.\n const closest_scope = defun.parent_scope;\n\n // In strict mode, function definitions are block-scoped\n node.scope = tw.directives[\"use strict\"]\n ? closest_scope\n : closest_scope.get_defun_scope();\n\n mark_export(node.scope.def_function(node, defun), 1);\n } else if (node instanceof AST_SymbolClass) {\n mark_export(defun.def_variable(node, defun), 1);\n } else if (node instanceof AST_SymbolImport) {\n scope.def_variable(node);\n } else if (node instanceof AST_SymbolDefClass) {\n // This deals with the name of the class being available\n // inside the class.\n mark_export((node.scope = defun.parent_scope).def_function(node, defun), 1);\n } else if (\n node instanceof AST_SymbolVar\n || node instanceof AST_SymbolLet\n || node instanceof AST_SymbolConst\n || node instanceof AST_SymbolCatch\n ) {\n var def;\n if (node instanceof AST_SymbolBlockDeclaration) {\n def = scope.def_variable(node, null);\n } else {\n def = defun.def_variable(node, node.TYPE == \"SymbolVar\" ? null : undefined);\n }\n if (!def.orig.every((sym) => {\n if (sym === node) return true;\n if (node instanceof AST_SymbolBlockDeclaration) {\n return sym instanceof AST_SymbolLambda;\n }\n return !(sym instanceof AST_SymbolLet || sym instanceof AST_SymbolConst);\n })) {\n js_error(\n `\"${node.name}\" is redeclared`,\n node.start.file,\n node.start.line,\n node.start.col,\n node.start.pos\n );\n }\n if (!(node instanceof AST_SymbolFunarg)) mark_export(def, 2);\n if (defun !== scope) {\n node.mark_enclosed();\n var def = scope.find_variable(node);\n if (node.thedef !== def) {\n node.thedef = def;\n node.reference();\n }\n }\n } else if (node instanceof AST_LabelRef) {\n var sym = labels.get(node.name);\n if (!sym) throw new Error(string_template(\"Undefined label {name} [{line},{col}]\", {\n name: node.name,\n line: node.start.line,\n col: node.start.col\n }));\n node.thedef = sym;\n }\n if (!(scope instanceof AST_Toplevel) && (node instanceof AST_Export || node instanceof AST_Import)) {\n js_error(\n `\"${node.TYPE}\" statement may only appear at the top level`,\n node.start.file,\n node.start.line,\n node.start.col,\n node.start.pos\n );\n }\n });\n\n if (options.module) {\n tw.directives[\"use strict\"] = true;\n }\n\n this.walk(tw);\n\n function mark_export(def, level) {\n if (in_destructuring) {\n var i = 0;\n do {\n level++;\n } while (tw.parent(i++) !== in_destructuring);\n }\n var node = tw.parent(level);\n if (def.export = node instanceof AST_Export ? MASK_EXPORT_DONT_MANGLE : 0) {\n var exported = node.exported_definition;\n if ((exported instanceof AST_Defun || exported instanceof AST_DefClass) && node.is_default) {\n def.export = MASK_EXPORT_WANT_MANGLE;\n }\n }\n }\n\n // pass 2: find back references and eval\n const is_toplevel = this instanceof AST_Toplevel;\n if (is_toplevel) {\n this.globals = new Map();\n }\n\n var tw = new TreeWalker(node => {\n if (node instanceof AST_LoopControl && node.label) {\n node.label.thedef.references.push(node);\n return true;\n }\n if (node instanceof AST_SymbolRef) {\n var name = node.name;\n if (name == \"eval\" && tw.parent() instanceof AST_Call) {\n for (var s = node.scope; s && !s.uses_eval; s = s.parent_scope) {\n s.uses_eval = true;\n }\n }\n var sym;\n if (tw.parent() instanceof AST_NameMapping && tw.parent(1).module_name\n || !(sym = node.scope.find_variable(name))) {\n\n sym = toplevel.def_global(node);\n if (node instanceof AST_SymbolExport) sym.export = MASK_EXPORT_DONT_MANGLE;\n } else if (sym.scope instanceof AST_Lambda && name == \"arguments\") {\n sym.scope.get_defun_scope().uses_arguments = true;\n }\n node.thedef = sym;\n node.reference();\n if (node.scope.is_block_scope()\n && !(sym.orig[0] instanceof AST_SymbolBlockDeclaration)) {\n node.scope = node.scope.get_defun_scope();\n }\n return true;\n }\n // ensure mangling works if catch reuses a scope variable\n var def;\n if (node instanceof AST_SymbolCatch && (def = redefined_catch_def(node.definition()))) {\n var s = node.scope;\n while (s) {\n push_uniq(s.enclosed, def);\n if (s === def.scope) break;\n s = s.parent_scope;\n }\n }\n });\n this.walk(tw);\n\n // pass 3: work around IE8 and Safari catch scope bugs\n if (options.ie8 || options.safari10) {\n walk(this, node => {\n if (node instanceof AST_SymbolCatch) {\n var name = node.name;\n var refs = node.thedef.references;\n var scope = node.scope.get_defun_scope();\n var def = scope.find_variable(name)\n || toplevel.globals.get(name)\n || scope.def_variable(node);\n refs.forEach(function(ref) {\n ref.thedef = def;\n ref.reference();\n });\n node.thedef = def;\n node.reference();\n return true;\n }\n });\n }\n\n // pass 4: add symbol definitions to loop scopes\n // Safari/Webkit bug workaround - loop init let variable shadowing argument.\n // https://github.com/mishoo/UglifyJS2/issues/1753\n // https://bugs.webkit.org/show_bug.cgi?id=171041\n if (options.safari10) {\n for (const scope of for_scopes) {\n scope.parent_scope.variables.forEach(function(def) {\n push_uniq(scope.enclosed, def);\n });\n }\n }\n});\n\nAST_Toplevel.DEFMETHOD(\"def_global\", function(node) {\n var globals = this.globals, name = node.name;\n if (globals.has(name)) {\n return globals.get(name);\n } else {\n var g = new SymbolDef(this, node);\n g.undeclared = true;\n g.global = true;\n globals.set(name, g);\n return g;\n }\n});\n\nAST_Scope.DEFMETHOD(\"init_scope_vars\", function(parent_scope) {\n this.variables = new Map(); // map name to AST_SymbolVar (variables defined in this scope; includes functions)\n this.uses_with = false; // will be set to true if this or some nested scope uses the `with` statement\n this.uses_eval = false; // will be set to true if this or nested scope uses the global `eval`\n this.parent_scope = parent_scope; // the parent scope\n this.enclosed = []; // a list of variables from this or outer scope(s) that are referenced from this or inner scopes\n this.cname = -1; // the current index for mangling functions/variables\n});\n\nAST_Scope.DEFMETHOD(\"conflicting_def\", function (name) {\n return (\n this.enclosed.find(def => def.name === name)\n || this.variables.has(name)\n || (this.parent_scope && this.parent_scope.conflicting_def(name))\n );\n});\n\nAST_Scope.DEFMETHOD(\"conflicting_def_shallow\", function (name) {\n return (\n this.enclosed.find(def => def.name === name)\n || this.variables.has(name)\n );\n});\n\nAST_Scope.DEFMETHOD(\"add_child_scope\", function (scope) {\n // `scope` is going to be moved into `this` right now.\n // Update the required scopes' information\n\n if (scope.parent_scope === this) return;\n\n scope.parent_scope = this;\n\n // Propagate to this.uses_arguments from arrow functions\n if ((scope instanceof AST_Arrow) && !this.uses_arguments) {\n this.uses_arguments = walk(scope, node => {\n if (\n node instanceof AST_SymbolRef\n && node.scope instanceof AST_Lambda\n && node.name === \"arguments\"\n ) {\n return walk_abort;\n }\n\n if (node instanceof AST_Lambda && !(node instanceof AST_Arrow)) {\n return true;\n }\n });\n }\n\n this.uses_with = this.uses_with || scope.uses_with;\n this.uses_eval = this.uses_eval || scope.uses_eval;\n\n const scope_ancestry = (() => {\n const ancestry = [];\n let cur = this;\n do {\n ancestry.push(cur);\n } while ((cur = cur.parent_scope));\n ancestry.reverse();\n return ancestry;\n })();\n\n const new_scope_enclosed_set = new Set(scope.enclosed);\n const to_enclose = [];\n for (const scope_topdown of scope_ancestry) {\n to_enclose.forEach(e => push_uniq(scope_topdown.enclosed, e));\n for (const def of scope_topdown.variables.values()) {\n if (new_scope_enclosed_set.has(def)) {\n push_uniq(to_enclose, def);\n push_uniq(scope_topdown.enclosed, def);\n }\n }\n }\n});\n\nfunction find_scopes_visible_from(scopes) {\n const found_scopes = new Set();\n\n for (const scope of new Set(scopes)) {\n (function bubble_up(scope) {\n if (scope == null || found_scopes.has(scope)) return;\n\n found_scopes.add(scope);\n\n bubble_up(scope.parent_scope);\n })(scope);\n }\n\n return [...found_scopes];\n}\n\n// Creates a symbol during compression\nAST_Scope.DEFMETHOD(\"create_symbol\", function(SymClass, {\n source,\n tentative_name,\n scope,\n conflict_scopes = [scope],\n init = null\n} = {}) {\n let symbol_name;\n\n conflict_scopes = find_scopes_visible_from(conflict_scopes);\n\n if (tentative_name) {\n // Implement hygiene (no new names are conflicting with existing names)\n tentative_name =\n symbol_name =\n tentative_name.replace(/(?:^[^a-z_$]|[^a-z0-9_$])/ig, \"_\");\n\n let i = 0;\n while (conflict_scopes.find(s => s.conflicting_def_shallow(symbol_name))) {\n symbol_name = tentative_name + \"$\" + i++;\n }\n }\n\n if (!symbol_name) {\n throw new Error(\"No symbol name could be generated in create_symbol()\");\n }\n\n const symbol = make_node(SymClass, source, {\n name: symbol_name,\n scope\n });\n\n this.def_variable(symbol, init || null);\n\n symbol.mark_enclosed();\n\n return symbol;\n});\n\n\nAST_Node.DEFMETHOD(\"is_block_scope\", return_false);\nAST_Class.DEFMETHOD(\"is_block_scope\", return_false);\nAST_Lambda.DEFMETHOD(\"is_block_scope\", return_false);\nAST_Toplevel.DEFMETHOD(\"is_block_scope\", return_false);\nAST_SwitchBranch.DEFMETHOD(\"is_block_scope\", return_false);\nAST_Block.DEFMETHOD(\"is_block_scope\", return_true);\nAST_Scope.DEFMETHOD(\"is_block_scope\", function () {\n return this._block_scope || false;\n});\nAST_IterationStatement.DEFMETHOD(\"is_block_scope\", return_true);\n\nAST_Lambda.DEFMETHOD(\"init_scope_vars\", function() {\n AST_Scope.prototype.init_scope_vars.apply(this, arguments);\n this.uses_arguments = false;\n this.def_variable(new AST_SymbolFunarg({\n name: \"arguments\",\n start: this.start,\n end: this.end\n }));\n});\n\nAST_Arrow.DEFMETHOD(\"init_scope_vars\", function() {\n AST_Scope.prototype.init_scope_vars.apply(this, arguments);\n this.uses_arguments = false;\n});\n\nAST_Symbol.DEFMETHOD(\"mark_enclosed\", function() {\n var def = this.definition();\n var s = this.scope;\n while (s) {\n push_uniq(s.enclosed, def);\n if (s === def.scope) break;\n s = s.parent_scope;\n }\n});\n\nAST_Symbol.DEFMETHOD(\"reference\", function() {\n this.definition().references.push(this);\n this.mark_enclosed();\n});\n\nAST_Scope.DEFMETHOD(\"find_variable\", function(name) {\n if (name instanceof AST_Symbol) name = name.name;\n return this.variables.get(name)\n || (this.parent_scope && this.parent_scope.find_variable(name));\n});\n\nAST_Scope.DEFMETHOD(\"def_function\", function(symbol, init) {\n var def = this.def_variable(symbol, init);\n if (!def.init || def.init instanceof AST_Defun) def.init = init;\n return def;\n});\n\nAST_Scope.DEFMETHOD(\"def_variable\", function(symbol, init) {\n var def = this.variables.get(symbol.name);\n if (def) {\n def.orig.push(symbol);\n if (def.init && (def.scope !== symbol.scope || def.init instanceof AST_Function)) {\n def.init = init;\n }\n } else {\n def = new SymbolDef(this, symbol, init);\n this.variables.set(symbol.name, def);\n def.global = !this.parent_scope;\n }\n return symbol.thedef = def;\n});\n\nfunction next_mangled(scope, options) {\n let defun_scope;\n if (\n scopes_with_block_defuns\n && (defun_scope = scope.get_defun_scope())\n && scopes_with_block_defuns.has(defun_scope)\n ) {\n scope = defun_scope;\n }\n\n var ext = scope.enclosed;\n var nth_identifier = options.nth_identifier;\n out: while (true) {\n var m = nth_identifier.get(++scope.cname);\n if (ALL_RESERVED_WORDS.has(m)) continue; // skip over \"do\"\n\n // https://github.com/mishoo/UglifyJS2/issues/242 -- do not\n // shadow a name reserved from mangling.\n if (options.reserved.has(m)) continue;\n\n // Functions with short names might collide with base54 output\n // and therefore cause collisions when keep_fnames is true.\n if (unmangleable_names && unmangleable_names.has(m)) continue out;\n\n // we must ensure that the mangled name does not shadow a name\n // from some parent scope that is referenced in this or in\n // inner scopes.\n for (let i = ext.length; --i >= 0;) {\n const def = ext[i];\n const name = def.mangled_name || (def.unmangleable(options) && def.name);\n if (m == name) continue out;\n }\n return m;\n }\n}\n\nAST_Scope.DEFMETHOD(\"next_mangled\", function(options) {\n return next_mangled(this, options);\n});\n\nAST_Toplevel.DEFMETHOD(\"next_mangled\", function(options) {\n let name;\n const mangled_names = this.mangled_names;\n do {\n name = next_mangled(this, options);\n } while (mangled_names.has(name));\n return name;\n});\n\nAST_Function.DEFMETHOD(\"next_mangled\", function(options, def) {\n // #179, #326\n // in Safari strict mode, something like (function x(x){...}) is a syntax error;\n // a function expression's argument cannot shadow the function expression's name\n\n var tricky_def = def.orig[0] instanceof AST_SymbolFunarg && this.name && this.name.definition();\n\n // the function's mangled_name is null when keep_fnames is true\n var tricky_name = tricky_def ? tricky_def.mangled_name || tricky_def.name : null;\n\n while (true) {\n var name = next_mangled(this, options);\n if (!tricky_name || tricky_name != name)\n return name;\n }\n});\n\nAST_Symbol.DEFMETHOD(\"unmangleable\", function(options) {\n var def = this.definition();\n return !def || def.unmangleable(options);\n});\n\n// labels are always mangleable\nAST_Label.DEFMETHOD(\"unmangleable\", return_false);\n\nAST_Symbol.DEFMETHOD(\"unreferenced\", function() {\n return !this.definition().references.length && !this.scope.pinned();\n});\n\nAST_Symbol.DEFMETHOD(\"definition\", function() {\n return this.thedef;\n});\n\nAST_Symbol.DEFMETHOD(\"global\", function() {\n return this.thedef.global;\n});\n\n/**\n * Format the mangler options (if any) into their appropriate types\n */\nexport function format_mangler_options(options) {\n options = defaults(options, {\n eval : false,\n nth_identifier : base54,\n ie8 : false,\n keep_classnames: false,\n keep_fnames : false,\n module : false,\n reserved : [],\n toplevel : false,\n });\n if (options.module) options.toplevel = true;\n if (!Array.isArray(options.reserved)\n && !(options.reserved instanceof Set)\n ) {\n options.reserved = [];\n }\n options.reserved = new Set(options.reserved);\n // Never mangle arguments\n options.reserved.add(\"arguments\");\n return options;\n}\n\nAST_Toplevel.DEFMETHOD(\"mangle_names\", function(options) {\n options = format_mangler_options(options);\n var nth_identifier = options.nth_identifier;\n\n // We only need to mangle declaration nodes. Special logic wired\n // into the code generator will display the mangled name if it's\n // present (and for AST_SymbolRef-s it'll use the mangled name of\n // the AST_SymbolDeclaration that it points to).\n var lname = -1;\n var to_mangle = [];\n\n if (options.keep_fnames) {\n function_defs = new Set();\n }\n\n const mangled_names = this.mangled_names = new Set();\n unmangleable_names = new Set();\n\n if (options.cache) {\n this.globals.forEach(collect);\n if (options.cache.props) {\n options.cache.props.forEach(function(mangled_name) {\n mangled_names.add(mangled_name);\n });\n }\n }\n\n var tw = new TreeWalker(function(node, descend) {\n if (node instanceof AST_LabeledStatement) {\n // lname is incremented when we get to the AST_Label\n var save_nesting = lname;\n descend();\n lname = save_nesting;\n return true; // don't descend again in TreeWalker\n }\n if (\n node instanceof AST_Defun\n && !(tw.parent() instanceof AST_Scope)\n ) {\n scopes_with_block_defuns = scopes_with_block_defuns || new Set();\n scopes_with_block_defuns.add(node.parent_scope.get_defun_scope());\n }\n if (node instanceof AST_Scope) {\n node.variables.forEach(collect);\n return;\n }\n if (node.is_block_scope()) {\n node.block_scope.variables.forEach(collect);\n return;\n }\n if (\n function_defs\n && node instanceof AST_VarDef\n && node.value instanceof AST_Lambda\n && !node.value.name\n && keep_name(options.keep_fnames, node.name.name)\n ) {\n function_defs.add(node.name.definition().id);\n return;\n }\n if (node instanceof AST_Label) {\n let name;\n do {\n name = nth_identifier.get(++lname);\n } while (ALL_RESERVED_WORDS.has(name));\n node.mangled_name = name;\n return true;\n }\n if (!(options.ie8 || options.safari10) && node instanceof AST_SymbolCatch) {\n to_mangle.push(node.definition());\n return;\n }\n });\n\n this.walk(tw);\n\n if (options.keep_fnames || options.keep_classnames) {\n // Collect a set of short names which are unmangleable,\n // for use in avoiding collisions in next_mangled.\n to_mangle.forEach(def => {\n if (def.name.length < 6 && def.unmangleable(options)) {\n unmangleable_names.add(def.name);\n }\n });\n }\n\n to_mangle.forEach(def => { def.mangle(options); });\n\n function_defs = null;\n unmangleable_names = null;\n scopes_with_block_defuns = null;\n\n function collect(symbol) {\n if (symbol.export & MASK_EXPORT_DONT_MANGLE) {\n unmangleable_names.add(symbol.name);\n } else if (!options.reserved.has(symbol.name)) {\n to_mangle.push(symbol);\n }\n }\n});\n\nAST_Toplevel.DEFMETHOD(\"find_colliding_names\", function(options) {\n const cache = options.cache && options.cache.props;\n const avoid = new Set();\n options.reserved.forEach(to_avoid);\n this.globals.forEach(add_def);\n this.walk(new TreeWalker(function(node) {\n if (node instanceof AST_Scope) node.variables.forEach(add_def);\n if (node instanceof AST_SymbolCatch) add_def(node.definition());\n }));\n return avoid;\n\n function to_avoid(name) {\n avoid.add(name);\n }\n\n function add_def(def) {\n var name = def.name;\n if (def.global && cache && cache.has(name)) name = cache.get(name);\n else if (!def.unmangleable(options)) return;\n to_avoid(name);\n }\n});\n\nAST_Toplevel.DEFMETHOD(\"expand_names\", function(options) {\n options = format_mangler_options(options);\n var nth_identifier = options.nth_identifier;\n if (nth_identifier.reset && nth_identifier.sort) {\n nth_identifier.reset();\n nth_identifier.sort();\n }\n var avoid = this.find_colliding_names(options);\n var cname = 0;\n this.globals.forEach(rename);\n this.walk(new TreeWalker(function(node) {\n if (node instanceof AST_Scope) node.variables.forEach(rename);\n if (node instanceof AST_SymbolCatch) rename(node.definition());\n }));\n\n function next_name() {\n var name;\n do {\n name = nth_identifier.get(cname++);\n } while (avoid.has(name) || ALL_RESERVED_WORDS.has(name));\n return name;\n }\n\n function rename(def) {\n if (def.global && options.cache) return;\n if (def.unmangleable(options)) return;\n if (options.reserved.has(def.name)) return;\n const redefinition = redefined_catch_def(def);\n const name = def.name = redefinition ? redefinition.name : next_name();\n def.orig.forEach(function(sym) {\n sym.name = name;\n });\n def.references.forEach(function(sym) {\n sym.name = name;\n });\n }\n});\n\nAST_Node.DEFMETHOD(\"tail_node\", return_this);\nAST_Sequence.DEFMETHOD(\"tail_node\", function() {\n return this.expressions[this.expressions.length - 1];\n});\n\nAST_Toplevel.DEFMETHOD(\"compute_char_frequency\", function(options) {\n options = format_mangler_options(options);\n var nth_identifier = options.nth_identifier;\n if (!nth_identifier.reset || !nth_identifier.consider || !nth_identifier.sort) {\n // If the identifier mangler is invariant, skip computing character frequency.\n return;\n }\n nth_identifier.reset();\n\n try {\n AST_Node.prototype.print = function(stream, force_parens) {\n this._print(stream, force_parens);\n if (this instanceof AST_Symbol && !this.unmangleable(options)) {\n nth_identifier.consider(this.name, -1);\n } else if (options.properties) {\n if (this instanceof AST_DotHash) {\n nth_identifier.consider(\"#\" + this.property, -1);\n } else if (this instanceof AST_Dot) {\n nth_identifier.consider(this.property, -1);\n } else if (this instanceof AST_Sub) {\n skip_string(this.property);\n }\n }\n };\n nth_identifier.consider(this.print_to_string(), 1);\n } finally {\n AST_Node.prototype.print = AST_Node.prototype._print;\n }\n nth_identifier.sort();\n\n function skip_string(node) {\n if (node instanceof AST_String) {\n nth_identifier.consider(node.value, -1);\n } else if (node instanceof AST_Conditional) {\n skip_string(node.consequent);\n skip_string(node.alternative);\n } else if (node instanceof AST_Sequence) {\n skip_string(node.tail_node());\n }\n }\n});\n\nconst base54 = (() => {\n const leading = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_\".split(\"\");\n const digits = \"0123456789\".split(\"\");\n let chars;\n let frequency;\n function reset() {\n frequency = new Map();\n leading.forEach(function(ch) {\n frequency.set(ch, 0);\n });\n digits.forEach(function(ch) {\n frequency.set(ch, 0);\n });\n }\n function consider(str, delta) {\n for (var i = str.length; --i >= 0;) {\n frequency.set(str[i], frequency.get(str[i]) + delta);\n }\n }\n function compare(a, b) {\n return frequency.get(b) - frequency.get(a);\n }\n function sort() {\n chars = mergeSort(leading, compare).concat(mergeSort(digits, compare));\n }\n // Ensure this is in a usable initial state.\n reset();\n sort();\n function base54(num) {\n var ret = \"\", base = 54;\n num++;\n do {\n num--;\n ret += chars[num % base];\n num = Math.floor(num / base);\n base = 64;\n } while (num > 0);\n return ret;\n }\n\n return {\n get: base54,\n consider,\n reset,\n sort\n };\n})();\n\nexport {\n base54,\n SymbolDef,\n};\n","import {\n AST_Accessor,\n AST_Array,\n AST_Arrow,\n AST_Await,\n AST_BigInt,\n AST_Binary,\n AST_Block,\n AST_Break,\n AST_Call,\n AST_Case,\n AST_Class,\n AST_ClassStaticBlock,\n AST_ClassPrivateProperty,\n AST_ClassProperty,\n AST_ConciseMethod,\n AST_Conditional,\n AST_Const,\n AST_Continue,\n AST_Debugger,\n AST_Default,\n AST_Defun,\n AST_Destructuring,\n AST_Directive,\n AST_Do,\n AST_Dot,\n AST_DotHash,\n AST_EmptyStatement,\n AST_Expansion,\n AST_Export,\n AST_False,\n AST_For,\n AST_ForIn,\n AST_Function,\n AST_Hole,\n AST_If,\n AST_Import,\n AST_ImportMeta,\n AST_Infinity,\n AST_LabeledStatement,\n AST_Let,\n AST_NameMapping,\n AST_NaN,\n AST_New,\n AST_NewTarget,\n AST_Node,\n AST_Null,\n AST_Number,\n AST_Object,\n AST_ObjectKeyVal,\n AST_ObjectGetter,\n AST_ObjectSetter,\n AST_PrivateGetter,\n AST_PrivateMethod,\n AST_PrivateSetter,\n AST_PrivateIn,\n AST_RegExp,\n AST_Return,\n AST_Sequence,\n AST_String,\n AST_Sub,\n AST_Super,\n AST_Switch,\n AST_Symbol,\n AST_SymbolClassProperty,\n AST_SymbolExportForeign,\n AST_SymbolImportForeign,\n AST_SymbolRef,\n AST_SymbolDeclaration,\n AST_TemplateSegment,\n AST_TemplateString,\n AST_This,\n AST_Throw,\n AST_Toplevel,\n AST_True,\n AST_Try,\n AST_Catch,\n AST_Finally,\n AST_Unary,\n AST_Undefined,\n AST_Var,\n AST_VarDef,\n AST_While,\n AST_With,\n AST_Yield,\n walk_parent\n} from \"./ast.js\";\nimport { first_in_statement } from \"./utils/first_in_statement.js\";\n\nlet mangle_options = undefined;\nAST_Node.prototype.size = function (compressor, stack) {\n mangle_options = compressor && compressor._mangle_options;\n\n let size = 0;\n walk_parent(this, (node, info) => {\n size += node._size(info);\n\n // Braceless arrow functions have fake \"return\" statements\n if (node instanceof AST_Arrow && node.is_braceless()) {\n size += node.body[0].value._size(info);\n return true;\n }\n }, stack || (compressor && compressor.stack));\n\n // just to save a bit of memory\n mangle_options = undefined;\n\n return size;\n};\n\nAST_Node.prototype._size = () => 0;\n\nAST_Debugger.prototype._size = () => 8;\n\nAST_Directive.prototype._size = function () {\n // TODO string encoding stuff\n return 2 + this.value.length;\n};\n\n/** Count commas/semicolons necessary to show a list of expressions/statements */\nconst list_overhead = (array) => array.length && array.length - 1;\n\nAST_Block.prototype._size = function () {\n return 2 + list_overhead(this.body);\n};\n\nAST_Toplevel.prototype._size = function() {\n return list_overhead(this.body);\n};\n\nAST_EmptyStatement.prototype._size = () => 1;\n\nAST_LabeledStatement.prototype._size = () => 2; // x:\n\nAST_Do.prototype._size = () => 9;\n\nAST_While.prototype._size = () => 7;\n\nAST_For.prototype._size = () => 8;\n\nAST_ForIn.prototype._size = () => 8;\n// AST_ForOf inherits ^\n\nAST_With.prototype._size = () => 6;\n\nAST_Expansion.prototype._size = () => 3;\n\nconst lambda_modifiers = func =>\n (func.is_generator ? 1 : 0) + (func.async ? 6 : 0);\n\nAST_Accessor.prototype._size = function () {\n return lambda_modifiers(this) + 4 + list_overhead(this.argnames) + list_overhead(this.body);\n};\n\nAST_Function.prototype._size = function (info) {\n const first = !!first_in_statement(info);\n return (first * 2) + lambda_modifiers(this) + 12 + list_overhead(this.argnames) + list_overhead(this.body);\n};\n\nAST_Defun.prototype._size = function () {\n return lambda_modifiers(this) + 13 + list_overhead(this.argnames) + list_overhead(this.body);\n};\n\nAST_Arrow.prototype._size = function () {\n let args_and_arrow = 2 + list_overhead(this.argnames);\n\n if (\n !(\n this.argnames.length === 1\n && this.argnames[0] instanceof AST_Symbol\n )\n ) {\n args_and_arrow += 2; // parens around the args\n }\n\n const body_overhead = this.is_braceless() ? 0 : list_overhead(this.body) + 2;\n\n return lambda_modifiers(this) + args_and_arrow + body_overhead;\n};\n\nAST_Destructuring.prototype._size = () => 2;\n\nAST_TemplateString.prototype._size = function () {\n return 2 + (Math.floor(this.segments.length / 2) * 3); /* \"${}\" */\n};\n\nAST_TemplateSegment.prototype._size = function () {\n return this.value.length;\n};\n\nAST_Return.prototype._size = function () {\n return this.value ? 7 : 6;\n};\n\nAST_Throw.prototype._size = () => 6;\n\nAST_Break.prototype._size = function () {\n return this.label ? 6 : 5;\n};\n\nAST_Continue.prototype._size = function () {\n return this.label ? 9 : 8;\n};\n\nAST_If.prototype._size = () => 4;\n\nAST_Switch.prototype._size = function () {\n return 8 + list_overhead(this.body);\n};\n\nAST_Case.prototype._size = function () {\n return 5 + list_overhead(this.body);\n};\n\nAST_Default.prototype._size = function () {\n return 8 + list_overhead(this.body);\n};\n\nAST_Try.prototype._size = () => 3;\n\nAST_Catch.prototype._size = function () {\n let size = 7 + list_overhead(this.body);\n if (this.argname) {\n size += 2;\n }\n return size;\n};\n\nAST_Finally.prototype._size = function () {\n return 7 + list_overhead(this.body);\n};\n\nAST_Var.prototype._size = function () {\n return 4 + list_overhead(this.definitions);\n};\n\nAST_Let.prototype._size = function () {\n return 4 + list_overhead(this.definitions);\n};\n\nAST_Const.prototype._size = function () {\n return 6 + list_overhead(this.definitions);\n};\n\nAST_VarDef.prototype._size = function () {\n return this.value ? 1 : 0;\n};\n\nAST_NameMapping.prototype._size = function () {\n // foreign name isn't mangled\n return this.name ? 4 : 0;\n};\n\nAST_Import.prototype._size = function () {\n // import\n let size = 6;\n\n if (this.imported_name) size += 1;\n\n // from\n if (this.imported_name || this.imported_names) size += 5;\n\n // braces, and the commas\n if (this.imported_names) {\n size += 2 + list_overhead(this.imported_names);\n }\n\n return size;\n};\n\nAST_ImportMeta.prototype._size = () => 11;\n\nAST_Export.prototype._size = function () {\n let size = 7 + (this.is_default ? 8 : 0);\n\n if (this.exported_value) {\n size += this.exported_value._size();\n }\n\n if (this.exported_names) {\n // Braces and commas\n size += 2 + list_overhead(this.exported_names);\n }\n\n if (this.module_name) {\n // \"from \"\n size += 5;\n }\n\n return size;\n};\n\nAST_Call.prototype._size = function () {\n if (this.optional) {\n return 4 + list_overhead(this.args);\n }\n return 2 + list_overhead(this.args);\n};\n\nAST_New.prototype._size = function () {\n return 6 + list_overhead(this.args);\n};\n\nAST_Sequence.prototype._size = function () {\n return list_overhead(this.expressions);\n};\n\nAST_Dot.prototype._size = function () {\n if (this.optional) {\n return this.property.length + 2;\n }\n return this.property.length + 1;\n};\n\nAST_DotHash.prototype._size = function () {\n if (this.optional) {\n return this.property.length + 3;\n }\n return this.property.length + 2;\n};\n\nAST_Sub.prototype._size = function () {\n return this.optional ? 4 : 2;\n};\n\nAST_Unary.prototype._size = function () {\n if (this.operator === \"typeof\") return 7;\n if (this.operator === \"void\") return 5;\n return this.operator.length;\n};\n\nAST_Binary.prototype._size = function (info) {\n if (this.operator === \"in\") return 4;\n\n let size = this.operator.length;\n\n if (\n (this.operator === \"+\" || this.operator === \"-\")\n && this.right instanceof AST_Unary && this.right.operator === this.operator\n ) {\n // 1+ +a > needs space between the +\n size += 1;\n }\n\n if (this.needs_parens(info)) {\n size += 2;\n }\n\n return size;\n};\n\nAST_Conditional.prototype._size = () => 3;\n\nAST_Array.prototype._size = function () {\n return 2 + list_overhead(this.elements);\n};\n\nAST_Object.prototype._size = function (info) {\n let base = 2;\n if (first_in_statement(info)) {\n base += 2; // parens\n }\n return base + list_overhead(this.properties);\n};\n\n/*#__INLINE__*/\nconst key_size = key =>\n typeof key === \"string\" ? key.length : 0;\n\nAST_ObjectKeyVal.prototype._size = function () {\n return key_size(this.key) + 1;\n};\n\n/*#__INLINE__*/\nconst static_size = is_static => is_static ? 7 : 0;\n\nAST_ObjectGetter.prototype._size = function () {\n return 5 + static_size(this.static) + key_size(this.key);\n};\n\nAST_ObjectSetter.prototype._size = function () {\n return 5 + static_size(this.static) + key_size(this.key);\n};\n\nAST_ConciseMethod.prototype._size = function () {\n return static_size(this.static) + key_size(this.key) + lambda_modifiers(this);\n};\n\nAST_PrivateMethod.prototype._size = function () {\n return AST_ConciseMethod.prototype._size.call(this) + 1;\n};\n\nAST_PrivateGetter.prototype._size = AST_PrivateSetter.prototype._size = function () {\n return AST_ConciseMethod.prototype._size.call(this) + 4;\n};\n\nAST_PrivateIn.prototype._size = function () {\n return 5; // \"#\", and \" in \"\n};\n\nAST_Class.prototype._size = function () {\n return (\n (this.name ? 8 : 7)\n + (this.extends ? 8 : 0)\n );\n};\n\nAST_ClassStaticBlock.prototype._size = function () {\n // \"class{}\" + semicolons\n return 7 + list_overhead(this.body);\n};\n\nAST_ClassProperty.prototype._size = function () {\n return (\n static_size(this.static)\n + (typeof this.key === \"string\" ? this.key.length + 2 : 0)\n + (this.value ? 1 : 0)\n );\n};\n\nAST_ClassPrivateProperty.prototype._size = function () {\n return AST_ClassProperty.prototype._size.call(this) + 1;\n};\n\nAST_Symbol.prototype._size = function () {\n if (!(mangle_options && this.thedef && !this.thedef.unmangleable(mangle_options))) {\n return this.name.length;\n } else {\n return 1;\n }\n};\n\n// TODO take propmangle into account\nAST_SymbolClassProperty.prototype._size = function () {\n return this.name.length;\n};\n\nAST_SymbolRef.prototype._size = AST_SymbolDeclaration.prototype._size = function () {\n if (this.name === \"arguments\") return 9;\n\n return AST_Symbol.prototype._size.call(this);\n};\n\nAST_NewTarget.prototype._size = () => 10;\n\nAST_SymbolImportForeign.prototype._size = function () {\n return this.name.length;\n};\n\nAST_SymbolExportForeign.prototype._size = function () {\n return this.name.length;\n};\n\nAST_This.prototype._size = () => 4;\n\nAST_Super.prototype._size = () => 5;\n\nAST_String.prototype._size = function () {\n return this.value.length + 2;\n};\n\nAST_Number.prototype._size = function () {\n const { value } = this;\n if (value === 0) return 1;\n if (value > 0 && Math.floor(value) === value) {\n return Math.floor(Math.log10(value) + 1);\n }\n return value.toString().length;\n};\n\nAST_BigInt.prototype._size = function () {\n return this.value.length;\n};\n\nAST_RegExp.prototype._size = function () {\n return this.value.toString().length;\n};\n\nAST_Null.prototype._size = () => 4;\n\nAST_NaN.prototype._size = () => 3;\n\nAST_Undefined.prototype._size = () => 6; // \"void 0\"\n\nAST_Hole.prototype._size = () => 0; // comma is taken into account by list_overhead()\n\nAST_Infinity.prototype._size = () => 8;\n\nAST_True.prototype._size = () => 4;\n\nAST_False.prototype._size = () => 5;\n\nAST_Await.prototype._size = () => 6;\n\nAST_Yield.prototype._size = () => 6;\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\n// bitfield flags to be stored in node.flags.\n// These are set and unset during compression, and store information in the node without requiring multiple fields.\nexport const UNUSED = 0b00000001;\nexport const TRUTHY = 0b00000010;\nexport const FALSY = 0b00000100;\nexport const UNDEFINED = 0b00001000;\nexport const INLINED = 0b00010000;\n\n// Nodes to which values are ever written. Used when keep_assign is part of the unused option string.\nexport const WRITE_ONLY = 0b00100000;\n\n// information specific to a single compression pass\nexport const SQUEEZED = 0b0000000100000000;\nexport const OPTIMIZED = 0b0000001000000000;\nexport const TOP = 0b0000010000000000;\nexport const CLEAR_BETWEEN_PASSES = SQUEEZED | OPTIMIZED | TOP;\n\nexport const has_flag = (node, flag) => node.flags & flag;\nexport const set_flag = (node, flag) => { node.flags |= flag; };\nexport const clear_flag = (node, flag) => { node.flags &= ~flag; };\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n AST_Array,\n AST_Arrow,\n AST_BlockStatement,\n AST_Call,\n AST_Chain,\n AST_Class,\n AST_Const,\n AST_Constant,\n AST_DefClass,\n AST_Defun,\n AST_EmptyStatement,\n AST_Export,\n AST_False,\n AST_Function,\n AST_Import,\n AST_Infinity,\n AST_LabeledStatement,\n AST_Lambda,\n AST_Let,\n AST_LoopControl,\n AST_NaN,\n AST_Node,\n AST_Null,\n AST_Number,\n AST_Object,\n AST_ObjectKeyVal,\n AST_PropAccess,\n AST_RegExp,\n AST_Scope,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Statement,\n AST_String,\n AST_SymbolRef,\n AST_True,\n AST_UnaryPrefix,\n AST_Undefined,\n\n TreeWalker,\n walk,\n walk_abort,\n walk_parent,\n} from \"../ast.js\";\nimport { make_node, regexp_source_fix, string_template, makePredicate } from \"../utils/index.js\";\nimport { first_in_statement } from \"../utils/first_in_statement.js\";\nimport { has_flag, TOP } from \"./compressor-flags.js\";\n\nexport function merge_sequence(array, node) {\n if (node instanceof AST_Sequence) {\n array.push(...node.expressions);\n } else {\n array.push(node);\n }\n return array;\n}\n\nexport function make_sequence(orig, expressions) {\n if (expressions.length == 1) return expressions[0];\n if (expressions.length == 0) throw new Error(\"trying to create a sequence with length zero!\");\n return make_node(AST_Sequence, orig, {\n expressions: expressions.reduce(merge_sequence, [])\n });\n}\n\nexport function make_node_from_constant(val, orig) {\n switch (typeof val) {\n case \"string\":\n return make_node(AST_String, orig, {\n value: val\n });\n case \"number\":\n if (isNaN(val)) return make_node(AST_NaN, orig);\n if (isFinite(val)) {\n return 1 / val < 0 ? make_node(AST_UnaryPrefix, orig, {\n operator: \"-\",\n expression: make_node(AST_Number, orig, { value: -val })\n }) : make_node(AST_Number, orig, { value: val });\n }\n return val < 0 ? make_node(AST_UnaryPrefix, orig, {\n operator: \"-\",\n expression: make_node(AST_Infinity, orig)\n }) : make_node(AST_Infinity, orig);\n case \"boolean\":\n return make_node(val ? AST_True : AST_False, orig);\n case \"undefined\":\n return make_node(AST_Undefined, orig);\n default:\n if (val === null) {\n return make_node(AST_Null, orig, { value: null });\n }\n if (val instanceof RegExp) {\n return make_node(AST_RegExp, orig, {\n value: {\n source: regexp_source_fix(val.source),\n flags: val.flags\n }\n });\n }\n throw new Error(string_template(\"Can't handle constant of type: {type}\", {\n type: typeof val\n }));\n }\n}\n\nexport function best_of_expression(ast1, ast2) {\n return ast1.size() > ast2.size() ? ast2 : ast1;\n}\n\nexport function best_of_statement(ast1, ast2) {\n return best_of_expression(\n make_node(AST_SimpleStatement, ast1, {\n body: ast1\n }),\n make_node(AST_SimpleStatement, ast2, {\n body: ast2\n })\n ).body;\n}\n\n/** Find which node is smaller, and return that */\nexport function best_of(compressor, ast1, ast2) {\n if (first_in_statement(compressor)) {\n return best_of_statement(ast1, ast2);\n } else {\n return best_of_expression(ast1, ast2);\n }\n}\n\n/** Simplify an object property's key, if possible */\nexport function get_simple_key(key) {\n if (key instanceof AST_Constant) {\n return key.getValue();\n }\n if (key instanceof AST_UnaryPrefix\n && key.operator == \"void\"\n && key.expression instanceof AST_Constant) {\n return;\n }\n return key;\n}\n\nexport function read_property(obj, key) {\n key = get_simple_key(key);\n if (key instanceof AST_Node) return;\n\n var value;\n if (obj instanceof AST_Array) {\n var elements = obj.elements;\n if (key == \"length\") return make_node_from_constant(elements.length, obj);\n if (typeof key == \"number\" && key in elements) value = elements[key];\n } else if (obj instanceof AST_Object) {\n key = \"\" + key;\n var props = obj.properties;\n for (var i = props.length; --i >= 0;) {\n var prop = props[i];\n if (!(prop instanceof AST_ObjectKeyVal)) return;\n if (!value && props[i].key === key) value = props[i].value;\n }\n }\n\n return value instanceof AST_SymbolRef && value.fixed_value() || value;\n}\n\nexport function has_break_or_continue(loop, parent) {\n var found = false;\n var tw = new TreeWalker(function(node) {\n if (found || node instanceof AST_Scope) return true;\n if (node instanceof AST_LoopControl && tw.loopcontrol_target(node) === loop) {\n return found = true;\n }\n });\n if (parent instanceof AST_LabeledStatement) tw.push(parent);\n tw.push(loop);\n loop.body.walk(tw);\n return found;\n}\n\n// we shouldn't compress (1,func)(something) to\n// func(something) because that changes the meaning of\n// the func (becomes lexical instead of global).\nexport function maintain_this_binding(parent, orig, val) {\n if (\n parent instanceof AST_UnaryPrefix && parent.operator == \"delete\"\n || parent instanceof AST_Call && parent.expression === orig\n && (\n val instanceof AST_Chain\n || val instanceof AST_PropAccess\n || val instanceof AST_SymbolRef && val.name == \"eval\"\n )\n ) {\n const zero = make_node(AST_Number, orig, { value: 0 });\n return make_sequence(orig, [ zero, val ]);\n } else {\n return val;\n }\n}\n\nexport function is_func_expr(node) {\n return node instanceof AST_Arrow || node instanceof AST_Function;\n}\n\n/**\n * Used to determine whether the node can benefit from negation.\n * Not the case with arrow functions (you need an extra set of parens). */\nexport function is_iife_call(node) {\n if (node.TYPE != \"Call\") return false;\n return node.expression instanceof AST_Function || is_iife_call(node.expression);\n}\n\nexport function is_empty(thing) {\n if (thing === null) return true;\n if (thing instanceof AST_EmptyStatement) return true;\n if (thing instanceof AST_BlockStatement) return thing.body.length == 0;\n return false;\n}\n\nexport const identifier_atom = makePredicate(\"Infinity NaN undefined\");\nexport function is_identifier_atom(node) {\n return node instanceof AST_Infinity\n || node instanceof AST_NaN\n || node instanceof AST_Undefined;\n}\n\n/** Check if this is a SymbolRef node which has one def of a certain AST type */\nexport function is_ref_of(ref, type) {\n if (!(ref instanceof AST_SymbolRef)) return false;\n var orig = ref.definition().orig;\n for (var i = orig.length; --i >= 0;) {\n if (orig[i] instanceof type) return true;\n }\n}\n\n/**Can we turn { block contents... } into just the block contents ?\n * Not if one of these is inside.\n **/\nexport function can_be_evicted_from_block(node) {\n return !(\n node instanceof AST_DefClass ||\n node instanceof AST_Defun ||\n node instanceof AST_Let ||\n node instanceof AST_Const ||\n node instanceof AST_Export ||\n node instanceof AST_Import\n );\n}\n\nexport function as_statement_array(thing) {\n if (thing === null) return [];\n if (thing instanceof AST_BlockStatement) return thing.body;\n if (thing instanceof AST_EmptyStatement) return [];\n if (thing instanceof AST_Statement) return [ thing ];\n throw new Error(\"Can't convert thing to statement array\");\n}\n\nexport function is_reachable(scope_node, defs) {\n const find_ref = node => {\n if (node instanceof AST_SymbolRef && defs.includes(node.definition())) {\n return walk_abort;\n }\n };\n\n return walk_parent(scope_node, (node, info) => {\n if (node instanceof AST_Scope && node !== scope_node) {\n var parent = info.parent();\n\n if (\n parent instanceof AST_Call\n && parent.expression === node\n // Async/Generators aren't guaranteed to sync evaluate all of\n // their body steps, so it's possible they close over the variable.\n && !(node.async || node.is_generator)\n ) {\n return;\n }\n\n if (walk(node, find_ref)) return walk_abort;\n\n return true;\n }\n });\n}\n\n/** Check if a ref refers to the name of a function/class it's defined within */\nexport function is_recursive_ref(compressor, def) {\n var node;\n for (var i = 0; node = compressor.parent(i); i++) {\n if (node instanceof AST_Lambda || node instanceof AST_Class) {\n var name = node.name;\n if (name && name.definition() === def) {\n return true;\n }\n }\n }\n return false;\n}\n\n// TODO this only works with AST_Defun, shouldn't it work for other ways of defining functions?\nexport function retain_top_func(fn, compressor) {\n return compressor.top_retain\n && fn instanceof AST_Defun\n && has_flag(fn, TOP)\n && fn.name\n && compressor.top_retain(fn.name.definition());\n}\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport { makePredicate } from \"../utils/index.js\";\n\n// Lists of native methods, useful for `unsafe` option which assumes they exist.\n// Note: Lots of methods and functions are missing here, in case they aren't pure\n// or not available in all JS environments.\n\nfunction make_nested_lookup(obj) {\n const out = new Map();\n for (var key of Object.keys(obj)) {\n out.set(key, makePredicate(obj[key]));\n }\n\n const does_have = (global_name, fname) => {\n const inner_map = out.get(global_name);\n return inner_map != null && inner_map.has(fname);\n };\n return does_have;\n}\n\n// Objects which are safe to access without throwing or causing a side effect.\n// Usually we'd check the `unsafe` option first but these are way too common for that\nexport const pure_prop_access_globals = new Set([\n \"Number\",\n \"String\",\n \"Array\",\n \"Object\",\n \"Function\",\n \"Promise\",\n]);\n\nconst object_methods = [\n \"constructor\",\n \"toString\",\n \"valueOf\",\n];\n\nexport const is_pure_native_method = make_nested_lookup({\n Array: [\n \"at\",\n \"flat\",\n \"includes\",\n \"indexOf\",\n \"join\",\n \"lastIndexOf\",\n \"slice\",\n ...object_methods,\n ],\n Boolean: object_methods,\n Function: object_methods,\n Number: [\n \"toExponential\",\n \"toFixed\",\n \"toPrecision\",\n ...object_methods,\n ],\n Object: object_methods,\n RegExp: [\n \"test\",\n ...object_methods,\n ],\n String: [\n \"at\",\n \"charAt\",\n \"charCodeAt\",\n \"charPointAt\",\n \"concat\",\n \"endsWith\",\n \"fromCharCode\",\n \"fromCodePoint\",\n \"includes\",\n \"indexOf\",\n \"italics\",\n \"lastIndexOf\",\n \"localeCompare\",\n \"match\",\n \"matchAll\",\n \"normalize\",\n \"padStart\",\n \"padEnd\",\n \"repeat\",\n \"replace\",\n \"replaceAll\",\n \"search\",\n \"slice\",\n \"split\",\n \"startsWith\",\n \"substr\",\n \"substring\",\n \"repeat\",\n \"toLocaleLowerCase\",\n \"toLocaleUpperCase\",\n \"toLowerCase\",\n \"toUpperCase\",\n \"trim\",\n \"trimEnd\",\n \"trimStart\",\n ...object_methods,\n ],\n});\n\nexport const is_pure_native_fn = make_nested_lookup({\n Array: [\n \"isArray\",\n ],\n Math: [\n \"abs\",\n \"acos\",\n \"asin\",\n \"atan\",\n \"ceil\",\n \"cos\",\n \"exp\",\n \"floor\",\n \"log\",\n \"round\",\n \"sin\",\n \"sqrt\",\n \"tan\",\n \"atan2\",\n \"pow\",\n \"max\",\n \"min\",\n ],\n Number: [\n \"isFinite\",\n \"isNaN\",\n ],\n Object: [\n \"create\",\n \"getOwnPropertyDescriptor\",\n \"getOwnPropertyNames\",\n \"getPrototypeOf\",\n \"isExtensible\",\n \"isFrozen\",\n \"isSealed\",\n \"hasOwn\",\n \"keys\",\n ],\n String: [\n \"fromCharCode\",\n ],\n});\n\n// Known numeric values which come with JS environments\nexport const is_pure_native_value = make_nested_lookup({\n Math: [\n \"E\",\n \"LN10\",\n \"LN2\",\n \"LOG2E\",\n \"LOG10E\",\n \"PI\",\n \"SQRT1_2\",\n \"SQRT2\",\n ],\n Number: [\n \"MAX_VALUE\",\n \"MIN_VALUE\",\n \"NaN\",\n \"NEGATIVE_INFINITY\",\n \"POSITIVE_INFINITY\",\n ],\n});\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n AST_Array,\n AST_Arrow,\n AST_Assign,\n AST_BigInt,\n AST_Binary,\n AST_Block,\n AST_BlockStatement,\n AST_Call,\n AST_Case,\n AST_Chain,\n AST_Class,\n AST_DefClass,\n AST_ClassStaticBlock,\n AST_ClassProperty,\n AST_ConciseMethod,\n AST_Conditional,\n AST_Constant,\n AST_Definitions,\n AST_Dot,\n AST_EmptyStatement,\n AST_Expansion,\n AST_False,\n AST_ForIn,\n AST_Function,\n AST_If,\n AST_Import,\n AST_ImportMeta,\n AST_Jump,\n AST_LabeledStatement,\n AST_Lambda,\n AST_New,\n AST_Node,\n AST_Null,\n AST_Number,\n AST_Object,\n AST_ObjectGetter,\n AST_ObjectKeyVal,\n AST_ObjectProperty,\n AST_ObjectSetter,\n AST_PropAccess,\n AST_RegExp,\n AST_Return,\n AST_Scope,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Statement,\n AST_String,\n AST_Sub,\n AST_Switch,\n AST_SwitchBranch,\n AST_SymbolClassProperty,\n AST_SymbolDeclaration,\n AST_SymbolRef,\n AST_TemplateSegment,\n AST_TemplateString,\n AST_This,\n AST_True,\n AST_Try,\n AST_Unary,\n AST_UnaryPostfix,\n AST_UnaryPrefix,\n AST_Undefined,\n AST_VarDef,\n\n walk,\n walk_abort,\n\n _PURE\n} from \"../ast.js\";\nimport {\n makePredicate,\n return_true,\n return_false,\n return_null,\n return_this,\n make_node,\n member,\n has_annotation,\n} from \"../utils/index.js\";\nimport { make_sequence, best_of_expression, read_property } from \"./common.js\";\n\nimport { INLINED, UNDEFINED, has_flag } from \"./compressor-flags.js\";\nimport { pure_prop_access_globals, is_pure_native_fn, is_pure_native_method } from \"./native-objects.js\";\n\n// Functions and methods to infer certain facts about expressions\n// It's not always possible to be 100% sure about something just by static analysis,\n// so `true` means yes, and `false` means maybe\n\nexport const is_undeclared_ref = (node) =>\n node instanceof AST_SymbolRef && node.definition().undeclared;\n\nexport const lazy_op = makePredicate(\"&& || ??\");\nexport const unary_side_effects = makePredicate(\"delete ++ --\");\n\n// methods to determine whether an expression has a boolean result type\n(function(def_is_boolean) {\n const unary_bool = makePredicate(\"! delete\");\n const binary_bool = makePredicate(\"in instanceof == != === !== < <= >= >\");\n def_is_boolean(AST_Node, return_false);\n def_is_boolean(AST_UnaryPrefix, function() {\n return unary_bool.has(this.operator);\n });\n def_is_boolean(AST_Binary, function() {\n return binary_bool.has(this.operator)\n || lazy_op.has(this.operator)\n && this.left.is_boolean()\n && this.right.is_boolean();\n });\n def_is_boolean(AST_Conditional, function() {\n return this.consequent.is_boolean() && this.alternative.is_boolean();\n });\n def_is_boolean(AST_Assign, function() {\n return this.operator == \"=\" && this.right.is_boolean();\n });\n def_is_boolean(AST_Sequence, function() {\n return this.tail_node().is_boolean();\n });\n def_is_boolean(AST_True, return_true);\n def_is_boolean(AST_False, return_true);\n})(function(node, func) {\n node.DEFMETHOD(\"is_boolean\", func);\n});\n\n// methods to determine if an expression has a numeric result type\n(function(def_is_number) {\n def_is_number(AST_Node, return_false);\n def_is_number(AST_Number, return_true);\n const unary = makePredicate(\"+ - ~ ++ --\");\n def_is_number(AST_Unary, function() {\n return unary.has(this.operator) && !(this.expression instanceof AST_BigInt);\n });\n const numeric_ops = makePredicate(\"- * / % & | ^ << >> >>>\");\n def_is_number(AST_Binary, function(compressor) {\n return numeric_ops.has(this.operator) || this.operator == \"+\"\n && this.left.is_number(compressor)\n && this.right.is_number(compressor);\n });\n def_is_number(AST_Assign, function(compressor) {\n return numeric_ops.has(this.operator.slice(0, -1))\n || this.operator == \"=\" && this.right.is_number(compressor);\n });\n def_is_number(AST_Sequence, function(compressor) {\n return this.tail_node().is_number(compressor);\n });\n def_is_number(AST_Conditional, function(compressor) {\n return this.consequent.is_number(compressor) && this.alternative.is_number(compressor);\n });\n})(function(node, func) {\n node.DEFMETHOD(\"is_number\", func);\n});\n\n// methods to determine if an expression has a string result type\n(function(def_is_string) {\n def_is_string(AST_Node, return_false);\n def_is_string(AST_String, return_true);\n def_is_string(AST_TemplateString, return_true);\n def_is_string(AST_UnaryPrefix, function() {\n return this.operator == \"typeof\";\n });\n def_is_string(AST_Binary, function(compressor) {\n return this.operator == \"+\" &&\n (this.left.is_string(compressor) || this.right.is_string(compressor));\n });\n def_is_string(AST_Assign, function(compressor) {\n return (this.operator == \"=\" || this.operator == \"+=\") && this.right.is_string(compressor);\n });\n def_is_string(AST_Sequence, function(compressor) {\n return this.tail_node().is_string(compressor);\n });\n def_is_string(AST_Conditional, function(compressor) {\n return this.consequent.is_string(compressor) && this.alternative.is_string(compressor);\n });\n})(function(node, func) {\n node.DEFMETHOD(\"is_string\", func);\n});\n\nexport function is_undefined(node, compressor) {\n return (\n has_flag(node, UNDEFINED)\n || node instanceof AST_Undefined\n || node instanceof AST_UnaryPrefix\n && node.operator == \"void\"\n && !node.expression.has_side_effects(compressor)\n );\n}\n\n// Is the node explicitly null or undefined.\nfunction is_null_or_undefined(node, compressor) {\n let fixed;\n return (\n node instanceof AST_Null\n || is_undefined(node, compressor)\n || (\n node instanceof AST_SymbolRef\n && (fixed = node.definition().fixed) instanceof AST_Node\n && is_nullish(fixed, compressor)\n )\n );\n}\n\n// Find out if this expression is optionally chained from a base-point that we\n// can statically analyze as null or undefined.\nexport function is_nullish_shortcircuited(node, compressor) {\n if (node instanceof AST_PropAccess || node instanceof AST_Call) {\n return (\n (node.optional && is_null_or_undefined(node.expression, compressor))\n || is_nullish_shortcircuited(node.expression, compressor)\n );\n }\n if (node instanceof AST_Chain) return is_nullish_shortcircuited(node.expression, compressor);\n return false;\n}\n\n// Find out if something is == null, or can short circuit into nullish.\n// Used to optimize ?. and ??\nexport function is_nullish(node, compressor) {\n if (is_null_or_undefined(node, compressor)) return true;\n return is_nullish_shortcircuited(node, compressor);\n}\n\n// Determine if expression might cause side effects\n// If there's a possibility that a node may change something when it's executed, this returns true\n(function(def_has_side_effects) {\n def_has_side_effects(AST_Node, return_true);\n\n def_has_side_effects(AST_EmptyStatement, return_false);\n def_has_side_effects(AST_Constant, return_false);\n def_has_side_effects(AST_This, return_false);\n\n function any(list, compressor) {\n for (var i = list.length; --i >= 0;)\n if (list[i].has_side_effects(compressor))\n return true;\n return false;\n }\n\n def_has_side_effects(AST_Block, function(compressor) {\n return any(this.body, compressor);\n });\n def_has_side_effects(AST_Call, function(compressor) {\n if (\n !this.is_callee_pure(compressor)\n && (!this.expression.is_call_pure(compressor)\n || this.expression.has_side_effects(compressor))\n ) {\n return true;\n }\n return any(this.args, compressor);\n });\n def_has_side_effects(AST_Switch, function(compressor) {\n return this.expression.has_side_effects(compressor)\n || any(this.body, compressor);\n });\n def_has_side_effects(AST_Case, function(compressor) {\n return this.expression.has_side_effects(compressor)\n || any(this.body, compressor);\n });\n def_has_side_effects(AST_Try, function(compressor) {\n return this.body.has_side_effects(compressor)\n || this.bcatch && this.bcatch.has_side_effects(compressor)\n || this.bfinally && this.bfinally.has_side_effects(compressor);\n });\n def_has_side_effects(AST_If, function(compressor) {\n return this.condition.has_side_effects(compressor)\n || this.body && this.body.has_side_effects(compressor)\n || this.alternative && this.alternative.has_side_effects(compressor);\n });\n def_has_side_effects(AST_ImportMeta, return_false);\n def_has_side_effects(AST_LabeledStatement, function(compressor) {\n return this.body.has_side_effects(compressor);\n });\n def_has_side_effects(AST_SimpleStatement, function(compressor) {\n return this.body.has_side_effects(compressor);\n });\n def_has_side_effects(AST_Lambda, return_false);\n def_has_side_effects(AST_Class, function (compressor) {\n if (this.extends && this.extends.has_side_effects(compressor)) {\n return true;\n }\n return any(this.properties, compressor);\n });\n def_has_side_effects(AST_ClassStaticBlock, function(compressor) {\n return any(this.body, compressor);\n });\n def_has_side_effects(AST_Binary, function(compressor) {\n return this.left.has_side_effects(compressor)\n || this.right.has_side_effects(compressor);\n });\n def_has_side_effects(AST_Assign, return_true);\n def_has_side_effects(AST_Conditional, function(compressor) {\n return this.condition.has_side_effects(compressor)\n || this.consequent.has_side_effects(compressor)\n || this.alternative.has_side_effects(compressor);\n });\n def_has_side_effects(AST_Unary, function(compressor) {\n return unary_side_effects.has(this.operator)\n || this.expression.has_side_effects(compressor);\n });\n def_has_side_effects(AST_SymbolRef, function(compressor) {\n return !this.is_declared(compressor) && !pure_prop_access_globals.has(this.name);\n });\n def_has_side_effects(AST_SymbolClassProperty, return_false);\n def_has_side_effects(AST_SymbolDeclaration, return_false);\n def_has_side_effects(AST_Object, function(compressor) {\n return any(this.properties, compressor);\n });\n def_has_side_effects(AST_ObjectProperty, function(compressor) {\n return (\n this.computed_key() && this.key.has_side_effects(compressor)\n || this.value && this.value.has_side_effects(compressor)\n );\n });\n def_has_side_effects(AST_ClassProperty, function(compressor) {\n return (\n this.computed_key() && this.key.has_side_effects(compressor)\n || this.static && this.value && this.value.has_side_effects(compressor)\n );\n });\n def_has_side_effects(AST_ConciseMethod, function(compressor) {\n return this.computed_key() && this.key.has_side_effects(compressor);\n });\n def_has_side_effects(AST_ObjectGetter, function(compressor) {\n return this.computed_key() && this.key.has_side_effects(compressor);\n });\n def_has_side_effects(AST_ObjectSetter, function(compressor) {\n return this.computed_key() && this.key.has_side_effects(compressor);\n });\n def_has_side_effects(AST_Array, function(compressor) {\n return any(this.elements, compressor);\n });\n def_has_side_effects(AST_Dot, function(compressor) {\n if (is_nullish(this, compressor)) {\n return this.expression.has_side_effects(compressor);\n }\n if (!this.optional && this.expression.may_throw_on_access(compressor)) {\n return true;\n }\n\n return this.expression.has_side_effects(compressor);\n });\n def_has_side_effects(AST_Sub, function(compressor) {\n if (is_nullish(this, compressor)) {\n return this.expression.has_side_effects(compressor);\n }\n if (!this.optional && this.expression.may_throw_on_access(compressor)) {\n return true;\n }\n\n var property = this.property.has_side_effects(compressor);\n if (property && this.optional) return true; // \"?.\" is a condition\n\n return property || this.expression.has_side_effects(compressor);\n });\n def_has_side_effects(AST_Chain, function (compressor) {\n return this.expression.has_side_effects(compressor);\n });\n def_has_side_effects(AST_Sequence, function(compressor) {\n return any(this.expressions, compressor);\n });\n def_has_side_effects(AST_Definitions, function(compressor) {\n return any(this.definitions, compressor);\n });\n def_has_side_effects(AST_VarDef, function() {\n return this.value;\n });\n def_has_side_effects(AST_TemplateSegment, return_false);\n def_has_side_effects(AST_TemplateString, function(compressor) {\n return any(this.segments, compressor);\n });\n})(function(node, func) {\n node.DEFMETHOD(\"has_side_effects\", func);\n});\n\n// determine if expression may throw\n(function(def_may_throw) {\n def_may_throw(AST_Node, return_true);\n\n def_may_throw(AST_Constant, return_false);\n def_may_throw(AST_EmptyStatement, return_false);\n def_may_throw(AST_Lambda, return_false);\n def_may_throw(AST_SymbolDeclaration, return_false);\n def_may_throw(AST_This, return_false);\n def_may_throw(AST_ImportMeta, return_false);\n\n function any(list, compressor) {\n for (var i = list.length; --i >= 0;)\n if (list[i].may_throw(compressor))\n return true;\n return false;\n }\n\n def_may_throw(AST_Class, function(compressor) {\n if (this.extends && this.extends.may_throw(compressor)) return true;\n return any(this.properties, compressor);\n });\n def_may_throw(AST_ClassStaticBlock, function (compressor) {\n return any(this.body, compressor);\n });\n\n def_may_throw(AST_Array, function(compressor) {\n return any(this.elements, compressor);\n });\n def_may_throw(AST_Assign, function(compressor) {\n if (this.right.may_throw(compressor)) return true;\n if (!compressor.has_directive(\"use strict\")\n && this.operator == \"=\"\n && this.left instanceof AST_SymbolRef) {\n return false;\n }\n return this.left.may_throw(compressor);\n });\n def_may_throw(AST_Binary, function(compressor) {\n return this.left.may_throw(compressor)\n || this.right.may_throw(compressor);\n });\n def_may_throw(AST_Block, function(compressor) {\n return any(this.body, compressor);\n });\n def_may_throw(AST_Call, function(compressor) {\n if (is_nullish(this, compressor)) return false;\n if (any(this.args, compressor)) return true;\n if (this.is_callee_pure(compressor)) return false;\n if (this.expression.may_throw(compressor)) return true;\n return !(this.expression instanceof AST_Lambda)\n || any(this.expression.body, compressor);\n });\n def_may_throw(AST_Case, function(compressor) {\n return this.expression.may_throw(compressor)\n || any(this.body, compressor);\n });\n def_may_throw(AST_Conditional, function(compressor) {\n return this.condition.may_throw(compressor)\n || this.consequent.may_throw(compressor)\n || this.alternative.may_throw(compressor);\n });\n def_may_throw(AST_Definitions, function(compressor) {\n return any(this.definitions, compressor);\n });\n def_may_throw(AST_If, function(compressor) {\n return this.condition.may_throw(compressor)\n || this.body && this.body.may_throw(compressor)\n || this.alternative && this.alternative.may_throw(compressor);\n });\n def_may_throw(AST_LabeledStatement, function(compressor) {\n return this.body.may_throw(compressor);\n });\n def_may_throw(AST_Object, function(compressor) {\n return any(this.properties, compressor);\n });\n def_may_throw(AST_ObjectProperty, function(compressor) {\n // TODO key may throw too\n return this.value ? this.value.may_throw(compressor) : false;\n });\n def_may_throw(AST_ClassProperty, function(compressor) {\n return (\n this.computed_key() && this.key.may_throw(compressor)\n || this.static && this.value && this.value.may_throw(compressor)\n );\n });\n def_may_throw(AST_ConciseMethod, function(compressor) {\n return this.computed_key() && this.key.may_throw(compressor);\n });\n def_may_throw(AST_ObjectGetter, function(compressor) {\n return this.computed_key() && this.key.may_throw(compressor);\n });\n def_may_throw(AST_ObjectSetter, function(compressor) {\n return this.computed_key() && this.key.may_throw(compressor);\n });\n def_may_throw(AST_Return, function(compressor) {\n return this.value && this.value.may_throw(compressor);\n });\n def_may_throw(AST_Sequence, function(compressor) {\n return any(this.expressions, compressor);\n });\n def_may_throw(AST_SimpleStatement, function(compressor) {\n return this.body.may_throw(compressor);\n });\n def_may_throw(AST_Dot, function(compressor) {\n if (is_nullish(this, compressor)) return false;\n return !this.optional && this.expression.may_throw_on_access(compressor)\n || this.expression.may_throw(compressor);\n });\n def_may_throw(AST_Sub, function(compressor) {\n if (is_nullish(this, compressor)) return false;\n return !this.optional && this.expression.may_throw_on_access(compressor)\n || this.expression.may_throw(compressor)\n || this.property.may_throw(compressor);\n });\n def_may_throw(AST_Chain, function(compressor) {\n return this.expression.may_throw(compressor);\n });\n def_may_throw(AST_Switch, function(compressor) {\n return this.expression.may_throw(compressor)\n || any(this.body, compressor);\n });\n def_may_throw(AST_SymbolRef, function(compressor) {\n return !this.is_declared(compressor) && !pure_prop_access_globals.has(this.name);\n });\n def_may_throw(AST_SymbolClassProperty, return_false);\n def_may_throw(AST_Try, function(compressor) {\n return this.bcatch ? this.bcatch.may_throw(compressor) : this.body.may_throw(compressor)\n || this.bfinally && this.bfinally.may_throw(compressor);\n });\n def_may_throw(AST_Unary, function(compressor) {\n if (this.operator == \"typeof\" && this.expression instanceof AST_SymbolRef)\n return false;\n return this.expression.may_throw(compressor);\n });\n def_may_throw(AST_VarDef, function(compressor) {\n if (!this.value) return false;\n return this.value.may_throw(compressor);\n });\n})(function(node, func) {\n node.DEFMETHOD(\"may_throw\", func);\n});\n\n// determine if expression is constant\n(function(def_is_constant_expression) {\n function all_refs_local(scope) {\n let result = true;\n walk(this, node => {\n if (node instanceof AST_SymbolRef) {\n if (has_flag(this, INLINED)) {\n result = false;\n return walk_abort;\n }\n var def = node.definition();\n if (\n member(def, this.enclosed)\n && !this.variables.has(def.name)\n ) {\n if (scope) {\n var scope_def = scope.find_variable(node);\n if (def.undeclared ? !scope_def : scope_def === def) {\n result = \"f\";\n return true;\n }\n }\n result = false;\n return walk_abort;\n }\n return true;\n }\n if (node instanceof AST_This && this instanceof AST_Arrow) {\n result = false;\n return walk_abort;\n }\n });\n return result;\n }\n\n def_is_constant_expression(AST_Node, return_false);\n def_is_constant_expression(AST_Constant, return_true);\n def_is_constant_expression(AST_Class, function(scope) {\n if (this.extends && !this.extends.is_constant_expression(scope)) {\n return false;\n }\n\n for (const prop of this.properties) {\n if (prop.computed_key() && !prop.key.is_constant_expression(scope)) {\n return false;\n }\n if (prop.static && prop.value && !prop.value.is_constant_expression(scope)) {\n return false;\n }\n if (prop instanceof AST_ClassStaticBlock) {\n return false;\n }\n }\n\n return all_refs_local.call(this, scope);\n });\n def_is_constant_expression(AST_Lambda, all_refs_local);\n def_is_constant_expression(AST_Unary, function() {\n return this.expression.is_constant_expression();\n });\n def_is_constant_expression(AST_Binary, function() {\n return this.left.is_constant_expression()\n && this.right.is_constant_expression();\n });\n def_is_constant_expression(AST_Array, function() {\n return this.elements.every((l) => l.is_constant_expression());\n });\n def_is_constant_expression(AST_Object, function() {\n return this.properties.every((l) => l.is_constant_expression());\n });\n def_is_constant_expression(AST_ObjectProperty, function() {\n return !!(!(this.key instanceof AST_Node) && this.value && this.value.is_constant_expression());\n });\n})(function(node, func) {\n node.DEFMETHOD(\"is_constant_expression\", func);\n});\n\n\n// may_throw_on_access()\n// returns true if this node may be null, undefined or contain `AST_Accessor`\n(function(def_may_throw_on_access) {\n AST_Node.DEFMETHOD(\"may_throw_on_access\", function(compressor) {\n return !compressor.option(\"pure_getters\")\n || this._dot_throw(compressor);\n });\n\n function is_strict(compressor) {\n return /strict/.test(compressor.option(\"pure_getters\"));\n }\n\n def_may_throw_on_access(AST_Node, is_strict);\n def_may_throw_on_access(AST_Null, return_true);\n def_may_throw_on_access(AST_Undefined, return_true);\n def_may_throw_on_access(AST_Constant, return_false);\n def_may_throw_on_access(AST_Array, return_false);\n def_may_throw_on_access(AST_Object, function(compressor) {\n if (!is_strict(compressor)) return false;\n for (var i = this.properties.length; --i >=0;)\n if (this.properties[i]._dot_throw(compressor)) return true;\n return false;\n });\n // Do not be as strict with classes as we are with objects.\n // Hopefully the community is not going to abuse static getters and setters.\n // https://github.com/terser/terser/issues/724#issuecomment-643655656\n def_may_throw_on_access(AST_Class, return_false);\n def_may_throw_on_access(AST_ObjectProperty, return_false);\n def_may_throw_on_access(AST_ObjectGetter, return_true);\n def_may_throw_on_access(AST_Expansion, function(compressor) {\n return this.expression._dot_throw(compressor);\n });\n def_may_throw_on_access(AST_Function, return_false);\n def_may_throw_on_access(AST_Arrow, return_false);\n def_may_throw_on_access(AST_UnaryPostfix, return_false);\n def_may_throw_on_access(AST_UnaryPrefix, function() {\n return this.operator == \"void\";\n });\n def_may_throw_on_access(AST_Binary, function(compressor) {\n return (this.operator == \"&&\" || this.operator == \"||\" || this.operator == \"??\")\n && (this.left._dot_throw(compressor) || this.right._dot_throw(compressor));\n });\n def_may_throw_on_access(AST_Assign, function(compressor) {\n if (this.logical) return true;\n\n return this.operator == \"=\"\n && this.right._dot_throw(compressor);\n });\n def_may_throw_on_access(AST_Conditional, function(compressor) {\n return this.consequent._dot_throw(compressor)\n || this.alternative._dot_throw(compressor);\n });\n def_may_throw_on_access(AST_Dot, function(compressor) {\n if (!is_strict(compressor)) return false;\n\n if (this.property == \"prototype\") {\n return !(\n this.expression instanceof AST_Function\n || this.expression instanceof AST_Class\n );\n }\n return true;\n });\n def_may_throw_on_access(AST_Chain, function(compressor) {\n return this.expression._dot_throw(compressor);\n });\n def_may_throw_on_access(AST_Sequence, function(compressor) {\n return this.tail_node()._dot_throw(compressor);\n });\n def_may_throw_on_access(AST_SymbolRef, function(compressor) {\n if (this.name === \"arguments\" && this.scope instanceof AST_Lambda) return false;\n if (has_flag(this, UNDEFINED)) return true;\n if (!is_strict(compressor)) return false;\n if (is_undeclared_ref(this) && this.is_declared(compressor)) return false;\n if (this.is_immutable()) return false;\n var fixed = this.fixed_value();\n return !fixed || fixed._dot_throw(compressor);\n });\n})(function(node, func) {\n node.DEFMETHOD(\"_dot_throw\", func);\n});\n\nexport function is_lhs(node, parent) {\n if (parent instanceof AST_Unary && unary_side_effects.has(parent.operator)) return parent.expression;\n if (parent instanceof AST_Assign && parent.left === node) return node;\n if (parent instanceof AST_ForIn && parent.init === node) return node;\n}\n\n// method to negate an expression\n(function(def_negate) {\n function basic_negation(exp) {\n return make_node(AST_UnaryPrefix, exp, {\n operator: \"!\",\n expression: exp\n });\n }\n function best(orig, alt, first_in_statement) {\n var negated = basic_negation(orig);\n if (first_in_statement) {\n var stat = make_node(AST_SimpleStatement, alt, {\n body: alt\n });\n return best_of_expression(negated, stat) === stat ? alt : negated;\n }\n return best_of_expression(negated, alt);\n }\n def_negate(AST_Node, function() {\n return basic_negation(this);\n });\n def_negate(AST_Statement, function() {\n throw new Error(\"Cannot negate a statement\");\n });\n def_negate(AST_Function, function() {\n return basic_negation(this);\n });\n def_negate(AST_Class, function() {\n return basic_negation(this);\n });\n def_negate(AST_Arrow, function() {\n return basic_negation(this);\n });\n def_negate(AST_UnaryPrefix, function() {\n if (this.operator == \"!\")\n return this.expression;\n return basic_negation(this);\n });\n def_negate(AST_Sequence, function(compressor) {\n var expressions = this.expressions.slice();\n expressions.push(expressions.pop().negate(compressor));\n return make_sequence(this, expressions);\n });\n def_negate(AST_Conditional, function(compressor, first_in_statement) {\n var self = this.clone();\n self.consequent = self.consequent.negate(compressor);\n self.alternative = self.alternative.negate(compressor);\n return best(this, self, first_in_statement);\n });\n def_negate(AST_Binary, function(compressor, first_in_statement) {\n var self = this.clone(), op = this.operator;\n if (compressor.option(\"unsafe_comps\")) {\n switch (op) {\n case \"<=\" : self.operator = \">\" ; return self;\n case \"<\" : self.operator = \">=\" ; return self;\n case \">=\" : self.operator = \"<\" ; return self;\n case \">\" : self.operator = \"<=\" ; return self;\n }\n }\n switch (op) {\n case \"==\" : self.operator = \"!=\"; return self;\n case \"!=\" : self.operator = \"==\"; return self;\n case \"===\": self.operator = \"!==\"; return self;\n case \"!==\": self.operator = \"===\"; return self;\n case \"&&\":\n self.operator = \"||\";\n self.left = self.left.negate(compressor, first_in_statement);\n self.right = self.right.negate(compressor);\n return best(this, self, first_in_statement);\n case \"||\":\n self.operator = \"&&\";\n self.left = self.left.negate(compressor, first_in_statement);\n self.right = self.right.negate(compressor);\n return best(this, self, first_in_statement);\n }\n return basic_negation(this);\n });\n})(function(node, func) {\n node.DEFMETHOD(\"negate\", function(compressor, first_in_statement) {\n return func.call(this, compressor, first_in_statement);\n });\n});\n\n// Is the callee of this function pure?\nvar global_pure_fns = makePredicate(\"Boolean decodeURI decodeURIComponent Date encodeURI encodeURIComponent Error escape EvalError isFinite isNaN Number Object parseFloat parseInt RangeError ReferenceError String SyntaxError TypeError unescape URIError\");\nAST_Call.DEFMETHOD(\"is_callee_pure\", function(compressor) {\n if (compressor.option(\"unsafe\")) {\n var expr = this.expression;\n var first_arg = (this.args && this.args[0] && this.args[0].evaluate(compressor));\n if (\n expr.expression && expr.expression.name === \"hasOwnProperty\" &&\n (first_arg == null || first_arg.thedef && first_arg.thedef.undeclared)\n ) {\n return false;\n }\n if (is_undeclared_ref(expr) && global_pure_fns.has(expr.name)) return true;\n if (\n expr instanceof AST_Dot\n && is_undeclared_ref(expr.expression)\n && is_pure_native_fn(expr.expression.name, expr.property)\n ) {\n return true;\n }\n }\n if ((this instanceof AST_New) && compressor.option(\"pure_new\")) {\n return true;\n }\n if (compressor.option(\"side_effects\") && has_annotation(this, _PURE)) {\n return true;\n }\n return !compressor.pure_funcs(this);\n});\n\n// If I call this, is it a pure function?\nAST_Node.DEFMETHOD(\"is_call_pure\", return_false);\nAST_Dot.DEFMETHOD(\"is_call_pure\", function(compressor) {\n if (!compressor.option(\"unsafe\")) return;\n const expr = this.expression;\n\n let native_obj;\n if (expr instanceof AST_Array) {\n native_obj = \"Array\";\n } else if (expr.is_boolean()) {\n native_obj = \"Boolean\";\n } else if (expr.is_number(compressor)) {\n native_obj = \"Number\";\n } else if (expr instanceof AST_RegExp) {\n native_obj = \"RegExp\";\n } else if (expr.is_string(compressor)) {\n native_obj = \"String\";\n } else if (!this.may_throw_on_access(compressor)) {\n native_obj = \"Object\";\n }\n return native_obj != null && is_pure_native_method(native_obj, this.property);\n});\n\n// tell me if a statement aborts\nexport const aborts = (thing) => thing && thing.aborts();\n\n(function(def_aborts) {\n def_aborts(AST_Statement, return_null);\n def_aborts(AST_Jump, return_this);\n function block_aborts() {\n for (var i = 0; i < this.body.length; i++) {\n if (aborts(this.body[i])) {\n return this.body[i];\n }\n }\n return null;\n }\n def_aborts(AST_Import, return_null);\n def_aborts(AST_BlockStatement, block_aborts);\n def_aborts(AST_SwitchBranch, block_aborts);\n def_aborts(AST_DefClass, function () {\n for (const prop of this.properties) {\n if (prop instanceof AST_ClassStaticBlock) {\n if (prop.aborts()) return prop;\n }\n }\n return null;\n });\n def_aborts(AST_ClassStaticBlock, block_aborts);\n def_aborts(AST_If, function() {\n return this.alternative && aborts(this.body) && aborts(this.alternative) && this;\n });\n})(function(node, func) {\n node.DEFMETHOD(\"aborts\", func);\n});\n\nAST_Node.DEFMETHOD(\"contains_this\", function() {\n return walk(this, node => {\n if (node instanceof AST_This) return walk_abort;\n if (\n node !== this\n && node instanceof AST_Scope\n && !(node instanceof AST_Arrow)\n ) {\n return true;\n }\n });\n});\n\nexport function is_modified(compressor, tw, node, value, level, immutable) {\n var parent = tw.parent(level);\n var lhs = is_lhs(node, parent);\n if (lhs) return lhs;\n if (!immutable\n && parent instanceof AST_Call\n && parent.expression === node\n && !(value instanceof AST_Arrow)\n && !(value instanceof AST_Class)\n && !parent.is_callee_pure(compressor)\n && (!(value instanceof AST_Function)\n || !(parent instanceof AST_New) && value.contains_this())) {\n return true;\n }\n if (parent instanceof AST_Array) {\n return is_modified(compressor, tw, parent, parent, level + 1);\n }\n if (parent instanceof AST_ObjectKeyVal && node === parent.value) {\n var obj = tw.parent(level + 1);\n return is_modified(compressor, tw, obj, obj, level + 2);\n }\n if (parent instanceof AST_PropAccess && parent.expression === node) {\n var prop = read_property(value, parent.property);\n return !immutable && is_modified(compressor, tw, parent, prop, level + 1);\n }\n}\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n HOP,\n makePredicate,\n return_this,\n string_template,\n regexp_source_fix,\n regexp_is_safe,\n} from \"../utils/index.js\";\nimport {\n AST_Array,\n AST_BigInt,\n AST_Binary,\n AST_Call,\n AST_Chain,\n AST_Class,\n AST_Conditional,\n AST_Constant,\n AST_Dot,\n AST_Expansion,\n AST_Function,\n AST_Lambda,\n AST_New,\n AST_Node,\n AST_Object,\n AST_PropAccess,\n AST_RegExp,\n AST_Statement,\n AST_Symbol,\n AST_SymbolRef,\n AST_TemplateString,\n AST_UnaryPrefix,\n AST_With,\n} from \"../ast.js\";\nimport { is_undeclared_ref} from \"./inference.js\";\nimport { is_pure_native_value, is_pure_native_fn, is_pure_native_method } from \"./native-objects.js\";\n\n// methods to evaluate a constant expression\n\nfunction def_eval(node, func) {\n node.DEFMETHOD(\"_eval\", func);\n}\n\n// Used to propagate a nullish short-circuit signal upwards through the chain.\nexport const nullish = Symbol(\"This AST_Chain is nullish\");\n\n// If the node has been successfully reduced to a constant,\n// then its value is returned; otherwise the element itself\n// is returned.\n// They can be distinguished as constant value is never a\n// descendant of AST_Node.\nAST_Node.DEFMETHOD(\"evaluate\", function (compressor) {\n if (!compressor.option(\"evaluate\"))\n return this;\n var val = this._eval(compressor, 1);\n if (!val || val instanceof RegExp)\n return val;\n if (typeof val == \"function\" || typeof val == \"object\" || val == nullish)\n return this;\n\n // Evaluated strings can be larger than the original expression\n if (typeof val === \"string\") {\n const unevaluated_size = this.size(compressor);\n if (val.length + 2 > unevaluated_size) return this;\n }\n\n return val;\n});\n\nvar unaryPrefix = makePredicate(\"! ~ - + void\");\nAST_Node.DEFMETHOD(\"is_constant\", function () {\n // Accomodate when compress option evaluate=false\n // as well as the common constant expressions !0 and -1\n if (this instanceof AST_Constant) {\n return !(this instanceof AST_RegExp);\n } else {\n return this instanceof AST_UnaryPrefix\n && this.expression instanceof AST_Constant\n && unaryPrefix.has(this.operator);\n }\n});\n\ndef_eval(AST_Statement, function () {\n throw new Error(string_template(\"Cannot evaluate a statement [{file}:{line},{col}]\", this.start));\n});\n\ndef_eval(AST_Lambda, return_this);\ndef_eval(AST_Class, return_this);\ndef_eval(AST_Node, return_this);\ndef_eval(AST_Constant, function () {\n return this.getValue();\n});\n\ndef_eval(AST_BigInt, return_this);\n\ndef_eval(AST_RegExp, function (compressor) {\n let evaluated = compressor.evaluated_regexps.get(this.value);\n if (evaluated === undefined && regexp_is_safe(this.value.source)) {\n try {\n const { source, flags } = this.value;\n evaluated = new RegExp(source, flags);\n } catch (e) {\n evaluated = null;\n }\n compressor.evaluated_regexps.set(this.value, evaluated);\n }\n return evaluated || this;\n});\n\ndef_eval(AST_TemplateString, function () {\n if (this.segments.length !== 1) return this;\n return this.segments[0].value;\n});\n\ndef_eval(AST_Function, function (compressor) {\n if (compressor.option(\"unsafe\")) {\n var fn = function () { };\n fn.node = this;\n fn.toString = () => this.print_to_string();\n return fn;\n }\n return this;\n});\n\ndef_eval(AST_Array, function (compressor, depth) {\n if (compressor.option(\"unsafe\")) {\n var elements = [];\n for (var i = 0, len = this.elements.length; i < len; i++) {\n var element = this.elements[i];\n var value = element._eval(compressor, depth);\n if (element === value)\n return this;\n elements.push(value);\n }\n return elements;\n }\n return this;\n});\n\ndef_eval(AST_Object, function (compressor, depth) {\n if (compressor.option(\"unsafe\")) {\n var val = {};\n for (var i = 0, len = this.properties.length; i < len; i++) {\n var prop = this.properties[i];\n if (prop instanceof AST_Expansion)\n return this;\n var key = prop.key;\n if (key instanceof AST_Symbol) {\n key = key.name;\n } else if (key instanceof AST_Node) {\n key = key._eval(compressor, depth);\n if (key === prop.key)\n return this;\n }\n if (typeof Object.prototype[key] === \"function\") {\n return this;\n }\n if (prop.value instanceof AST_Function)\n continue;\n val[key] = prop.value._eval(compressor, depth);\n if (val[key] === prop.value)\n return this;\n }\n return val;\n }\n return this;\n});\n\nvar non_converting_unary = makePredicate(\"! typeof void\");\ndef_eval(AST_UnaryPrefix, function (compressor, depth) {\n var e = this.expression;\n // Function would be evaluated to an array and so typeof would\n // incorrectly return 'object'. Hence making is a special case.\n if (compressor.option(\"typeofs\")\n && this.operator == \"typeof\"\n && (e instanceof AST_Lambda\n || e instanceof AST_SymbolRef\n && e.fixed_value() instanceof AST_Lambda)) {\n return typeof function () { };\n }\n if (!non_converting_unary.has(this.operator))\n depth++;\n e = e._eval(compressor, depth);\n if (e === this.expression)\n return this;\n switch (this.operator) {\n case \"!\": return !e;\n case \"typeof\":\n // typeof returns \"object\" or \"function\" on different platforms\n // so cannot evaluate reliably\n if (e instanceof RegExp)\n return this;\n return typeof e;\n case \"void\": return void e;\n case \"~\": return ~e;\n case \"-\": return -e;\n case \"+\": return +e;\n }\n return this;\n});\n\nvar non_converting_binary = makePredicate(\"&& || ?? === !==\");\nconst identity_comparison = makePredicate(\"== != === !==\");\nconst has_identity = value => typeof value === \"object\"\n || typeof value === \"function\"\n || typeof value === \"symbol\";\n\ndef_eval(AST_Binary, function (compressor, depth) {\n if (!non_converting_binary.has(this.operator))\n depth++;\n\n var left = this.left._eval(compressor, depth);\n if (left === this.left)\n return this;\n var right = this.right._eval(compressor, depth);\n if (right === this.right)\n return this;\n var result;\n\n if (left != null\n && right != null\n && identity_comparison.has(this.operator)\n && has_identity(left)\n && has_identity(right)\n && typeof left === typeof right) {\n // Do not compare by reference\n return this;\n }\n\n switch (this.operator) {\n case \"&&\": result = left && right; break;\n case \"||\": result = left || right; break;\n case \"??\": result = left != null ? left : right; break;\n case \"|\": result = left | right; break;\n case \"&\": result = left & right; break;\n case \"^\": result = left ^ right; break;\n case \"+\": result = left + right; break;\n case \"*\": result = left * right; break;\n case \"**\": result = Math.pow(left, right); break;\n case \"/\": result = left / right; break;\n case \"%\": result = left % right; break;\n case \"-\": result = left - right; break;\n case \"<<\": result = left << right; break;\n case \">>\": result = left >> right; break;\n case \">>>\": result = left >>> right; break;\n case \"==\": result = left == right; break;\n case \"===\": result = left === right; break;\n case \"!=\": result = left != right; break;\n case \"!==\": result = left !== right; break;\n case \"<\": result = left < right; break;\n case \"<=\": result = left <= right; break;\n case \">\": result = left > right; break;\n case \">=\": result = left >= right; break;\n default:\n return this;\n }\n if (isNaN(result) && compressor.find_parent(AST_With)) {\n // leave original expression as is\n return this;\n }\n return result;\n});\n\ndef_eval(AST_Conditional, function (compressor, depth) {\n var condition = this.condition._eval(compressor, depth);\n if (condition === this.condition)\n return this;\n var node = condition ? this.consequent : this.alternative;\n var value = node._eval(compressor, depth);\n return value === node ? this : value;\n});\n\n// Set of AST_SymbolRef which are currently being evaluated.\n// Avoids infinite recursion of ._eval()\nconst reentrant_ref_eval = new Set();\ndef_eval(AST_SymbolRef, function (compressor, depth) {\n if (reentrant_ref_eval.has(this))\n return this;\n\n var fixed = this.fixed_value();\n if (!fixed)\n return this;\n\n reentrant_ref_eval.add(this);\n const value = fixed._eval(compressor, depth);\n reentrant_ref_eval.delete(this);\n\n if (value === fixed)\n return this;\n\n if (value && typeof value == \"object\") {\n var escaped = this.definition().escaped;\n if (escaped && depth > escaped)\n return this;\n }\n return value;\n});\n\nconst global_objs = { Array, Math, Number, Object, String };\n\nconst regexp_flags = new Set([\n \"dotAll\",\n \"global\",\n \"ignoreCase\",\n \"multiline\",\n \"sticky\",\n \"unicode\",\n]);\n\ndef_eval(AST_PropAccess, function (compressor, depth) {\n let obj = this.expression._eval(compressor, depth + 1);\n if (obj === nullish || (this.optional && obj == null)) return nullish;\n\n // `.length` of strings and arrays is always safe\n if (this.property === \"length\") {\n if (typeof obj === \"string\") {\n return obj.length;\n }\n\n const is_spreadless_array =\n obj instanceof AST_Array\n && obj.elements.every(el => !(el instanceof AST_Expansion));\n\n if (\n is_spreadless_array\n && obj.elements.every(el => !el.has_side_effects(compressor))\n ) {\n return obj.elements.length;\n }\n }\n\n if (compressor.option(\"unsafe\")) {\n var key = this.property;\n if (key instanceof AST_Node) {\n key = key._eval(compressor, depth);\n if (key === this.property)\n return this;\n }\n\n var exp = this.expression;\n if (is_undeclared_ref(exp)) {\n var aa;\n var first_arg = exp.name === \"hasOwnProperty\"\n && key === \"call\"\n && (aa = compressor.parent() && compressor.parent().args)\n && (aa && aa[0]\n && aa[0].evaluate(compressor));\n\n first_arg = first_arg instanceof AST_Dot ? first_arg.expression : first_arg;\n\n if (first_arg == null || first_arg.thedef && first_arg.thedef.undeclared) {\n return this.clone();\n }\n if (!is_pure_native_value(exp.name, key))\n return this;\n obj = global_objs[exp.name];\n } else {\n if (obj instanceof RegExp) {\n if (key == \"source\") {\n return regexp_source_fix(obj.source);\n } else if (key == \"flags\" || regexp_flags.has(key)) {\n return obj[key];\n }\n }\n if (!obj || obj === exp || !HOP(obj, key))\n return this;\n\n if (typeof obj == \"function\")\n switch (key) {\n case \"name\":\n return obj.node.name ? obj.node.name.name : \"\";\n case \"length\":\n return obj.node.length_property();\n default:\n return this;\n }\n }\n return obj[key];\n }\n return this;\n});\n\ndef_eval(AST_Chain, function (compressor, depth) {\n const evaluated = this.expression._eval(compressor, depth);\n return evaluated === nullish\n ? undefined\n : evaluated === this.expression\n ? this\n : evaluated;\n});\n\ndef_eval(AST_Call, function (compressor, depth) {\n var exp = this.expression;\n\n const callee = exp._eval(compressor, depth);\n if (callee === nullish || (this.optional && callee == null)) return nullish;\n\n if (compressor.option(\"unsafe\") && exp instanceof AST_PropAccess) {\n var key = exp.property;\n if (key instanceof AST_Node) {\n key = key._eval(compressor, depth);\n if (key === exp.property)\n return this;\n }\n var val;\n var e = exp.expression;\n if (is_undeclared_ref(e)) {\n var first_arg = e.name === \"hasOwnProperty\" &&\n key === \"call\" &&\n (this.args[0] && this.args[0].evaluate(compressor));\n\n first_arg = first_arg instanceof AST_Dot ? first_arg.expression : first_arg;\n\n if ((first_arg == null || first_arg.thedef && first_arg.thedef.undeclared)) {\n return this.clone();\n }\n if (!is_pure_native_fn(e.name, key)) return this;\n val = global_objs[e.name];\n } else {\n val = e._eval(compressor, depth + 1);\n if (val === e || !val)\n return this;\n if (!is_pure_native_method(val.constructor.name, key))\n return this;\n }\n var args = [];\n for (var i = 0, len = this.args.length; i < len; i++) {\n var arg = this.args[i];\n var value = arg._eval(compressor, depth);\n if (arg === value)\n return this;\n if (arg instanceof AST_Lambda)\n return this;\n args.push(value);\n }\n try {\n return val[key].apply(val, args);\n } catch (ex) {\n // We don't really care\n }\n }\n return this;\n});\n\n// Also a subclass of AST_Call\ndef_eval(AST_New, return_this);\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n AST_Accessor,\n AST_Array,\n AST_Arrow,\n AST_Assign,\n AST_Binary,\n AST_Call,\n AST_Chain,\n AST_Class,\n AST_ClassStaticBlock,\n AST_ClassProperty,\n AST_ConciseMethod,\n AST_Conditional,\n AST_Constant,\n AST_DefClass,\n AST_Dot,\n AST_Expansion,\n AST_Function,\n AST_Node,\n AST_Number,\n AST_Object,\n AST_ObjectGetter,\n AST_ObjectKeyVal,\n AST_ObjectProperty,\n AST_ObjectSetter,\n AST_PropAccess,\n AST_Scope,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Sub,\n AST_SymbolRef,\n AST_TemplateSegment,\n AST_TemplateString,\n AST_This,\n AST_Unary,\n} from \"../ast.js\";\nimport { make_node, return_null, return_this } from \"../utils/index.js\";\nimport { first_in_statement } from \"../utils/first_in_statement.js\";\n\nimport { pure_prop_access_globals } from \"./native-objects.js\";\nimport { lazy_op, unary_side_effects, is_nullish_shortcircuited } from \"./inference.js\";\nimport { WRITE_ONLY, set_flag, clear_flag } from \"./compressor-flags.js\";\nimport { make_sequence, is_func_expr, is_iife_call } from \"./common.js\";\n\n// AST_Node#drop_side_effect_free() gets called when we don't care about the value,\n// only about side effects. We'll be defining this method for each node type in this module\n//\n// Examples:\n// foo++ -> foo++\n// 1 + func() -> func()\n// 10 -> (nothing)\n// knownPureFunc(foo++) -> foo++\n\nfunction def_drop_side_effect_free(node, func) {\n node.DEFMETHOD(\"drop_side_effect_free\", func);\n}\n\n// Drop side-effect-free elements from an array of expressions.\n// Returns an array of expressions with side-effects or null\n// if all elements were dropped. Note: original array may be\n// returned if nothing changed.\nfunction trim(nodes, compressor, first_in_statement) {\n var len = nodes.length;\n if (!len) return null;\n\n var ret = [], changed = false;\n for (var i = 0; i < len; i++) {\n var node = nodes[i].drop_side_effect_free(compressor, first_in_statement);\n changed |= node !== nodes[i];\n if (node) {\n ret.push(node);\n first_in_statement = false;\n }\n }\n return changed ? ret.length ? ret : null : nodes;\n}\n\ndef_drop_side_effect_free(AST_Node, return_this);\ndef_drop_side_effect_free(AST_Constant, return_null);\ndef_drop_side_effect_free(AST_This, return_null);\n\ndef_drop_side_effect_free(AST_Call, function (compressor, first_in_statement) {\n if (is_nullish_shortcircuited(this, compressor)) {\n return this.expression.drop_side_effect_free(compressor, first_in_statement);\n }\n\n if (!this.is_callee_pure(compressor)) {\n if (this.expression.is_call_pure(compressor)) {\n var exprs = this.args.slice();\n exprs.unshift(this.expression.expression);\n exprs = trim(exprs, compressor, first_in_statement);\n return exprs && make_sequence(this, exprs);\n }\n if (is_func_expr(this.expression)\n && (!this.expression.name || !this.expression.name.definition().references.length)) {\n var node = this.clone();\n node.expression.process_expression(false, compressor);\n return node;\n }\n return this;\n }\n\n var args = trim(this.args, compressor, first_in_statement);\n return args && make_sequence(this, args);\n});\n\ndef_drop_side_effect_free(AST_Accessor, return_null);\n\ndef_drop_side_effect_free(AST_Function, return_null);\n\ndef_drop_side_effect_free(AST_Arrow, return_null);\n\ndef_drop_side_effect_free(AST_Class, function (compressor) {\n const with_effects = [];\n const trimmed_extends = this.extends && this.extends.drop_side_effect_free(compressor);\n if (trimmed_extends)\n with_effects.push(trimmed_extends);\n\n for (const prop of this.properties) {\n if (prop instanceof AST_ClassStaticBlock) {\n if (prop.has_side_effects(compressor)) {\n return this; // Be cautious about these\n }\n } else {\n const trimmed_prop = prop.drop_side_effect_free(compressor);\n if (trimmed_prop) {\n if (trimmed_prop.contains_this()) return this;\n\n with_effects.push(trimmed_prop);\n }\n }\n }\n\n if (!with_effects.length)\n return null;\n\n const exprs = make_sequence(this, with_effects);\n if (this instanceof AST_DefClass) {\n // We want a statement\n return make_node(AST_SimpleStatement, this, { body: exprs });\n } else {\n return exprs;\n }\n});\n\ndef_drop_side_effect_free(AST_ClassProperty, function (compressor) {\n const key = this.computed_key() && this.key.drop_side_effect_free(compressor);\n\n const value = this.static && this.value\n && this.value.drop_side_effect_free(compressor);\n\n if (key && value)\n return make_sequence(this, [key, value]);\n return key || value || null;\n});\n\ndef_drop_side_effect_free(AST_Binary, function (compressor, first_in_statement) {\n var right = this.right.drop_side_effect_free(compressor);\n if (!right)\n return this.left.drop_side_effect_free(compressor, first_in_statement);\n if (lazy_op.has(this.operator)) {\n if (right === this.right)\n return this;\n var node = this.clone();\n node.right = right;\n return node;\n } else {\n var left = this.left.drop_side_effect_free(compressor, first_in_statement);\n if (!left)\n return this.right.drop_side_effect_free(compressor, first_in_statement);\n return make_sequence(this, [left, right]);\n }\n});\n\ndef_drop_side_effect_free(AST_Assign, function (compressor) {\n if (this.logical)\n return this;\n\n var left = this.left;\n if (left.has_side_effects(compressor)\n || compressor.has_directive(\"use strict\")\n && left instanceof AST_PropAccess\n && left.expression.is_constant()) {\n return this;\n }\n set_flag(this, WRITE_ONLY);\n while (left instanceof AST_PropAccess) {\n left = left.expression;\n }\n if (left.is_constant_expression(compressor.find_parent(AST_Scope))) {\n return this.right.drop_side_effect_free(compressor);\n }\n return this;\n});\n\ndef_drop_side_effect_free(AST_Conditional, function (compressor) {\n var consequent = this.consequent.drop_side_effect_free(compressor);\n var alternative = this.alternative.drop_side_effect_free(compressor);\n if (consequent === this.consequent && alternative === this.alternative)\n return this;\n if (!consequent)\n return alternative ? make_node(AST_Binary, this, {\n operator: \"||\",\n left: this.condition,\n right: alternative\n }) : this.condition.drop_side_effect_free(compressor);\n if (!alternative)\n return make_node(AST_Binary, this, {\n operator: \"&&\",\n left: this.condition,\n right: consequent\n });\n var node = this.clone();\n node.consequent = consequent;\n node.alternative = alternative;\n return node;\n});\n\ndef_drop_side_effect_free(AST_Unary, function (compressor, first_in_statement) {\n if (unary_side_effects.has(this.operator)) {\n if (!this.expression.has_side_effects(compressor)) {\n set_flag(this, WRITE_ONLY);\n } else {\n clear_flag(this, WRITE_ONLY);\n }\n return this;\n }\n if (this.operator == \"typeof\" && this.expression instanceof AST_SymbolRef)\n return null;\n var expression = this.expression.drop_side_effect_free(compressor, first_in_statement);\n if (first_in_statement && expression && is_iife_call(expression)) {\n if (expression === this.expression && this.operator == \"!\")\n return this;\n return expression.negate(compressor, first_in_statement);\n }\n return expression;\n});\n\ndef_drop_side_effect_free(AST_SymbolRef, function (compressor) {\n const safe_access = this.is_declared(compressor)\n || pure_prop_access_globals.has(this.name);\n return safe_access ? null : this;\n});\n\ndef_drop_side_effect_free(AST_Object, function (compressor, first_in_statement) {\n var values = trim(this.properties, compressor, first_in_statement);\n return values && make_sequence(this, values);\n});\n\ndef_drop_side_effect_free(AST_ObjectProperty, function (compressor, first_in_statement) {\n const computed_key = this instanceof AST_ObjectKeyVal && this.key instanceof AST_Node;\n const key = computed_key && this.key.drop_side_effect_free(compressor, first_in_statement);\n const value = this.value && this.value.drop_side_effect_free(compressor, first_in_statement);\n if (key && value) {\n return make_sequence(this, [key, value]);\n }\n return key || value;\n});\n\ndef_drop_side_effect_free(AST_ConciseMethod, function () {\n return this.computed_key() ? this.key : null;\n});\n\ndef_drop_side_effect_free(AST_ObjectGetter, function () {\n return this.computed_key() ? this.key : null;\n});\n\ndef_drop_side_effect_free(AST_ObjectSetter, function () {\n return this.computed_key() ? this.key : null;\n});\n\ndef_drop_side_effect_free(AST_Array, function (compressor, first_in_statement) {\n var values = trim(this.elements, compressor, first_in_statement);\n return values && make_sequence(this, values);\n});\n\ndef_drop_side_effect_free(AST_Dot, function (compressor, first_in_statement) {\n if (is_nullish_shortcircuited(this, compressor)) {\n return this.expression.drop_side_effect_free(compressor, first_in_statement);\n }\n if (!this.optional && this.expression.may_throw_on_access(compressor)) {\n return this;\n }\n\n return this.expression.drop_side_effect_free(compressor, first_in_statement);\n});\n\ndef_drop_side_effect_free(AST_Sub, function (compressor, first_in_statement) {\n if (is_nullish_shortcircuited(this, compressor)) {\n return this.expression.drop_side_effect_free(compressor, first_in_statement);\n }\n if (!this.optional && this.expression.may_throw_on_access(compressor)) {\n return this;\n }\n\n var property = this.property.drop_side_effect_free(compressor);\n if (property && this.optional) return this;\n\n var expression = this.expression.drop_side_effect_free(compressor, first_in_statement);\n\n if (expression && property) return make_sequence(this, [expression, property]);\n return expression || property;\n});\n\ndef_drop_side_effect_free(AST_Chain, function (compressor, first_in_statement) {\n return this.expression.drop_side_effect_free(compressor, first_in_statement);\n});\n\ndef_drop_side_effect_free(AST_Sequence, function (compressor) {\n var last = this.tail_node();\n var expr = last.drop_side_effect_free(compressor);\n if (expr === last)\n return this;\n var expressions = this.expressions.slice(0, -1);\n if (expr)\n expressions.push(expr);\n if (!expressions.length) {\n return make_node(AST_Number, this, { value: 0 });\n }\n return make_sequence(this, expressions);\n});\n\ndef_drop_side_effect_free(AST_Expansion, function (compressor, first_in_statement) {\n return this.expression.drop_side_effect_free(compressor, first_in_statement);\n});\n\ndef_drop_side_effect_free(AST_TemplateSegment, return_null);\n\ndef_drop_side_effect_free(AST_TemplateString, function (compressor) {\n var values = trim(this.segments, compressor, first_in_statement);\n return values && make_sequence(this, values);\n});\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n AST_Accessor,\n AST_Assign,\n AST_BlockStatement,\n AST_Class,\n AST_ClassExpression,\n AST_ClassStaticBlock,\n AST_DefaultAssign,\n AST_DefClass,\n AST_Definitions,\n AST_Defun,\n AST_Destructuring,\n AST_EmptyStatement,\n AST_Expansion,\n AST_Export,\n AST_For,\n AST_ForIn,\n AST_Function,\n AST_LabeledStatement,\n AST_Lambda,\n AST_Number,\n AST_Scope,\n AST_SimpleStatement,\n AST_SymbolBlockDeclaration,\n AST_SymbolCatch,\n AST_SymbolDeclaration,\n AST_SymbolFunarg,\n AST_SymbolRef,\n AST_SymbolVar,\n AST_Toplevel,\n AST_Unary,\n AST_Var,\n\n TreeTransformer,\n TreeWalker,\n walk,\n} from \"../ast.js\";\nimport {\n keep_name,\n make_node,\n map_add,\n MAP,\n remove,\n return_false,\n} from \"../utils/index.js\";\nimport { SymbolDef } from \"../scope.js\";\n\nimport {\n WRITE_ONLY,\n UNUSED,\n\n has_flag,\n set_flag,\n} from \"./compressor-flags.js\";\nimport {\n make_sequence,\n maintain_this_binding,\n is_empty,\n is_ref_of,\n can_be_evicted_from_block,\n} from \"./common.js\";\n\nconst r_keep_assign = /keep_assign/;\n\n/** Drop unused variables from this scope */\nAST_Scope.DEFMETHOD(\"drop_unused\", function(compressor) {\n if (!compressor.option(\"unused\")) return;\n if (compressor.has_directive(\"use asm\")) return;\n if (!this.variables) return; // not really a scope (eg: AST_Class)\n\n var self = this;\n if (self.pinned()) return;\n var drop_funcs = !(self instanceof AST_Toplevel) || compressor.toplevel.funcs;\n var drop_vars = !(self instanceof AST_Toplevel) || compressor.toplevel.vars;\n const assign_as_unused = r_keep_assign.test(compressor.option(\"unused\")) ? return_false : function(node) {\n if (node instanceof AST_Assign\n && !node.logical\n && (has_flag(node, WRITE_ONLY) || node.operator == \"=\")\n ) {\n return node.left;\n }\n if (node instanceof AST_Unary && has_flag(node, WRITE_ONLY)) {\n return node.expression;\n }\n };\n var in_use_ids = new Map();\n var fixed_ids = new Map();\n if (self instanceof AST_Toplevel && compressor.top_retain) {\n self.variables.forEach(function(def) {\n if (compressor.top_retain(def)) {\n in_use_ids.set(def.id, def);\n }\n });\n }\n var var_defs_by_id = new Map();\n var initializations = new Map();\n // pass 1: find out which symbols are directly used in\n // this scope (not in nested scopes).\n var scope = this;\n var tw = new TreeWalker(function(node, descend) {\n if (node instanceof AST_Lambda && node.uses_arguments && !tw.has_directive(\"use strict\")) {\n node.argnames.forEach(function(argname) {\n if (!(argname instanceof AST_SymbolDeclaration)) return;\n var def = argname.definition();\n in_use_ids.set(def.id, def);\n });\n }\n if (node === self) return;\n if (node instanceof AST_Class) {\n if (node.has_side_effects(compressor)) {\n node.visit_nondeferred_class_parts(tw);\n }\n }\n if (node instanceof AST_Defun || node instanceof AST_DefClass) {\n var node_def = node.name.definition();\n const in_export = tw.parent() instanceof AST_Export;\n if (in_export || !drop_funcs && scope === self) {\n if (node_def.global) {\n in_use_ids.set(node_def.id, node_def);\n }\n }\n\n map_add(initializations, node_def.id, node);\n return true; // don't go in nested scopes\n }\n // In the root scope, we drop things. In inner scopes, we just check for uses.\n const in_root_scope = scope === self;\n if (node instanceof AST_SymbolFunarg && in_root_scope) {\n map_add(var_defs_by_id, node.definition().id, node);\n }\n if (node instanceof AST_Definitions && in_root_scope) {\n const in_export = tw.parent() instanceof AST_Export;\n node.definitions.forEach(function(def) {\n if (def.name instanceof AST_SymbolVar) {\n map_add(var_defs_by_id, def.name.definition().id, def);\n }\n if (in_export || !drop_vars) {\n walk(def.name, node => {\n if (node instanceof AST_SymbolDeclaration) {\n const def = node.definition();\n if (def.global) {\n in_use_ids.set(def.id, def);\n }\n }\n });\n }\n if (def.name instanceof AST_Destructuring) {\n def.walk(tw);\n }\n if (def.name instanceof AST_SymbolDeclaration && def.value) {\n var node_def = def.name.definition();\n map_add(initializations, node_def.id, def.value);\n if (!node_def.chained && def.name.fixed_value() === def.value) {\n fixed_ids.set(node_def.id, def);\n }\n if (def.value.has_side_effects(compressor)) {\n def.value.walk(tw);\n }\n }\n });\n return true;\n }\n return scan_ref_scoped(node, descend);\n });\n self.walk(tw);\n // pass 2: for every used symbol we need to walk its\n // initialization code to figure out if it uses other\n // symbols (that may not be in_use).\n tw = new TreeWalker(scan_ref_scoped);\n in_use_ids.forEach(function (def) {\n var init = initializations.get(def.id);\n if (init) init.forEach(function(init) {\n init.walk(tw);\n });\n });\n // pass 3: we should drop declarations not in_use\n var tt = new TreeTransformer(\n function before(node, descend, in_list) {\n var parent = tt.parent();\n if (drop_vars) {\n const sym = assign_as_unused(node);\n if (sym instanceof AST_SymbolRef) {\n var def = sym.definition();\n var in_use = in_use_ids.has(def.id);\n if (node instanceof AST_Assign) {\n if (!in_use || fixed_ids.has(def.id) && fixed_ids.get(def.id) !== node) {\n return maintain_this_binding(parent, node, node.right.transform(tt));\n }\n } else if (!in_use) {\n return in_list ? MAP.skip : make_node(AST_Number, node, { value: 0 });\n }\n }\n }\n if (scope !== self) return;\n var def;\n if (node.name\n && (node instanceof AST_ClassExpression\n && !keep_name(compressor.option(\"keep_classnames\"), (def = node.name.definition()).name)\n || node instanceof AST_Function\n && !keep_name(compressor.option(\"keep_fnames\"), (def = node.name.definition()).name))) {\n // any declarations with same name will overshadow\n // name of this anonymous function and can therefore\n // never be used anywhere\n if (!in_use_ids.has(def.id) || def.orig.length > 1) node.name = null;\n }\n if (node instanceof AST_Lambda && !(node instanceof AST_Accessor)) {\n var trim = !compressor.option(\"keep_fargs\");\n for (var a = node.argnames, i = a.length; --i >= 0;) {\n var sym = a[i];\n if (sym instanceof AST_Expansion) {\n sym = sym.expression;\n }\n if (sym instanceof AST_DefaultAssign) {\n sym = sym.left;\n }\n // Do not drop destructuring arguments.\n // They constitute a type assertion of sorts\n if (\n !(sym instanceof AST_Destructuring)\n && !in_use_ids.has(sym.definition().id)\n ) {\n set_flag(sym, UNUSED);\n if (trim) {\n a.pop();\n }\n } else {\n trim = false;\n }\n }\n }\n if (node instanceof AST_DefClass && node !== self) {\n const def = node.name.definition();\n descend(node, this);\n const keep_class = def.global && !drop_funcs || in_use_ids.has(def.id);\n if (!keep_class) {\n const kept = node.drop_side_effect_free(compressor);\n if (kept == null) {\n def.eliminated++;\n return in_list ? MAP.skip : make_node(AST_EmptyStatement, node);\n }\n return kept;\n }\n return node;\n }\n if (node instanceof AST_Defun && node !== self) {\n const def = node.name.definition();\n const keep = def.global && !drop_funcs || in_use_ids.has(def.id);\n if (!keep) {\n def.eliminated++;\n return in_list ? MAP.skip : make_node(AST_EmptyStatement, node);\n }\n }\n if (node instanceof AST_Definitions && !(parent instanceof AST_ForIn && parent.init === node)) {\n var drop_block = !(parent instanceof AST_Toplevel) && !(node instanceof AST_Var);\n // place uninitialized names at the start\n var body = [], head = [], tail = [];\n // for unused names whose initialization has\n // side effects, we can cascade the init. code\n // into the next one, or next statement.\n var side_effects = [];\n node.definitions.forEach(function(def) {\n if (def.value) def.value = def.value.transform(tt);\n var is_destructure = def.name instanceof AST_Destructuring;\n var sym = is_destructure\n ? new SymbolDef(null, { name: \"\" }) /* fake SymbolDef */\n : def.name.definition();\n if (drop_block && sym.global) return tail.push(def);\n if (!(drop_vars || drop_block)\n || is_destructure\n && (def.name.names.length\n || def.name.is_array\n || compressor.option(\"pure_getters\") != true)\n || in_use_ids.has(sym.id)\n ) {\n if (def.value && fixed_ids.has(sym.id) && fixed_ids.get(sym.id) !== def) {\n def.value = def.value.drop_side_effect_free(compressor);\n }\n if (def.name instanceof AST_SymbolVar) {\n var var_defs = var_defs_by_id.get(sym.id);\n if (var_defs.length > 1 && (!def.value || sym.orig.indexOf(def.name) > sym.eliminated)) {\n if (def.value) {\n var ref = make_node(AST_SymbolRef, def.name, def.name);\n sym.references.push(ref);\n var assign = make_node(AST_Assign, def, {\n operator: \"=\",\n logical: false,\n left: ref,\n right: def.value\n });\n if (fixed_ids.get(sym.id) === def) {\n fixed_ids.set(sym.id, assign);\n }\n side_effects.push(assign.transform(tt));\n }\n remove(var_defs, def);\n sym.eliminated++;\n return;\n }\n }\n if (def.value) {\n if (side_effects.length > 0) {\n if (tail.length > 0) {\n side_effects.push(def.value);\n def.value = make_sequence(def.value, side_effects);\n } else {\n body.push(make_node(AST_SimpleStatement, node, {\n body: make_sequence(node, side_effects)\n }));\n }\n side_effects = [];\n }\n tail.push(def);\n } else {\n head.push(def);\n }\n } else if (sym.orig[0] instanceof AST_SymbolCatch) {\n var value = def.value && def.value.drop_side_effect_free(compressor);\n if (value) side_effects.push(value);\n def.value = null;\n head.push(def);\n } else {\n var value = def.value && def.value.drop_side_effect_free(compressor);\n if (value) {\n side_effects.push(value);\n }\n sym.eliminated++;\n }\n });\n if (head.length > 0 || tail.length > 0) {\n node.definitions = head.concat(tail);\n body.push(node);\n }\n if (side_effects.length > 0) {\n body.push(make_node(AST_SimpleStatement, node, {\n body: make_sequence(node, side_effects)\n }));\n }\n switch (body.length) {\n case 0:\n return in_list ? MAP.skip : make_node(AST_EmptyStatement, node);\n case 1:\n return body[0];\n default:\n return in_list ? MAP.splice(body) : make_node(AST_BlockStatement, node, { body });\n }\n }\n // certain combination of unused name + side effect leads to:\n // https://github.com/mishoo/UglifyJS2/issues/44\n // https://github.com/mishoo/UglifyJS2/issues/1830\n // https://github.com/mishoo/UglifyJS2/issues/1838\n // that's an invalid AST.\n // We fix it at this stage by moving the `var` outside the `for`.\n if (node instanceof AST_For) {\n descend(node, this);\n var block;\n if (node.init instanceof AST_BlockStatement) {\n block = node.init;\n node.init = block.body.pop();\n block.body.push(node);\n }\n if (node.init instanceof AST_SimpleStatement) {\n node.init = node.init.body;\n } else if (is_empty(node.init)) {\n node.init = null;\n }\n return !block ? node : in_list ? MAP.splice(block.body) : block;\n }\n if (node instanceof AST_LabeledStatement\n && node.body instanceof AST_For\n ) {\n descend(node, this);\n if (node.body instanceof AST_BlockStatement) {\n var block = node.body;\n node.body = block.body.pop();\n block.body.push(node);\n return in_list ? MAP.splice(block.body) : block;\n }\n return node;\n }\n if (node instanceof AST_BlockStatement) {\n descend(node, this);\n if (in_list && node.body.every(can_be_evicted_from_block)) {\n return MAP.splice(node.body);\n }\n return node;\n }\n if (node instanceof AST_Scope && !(node instanceof AST_ClassStaticBlock)) {\n const save_scope = scope;\n scope = node;\n descend(node, this);\n scope = save_scope;\n return node;\n }\n }\n );\n\n self.transform(tt);\n\n function scan_ref_scoped(node, descend) {\n var node_def;\n const sym = assign_as_unused(node);\n if (sym instanceof AST_SymbolRef\n && !is_ref_of(node.left, AST_SymbolBlockDeclaration)\n && self.variables.get(sym.name) === (node_def = sym.definition())\n ) {\n if (node instanceof AST_Assign) {\n node.right.walk(tw);\n if (!node_def.chained && node.left.fixed_value() === node.right) {\n fixed_ids.set(node_def.id, node);\n }\n }\n return true;\n }\n if (node instanceof AST_SymbolRef) {\n node_def = node.definition();\n if (!in_use_ids.has(node_def.id)) {\n in_use_ids.set(node_def.id, node_def);\n if (node_def.orig[0] instanceof AST_SymbolCatch) {\n const redef = node_def.scope.is_block_scope()\n && node_def.scope.get_defun_scope().variables.get(node_def.name);\n if (redef) in_use_ids.set(redef.id, redef);\n }\n }\n return true;\n }\n if (node instanceof AST_Class) {\n descend();\n return true;\n }\n if (node instanceof AST_Scope && !(node instanceof AST_ClassStaticBlock)) {\n var save_scope = scope;\n scope = node;\n descend();\n scope = save_scope;\n return true;\n }\n }\n});\n\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n AST_Accessor,\n AST_Array,\n AST_Assign,\n AST_Await,\n AST_Binary,\n AST_Block,\n AST_Call,\n AST_Case,\n AST_Chain,\n AST_Class,\n AST_ClassStaticBlock,\n AST_ClassExpression,\n AST_Conditional,\n AST_Default,\n AST_Defun,\n AST_Destructuring,\n AST_Do,\n AST_Exit,\n AST_Expansion,\n AST_For,\n AST_ForIn,\n AST_If,\n AST_LabeledStatement,\n AST_Lambda,\n AST_New,\n AST_Node,\n AST_Number,\n AST_ObjectKeyVal,\n AST_PropAccess,\n AST_Scope,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Symbol,\n AST_SymbolCatch,\n AST_SymbolConst,\n AST_SymbolDeclaration,\n AST_SymbolDefun,\n AST_SymbolFunarg,\n AST_SymbolLambda,\n AST_SymbolRef,\n AST_This,\n AST_Toplevel,\n AST_Try,\n AST_Unary,\n AST_UnaryPrefix,\n AST_Undefined,\n AST_VarDef,\n AST_While,\n AST_Yield,\n\n walk,\n walk_body,\n\n TreeWalker,\n} from \"../ast.js\";\nimport { HOP, make_node, noop } from \"../utils/index.js\";\n\nimport { lazy_op, is_modified, is_lhs } from \"./inference.js\";\nimport { INLINED, clear_flag } from \"./compressor-flags.js\";\nimport { read_property, has_break_or_continue, is_recursive_ref } from \"./common.js\";\n\n/**\n * Define the method AST_Node#reduce_vars, which goes through the AST in\n * execution order to perform basic flow analysis\n */\nfunction def_reduce_vars(node, func) {\n node.DEFMETHOD(\"reduce_vars\", func);\n}\n\ndef_reduce_vars(AST_Node, noop);\n\n/** Clear definition properties */\nfunction reset_def(compressor, def) {\n def.assignments = 0;\n def.chained = false;\n def.direct_access = false;\n def.escaped = 0;\n def.recursive_refs = 0;\n def.references = [];\n def.single_use = undefined;\n if (\n def.scope.pinned()\n || (def.orig[0] instanceof AST_SymbolFunarg && def.scope.uses_arguments)\n ) {\n def.fixed = false;\n } else if (def.orig[0] instanceof AST_SymbolConst || !compressor.exposed(def)) {\n def.fixed = def.init;\n } else {\n def.fixed = false;\n }\n}\n\nfunction reset_variables(tw, compressor, node) {\n node.variables.forEach(function(def) {\n reset_def(compressor, def);\n if (def.fixed === null) {\n tw.defs_to_safe_ids.set(def.id, tw.safe_ids);\n mark(tw, def, true);\n } else if (def.fixed) {\n tw.loop_ids.set(def.id, tw.in_loop);\n mark(tw, def, true);\n }\n });\n}\n\nfunction reset_block_variables(compressor, node) {\n if (node.block_scope) node.block_scope.variables.forEach((def) => {\n reset_def(compressor, def);\n });\n}\n\nfunction push(tw) {\n tw.safe_ids = Object.create(tw.safe_ids);\n}\n\nfunction pop(tw) {\n tw.safe_ids = Object.getPrototypeOf(tw.safe_ids);\n}\n\nfunction mark(tw, def, safe) {\n tw.safe_ids[def.id] = safe;\n}\n\nfunction safe_to_read(tw, def) {\n if (def.single_use == \"m\") return false;\n if (tw.safe_ids[def.id]) {\n if (def.fixed == null) {\n var orig = def.orig[0];\n if (orig instanceof AST_SymbolFunarg || orig.name == \"arguments\") return false;\n def.fixed = make_node(AST_Undefined, orig);\n }\n return true;\n }\n return def.fixed instanceof AST_Defun;\n}\n\nfunction safe_to_assign(tw, def, scope, value) {\n if (def.fixed === undefined) return true;\n let def_safe_ids;\n if (def.fixed === null\n && (def_safe_ids = tw.defs_to_safe_ids.get(def.id))\n ) {\n def_safe_ids[def.id] = false;\n tw.defs_to_safe_ids.delete(def.id);\n return true;\n }\n if (!HOP(tw.safe_ids, def.id)) return false;\n if (!safe_to_read(tw, def)) return false;\n if (def.fixed === false) return false;\n if (def.fixed != null && (!value || def.references.length > def.assignments)) return false;\n if (def.fixed instanceof AST_Defun) {\n return value instanceof AST_Node && def.fixed.parent_scope === scope;\n }\n return def.orig.every((sym) => {\n return !(sym instanceof AST_SymbolConst\n || sym instanceof AST_SymbolDefun\n || sym instanceof AST_SymbolLambda);\n });\n}\n\nfunction ref_once(tw, compressor, def) {\n return compressor.option(\"unused\")\n && !def.scope.pinned()\n && def.references.length - def.recursive_refs == 1\n && tw.loop_ids.get(def.id) === tw.in_loop;\n}\n\nfunction is_immutable(value) {\n if (!value) return false;\n return value.is_constant()\n || value instanceof AST_Lambda\n || value instanceof AST_This;\n}\n\n// A definition \"escapes\" when its value can leave the point of use.\n// Example: `a = b || c`\n// In this example, \"b\" and \"c\" are escaping, because they're going into \"a\"\n//\n// def.escaped is != 0 when it escapes.\n//\n// When greater than 1, it means that N chained properties will be read off\n// of that def before an escape occurs. This is useful for evaluating\n// property accesses, where you need to know when to stop.\nfunction mark_escaped(tw, d, scope, node, value, level = 0, depth = 1) {\n var parent = tw.parent(level);\n if (value) {\n if (value.is_constant()) return;\n if (value instanceof AST_ClassExpression) return;\n }\n\n if (\n parent instanceof AST_Assign && (parent.operator === \"=\" || parent.logical) && node === parent.right\n || parent instanceof AST_Call && (node !== parent.expression || parent instanceof AST_New)\n || parent instanceof AST_Exit && node === parent.value && node.scope !== d.scope\n || parent instanceof AST_VarDef && node === parent.value\n || parent instanceof AST_Yield && node === parent.value && node.scope !== d.scope\n ) {\n if (depth > 1 && !(value && value.is_constant_expression(scope))) depth = 1;\n if (!d.escaped || d.escaped > depth) d.escaped = depth;\n return;\n } else if (\n parent instanceof AST_Array\n || parent instanceof AST_Await\n || parent instanceof AST_Binary && lazy_op.has(parent.operator)\n || parent instanceof AST_Conditional && node !== parent.condition\n || parent instanceof AST_Expansion\n || parent instanceof AST_Sequence && node === parent.tail_node()\n ) {\n mark_escaped(tw, d, scope, parent, parent, level + 1, depth);\n } else if (parent instanceof AST_ObjectKeyVal && node === parent.value) {\n var obj = tw.parent(level + 1);\n\n mark_escaped(tw, d, scope, obj, obj, level + 2, depth);\n } else if (parent instanceof AST_PropAccess && node === parent.expression) {\n value = read_property(value, parent.property);\n\n mark_escaped(tw, d, scope, parent, value, level + 1, depth + 1);\n if (value) return;\n }\n\n if (level > 0) return;\n if (parent instanceof AST_Sequence && node !== parent.tail_node()) return;\n if (parent instanceof AST_SimpleStatement) return;\n\n d.direct_access = true;\n}\n\nconst suppress = node => walk(node, node => {\n if (!(node instanceof AST_Symbol)) return;\n var d = node.definition();\n if (!d) return;\n if (node instanceof AST_SymbolRef) d.references.push(node);\n d.fixed = false;\n});\n\ndef_reduce_vars(AST_Accessor, function(tw, descend, compressor) {\n push(tw);\n reset_variables(tw, compressor, this);\n descend();\n pop(tw);\n return true;\n});\n\ndef_reduce_vars(AST_Assign, function(tw, descend, compressor) {\n var node = this;\n if (node.left instanceof AST_Destructuring) {\n suppress(node.left);\n return;\n }\n\n const finish_walk = () => {\n if (node.logical) {\n node.left.walk(tw);\n\n push(tw);\n node.right.walk(tw);\n pop(tw);\n\n return true;\n }\n };\n\n var sym = node.left;\n if (!(sym instanceof AST_SymbolRef)) return finish_walk();\n\n var def = sym.definition();\n var safe = safe_to_assign(tw, def, sym.scope, node.right);\n def.assignments++;\n if (!safe) return finish_walk();\n\n var fixed = def.fixed;\n if (!fixed && node.operator != \"=\" && !node.logical) return finish_walk();\n\n var eq = node.operator == \"=\";\n var value = eq ? node.right : node;\n if (is_modified(compressor, tw, node, value, 0)) return finish_walk();\n\n def.references.push(sym);\n\n if (!node.logical) {\n if (!eq) def.chained = true;\n\n def.fixed = eq ? function() {\n return node.right;\n } : function() {\n return make_node(AST_Binary, node, {\n operator: node.operator.slice(0, -1),\n left: fixed instanceof AST_Node ? fixed : fixed(),\n right: node.right\n });\n };\n }\n\n if (node.logical) {\n mark(tw, def, false);\n push(tw);\n node.right.walk(tw);\n pop(tw);\n return true;\n }\n\n mark(tw, def, false);\n node.right.walk(tw);\n mark(tw, def, true);\n\n mark_escaped(tw, def, sym.scope, node, value, 0, 1);\n\n return true;\n});\n\ndef_reduce_vars(AST_Binary, function(tw) {\n if (!lazy_op.has(this.operator)) return;\n this.left.walk(tw);\n push(tw);\n this.right.walk(tw);\n pop(tw);\n return true;\n});\n\ndef_reduce_vars(AST_Block, function(tw, descend, compressor) {\n reset_block_variables(compressor, this);\n});\n\ndef_reduce_vars(AST_Case, function(tw) {\n push(tw);\n this.expression.walk(tw);\n pop(tw);\n push(tw);\n walk_body(this, tw);\n pop(tw);\n return true;\n});\n\ndef_reduce_vars(AST_Class, function(tw, descend) {\n clear_flag(this, INLINED);\n push(tw);\n descend();\n pop(tw);\n return true;\n});\n\ndef_reduce_vars(AST_ClassStaticBlock, function(tw, descend, compressor) {\n reset_block_variables(compressor, this);\n});\n\ndef_reduce_vars(AST_Conditional, function(tw) {\n this.condition.walk(tw);\n push(tw);\n this.consequent.walk(tw);\n pop(tw);\n push(tw);\n this.alternative.walk(tw);\n pop(tw);\n return true;\n});\n\ndef_reduce_vars(AST_Chain, function(tw, descend) {\n // Chains' conditions apply left-to-right, cumulatively.\n // If we walk normally we don't go in that order because we would pop before pushing again\n // Solution: AST_PropAccess and AST_Call push when they are optional, and never pop.\n // Then we pop everything when they are done being walked.\n const safe_ids = tw.safe_ids;\n\n descend();\n\n // Unroll back to start\n tw.safe_ids = safe_ids;\n return true;\n});\n\ndef_reduce_vars(AST_Call, function (tw) {\n this.expression.walk(tw);\n\n if (this.optional) {\n // Never pop -- it's popped at AST_Chain above\n push(tw);\n }\n\n for (const arg of this.args) arg.walk(tw);\n\n return true;\n});\n\ndef_reduce_vars(AST_PropAccess, function (tw) {\n if (!this.optional) return;\n\n this.expression.walk(tw);\n\n // Never pop -- it's popped at AST_Chain above\n push(tw);\n\n if (this.property instanceof AST_Node) this.property.walk(tw);\n\n return true;\n});\n\ndef_reduce_vars(AST_Default, function(tw, descend) {\n push(tw);\n descend();\n pop(tw);\n return true;\n});\n\nfunction mark_lambda(tw, descend, compressor) {\n clear_flag(this, INLINED);\n push(tw);\n reset_variables(tw, compressor, this);\n\n var iife;\n if (!this.name\n && !this.uses_arguments\n && !this.pinned()\n && (iife = tw.parent()) instanceof AST_Call\n && iife.expression === this\n && !iife.args.some(arg => arg instanceof AST_Expansion)\n && this.argnames.every(arg_name => arg_name instanceof AST_Symbol)\n ) {\n // Virtually turn IIFE parameters into variable definitions:\n // (function(a,b) {...})(c,d) => (function() {var a=c,b=d; ...})()\n // So existing transformation rules can work on them.\n this.argnames.forEach((arg, i) => {\n if (!arg.definition) return;\n var d = arg.definition();\n // Avoid setting fixed when there's more than one origin for a variable value\n if (d.orig.length > 1) return;\n if (d.fixed === undefined && (!this.uses_arguments || tw.has_directive(\"use strict\"))) {\n d.fixed = function() {\n return iife.args[i] || make_node(AST_Undefined, iife);\n };\n tw.loop_ids.set(d.id, tw.in_loop);\n mark(tw, d, true);\n } else {\n d.fixed = false;\n }\n });\n }\n\n descend();\n pop(tw);\n\n handle_defined_after_hoist(this);\n\n return true;\n}\n\n/**\n * It's possible for a hoisted function to use something that's not defined yet. Example:\n *\n * hoisted();\n * var defined_after = true;\n * function hoisted() {\n * // use defined_after\n * }\n *\n * This function is called on the parent to handle this issue.\n */\nfunction handle_defined_after_hoist(parent) {\n const defuns = [];\n walk(parent, node => {\n if (node === parent) return;\n if (node instanceof AST_Defun) defuns.push(node);\n if (\n node instanceof AST_Scope\n || node instanceof AST_SimpleStatement\n ) return true;\n });\n\n const symbols_of_interest = new Set();\n const defuns_of_interest = new Set();\n const potential_conflicts = [];\n\n for (const defun of defuns) {\n const fname_def = defun.name.definition();\n const found_self_ref_in_other_defuns = defuns.some(\n d => d !== defun && d.enclosed.indexOf(fname_def) !== -1\n );\n\n for (const def of defun.enclosed) {\n if (\n def.fixed === false\n || def === fname_def\n || def.scope.get_defun_scope() !== parent\n ) {\n continue;\n }\n\n // defun is hoisted, so always safe\n if (\n def.assignments === 0\n && def.orig.length === 1\n && def.orig[0] instanceof AST_SymbolDefun\n ) {\n continue;\n }\n\n if (found_self_ref_in_other_defuns) {\n def.fixed = false;\n continue;\n }\n\n // for the slower checks below this loop\n potential_conflicts.push({ defun, def, fname_def });\n symbols_of_interest.add(def.id);\n symbols_of_interest.add(fname_def.id);\n defuns_of_interest.add(defun);\n }\n }\n\n // linearize all symbols, and locate defs that are read after the defun\n if (potential_conflicts.length) {\n // All \"symbols of interest\", that is, defuns or defs, that we found.\n // These are placed in order so we can check which is after which.\n const found_symbols = [];\n // Indices of `found_symbols` which are writes\n const found_symbol_writes = new Set();\n // Defun ranges are recorded because we don't care if a function uses the def internally\n const defun_ranges = new Map();\n\n let tw;\n parent.walk((tw = new TreeWalker((node, descend) => {\n if (node instanceof AST_Defun && defuns_of_interest.has(node)) {\n const start = found_symbols.length;\n descend();\n const end = found_symbols.length;\n\n defun_ranges.set(node, { start, end });\n return true;\n }\n // if we found a defun on the list, mark IN_DEFUN=id and descend\n\n if (node instanceof AST_Symbol && node.thedef) {\n const id = node.definition().id;\n if (symbols_of_interest.has(id)) {\n if (node instanceof AST_SymbolDeclaration || is_lhs(node, tw)) {\n found_symbol_writes.add(found_symbols.length);\n }\n found_symbols.push(id);\n }\n }\n })));\n\n for (const { def, defun, fname_def } of potential_conflicts) {\n const defun_range = defun_ranges.get(defun);\n\n // find the index in `found_symbols`, with some special rules:\n const find = (sym_id, starting_at = 0, must_be_write = false) => {\n let index = starting_at;\n\n for (;;) {\n index = found_symbols.indexOf(sym_id, index);\n\n if (index === -1) {\n break;\n } else if (index >= defun_range.start && index < defun_range.end) {\n index = defun_range.end;\n continue;\n } else if (must_be_write && !found_symbol_writes.has(index)) {\n index++;\n continue;\n } else {\n break;\n }\n }\n\n return index;\n };\n\n const read_defun_at = find(fname_def.id);\n const wrote_def_at = find(def.id, read_defun_at + 1, true);\n\n const wrote_def_after_reading_defun = read_defun_at != -1 && wrote_def_at != -1 && wrote_def_at > read_defun_at;\n\n if (wrote_def_after_reading_defun) {\n def.fixed = false;\n }\n }\n }\n}\n\ndef_reduce_vars(AST_Lambda, mark_lambda);\n\ndef_reduce_vars(AST_Do, function(tw, descend, compressor) {\n reset_block_variables(compressor, this);\n const saved_loop = tw.in_loop;\n tw.in_loop = this;\n push(tw);\n this.body.walk(tw);\n if (has_break_or_continue(this)) {\n pop(tw);\n push(tw);\n }\n this.condition.walk(tw);\n pop(tw);\n tw.in_loop = saved_loop;\n return true;\n});\n\ndef_reduce_vars(AST_For, function(tw, descend, compressor) {\n reset_block_variables(compressor, this);\n if (this.init) this.init.walk(tw);\n const saved_loop = tw.in_loop;\n tw.in_loop = this;\n push(tw);\n if (this.condition) this.condition.walk(tw);\n this.body.walk(tw);\n if (this.step) {\n if (has_break_or_continue(this)) {\n pop(tw);\n push(tw);\n }\n this.step.walk(tw);\n }\n pop(tw);\n tw.in_loop = saved_loop;\n return true;\n});\n\ndef_reduce_vars(AST_ForIn, function(tw, descend, compressor) {\n reset_block_variables(compressor, this);\n suppress(this.init);\n this.object.walk(tw);\n const saved_loop = tw.in_loop;\n tw.in_loop = this;\n push(tw);\n this.body.walk(tw);\n pop(tw);\n tw.in_loop = saved_loop;\n return true;\n});\n\ndef_reduce_vars(AST_If, function(tw) {\n this.condition.walk(tw);\n push(tw);\n this.body.walk(tw);\n pop(tw);\n if (this.alternative) {\n push(tw);\n this.alternative.walk(tw);\n pop(tw);\n }\n return true;\n});\n\ndef_reduce_vars(AST_LabeledStatement, function(tw) {\n push(tw);\n this.body.walk(tw);\n pop(tw);\n return true;\n});\n\ndef_reduce_vars(AST_SymbolCatch, function() {\n this.definition().fixed = false;\n});\n\ndef_reduce_vars(AST_SymbolRef, function(tw, descend, compressor) {\n var d = this.definition();\n d.references.push(this);\n if (d.references.length == 1\n && !d.fixed\n && d.orig[0] instanceof AST_SymbolDefun) {\n tw.loop_ids.set(d.id, tw.in_loop);\n }\n var fixed_value;\n if (d.fixed === undefined || !safe_to_read(tw, d)) {\n d.fixed = false;\n } else if (d.fixed) {\n fixed_value = this.fixed_value();\n if (\n fixed_value instanceof AST_Lambda\n && is_recursive_ref(tw, d)\n ) {\n d.recursive_refs++;\n } else if (fixed_value\n && !compressor.exposed(d)\n && ref_once(tw, compressor, d)\n ) {\n d.single_use =\n fixed_value instanceof AST_Lambda && !fixed_value.pinned()\n || fixed_value instanceof AST_Class\n || d.scope === this.scope && fixed_value.is_constant_expression();\n } else {\n d.single_use = false;\n }\n if (is_modified(compressor, tw, this, fixed_value, 0, is_immutable(fixed_value))) {\n if (d.single_use) {\n d.single_use = \"m\";\n } else {\n d.fixed = false;\n }\n }\n }\n mark_escaped(tw, d, this.scope, this, fixed_value, 0, 1);\n});\n\ndef_reduce_vars(AST_Toplevel, function(tw, descend, compressor) {\n this.globals.forEach(function(def) {\n reset_def(compressor, def);\n });\n reset_variables(tw, compressor, this);\n descend();\n handle_defined_after_hoist(this);\n return true;\n});\n\ndef_reduce_vars(AST_Try, function(tw, descend, compressor) {\n reset_block_variables(compressor, this);\n push(tw);\n this.body.walk(tw);\n pop(tw);\n if (this.bcatch) {\n push(tw);\n this.bcatch.walk(tw);\n pop(tw);\n }\n if (this.bfinally) this.bfinally.walk(tw);\n return true;\n});\n\ndef_reduce_vars(AST_Unary, function(tw) {\n var node = this;\n if (node.operator !== \"++\" && node.operator !== \"--\") return;\n var exp = node.expression;\n if (!(exp instanceof AST_SymbolRef)) return;\n var def = exp.definition();\n var safe = safe_to_assign(tw, def, exp.scope, true);\n def.assignments++;\n if (!safe) return;\n var fixed = def.fixed;\n if (!fixed) return;\n def.references.push(exp);\n def.chained = true;\n def.fixed = function() {\n return make_node(AST_Binary, node, {\n operator: node.operator.slice(0, -1),\n left: make_node(AST_UnaryPrefix, node, {\n operator: \"+\",\n expression: fixed instanceof AST_Node ? fixed : fixed()\n }),\n right: make_node(AST_Number, node, {\n value: 1\n })\n });\n };\n mark(tw, def, true);\n return true;\n});\n\ndef_reduce_vars(AST_VarDef, function(tw, descend) {\n var node = this;\n if (node.name instanceof AST_Destructuring) {\n suppress(node.name);\n return;\n }\n var d = node.name.definition();\n if (node.value) {\n if (safe_to_assign(tw, d, node.name.scope, node.value)) {\n d.fixed = function() {\n return node.value;\n };\n tw.loop_ids.set(d.id, tw.in_loop);\n mark(tw, d, false);\n descend();\n mark(tw, d, true);\n return true;\n } else {\n d.fixed = false;\n }\n }\n});\n\ndef_reduce_vars(AST_While, function(tw, descend, compressor) {\n reset_block_variables(compressor, this);\n const saved_loop = tw.in_loop;\n tw.in_loop = this;\n push(tw);\n descend();\n pop(tw);\n tw.in_loop = saved_loop;\n return true;\n});\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n AST_Array,\n AST_Arrow,\n AST_Assign,\n AST_Await,\n AST_Binary,\n AST_Block,\n AST_BlockStatement,\n AST_Break,\n AST_Call,\n AST_Case,\n AST_Chain,\n AST_Class,\n AST_Conditional,\n AST_Const,\n AST_Constant,\n AST_Continue,\n AST_Debugger,\n AST_Default,\n AST_Definitions,\n AST_Defun,\n AST_Destructuring,\n AST_Directive,\n AST_Dot,\n AST_DWLoop,\n AST_EmptyStatement,\n AST_Exit,\n AST_Expansion,\n AST_Export,\n AST_For,\n AST_ForIn,\n AST_If,\n AST_Import,\n AST_IterationStatement,\n AST_Lambda,\n AST_Let,\n AST_LoopControl,\n AST_Node,\n AST_Number,\n AST_Object,\n AST_ObjectKeyVal,\n AST_PropAccess,\n AST_RegExp,\n AST_Return,\n AST_Scope,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Sub,\n AST_Switch,\n AST_Symbol,\n AST_SymbolConst,\n AST_SymbolDeclaration,\n AST_SymbolDefun,\n AST_SymbolFunarg,\n AST_SymbolLambda,\n AST_SymbolLet,\n AST_SymbolRef,\n AST_SymbolVar,\n AST_This,\n AST_Try,\n AST_TryBlock,\n AST_Unary,\n AST_UnaryPostfix,\n AST_UnaryPrefix,\n AST_Undefined,\n AST_Var,\n AST_VarDef,\n AST_With,\n AST_Yield,\n\n TreeTransformer,\n TreeWalker,\n walk,\n walk_abort,\n\n _NOINLINE\n} from \"../ast.js\";\nimport {\n make_node,\n MAP,\n member,\n remove,\n has_annotation\n} from \"../utils/index.js\";\n\nimport { pure_prop_access_globals } from \"./native-objects.js\";\nimport {\n lazy_op,\n unary_side_effects,\n is_modified,\n is_lhs,\n aborts\n} from \"./inference.js\";\nimport { WRITE_ONLY, clear_flag } from \"./compressor-flags.js\";\nimport {\n make_sequence,\n merge_sequence,\n maintain_this_binding,\n is_func_expr,\n is_identifier_atom,\n is_ref_of,\n can_be_evicted_from_block,\n as_statement_array,\n} from \"./common.js\";\n\nfunction loop_body(x) {\n if (x instanceof AST_IterationStatement) {\n return x.body instanceof AST_BlockStatement ? x.body : x;\n }\n return x;\n}\n\nfunction is_lhs_read_only(lhs) {\n if (lhs instanceof AST_This) return true;\n if (lhs instanceof AST_SymbolRef) return lhs.definition().orig[0] instanceof AST_SymbolLambda;\n if (lhs instanceof AST_PropAccess) {\n lhs = lhs.expression;\n if (lhs instanceof AST_SymbolRef) {\n if (lhs.is_immutable()) return false;\n lhs = lhs.fixed_value();\n }\n if (!lhs) return true;\n if (lhs instanceof AST_RegExp) return false;\n if (lhs instanceof AST_Constant) return true;\n return is_lhs_read_only(lhs);\n }\n return false;\n}\n\n/** var a = 1 --> var a*/\nfunction remove_initializers(var_statement) {\n var decls = [];\n var_statement.definitions.forEach(function(def) {\n if (def.name instanceof AST_SymbolDeclaration) {\n def.value = null;\n decls.push(def);\n } else {\n def.declarations_as_names().forEach(name => {\n decls.push(make_node(AST_VarDef, def, {\n name,\n value: null\n }));\n });\n }\n });\n return decls.length ? make_node(AST_Var, var_statement, { definitions: decls }) : null;\n}\n\n/** Called on code which we know is unreachable, to keep elements that affect outside of it. */\nexport function trim_unreachable_code(compressor, stat, target) {\n walk(stat, node => {\n if (node instanceof AST_Var) {\n const no_initializers = remove_initializers(node);\n if (no_initializers) target.push(no_initializers);\n return true;\n }\n if (\n node instanceof AST_Defun\n && (node === stat || !compressor.has_directive(\"use strict\"))\n ) {\n target.push(node === stat ? node : make_node(AST_Var, node, {\n definitions: [\n make_node(AST_VarDef, node, {\n name: make_node(AST_SymbolVar, node.name, node.name),\n value: null\n })\n ]\n }));\n return true;\n }\n if (node instanceof AST_Export || node instanceof AST_Import) {\n target.push(node);\n return true;\n }\n if (node instanceof AST_Scope) {\n return true;\n }\n });\n}\n\n/** Tighten a bunch of statements together, and perform statement-level optimization. */\nexport function tighten_body(statements, compressor) {\n const nearest_scope = compressor.find_scope();\n const defun_scope = nearest_scope.get_defun_scope();\n const { in_loop, in_try } = find_loop_scope_try();\n\n var CHANGED, max_iter = 10;\n do {\n CHANGED = false;\n eliminate_spurious_blocks(statements);\n if (compressor.option(\"dead_code\")) {\n eliminate_dead_code(statements, compressor);\n }\n if (compressor.option(\"if_return\")) {\n handle_if_return(statements, compressor);\n }\n if (compressor.sequences_limit > 0) {\n sequencesize(statements, compressor);\n sequencesize_2(statements, compressor);\n }\n if (compressor.option(\"join_vars\")) {\n join_consecutive_vars(statements);\n }\n if (compressor.option(\"collapse_vars\")) {\n collapse(statements, compressor);\n }\n } while (CHANGED && max_iter-- > 0);\n\n function find_loop_scope_try() {\n var node = compressor.self(), level = 0, in_loop = false, in_try = false;\n do {\n if (node instanceof AST_IterationStatement) {\n in_loop = true;\n } else if (node instanceof AST_Scope) {\n break;\n } else if (node instanceof AST_TryBlock) {\n in_try = true;\n }\n } while (node = compressor.parent(level++));\n\n return { in_loop, in_try };\n }\n\n // Search from right to left for assignment-like expressions:\n // - `var a = x;`\n // - `a = x;`\n // - `++a`\n // For each candidate, scan from left to right for first usage, then try\n // to fold assignment into the site for compression.\n // Will not attempt to collapse assignments into or past code blocks\n // which are not sequentially executed, e.g. loops and conditionals.\n function collapse(statements, compressor) {\n if (nearest_scope.pinned() || defun_scope.pinned())\n return statements;\n var args;\n var candidates = [];\n var stat_index = statements.length;\n var scanner = new TreeTransformer(function (node) {\n if (abort)\n return node;\n // Skip nodes before `candidate` as quickly as possible\n if (!hit) {\n if (node !== hit_stack[hit_index])\n return node;\n hit_index++;\n if (hit_index < hit_stack.length)\n return handle_custom_scan_order(node);\n hit = true;\n stop_after = find_stop(node, 0);\n if (stop_after === node)\n abort = true;\n return node;\n }\n // Stop immediately if these node types are encountered\n var parent = scanner.parent();\n if (node instanceof AST_Assign\n && (node.logical || node.operator != \"=\" && lhs.equivalent_to(node.left))\n || node instanceof AST_Await\n || node instanceof AST_Call && lhs instanceof AST_PropAccess && lhs.equivalent_to(node.expression)\n ||\n (node instanceof AST_Call || node instanceof AST_PropAccess)\n && node.optional\n || node instanceof AST_Debugger\n || node instanceof AST_Destructuring\n || node instanceof AST_Expansion\n && node.expression instanceof AST_Symbol\n && (\n node.expression instanceof AST_This\n || node.expression.definition().references.length > 1\n )\n || node instanceof AST_IterationStatement && !(node instanceof AST_For)\n || node instanceof AST_LoopControl\n || node instanceof AST_Try\n || node instanceof AST_With\n || node instanceof AST_Yield\n || node instanceof AST_Export\n || node instanceof AST_Class\n || parent instanceof AST_For && node !== parent.init\n || !replace_all\n && (\n node instanceof AST_SymbolRef\n && !node.is_declared(compressor)\n && !pure_prop_access_globals.has(node)\n )\n || node instanceof AST_SymbolRef\n && parent instanceof AST_Call\n && has_annotation(parent, _NOINLINE)\n ) {\n abort = true;\n return node;\n }\n // Stop only if candidate is found within conditional branches\n if (!stop_if_hit && (!lhs_local || !replace_all)\n && (parent instanceof AST_Binary && lazy_op.has(parent.operator) && parent.left !== node\n || parent instanceof AST_Conditional && parent.condition !== node\n || parent instanceof AST_If && parent.condition !== node)) {\n stop_if_hit = parent;\n }\n // Replace variable with assignment when found\n if (\n can_replace\n && !(node instanceof AST_SymbolDeclaration)\n && lhs.equivalent_to(node)\n && !shadows(scanner.find_scope() || nearest_scope, lvalues)\n ) {\n if (stop_if_hit) {\n abort = true;\n return node;\n }\n if (is_lhs(node, parent)) {\n if (value_def)\n replaced++;\n return node;\n } else {\n replaced++;\n if (value_def && candidate instanceof AST_VarDef)\n return node;\n }\n CHANGED = abort = true;\n if (candidate instanceof AST_UnaryPostfix) {\n return make_node(AST_UnaryPrefix, candidate, candidate);\n }\n if (candidate instanceof AST_VarDef) {\n var def = candidate.name.definition();\n var value = candidate.value;\n if (def.references.length - def.replaced == 1 && !compressor.exposed(def)) {\n def.replaced++;\n if (funarg && is_identifier_atom(value)) {\n return value.transform(compressor);\n } else {\n return maintain_this_binding(parent, node, value);\n }\n }\n return make_node(AST_Assign, candidate, {\n operator: \"=\",\n logical: false,\n left: make_node(AST_SymbolRef, candidate.name, candidate.name),\n right: value\n });\n }\n clear_flag(candidate, WRITE_ONLY);\n return candidate;\n }\n // These node types have child nodes that execute sequentially,\n // but are otherwise not safe to scan into or beyond them.\n var sym;\n if (node instanceof AST_Call\n || node instanceof AST_Exit\n && (side_effects || lhs instanceof AST_PropAccess || may_modify(lhs))\n || node instanceof AST_PropAccess\n && (side_effects || node.expression.may_throw_on_access(compressor))\n || node instanceof AST_SymbolRef\n && ((lvalues.has(node.name) && lvalues.get(node.name).modified) || side_effects && may_modify(node))\n || node instanceof AST_VarDef && node.value\n && (lvalues.has(node.name.name) || side_effects && may_modify(node.name))\n || (sym = is_lhs(node.left, node))\n && (sym instanceof AST_PropAccess || lvalues.has(sym.name))\n || may_throw\n && (in_try ? node.has_side_effects(compressor) : side_effects_external(node))) {\n stop_after = node;\n if (node instanceof AST_Scope)\n abort = true;\n }\n return handle_custom_scan_order(node);\n }, function (node) {\n if (abort)\n return;\n if (stop_after === node)\n abort = true;\n if (stop_if_hit === node)\n stop_if_hit = null;\n });\n\n var multi_replacer = new TreeTransformer(function (node) {\n if (abort)\n return node;\n // Skip nodes before `candidate` as quickly as possible\n if (!hit) {\n if (node !== hit_stack[hit_index])\n return node;\n hit_index++;\n if (hit_index < hit_stack.length)\n return;\n hit = true;\n return node;\n }\n // Replace variable when found\n if (node instanceof AST_SymbolRef\n && node.name == def.name) {\n if (!--replaced)\n abort = true;\n if (is_lhs(node, multi_replacer.parent()))\n return node;\n def.replaced++;\n value_def.replaced--;\n return candidate.value;\n }\n // Skip (non-executed) functions and (leading) default case in switch statements\n if (node instanceof AST_Default || node instanceof AST_Scope)\n return node;\n });\n\n while (--stat_index >= 0) {\n // Treat parameters as collapsible in IIFE, i.e.\n // function(a, b){ ... }(x());\n // would be translated into equivalent assignments:\n // var a = x(), b = undefined;\n if (stat_index == 0 && compressor.option(\"unused\"))\n extract_args();\n // Find collapsible assignments\n var hit_stack = [];\n extract_candidates(statements[stat_index]);\n while (candidates.length > 0) {\n hit_stack = candidates.pop();\n var hit_index = 0;\n var candidate = hit_stack[hit_stack.length - 1];\n var value_def = null;\n var stop_after = null;\n var stop_if_hit = null;\n var lhs = get_lhs(candidate);\n if (!lhs || is_lhs_read_only(lhs) || lhs.has_side_effects(compressor))\n continue;\n // Locate symbols which may execute code outside of scanning range\n var lvalues = get_lvalues(candidate);\n var lhs_local = is_lhs_local(lhs);\n if (lhs instanceof AST_SymbolRef) {\n lvalues.set(lhs.name, { def: lhs.definition(), modified: false });\n }\n var side_effects = value_has_side_effects(candidate);\n var replace_all = replace_all_symbols();\n var may_throw = candidate.may_throw(compressor);\n var funarg = candidate.name instanceof AST_SymbolFunarg;\n var hit = funarg;\n var abort = false, replaced = 0, can_replace = !args || !hit;\n if (!can_replace) {\n for (\n let j = compressor.self().argnames.lastIndexOf(candidate.name) + 1;\n !abort && j < args.length;\n j++\n ) {\n args[j].transform(scanner);\n }\n can_replace = true;\n }\n for (var i = stat_index; !abort && i < statements.length; i++) {\n statements[i].transform(scanner);\n }\n if (value_def) {\n var def = candidate.name.definition();\n if (abort && def.references.length - def.replaced > replaced)\n replaced = false;\n else {\n abort = false;\n hit_index = 0;\n hit = funarg;\n for (var i = stat_index; !abort && i < statements.length; i++) {\n statements[i].transform(multi_replacer);\n }\n value_def.single_use = false;\n }\n }\n if (replaced && !remove_candidate(candidate))\n statements.splice(stat_index, 1);\n }\n }\n\n function handle_custom_scan_order(node) {\n // Skip (non-executed) functions\n if (node instanceof AST_Scope)\n return node;\n\n // Scan case expressions first in a switch statement\n if (node instanceof AST_Switch) {\n node.expression = node.expression.transform(scanner);\n for (var i = 0, len = node.body.length; !abort && i < len; i++) {\n var branch = node.body[i];\n if (branch instanceof AST_Case) {\n if (!hit) {\n if (branch !== hit_stack[hit_index])\n continue;\n hit_index++;\n }\n branch.expression = branch.expression.transform(scanner);\n if (!replace_all)\n break;\n }\n }\n abort = true;\n return node;\n }\n }\n\n function redefined_within_scope(def, scope) {\n if (def.global)\n return false;\n let cur_scope = def.scope;\n while (cur_scope && cur_scope !== scope) {\n if (cur_scope.variables.has(def.name)) {\n return true;\n }\n cur_scope = cur_scope.parent_scope;\n }\n return false;\n }\n\n function has_overlapping_symbol(fn, arg, fn_strict) {\n var found = false, scan_this = !(fn instanceof AST_Arrow);\n arg.walk(new TreeWalker(function (node, descend) {\n if (found)\n return true;\n if (node instanceof AST_SymbolRef && (fn.variables.has(node.name) || redefined_within_scope(node.definition(), fn))) {\n var s = node.definition().scope;\n if (s !== defun_scope)\n while (s = s.parent_scope) {\n if (s === defun_scope)\n return true;\n }\n return found = true;\n }\n if ((fn_strict || scan_this) && node instanceof AST_This) {\n return found = true;\n }\n if (node instanceof AST_Scope && !(node instanceof AST_Arrow)) {\n var prev = scan_this;\n scan_this = false;\n descend();\n scan_this = prev;\n return true;\n }\n }));\n return found;\n }\n\n function extract_args() {\n var iife, fn = compressor.self();\n if (is_func_expr(fn)\n && !fn.name\n && !fn.uses_arguments\n && !fn.pinned()\n && (iife = compressor.parent()) instanceof AST_Call\n && iife.expression === fn\n && iife.args.every((arg) => !(arg instanceof AST_Expansion))) {\n var fn_strict = compressor.has_directive(\"use strict\");\n if (fn_strict && !member(fn_strict, fn.body))\n fn_strict = false;\n var len = fn.argnames.length;\n args = iife.args.slice(len);\n var names = new Set();\n for (var i = len; --i >= 0;) {\n var sym = fn.argnames[i];\n var arg = iife.args[i];\n // The following two line fix is a duplicate of the fix at\n // https://github.com/terser/terser/commit/011d3eb08cefe6922c7d1bdfa113fc4aeaca1b75\n // This might mean that these two pieces of code (one here in collapse_vars and another in reduce_vars\n // Might be doing the exact same thing.\n const def = sym.definition && sym.definition();\n const is_reassigned = def && def.orig.length > 1;\n if (is_reassigned)\n continue;\n args.unshift(make_node(AST_VarDef, sym, {\n name: sym,\n value: arg\n }));\n if (names.has(sym.name))\n continue;\n names.add(sym.name);\n if (sym instanceof AST_Expansion) {\n var elements = iife.args.slice(i);\n if (elements.every((arg) => !has_overlapping_symbol(fn, arg, fn_strict)\n )) {\n candidates.unshift([make_node(AST_VarDef, sym, {\n name: sym.expression,\n value: make_node(AST_Array, iife, {\n elements: elements\n })\n })]);\n }\n } else {\n if (!arg) {\n arg = make_node(AST_Undefined, sym).transform(compressor);\n } else if (arg instanceof AST_Lambda && arg.pinned()\n || has_overlapping_symbol(fn, arg, fn_strict)) {\n arg = null;\n }\n if (arg)\n candidates.unshift([make_node(AST_VarDef, sym, {\n name: sym,\n value: arg\n })]);\n }\n }\n }\n }\n\n function extract_candidates(expr) {\n hit_stack.push(expr);\n if (expr instanceof AST_Assign) {\n if (!expr.left.has_side_effects(compressor)\n && !(expr.right instanceof AST_Chain)) {\n candidates.push(hit_stack.slice());\n }\n extract_candidates(expr.right);\n } else if (expr instanceof AST_Binary) {\n extract_candidates(expr.left);\n extract_candidates(expr.right);\n } else if (expr instanceof AST_Call && !has_annotation(expr, _NOINLINE)) {\n extract_candidates(expr.expression);\n expr.args.forEach(extract_candidates);\n } else if (expr instanceof AST_Case) {\n extract_candidates(expr.expression);\n } else if (expr instanceof AST_Conditional) {\n extract_candidates(expr.condition);\n extract_candidates(expr.consequent);\n extract_candidates(expr.alternative);\n } else if (expr instanceof AST_Definitions) {\n var len = expr.definitions.length;\n // limit number of trailing variable definitions for consideration\n var i = len - 200;\n if (i < 0)\n i = 0;\n for (; i < len; i++) {\n extract_candidates(expr.definitions[i]);\n }\n } else if (expr instanceof AST_DWLoop) {\n extract_candidates(expr.condition);\n if (!(expr.body instanceof AST_Block)) {\n extract_candidates(expr.body);\n }\n } else if (expr instanceof AST_Exit) {\n if (expr.value)\n extract_candidates(expr.value);\n } else if (expr instanceof AST_For) {\n if (expr.init)\n extract_candidates(expr.init);\n if (expr.condition)\n extract_candidates(expr.condition);\n if (expr.step)\n extract_candidates(expr.step);\n if (!(expr.body instanceof AST_Block)) {\n extract_candidates(expr.body);\n }\n } else if (expr instanceof AST_ForIn) {\n extract_candidates(expr.object);\n if (!(expr.body instanceof AST_Block)) {\n extract_candidates(expr.body);\n }\n } else if (expr instanceof AST_If) {\n extract_candidates(expr.condition);\n if (!(expr.body instanceof AST_Block)) {\n extract_candidates(expr.body);\n }\n if (expr.alternative && !(expr.alternative instanceof AST_Block)) {\n extract_candidates(expr.alternative);\n }\n } else if (expr instanceof AST_Sequence) {\n expr.expressions.forEach(extract_candidates);\n } else if (expr instanceof AST_SimpleStatement) {\n extract_candidates(expr.body);\n } else if (expr instanceof AST_Switch) {\n extract_candidates(expr.expression);\n expr.body.forEach(extract_candidates);\n } else if (expr instanceof AST_Unary) {\n if (expr.operator == \"++\" || expr.operator == \"--\") {\n candidates.push(hit_stack.slice());\n }\n } else if (expr instanceof AST_VarDef) {\n if (expr.value && !(expr.value instanceof AST_Chain)) {\n candidates.push(hit_stack.slice());\n extract_candidates(expr.value);\n }\n }\n hit_stack.pop();\n }\n\n function find_stop(node, level, write_only) {\n var parent = scanner.parent(level);\n if (parent instanceof AST_Assign) {\n if (write_only\n && !parent.logical\n && !(parent.left instanceof AST_PropAccess\n || lvalues.has(parent.left.name))) {\n return find_stop(parent, level + 1, write_only);\n }\n return node;\n }\n if (parent instanceof AST_Binary) {\n if (write_only && (!lazy_op.has(parent.operator) || parent.left === node)) {\n return find_stop(parent, level + 1, write_only);\n }\n return node;\n }\n if (parent instanceof AST_Call)\n return node;\n if (parent instanceof AST_Case)\n return node;\n if (parent instanceof AST_Conditional) {\n if (write_only && parent.condition === node) {\n return find_stop(parent, level + 1, write_only);\n }\n return node;\n }\n if (parent instanceof AST_Definitions) {\n return find_stop(parent, level + 1, true);\n }\n if (parent instanceof AST_Exit) {\n return write_only ? find_stop(parent, level + 1, write_only) : node;\n }\n if (parent instanceof AST_If) {\n if (write_only && parent.condition === node) {\n return find_stop(parent, level + 1, write_only);\n }\n return node;\n }\n if (parent instanceof AST_IterationStatement)\n return node;\n if (parent instanceof AST_Sequence) {\n return find_stop(parent, level + 1, parent.tail_node() !== node);\n }\n if (parent instanceof AST_SimpleStatement) {\n return find_stop(parent, level + 1, true);\n }\n if (parent instanceof AST_Switch)\n return node;\n if (parent instanceof AST_VarDef)\n return node;\n return null;\n }\n\n function mangleable_var(var_def) {\n var value = var_def.value;\n if (!(value instanceof AST_SymbolRef))\n return;\n if (value.name == \"arguments\")\n return;\n var def = value.definition();\n if (def.undeclared)\n return;\n return value_def = def;\n }\n\n function get_lhs(expr) {\n if (expr instanceof AST_Assign && expr.logical) {\n return false;\n } else if (expr instanceof AST_VarDef && expr.name instanceof AST_SymbolDeclaration) {\n var def = expr.name.definition();\n if (!member(expr.name, def.orig))\n return;\n var referenced = def.references.length - def.replaced;\n if (!referenced)\n return;\n var declared = def.orig.length - def.eliminated;\n if (declared > 1 && !(expr.name instanceof AST_SymbolFunarg)\n || (referenced > 1 ? mangleable_var(expr) : !compressor.exposed(def))) {\n return make_node(AST_SymbolRef, expr.name, expr.name);\n }\n } else {\n const lhs = expr instanceof AST_Assign\n ? expr.left\n : expr.expression;\n return !is_ref_of(lhs, AST_SymbolConst)\n && !is_ref_of(lhs, AST_SymbolLet) && lhs;\n }\n }\n\n function get_rvalue(expr) {\n if (expr instanceof AST_Assign) {\n return expr.right;\n } else {\n return expr.value;\n }\n }\n\n function get_lvalues(expr) {\n var lvalues = new Map();\n if (expr instanceof AST_Unary)\n return lvalues;\n var tw = new TreeWalker(function (node) {\n var sym = node;\n while (sym instanceof AST_PropAccess)\n sym = sym.expression;\n if (sym instanceof AST_SymbolRef) {\n const prev = lvalues.get(sym.name);\n if (!prev || !prev.modified) {\n lvalues.set(sym.name, {\n def: sym.definition(),\n modified: is_modified(compressor, tw, node, node, 0)\n });\n }\n }\n });\n get_rvalue(expr).walk(tw);\n return lvalues;\n }\n\n function remove_candidate(expr) {\n if (expr.name instanceof AST_SymbolFunarg) {\n var iife = compressor.parent(), argnames = compressor.self().argnames;\n var index = argnames.indexOf(expr.name);\n if (index < 0) {\n iife.args.length = Math.min(iife.args.length, argnames.length - 1);\n } else {\n var args = iife.args;\n if (args[index])\n args[index] = make_node(AST_Number, args[index], {\n value: 0\n });\n }\n return true;\n }\n var found = false;\n return statements[stat_index].transform(new TreeTransformer(function (node, descend, in_list) {\n if (found)\n return node;\n if (node === expr || node.body === expr) {\n found = true;\n if (node instanceof AST_VarDef) {\n node.value = node.name instanceof AST_SymbolConst\n ? make_node(AST_Undefined, node.value) // `const` always needs value.\n : null;\n return node;\n }\n return in_list ? MAP.skip : null;\n }\n }, function (node) {\n if (node instanceof AST_Sequence)\n switch (node.expressions.length) {\n case 0: return null;\n case 1: return node.expressions[0];\n }\n }));\n }\n\n function is_lhs_local(lhs) {\n while (lhs instanceof AST_PropAccess)\n lhs = lhs.expression;\n return lhs instanceof AST_SymbolRef\n && lhs.definition().scope.get_defun_scope() === defun_scope\n && !(in_loop\n && (lvalues.has(lhs.name)\n || candidate instanceof AST_Unary\n || (candidate instanceof AST_Assign\n && !candidate.logical\n && candidate.operator != \"=\")));\n }\n\n function value_has_side_effects(expr) {\n if (expr instanceof AST_Unary)\n return unary_side_effects.has(expr.operator);\n return get_rvalue(expr).has_side_effects(compressor);\n }\n\n function replace_all_symbols() {\n if (side_effects)\n return false;\n if (value_def)\n return true;\n if (lhs instanceof AST_SymbolRef) {\n var def = lhs.definition();\n if (def.references.length - def.replaced == (candidate instanceof AST_VarDef ? 1 : 2)) {\n return true;\n }\n }\n return false;\n }\n\n function may_modify(sym) {\n if (!sym.definition)\n return true; // AST_Destructuring\n var def = sym.definition();\n if (def.orig.length == 1 && def.orig[0] instanceof AST_SymbolDefun)\n return false;\n if (def.scope.get_defun_scope() !== defun_scope)\n return true;\n return def.references.some((ref) =>\n ref.scope.get_defun_scope() !== defun_scope\n );\n }\n\n function side_effects_external(node, lhs) {\n if (node instanceof AST_Assign)\n return side_effects_external(node.left, true);\n if (node instanceof AST_Unary)\n return side_effects_external(node.expression, true);\n if (node instanceof AST_VarDef)\n return node.value && side_effects_external(node.value);\n if (lhs) {\n if (node instanceof AST_Dot)\n return side_effects_external(node.expression, true);\n if (node instanceof AST_Sub)\n return side_effects_external(node.expression, true);\n if (node instanceof AST_SymbolRef)\n return node.definition().scope.get_defun_scope() !== defun_scope;\n }\n return false;\n }\n\n /**\n * Will any of the pulled-in lvalues shadow a variable in newScope or parents?\n * similar to scope_encloses_variables_in_this_scope */\n function shadows(my_scope, lvalues) {\n for (const { def } of lvalues.values()) {\n const looked_up = my_scope.find_variable(def.name);\n if (looked_up) {\n if (looked_up === def) continue;\n return true;\n }\n }\n return false;\n }\n }\n\n function eliminate_spurious_blocks(statements) {\n var seen_dirs = [];\n for (var i = 0; i < statements.length;) {\n var stat = statements[i];\n if (stat instanceof AST_BlockStatement && stat.body.every(can_be_evicted_from_block)) {\n CHANGED = true;\n eliminate_spurious_blocks(stat.body);\n statements.splice(i, 1, ...stat.body);\n i += stat.body.length;\n } else if (stat instanceof AST_EmptyStatement) {\n CHANGED = true;\n statements.splice(i, 1);\n } else if (stat instanceof AST_Directive) {\n if (seen_dirs.indexOf(stat.value) < 0) {\n i++;\n seen_dirs.push(stat.value);\n } else {\n CHANGED = true;\n statements.splice(i, 1);\n }\n } else\n i++;\n }\n }\n\n function handle_if_return(statements, compressor) {\n var self = compressor.self();\n var multiple_if_returns = has_multiple_if_returns(statements);\n var in_lambda = self instanceof AST_Lambda;\n // Prevent extremely deep nesting\n // https://github.com/terser/terser/issues/1432\n // https://github.com/webpack/webpack/issues/17548\n const iteration_start = Math.min(statements.length, 500);\n for (var i = iteration_start; --i >= 0;) {\n var stat = statements[i];\n var j = next_index(i);\n var next = statements[j];\n\n if (in_lambda && !next && stat instanceof AST_Return) {\n if (!stat.value) {\n CHANGED = true;\n statements.splice(i, 1);\n continue;\n }\n if (stat.value instanceof AST_UnaryPrefix && stat.value.operator == \"void\") {\n CHANGED = true;\n statements[i] = make_node(AST_SimpleStatement, stat, {\n body: stat.value.expression\n });\n continue;\n }\n }\n\n if (stat instanceof AST_If) {\n let ab, new_else;\n\n ab = aborts(stat.body);\n if (\n can_merge_flow(ab)\n && (new_else = as_statement_array_with_return(stat.body, ab))\n ) {\n if (ab.label) {\n remove(ab.label.thedef.references, ab);\n }\n CHANGED = true;\n stat = stat.clone();\n stat.condition = stat.condition.negate(compressor);\n stat.body = make_node(AST_BlockStatement, stat, {\n body: as_statement_array(stat.alternative).concat(extract_functions())\n });\n stat.alternative = make_node(AST_BlockStatement, stat, {\n body: new_else\n });\n statements[i] = stat.transform(compressor);\n continue;\n }\n\n ab = aborts(stat.alternative);\n if (\n can_merge_flow(ab)\n && (new_else = as_statement_array_with_return(stat.alternative, ab))\n ) {\n if (ab.label) {\n remove(ab.label.thedef.references, ab);\n }\n CHANGED = true;\n stat = stat.clone();\n stat.body = make_node(AST_BlockStatement, stat.body, {\n body: as_statement_array(stat.body).concat(extract_functions())\n });\n stat.alternative = make_node(AST_BlockStatement, stat.alternative, {\n body: new_else\n });\n statements[i] = stat.transform(compressor);\n continue;\n }\n }\n\n if (stat instanceof AST_If && stat.body instanceof AST_Return) {\n var value = stat.body.value;\n //---\n // pretty silly case, but:\n // if (foo()) return; return; ==> foo(); return;\n if (!value && !stat.alternative\n && (in_lambda && !next || next instanceof AST_Return && !next.value)) {\n CHANGED = true;\n statements[i] = make_node(AST_SimpleStatement, stat.condition, {\n body: stat.condition\n });\n continue;\n }\n //---\n // if (foo()) return x; return y; ==> return foo() ? x : y;\n if (value && !stat.alternative && next instanceof AST_Return && next.value) {\n CHANGED = true;\n stat = stat.clone();\n stat.alternative = next;\n statements[i] = stat.transform(compressor);\n statements.splice(j, 1);\n continue;\n }\n //---\n // if (foo()) return x; [ return ; ] ==> return foo() ? x : undefined;\n if (value && !stat.alternative\n && (!next && in_lambda && multiple_if_returns\n || next instanceof AST_Return)) {\n CHANGED = true;\n stat = stat.clone();\n stat.alternative = next || make_node(AST_Return, stat, {\n value: null\n });\n statements[i] = stat.transform(compressor);\n if (next)\n statements.splice(j, 1);\n continue;\n }\n //---\n // if (a) return b; if (c) return d; e; ==> return a ? b : c ? d : void e;\n //\n // if sequences is not enabled, this can lead to an endless loop (issue #866).\n // however, with sequences on this helps producing slightly better output for\n // the example code.\n var prev = statements[prev_index(i)];\n if (compressor.option(\"sequences\") && in_lambda && !stat.alternative\n && prev instanceof AST_If && prev.body instanceof AST_Return\n && next_index(j) == statements.length && next instanceof AST_SimpleStatement) {\n CHANGED = true;\n stat = stat.clone();\n stat.alternative = make_node(AST_BlockStatement, next, {\n body: [\n next,\n make_node(AST_Return, next, {\n value: null\n })\n ]\n });\n statements[i] = stat.transform(compressor);\n statements.splice(j, 1);\n continue;\n }\n }\n }\n\n function has_multiple_if_returns(statements) {\n var n = 0;\n for (var i = statements.length; --i >= 0;) {\n var stat = statements[i];\n if (stat instanceof AST_If && stat.body instanceof AST_Return) {\n if (++n > 1)\n return true;\n }\n }\n return false;\n }\n\n function is_return_void(value) {\n return !value || value instanceof AST_UnaryPrefix && value.operator == \"void\";\n }\n\n function can_merge_flow(ab) {\n if (!ab)\n return false;\n for (var j = i + 1, len = statements.length; j < len; j++) {\n var stat = statements[j];\n if (stat instanceof AST_Const || stat instanceof AST_Let)\n return false;\n }\n var lct = ab instanceof AST_LoopControl ? compressor.loopcontrol_target(ab) : null;\n return ab instanceof AST_Return && in_lambda && is_return_void(ab.value)\n || ab instanceof AST_Continue && self === loop_body(lct)\n || ab instanceof AST_Break && lct instanceof AST_BlockStatement && self === lct;\n }\n\n function extract_functions() {\n var tail = statements.slice(i + 1);\n statements.length = i + 1;\n return tail.filter(function (stat) {\n if (stat instanceof AST_Defun) {\n statements.push(stat);\n return false;\n }\n return true;\n });\n }\n\n function as_statement_array_with_return(node, ab) {\n var body = as_statement_array(node);\n if (ab !== body[body.length - 1]) {\n return undefined;\n }\n body = body.slice(0, -1);\n if (ab.value) {\n body.push(make_node(AST_SimpleStatement, ab.value, {\n body: ab.value.expression\n }));\n }\n return body;\n }\n\n function next_index(i) {\n for (var j = i + 1, len = statements.length; j < len; j++) {\n var stat = statements[j];\n if (!(stat instanceof AST_Var && declarations_only(stat))) {\n break;\n }\n }\n return j;\n }\n\n function prev_index(i) {\n for (var j = i; --j >= 0;) {\n var stat = statements[j];\n if (!(stat instanceof AST_Var && declarations_only(stat))) {\n break;\n }\n }\n return j;\n }\n }\n\n function eliminate_dead_code(statements, compressor) {\n var has_quit;\n var self = compressor.self();\n for (var i = 0, n = 0, len = statements.length; i < len; i++) {\n var stat = statements[i];\n if (stat instanceof AST_LoopControl) {\n var lct = compressor.loopcontrol_target(stat);\n if (stat instanceof AST_Break\n && !(lct instanceof AST_IterationStatement)\n && loop_body(lct) === self\n || stat instanceof AST_Continue\n && loop_body(lct) === self) {\n if (stat.label) {\n remove(stat.label.thedef.references, stat);\n }\n } else {\n statements[n++] = stat;\n }\n } else {\n statements[n++] = stat;\n }\n if (aborts(stat)) {\n has_quit = statements.slice(i + 1);\n break;\n }\n }\n statements.length = n;\n CHANGED = n != len;\n if (has_quit)\n has_quit.forEach(function (stat) {\n trim_unreachable_code(compressor, stat, statements);\n });\n }\n\n function declarations_only(node) {\n return node.definitions.every((var_def) => !var_def.value);\n }\n\n function sequencesize(statements, compressor) {\n if (statements.length < 2)\n return;\n var seq = [], n = 0;\n function push_seq() {\n if (!seq.length)\n return;\n var body = make_sequence(seq[0], seq);\n statements[n++] = make_node(AST_SimpleStatement, body, { body: body });\n seq = [];\n }\n for (var i = 0, len = statements.length; i < len; i++) {\n var stat = statements[i];\n if (stat instanceof AST_SimpleStatement) {\n if (seq.length >= compressor.sequences_limit)\n push_seq();\n var body = stat.body;\n if (seq.length > 0)\n body = body.drop_side_effect_free(compressor);\n if (body)\n merge_sequence(seq, body);\n } else if (stat instanceof AST_Definitions && declarations_only(stat)\n || stat instanceof AST_Defun) {\n statements[n++] = stat;\n } else {\n push_seq();\n statements[n++] = stat;\n }\n }\n push_seq();\n statements.length = n;\n if (n != len)\n CHANGED = true;\n }\n\n function to_simple_statement(block, decls) {\n if (!(block instanceof AST_BlockStatement))\n return block;\n var stat = null;\n for (var i = 0, len = block.body.length; i < len; i++) {\n var line = block.body[i];\n if (line instanceof AST_Var && declarations_only(line)) {\n decls.push(line);\n } else if (stat || line instanceof AST_Const || line instanceof AST_Let) {\n return false;\n } else {\n stat = line;\n }\n }\n return stat;\n }\n\n function sequencesize_2(statements, compressor) {\n function cons_seq(right) {\n n--;\n CHANGED = true;\n var left = prev.body;\n return make_sequence(left, [left, right]).transform(compressor);\n }\n var n = 0, prev;\n for (var i = 0; i < statements.length; i++) {\n var stat = statements[i];\n if (prev) {\n if (stat instanceof AST_Exit) {\n stat.value = cons_seq(stat.value || make_node(AST_Undefined, stat).transform(compressor));\n } else if (stat instanceof AST_For) {\n if (!(stat.init instanceof AST_Definitions)) {\n const abort = walk(prev.body, node => {\n if (node instanceof AST_Scope)\n return true;\n if (node instanceof AST_Binary\n && node.operator === \"in\") {\n return walk_abort;\n }\n });\n if (!abort) {\n if (stat.init)\n stat.init = cons_seq(stat.init);\n else {\n stat.init = prev.body;\n n--;\n CHANGED = true;\n }\n }\n }\n } else if (stat instanceof AST_ForIn) {\n if (!(stat.init instanceof AST_Const) && !(stat.init instanceof AST_Let)) {\n stat.object = cons_seq(stat.object);\n }\n } else if (stat instanceof AST_If) {\n stat.condition = cons_seq(stat.condition);\n } else if (stat instanceof AST_Switch) {\n stat.expression = cons_seq(stat.expression);\n } else if (stat instanceof AST_With) {\n stat.expression = cons_seq(stat.expression);\n }\n }\n if (compressor.option(\"conditionals\") && stat instanceof AST_If) {\n var decls = [];\n var body = to_simple_statement(stat.body, decls);\n var alt = to_simple_statement(stat.alternative, decls);\n if (body !== false && alt !== false && decls.length > 0) {\n var len = decls.length;\n decls.push(make_node(AST_If, stat, {\n condition: stat.condition,\n body: body || make_node(AST_EmptyStatement, stat.body),\n alternative: alt\n }));\n decls.unshift(n, 1);\n [].splice.apply(statements, decls);\n i += len;\n n += len + 1;\n prev = null;\n CHANGED = true;\n continue;\n }\n }\n statements[n++] = stat;\n prev = stat instanceof AST_SimpleStatement ? stat : null;\n }\n statements.length = n;\n }\n\n function join_object_assignments(defn, body) {\n if (!(defn instanceof AST_Definitions))\n return;\n var def = defn.definitions[defn.definitions.length - 1];\n if (!(def.value instanceof AST_Object))\n return;\n var exprs;\n if (body instanceof AST_Assign && !body.logical) {\n exprs = [body];\n } else if (body instanceof AST_Sequence) {\n exprs = body.expressions.slice();\n }\n if (!exprs)\n return;\n var trimmed = false;\n do {\n var node = exprs[0];\n if (!(node instanceof AST_Assign))\n break;\n if (node.operator != \"=\")\n break;\n if (!(node.left instanceof AST_PropAccess))\n break;\n var sym = node.left.expression;\n if (!(sym instanceof AST_SymbolRef))\n break;\n if (def.name.name != sym.name)\n break;\n if (!node.right.is_constant_expression(nearest_scope))\n break;\n var prop = node.left.property;\n if (prop instanceof AST_Node) {\n prop = prop.evaluate(compressor);\n }\n if (prop instanceof AST_Node)\n break;\n prop = \"\" + prop;\n var diff = compressor.option(\"ecma\") < 2015\n && compressor.has_directive(\"use strict\") ? function (node) {\n return node.key != prop && (node.key && node.key.name != prop);\n } : function (node) {\n return node.key && node.key.name != prop;\n };\n if (!def.value.properties.every(diff))\n break;\n var p = def.value.properties.filter(function (p) { return p.key === prop; })[0];\n if (!p) {\n def.value.properties.push(make_node(AST_ObjectKeyVal, node, {\n key: prop,\n value: node.right\n }));\n } else {\n p.value = new AST_Sequence({\n start: p.start,\n expressions: [p.value.clone(), node.right.clone()],\n end: p.end\n });\n }\n exprs.shift();\n trimmed = true;\n } while (exprs.length);\n return trimmed && exprs;\n }\n\n function join_consecutive_vars(statements) {\n var defs;\n for (var i = 0, j = -1, len = statements.length; i < len; i++) {\n var stat = statements[i];\n var prev = statements[j];\n if (stat instanceof AST_Definitions) {\n if (prev && prev.TYPE == stat.TYPE) {\n prev.definitions = prev.definitions.concat(stat.definitions);\n CHANGED = true;\n } else if (defs && defs.TYPE == stat.TYPE && declarations_only(stat)) {\n defs.definitions = defs.definitions.concat(stat.definitions);\n CHANGED = true;\n } else {\n statements[++j] = stat;\n defs = stat;\n }\n } else if (stat instanceof AST_Exit) {\n stat.value = extract_object_assignments(stat.value);\n } else if (stat instanceof AST_For) {\n var exprs = join_object_assignments(prev, stat.init);\n if (exprs) {\n CHANGED = true;\n stat.init = exprs.length ? make_sequence(stat.init, exprs) : null;\n statements[++j] = stat;\n } else if (\n prev instanceof AST_Var\n && (!stat.init || stat.init.TYPE == prev.TYPE)\n ) {\n if (stat.init) {\n prev.definitions = prev.definitions.concat(stat.init.definitions);\n }\n stat.init = prev;\n statements[j] = stat;\n CHANGED = true;\n } else if (\n defs instanceof AST_Var\n && stat.init instanceof AST_Var\n && declarations_only(stat.init)\n ) {\n defs.definitions = defs.definitions.concat(stat.init.definitions);\n stat.init = null;\n statements[++j] = stat;\n CHANGED = true;\n } else {\n statements[++j] = stat;\n }\n } else if (stat instanceof AST_ForIn) {\n stat.object = extract_object_assignments(stat.object);\n } else if (stat instanceof AST_If) {\n stat.condition = extract_object_assignments(stat.condition);\n } else if (stat instanceof AST_SimpleStatement) {\n var exprs = join_object_assignments(prev, stat.body);\n if (exprs) {\n CHANGED = true;\n if (!exprs.length)\n continue;\n stat.body = make_sequence(stat.body, exprs);\n }\n statements[++j] = stat;\n } else if (stat instanceof AST_Switch) {\n stat.expression = extract_object_assignments(stat.expression);\n } else if (stat instanceof AST_With) {\n stat.expression = extract_object_assignments(stat.expression);\n } else {\n statements[++j] = stat;\n }\n }\n statements.length = j + 1;\n\n function extract_object_assignments(value) {\n statements[++j] = stat;\n var exprs = join_object_assignments(prev, value);\n if (exprs) {\n CHANGED = true;\n if (exprs.length) {\n return make_sequence(value, exprs);\n } else if (value instanceof AST_Sequence) {\n return value.tail_node().left;\n } else {\n return value.left;\n }\n }\n return value;\n }\n }\n}\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n AST_Array,\n AST_Assign,\n AST_Block,\n AST_Call,\n AST_Catch,\n AST_Class,\n AST_ClassExpression,\n AST_DefaultAssign,\n AST_DefClass,\n AST_Defun,\n AST_Destructuring,\n AST_EmptyStatement,\n AST_Expansion,\n AST_Export,\n AST_Function,\n AST_IterationStatement,\n AST_Lambda,\n AST_Node,\n AST_Number,\n AST_Object,\n AST_ObjectKeyVal,\n AST_PropAccess,\n AST_Return,\n AST_Scope,\n AST_SimpleStatement,\n AST_Statement,\n AST_SymbolDefun,\n AST_SymbolFunarg,\n AST_SymbolLambda,\n AST_SymbolRef,\n AST_SymbolVar,\n AST_This,\n AST_Toplevel,\n AST_UnaryPrefix,\n AST_Undefined,\n AST_Var,\n AST_VarDef,\n\n walk,\n\n _INLINE,\n _NOINLINE,\n _PURE,\n} from \"../ast.js\";\nimport { make_node, has_annotation } from \"../utils/index.js\";\nimport \"../size.js\";\n\nimport \"./evaluate.js\";\nimport \"./drop-side-effect-free.js\";\nimport \"./reduce-vars.js\";\nimport {\n SQUEEZED,\n INLINED,\n UNUSED,\n\n has_flag,\n set_flag,\n} from \"./compressor-flags.js\";\nimport {\n make_sequence,\n best_of,\n make_node_from_constant,\n identifier_atom,\n is_empty,\n is_func_expr,\n is_iife_call,\n is_reachable,\n is_recursive_ref,\n retain_top_func,\n} from \"./common.js\";\n\n/**\n * Module that contains the inlining logic.\n *\n * @module\n *\n * The stars of the show are `inline_into_symbolref` and `inline_into_call`.\n */\n\nfunction within_array_or_object_literal(compressor) {\n var node, level = 0;\n while (node = compressor.parent(level++)) {\n if (node instanceof AST_Statement) return false;\n if (node instanceof AST_Array\n || node instanceof AST_ObjectKeyVal\n || node instanceof AST_Object) {\n return true;\n }\n }\n return false;\n}\n\nfunction scope_encloses_variables_in_this_scope(scope, pulled_scope) {\n for (const enclosed of pulled_scope.enclosed) {\n if (pulled_scope.variables.has(enclosed.name)) {\n continue;\n }\n const looked_up = scope.find_variable(enclosed.name);\n if (looked_up) {\n if (looked_up === enclosed) continue;\n return true;\n }\n }\n return false;\n}\n\n/**\n * An extra check function for `top_retain` option, compare the length of const identifier\n * and init value length and return true if init value is longer than identifier. for example:\n * ```\n * // top_retain: [\"example\"]\n * const example = 100\n * ```\n * it will return false because length of \"100\" is short than identifier \"example\".\n */\nfunction is_const_symbol_short_than_init_value(def, fixed_value) {\n if (def.orig.length === 1 && fixed_value) {\n const init_value_length = fixed_value.size();\n const identifer_length = def.name.length;\n return init_value_length > identifer_length;\n }\n return true;\n}\n\nexport function inline_into_symbolref(self, compressor) {\n const parent = compressor.parent();\n const def = self.definition();\n const nearest_scope = compressor.find_scope();\n let fixed = self.fixed_value();\n if (\n compressor.top_retain &&\n def.global && \n compressor.top_retain(def) && \n // when identifier is in top_retain option dose not mean we can always inline it.\n // if identifier name is longer then init value, we can replace it.\n is_const_symbol_short_than_init_value(def, fixed)\n ) {\n // keep it\n def.fixed = false;\n def.single_use = false;\n return self;\n }\n\n let single_use = def.single_use\n && !(parent instanceof AST_Call\n && (parent.is_callee_pure(compressor))\n || has_annotation(parent, _NOINLINE))\n && !(parent instanceof AST_Export\n && fixed instanceof AST_Lambda\n && fixed.name);\n\n if (single_use && fixed instanceof AST_Node) {\n single_use =\n !fixed.has_side_effects(compressor)\n && !fixed.may_throw(compressor);\n }\n\n if (fixed instanceof AST_Class && def.scope !== self.scope) {\n return self;\n }\n\n if (single_use && (fixed instanceof AST_Lambda || fixed instanceof AST_Class)) {\n if (retain_top_func(fixed, compressor)) {\n single_use = false;\n } else if (def.scope !== self.scope\n && (def.escaped == 1\n || has_flag(fixed, INLINED)\n || within_array_or_object_literal(compressor)\n || !compressor.option(\"reduce_funcs\"))) {\n single_use = false;\n } else if (is_recursive_ref(compressor, def)) {\n single_use = false;\n } else if (def.scope !== self.scope || def.orig[0] instanceof AST_SymbolFunarg) {\n single_use = fixed.is_constant_expression(self.scope);\n if (single_use == \"f\") {\n var scope = self.scope;\n do {\n if (scope instanceof AST_Defun || is_func_expr(scope)) {\n set_flag(scope, INLINED);\n }\n } while (scope = scope.parent_scope);\n }\n }\n }\n\n if (single_use && (fixed instanceof AST_Lambda || fixed instanceof AST_Class)) {\n single_use =\n def.scope === self.scope\n && !scope_encloses_variables_in_this_scope(nearest_scope, fixed)\n || parent instanceof AST_Call\n && parent.expression === self\n && !scope_encloses_variables_in_this_scope(nearest_scope, fixed)\n && !(fixed.name && fixed.name.definition().recursive_refs > 0);\n }\n\n if (single_use && fixed) {\n if (fixed instanceof AST_DefClass) {\n set_flag(fixed, SQUEEZED);\n fixed = make_node(AST_ClassExpression, fixed, fixed);\n }\n if (fixed instanceof AST_Defun) {\n set_flag(fixed, SQUEEZED);\n fixed = make_node(AST_Function, fixed, fixed);\n }\n if (def.recursive_refs > 0 && fixed.name instanceof AST_SymbolDefun) {\n const defun_def = fixed.name.definition();\n let lambda_def = fixed.variables.get(fixed.name.name);\n let name = lambda_def && lambda_def.orig[0];\n if (!(name instanceof AST_SymbolLambda)) {\n name = make_node(AST_SymbolLambda, fixed.name, fixed.name);\n name.scope = fixed;\n fixed.name = name;\n lambda_def = fixed.def_function(name);\n }\n walk(fixed, node => {\n if (node instanceof AST_SymbolRef && node.definition() === defun_def) {\n node.thedef = lambda_def;\n lambda_def.references.push(node);\n }\n });\n }\n if (\n (fixed instanceof AST_Lambda || fixed instanceof AST_Class)\n && fixed.parent_scope !== nearest_scope\n ) {\n fixed = fixed.clone(true, compressor.get_toplevel());\n\n nearest_scope.add_child_scope(fixed);\n }\n return fixed.optimize(compressor);\n }\n\n // multiple uses\n if (fixed) {\n let replace;\n\n if (fixed instanceof AST_This) {\n if (!(def.orig[0] instanceof AST_SymbolFunarg)\n && def.references.every((ref) =>\n def.scope === ref.scope\n )) {\n replace = fixed;\n }\n } else {\n var ev = fixed.evaluate(compressor);\n if (\n ev !== fixed\n && (compressor.option(\"unsafe_regexp\") || !(ev instanceof RegExp))\n ) {\n replace = make_node_from_constant(ev, fixed);\n }\n }\n\n if (replace) {\n const name_length = self.size(compressor);\n const replace_size = replace.size(compressor);\n\n let overhead = 0;\n if (compressor.option(\"unused\") && !compressor.exposed(def)) {\n overhead =\n (name_length + 2 + replace_size) /\n (def.references.length - def.assignments);\n }\n\n if (replace_size <= name_length + overhead) {\n return replace;\n }\n }\n }\n\n return self;\n}\n\nexport function inline_into_call(self, compressor) {\n var exp = self.expression;\n var fn = exp;\n var simple_args = self.args.every((arg) => !(arg instanceof AST_Expansion));\n\n if (compressor.option(\"reduce_vars\")\n && fn instanceof AST_SymbolRef\n && !has_annotation(self, _NOINLINE)\n ) {\n const fixed = fn.fixed_value();\n\n if (\n retain_top_func(fixed, compressor)\n || !compressor.toplevel.funcs && exp.definition().global\n ) {\n return self;\n }\n\n fn = fixed;\n }\n\n var is_func = fn instanceof AST_Lambda;\n\n var stat = is_func && fn.body[0];\n var is_regular_func = is_func && !fn.is_generator && !fn.async;\n var can_inline = is_regular_func && compressor.option(\"inline\") && !self.is_callee_pure(compressor);\n if (can_inline && stat instanceof AST_Return) {\n let returned = stat.value;\n if (!returned || returned.is_constant_expression()) {\n if (returned) {\n returned = returned.clone(true);\n } else {\n returned = make_node(AST_Undefined, self);\n }\n const args = self.args.concat(returned);\n return make_sequence(self, args).optimize(compressor);\n }\n\n // optimize identity function\n if (\n fn.argnames.length === 1\n && (fn.argnames[0] instanceof AST_SymbolFunarg)\n && self.args.length < 2\n && !(self.args[0] instanceof AST_Expansion)\n && returned instanceof AST_SymbolRef\n && returned.name === fn.argnames[0].name\n ) {\n const replacement =\n (self.args[0] || make_node(AST_Undefined)).optimize(compressor);\n\n let parent;\n if (\n replacement instanceof AST_PropAccess\n && (parent = compressor.parent()) instanceof AST_Call\n && parent.expression === self\n ) {\n // identity function was being used to remove `this`, like in\n //\n // id(bag.no_this)(...)\n //\n // Replace with a larger but more effish (0, bag.no_this) wrapper.\n\n return make_sequence(self, [\n make_node(AST_Number, self, { value: 0 }),\n replacement\n ]);\n }\n // replace call with first argument or undefined if none passed\n return replacement;\n }\n }\n\n if (can_inline) {\n var scope, in_loop, level = -1;\n let def;\n let returned_value;\n let nearest_scope;\n if (simple_args\n && !fn.uses_arguments\n && !(compressor.parent() instanceof AST_Class)\n && !(fn.name && fn instanceof AST_Function)\n && (returned_value = can_flatten_body(stat))\n && (exp === fn\n || has_annotation(self, _INLINE)\n || compressor.option(\"unused\")\n && (def = exp.definition()).references.length == 1\n && !is_recursive_ref(compressor, def)\n && fn.is_constant_expression(exp.scope))\n && !has_annotation(self, _PURE | _NOINLINE)\n && !fn.contains_this()\n && can_inject_symbols()\n && (nearest_scope = compressor.find_scope())\n && !scope_encloses_variables_in_this_scope(nearest_scope, fn)\n && !(function in_default_assign() {\n // Due to the fact function parameters have their own scope\n // which can't use `var something` in the function body within,\n // we simply don't inline into DefaultAssign.\n let i = 0;\n let p;\n while ((p = compressor.parent(i++))) {\n if (p instanceof AST_DefaultAssign) return true;\n if (p instanceof AST_Block) break;\n }\n return false;\n })()\n && !(scope instanceof AST_Class)\n ) {\n set_flag(fn, SQUEEZED);\n nearest_scope.add_child_scope(fn);\n return make_sequence(self, flatten_fn(returned_value)).optimize(compressor);\n }\n }\n\n if (can_inline && has_annotation(self, _INLINE)) {\n set_flag(fn, SQUEEZED);\n fn = make_node(fn.CTOR === AST_Defun ? AST_Function : fn.CTOR, fn, fn);\n fn = fn.clone(true);\n fn.figure_out_scope({}, {\n parent_scope: compressor.find_scope(),\n toplevel: compressor.get_toplevel()\n });\n\n return make_node(AST_Call, self, {\n expression: fn,\n args: self.args,\n }).optimize(compressor);\n }\n\n const can_drop_this_call = is_regular_func && compressor.option(\"side_effects\") && fn.body.every(is_empty);\n if (can_drop_this_call) {\n var args = self.args.concat(make_node(AST_Undefined, self));\n return make_sequence(self, args).optimize(compressor);\n }\n\n if (compressor.option(\"negate_iife\")\n && compressor.parent() instanceof AST_SimpleStatement\n && is_iife_call(self)) {\n return self.negate(compressor, true);\n }\n\n var ev = self.evaluate(compressor);\n if (ev !== self) {\n ev = make_node_from_constant(ev, self).optimize(compressor);\n return best_of(compressor, ev, self);\n }\n\n return self;\n\n function return_value(stat) {\n if (!stat) return make_node(AST_Undefined, self);\n if (stat instanceof AST_Return) {\n if (!stat.value) return make_node(AST_Undefined, self);\n return stat.value.clone(true);\n }\n if (stat instanceof AST_SimpleStatement) {\n return make_node(AST_UnaryPrefix, stat, {\n operator: \"void\",\n expression: stat.body.clone(true)\n });\n }\n }\n\n function can_flatten_body(stat) {\n var body = fn.body;\n var len = body.length;\n if (compressor.option(\"inline\") < 3) {\n return len == 1 && return_value(stat);\n }\n stat = null;\n for (var i = 0; i < len; i++) {\n var line = body[i];\n if (line instanceof AST_Var) {\n if (stat && !line.definitions.every((var_def) =>\n !var_def.value\n )) {\n return false;\n }\n } else if (stat) {\n return false;\n } else if (!(line instanceof AST_EmptyStatement)) {\n stat = line;\n }\n }\n return return_value(stat);\n }\n\n function can_inject_args(block_scoped, safe_to_inject) {\n for (var i = 0, len = fn.argnames.length; i < len; i++) {\n var arg = fn.argnames[i];\n if (arg instanceof AST_DefaultAssign) {\n if (has_flag(arg.left, UNUSED)) continue;\n return false;\n }\n if (arg instanceof AST_Destructuring) return false;\n if (arg instanceof AST_Expansion) {\n if (has_flag(arg.expression, UNUSED)) continue;\n return false;\n }\n if (has_flag(arg, UNUSED)) continue;\n if (!safe_to_inject\n || block_scoped.has(arg.name)\n || identifier_atom.has(arg.name)\n || scope.conflicting_def(arg.name)) {\n return false;\n }\n if (in_loop) in_loop.push(arg.definition());\n }\n return true;\n }\n\n function can_inject_vars(block_scoped, safe_to_inject) {\n var len = fn.body.length;\n for (var i = 0; i < len; i++) {\n var stat = fn.body[i];\n if (!(stat instanceof AST_Var)) continue;\n if (!safe_to_inject) return false;\n for (var j = stat.definitions.length; --j >= 0;) {\n var name = stat.definitions[j].name;\n if (name instanceof AST_Destructuring\n || block_scoped.has(name.name)\n || identifier_atom.has(name.name)\n || scope.conflicting_def(name.name)) {\n return false;\n }\n if (in_loop) in_loop.push(name.definition());\n }\n }\n return true;\n }\n\n function can_inject_symbols() {\n var block_scoped = new Set();\n do {\n scope = compressor.parent(++level);\n if (scope.is_block_scope() && scope.block_scope) {\n // TODO this is sometimes undefined during compression.\n // But it should always have a value!\n scope.block_scope.variables.forEach(function (variable) {\n block_scoped.add(variable.name);\n });\n }\n if (scope instanceof AST_Catch) {\n // TODO can we delete? AST_Catch is a block scope.\n if (scope.argname) {\n block_scoped.add(scope.argname.name);\n }\n } else if (scope instanceof AST_IterationStatement) {\n in_loop = [];\n } else if (scope instanceof AST_SymbolRef) {\n if (scope.fixed_value() instanceof AST_Scope) return false;\n }\n } while (!(scope instanceof AST_Scope));\n\n var safe_to_inject = !(scope instanceof AST_Toplevel) || compressor.toplevel.vars;\n var inline = compressor.option(\"inline\");\n if (!can_inject_vars(block_scoped, inline >= 3 && safe_to_inject)) return false;\n if (!can_inject_args(block_scoped, inline >= 2 && safe_to_inject)) return false;\n return !in_loop || in_loop.length == 0 || !is_reachable(fn, in_loop);\n }\n\n function append_var(decls, expressions, name, value) {\n var def = name.definition();\n\n // Name already exists, only when a function argument had the same name\n const already_appended = scope.variables.has(name.name);\n if (!already_appended) {\n scope.variables.set(name.name, def);\n scope.enclosed.push(def);\n decls.push(make_node(AST_VarDef, name, {\n name: name,\n value: null\n }));\n }\n\n var sym = make_node(AST_SymbolRef, name, name);\n def.references.push(sym);\n if (value) expressions.push(make_node(AST_Assign, self, {\n operator: \"=\",\n logical: false,\n left: sym,\n right: value.clone()\n }));\n }\n\n function flatten_args(decls, expressions) {\n var len = fn.argnames.length;\n for (var i = self.args.length; --i >= len;) {\n expressions.push(self.args[i]);\n }\n for (i = len; --i >= 0;) {\n var name = fn.argnames[i];\n var value = self.args[i];\n if (has_flag(name, UNUSED) || !name.name || scope.conflicting_def(name.name)) {\n if (value) expressions.push(value);\n } else {\n var symbol = make_node(AST_SymbolVar, name, name);\n name.definition().orig.push(symbol);\n if (!value && in_loop) value = make_node(AST_Undefined, self);\n append_var(decls, expressions, symbol, value);\n }\n }\n decls.reverse();\n expressions.reverse();\n }\n\n function flatten_vars(decls, expressions) {\n var pos = expressions.length;\n for (var i = 0, lines = fn.body.length; i < lines; i++) {\n var stat = fn.body[i];\n if (!(stat instanceof AST_Var)) continue;\n for (var j = 0, defs = stat.definitions.length; j < defs; j++) {\n var var_def = stat.definitions[j];\n var name = var_def.name;\n append_var(decls, expressions, name, var_def.value);\n if (in_loop && fn.argnames.every((argname) =>\n argname.name != name.name\n )) {\n var def = fn.variables.get(name.name);\n var sym = make_node(AST_SymbolRef, name, name);\n def.references.push(sym);\n expressions.splice(pos++, 0, make_node(AST_Assign, var_def, {\n operator: \"=\",\n logical: false,\n left: sym,\n right: make_node(AST_Undefined, name)\n }));\n }\n }\n }\n }\n\n function flatten_fn(returned_value) {\n var decls = [];\n var expressions = [];\n flatten_args(decls, expressions);\n flatten_vars(decls, expressions);\n expressions.push(returned_value);\n\n if (decls.length) {\n const i = scope.body.indexOf(compressor.parent(level - 1)) + 1;\n scope.body.splice(i, 0, make_node(AST_Var, fn, {\n definitions: decls\n }));\n }\n\n return expressions.map(exp => exp.clone(true));\n }\n}\n","import {\n AST_Array,\n AST_Chain,\n AST_Constant,\n AST_Dot,\n AST_ImportMeta,\n AST_Node,\n AST_Object,\n AST_ObjectKeyVal,\n AST_PropAccess,\n AST_SymbolDeclaration,\n AST_SymbolRef,\n AST_Toplevel,\n TreeTransformer,\n} from \"../ast.js\";\nimport { make_node, noop, HOP } from \"../utils/index.js\";\nimport { make_node_from_constant } from \"./common.js\";\nimport { is_lhs } from \"./inference.js\";\n\n(function(def_find_defs) {\n function to_node(value, orig) {\n if (value instanceof AST_Node) {\n if (!(value instanceof AST_Constant)) {\n // Value may be a function, an array including functions and even a complex assign / block expression,\n // so it should never be shared in different places.\n // Otherwise wrong information may be used in the compression phase\n value = value.clone(true);\n }\n return make_node(value.CTOR, orig, value);\n }\n if (Array.isArray(value)) return make_node(AST_Array, orig, {\n elements: value.map(function(value) {\n return to_node(value, orig);\n })\n });\n if (value && typeof value == \"object\") {\n var props = [];\n for (var key in value) if (HOP(value, key)) {\n props.push(make_node(AST_ObjectKeyVal, orig, {\n key: key,\n value: to_node(value[key], orig)\n }));\n }\n return make_node(AST_Object, orig, {\n properties: props\n });\n }\n return make_node_from_constant(value, orig);\n }\n\n AST_Toplevel.DEFMETHOD(\"resolve_defines\", function(compressor) {\n if (!compressor.option(\"global_defs\")) return this;\n this.figure_out_scope({ ie8: compressor.option(\"ie8\") });\n return this.transform(new TreeTransformer(function(node) {\n var def = node._find_defs(compressor, \"\");\n if (!def) return;\n var level = 0, child = node, parent;\n while (parent = this.parent(level++)) {\n if (!(parent instanceof AST_PropAccess)) break;\n if (parent.expression !== child) break;\n child = parent;\n }\n if (is_lhs(child, parent)) {\n return;\n }\n return def;\n }));\n });\n def_find_defs(AST_Node, noop);\n def_find_defs(AST_Chain, function(compressor, suffix) {\n return this.expression._find_defs(compressor, suffix);\n });\n def_find_defs(AST_Dot, function(compressor, suffix) {\n return this.expression._find_defs(compressor, \".\" + this.property + suffix);\n });\n def_find_defs(AST_SymbolDeclaration, function() {\n if (!this.global()) return;\n });\n def_find_defs(AST_SymbolRef, function(compressor, suffix) {\n if (!this.global()) return;\n var defines = compressor.option(\"global_defs\");\n var name = this.name + suffix;\n if (HOP(defines, name)) return to_node(defines[name], this);\n });\n def_find_defs(AST_ImportMeta, function(compressor, suffix) {\n var defines = compressor.option(\"global_defs\");\n var name = \"import.meta\" + suffix;\n if (HOP(defines, name)) return to_node(defines[name], this);\n });\n})(function(node, func) {\n node.DEFMETHOD(\"_find_defs\", func);\n});\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\nimport {\n AST_Accessor,\n AST_Array,\n AST_Arrow,\n AST_Assign,\n AST_BigInt,\n AST_Binary,\n AST_Block,\n AST_BlockStatement,\n AST_Boolean,\n AST_Break,\n AST_Call,\n AST_Catch,\n AST_Chain,\n AST_Class,\n AST_ClassProperty,\n AST_ClassStaticBlock,\n AST_ConciseMethod,\n AST_Conditional,\n AST_Const,\n AST_Constant,\n AST_Debugger,\n AST_Default,\n AST_DefaultAssign,\n AST_Definitions,\n AST_Defun,\n AST_Destructuring,\n AST_Directive,\n AST_Do,\n AST_Dot,\n AST_DWLoop,\n AST_EmptyStatement,\n AST_Exit,\n AST_Expansion,\n AST_Export,\n AST_False,\n AST_For,\n AST_ForIn,\n AST_Function,\n AST_Hole,\n AST_If,\n AST_Import,\n AST_Infinity,\n AST_LabeledStatement,\n AST_Lambda,\n AST_Let,\n AST_NaN,\n AST_New,\n AST_Node,\n AST_Null,\n AST_Number,\n AST_Object,\n AST_ObjectKeyVal,\n AST_ObjectProperty,\n AST_PrefixedTemplateString,\n AST_PropAccess,\n AST_RegExp,\n AST_Return,\n AST_Scope,\n AST_Sequence,\n AST_SimpleStatement,\n AST_Statement,\n AST_String,\n AST_Sub,\n AST_Switch,\n AST_SwitchBranch,\n AST_Symbol,\n AST_SymbolClassProperty,\n AST_SymbolDeclaration,\n AST_SymbolDefun,\n AST_SymbolExport,\n AST_SymbolFunarg,\n AST_SymbolLambda,\n AST_SymbolLet,\n AST_SymbolMethod,\n AST_SymbolRef,\n AST_TemplateString,\n AST_This,\n AST_Toplevel,\n AST_True,\n AST_Try,\n AST_Unary,\n AST_UnaryPostfix,\n AST_UnaryPrefix,\n AST_Undefined,\n AST_Var,\n AST_VarDef,\n AST_While,\n AST_With,\n AST_Yield,\n\n TreeTransformer,\n TreeWalker,\n walk,\n walk_abort,\n\n _NOINLINE,\n} from \"../ast.js\";\nimport {\n defaults,\n HOP,\n make_node,\n makePredicate,\n MAP,\n remove,\n return_false,\n return_true,\n regexp_source_fix,\n has_annotation,\n regexp_is_safe,\n} from \"../utils/index.js\";\nimport { first_in_statement } from \"../utils/first_in_statement.js\";\nimport { equivalent_to } from \"../equivalent-to.js\";\nimport {\n is_basic_identifier_string,\n JS_Parse_Error,\n parse,\n PRECEDENCE,\n} from \"../parse.js\";\nimport { OutputStream } from \"../output.js\";\nimport { base54, format_mangler_options } from \"../scope.js\";\nimport \"../size.js\";\n\nimport \"./evaluate.js\";\nimport \"./drop-side-effect-free.js\";\nimport \"./drop-unused.js\";\nimport \"./reduce-vars.js\";\nimport {\n is_undeclared_ref,\n lazy_op,\n is_nullish,\n is_undefined,\n is_lhs,\n aborts,\n} from \"./inference.js\";\nimport {\n SQUEEZED,\n OPTIMIZED,\n CLEAR_BETWEEN_PASSES,\n TOP,\n UNDEFINED,\n UNUSED,\n TRUTHY,\n FALSY,\n\n has_flag,\n set_flag,\n clear_flag,\n} from \"./compressor-flags.js\";\nimport {\n make_sequence,\n best_of,\n best_of_expression,\n make_node_from_constant,\n merge_sequence,\n get_simple_key,\n has_break_or_continue,\n maintain_this_binding,\n is_empty,\n is_identifier_atom,\n is_reachable,\n can_be_evicted_from_block,\n as_statement_array,\n is_func_expr,\n} from \"./common.js\";\nimport { tighten_body, trim_unreachable_code } from \"./tighten-body.js\";\nimport { inline_into_symbolref, inline_into_call } from \"./inline.js\";\nimport \"./global-defs.js\";\n\nclass Compressor extends TreeWalker {\n constructor(options, { false_by_default = false, mangle_options = false }) {\n super();\n if (options.defaults !== undefined && !options.defaults) false_by_default = true;\n this.options = defaults(options, {\n arguments : false,\n arrows : !false_by_default,\n booleans : !false_by_default,\n booleans_as_integers : false,\n collapse_vars : !false_by_default,\n comparisons : !false_by_default,\n computed_props: !false_by_default,\n conditionals : !false_by_default,\n dead_code : !false_by_default,\n defaults : true,\n directives : !false_by_default,\n drop_console : false,\n drop_debugger : !false_by_default,\n ecma : 5,\n evaluate : !false_by_default,\n expression : false,\n global_defs : false,\n hoist_funs : false,\n hoist_props : !false_by_default,\n hoist_vars : false,\n ie8 : false,\n if_return : !false_by_default,\n inline : !false_by_default,\n join_vars : !false_by_default,\n keep_classnames: false,\n keep_fargs : true,\n keep_fnames : false,\n keep_infinity : false,\n lhs_constants : !false_by_default,\n loops : !false_by_default,\n module : false,\n negate_iife : !false_by_default,\n passes : 1,\n properties : !false_by_default,\n pure_getters : !false_by_default && \"strict\",\n pure_funcs : null,\n pure_new : false,\n reduce_funcs : !false_by_default,\n reduce_vars : !false_by_default,\n sequences : !false_by_default,\n side_effects : !false_by_default,\n switches : !false_by_default,\n top_retain : null,\n toplevel : !!(options && options[\"top_retain\"]),\n typeofs : !false_by_default,\n unsafe : false,\n unsafe_arrows : false,\n unsafe_comps : false,\n unsafe_Function: false,\n unsafe_math : false,\n unsafe_symbols: false,\n unsafe_methods: false,\n unsafe_proto : false,\n unsafe_regexp : false,\n unsafe_undefined: false,\n unused : !false_by_default,\n warnings : false // legacy\n }, true);\n var global_defs = this.options[\"global_defs\"];\n if (typeof global_defs == \"object\") for (var key in global_defs) {\n if (key[0] === \"@\" && HOP(global_defs, key)) {\n global_defs[key.slice(1)] = parse(global_defs[key], {\n expression: true\n });\n }\n }\n if (this.options[\"inline\"] === true) this.options[\"inline\"] = 3;\n var pure_funcs = this.options[\"pure_funcs\"];\n if (typeof pure_funcs == \"function\") {\n this.pure_funcs = pure_funcs;\n } else {\n this.pure_funcs = pure_funcs ? function(node) {\n return !pure_funcs.includes(node.expression.print_to_string());\n } : return_true;\n }\n var top_retain = this.options[\"top_retain\"];\n if (top_retain instanceof RegExp) {\n this.top_retain = function(def) {\n return top_retain.test(def.name);\n };\n } else if (typeof top_retain == \"function\") {\n this.top_retain = top_retain;\n } else if (top_retain) {\n if (typeof top_retain == \"string\") {\n top_retain = top_retain.split(/,/);\n }\n this.top_retain = function(def) {\n return top_retain.includes(def.name);\n };\n }\n if (this.options[\"module\"]) {\n this.directives[\"use strict\"] = true;\n this.options[\"toplevel\"] = true;\n }\n var toplevel = this.options[\"toplevel\"];\n this.toplevel = typeof toplevel == \"string\" ? {\n funcs: /funcs/.test(toplevel),\n vars: /vars/.test(toplevel)\n } : {\n funcs: toplevel,\n vars: toplevel\n };\n var sequences = this.options[\"sequences\"];\n this.sequences_limit = sequences == 1 ? 800 : sequences | 0;\n this.evaluated_regexps = new Map();\n this._toplevel = undefined;\n this._mangle_options = mangle_options\n ? format_mangler_options(mangle_options)\n : mangle_options;\n }\n\n mangle_options() {\n var nth_identifier = this._mangle_options && this._mangle_options.nth_identifier || base54;\n var module = this._mangle_options && this._mangle_options.module || this.option(\"module\");\n return { ie8: this.option(\"ie8\"), nth_identifier, module };\n }\n\n option(key) {\n return this.options[key];\n }\n\n exposed(def) {\n if (def.export) return true;\n if (def.global) for (var i = 0, len = def.orig.length; i < len; i++)\n if (!this.toplevel[def.orig[i] instanceof AST_SymbolDefun ? \"funcs\" : \"vars\"])\n return true;\n return false;\n }\n\n in_boolean_context() {\n if (!this.option(\"booleans\")) return false;\n var self = this.self();\n for (var i = 0, p; p = this.parent(i); i++) {\n if (p instanceof AST_SimpleStatement\n || p instanceof AST_Conditional && p.condition === self\n || p instanceof AST_DWLoop && p.condition === self\n || p instanceof AST_For && p.condition === self\n || p instanceof AST_If && p.condition === self\n || p instanceof AST_UnaryPrefix && p.operator == \"!\" && p.expression === self) {\n return true;\n }\n if (\n p instanceof AST_Binary\n && (\n p.operator == \"&&\"\n || p.operator == \"||\"\n || p.operator == \"??\"\n )\n || p instanceof AST_Conditional\n || p.tail_node() === self\n ) {\n self = p;\n } else {\n return false;\n }\n }\n }\n\n get_toplevel() {\n return this._toplevel;\n }\n\n compress(toplevel) {\n toplevel = toplevel.resolve_defines(this);\n this._toplevel = toplevel;\n if (this.option(\"expression\")) {\n this._toplevel.process_expression(true);\n }\n var passes = +this.options.passes || 1;\n var min_count = 1 / 0;\n var stopping = false;\n var mangle = this.mangle_options();\n for (var pass = 0; pass < passes; pass++) {\n this._toplevel.figure_out_scope(mangle);\n if (pass === 0 && this.option(\"drop_console\")) {\n // must be run before reduce_vars and compress pass\n this._toplevel = this._toplevel.drop_console(this.option(\"drop_console\"));\n }\n if (pass > 0 || this.option(\"reduce_vars\")) {\n this._toplevel.reset_opt_flags(this);\n }\n this._toplevel = this._toplevel.transform(this);\n if (passes > 1) {\n let count = 0;\n walk(this._toplevel, () => { count++; });\n if (count < min_count) {\n min_count = count;\n stopping = false;\n } else if (stopping) {\n break;\n } else {\n stopping = true;\n }\n }\n }\n if (this.option(\"expression\")) {\n this._toplevel.process_expression(false);\n }\n toplevel = this._toplevel;\n this._toplevel = undefined;\n return toplevel;\n }\n\n before(node, descend) {\n if (has_flag(node, SQUEEZED)) return node;\n var was_scope = false;\n if (node instanceof AST_Scope) {\n node = node.hoist_properties(this);\n node = node.hoist_declarations(this);\n was_scope = true;\n }\n // Before https://github.com/mishoo/UglifyJS2/pull/1602 AST_Node.optimize()\n // would call AST_Node.transform() if a different instance of AST_Node is\n // produced after def_optimize().\n // This corrupts TreeWalker.stack, which cause AST look-ups to malfunction.\n // Migrate and defer all children's AST_Node.transform() to below, which\n // will now happen after this parent AST_Node has been properly substituted\n // thus gives a consistent AST snapshot.\n descend(node, this);\n // Existing code relies on how AST_Node.optimize() worked, and omitting the\n // following replacement call would result in degraded efficiency of both\n // output and performance.\n descend(node, this);\n var opt = node.optimize(this);\n if (was_scope && opt instanceof AST_Scope) {\n opt.drop_unused(this);\n descend(opt, this);\n }\n if (opt === node) set_flag(opt, SQUEEZED);\n return opt;\n }\n\n /** Alternative to plain is_lhs() which doesn't work within .optimize() */\n is_lhs() {\n const self = this.stack[this.stack.length - 1];\n const parent = this.stack[this.stack.length - 2];\n return is_lhs(self, parent);\n }\n}\n\nfunction def_optimize(node, optimizer) {\n node.DEFMETHOD(\"optimize\", function(compressor) {\n var self = this;\n if (has_flag(self, OPTIMIZED)) return self;\n if (compressor.has_directive(\"use asm\")) return self;\n var opt = optimizer(self, compressor);\n set_flag(opt, OPTIMIZED);\n return opt;\n });\n}\n\ndef_optimize(AST_Node, function(self) {\n return self;\n});\n\nAST_Toplevel.DEFMETHOD(\"drop_console\", function(options) {\n var isArray = Array.isArray(options);\n\n return this.transform(new TreeTransformer(function(self) {\n if (self.TYPE !== \"Call\") {\n return;\n }\n\n var exp = self.expression;\n\n if (!(exp instanceof AST_PropAccess)) {\n return;\n }\n\n if (isArray && options.indexOf(exp.property) === -1) {\n return;\n }\n\n var name = exp.expression;\n while (name.expression) {\n name = name.expression;\n }\n if (is_undeclared_ref(name) && name.name == \"console\") {\n return make_node(AST_Undefined, self);\n }\n }));\n});\n\nAST_Node.DEFMETHOD(\"equivalent_to\", function(node) {\n return equivalent_to(this, node);\n});\n\nAST_Scope.DEFMETHOD(\"process_expression\", function(insert, compressor) {\n var self = this;\n var tt = new TreeTransformer(function(node) {\n if (insert && node instanceof AST_SimpleStatement) {\n return make_node(AST_Return, node, {\n value: node.body\n });\n }\n if (!insert && node instanceof AST_Return) {\n if (compressor) {\n var value = node.value && node.value.drop_side_effect_free(compressor, true);\n return value\n ? make_node(AST_SimpleStatement, node, { body: value })\n : make_node(AST_EmptyStatement, node);\n }\n return make_node(AST_SimpleStatement, node, {\n body: node.value || make_node(AST_UnaryPrefix, node, {\n operator: \"void\",\n expression: make_node(AST_Number, node, {\n value: 0\n })\n })\n });\n }\n if (node instanceof AST_Class || node instanceof AST_Lambda && node !== self) {\n return node;\n }\n if (node instanceof AST_Block) {\n var index = node.body.length - 1;\n if (index >= 0) {\n node.body[index] = node.body[index].transform(tt);\n }\n } else if (node instanceof AST_If) {\n node.body = node.body.transform(tt);\n if (node.alternative) {\n node.alternative = node.alternative.transform(tt);\n }\n } else if (node instanceof AST_With) {\n node.body = node.body.transform(tt);\n }\n return node;\n });\n self.transform(tt);\n});\n\nAST_Toplevel.DEFMETHOD(\"reset_opt_flags\", function(compressor) {\n const self = this;\n const reduce_vars = compressor.option(\"reduce_vars\");\n\n const preparation = new TreeWalker(function(node, descend) {\n clear_flag(node, CLEAR_BETWEEN_PASSES);\n if (reduce_vars) {\n if (compressor.top_retain\n && node instanceof AST_Defun // Only functions are retained\n && preparation.parent() === self\n ) {\n set_flag(node, TOP);\n }\n return node.reduce_vars(preparation, descend, compressor);\n }\n });\n // Stack of look-up tables to keep track of whether a `SymbolDef` has been\n // properly assigned before use:\n // - `push()` & `pop()` when visiting conditional branches\n preparation.safe_ids = Object.create(null);\n preparation.in_loop = null;\n preparation.loop_ids = new Map();\n preparation.defs_to_safe_ids = new Map();\n self.walk(preparation);\n});\n\nAST_Symbol.DEFMETHOD(\"fixed_value\", function() {\n var fixed = this.thedef.fixed;\n if (!fixed || fixed instanceof AST_Node) return fixed;\n return fixed();\n});\n\nAST_SymbolRef.DEFMETHOD(\"is_immutable\", function() {\n var orig = this.definition().orig;\n return orig.length == 1 && orig[0] instanceof AST_SymbolLambda;\n});\n\nfunction find_variable(compressor, name) {\n var scope, i = 0;\n while (scope = compressor.parent(i++)) {\n if (scope instanceof AST_Scope) break;\n if (scope instanceof AST_Catch && scope.argname) {\n scope = scope.argname.definition().scope;\n break;\n }\n }\n return scope.find_variable(name);\n}\n\nvar global_names = makePredicate(\"Array Boolean clearInterval clearTimeout console Date decodeURI decodeURIComponent encodeURI encodeURIComponent Error escape eval EvalError Function isFinite isNaN JSON Math Number parseFloat parseInt RangeError ReferenceError RegExp Object setInterval setTimeout String SyntaxError TypeError unescape URIError\");\nAST_SymbolRef.DEFMETHOD(\"is_declared\", function(compressor) {\n return !this.definition().undeclared\n || compressor.option(\"unsafe\") && global_names.has(this.name);\n});\n\n/* -----[ optimizers ]----- */\n\nvar directives = new Set([\"use asm\", \"use strict\"]);\ndef_optimize(AST_Directive, function(self, compressor) {\n if (compressor.option(\"directives\")\n && (!directives.has(self.value) || compressor.has_directive(self.value) !== self)) {\n return make_node(AST_EmptyStatement, self);\n }\n return self;\n});\n\ndef_optimize(AST_Debugger, function(self, compressor) {\n if (compressor.option(\"drop_debugger\"))\n return make_node(AST_EmptyStatement, self);\n return self;\n});\n\ndef_optimize(AST_LabeledStatement, function(self, compressor) {\n if (self.body instanceof AST_Break\n && compressor.loopcontrol_target(self.body) === self.body) {\n return make_node(AST_EmptyStatement, self);\n }\n return self.label.references.length == 0 ? self.body : self;\n});\n\ndef_optimize(AST_Block, function(self, compressor) {\n tighten_body(self.body, compressor);\n return self;\n});\n\nfunction can_be_extracted_from_if_block(node) {\n return !(\n node instanceof AST_Const\n || node instanceof AST_Let\n || node instanceof AST_Class\n );\n}\n\ndef_optimize(AST_BlockStatement, function(self, compressor) {\n tighten_body(self.body, compressor);\n switch (self.body.length) {\n case 1:\n if (!compressor.has_directive(\"use strict\")\n && compressor.parent() instanceof AST_If\n && can_be_extracted_from_if_block(self.body[0])\n || can_be_evicted_from_block(self.body[0])) {\n return self.body[0];\n }\n break;\n case 0: return make_node(AST_EmptyStatement, self);\n }\n return self;\n});\n\nfunction opt_AST_Lambda(self, compressor) {\n tighten_body(self.body, compressor);\n if (compressor.option(\"side_effects\")\n && self.body.length == 1\n && self.body[0] === compressor.has_directive(\"use strict\")) {\n self.body.length = 0;\n }\n return self;\n}\ndef_optimize(AST_Lambda, opt_AST_Lambda);\n\nAST_Scope.DEFMETHOD(\"hoist_declarations\", function(compressor) {\n var self = this;\n if (compressor.has_directive(\"use asm\")) return self;\n\n var hoist_funs = compressor.option(\"hoist_funs\");\n var hoist_vars = compressor.option(\"hoist_vars\");\n\n if (hoist_funs || hoist_vars) {\n var dirs = [];\n var hoisted = [];\n var vars = new Map(), vars_found = 0, var_decl = 0;\n // let's count var_decl first, we seem to waste a lot of\n // space if we hoist `var` when there's only one.\n walk(self, node => {\n if (node instanceof AST_Scope && node !== self)\n return true;\n if (node instanceof AST_Var) {\n ++var_decl;\n return true;\n }\n });\n hoist_vars = hoist_vars && var_decl > 1;\n var tt = new TreeTransformer(\n function before(node) {\n if (node !== self) {\n if (node instanceof AST_Directive) {\n dirs.push(node);\n return make_node(AST_EmptyStatement, node);\n }\n if (hoist_funs && node instanceof AST_Defun\n && !(tt.parent() instanceof AST_Export)\n && tt.parent() === self) {\n hoisted.push(node);\n return make_node(AST_EmptyStatement, node);\n }\n if (\n hoist_vars\n && node instanceof AST_Var\n && !node.definitions.some(def => def.name instanceof AST_Destructuring)\n ) {\n node.definitions.forEach(function(def) {\n vars.set(def.name.name, def);\n ++vars_found;\n });\n var seq = node.to_assignments(compressor);\n var p = tt.parent();\n if (p instanceof AST_ForIn && p.init === node) {\n if (seq == null) {\n var def = node.definitions[0].name;\n return make_node(AST_SymbolRef, def, def);\n }\n return seq;\n }\n if (p instanceof AST_For && p.init === node) {\n return seq;\n }\n if (!seq) return make_node(AST_EmptyStatement, node);\n return make_node(AST_SimpleStatement, node, {\n body: seq\n });\n }\n if (node instanceof AST_Scope)\n return node; // to avoid descending in nested scopes\n }\n }\n );\n self = self.transform(tt);\n if (vars_found > 0) {\n // collect only vars which don't show up in self's arguments list\n var defs = [];\n const is_lambda = self instanceof AST_Lambda;\n const args_as_names = is_lambda ? self.args_as_names() : null;\n vars.forEach((def, name) => {\n if (is_lambda && args_as_names.some((x) => x.name === def.name.name)) {\n vars.delete(name);\n } else {\n def = def.clone();\n def.value = null;\n defs.push(def);\n vars.set(name, def);\n }\n });\n if (defs.length > 0) {\n // try to merge in assignments\n for (var i = 0; i < self.body.length;) {\n if (self.body[i] instanceof AST_SimpleStatement) {\n var expr = self.body[i].body, sym, assign;\n if (expr instanceof AST_Assign\n && expr.operator == \"=\"\n && (sym = expr.left) instanceof AST_Symbol\n && vars.has(sym.name)\n ) {\n var def = vars.get(sym.name);\n if (def.value) break;\n def.value = expr.right;\n remove(defs, def);\n defs.push(def);\n self.body.splice(i, 1);\n continue;\n }\n if (expr instanceof AST_Sequence\n && (assign = expr.expressions[0]) instanceof AST_Assign\n && assign.operator == \"=\"\n && (sym = assign.left) instanceof AST_Symbol\n && vars.has(sym.name)\n ) {\n var def = vars.get(sym.name);\n if (def.value) break;\n def.value = assign.right;\n remove(defs, def);\n defs.push(def);\n self.body[i].body = make_sequence(expr, expr.expressions.slice(1));\n continue;\n }\n }\n if (self.body[i] instanceof AST_EmptyStatement) {\n self.body.splice(i, 1);\n continue;\n }\n if (self.body[i] instanceof AST_BlockStatement) {\n self.body.splice(i, 1, ...self.body[i].body);\n continue;\n }\n break;\n }\n defs = make_node(AST_Var, self, {\n definitions: defs\n });\n hoisted.push(defs);\n }\n }\n self.body = dirs.concat(hoisted, self.body);\n }\n return self;\n});\n\nAST_Scope.DEFMETHOD(\"hoist_properties\", function(compressor) {\n var self = this;\n if (!compressor.option(\"hoist_props\") || compressor.has_directive(\"use asm\")) return self;\n var top_retain = self instanceof AST_Toplevel && compressor.top_retain || return_false;\n var defs_by_id = new Map();\n var hoister = new TreeTransformer(function(node, descend) {\n if (node instanceof AST_VarDef) {\n const sym = node.name;\n let def;\n let value;\n if (sym.scope === self\n && (def = sym.definition()).escaped != 1\n && !def.assignments\n && !def.direct_access\n && !def.single_use\n && !compressor.exposed(def)\n && !top_retain(def)\n && (value = sym.fixed_value()) === node.value\n && value instanceof AST_Object\n && !value.properties.some(prop =>\n prop instanceof AST_Expansion || prop.computed_key()\n )\n ) {\n descend(node, this);\n const defs = new Map();\n const assignments = [];\n value.properties.forEach(({ key, value }) => {\n const scope = hoister.find_scope();\n const symbol = self.create_symbol(sym.CTOR, {\n source: sym,\n scope,\n conflict_scopes: new Set([\n scope,\n ...sym.definition().references.map(ref => ref.scope)\n ]),\n tentative_name: sym.name + \"_\" + key\n });\n\n defs.set(String(key), symbol.definition());\n\n assignments.push(make_node(AST_VarDef, node, {\n name: symbol,\n value\n }));\n });\n defs_by_id.set(def.id, defs);\n return MAP.splice(assignments);\n }\n } else if (node instanceof AST_PropAccess\n && node.expression instanceof AST_SymbolRef\n ) {\n const defs = defs_by_id.get(node.expression.definition().id);\n if (defs) {\n const def = defs.get(String(get_simple_key(node.property)));\n const sym = make_node(AST_SymbolRef, node, {\n name: def.name,\n scope: node.expression.scope,\n thedef: def\n });\n sym.reference({});\n return sym;\n }\n }\n });\n return self.transform(hoister);\n});\n\ndef_optimize(AST_SimpleStatement, function(self, compressor) {\n if (compressor.option(\"side_effects\")) {\n var body = self.body;\n var node = body.drop_side_effect_free(compressor, true);\n if (!node) {\n return make_node(AST_EmptyStatement, self);\n }\n if (node !== body) {\n return make_node(AST_SimpleStatement, self, { body: node });\n }\n }\n return self;\n});\n\ndef_optimize(AST_While, function(self, compressor) {\n return compressor.option(\"loops\") ? make_node(AST_For, self, self).optimize(compressor) : self;\n});\n\ndef_optimize(AST_Do, function(self, compressor) {\n if (!compressor.option(\"loops\")) return self;\n var cond = self.condition.tail_node().evaluate(compressor);\n if (!(cond instanceof AST_Node)) {\n if (cond) return make_node(AST_For, self, {\n body: make_node(AST_BlockStatement, self.body, {\n body: [\n self.body,\n make_node(AST_SimpleStatement, self.condition, {\n body: self.condition\n })\n ]\n })\n }).optimize(compressor);\n if (!has_break_or_continue(self, compressor.parent())) {\n return make_node(AST_BlockStatement, self.body, {\n body: [\n self.body,\n make_node(AST_SimpleStatement, self.condition, {\n body: self.condition\n })\n ]\n }).optimize(compressor);\n }\n }\n return self;\n});\n\nfunction if_break_in_loop(self, compressor) {\n var first = self.body instanceof AST_BlockStatement ? self.body.body[0] : self.body;\n if (compressor.option(\"dead_code\") && is_break(first)) {\n var body = [];\n if (self.init instanceof AST_Statement) {\n body.push(self.init);\n } else if (self.init) {\n body.push(make_node(AST_SimpleStatement, self.init, {\n body: self.init\n }));\n }\n if (self.condition) {\n body.push(make_node(AST_SimpleStatement, self.condition, {\n body: self.condition\n }));\n }\n trim_unreachable_code(compressor, self.body, body);\n return make_node(AST_BlockStatement, self, {\n body: body\n });\n }\n if (first instanceof AST_If) {\n if (is_break(first.body)) {\n if (self.condition) {\n self.condition = make_node(AST_Binary, self.condition, {\n left: self.condition,\n operator: \"&&\",\n right: first.condition.negate(compressor),\n });\n } else {\n self.condition = first.condition.negate(compressor);\n }\n drop_it(first.alternative);\n } else if (is_break(first.alternative)) {\n if (self.condition) {\n self.condition = make_node(AST_Binary, self.condition, {\n left: self.condition,\n operator: \"&&\",\n right: first.condition,\n });\n } else {\n self.condition = first.condition;\n }\n drop_it(first.body);\n }\n }\n return self;\n\n function is_break(node) {\n return node instanceof AST_Break\n && compressor.loopcontrol_target(node) === compressor.self();\n }\n\n function drop_it(rest) {\n rest = as_statement_array(rest);\n if (self.body instanceof AST_BlockStatement) {\n self.body = self.body.clone();\n self.body.body = rest.concat(self.body.body.slice(1));\n self.body = self.body.transform(compressor);\n } else {\n self.body = make_node(AST_BlockStatement, self.body, {\n body: rest\n }).transform(compressor);\n }\n self = if_break_in_loop(self, compressor);\n }\n}\n\ndef_optimize(AST_For, function(self, compressor) {\n if (!compressor.option(\"loops\")) return self;\n if (compressor.option(\"side_effects\") && self.init) {\n self.init = self.init.drop_side_effect_free(compressor);\n }\n if (self.condition) {\n var cond = self.condition.evaluate(compressor);\n if (!(cond instanceof AST_Node)) {\n if (cond) self.condition = null;\n else if (!compressor.option(\"dead_code\")) {\n var orig = self.condition;\n self.condition = make_node_from_constant(cond, self.condition);\n self.condition = best_of_expression(self.condition.transform(compressor), orig);\n }\n }\n if (compressor.option(\"dead_code\")) {\n if (cond instanceof AST_Node) cond = self.condition.tail_node().evaluate(compressor);\n if (!cond) {\n var body = [];\n trim_unreachable_code(compressor, self.body, body);\n if (self.init instanceof AST_Statement) {\n body.push(self.init);\n } else if (self.init) {\n body.push(make_node(AST_SimpleStatement, self.init, {\n body: self.init\n }));\n }\n body.push(make_node(AST_SimpleStatement, self.condition, {\n body: self.condition\n }));\n return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor);\n }\n }\n }\n return if_break_in_loop(self, compressor);\n});\n\ndef_optimize(AST_If, function(self, compressor) {\n if (is_empty(self.alternative)) self.alternative = null;\n\n if (!compressor.option(\"conditionals\")) return self;\n // if condition can be statically determined, drop\n // one of the blocks. note, statically determined implies\n // “has no side effects”; also it doesn't work for cases like\n // `x && true`, though it probably should.\n var cond = self.condition.evaluate(compressor);\n if (!compressor.option(\"dead_code\") && !(cond instanceof AST_Node)) {\n var orig = self.condition;\n self.condition = make_node_from_constant(cond, orig);\n self.condition = best_of_expression(self.condition.transform(compressor), orig);\n }\n if (compressor.option(\"dead_code\")) {\n if (cond instanceof AST_Node) cond = self.condition.tail_node().evaluate(compressor);\n if (!cond) {\n var body = [];\n trim_unreachable_code(compressor, self.body, body);\n body.push(make_node(AST_SimpleStatement, self.condition, {\n body: self.condition\n }));\n if (self.alternative) body.push(self.alternative);\n return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor);\n } else if (!(cond instanceof AST_Node)) {\n var body = [];\n body.push(make_node(AST_SimpleStatement, self.condition, {\n body: self.condition\n }));\n body.push(self.body);\n if (self.alternative) {\n trim_unreachable_code(compressor, self.alternative, body);\n }\n return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor);\n }\n }\n var negated = self.condition.negate(compressor);\n var self_condition_length = self.condition.size();\n var negated_length = negated.size();\n var negated_is_best = negated_length < self_condition_length;\n if (self.alternative && negated_is_best) {\n negated_is_best = false; // because we already do the switch here.\n // no need to swap values of self_condition_length and negated_length\n // here because they are only used in an equality comparison later on.\n self.condition = negated;\n var tmp = self.body;\n self.body = self.alternative || make_node(AST_EmptyStatement, self);\n self.alternative = tmp;\n }\n if (is_empty(self.body) && is_empty(self.alternative)) {\n return make_node(AST_SimpleStatement, self.condition, {\n body: self.condition.clone()\n }).optimize(compressor);\n }\n if (self.body instanceof AST_SimpleStatement\n && self.alternative instanceof AST_SimpleStatement) {\n return make_node(AST_SimpleStatement, self, {\n body: make_node(AST_Conditional, self, {\n condition : self.condition,\n consequent : self.body.body,\n alternative : self.alternative.body\n })\n }).optimize(compressor);\n }\n if (is_empty(self.alternative) && self.body instanceof AST_SimpleStatement) {\n if (self_condition_length === negated_length && !negated_is_best\n && self.condition instanceof AST_Binary && self.condition.operator == \"||\") {\n // although the code length of self.condition and negated are the same,\n // negated does not require additional surrounding parentheses.\n // see https://github.com/mishoo/UglifyJS2/issues/979\n negated_is_best = true;\n }\n if (negated_is_best) return make_node(AST_SimpleStatement, self, {\n body: make_node(AST_Binary, self, {\n operator : \"||\",\n left : negated,\n right : self.body.body\n })\n }).optimize(compressor);\n return make_node(AST_SimpleStatement, self, {\n body: make_node(AST_Binary, self, {\n operator : \"&&\",\n left : self.condition,\n right : self.body.body\n })\n }).optimize(compressor);\n }\n if (self.body instanceof AST_EmptyStatement\n && self.alternative instanceof AST_SimpleStatement) {\n return make_node(AST_SimpleStatement, self, {\n body: make_node(AST_Binary, self, {\n operator : \"||\",\n left : self.condition,\n right : self.alternative.body\n })\n }).optimize(compressor);\n }\n if (self.body instanceof AST_Exit\n && self.alternative instanceof AST_Exit\n && self.body.TYPE == self.alternative.TYPE) {\n return make_node(self.body.CTOR, self, {\n value: make_node(AST_Conditional, self, {\n condition : self.condition,\n consequent : self.body.value || make_node(AST_Undefined, self.body),\n alternative : self.alternative.value || make_node(AST_Undefined, self.alternative)\n }).transform(compressor)\n }).optimize(compressor);\n }\n if (self.body instanceof AST_If\n && !self.body.alternative\n && !self.alternative) {\n self = make_node(AST_If, self, {\n condition: make_node(AST_Binary, self.condition, {\n operator: \"&&\",\n left: self.condition,\n right: self.body.condition\n }),\n body: self.body.body,\n alternative: null\n });\n }\n if (aborts(self.body)) {\n if (self.alternative) {\n var alt = self.alternative;\n self.alternative = null;\n return make_node(AST_BlockStatement, self, {\n body: [ self, alt ]\n }).optimize(compressor);\n }\n }\n if (aborts(self.alternative)) {\n var body = self.body;\n self.body = self.alternative;\n self.condition = negated_is_best ? negated : self.condition.negate(compressor);\n self.alternative = null;\n return make_node(AST_BlockStatement, self, {\n body: [ self, body ]\n }).optimize(compressor);\n }\n return self;\n});\n\ndef_optimize(AST_Switch, function(self, compressor) {\n if (!compressor.option(\"switches\")) return self;\n var branch;\n var value = self.expression.evaluate(compressor);\n if (!(value instanceof AST_Node)) {\n var orig = self.expression;\n self.expression = make_node_from_constant(value, orig);\n self.expression = best_of_expression(self.expression.transform(compressor), orig);\n }\n if (!compressor.option(\"dead_code\")) return self;\n if (value instanceof AST_Node) {\n value = self.expression.tail_node().evaluate(compressor);\n }\n var decl = [];\n var body = [];\n var default_branch;\n var exact_match;\n for (var i = 0, len = self.body.length; i < len && !exact_match; i++) {\n branch = self.body[i];\n if (branch instanceof AST_Default) {\n if (!default_branch) {\n default_branch = branch;\n } else {\n eliminate_branch(branch, body[body.length - 1]);\n }\n } else if (!(value instanceof AST_Node)) {\n var exp = branch.expression.evaluate(compressor);\n if (!(exp instanceof AST_Node) && exp !== value) {\n eliminate_branch(branch, body[body.length - 1]);\n continue;\n }\n if (exp instanceof AST_Node) exp = branch.expression.tail_node().evaluate(compressor);\n if (exp === value) {\n exact_match = branch;\n if (default_branch) {\n var default_index = body.indexOf(default_branch);\n body.splice(default_index, 1);\n eliminate_branch(default_branch, body[default_index - 1]);\n default_branch = null;\n }\n }\n }\n body.push(branch);\n }\n while (i < len) eliminate_branch(self.body[i++], body[body.length - 1]);\n self.body = body;\n\n let default_or_exact = default_branch || exact_match;\n default_branch = null;\n exact_match = null;\n\n // group equivalent branches so they will be located next to each other,\n // that way the next micro-optimization will merge them.\n // ** bail micro-optimization if not a simple switch case with breaks\n if (body.every((branch, i) =>\n (branch === default_or_exact || branch.expression instanceof AST_Constant)\n && (branch.body.length === 0 || aborts(branch) || body.length - 1 === i))\n ) {\n for (let i = 0; i < body.length; i++) {\n const branch = body[i];\n for (let j = i + 1; j < body.length; j++) {\n const next = body[j];\n if (next.body.length === 0) continue;\n const last_branch = j === (body.length - 1);\n const equivalentBranch = branches_equivalent(next, branch, false);\n if (equivalentBranch || (last_branch && branches_equivalent(next, branch, true))) {\n if (!equivalentBranch && last_branch) {\n next.body.push(make_node(AST_Break));\n }\n\n // let's find previous siblings with inert fallthrough...\n let x = j - 1;\n let fallthroughDepth = 0;\n while (x > i) {\n if (is_inert_body(body[x--])) {\n fallthroughDepth++;\n } else {\n break;\n }\n }\n\n const plucked = body.splice(j - fallthroughDepth, 1 + fallthroughDepth);\n body.splice(i + 1, 0, ...plucked);\n i += plucked.length;\n }\n }\n }\n }\n\n // merge equivalent branches in a row\n for (let i = 0; i < body.length; i++) {\n let branch = body[i];\n if (branch.body.length === 0) continue;\n if (!aborts(branch)) continue;\n\n for (let j = i + 1; j < body.length; i++, j++) {\n let next = body[j];\n if (next.body.length === 0) continue;\n if (\n branches_equivalent(next, branch, false)\n || (j === body.length - 1 && branches_equivalent(next, branch, true))\n ) {\n branch.body = [];\n branch = next;\n continue;\n }\n break;\n }\n }\n\n // Prune any empty branches at the end of the switch statement.\n {\n let i = body.length - 1;\n for (; i >= 0; i--) {\n let bbody = body[i].body;\n if (is_break(bbody[bbody.length - 1], compressor)) bbody.pop();\n if (!is_inert_body(body[i])) break;\n }\n // i now points to the index of a branch that contains a body. By incrementing, it's\n // pointing to the first branch that's empty.\n i++;\n if (!default_or_exact || body.indexOf(default_or_exact) >= i) {\n // The default behavior is to do nothing. We can take advantage of that to\n // remove all case expressions that are side-effect free that also do\n // nothing, since they'll default to doing nothing. But we can't remove any\n // case expressions before one that would side-effect, since they may cause\n // the side-effect to be skipped.\n for (let j = body.length - 1; j >= i; j--) {\n let branch = body[j];\n if (branch === default_or_exact) {\n default_or_exact = null;\n body.pop();\n } else if (!branch.expression.has_side_effects(compressor)) {\n body.pop();\n } else {\n break;\n }\n }\n }\n }\n\n\n // Prune side-effect free branches that fall into default.\n DEFAULT: if (default_or_exact) {\n let default_index = body.indexOf(default_or_exact);\n let default_body_index = default_index;\n for (; default_body_index < body.length - 1; default_body_index++) {\n if (!is_inert_body(body[default_body_index])) break;\n }\n if (default_body_index < body.length - 1) {\n break DEFAULT;\n }\n\n let side_effect_index = body.length - 1;\n for (; side_effect_index >= 0; side_effect_index--) {\n let branch = body[side_effect_index];\n if (branch === default_or_exact) continue;\n if (branch.expression.has_side_effects(compressor)) break;\n }\n // If the default behavior comes after any side-effect case expressions,\n // then we can fold all side-effect free cases into the default branch.\n // If the side-effect case is after the default, then any side-effect\n // free cases could prevent the side-effect from occurring.\n if (default_body_index > side_effect_index) {\n let prev_body_index = default_index - 1;\n for (; prev_body_index >= 0; prev_body_index--) {\n if (!is_inert_body(body[prev_body_index])) break;\n }\n let before = Math.max(side_effect_index, prev_body_index) + 1;\n let after = default_index;\n if (side_effect_index > default_index) {\n // If the default falls into the same body as a side-effect\n // case, then we need preserve that case and only prune the\n // cases after it.\n after = side_effect_index;\n body[side_effect_index].body = body[default_body_index].body;\n } else {\n // The default will be the last branch.\n default_or_exact.body = body[default_body_index].body;\n }\n\n // Prune everything after the default (or last side-effect case)\n // until the next case with a body.\n body.splice(after + 1, default_body_index - after);\n // Prune everything before the default that falls into it.\n body.splice(before, default_index - before);\n }\n }\n\n // See if we can remove the switch entirely if all cases (the default) fall into the same case body.\n DEFAULT: if (default_or_exact) {\n let i = body.findIndex(branch => !is_inert_body(branch));\n let caseBody;\n // `i` is equal to one of the following:\n // - `-1`, there is no body in the switch statement.\n // - `body.length - 1`, all cases fall into the same body.\n // - anything else, there are multiple bodies in the switch.\n if (i === body.length - 1) {\n // All cases fall into the case body.\n let branch = body[i];\n if (has_nested_break(self)) break DEFAULT;\n\n // This is the last case body, and we've already pruned any breaks, so it's\n // safe to hoist.\n caseBody = make_node(AST_BlockStatement, branch, {\n body: branch.body\n });\n branch.body = [];\n } else if (i !== -1) {\n // If there are multiple bodies, then we cannot optimize anything.\n break DEFAULT;\n }\n\n let sideEffect = body.find(branch => {\n return (\n branch !== default_or_exact\n && branch.expression.has_side_effects(compressor)\n );\n });\n // If no cases cause a side-effect, we can eliminate the switch entirely.\n if (!sideEffect) {\n return make_node(AST_BlockStatement, self, {\n body: decl.concat(\n statement(self.expression),\n default_or_exact.expression ? statement(default_or_exact.expression) : [],\n caseBody || []\n )\n }).optimize(compressor);\n }\n\n // If we're this far, either there was no body or all cases fell into the same body.\n // If there was no body, then we don't need a default branch (because the default is\n // do nothing). If there was a body, we'll extract it to after the switch, so the\n // switch's new default is to do nothing and we can still prune it.\n const default_index = body.indexOf(default_or_exact);\n body.splice(default_index, 1);\n default_or_exact = null;\n\n if (caseBody) {\n // Recurse into switch statement one more time so that we can append the case body\n // outside of the switch. This recursion will only happen once since we've pruned\n // the default case.\n return make_node(AST_BlockStatement, self, {\n body: decl.concat(self, caseBody)\n }).optimize(compressor);\n }\n // If we fall here, there is a default branch somewhere, there are no case bodies,\n // and there's a side-effect somewhere. Just let the below paths take care of it.\n }\n\n if (body.length > 0) {\n body[0].body = decl.concat(body[0].body);\n }\n\n if (body.length == 0) {\n return make_node(AST_BlockStatement, self, {\n body: decl.concat(statement(self.expression))\n }).optimize(compressor);\n }\n if (body.length == 1 && !has_nested_break(self)) {\n // This is the last case body, and we've already pruned any breaks, so it's\n // safe to hoist.\n let branch = body[0];\n return make_node(AST_If, self, {\n condition: make_node(AST_Binary, self, {\n operator: \"===\",\n left: self.expression,\n right: branch.expression,\n }),\n body: make_node(AST_BlockStatement, branch, {\n body: branch.body\n }),\n alternative: null\n }).optimize(compressor);\n }\n if (body.length === 2 && default_or_exact && !has_nested_break(self)) {\n let branch = body[0] === default_or_exact ? body[1] : body[0];\n let exact_exp = default_or_exact.expression && statement(default_or_exact.expression);\n if (aborts(body[0])) {\n // Only the first branch body could have a break (at the last statement)\n let first = body[0];\n if (is_break(first.body[first.body.length - 1], compressor)) {\n first.body.pop();\n }\n return make_node(AST_If, self, {\n condition: make_node(AST_Binary, self, {\n operator: \"===\",\n left: self.expression,\n right: branch.expression,\n }),\n body: make_node(AST_BlockStatement, branch, {\n body: branch.body\n }),\n alternative: make_node(AST_BlockStatement, default_or_exact, {\n body: [].concat(\n exact_exp || [],\n default_or_exact.body\n )\n })\n }).optimize(compressor);\n }\n let operator = \"===\";\n let consequent = make_node(AST_BlockStatement, branch, {\n body: branch.body,\n });\n let always = make_node(AST_BlockStatement, default_or_exact, {\n body: [].concat(\n exact_exp || [],\n default_or_exact.body\n )\n });\n if (body[0] === default_or_exact) {\n operator = \"!==\";\n let tmp = always;\n always = consequent;\n consequent = tmp;\n }\n return make_node(AST_BlockStatement, self, {\n body: [\n make_node(AST_If, self, {\n condition: make_node(AST_Binary, self, {\n operator: operator,\n left: self.expression,\n right: branch.expression,\n }),\n body: consequent,\n alternative: null\n })\n ].concat(always)\n }).optimize(compressor);\n }\n return self;\n\n function eliminate_branch(branch, prev) {\n if (prev && !aborts(prev)) {\n prev.body = prev.body.concat(branch.body);\n } else {\n trim_unreachable_code(compressor, branch, decl);\n }\n }\n function branches_equivalent(branch, prev, insertBreak) {\n let bbody = branch.body;\n let pbody = prev.body;\n if (insertBreak) {\n bbody = bbody.concat(make_node(AST_Break));\n }\n if (bbody.length !== pbody.length) return false;\n let bblock = make_node(AST_BlockStatement, branch, { body: bbody });\n let pblock = make_node(AST_BlockStatement, prev, { body: pbody });\n return bblock.equivalent_to(pblock);\n }\n function statement(expression) {\n return make_node(AST_SimpleStatement, expression, {\n body: expression\n });\n }\n function has_nested_break(root) {\n let has_break = false;\n let tw = new TreeWalker(node => {\n if (has_break) return true;\n if (node instanceof AST_Lambda) return true;\n if (node instanceof AST_SimpleStatement) return true;\n if (!is_break(node, tw)) return;\n let parent = tw.parent();\n if (\n parent instanceof AST_SwitchBranch\n && parent.body[parent.body.length - 1] === node\n ) {\n return;\n }\n has_break = true;\n });\n root.walk(tw);\n return has_break;\n }\n function is_break(node, stack) {\n return node instanceof AST_Break\n && stack.loopcontrol_target(node) === self;\n }\n function is_inert_body(branch) {\n return !aborts(branch) && !make_node(AST_BlockStatement, branch, {\n body: branch.body\n }).has_side_effects(compressor);\n }\n});\n\ndef_optimize(AST_Try, function(self, compressor) {\n if (self.bcatch && self.bfinally && self.bfinally.body.every(is_empty)) self.bfinally = null;\n\n if (compressor.option(\"dead_code\") && self.body.body.every(is_empty)) {\n var body = [];\n if (self.bcatch) {\n trim_unreachable_code(compressor, self.bcatch, body);\n }\n if (self.bfinally) body.push(...self.bfinally.body);\n return make_node(AST_BlockStatement, self, {\n body: body\n }).optimize(compressor);\n }\n return self;\n});\n\nAST_Definitions.DEFMETHOD(\"to_assignments\", function(compressor) {\n var reduce_vars = compressor.option(\"reduce_vars\");\n var assignments = [];\n\n for (const def of this.definitions) {\n if (def.value) {\n var name = make_node(AST_SymbolRef, def.name, def.name);\n assignments.push(make_node(AST_Assign, def, {\n operator : \"=\",\n logical: false,\n left : name,\n right : def.value\n }));\n if (reduce_vars) name.definition().fixed = false;\n }\n const thedef = def.name.definition();\n thedef.eliminated++;\n thedef.replaced--;\n }\n\n if (assignments.length == 0) return null;\n return make_sequence(this, assignments);\n});\n\ndef_optimize(AST_Definitions, function(self) {\n if (self.definitions.length == 0) {\n return make_node(AST_EmptyStatement, self);\n }\n return self;\n});\n\ndef_optimize(AST_VarDef, function(self, compressor) {\n if (\n self.name instanceof AST_SymbolLet\n && self.value != null\n && is_undefined(self.value, compressor)\n ) {\n self.value = null;\n }\n return self;\n});\n\ndef_optimize(AST_Import, function(self) {\n return self;\n});\n\ndef_optimize(AST_Call, function(self, compressor) {\n var exp = self.expression;\n var fn = exp;\n inline_array_like_spread(self.args);\n var simple_args = self.args.every((arg) => !(arg instanceof AST_Expansion));\n\n if (compressor.option(\"reduce_vars\") && fn instanceof AST_SymbolRef) {\n fn = fn.fixed_value();\n }\n\n var is_func = fn instanceof AST_Lambda;\n\n if (is_func && fn.pinned()) return self;\n\n if (compressor.option(\"unused\")\n && simple_args\n && is_func\n && !fn.uses_arguments) {\n var pos = 0, last = 0;\n for (var i = 0, len = self.args.length; i < len; i++) {\n if (fn.argnames[i] instanceof AST_Expansion) {\n if (has_flag(fn.argnames[i].expression, UNUSED)) while (i < len) {\n var node = self.args[i++].drop_side_effect_free(compressor);\n if (node) {\n self.args[pos++] = node;\n }\n } else while (i < len) {\n self.args[pos++] = self.args[i++];\n }\n last = pos;\n break;\n }\n var trim = i >= fn.argnames.length;\n if (trim || has_flag(fn.argnames[i], UNUSED)) {\n var node = self.args[i].drop_side_effect_free(compressor);\n if (node) {\n self.args[pos++] = node;\n } else if (!trim) {\n self.args[pos++] = make_node(AST_Number, self.args[i], {\n value: 0\n });\n continue;\n }\n } else {\n self.args[pos++] = self.args[i];\n }\n last = pos;\n }\n self.args.length = last;\n }\n\n if (compressor.option(\"unsafe\") && !exp.contains_optional()) {\n if (exp instanceof AST_Dot && exp.start.value === \"Array\" && exp.property === \"from\" && self.args.length === 1) {\n const [argument] = self.args;\n if (argument instanceof AST_Array) {\n return make_node(AST_Array, argument, {\n elements: argument.elements\n }).optimize(compressor);\n }\n }\n if (is_undeclared_ref(exp)) switch (exp.name) {\n case \"Array\":\n if (self.args.length != 1) {\n return make_node(AST_Array, self, {\n elements: self.args\n }).optimize(compressor);\n } else if (self.args[0] instanceof AST_Number && self.args[0].value <= 11) {\n const elements = [];\n for (let i = 0; i < self.args[0].value; i++) elements.push(new AST_Hole);\n return new AST_Array({ elements });\n }\n break;\n case \"Object\":\n if (self.args.length == 0) {\n return make_node(AST_Object, self, {\n properties: []\n });\n }\n break;\n case \"String\":\n if (self.args.length == 0) return make_node(AST_String, self, {\n value: \"\"\n });\n if (self.args.length <= 1) return make_node(AST_Binary, self, {\n left: self.args[0],\n operator: \"+\",\n right: make_node(AST_String, self, { value: \"\" })\n }).optimize(compressor);\n break;\n case \"Number\":\n if (self.args.length == 0) return make_node(AST_Number, self, {\n value: 0\n });\n if (self.args.length == 1 && compressor.option(\"unsafe_math\")) {\n return make_node(AST_UnaryPrefix, self, {\n expression: self.args[0],\n operator: \"+\"\n }).optimize(compressor);\n }\n break;\n case \"Symbol\":\n if (self.args.length == 1 && self.args[0] instanceof AST_String && compressor.option(\"unsafe_symbols\"))\n self.args.length = 0;\n break;\n case \"Boolean\":\n if (self.args.length == 0) return make_node(AST_False, self);\n if (self.args.length == 1) return make_node(AST_UnaryPrefix, self, {\n expression: make_node(AST_UnaryPrefix, self, {\n expression: self.args[0],\n operator: \"!\"\n }),\n operator: \"!\"\n }).optimize(compressor);\n break;\n case \"RegExp\":\n var params = [];\n if (self.args.length >= 1\n && self.args.length <= 2\n && self.args.every((arg) => {\n var value = arg.evaluate(compressor);\n params.push(value);\n return arg !== value;\n })\n && regexp_is_safe(params[0])\n ) {\n let [ source, flags ] = params;\n source = regexp_source_fix(new RegExp(source).source);\n const rx = make_node(AST_RegExp, self, {\n value: { source, flags }\n });\n if (rx._eval(compressor) !== rx) {\n return rx;\n }\n }\n break;\n } else if (exp instanceof AST_Dot) switch(exp.property) {\n case \"toString\":\n if (self.args.length == 0 && !exp.expression.may_throw_on_access(compressor)) {\n return make_node(AST_Binary, self, {\n left: make_node(AST_String, self, { value: \"\" }),\n operator: \"+\",\n right: exp.expression\n }).optimize(compressor);\n }\n break;\n case \"join\":\n if (exp.expression instanceof AST_Array) EXIT: {\n var separator;\n if (self.args.length > 0) {\n separator = self.args[0].evaluate(compressor);\n if (separator === self.args[0]) break EXIT; // not a constant\n }\n var elements = [];\n var consts = [];\n for (var i = 0, len = exp.expression.elements.length; i < len; i++) {\n var el = exp.expression.elements[i];\n if (el instanceof AST_Expansion) break EXIT;\n var value = el.evaluate(compressor);\n if (value !== el) {\n consts.push(value);\n } else {\n if (consts.length > 0) {\n elements.push(make_node(AST_String, self, {\n value: consts.join(separator)\n }));\n consts.length = 0;\n }\n elements.push(el);\n }\n }\n if (consts.length > 0) {\n elements.push(make_node(AST_String, self, {\n value: consts.join(separator)\n }));\n }\n if (elements.length == 0) return make_node(AST_String, self, { value: \"\" });\n if (elements.length == 1) {\n if (elements[0].is_string(compressor)) {\n return elements[0];\n }\n return make_node(AST_Binary, elements[0], {\n operator : \"+\",\n left : make_node(AST_String, self, { value: \"\" }),\n right : elements[0]\n });\n }\n if (separator == \"\") {\n var first;\n if (elements[0].is_string(compressor)\n || elements[1].is_string(compressor)) {\n first = elements.shift();\n } else {\n first = make_node(AST_String, self, { value: \"\" });\n }\n return elements.reduce(function(prev, el) {\n return make_node(AST_Binary, el, {\n operator : \"+\",\n left : prev,\n right : el\n });\n }, first).optimize(compressor);\n }\n // need this awkward cloning to not affect original element\n // best_of will decide which one to get through.\n var node = self.clone();\n node.expression = node.expression.clone();\n node.expression.expression = node.expression.expression.clone();\n node.expression.expression.elements = elements;\n return best_of(compressor, self, node);\n }\n break;\n case \"charAt\":\n if (exp.expression.is_string(compressor)) {\n var arg = self.args[0];\n var index = arg ? arg.evaluate(compressor) : 0;\n if (index !== arg) {\n return make_node(AST_Sub, exp, {\n expression: exp.expression,\n property: make_node_from_constant(index | 0, arg || exp)\n }).optimize(compressor);\n }\n }\n break;\n case \"apply\":\n if (self.args.length == 2 && self.args[1] instanceof AST_Array) {\n var args = self.args[1].elements.slice();\n args.unshift(self.args[0]);\n return make_node(AST_Call, self, {\n expression: make_node(AST_Dot, exp, {\n expression: exp.expression,\n optional: false,\n property: \"call\"\n }),\n args: args\n }).optimize(compressor);\n }\n break;\n case \"call\":\n var func = exp.expression;\n if (func instanceof AST_SymbolRef) {\n func = func.fixed_value();\n }\n if (func instanceof AST_Lambda && !func.contains_this()) {\n return (self.args.length ? make_sequence(this, [\n self.args[0],\n make_node(AST_Call, self, {\n expression: exp.expression,\n args: self.args.slice(1)\n })\n ]) : make_node(AST_Call, self, {\n expression: exp.expression,\n args: []\n })).optimize(compressor);\n }\n break;\n }\n }\n\n if (compressor.option(\"unsafe_Function\")\n && is_undeclared_ref(exp)\n && exp.name == \"Function\") {\n // new Function() => function(){}\n if (self.args.length == 0) return make_node(AST_Function, self, {\n argnames: [],\n body: []\n }).optimize(compressor);\n if (self.args.every((x) => x instanceof AST_String)) {\n // quite a corner-case, but we can handle it:\n // https://github.com/mishoo/UglifyJS2/issues/203\n // if the code argument is a constant, then we can minify it.\n try {\n var code = \"n(function(\" + self.args.slice(0, -1).map(function(arg) {\n return arg.value;\n }).join(\",\") + \"){\" + self.args[self.args.length - 1].value + \"})\";\n var ast = parse(code);\n var mangle = compressor.mangle_options();\n ast.figure_out_scope(mangle);\n var comp = new Compressor(compressor.options, {\n mangle_options: compressor._mangle_options\n });\n ast = ast.transform(comp);\n ast.figure_out_scope(mangle);\n ast.compute_char_frequency(mangle);\n ast.mangle_names(mangle);\n var fun;\n walk(ast, node => {\n if (is_func_expr(node)) {\n fun = node;\n return walk_abort;\n }\n });\n var code = OutputStream();\n AST_BlockStatement.prototype._codegen.call(fun, fun, code);\n self.args = [\n make_node(AST_String, self, {\n value: fun.argnames.map(function(arg) {\n return arg.print_to_string();\n }).join(\",\")\n }),\n make_node(AST_String, self.args[self.args.length - 1], {\n value: code.get().replace(/^{|}$/g, \"\")\n })\n ];\n return self;\n } catch (ex) {\n if (!(ex instanceof JS_Parse_Error)) {\n throw ex;\n }\n\n // Otherwise, it crashes at runtime. Or maybe it's nonstandard syntax.\n }\n }\n }\n\n return inline_into_call(self, compressor);\n});\n\n/** Does this node contain optional property access or optional call? */\nAST_Node.DEFMETHOD(\"contains_optional\", function() {\n if (\n this instanceof AST_PropAccess\n || this instanceof AST_Call\n || this instanceof AST_Chain\n ) {\n if (this.optional) {\n return true;\n } else {\n return this.expression.contains_optional();\n }\n } else {\n return false;\n }\n});\n\ndef_optimize(AST_New, function(self, compressor) {\n if (\n compressor.option(\"unsafe\") &&\n is_undeclared_ref(self.expression) &&\n [\"Object\", \"RegExp\", \"Function\", \"Error\", \"Array\"].includes(self.expression.name)\n ) return make_node(AST_Call, self, self).transform(compressor);\n return self;\n});\n\ndef_optimize(AST_Sequence, function(self, compressor) {\n if (!compressor.option(\"side_effects\")) return self;\n var expressions = [];\n filter_for_side_effects();\n var end = expressions.length - 1;\n trim_right_for_undefined();\n if (end == 0) {\n self = maintain_this_binding(compressor.parent(), compressor.self(), expressions[0]);\n if (!(self instanceof AST_Sequence)) self = self.optimize(compressor);\n return self;\n }\n self.expressions = expressions;\n return self;\n\n function filter_for_side_effects() {\n var first = first_in_statement(compressor);\n var last = self.expressions.length - 1;\n self.expressions.forEach(function(expr, index) {\n if (index < last) expr = expr.drop_side_effect_free(compressor, first);\n if (expr) {\n merge_sequence(expressions, expr);\n first = false;\n }\n });\n }\n\n function trim_right_for_undefined() {\n while (end > 0 && is_undefined(expressions[end], compressor)) end--;\n if (end < expressions.length - 1) {\n expressions[end] = make_node(AST_UnaryPrefix, self, {\n operator : \"void\",\n expression : expressions[end]\n });\n expressions.length = end + 1;\n }\n }\n});\n\nAST_Unary.DEFMETHOD(\"lift_sequences\", function(compressor) {\n if (compressor.option(\"sequences\")) {\n if (this.expression instanceof AST_Sequence) {\n var x = this.expression.expressions.slice();\n var e = this.clone();\n e.expression = x.pop();\n x.push(e);\n return make_sequence(this, x).optimize(compressor);\n }\n }\n return this;\n});\n\ndef_optimize(AST_UnaryPostfix, function(self, compressor) {\n return self.lift_sequences(compressor);\n});\n\ndef_optimize(AST_UnaryPrefix, function(self, compressor) {\n var e = self.expression;\n if (\n self.operator == \"delete\" &&\n !(\n e instanceof AST_SymbolRef ||\n e instanceof AST_PropAccess ||\n e instanceof AST_Chain ||\n is_identifier_atom(e)\n )\n ) {\n return make_sequence(self, [e, make_node(AST_True, self)]).optimize(compressor);\n }\n var seq = self.lift_sequences(compressor);\n if (seq !== self) {\n return seq;\n }\n if (compressor.option(\"side_effects\") && self.operator == \"void\") {\n e = e.drop_side_effect_free(compressor);\n if (e) {\n self.expression = e;\n return self;\n } else {\n return make_node(AST_Undefined, self).optimize(compressor);\n }\n }\n if (compressor.in_boolean_context()) {\n switch (self.operator) {\n case \"!\":\n if (e instanceof AST_UnaryPrefix && e.operator == \"!\") {\n // !!foo ==> foo, if we're in boolean context\n return e.expression;\n }\n if (e instanceof AST_Binary) {\n self = best_of(compressor, self, e.negate(compressor, first_in_statement(compressor)));\n }\n break;\n case \"typeof\":\n // typeof always returns a non-empty string, thus it's\n // always true in booleans\n // And we don't need to check if it's undeclared, because in typeof, that's OK\n return (e instanceof AST_SymbolRef ? make_node(AST_True, self) : make_sequence(self, [\n e,\n make_node(AST_True, self)\n ])).optimize(compressor);\n }\n }\n if (self.operator == \"-\" && e instanceof AST_Infinity) {\n e = e.transform(compressor);\n }\n if (e instanceof AST_Binary\n && (self.operator == \"+\" || self.operator == \"-\")\n && (e.operator == \"*\" || e.operator == \"/\" || e.operator == \"%\")) {\n return make_node(AST_Binary, self, {\n operator: e.operator,\n left: make_node(AST_UnaryPrefix, e.left, {\n operator: self.operator,\n expression: e.left\n }),\n right: e.right\n });\n }\n // avoids infinite recursion of numerals\n if (self.operator != \"-\"\n || !(e instanceof AST_Number || e instanceof AST_Infinity || e instanceof AST_BigInt)) {\n var ev = self.evaluate(compressor);\n if (ev !== self) {\n ev = make_node_from_constant(ev, self).optimize(compressor);\n return best_of(compressor, ev, self);\n }\n }\n return self;\n});\n\nAST_Binary.DEFMETHOD(\"lift_sequences\", function(compressor) {\n if (compressor.option(\"sequences\")) {\n if (this.left instanceof AST_Sequence) {\n var x = this.left.expressions.slice();\n var e = this.clone();\n e.left = x.pop();\n x.push(e);\n return make_sequence(this, x).optimize(compressor);\n }\n if (this.right instanceof AST_Sequence && !this.left.has_side_effects(compressor)) {\n var assign = this.operator == \"=\" && this.left instanceof AST_SymbolRef;\n var x = this.right.expressions;\n var last = x.length - 1;\n for (var i = 0; i < last; i++) {\n if (!assign && x[i].has_side_effects(compressor)) break;\n }\n if (i == last) {\n x = x.slice();\n var e = this.clone();\n e.right = x.pop();\n x.push(e);\n return make_sequence(this, x).optimize(compressor);\n } else if (i > 0) {\n var e = this.clone();\n e.right = make_sequence(this.right, x.slice(i));\n x = x.slice(0, i);\n x.push(e);\n return make_sequence(this, x).optimize(compressor);\n }\n }\n }\n return this;\n});\n\nvar commutativeOperators = makePredicate(\"== === != !== * & | ^\");\nfunction is_object(node) {\n return node instanceof AST_Array\n || node instanceof AST_Lambda\n || node instanceof AST_Object\n || node instanceof AST_Class;\n}\n\ndef_optimize(AST_Binary, function(self, compressor) {\n function reversible() {\n return self.left.is_constant()\n || self.right.is_constant()\n || !self.left.has_side_effects(compressor)\n && !self.right.has_side_effects(compressor);\n }\n function reverse(op) {\n if (reversible()) {\n if (op) self.operator = op;\n var tmp = self.left;\n self.left = self.right;\n self.right = tmp;\n }\n }\n if (compressor.option(\"lhs_constants\") && commutativeOperators.has(self.operator)) {\n if (self.right.is_constant()\n && !self.left.is_constant()) {\n // if right is a constant, whatever side effects the\n // left side might have could not influence the\n // result. hence, force switch.\n\n if (!(self.left instanceof AST_Binary\n && PRECEDENCE[self.left.operator] >= PRECEDENCE[self.operator])) {\n reverse();\n }\n }\n }\n self = self.lift_sequences(compressor);\n if (compressor.option(\"comparisons\")) switch (self.operator) {\n case \"===\":\n case \"!==\":\n var is_strict_comparison = true;\n if ((self.left.is_string(compressor) && self.right.is_string(compressor)) ||\n (self.left.is_number(compressor) && self.right.is_number(compressor)) ||\n (self.left.is_boolean() && self.right.is_boolean()) ||\n self.left.equivalent_to(self.right)) {\n self.operator = self.operator.substr(0, 2);\n }\n // XXX: intentionally falling down to the next case\n case \"==\":\n case \"!=\":\n // void 0 == x => null == x\n if (!is_strict_comparison && is_undefined(self.left, compressor)) {\n self.left = make_node(AST_Null, self.left);\n // x == void 0 => x == null\n } else if (!is_strict_comparison && is_undefined(self.right, compressor)) {\n self.right = make_node(AST_Null, self.right);\n } else if (compressor.option(\"typeofs\")\n // \"undefined\" == typeof x => undefined === x\n && self.left instanceof AST_String\n && self.left.value == \"undefined\"\n && self.right instanceof AST_UnaryPrefix\n && self.right.operator == \"typeof\") {\n var expr = self.right.expression;\n if (expr instanceof AST_SymbolRef ? expr.is_declared(compressor)\n : !(expr instanceof AST_PropAccess && compressor.option(\"ie8\"))) {\n self.right = expr;\n self.left = make_node(AST_Undefined, self.left).optimize(compressor);\n if (self.operator.length == 2) self.operator += \"=\";\n }\n } else if (compressor.option(\"typeofs\")\n // typeof x === \"undefined\" => x === undefined\n && self.left instanceof AST_UnaryPrefix\n && self.left.operator == \"typeof\"\n && self.right instanceof AST_String\n && self.right.value == \"undefined\") {\n var expr = self.left.expression;\n if (expr instanceof AST_SymbolRef ? expr.is_declared(compressor)\n : !(expr instanceof AST_PropAccess && compressor.option(\"ie8\"))) {\n self.left = expr;\n self.right = make_node(AST_Undefined, self.right).optimize(compressor);\n if (self.operator.length == 2) self.operator += \"=\";\n }\n } else if (self.left instanceof AST_SymbolRef\n // obj !== obj => false\n && self.right instanceof AST_SymbolRef\n && self.left.definition() === self.right.definition()\n && is_object(self.left.fixed_value())) {\n return make_node(self.operator[0] == \"=\" ? AST_True : AST_False, self);\n }\n break;\n case \"&&\":\n case \"||\":\n var lhs = self.left;\n if (lhs.operator == self.operator) {\n lhs = lhs.right;\n }\n if (lhs instanceof AST_Binary\n && lhs.operator == (self.operator == \"&&\" ? \"!==\" : \"===\")\n && self.right instanceof AST_Binary\n && lhs.operator == self.right.operator\n && (is_undefined(lhs.left, compressor) && self.right.left instanceof AST_Null\n || lhs.left instanceof AST_Null && is_undefined(self.right.left, compressor))\n && !lhs.right.has_side_effects(compressor)\n && lhs.right.equivalent_to(self.right.right)) {\n var combined = make_node(AST_Binary, self, {\n operator: lhs.operator.slice(0, -1),\n left: make_node(AST_Null, self),\n right: lhs.right\n });\n if (lhs !== self.left) {\n combined = make_node(AST_Binary, self, {\n operator: self.operator,\n left: self.left.left,\n right: combined\n });\n }\n return combined;\n }\n break;\n }\n if (self.operator == \"+\" && compressor.in_boolean_context()) {\n var ll = self.left.evaluate(compressor);\n var rr = self.right.evaluate(compressor);\n if (ll && typeof ll == \"string\") {\n return make_sequence(self, [\n self.right,\n make_node(AST_True, self)\n ]).optimize(compressor);\n }\n if (rr && typeof rr == \"string\") {\n return make_sequence(self, [\n self.left,\n make_node(AST_True, self)\n ]).optimize(compressor);\n }\n }\n if (compressor.option(\"comparisons\") && self.is_boolean()) {\n if (!(compressor.parent() instanceof AST_Binary)\n || compressor.parent() instanceof AST_Assign) {\n var negated = make_node(AST_UnaryPrefix, self, {\n operator: \"!\",\n expression: self.negate(compressor, first_in_statement(compressor))\n });\n self = best_of(compressor, self, negated);\n }\n if (compressor.option(\"unsafe_comps\")) {\n switch (self.operator) {\n case \"<\": reverse(\">\"); break;\n case \"<=\": reverse(\">=\"); break;\n }\n }\n }\n if (self.operator == \"+\") {\n if (self.right instanceof AST_String\n && self.right.getValue() == \"\"\n && self.left.is_string(compressor)) {\n return self.left;\n }\n if (self.left instanceof AST_String\n && self.left.getValue() == \"\"\n && self.right.is_string(compressor)) {\n return self.right;\n }\n if (self.left instanceof AST_Binary\n && self.left.operator == \"+\"\n && self.left.left instanceof AST_String\n && self.left.left.getValue() == \"\"\n && self.right.is_string(compressor)) {\n self.left = self.left.right;\n return self;\n }\n }\n if (compressor.option(\"evaluate\")) {\n switch (self.operator) {\n case \"&&\":\n var ll = has_flag(self.left, TRUTHY)\n ? true\n : has_flag(self.left, FALSY)\n ? false\n : self.left.evaluate(compressor);\n if (!ll) {\n return maintain_this_binding(compressor.parent(), compressor.self(), self.left).optimize(compressor);\n } else if (!(ll instanceof AST_Node)) {\n return make_sequence(self, [ self.left, self.right ]).optimize(compressor);\n }\n var rr = self.right.evaluate(compressor);\n if (!rr) {\n if (compressor.in_boolean_context()) {\n return make_sequence(self, [\n self.left,\n make_node(AST_False, self)\n ]).optimize(compressor);\n } else {\n set_flag(self, FALSY);\n }\n } else if (!(rr instanceof AST_Node)) {\n var parent = compressor.parent();\n if (parent.operator == \"&&\" && parent.left === compressor.self() || compressor.in_boolean_context()) {\n return self.left.optimize(compressor);\n }\n }\n // x || false && y ---> x ? y : false\n if (self.left.operator == \"||\") {\n var lr = self.left.right.evaluate(compressor);\n if (!lr) return make_node(AST_Conditional, self, {\n condition: self.left.left,\n consequent: self.right,\n alternative: self.left.right\n }).optimize(compressor);\n }\n break;\n case \"||\":\n var ll = has_flag(self.left, TRUTHY)\n ? true\n : has_flag(self.left, FALSY)\n ? false\n : self.left.evaluate(compressor);\n if (!ll) {\n return make_sequence(self, [ self.left, self.right ]).optimize(compressor);\n } else if (!(ll instanceof AST_Node)) {\n return maintain_this_binding(compressor.parent(), compressor.self(), self.left).optimize(compressor);\n }\n var rr = self.right.evaluate(compressor);\n if (!rr) {\n var parent = compressor.parent();\n if (parent.operator == \"||\" && parent.left === compressor.self() || compressor.in_boolean_context()) {\n return self.left.optimize(compressor);\n }\n } else if (!(rr instanceof AST_Node)) {\n if (compressor.in_boolean_context()) {\n return make_sequence(self, [\n self.left,\n make_node(AST_True, self)\n ]).optimize(compressor);\n } else {\n set_flag(self, TRUTHY);\n }\n }\n if (self.left.operator == \"&&\") {\n var lr = self.left.right.evaluate(compressor);\n if (lr && !(lr instanceof AST_Node)) return make_node(AST_Conditional, self, {\n condition: self.left.left,\n consequent: self.left.right,\n alternative: self.right\n }).optimize(compressor);\n }\n break;\n case \"??\":\n if (is_nullish(self.left, compressor)) {\n return self.right;\n }\n\n var ll = self.left.evaluate(compressor);\n if (!(ll instanceof AST_Node)) {\n // if we know the value for sure we can simply compute right away.\n return ll == null ? self.right : self.left;\n }\n\n if (compressor.in_boolean_context()) {\n const rr = self.right.evaluate(compressor);\n if (!(rr instanceof AST_Node) && !rr) {\n return self.left;\n }\n }\n }\n var associative = true;\n switch (self.operator) {\n case \"+\":\n // (x + \"foo\") + \"bar\" => x + \"foobar\"\n if (self.right instanceof AST_Constant\n && self.left instanceof AST_Binary\n && self.left.operator == \"+\"\n && self.left.is_string(compressor)) {\n var binary = make_node(AST_Binary, self, {\n operator: \"+\",\n left: self.left.right,\n right: self.right,\n });\n var r = binary.optimize(compressor);\n if (binary !== r) {\n self = make_node(AST_Binary, self, {\n operator: \"+\",\n left: self.left.left,\n right: r\n });\n }\n }\n // (x + \"foo\") + (\"bar\" + y) => (x + \"foobar\") + y\n if (self.left instanceof AST_Binary\n && self.left.operator == \"+\"\n && self.left.is_string(compressor)\n && self.right instanceof AST_Binary\n && self.right.operator == \"+\"\n && self.right.is_string(compressor)) {\n var binary = make_node(AST_Binary, self, {\n operator: \"+\",\n left: self.left.right,\n right: self.right.left,\n });\n var m = binary.optimize(compressor);\n if (binary !== m) {\n self = make_node(AST_Binary, self, {\n operator: \"+\",\n left: make_node(AST_Binary, self.left, {\n operator: \"+\",\n left: self.left.left,\n right: m\n }),\n right: self.right.right\n });\n }\n }\n // a + -b => a - b\n if (self.right instanceof AST_UnaryPrefix\n && self.right.operator == \"-\"\n && self.left.is_number(compressor)) {\n self = make_node(AST_Binary, self, {\n operator: \"-\",\n left: self.left,\n right: self.right.expression\n });\n break;\n }\n // -a + b => b - a\n if (self.left instanceof AST_UnaryPrefix\n && self.left.operator == \"-\"\n && reversible()\n && self.right.is_number(compressor)) {\n self = make_node(AST_Binary, self, {\n operator: \"-\",\n left: self.right,\n right: self.left.expression\n });\n break;\n }\n // `foo${bar}baz` + 1 => `foo${bar}baz1`\n if (self.left instanceof AST_TemplateString) {\n var l = self.left;\n var r = self.right.evaluate(compressor);\n if (r != self.right) {\n l.segments[l.segments.length - 1].value += String(r);\n return l;\n }\n }\n // 1 + `foo${bar}baz` => `1foo${bar}baz`\n if (self.right instanceof AST_TemplateString) {\n var r = self.right;\n var l = self.left.evaluate(compressor);\n if (l != self.left) {\n r.segments[0].value = String(l) + r.segments[0].value;\n return r;\n }\n }\n // `1${bar}2` + `foo${bar}baz` => `1${bar}2foo${bar}baz`\n if (self.left instanceof AST_TemplateString\n && self.right instanceof AST_TemplateString) {\n var l = self.left;\n var segments = l.segments;\n var r = self.right;\n segments[segments.length - 1].value += r.segments[0].value;\n for (var i = 1; i < r.segments.length; i++) {\n segments.push(r.segments[i]);\n }\n return l;\n }\n case \"*\":\n associative = compressor.option(\"unsafe_math\");\n case \"&\":\n case \"|\":\n case \"^\":\n // a + +b => +b + a\n if (self.left.is_number(compressor)\n && self.right.is_number(compressor)\n && reversible()\n && !(self.left instanceof AST_Binary\n && self.left.operator != self.operator\n && PRECEDENCE[self.left.operator] >= PRECEDENCE[self.operator])) {\n var reversed = make_node(AST_Binary, self, {\n operator: self.operator,\n left: self.right,\n right: self.left\n });\n if (self.right instanceof AST_Constant\n && !(self.left instanceof AST_Constant)) {\n self = best_of(compressor, reversed, self);\n } else {\n self = best_of(compressor, self, reversed);\n }\n }\n if (associative && self.is_number(compressor)) {\n // a + (b + c) => (a + b) + c\n if (self.right instanceof AST_Binary\n && self.right.operator == self.operator) {\n self = make_node(AST_Binary, self, {\n operator: self.operator,\n left: make_node(AST_Binary, self.left, {\n operator: self.operator,\n left: self.left,\n right: self.right.left,\n start: self.left.start,\n end: self.right.left.end\n }),\n right: self.right.right\n });\n }\n // (n + 2) + 3 => 5 + n\n // (2 * n) * 3 => 6 + n\n if (self.right instanceof AST_Constant\n && self.left instanceof AST_Binary\n && self.left.operator == self.operator) {\n if (self.left.left instanceof AST_Constant) {\n self = make_node(AST_Binary, self, {\n operator: self.operator,\n left: make_node(AST_Binary, self.left, {\n operator: self.operator,\n left: self.left.left,\n right: self.right,\n start: self.left.left.start,\n end: self.right.end\n }),\n right: self.left.right\n });\n } else if (self.left.right instanceof AST_Constant) {\n self = make_node(AST_Binary, self, {\n operator: self.operator,\n left: make_node(AST_Binary, self.left, {\n operator: self.operator,\n left: self.left.right,\n right: self.right,\n start: self.left.right.start,\n end: self.right.end\n }),\n right: self.left.left\n });\n }\n }\n // (a | 1) | (2 | d) => (3 | a) | b\n if (self.left instanceof AST_Binary\n && self.left.operator == self.operator\n && self.left.right instanceof AST_Constant\n && self.right instanceof AST_Binary\n && self.right.operator == self.operator\n && self.right.left instanceof AST_Constant) {\n self = make_node(AST_Binary, self, {\n operator: self.operator,\n left: make_node(AST_Binary, self.left, {\n operator: self.operator,\n left: make_node(AST_Binary, self.left.left, {\n operator: self.operator,\n left: self.left.right,\n right: self.right.left,\n start: self.left.right.start,\n end: self.right.left.end\n }),\n right: self.left.left\n }),\n right: self.right.right\n });\n }\n }\n }\n }\n // x && (y && z) ==> x && y && z\n // x || (y || z) ==> x || y || z\n // x + (\"y\" + z) ==> x + \"y\" + z\n // \"x\" + (y + \"z\")==> \"x\" + y + \"z\"\n if (self.right instanceof AST_Binary\n && self.right.operator == self.operator\n && (lazy_op.has(self.operator)\n || (self.operator == \"+\"\n && (self.right.left.is_string(compressor)\n || (self.left.is_string(compressor)\n && self.right.right.is_string(compressor)))))\n ) {\n self.left = make_node(AST_Binary, self.left, {\n operator : self.operator,\n left : self.left.transform(compressor),\n right : self.right.left.transform(compressor)\n });\n self.right = self.right.right.transform(compressor);\n return self.transform(compressor);\n }\n var ev = self.evaluate(compressor);\n if (ev !== self) {\n ev = make_node_from_constant(ev, self).optimize(compressor);\n return best_of(compressor, ev, self);\n }\n return self;\n});\n\ndef_optimize(AST_SymbolExport, function(self) {\n return self;\n});\n\ndef_optimize(AST_SymbolRef, function(self, compressor) {\n if (\n !compressor.option(\"ie8\")\n && is_undeclared_ref(self)\n && !compressor.find_parent(AST_With)\n ) {\n switch (self.name) {\n case \"undefined\":\n return make_node(AST_Undefined, self).optimize(compressor);\n case \"NaN\":\n return make_node(AST_NaN, self).optimize(compressor);\n case \"Infinity\":\n return make_node(AST_Infinity, self).optimize(compressor);\n }\n }\n\n if (compressor.option(\"reduce_vars\") && !compressor.is_lhs()) {\n return inline_into_symbolref(self, compressor);\n } else {\n return self;\n }\n});\n\nfunction is_atomic(lhs, self) {\n return lhs instanceof AST_SymbolRef || lhs.TYPE === self.TYPE;\n}\n\ndef_optimize(AST_Undefined, function(self, compressor) {\n if (compressor.option(\"unsafe_undefined\")) {\n var undef = find_variable(compressor, \"undefined\");\n if (undef) {\n var ref = make_node(AST_SymbolRef, self, {\n name : \"undefined\",\n scope : undef.scope,\n thedef : undef\n });\n set_flag(ref, UNDEFINED);\n return ref;\n }\n }\n var lhs = compressor.is_lhs();\n if (lhs && is_atomic(lhs, self)) return self;\n return make_node(AST_UnaryPrefix, self, {\n operator: \"void\",\n expression: make_node(AST_Number, self, {\n value: 0\n })\n });\n});\n\ndef_optimize(AST_Infinity, function(self, compressor) {\n var lhs = compressor.is_lhs();\n if (lhs && is_atomic(lhs, self)) return self;\n if (\n compressor.option(\"keep_infinity\")\n && !(lhs && !is_atomic(lhs, self))\n && !find_variable(compressor, \"Infinity\")\n ) {\n return self;\n }\n return make_node(AST_Binary, self, {\n operator: \"/\",\n left: make_node(AST_Number, self, {\n value: 1\n }),\n right: make_node(AST_Number, self, {\n value: 0\n })\n });\n});\n\ndef_optimize(AST_NaN, function(self, compressor) {\n var lhs = compressor.is_lhs();\n if (lhs && !is_atomic(lhs, self)\n || find_variable(compressor, \"NaN\")) {\n return make_node(AST_Binary, self, {\n operator: \"/\",\n left: make_node(AST_Number, self, {\n value: 0\n }),\n right: make_node(AST_Number, self, {\n value: 0\n })\n });\n }\n return self;\n});\n\nconst ASSIGN_OPS = makePredicate(\"+ - / * % >> << >>> | ^ &\");\nconst ASSIGN_OPS_COMMUTATIVE = makePredicate(\"* | ^ &\");\ndef_optimize(AST_Assign, function(self, compressor) {\n if (self.logical) {\n return self.lift_sequences(compressor);\n }\n\n var def;\n // x = x ---> x\n if (\n self.operator === \"=\"\n && self.left instanceof AST_SymbolRef\n && self.left.name !== \"arguments\"\n && !(def = self.left.definition()).undeclared\n && self.right.equivalent_to(self.left)\n ) {\n return self.right;\n }\n\n if (compressor.option(\"dead_code\")\n && self.left instanceof AST_SymbolRef\n && (def = self.left.definition()).scope === compressor.find_parent(AST_Lambda)) {\n var level = 0, node, parent = self;\n do {\n node = parent;\n parent = compressor.parent(level++);\n if (parent instanceof AST_Exit) {\n if (in_try(level, parent)) break;\n if (is_reachable(def.scope, [ def ])) break;\n if (self.operator == \"=\") return self.right;\n def.fixed = false;\n return make_node(AST_Binary, self, {\n operator: self.operator.slice(0, -1),\n left: self.left,\n right: self.right\n }).optimize(compressor);\n }\n } while (parent instanceof AST_Binary && parent.right === node\n || parent instanceof AST_Sequence && parent.tail_node() === node);\n }\n self = self.lift_sequences(compressor);\n\n if (self.operator == \"=\" && self.left instanceof AST_SymbolRef && self.right instanceof AST_Binary) {\n // x = expr1 OP expr2\n if (self.right.left instanceof AST_SymbolRef\n && self.right.left.name == self.left.name\n && ASSIGN_OPS.has(self.right.operator)) {\n // x = x - 2 ---> x -= 2\n self.operator = self.right.operator + \"=\";\n self.right = self.right.right;\n } else if (self.right.right instanceof AST_SymbolRef\n && self.right.right.name == self.left.name\n && ASSIGN_OPS_COMMUTATIVE.has(self.right.operator)\n && !self.right.left.has_side_effects(compressor)) {\n // x = 2 & x ---> x &= 2\n self.operator = self.right.operator + \"=\";\n self.right = self.right.left;\n }\n }\n return self;\n\n function in_try(level, node) {\n function may_assignment_throw() {\n const right = self.right;\n self.right = make_node(AST_Null, right);\n const may_throw = node.may_throw(compressor);\n self.right = right;\n\n return may_throw;\n }\n\n var stop_at = self.left.definition().scope.get_defun_scope();\n var parent;\n while ((parent = compressor.parent(level++)) !== stop_at) {\n if (parent instanceof AST_Try) {\n if (parent.bfinally) return true;\n if (parent.bcatch && may_assignment_throw()) return true;\n }\n }\n }\n});\n\ndef_optimize(AST_DefaultAssign, function(self, compressor) {\n if (!compressor.option(\"evaluate\")) {\n return self;\n }\n var evaluateRight = self.right.evaluate(compressor);\n\n // `[x = undefined] = foo` ---> `[x] = foo`\n // `(arg = undefined) => ...` ---> `(arg) => ...` (unless `keep_fargs`)\n // `((arg = undefined) => ...)()` ---> `((arg) => ...)()`\n let lambda, iife;\n if (evaluateRight === undefined) {\n if (\n (lambda = compressor.parent()) instanceof AST_Lambda\n ? (\n compressor.option(\"keep_fargs\") === false\n || (iife = compressor.parent(1)).TYPE === \"Call\"\n && iife.expression === lambda\n )\n : true\n ) {\n self = self.left;\n }\n } else if (evaluateRight !== self.right) {\n evaluateRight = make_node_from_constant(evaluateRight, self.right);\n self.right = best_of_expression(evaluateRight, self.right);\n }\n\n return self;\n});\n\nfunction is_nullish_check(check, check_subject, compressor) {\n if (check_subject.may_throw(compressor)) return false;\n\n let nullish_side;\n\n // foo == null\n if (\n check instanceof AST_Binary\n && check.operator === \"==\"\n // which side is nullish?\n && (\n (nullish_side = is_nullish(check.left, compressor) && check.left)\n || (nullish_side = is_nullish(check.right, compressor) && check.right)\n )\n // is the other side the same as the check_subject\n && (\n nullish_side === check.left\n ? check.right\n : check.left\n ).equivalent_to(check_subject)\n ) {\n return true;\n }\n\n // foo === null || foo === undefined\n if (check instanceof AST_Binary && check.operator === \"||\") {\n let null_cmp;\n let undefined_cmp;\n\n const find_comparison = cmp => {\n if (!(\n cmp instanceof AST_Binary\n && (cmp.operator === \"===\" || cmp.operator === \"==\")\n )) {\n return false;\n }\n\n let found = 0;\n let defined_side;\n\n if (cmp.left instanceof AST_Null) {\n found++;\n null_cmp = cmp;\n defined_side = cmp.right;\n }\n if (cmp.right instanceof AST_Null) {\n found++;\n null_cmp = cmp;\n defined_side = cmp.left;\n }\n if (is_undefined(cmp.left, compressor)) {\n found++;\n undefined_cmp = cmp;\n defined_side = cmp.right;\n }\n if (is_undefined(cmp.right, compressor)) {\n found++;\n undefined_cmp = cmp;\n defined_side = cmp.left;\n }\n\n if (found !== 1) {\n return false;\n }\n\n if (!defined_side.equivalent_to(check_subject)) {\n return false;\n }\n\n return true;\n };\n\n if (!find_comparison(check.left)) return false;\n if (!find_comparison(check.right)) return false;\n\n if (null_cmp && undefined_cmp && null_cmp !== undefined_cmp) {\n return true;\n }\n }\n\n return false;\n}\n\ndef_optimize(AST_Conditional, function(self, compressor) {\n if (!compressor.option(\"conditionals\")) return self;\n // This looks like lift_sequences(), should probably be under \"sequences\"\n if (self.condition instanceof AST_Sequence) {\n var expressions = self.condition.expressions.slice();\n self.condition = expressions.pop();\n expressions.push(self);\n return make_sequence(self, expressions);\n }\n var cond = self.condition.evaluate(compressor);\n if (cond !== self.condition) {\n if (cond) {\n return maintain_this_binding(compressor.parent(), compressor.self(), self.consequent);\n } else {\n return maintain_this_binding(compressor.parent(), compressor.self(), self.alternative);\n }\n }\n var negated = cond.negate(compressor, first_in_statement(compressor));\n if (best_of(compressor, cond, negated) === negated) {\n self = make_node(AST_Conditional, self, {\n condition: negated,\n consequent: self.alternative,\n alternative: self.consequent\n });\n }\n var condition = self.condition;\n var consequent = self.consequent;\n var alternative = self.alternative;\n // x?x:y --> x||y\n if (condition instanceof AST_SymbolRef\n && consequent instanceof AST_SymbolRef\n && condition.definition() === consequent.definition()) {\n return make_node(AST_Binary, self, {\n operator: \"||\",\n left: condition,\n right: alternative\n });\n }\n // if (foo) exp = something; else exp = something_else;\n // |\n // v\n // exp = foo ? something : something_else;\n if (\n consequent instanceof AST_Assign\n && alternative instanceof AST_Assign\n && consequent.operator === alternative.operator\n && consequent.logical === alternative.logical\n && consequent.left.equivalent_to(alternative.left)\n && (!self.condition.has_side_effects(compressor)\n || consequent.operator == \"=\"\n && !consequent.left.has_side_effects(compressor))\n ) {\n return make_node(AST_Assign, self, {\n operator: consequent.operator,\n left: consequent.left,\n logical: consequent.logical,\n right: make_node(AST_Conditional, self, {\n condition: self.condition,\n consequent: consequent.right,\n alternative: alternative.right\n })\n });\n }\n // x ? y(a) : y(b) --> y(x ? a : b)\n var arg_index;\n if (consequent instanceof AST_Call\n && alternative.TYPE === consequent.TYPE\n && consequent.args.length > 0\n && consequent.args.length == alternative.args.length\n && consequent.expression.equivalent_to(alternative.expression)\n && !self.condition.has_side_effects(compressor)\n && !consequent.expression.has_side_effects(compressor)\n && typeof (arg_index = single_arg_diff()) == \"number\") {\n var node = consequent.clone();\n node.args[arg_index] = make_node(AST_Conditional, self, {\n condition: self.condition,\n consequent: consequent.args[arg_index],\n alternative: alternative.args[arg_index]\n });\n return node;\n }\n // a ? b : c ? b : d --> (a || c) ? b : d\n if (alternative instanceof AST_Conditional\n && consequent.equivalent_to(alternative.consequent)) {\n return make_node(AST_Conditional, self, {\n condition: make_node(AST_Binary, self, {\n operator: \"||\",\n left: condition,\n right: alternative.condition\n }),\n consequent: consequent,\n alternative: alternative.alternative\n }).optimize(compressor);\n }\n\n // a == null ? b : a -> a ?? b\n if (\n compressor.option(\"ecma\") >= 2020 &&\n is_nullish_check(condition, alternative, compressor)\n ) {\n return make_node(AST_Binary, self, {\n operator: \"??\",\n left: alternative,\n right: consequent\n }).optimize(compressor);\n }\n\n // a ? b : (c, b) --> (a || c), b\n if (alternative instanceof AST_Sequence\n && consequent.equivalent_to(alternative.expressions[alternative.expressions.length - 1])) {\n return make_sequence(self, [\n make_node(AST_Binary, self, {\n operator: \"||\",\n left: condition,\n right: make_sequence(self, alternative.expressions.slice(0, -1))\n }),\n consequent\n ]).optimize(compressor);\n }\n // a ? b : (c && b) --> (a || c) && b\n if (alternative instanceof AST_Binary\n && alternative.operator == \"&&\"\n && consequent.equivalent_to(alternative.right)) {\n return make_node(AST_Binary, self, {\n operator: \"&&\",\n left: make_node(AST_Binary, self, {\n operator: \"||\",\n left: condition,\n right: alternative.left\n }),\n right: consequent\n }).optimize(compressor);\n }\n // x?y?z:a:a --> x&&y?z:a\n if (consequent instanceof AST_Conditional\n && consequent.alternative.equivalent_to(alternative)) {\n return make_node(AST_Conditional, self, {\n condition: make_node(AST_Binary, self, {\n left: self.condition,\n operator: \"&&\",\n right: consequent.condition\n }),\n consequent: consequent.consequent,\n alternative: alternative\n });\n }\n // x ? y : y --> x, y\n if (consequent.equivalent_to(alternative)) {\n return make_sequence(self, [\n self.condition,\n consequent\n ]).optimize(compressor);\n }\n // x ? y || z : z --> x && y || z\n if (consequent instanceof AST_Binary\n && consequent.operator == \"||\"\n && consequent.right.equivalent_to(alternative)) {\n return make_node(AST_Binary, self, {\n operator: \"||\",\n left: make_node(AST_Binary, self, {\n operator: \"&&\",\n left: self.condition,\n right: consequent.left\n }),\n right: alternative\n }).optimize(compressor);\n }\n\n const in_bool = compressor.in_boolean_context();\n if (is_true(self.consequent)) {\n if (is_false(self.alternative)) {\n // c ? true : false ---> !!c\n return booleanize(self.condition);\n }\n // c ? true : x ---> !!c || x\n return make_node(AST_Binary, self, {\n operator: \"||\",\n left: booleanize(self.condition),\n right: self.alternative\n });\n }\n if (is_false(self.consequent)) {\n if (is_true(self.alternative)) {\n // c ? false : true ---> !c\n return booleanize(self.condition.negate(compressor));\n }\n // c ? false : x ---> !c && x\n return make_node(AST_Binary, self, {\n operator: \"&&\",\n left: booleanize(self.condition.negate(compressor)),\n right: self.alternative\n });\n }\n if (is_true(self.alternative)) {\n // c ? x : true ---> !c || x\n return make_node(AST_Binary, self, {\n operator: \"||\",\n left: booleanize(self.condition.negate(compressor)),\n right: self.consequent\n });\n }\n if (is_false(self.alternative)) {\n // c ? x : false ---> !!c && x\n return make_node(AST_Binary, self, {\n operator: \"&&\",\n left: booleanize(self.condition),\n right: self.consequent\n });\n }\n\n return self;\n\n function booleanize(node) {\n if (node.is_boolean()) return node;\n // !!expression\n return make_node(AST_UnaryPrefix, node, {\n operator: \"!\",\n expression: node.negate(compressor)\n });\n }\n\n // AST_True or !0\n function is_true(node) {\n return node instanceof AST_True\n || in_bool\n && node instanceof AST_Constant\n && node.getValue()\n || (node instanceof AST_UnaryPrefix\n && node.operator == \"!\"\n && node.expression instanceof AST_Constant\n && !node.expression.getValue());\n }\n // AST_False or !1\n function is_false(node) {\n return node instanceof AST_False\n || in_bool\n && node instanceof AST_Constant\n && !node.getValue()\n || (node instanceof AST_UnaryPrefix\n && node.operator == \"!\"\n && node.expression instanceof AST_Constant\n && node.expression.getValue());\n }\n\n function single_arg_diff() {\n var a = consequent.args;\n var b = alternative.args;\n for (var i = 0, len = a.length; i < len; i++) {\n if (a[i] instanceof AST_Expansion) return;\n if (!a[i].equivalent_to(b[i])) {\n if (b[i] instanceof AST_Expansion) return;\n for (var j = i + 1; j < len; j++) {\n if (a[j] instanceof AST_Expansion) return;\n if (!a[j].equivalent_to(b[j])) return;\n }\n return i;\n }\n }\n }\n});\n\ndef_optimize(AST_Boolean, function(self, compressor) {\n if (compressor.in_boolean_context()) return make_node(AST_Number, self, {\n value: +self.value\n });\n var p = compressor.parent();\n if (compressor.option(\"booleans_as_integers\")) {\n if (p instanceof AST_Binary && (p.operator == \"===\" || p.operator == \"!==\")) {\n p.operator = p.operator.replace(/=$/, \"\");\n }\n return make_node(AST_Number, self, {\n value: +self.value\n });\n }\n if (compressor.option(\"booleans\")) {\n if (p instanceof AST_Binary && (p.operator == \"==\"\n || p.operator == \"!=\")) {\n return make_node(AST_Number, self, {\n value: +self.value\n });\n }\n return make_node(AST_UnaryPrefix, self, {\n operator: \"!\",\n expression: make_node(AST_Number, self, {\n value: 1 - self.value\n })\n });\n }\n return self;\n});\n\nfunction safe_to_flatten(value, compressor) {\n if (value instanceof AST_SymbolRef) {\n value = value.fixed_value();\n }\n if (!value) return false;\n if (!(value instanceof AST_Lambda || value instanceof AST_Class)) return true;\n if (!(value instanceof AST_Lambda && value.contains_this())) return true;\n return compressor.parent() instanceof AST_New;\n}\n\nAST_PropAccess.DEFMETHOD(\"flatten_object\", function(key, compressor) {\n if (!compressor.option(\"properties\")) return;\n if (key === \"__proto__\") return;\n\n var arrows = compressor.option(\"unsafe_arrows\") && compressor.option(\"ecma\") >= 2015;\n var expr = this.expression;\n if (expr instanceof AST_Object) {\n var props = expr.properties;\n\n for (var i = props.length; --i >= 0;) {\n var prop = props[i];\n\n if (\"\" + (prop instanceof AST_ConciseMethod ? prop.key.name : prop.key) == key) {\n const all_props_flattenable = props.every((p) =>\n (p instanceof AST_ObjectKeyVal\n || arrows && p instanceof AST_ConciseMethod && !p.is_generator\n )\n && !p.computed_key()\n );\n\n if (!all_props_flattenable) return;\n if (!safe_to_flatten(prop.value, compressor)) return;\n\n return make_node(AST_Sub, this, {\n expression: make_node(AST_Array, expr, {\n elements: props.map(function(prop) {\n var v = prop.value;\n if (v instanceof AST_Accessor) {\n v = make_node(AST_Function, v, v);\n }\n\n var k = prop.key;\n if (k instanceof AST_Node && !(k instanceof AST_SymbolMethod)) {\n return make_sequence(prop, [ k, v ]);\n }\n\n return v;\n })\n }),\n property: make_node(AST_Number, this, {\n value: i\n })\n });\n }\n }\n }\n});\n\ndef_optimize(AST_Sub, function(self, compressor) {\n var expr = self.expression;\n var prop = self.property;\n if (compressor.option(\"properties\")) {\n var key = prop.evaluate(compressor);\n if (key !== prop) {\n if (typeof key == \"string\") {\n if (key == \"undefined\") {\n key = undefined;\n } else {\n var value = parseFloat(key);\n if (value.toString() == key) {\n key = value;\n }\n }\n }\n prop = self.property = best_of_expression(\n prop,\n make_node_from_constant(key, prop).transform(compressor)\n );\n var property = \"\" + key;\n if (is_basic_identifier_string(property)\n && property.length <= prop.size() + 1) {\n return make_node(AST_Dot, self, {\n expression: expr,\n optional: self.optional,\n property: property,\n quote: prop.quote,\n }).optimize(compressor);\n }\n }\n }\n var fn;\n OPT_ARGUMENTS: if (compressor.option(\"arguments\")\n && expr instanceof AST_SymbolRef\n && expr.name == \"arguments\"\n && expr.definition().orig.length == 1\n && (fn = expr.scope) instanceof AST_Lambda\n && fn.uses_arguments\n && !(fn instanceof AST_Arrow)\n && prop instanceof AST_Number) {\n var index = prop.getValue();\n var params = new Set();\n var argnames = fn.argnames;\n for (var n = 0; n < argnames.length; n++) {\n if (!(argnames[n] instanceof AST_SymbolFunarg)) {\n break OPT_ARGUMENTS; // destructuring parameter - bail\n }\n var param = argnames[n].name;\n if (params.has(param)) {\n break OPT_ARGUMENTS; // duplicate parameter - bail\n }\n params.add(param);\n }\n var argname = fn.argnames[index];\n if (argname && compressor.has_directive(\"use strict\")) {\n var def = argname.definition();\n if (!compressor.option(\"reduce_vars\") || def.assignments || def.orig.length > 1) {\n argname = null;\n }\n } else if (!argname && !compressor.option(\"keep_fargs\") && index < fn.argnames.length + 5) {\n while (index >= fn.argnames.length) {\n argname = fn.create_symbol(AST_SymbolFunarg, {\n source: fn,\n scope: fn,\n tentative_name: \"argument_\" + fn.argnames.length,\n });\n fn.argnames.push(argname);\n }\n }\n if (argname) {\n var sym = make_node(AST_SymbolRef, self, argname);\n sym.reference({});\n clear_flag(argname, UNUSED);\n return sym;\n }\n }\n if (compressor.is_lhs()) return self;\n if (key !== prop) {\n var sub = self.flatten_object(property, compressor);\n if (sub) {\n expr = self.expression = sub.expression;\n prop = self.property = sub.property;\n }\n }\n if (compressor.option(\"properties\") && compressor.option(\"side_effects\")\n && prop instanceof AST_Number && expr instanceof AST_Array) {\n var index = prop.getValue();\n var elements = expr.elements;\n var retValue = elements[index];\n FLATTEN: if (safe_to_flatten(retValue, compressor)) {\n var flatten = true;\n var values = [];\n for (var i = elements.length; --i > index;) {\n var value = elements[i].drop_side_effect_free(compressor);\n if (value) {\n values.unshift(value);\n if (flatten && value.has_side_effects(compressor)) flatten = false;\n }\n }\n if (retValue instanceof AST_Expansion) break FLATTEN;\n retValue = retValue instanceof AST_Hole ? make_node(AST_Undefined, retValue) : retValue;\n if (!flatten) values.unshift(retValue);\n while (--i >= 0) {\n var value = elements[i];\n if (value instanceof AST_Expansion) break FLATTEN;\n value = value.drop_side_effect_free(compressor);\n if (value) values.unshift(value);\n else index--;\n }\n if (flatten) {\n values.push(retValue);\n return make_sequence(self, values).optimize(compressor);\n } else return make_node(AST_Sub, self, {\n expression: make_node(AST_Array, expr, {\n elements: values\n }),\n property: make_node(AST_Number, prop, {\n value: index\n })\n });\n }\n }\n var ev = self.evaluate(compressor);\n if (ev !== self) {\n ev = make_node_from_constant(ev, self).optimize(compressor);\n return best_of(compressor, ev, self);\n }\n return self;\n});\n\ndef_optimize(AST_Chain, function (self, compressor) {\n if (is_nullish(self.expression, compressor)) {\n let parent = compressor.parent();\n // It's valid to delete a nullish optional chain, but if we optimized\n // this to `delete undefined` then it would appear to be a syntax error\n // when we try to optimize the delete. Thankfully, `delete 0` is fine.\n if (parent instanceof AST_UnaryPrefix && parent.operator === \"delete\") {\n return make_node_from_constant(0, self);\n }\n return make_node(AST_Undefined, self);\n }\n return self;\n});\n\ndef_optimize(AST_Dot, function(self, compressor) {\n const parent = compressor.parent();\n if (compressor.is_lhs()) return self;\n if (compressor.option(\"unsafe_proto\")\n && self.expression instanceof AST_Dot\n && self.expression.property == \"prototype\") {\n var exp = self.expression.expression;\n if (is_undeclared_ref(exp)) switch (exp.name) {\n case \"Array\":\n self.expression = make_node(AST_Array, self.expression, {\n elements: []\n });\n break;\n case \"Function\":\n self.expression = make_node(AST_Function, self.expression, {\n argnames: [],\n body: []\n });\n break;\n case \"Number\":\n self.expression = make_node(AST_Number, self.expression, {\n value: 0\n });\n break;\n case \"Object\":\n self.expression = make_node(AST_Object, self.expression, {\n properties: []\n });\n break;\n case \"RegExp\":\n self.expression = make_node(AST_RegExp, self.expression, {\n value: { source: \"t\", flags: \"\" }\n });\n break;\n case \"String\":\n self.expression = make_node(AST_String, self.expression, {\n value: \"\"\n });\n break;\n }\n }\n if (!(parent instanceof AST_Call) || !has_annotation(parent, _NOINLINE)) {\n const sub = self.flatten_object(self.property, compressor);\n if (sub) return sub.optimize(compressor);\n }\n\n if (self.expression instanceof AST_PropAccess\n && parent instanceof AST_PropAccess) {\n return self;\n }\n\n let ev = self.evaluate(compressor);\n if (ev !== self) {\n ev = make_node_from_constant(ev, self).optimize(compressor);\n return best_of(compressor, ev, self);\n }\n return self;\n});\n\nfunction literals_in_boolean_context(self, compressor) {\n if (compressor.in_boolean_context()) {\n return best_of(compressor, self, make_sequence(self, [\n self,\n make_node(AST_True, self)\n ]).optimize(compressor));\n }\n return self;\n}\n\nfunction inline_array_like_spread(elements) {\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n if (el instanceof AST_Expansion) {\n var expr = el.expression;\n if (\n expr instanceof AST_Array\n && !expr.elements.some(elm => elm instanceof AST_Hole)\n ) {\n elements.splice(i, 1, ...expr.elements);\n // Step back one, as the element at i is now new.\n i--;\n }\n // In array-like spread, spreading a non-iterable value is TypeError.\n // We therefore can’t optimize anything else, unlike with object spread.\n }\n }\n}\n\ndef_optimize(AST_Array, function(self, compressor) {\n var optimized = literals_in_boolean_context(self, compressor);\n if (optimized !== self) {\n return optimized;\n }\n inline_array_like_spread(self.elements);\n return self;\n});\n\nfunction inline_object_prop_spread(props, compressor) {\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n if (prop instanceof AST_Expansion) {\n const expr = prop.expression;\n if (\n expr instanceof AST_Object\n && expr.properties.every(prop => prop instanceof AST_ObjectKeyVal)\n ) {\n props.splice(i, 1, ...expr.properties);\n // Step back one, as the property at i is now new.\n i--;\n } else if (expr instanceof AST_Constant\n && !(expr instanceof AST_String)) {\n // Unlike array-like spread, in object spread, spreading a\n // non-iterable value silently does nothing; it is thus safe\n // to remove. AST_String is the only iterable AST_Constant.\n props.splice(i, 1);\n i--;\n } else if (is_nullish(expr, compressor)) {\n // Likewise, null and undefined can be silently removed.\n props.splice(i, 1);\n i--;\n }\n }\n }\n}\n\ndef_optimize(AST_Object, function(self, compressor) {\n var optimized = literals_in_boolean_context(self, compressor);\n if (optimized !== self) {\n return optimized;\n }\n inline_object_prop_spread(self.properties, compressor);\n return self;\n});\n\ndef_optimize(AST_RegExp, literals_in_boolean_context);\n\ndef_optimize(AST_Return, function(self, compressor) {\n if (self.value && is_undefined(self.value, compressor)) {\n self.value = null;\n }\n return self;\n});\n\ndef_optimize(AST_Arrow, opt_AST_Lambda);\n\ndef_optimize(AST_Function, function(self, compressor) {\n self = opt_AST_Lambda(self, compressor);\n if (compressor.option(\"unsafe_arrows\")\n && compressor.option(\"ecma\") >= 2015\n && !self.name\n && !self.is_generator\n && !self.uses_arguments\n && !self.pinned()) {\n const uses_this = walk(self, node => {\n if (node instanceof AST_This) return walk_abort;\n });\n if (!uses_this) return make_node(AST_Arrow, self, self).optimize(compressor);\n }\n return self;\n});\n\ndef_optimize(AST_Class, function(self) {\n for (let i = 0; i < self.properties.length; i++) {\n const prop = self.properties[i];\n if (prop instanceof AST_ClassStaticBlock && prop.body.length == 0) {\n self.properties.splice(i, 1);\n i--;\n }\n }\n\n return self;\n});\n\ndef_optimize(AST_ClassStaticBlock, function(self, compressor) {\n tighten_body(self.body, compressor);\n return self;\n});\n\ndef_optimize(AST_Yield, function(self, compressor) {\n if (self.expression && !self.is_star && is_undefined(self.expression, compressor)) {\n self.expression = null;\n }\n return self;\n});\n\ndef_optimize(AST_TemplateString, function(self, compressor) {\n if (\n !compressor.option(\"evaluate\")\n || compressor.parent() instanceof AST_PrefixedTemplateString\n ) {\n return self;\n }\n\n var segments = [];\n for (var i = 0; i < self.segments.length; i++) {\n var segment = self.segments[i];\n if (segment instanceof AST_Node) {\n var result = segment.evaluate(compressor);\n // Evaluate to constant value\n // Constant value shorter than ${segment}\n if (result !== segment && (result + \"\").length <= segment.size() + \"${}\".length) {\n // There should always be a previous and next segment if segment is a node\n segments[segments.length - 1].value = segments[segments.length - 1].value + result + self.segments[++i].value;\n continue;\n }\n // `before ${`innerBefore ${any} innerAfter`} after` => `before innerBefore ${any} innerAfter after`\n // TODO:\n // `before ${'test' + foo} after` => `before innerBefore ${any} innerAfter after`\n // `before ${foo + 'test} after` => `before innerBefore ${any} innerAfter after`\n if (segment instanceof AST_TemplateString) {\n var inners = segment.segments;\n segments[segments.length - 1].value += inners[0].value;\n for (var j = 1; j < inners.length; j++) {\n segment = inners[j];\n segments.push(segment);\n }\n continue;\n }\n }\n segments.push(segment);\n }\n self.segments = segments;\n\n // `foo` => \"foo\"\n if (segments.length == 1) {\n return make_node(AST_String, self, segments[0]);\n }\n\n if (\n segments.length === 3\n && segments[1] instanceof AST_Node\n && (\n segments[1].is_string(compressor)\n || segments[1].is_number(compressor)\n || is_nullish(segments[1], compressor)\n || compressor.option(\"unsafe\")\n )\n ) {\n // `foo${bar}` => \"foo\" + bar\n if (segments[2].value === \"\") {\n return make_node(AST_Binary, self, {\n operator: \"+\",\n left: make_node(AST_String, self, {\n value: segments[0].value,\n }),\n right: segments[1],\n });\n }\n // `${bar}baz` => bar + \"baz\"\n if (segments[0].value === \"\") {\n return make_node(AST_Binary, self, {\n operator: \"+\",\n left: segments[1],\n right: make_node(AST_String, self, {\n value: segments[2].value,\n }),\n });\n }\n }\n return self;\n});\n\ndef_optimize(AST_PrefixedTemplateString, function(self) {\n return self;\n});\n\n// [\"p\"]:1 ---> p:1\n// [42]:1 ---> 42:1\nfunction lift_key(self, compressor) {\n if (!compressor.option(\"computed_props\")) return self;\n // save a comparison in the typical case\n if (!(self.key instanceof AST_Constant)) return self;\n // allow certain acceptable props as not all AST_Constants are true constants\n if (self.key instanceof AST_String || self.key instanceof AST_Number) {\n if (self.key.value === \"__proto__\") return self;\n if (self.key.value == \"constructor\"\n && compressor.parent() instanceof AST_Class) return self;\n if (self instanceof AST_ObjectKeyVal) {\n self.quote = self.key.quote;\n self.key = self.key.value;\n } else if (self instanceof AST_ClassProperty) {\n self.quote = self.key.quote;\n self.key = make_node(AST_SymbolClassProperty, self.key, {\n name: self.key.value\n });\n } else {\n self.quote = self.key.quote;\n self.key = make_node(AST_SymbolMethod, self.key, {\n name: self.key.value\n });\n }\n }\n return self;\n}\n\ndef_optimize(AST_ObjectProperty, lift_key);\n\ndef_optimize(AST_ConciseMethod, function(self, compressor) {\n lift_key(self, compressor);\n // p(){return x;} ---> p:()=>x\n if (compressor.option(\"arrows\")\n && compressor.parent() instanceof AST_Object\n && !self.is_generator\n && !self.value.uses_arguments\n && !self.value.pinned()\n && self.value.body.length == 1\n && self.value.body[0] instanceof AST_Return\n && self.value.body[0].value\n && !self.value.contains_this()) {\n var arrow = make_node(AST_Arrow, self.value, self.value);\n arrow.async = self.async;\n arrow.is_generator = self.is_generator;\n return make_node(AST_ObjectKeyVal, self, {\n key: self.key instanceof AST_SymbolMethod ? self.key.name : self.key,\n value: arrow,\n quote: self.quote,\n });\n }\n return self;\n});\n\ndef_optimize(AST_ObjectKeyVal, function(self, compressor) {\n lift_key(self, compressor);\n // p:function(){} ---> p(){}\n // p:function*(){} ---> *p(){}\n // p:async function(){} ---> async p(){}\n // p:()=>{} ---> p(){}\n // p:async()=>{} ---> async p(){}\n var unsafe_methods = compressor.option(\"unsafe_methods\");\n if (unsafe_methods\n && compressor.option(\"ecma\") >= 2015\n && (!(unsafe_methods instanceof RegExp) || unsafe_methods.test(self.key + \"\"))) {\n var key = self.key;\n var value = self.value;\n var is_arrow_with_block = value instanceof AST_Arrow\n && Array.isArray(value.body)\n && !value.contains_this();\n if ((is_arrow_with_block || value instanceof AST_Function) && !value.name) {\n return make_node(AST_ConciseMethod, self, {\n async: value.async,\n is_generator: value.is_generator,\n key: key instanceof AST_Node ? key : make_node(AST_SymbolMethod, self, {\n name: key,\n }),\n value: make_node(AST_Accessor, value, value),\n quote: self.quote,\n });\n }\n }\n return self;\n});\n\ndef_optimize(AST_Destructuring, function(self, compressor) {\n if (compressor.option(\"pure_getters\") == true\n && compressor.option(\"unused\")\n && !self.is_array\n && Array.isArray(self.names)\n && !is_destructuring_export_decl(compressor)\n && !(self.names[self.names.length - 1] instanceof AST_Expansion)) {\n var keep = [];\n for (var i = 0; i < self.names.length; i++) {\n var elem = self.names[i];\n if (!(elem instanceof AST_ObjectKeyVal\n && typeof elem.key == \"string\"\n && elem.value instanceof AST_SymbolDeclaration\n && !should_retain(compressor, elem.value.definition()))) {\n keep.push(elem);\n }\n }\n if (keep.length != self.names.length) {\n self.names = keep;\n }\n }\n return self;\n\n function is_destructuring_export_decl(compressor) {\n var ancestors = [/^VarDef$/, /^(Const|Let|Var)$/, /^Export$/];\n for (var a = 0, p = 0, len = ancestors.length; a < len; p++) {\n var parent = compressor.parent(p);\n if (!parent) return false;\n if (a === 0 && parent.TYPE == \"Destructuring\") continue;\n if (!ancestors[a].test(parent.TYPE)) {\n return false;\n }\n a++;\n }\n return true;\n }\n\n function should_retain(compressor, def) {\n if (def.references.length) return true;\n if (!def.global) return false;\n if (compressor.toplevel.vars) {\n if (compressor.top_retain) {\n return compressor.top_retain(def);\n }\n return false;\n }\n return true;\n }\n});\n\nexport {\n Compressor,\n};\n","export var domprops = [\n \"$&\",\n \"$'\",\n \"$*\",\n \"$+\",\n \"$1\",\n \"$2\",\n \"$3\",\n \"$4\",\n \"$5\",\n \"$6\",\n \"$7\",\n \"$8\",\n \"$9\",\n \"$_\",\n \"$`\",\n \"$input\",\n \"-moz-animation\",\n \"-moz-animation-delay\",\n \"-moz-animation-direction\",\n \"-moz-animation-duration\",\n \"-moz-animation-fill-mode\",\n \"-moz-animation-iteration-count\",\n \"-moz-animation-name\",\n \"-moz-animation-play-state\",\n \"-moz-animation-timing-function\",\n \"-moz-appearance\",\n \"-moz-backface-visibility\",\n \"-moz-border-end\",\n \"-moz-border-end-color\",\n \"-moz-border-end-style\",\n \"-moz-border-end-width\",\n \"-moz-border-image\",\n \"-moz-border-start\",\n \"-moz-border-start-color\",\n \"-moz-border-start-style\",\n \"-moz-border-start-width\",\n \"-moz-box-align\",\n \"-moz-box-direction\",\n \"-moz-box-flex\",\n \"-moz-box-ordinal-group\",\n \"-moz-box-orient\",\n \"-moz-box-pack\",\n \"-moz-box-sizing\",\n \"-moz-float-edge\",\n \"-moz-font-feature-settings\",\n \"-moz-font-language-override\",\n \"-moz-force-broken-image-icon\",\n \"-moz-hyphens\",\n \"-moz-image-region\",\n \"-moz-margin-end\",\n \"-moz-margin-start\",\n \"-moz-orient\",\n \"-moz-osx-font-smoothing\",\n \"-moz-outline-radius\",\n \"-moz-outline-radius-bottomleft\",\n \"-moz-outline-radius-bottomright\",\n \"-moz-outline-radius-topleft\",\n \"-moz-outline-radius-topright\",\n \"-moz-padding-end\",\n \"-moz-padding-start\",\n \"-moz-perspective\",\n \"-moz-perspective-origin\",\n \"-moz-tab-size\",\n \"-moz-text-size-adjust\",\n \"-moz-transform\",\n \"-moz-transform-origin\",\n \"-moz-transform-style\",\n \"-moz-transition\",\n \"-moz-transition-delay\",\n \"-moz-transition-duration\",\n \"-moz-transition-property\",\n \"-moz-transition-timing-function\",\n \"-moz-user-focus\",\n \"-moz-user-input\",\n \"-moz-user-modify\",\n \"-moz-user-select\",\n \"-moz-window-dragging\",\n \"-webkit-align-content\",\n \"-webkit-align-items\",\n \"-webkit-align-self\",\n \"-webkit-animation\",\n \"-webkit-animation-delay\",\n \"-webkit-animation-direction\",\n \"-webkit-animation-duration\",\n \"-webkit-animation-fill-mode\",\n \"-webkit-animation-iteration-count\",\n \"-webkit-animation-name\",\n \"-webkit-animation-play-state\",\n \"-webkit-animation-timing-function\",\n \"-webkit-appearance\",\n \"-webkit-backface-visibility\",\n \"-webkit-background-clip\",\n \"-webkit-background-origin\",\n \"-webkit-background-size\",\n \"-webkit-border-bottom-left-radius\",\n \"-webkit-border-bottom-right-radius\",\n \"-webkit-border-image\",\n \"-webkit-border-radius\",\n \"-webkit-border-top-left-radius\",\n \"-webkit-border-top-right-radius\",\n \"-webkit-box-align\",\n \"-webkit-box-direction\",\n \"-webkit-box-flex\",\n \"-webkit-box-ordinal-group\",\n \"-webkit-box-orient\",\n \"-webkit-box-pack\",\n \"-webkit-box-shadow\",\n \"-webkit-box-sizing\",\n \"-webkit-filter\",\n \"-webkit-flex\",\n \"-webkit-flex-basis\",\n \"-webkit-flex-direction\",\n \"-webkit-flex-flow\",\n \"-webkit-flex-grow\",\n \"-webkit-flex-shrink\",\n \"-webkit-flex-wrap\",\n \"-webkit-justify-content\",\n \"-webkit-line-clamp\",\n \"-webkit-mask\",\n \"-webkit-mask-clip\",\n \"-webkit-mask-composite\",\n \"-webkit-mask-image\",\n \"-webkit-mask-origin\",\n \"-webkit-mask-position\",\n \"-webkit-mask-position-x\",\n \"-webkit-mask-position-y\",\n \"-webkit-mask-repeat\",\n \"-webkit-mask-size\",\n \"-webkit-order\",\n \"-webkit-perspective\",\n \"-webkit-perspective-origin\",\n \"-webkit-text-fill-color\",\n \"-webkit-text-size-adjust\",\n \"-webkit-text-stroke\",\n \"-webkit-text-stroke-color\",\n \"-webkit-text-stroke-width\",\n \"-webkit-transform\",\n \"-webkit-transform-origin\",\n \"-webkit-transform-style\",\n \"-webkit-transition\",\n \"-webkit-transition-delay\",\n \"-webkit-transition-duration\",\n \"-webkit-transition-property\",\n \"-webkit-transition-timing-function\",\n \"-webkit-user-select\",\n \"0\",\n \"1\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"2\",\n \"20\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"@@iterator\",\n \"ABORT_ERR\",\n \"ACTIVE\",\n \"ACTIVE_ATTRIBUTES\",\n \"ACTIVE_TEXTURE\",\n \"ACTIVE_UNIFORMS\",\n \"ACTIVE_UNIFORM_BLOCKS\",\n \"ADDITION\",\n \"ALIASED_LINE_WIDTH_RANGE\",\n \"ALIASED_POINT_SIZE_RANGE\",\n \"ALL\",\n \"ALLOW_KEYBOARD_INPUT\",\n \"ALLPASS\",\n \"ALPHA\",\n \"ALPHA_BITS\",\n \"ALREADY_SIGNALED\",\n \"ALT_MASK\",\n \"ALWAYS\",\n \"ANY_SAMPLES_PASSED\",\n \"ANY_SAMPLES_PASSED_CONSERVATIVE\",\n \"ANY_TYPE\",\n \"ANY_UNORDERED_NODE_TYPE\",\n \"ARRAY_BUFFER\",\n \"ARRAY_BUFFER_BINDING\",\n \"ATTACHED_SHADERS\",\n \"ATTRIBUTE_NODE\",\n \"AT_TARGET\",\n \"AbortController\",\n \"AbortSignal\",\n \"AbsoluteOrientationSensor\",\n \"AbstractRange\",\n \"Accelerometer\",\n \"AddSearchProvider\",\n \"AggregateError\",\n \"AnalyserNode\",\n \"Animation\",\n \"AnimationEffect\",\n \"AnimationEvent\",\n \"AnimationPlaybackEvent\",\n \"AnimationTimeline\",\n \"AnonXMLHttpRequest\",\n \"Any\",\n \"ApplicationCache\",\n \"ApplicationCacheErrorEvent\",\n \"Array\",\n \"ArrayBuffer\",\n \"ArrayType\",\n \"Atomics\",\n \"Attr\",\n \"Audio\",\n \"AudioBuffer\",\n \"AudioBufferSourceNode\",\n \"AudioContext\",\n \"AudioDestinationNode\",\n \"AudioListener\",\n \"AudioNode\",\n \"AudioParam\",\n \"AudioParamMap\",\n \"AudioProcessingEvent\",\n \"AudioScheduledSourceNode\",\n \"AudioStreamTrack\",\n \"AudioWorklet\",\n \"AudioWorkletNode\",\n \"AuthenticatorAssertionResponse\",\n \"AuthenticatorAttestationResponse\",\n \"AuthenticatorResponse\",\n \"AutocompleteErrorEvent\",\n \"BACK\",\n \"BAD_BOUNDARYPOINTS_ERR\",\n \"BAD_REQUEST\",\n \"BANDPASS\",\n \"BLEND\",\n \"BLEND_COLOR\",\n \"BLEND_DST_ALPHA\",\n \"BLEND_DST_RGB\",\n \"BLEND_EQUATION\",\n \"BLEND_EQUATION_ALPHA\",\n \"BLEND_EQUATION_RGB\",\n \"BLEND_SRC_ALPHA\",\n \"BLEND_SRC_RGB\",\n \"BLUE\",\n \"BLUE_BITS\",\n \"BLUR\",\n \"BOOL\",\n \"BOOLEAN_TYPE\",\n \"BOOL_VEC2\",\n \"BOOL_VEC3\",\n \"BOOL_VEC4\",\n \"BOTH\",\n \"BROWSER_DEFAULT_WEBGL\",\n \"BUBBLING_PHASE\",\n \"BUFFER_SIZE\",\n \"BUFFER_USAGE\",\n \"BYTE\",\n \"BYTES_PER_ELEMENT\",\n \"BackgroundFetchManager\",\n \"BackgroundFetchRecord\",\n \"BackgroundFetchRegistration\",\n \"BarProp\",\n \"BarcodeDetector\",\n \"BaseAudioContext\",\n \"BaseHref\",\n \"BatteryManager\",\n \"BeforeInstallPromptEvent\",\n \"BeforeLoadEvent\",\n \"BeforeUnloadEvent\",\n \"BigInt\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"BiquadFilterNode\",\n \"Blob\",\n \"BlobEvent\",\n \"Bluetooth\",\n \"BluetoothCharacteristicProperties\",\n \"BluetoothDevice\",\n \"BluetoothRemoteGATTCharacteristic\",\n \"BluetoothRemoteGATTDescriptor\",\n \"BluetoothRemoteGATTServer\",\n \"BluetoothRemoteGATTService\",\n \"BluetoothUUID\",\n \"Boolean\",\n \"BroadcastChannel\",\n \"ByteLengthQueuingStrategy\",\n \"CAPTURING_PHASE\",\n \"CCW\",\n \"CDATASection\",\n \"CDATA_SECTION_NODE\",\n \"CHANGE\",\n \"CHARSET_RULE\",\n \"CHECKING\",\n \"CLAMP_TO_EDGE\",\n \"CLICK\",\n \"CLOSED\",\n \"CLOSING\",\n \"COLOR\",\n \"COLOR_ATTACHMENT0\",\n \"COLOR_ATTACHMENT1\",\n \"COLOR_ATTACHMENT10\",\n \"COLOR_ATTACHMENT11\",\n \"COLOR_ATTACHMENT12\",\n \"COLOR_ATTACHMENT13\",\n \"COLOR_ATTACHMENT14\",\n \"COLOR_ATTACHMENT15\",\n \"COLOR_ATTACHMENT2\",\n \"COLOR_ATTACHMENT3\",\n \"COLOR_ATTACHMENT4\",\n \"COLOR_ATTACHMENT5\",\n \"COLOR_ATTACHMENT6\",\n \"COLOR_ATTACHMENT7\",\n \"COLOR_ATTACHMENT8\",\n \"COLOR_ATTACHMENT9\",\n \"COLOR_BUFFER_BIT\",\n \"COLOR_CLEAR_VALUE\",\n \"COLOR_WRITEMASK\",\n \"COMMENT_NODE\",\n \"COMPARE_REF_TO_TEXTURE\",\n \"COMPILE_STATUS\",\n \"COMPLETION_STATUS_KHR\",\n \"COMPRESSED_RGBA_S3TC_DXT1_EXT\",\n \"COMPRESSED_RGBA_S3TC_DXT3_EXT\",\n \"COMPRESSED_RGBA_S3TC_DXT5_EXT\",\n \"COMPRESSED_RGB_S3TC_DXT1_EXT\",\n \"COMPRESSED_TEXTURE_FORMATS\",\n \"COMPUTE\",\n \"CONDITION_SATISFIED\",\n \"CONFIGURATION_UNSUPPORTED\",\n \"CONNECTING\",\n \"CONSTANT_ALPHA\",\n \"CONSTANT_COLOR\",\n \"CONSTRAINT_ERR\",\n \"CONTEXT_LOST_WEBGL\",\n \"CONTROL_MASK\",\n \"COPY_DST\",\n \"COPY_READ_BUFFER\",\n \"COPY_READ_BUFFER_BINDING\",\n \"COPY_SRC\",\n \"COPY_WRITE_BUFFER\",\n \"COPY_WRITE_BUFFER_BINDING\",\n \"COUNTER_STYLE_RULE\",\n \"CSS\",\n \"CSS2Properties\",\n \"CSSAnimation\",\n \"CSSCharsetRule\",\n \"CSSConditionRule\",\n \"CSSCounterStyleRule\",\n \"CSSFontFaceRule\",\n \"CSSFontFeatureValuesRule\",\n \"CSSGroupingRule\",\n \"CSSImageValue\",\n \"CSSImportRule\",\n \"CSSKeyframeRule\",\n \"CSSKeyframesRule\",\n \"CSSKeywordValue\",\n \"CSSMathInvert\",\n \"CSSMathMax\",\n \"CSSMathMin\",\n \"CSSMathNegate\",\n \"CSSMathProduct\",\n \"CSSMathSum\",\n \"CSSMathValue\",\n \"CSSMatrixComponent\",\n \"CSSMediaRule\",\n \"CSSMozDocumentRule\",\n \"CSSNameSpaceRule\",\n \"CSSNamespaceRule\",\n \"CSSNumericArray\",\n \"CSSNumericValue\",\n \"CSSPageRule\",\n \"CSSPerspective\",\n \"CSSPositionValue\",\n \"CSSPrimitiveValue\",\n \"CSSRotate\",\n \"CSSRule\",\n \"CSSRuleList\",\n \"CSSScale\",\n \"CSSSkew\",\n \"CSSSkewX\",\n \"CSSSkewY\",\n \"CSSStyleDeclaration\",\n \"CSSStyleRule\",\n \"CSSStyleSheet\",\n \"CSSStyleValue\",\n \"CSSSupportsRule\",\n \"CSSTransformComponent\",\n \"CSSTransformValue\",\n \"CSSTransition\",\n \"CSSTranslate\",\n \"CSSUnitValue\",\n \"CSSUnknownRule\",\n \"CSSUnparsedValue\",\n \"CSSValue\",\n \"CSSValueList\",\n \"CSSVariableReferenceValue\",\n \"CSSVariablesDeclaration\",\n \"CSSVariablesRule\",\n \"CSSViewportRule\",\n \"CSS_ATTR\",\n \"CSS_CM\",\n \"CSS_COUNTER\",\n \"CSS_CUSTOM\",\n \"CSS_DEG\",\n \"CSS_DIMENSION\",\n \"CSS_EMS\",\n \"CSS_EXS\",\n \"CSS_FILTER_BLUR\",\n \"CSS_FILTER_BRIGHTNESS\",\n \"CSS_FILTER_CONTRAST\",\n \"CSS_FILTER_CUSTOM\",\n \"CSS_FILTER_DROP_SHADOW\",\n \"CSS_FILTER_GRAYSCALE\",\n \"CSS_FILTER_HUE_ROTATE\",\n \"CSS_FILTER_INVERT\",\n \"CSS_FILTER_OPACITY\",\n \"CSS_FILTER_REFERENCE\",\n \"CSS_FILTER_SATURATE\",\n \"CSS_FILTER_SEPIA\",\n \"CSS_GRAD\",\n \"CSS_HZ\",\n \"CSS_IDENT\",\n \"CSS_IN\",\n \"CSS_INHERIT\",\n \"CSS_KHZ\",\n \"CSS_MATRIX\",\n \"CSS_MATRIX3D\",\n \"CSS_MM\",\n \"CSS_MS\",\n \"CSS_NUMBER\",\n \"CSS_PC\",\n \"CSS_PERCENTAGE\",\n \"CSS_PERSPECTIVE\",\n \"CSS_PRIMITIVE_VALUE\",\n \"CSS_PT\",\n \"CSS_PX\",\n \"CSS_RAD\",\n \"CSS_RECT\",\n \"CSS_RGBCOLOR\",\n \"CSS_ROTATE\",\n \"CSS_ROTATE3D\",\n \"CSS_ROTATEX\",\n \"CSS_ROTATEY\",\n \"CSS_ROTATEZ\",\n \"CSS_S\",\n \"CSS_SCALE\",\n \"CSS_SCALE3D\",\n \"CSS_SCALEX\",\n \"CSS_SCALEY\",\n \"CSS_SCALEZ\",\n \"CSS_SKEW\",\n \"CSS_SKEWX\",\n \"CSS_SKEWY\",\n \"CSS_STRING\",\n \"CSS_TRANSLATE\",\n \"CSS_TRANSLATE3D\",\n \"CSS_TRANSLATEX\",\n \"CSS_TRANSLATEY\",\n \"CSS_TRANSLATEZ\",\n \"CSS_UNKNOWN\",\n \"CSS_URI\",\n \"CSS_VALUE_LIST\",\n \"CSS_VH\",\n \"CSS_VMAX\",\n \"CSS_VMIN\",\n \"CSS_VW\",\n \"CULL_FACE\",\n \"CULL_FACE_MODE\",\n \"CURRENT_PROGRAM\",\n \"CURRENT_QUERY\",\n \"CURRENT_VERTEX_ATTRIB\",\n \"CUSTOM\",\n \"CW\",\n \"Cache\",\n \"CacheStorage\",\n \"CanvasCaptureMediaStream\",\n \"CanvasCaptureMediaStreamTrack\",\n \"CanvasGradient\",\n \"CanvasPattern\",\n \"CanvasRenderingContext2D\",\n \"CaretPosition\",\n \"ChannelMergerNode\",\n \"ChannelSplitterNode\",\n \"CharacterData\",\n \"ClientRect\",\n \"ClientRectList\",\n \"Clipboard\",\n \"ClipboardEvent\",\n \"ClipboardItem\",\n \"CloseEvent\",\n \"Collator\",\n \"CommandEvent\",\n \"Comment\",\n \"CompileError\",\n \"CompositionEvent\",\n \"CompressionStream\",\n \"Console\",\n \"ConstantSourceNode\",\n \"Controllers\",\n \"ConvolverNode\",\n \"CountQueuingStrategy\",\n \"Counter\",\n \"Credential\",\n \"CredentialsContainer\",\n \"Crypto\",\n \"CryptoKey\",\n \"CustomElementRegistry\",\n \"CustomEvent\",\n \"DATABASE_ERR\",\n \"DATA_CLONE_ERR\",\n \"DATA_ERR\",\n \"DBLCLICK\",\n \"DECR\",\n \"DECR_WRAP\",\n \"DELETE_STATUS\",\n \"DEPTH\",\n \"DEPTH24_STENCIL8\",\n \"DEPTH32F_STENCIL8\",\n \"DEPTH_ATTACHMENT\",\n \"DEPTH_BITS\",\n \"DEPTH_BUFFER_BIT\",\n \"DEPTH_CLEAR_VALUE\",\n \"DEPTH_COMPONENT\",\n \"DEPTH_COMPONENT16\",\n \"DEPTH_COMPONENT24\",\n \"DEPTH_COMPONENT32F\",\n \"DEPTH_FUNC\",\n \"DEPTH_RANGE\",\n \"DEPTH_STENCIL\",\n \"DEPTH_STENCIL_ATTACHMENT\",\n \"DEPTH_TEST\",\n \"DEPTH_WRITEMASK\",\n \"DEVICE_INELIGIBLE\",\n \"DIRECTION_DOWN\",\n \"DIRECTION_LEFT\",\n \"DIRECTION_RIGHT\",\n \"DIRECTION_UP\",\n \"DISABLED\",\n \"DISPATCH_REQUEST_ERR\",\n \"DITHER\",\n \"DOCUMENT_FRAGMENT_NODE\",\n \"DOCUMENT_NODE\",\n \"DOCUMENT_POSITION_CONTAINED_BY\",\n \"DOCUMENT_POSITION_CONTAINS\",\n \"DOCUMENT_POSITION_DISCONNECTED\",\n \"DOCUMENT_POSITION_FOLLOWING\",\n \"DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\",\n \"DOCUMENT_POSITION_PRECEDING\",\n \"DOCUMENT_TYPE_NODE\",\n \"DOMCursor\",\n \"DOMError\",\n \"DOMException\",\n \"DOMImplementation\",\n \"DOMImplementationLS\",\n \"DOMMatrix\",\n \"DOMMatrixReadOnly\",\n \"DOMParser\",\n \"DOMPoint\",\n \"DOMPointReadOnly\",\n \"DOMQuad\",\n \"DOMRect\",\n \"DOMRectList\",\n \"DOMRectReadOnly\",\n \"DOMRequest\",\n \"DOMSTRING_SIZE_ERR\",\n \"DOMSettableTokenList\",\n \"DOMStringList\",\n \"DOMStringMap\",\n \"DOMTokenList\",\n \"DOMTransactionEvent\",\n \"DOM_DELTA_LINE\",\n \"DOM_DELTA_PAGE\",\n \"DOM_DELTA_PIXEL\",\n \"DOM_INPUT_METHOD_DROP\",\n \"DOM_INPUT_METHOD_HANDWRITING\",\n \"DOM_INPUT_METHOD_IME\",\n \"DOM_INPUT_METHOD_KEYBOARD\",\n \"DOM_INPUT_METHOD_MULTIMODAL\",\n \"DOM_INPUT_METHOD_OPTION\",\n \"DOM_INPUT_METHOD_PASTE\",\n \"DOM_INPUT_METHOD_SCRIPT\",\n \"DOM_INPUT_METHOD_UNKNOWN\",\n \"DOM_INPUT_METHOD_VOICE\",\n \"DOM_KEY_LOCATION_JOYSTICK\",\n \"DOM_KEY_LOCATION_LEFT\",\n \"DOM_KEY_LOCATION_MOBILE\",\n \"DOM_KEY_LOCATION_NUMPAD\",\n \"DOM_KEY_LOCATION_RIGHT\",\n \"DOM_KEY_LOCATION_STANDARD\",\n \"DOM_VK_0\",\n \"DOM_VK_1\",\n \"DOM_VK_2\",\n \"DOM_VK_3\",\n \"DOM_VK_4\",\n \"DOM_VK_5\",\n \"DOM_VK_6\",\n \"DOM_VK_7\",\n \"DOM_VK_8\",\n \"DOM_VK_9\",\n \"DOM_VK_A\",\n \"DOM_VK_ACCEPT\",\n \"DOM_VK_ADD\",\n \"DOM_VK_ALT\",\n \"DOM_VK_ALTGR\",\n \"DOM_VK_AMPERSAND\",\n \"DOM_VK_ASTERISK\",\n \"DOM_VK_AT\",\n \"DOM_VK_ATTN\",\n \"DOM_VK_B\",\n \"DOM_VK_BACKSPACE\",\n \"DOM_VK_BACK_QUOTE\",\n \"DOM_VK_BACK_SLASH\",\n \"DOM_VK_BACK_SPACE\",\n \"DOM_VK_C\",\n \"DOM_VK_CANCEL\",\n \"DOM_VK_CAPS_LOCK\",\n \"DOM_VK_CIRCUMFLEX\",\n \"DOM_VK_CLEAR\",\n \"DOM_VK_CLOSE_BRACKET\",\n \"DOM_VK_CLOSE_CURLY_BRACKET\",\n \"DOM_VK_CLOSE_PAREN\",\n \"DOM_VK_COLON\",\n \"DOM_VK_COMMA\",\n \"DOM_VK_CONTEXT_MENU\",\n \"DOM_VK_CONTROL\",\n \"DOM_VK_CONVERT\",\n \"DOM_VK_CRSEL\",\n \"DOM_VK_CTRL\",\n \"DOM_VK_D\",\n \"DOM_VK_DECIMAL\",\n \"DOM_VK_DELETE\",\n \"DOM_VK_DIVIDE\",\n \"DOM_VK_DOLLAR\",\n \"DOM_VK_DOUBLE_QUOTE\",\n \"DOM_VK_DOWN\",\n \"DOM_VK_E\",\n \"DOM_VK_EISU\",\n \"DOM_VK_END\",\n \"DOM_VK_ENTER\",\n \"DOM_VK_EQUALS\",\n \"DOM_VK_EREOF\",\n \"DOM_VK_ESCAPE\",\n \"DOM_VK_EXCLAMATION\",\n \"DOM_VK_EXECUTE\",\n \"DOM_VK_EXSEL\",\n \"DOM_VK_F\",\n \"DOM_VK_F1\",\n \"DOM_VK_F10\",\n \"DOM_VK_F11\",\n \"DOM_VK_F12\",\n \"DOM_VK_F13\",\n \"DOM_VK_F14\",\n \"DOM_VK_F15\",\n \"DOM_VK_F16\",\n \"DOM_VK_F17\",\n \"DOM_VK_F18\",\n \"DOM_VK_F19\",\n \"DOM_VK_F2\",\n \"DOM_VK_F20\",\n \"DOM_VK_F21\",\n \"DOM_VK_F22\",\n \"DOM_VK_F23\",\n \"DOM_VK_F24\",\n \"DOM_VK_F25\",\n \"DOM_VK_F26\",\n \"DOM_VK_F27\",\n \"DOM_VK_F28\",\n \"DOM_VK_F29\",\n \"DOM_VK_F3\",\n \"DOM_VK_F30\",\n \"DOM_VK_F31\",\n \"DOM_VK_F32\",\n \"DOM_VK_F33\",\n \"DOM_VK_F34\",\n \"DOM_VK_F35\",\n \"DOM_VK_F36\",\n \"DOM_VK_F4\",\n \"DOM_VK_F5\",\n \"DOM_VK_F6\",\n \"DOM_VK_F7\",\n \"DOM_VK_F8\",\n \"DOM_VK_F9\",\n \"DOM_VK_FINAL\",\n \"DOM_VK_FRONT\",\n \"DOM_VK_G\",\n \"DOM_VK_GREATER_THAN\",\n \"DOM_VK_H\",\n \"DOM_VK_HANGUL\",\n \"DOM_VK_HANJA\",\n \"DOM_VK_HASH\",\n \"DOM_VK_HELP\",\n \"DOM_VK_HK_TOGGLE\",\n \"DOM_VK_HOME\",\n \"DOM_VK_HYPHEN_MINUS\",\n \"DOM_VK_I\",\n \"DOM_VK_INSERT\",\n \"DOM_VK_J\",\n \"DOM_VK_JUNJA\",\n \"DOM_VK_K\",\n \"DOM_VK_KANA\",\n \"DOM_VK_KANJI\",\n \"DOM_VK_L\",\n \"DOM_VK_LEFT\",\n \"DOM_VK_LEFT_TAB\",\n \"DOM_VK_LESS_THAN\",\n \"DOM_VK_M\",\n \"DOM_VK_META\",\n \"DOM_VK_MODECHANGE\",\n \"DOM_VK_MULTIPLY\",\n \"DOM_VK_N\",\n \"DOM_VK_NONCONVERT\",\n \"DOM_VK_NUMPAD0\",\n \"DOM_VK_NUMPAD1\",\n \"DOM_VK_NUMPAD2\",\n \"DOM_VK_NUMPAD3\",\n \"DOM_VK_NUMPAD4\",\n \"DOM_VK_NUMPAD5\",\n \"DOM_VK_NUMPAD6\",\n \"DOM_VK_NUMPAD7\",\n \"DOM_VK_NUMPAD8\",\n \"DOM_VK_NUMPAD9\",\n \"DOM_VK_NUM_LOCK\",\n \"DOM_VK_O\",\n \"DOM_VK_OEM_1\",\n \"DOM_VK_OEM_102\",\n \"DOM_VK_OEM_2\",\n \"DOM_VK_OEM_3\",\n \"DOM_VK_OEM_4\",\n \"DOM_VK_OEM_5\",\n \"DOM_VK_OEM_6\",\n \"DOM_VK_OEM_7\",\n \"DOM_VK_OEM_8\",\n \"DOM_VK_OEM_COMMA\",\n \"DOM_VK_OEM_MINUS\",\n \"DOM_VK_OEM_PERIOD\",\n \"DOM_VK_OEM_PLUS\",\n \"DOM_VK_OPEN_BRACKET\",\n \"DOM_VK_OPEN_CURLY_BRACKET\",\n \"DOM_VK_OPEN_PAREN\",\n \"DOM_VK_P\",\n \"DOM_VK_PA1\",\n \"DOM_VK_PAGEDOWN\",\n \"DOM_VK_PAGEUP\",\n \"DOM_VK_PAGE_DOWN\",\n \"DOM_VK_PAGE_UP\",\n \"DOM_VK_PAUSE\",\n \"DOM_VK_PERCENT\",\n \"DOM_VK_PERIOD\",\n \"DOM_VK_PIPE\",\n \"DOM_VK_PLAY\",\n \"DOM_VK_PLUS\",\n \"DOM_VK_PRINT\",\n \"DOM_VK_PRINTSCREEN\",\n \"DOM_VK_PROCESSKEY\",\n \"DOM_VK_PROPERITES\",\n \"DOM_VK_Q\",\n \"DOM_VK_QUESTION_MARK\",\n \"DOM_VK_QUOTE\",\n \"DOM_VK_R\",\n \"DOM_VK_REDO\",\n \"DOM_VK_RETURN\",\n \"DOM_VK_RIGHT\",\n \"DOM_VK_S\",\n \"DOM_VK_SCROLL_LOCK\",\n \"DOM_VK_SELECT\",\n \"DOM_VK_SEMICOLON\",\n \"DOM_VK_SEPARATOR\",\n \"DOM_VK_SHIFT\",\n \"DOM_VK_SLASH\",\n \"DOM_VK_SLEEP\",\n \"DOM_VK_SPACE\",\n \"DOM_VK_SUBTRACT\",\n \"DOM_VK_T\",\n \"DOM_VK_TAB\",\n \"DOM_VK_TILDE\",\n \"DOM_VK_U\",\n \"DOM_VK_UNDERSCORE\",\n \"DOM_VK_UNDO\",\n \"DOM_VK_UNICODE\",\n \"DOM_VK_UP\",\n \"DOM_VK_V\",\n \"DOM_VK_VOLUME_DOWN\",\n \"DOM_VK_VOLUME_MUTE\",\n \"DOM_VK_VOLUME_UP\",\n \"DOM_VK_W\",\n \"DOM_VK_WIN\",\n \"DOM_VK_WINDOW\",\n \"DOM_VK_WIN_ICO_00\",\n \"DOM_VK_WIN_ICO_CLEAR\",\n \"DOM_VK_WIN_ICO_HELP\",\n \"DOM_VK_WIN_OEM_ATTN\",\n \"DOM_VK_WIN_OEM_AUTO\",\n \"DOM_VK_WIN_OEM_BACKTAB\",\n \"DOM_VK_WIN_OEM_CLEAR\",\n \"DOM_VK_WIN_OEM_COPY\",\n \"DOM_VK_WIN_OEM_CUSEL\",\n \"DOM_VK_WIN_OEM_ENLW\",\n \"DOM_VK_WIN_OEM_FINISH\",\n \"DOM_VK_WIN_OEM_FJ_JISHO\",\n \"DOM_VK_WIN_OEM_FJ_LOYA\",\n \"DOM_VK_WIN_OEM_FJ_MASSHOU\",\n \"DOM_VK_WIN_OEM_FJ_ROYA\",\n \"DOM_VK_WIN_OEM_FJ_TOUROKU\",\n \"DOM_VK_WIN_OEM_JUMP\",\n \"DOM_VK_WIN_OEM_PA1\",\n \"DOM_VK_WIN_OEM_PA2\",\n \"DOM_VK_WIN_OEM_PA3\",\n \"DOM_VK_WIN_OEM_RESET\",\n \"DOM_VK_WIN_OEM_WSCTRL\",\n \"DOM_VK_X\",\n \"DOM_VK_XF86XK_ADD_FAVORITE\",\n \"DOM_VK_XF86XK_APPLICATION_LEFT\",\n \"DOM_VK_XF86XK_APPLICATION_RIGHT\",\n \"DOM_VK_XF86XK_AUDIO_CYCLE_TRACK\",\n \"DOM_VK_XF86XK_AUDIO_FORWARD\",\n \"DOM_VK_XF86XK_AUDIO_LOWER_VOLUME\",\n \"DOM_VK_XF86XK_AUDIO_MEDIA\",\n \"DOM_VK_XF86XK_AUDIO_MUTE\",\n \"DOM_VK_XF86XK_AUDIO_NEXT\",\n \"DOM_VK_XF86XK_AUDIO_PAUSE\",\n \"DOM_VK_XF86XK_AUDIO_PLAY\",\n \"DOM_VK_XF86XK_AUDIO_PREV\",\n \"DOM_VK_XF86XK_AUDIO_RAISE_VOLUME\",\n \"DOM_VK_XF86XK_AUDIO_RANDOM_PLAY\",\n \"DOM_VK_XF86XK_AUDIO_RECORD\",\n \"DOM_VK_XF86XK_AUDIO_REPEAT\",\n \"DOM_VK_XF86XK_AUDIO_REWIND\",\n \"DOM_VK_XF86XK_AUDIO_STOP\",\n \"DOM_VK_XF86XK_AWAY\",\n \"DOM_VK_XF86XK_BACK\",\n \"DOM_VK_XF86XK_BACK_FORWARD\",\n \"DOM_VK_XF86XK_BATTERY\",\n \"DOM_VK_XF86XK_BLUE\",\n \"DOM_VK_XF86XK_BLUETOOTH\",\n \"DOM_VK_XF86XK_BOOK\",\n \"DOM_VK_XF86XK_BRIGHTNESS_ADJUST\",\n \"DOM_VK_XF86XK_CALCULATOR\",\n \"DOM_VK_XF86XK_CALENDAR\",\n \"DOM_VK_XF86XK_CD\",\n \"DOM_VK_XF86XK_CLOSE\",\n \"DOM_VK_XF86XK_COMMUNITY\",\n \"DOM_VK_XF86XK_CONTRAST_ADJUST\",\n \"DOM_VK_XF86XK_COPY\",\n \"DOM_VK_XF86XK_CUT\",\n \"DOM_VK_XF86XK_CYCLE_ANGLE\",\n \"DOM_VK_XF86XK_DISPLAY\",\n \"DOM_VK_XF86XK_DOCUMENTS\",\n \"DOM_VK_XF86XK_DOS\",\n \"DOM_VK_XF86XK_EJECT\",\n \"DOM_VK_XF86XK_EXCEL\",\n \"DOM_VK_XF86XK_EXPLORER\",\n \"DOM_VK_XF86XK_FAVORITES\",\n \"DOM_VK_XF86XK_FINANCE\",\n \"DOM_VK_XF86XK_FORWARD\",\n \"DOM_VK_XF86XK_FRAME_BACK\",\n \"DOM_VK_XF86XK_FRAME_FORWARD\",\n \"DOM_VK_XF86XK_GAME\",\n \"DOM_VK_XF86XK_GO\",\n \"DOM_VK_XF86XK_GREEN\",\n \"DOM_VK_XF86XK_HIBERNATE\",\n \"DOM_VK_XF86XK_HISTORY\",\n \"DOM_VK_XF86XK_HOME_PAGE\",\n \"DOM_VK_XF86XK_HOT_LINKS\",\n \"DOM_VK_XF86XK_I_TOUCH\",\n \"DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN\",\n \"DOM_VK_XF86XK_KBD_BRIGHTNESS_UP\",\n \"DOM_VK_XF86XK_KBD_LIGHT_ON_OFF\",\n \"DOM_VK_XF86XK_LAUNCH0\",\n \"DOM_VK_XF86XK_LAUNCH1\",\n \"DOM_VK_XF86XK_LAUNCH2\",\n \"DOM_VK_XF86XK_LAUNCH3\",\n \"DOM_VK_XF86XK_LAUNCH4\",\n \"DOM_VK_XF86XK_LAUNCH5\",\n \"DOM_VK_XF86XK_LAUNCH6\",\n \"DOM_VK_XF86XK_LAUNCH7\",\n \"DOM_VK_XF86XK_LAUNCH8\",\n \"DOM_VK_XF86XK_LAUNCH9\",\n \"DOM_VK_XF86XK_LAUNCH_A\",\n \"DOM_VK_XF86XK_LAUNCH_B\",\n \"DOM_VK_XF86XK_LAUNCH_C\",\n \"DOM_VK_XF86XK_LAUNCH_D\",\n \"DOM_VK_XF86XK_LAUNCH_E\",\n \"DOM_VK_XF86XK_LAUNCH_F\",\n \"DOM_VK_XF86XK_LIGHT_BULB\",\n \"DOM_VK_XF86XK_LOG_OFF\",\n \"DOM_VK_XF86XK_MAIL\",\n \"DOM_VK_XF86XK_MAIL_FORWARD\",\n \"DOM_VK_XF86XK_MARKET\",\n \"DOM_VK_XF86XK_MEETING\",\n \"DOM_VK_XF86XK_MEMO\",\n \"DOM_VK_XF86XK_MENU_KB\",\n \"DOM_VK_XF86XK_MENU_PB\",\n \"DOM_VK_XF86XK_MESSENGER\",\n \"DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN\",\n \"DOM_VK_XF86XK_MON_BRIGHTNESS_UP\",\n \"DOM_VK_XF86XK_MUSIC\",\n \"DOM_VK_XF86XK_MY_COMPUTER\",\n \"DOM_VK_XF86XK_MY_SITES\",\n \"DOM_VK_XF86XK_NEW\",\n \"DOM_VK_XF86XK_NEWS\",\n \"DOM_VK_XF86XK_OFFICE_HOME\",\n \"DOM_VK_XF86XK_OPEN\",\n \"DOM_VK_XF86XK_OPEN_URL\",\n \"DOM_VK_XF86XK_OPTION\",\n \"DOM_VK_XF86XK_PASTE\",\n \"DOM_VK_XF86XK_PHONE\",\n \"DOM_VK_XF86XK_PICTURES\",\n \"DOM_VK_XF86XK_POWER_DOWN\",\n \"DOM_VK_XF86XK_POWER_OFF\",\n \"DOM_VK_XF86XK_RED\",\n \"DOM_VK_XF86XK_REFRESH\",\n \"DOM_VK_XF86XK_RELOAD\",\n \"DOM_VK_XF86XK_REPLY\",\n \"DOM_VK_XF86XK_ROCKER_DOWN\",\n \"DOM_VK_XF86XK_ROCKER_ENTER\",\n \"DOM_VK_XF86XK_ROCKER_UP\",\n \"DOM_VK_XF86XK_ROTATE_WINDOWS\",\n \"DOM_VK_XF86XK_ROTATION_KB\",\n \"DOM_VK_XF86XK_ROTATION_PB\",\n \"DOM_VK_XF86XK_SAVE\",\n \"DOM_VK_XF86XK_SCREEN_SAVER\",\n \"DOM_VK_XF86XK_SCROLL_CLICK\",\n \"DOM_VK_XF86XK_SCROLL_DOWN\",\n \"DOM_VK_XF86XK_SCROLL_UP\",\n \"DOM_VK_XF86XK_SEARCH\",\n \"DOM_VK_XF86XK_SEND\",\n \"DOM_VK_XF86XK_SHOP\",\n \"DOM_VK_XF86XK_SPELL\",\n \"DOM_VK_XF86XK_SPLIT_SCREEN\",\n \"DOM_VK_XF86XK_STANDBY\",\n \"DOM_VK_XF86XK_START\",\n \"DOM_VK_XF86XK_STOP\",\n \"DOM_VK_XF86XK_SUBTITLE\",\n \"DOM_VK_XF86XK_SUPPORT\",\n \"DOM_VK_XF86XK_SUSPEND\",\n \"DOM_VK_XF86XK_TASK_PANE\",\n \"DOM_VK_XF86XK_TERMINAL\",\n \"DOM_VK_XF86XK_TIME\",\n \"DOM_VK_XF86XK_TOOLS\",\n \"DOM_VK_XF86XK_TOP_MENU\",\n \"DOM_VK_XF86XK_TO_DO_LIST\",\n \"DOM_VK_XF86XK_TRAVEL\",\n \"DOM_VK_XF86XK_USER1KB\",\n \"DOM_VK_XF86XK_USER2KB\",\n \"DOM_VK_XF86XK_USER_PB\",\n \"DOM_VK_XF86XK_UWB\",\n \"DOM_VK_XF86XK_VENDOR_HOME\",\n \"DOM_VK_XF86XK_VIDEO\",\n \"DOM_VK_XF86XK_VIEW\",\n \"DOM_VK_XF86XK_WAKE_UP\",\n \"DOM_VK_XF86XK_WEB_CAM\",\n \"DOM_VK_XF86XK_WHEEL_BUTTON\",\n \"DOM_VK_XF86XK_WLAN\",\n \"DOM_VK_XF86XK_WORD\",\n \"DOM_VK_XF86XK_WWW\",\n \"DOM_VK_XF86XK_XFER\",\n \"DOM_VK_XF86XK_YELLOW\",\n \"DOM_VK_XF86XK_ZOOM_IN\",\n \"DOM_VK_XF86XK_ZOOM_OUT\",\n \"DOM_VK_Y\",\n \"DOM_VK_Z\",\n \"DOM_VK_ZOOM\",\n \"DONE\",\n \"DONT_CARE\",\n \"DOWNLOADING\",\n \"DRAGDROP\",\n \"DRAW_BUFFER0\",\n \"DRAW_BUFFER1\",\n \"DRAW_BUFFER10\",\n \"DRAW_BUFFER11\",\n \"DRAW_BUFFER12\",\n \"DRAW_BUFFER13\",\n \"DRAW_BUFFER14\",\n \"DRAW_BUFFER15\",\n \"DRAW_BUFFER2\",\n \"DRAW_BUFFER3\",\n \"DRAW_BUFFER4\",\n \"DRAW_BUFFER5\",\n \"DRAW_BUFFER6\",\n \"DRAW_BUFFER7\",\n \"DRAW_BUFFER8\",\n \"DRAW_BUFFER9\",\n \"DRAW_FRAMEBUFFER\",\n \"DRAW_FRAMEBUFFER_BINDING\",\n \"DST_ALPHA\",\n \"DST_COLOR\",\n \"DYNAMIC_COPY\",\n \"DYNAMIC_DRAW\",\n \"DYNAMIC_READ\",\n \"DataChannel\",\n \"DataTransfer\",\n \"DataTransferItem\",\n \"DataTransferItemList\",\n \"DataView\",\n \"Date\",\n \"DateTimeFormat\",\n \"DecompressionStream\",\n \"DelayNode\",\n \"DeprecationReportBody\",\n \"DesktopNotification\",\n \"DesktopNotificationCenter\",\n \"DeviceLightEvent\",\n \"DeviceMotionEvent\",\n \"DeviceMotionEventAcceleration\",\n \"DeviceMotionEventRotationRate\",\n \"DeviceOrientationEvent\",\n \"DeviceProximityEvent\",\n \"DeviceStorage\",\n \"DeviceStorageChangeEvent\",\n \"Directory\",\n \"DisplayNames\",\n \"Document\",\n \"DocumentFragment\",\n \"DocumentTimeline\",\n \"DocumentType\",\n \"DragEvent\",\n \"DynamicsCompressorNode\",\n \"E\",\n \"ELEMENT_ARRAY_BUFFER\",\n \"ELEMENT_ARRAY_BUFFER_BINDING\",\n \"ELEMENT_NODE\",\n \"EMPTY\",\n \"ENCODING_ERR\",\n \"ENDED\",\n \"END_TO_END\",\n \"END_TO_START\",\n \"ENTITY_NODE\",\n \"ENTITY_REFERENCE_NODE\",\n \"EPSILON\",\n \"EQUAL\",\n \"EQUALPOWER\",\n \"ERROR\",\n \"EXPONENTIAL_DISTANCE\",\n \"Element\",\n \"ElementInternals\",\n \"ElementQuery\",\n \"EnterPictureInPictureEvent\",\n \"Entity\",\n \"EntityReference\",\n \"Error\",\n \"ErrorEvent\",\n \"EvalError\",\n \"Event\",\n \"EventException\",\n \"EventSource\",\n \"EventTarget\",\n \"External\",\n \"FASTEST\",\n \"FIDOSDK\",\n \"FILTER_ACCEPT\",\n \"FILTER_INTERRUPT\",\n \"FILTER_REJECT\",\n \"FILTER_SKIP\",\n \"FINISHED_STATE\",\n \"FIRST_ORDERED_NODE_TYPE\",\n \"FLOAT\",\n \"FLOAT_32_UNSIGNED_INT_24_8_REV\",\n \"FLOAT_MAT2\",\n \"FLOAT_MAT2x3\",\n \"FLOAT_MAT2x4\",\n \"FLOAT_MAT3\",\n \"FLOAT_MAT3x2\",\n \"FLOAT_MAT3x4\",\n \"FLOAT_MAT4\",\n \"FLOAT_MAT4x2\",\n \"FLOAT_MAT4x3\",\n \"FLOAT_VEC2\",\n \"FLOAT_VEC3\",\n \"FLOAT_VEC4\",\n \"FOCUS\",\n \"FONT_FACE_RULE\",\n \"FONT_FEATURE_VALUES_RULE\",\n \"FRAGMENT\",\n \"FRAGMENT_SHADER\",\n \"FRAGMENT_SHADER_DERIVATIVE_HINT\",\n \"FRAGMENT_SHADER_DERIVATIVE_HINT_OES\",\n \"FRAMEBUFFER\",\n \"FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE\",\n \"FRAMEBUFFER_ATTACHMENT_BLUE_SIZE\",\n \"FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING\",\n \"FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE\",\n \"FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE\",\n \"FRAMEBUFFER_ATTACHMENT_GREEN_SIZE\",\n \"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\",\n \"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE\",\n \"FRAMEBUFFER_ATTACHMENT_RED_SIZE\",\n \"FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE\",\n \"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE\",\n \"FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER\",\n \"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL\",\n \"FRAMEBUFFER_BINDING\",\n \"FRAMEBUFFER_COMPLETE\",\n \"FRAMEBUFFER_DEFAULT\",\n \"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\",\n \"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\",\n \"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\",\n \"FRAMEBUFFER_INCOMPLETE_MULTISAMPLE\",\n \"FRAMEBUFFER_UNSUPPORTED\",\n \"FRONT\",\n \"FRONT_AND_BACK\",\n \"FRONT_FACE\",\n \"FUNC_ADD\",\n \"FUNC_REVERSE_SUBTRACT\",\n \"FUNC_SUBTRACT\",\n \"FeaturePolicy\",\n \"FeaturePolicyViolationReportBody\",\n \"FederatedCredential\",\n \"Feed\",\n \"FeedEntry\",\n \"File\",\n \"FileError\",\n \"FileList\",\n \"FileReader\",\n \"FileSystem\",\n \"FileSystemDirectoryEntry\",\n \"FileSystemDirectoryReader\",\n \"FileSystemEntry\",\n \"FileSystemFileEntry\",\n \"FinalizationRegistry\",\n \"FindInPage\",\n \"Float32Array\",\n \"Float64Array\",\n \"FocusEvent\",\n \"FontFace\",\n \"FontFaceSet\",\n \"FontFaceSetLoadEvent\",\n \"FormData\",\n \"FormDataEvent\",\n \"FragmentDirective\",\n \"Function\",\n \"GENERATE_MIPMAP_HINT\",\n \"GEQUAL\",\n \"GREATER\",\n \"GREEN\",\n \"GREEN_BITS\",\n \"GainNode\",\n \"Gamepad\",\n \"GamepadAxisMoveEvent\",\n \"GamepadButton\",\n \"GamepadButtonEvent\",\n \"GamepadEvent\",\n \"GamepadHapticActuator\",\n \"GamepadPose\",\n \"Geolocation\",\n \"GeolocationCoordinates\",\n \"GeolocationPosition\",\n \"GeolocationPositionError\",\n \"GestureEvent\",\n \"Global\",\n \"Gyroscope\",\n \"HALF_FLOAT\",\n \"HAVE_CURRENT_DATA\",\n \"HAVE_ENOUGH_DATA\",\n \"HAVE_FUTURE_DATA\",\n \"HAVE_METADATA\",\n \"HAVE_NOTHING\",\n \"HEADERS_RECEIVED\",\n \"HIDDEN\",\n \"HIERARCHY_REQUEST_ERR\",\n \"HIGHPASS\",\n \"HIGHSHELF\",\n \"HIGH_FLOAT\",\n \"HIGH_INT\",\n \"HORIZONTAL\",\n \"HORIZONTAL_AXIS\",\n \"HRTF\",\n \"HTMLAllCollection\",\n \"HTMLAnchorElement\",\n \"HTMLAppletElement\",\n \"HTMLAreaElement\",\n \"HTMLAudioElement\",\n \"HTMLBRElement\",\n \"HTMLBaseElement\",\n \"HTMLBaseFontElement\",\n \"HTMLBlockquoteElement\",\n \"HTMLBodyElement\",\n \"HTMLButtonElement\",\n \"HTMLCanvasElement\",\n \"HTMLCollection\",\n \"HTMLCommandElement\",\n \"HTMLContentElement\",\n \"HTMLDListElement\",\n \"HTMLDataElement\",\n \"HTMLDataListElement\",\n \"HTMLDetailsElement\",\n \"HTMLDialogElement\",\n \"HTMLDirectoryElement\",\n \"HTMLDivElement\",\n \"HTMLDocument\",\n \"HTMLElement\",\n \"HTMLEmbedElement\",\n \"HTMLFieldSetElement\",\n \"HTMLFontElement\",\n \"HTMLFormControlsCollection\",\n \"HTMLFormElement\",\n \"HTMLFrameElement\",\n \"HTMLFrameSetElement\",\n \"HTMLHRElement\",\n \"HTMLHeadElement\",\n \"HTMLHeadingElement\",\n \"HTMLHtmlElement\",\n \"HTMLIFrameElement\",\n \"HTMLImageElement\",\n \"HTMLInputElement\",\n \"HTMLIsIndexElement\",\n \"HTMLKeygenElement\",\n \"HTMLLIElement\",\n \"HTMLLabelElement\",\n \"HTMLLegendElement\",\n \"HTMLLinkElement\",\n \"HTMLMapElement\",\n \"HTMLMarqueeElement\",\n \"HTMLMediaElement\",\n \"HTMLMenuElement\",\n \"HTMLMenuItemElement\",\n \"HTMLMetaElement\",\n \"HTMLMeterElement\",\n \"HTMLModElement\",\n \"HTMLOListElement\",\n \"HTMLObjectElement\",\n \"HTMLOptGroupElement\",\n \"HTMLOptionElement\",\n \"HTMLOptionsCollection\",\n \"HTMLOutputElement\",\n \"HTMLParagraphElement\",\n \"HTMLParamElement\",\n \"HTMLPictureElement\",\n \"HTMLPreElement\",\n \"HTMLProgressElement\",\n \"HTMLPropertiesCollection\",\n \"HTMLQuoteElement\",\n \"HTMLScriptElement\",\n \"HTMLSelectElement\",\n \"HTMLShadowElement\",\n \"HTMLSlotElement\",\n \"HTMLSourceElement\",\n \"HTMLSpanElement\",\n \"HTMLStyleElement\",\n \"HTMLTableCaptionElement\",\n \"HTMLTableCellElement\",\n \"HTMLTableColElement\",\n \"HTMLTableElement\",\n \"HTMLTableRowElement\",\n \"HTMLTableSectionElement\",\n \"HTMLTemplateElement\",\n \"HTMLTextAreaElement\",\n \"HTMLTimeElement\",\n \"HTMLTitleElement\",\n \"HTMLTrackElement\",\n \"HTMLUListElement\",\n \"HTMLUnknownElement\",\n \"HTMLVideoElement\",\n \"HashChangeEvent\",\n \"Headers\",\n \"History\",\n \"Hz\",\n \"ICE_CHECKING\",\n \"ICE_CLOSED\",\n \"ICE_COMPLETED\",\n \"ICE_CONNECTED\",\n \"ICE_FAILED\",\n \"ICE_GATHERING\",\n \"ICE_WAITING\",\n \"IDBCursor\",\n \"IDBCursorWithValue\",\n \"IDBDatabase\",\n \"IDBDatabaseException\",\n \"IDBFactory\",\n \"IDBFileHandle\",\n \"IDBFileRequest\",\n \"IDBIndex\",\n \"IDBKeyRange\",\n \"IDBMutableFile\",\n \"IDBObjectStore\",\n \"IDBOpenDBRequest\",\n \"IDBRequest\",\n \"IDBTransaction\",\n \"IDBVersionChangeEvent\",\n \"IDLE\",\n \"IIRFilterNode\",\n \"IMPLEMENTATION_COLOR_READ_FORMAT\",\n \"IMPLEMENTATION_COLOR_READ_TYPE\",\n \"IMPORT_RULE\",\n \"INCR\",\n \"INCR_WRAP\",\n \"INDEX\",\n \"INDEX_SIZE_ERR\",\n \"INDIRECT\",\n \"INT\",\n \"INTERLEAVED_ATTRIBS\",\n \"INT_2_10_10_10_REV\",\n \"INT_SAMPLER_2D\",\n \"INT_SAMPLER_2D_ARRAY\",\n \"INT_SAMPLER_3D\",\n \"INT_SAMPLER_CUBE\",\n \"INT_VEC2\",\n \"INT_VEC3\",\n \"INT_VEC4\",\n \"INUSE_ATTRIBUTE_ERR\",\n \"INVALID_ACCESS_ERR\",\n \"INVALID_CHARACTER_ERR\",\n \"INVALID_ENUM\",\n \"INVALID_EXPRESSION_ERR\",\n \"INVALID_FRAMEBUFFER_OPERATION\",\n \"INVALID_INDEX\",\n \"INVALID_MODIFICATION_ERR\",\n \"INVALID_NODE_TYPE_ERR\",\n \"INVALID_OPERATION\",\n \"INVALID_STATE_ERR\",\n \"INVALID_VALUE\",\n \"INVERSE_DISTANCE\",\n \"INVERT\",\n \"IceCandidate\",\n \"IdleDeadline\",\n \"Image\",\n \"ImageBitmap\",\n \"ImageBitmapRenderingContext\",\n \"ImageCapture\",\n \"ImageData\",\n \"Infinity\",\n \"InputDeviceCapabilities\",\n \"InputDeviceInfo\",\n \"InputEvent\",\n \"InputMethodContext\",\n \"InstallTrigger\",\n \"InstallTriggerImpl\",\n \"Instance\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"Intent\",\n \"InternalError\",\n \"IntersectionObserver\",\n \"IntersectionObserverEntry\",\n \"Intl\",\n \"IsSearchProviderInstalled\",\n \"Iterator\",\n \"JSON\",\n \"KEEP\",\n \"KEYDOWN\",\n \"KEYFRAMES_RULE\",\n \"KEYFRAME_RULE\",\n \"KEYPRESS\",\n \"KEYUP\",\n \"KeyEvent\",\n \"Keyboard\",\n \"KeyboardEvent\",\n \"KeyboardLayoutMap\",\n \"KeyframeEffect\",\n \"LENGTHADJUST_SPACING\",\n \"LENGTHADJUST_SPACINGANDGLYPHS\",\n \"LENGTHADJUST_UNKNOWN\",\n \"LEQUAL\",\n \"LESS\",\n \"LINEAR\",\n \"LINEAR_DISTANCE\",\n \"LINEAR_MIPMAP_LINEAR\",\n \"LINEAR_MIPMAP_NEAREST\",\n \"LINES\",\n \"LINE_LOOP\",\n \"LINE_STRIP\",\n \"LINE_WIDTH\",\n \"LINK_STATUS\",\n \"LIVE\",\n \"LN10\",\n \"LN2\",\n \"LOADED\",\n \"LOADING\",\n \"LOG10E\",\n \"LOG2E\",\n \"LOWPASS\",\n \"LOWSHELF\",\n \"LOW_FLOAT\",\n \"LOW_INT\",\n \"LSException\",\n \"LSParserFilter\",\n \"LUMINANCE\",\n \"LUMINANCE_ALPHA\",\n \"LargestContentfulPaint\",\n \"LayoutShift\",\n \"LayoutShiftAttribution\",\n \"LinearAccelerationSensor\",\n \"LinkError\",\n \"ListFormat\",\n \"LocalMediaStream\",\n \"Locale\",\n \"Location\",\n \"Lock\",\n \"LockManager\",\n \"MAP_READ\",\n \"MAP_WRITE\",\n \"MAX\",\n \"MAX_3D_TEXTURE_SIZE\",\n \"MAX_ARRAY_TEXTURE_LAYERS\",\n \"MAX_CLIENT_WAIT_TIMEOUT_WEBGL\",\n \"MAX_COLOR_ATTACHMENTS\",\n \"MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS\",\n \"MAX_COMBINED_TEXTURE_IMAGE_UNITS\",\n \"MAX_COMBINED_UNIFORM_BLOCKS\",\n \"MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS\",\n \"MAX_CUBE_MAP_TEXTURE_SIZE\",\n \"MAX_DRAW_BUFFERS\",\n \"MAX_ELEMENTS_INDICES\",\n \"MAX_ELEMENTS_VERTICES\",\n \"MAX_ELEMENT_INDEX\",\n \"MAX_FRAGMENT_INPUT_COMPONENTS\",\n \"MAX_FRAGMENT_UNIFORM_BLOCKS\",\n \"MAX_FRAGMENT_UNIFORM_COMPONENTS\",\n \"MAX_FRAGMENT_UNIFORM_VECTORS\",\n \"MAX_PROGRAM_TEXEL_OFFSET\",\n \"MAX_RENDERBUFFER_SIZE\",\n \"MAX_SAFE_INTEGER\",\n \"MAX_SAMPLES\",\n \"MAX_SERVER_WAIT_TIMEOUT\",\n \"MAX_TEXTURE_IMAGE_UNITS\",\n \"MAX_TEXTURE_LOD_BIAS\",\n \"MAX_TEXTURE_MAX_ANISOTROPY_EXT\",\n \"MAX_TEXTURE_SIZE\",\n \"MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS\",\n \"MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS\",\n \"MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS\",\n \"MAX_UNIFORM_BLOCK_SIZE\",\n \"MAX_UNIFORM_BUFFER_BINDINGS\",\n \"MAX_VALUE\",\n \"MAX_VARYING_COMPONENTS\",\n \"MAX_VARYING_VECTORS\",\n \"MAX_VERTEX_ATTRIBS\",\n \"MAX_VERTEX_OUTPUT_COMPONENTS\",\n \"MAX_VERTEX_TEXTURE_IMAGE_UNITS\",\n \"MAX_VERTEX_UNIFORM_BLOCKS\",\n \"MAX_VERTEX_UNIFORM_COMPONENTS\",\n \"MAX_VERTEX_UNIFORM_VECTORS\",\n \"MAX_VIEWPORT_DIMS\",\n \"MEDIA_ERR_ABORTED\",\n \"MEDIA_ERR_DECODE\",\n \"MEDIA_ERR_ENCRYPTED\",\n \"MEDIA_ERR_NETWORK\",\n \"MEDIA_ERR_SRC_NOT_SUPPORTED\",\n \"MEDIA_KEYERR_CLIENT\",\n \"MEDIA_KEYERR_DOMAIN\",\n \"MEDIA_KEYERR_HARDWARECHANGE\",\n \"MEDIA_KEYERR_OUTPUT\",\n \"MEDIA_KEYERR_SERVICE\",\n \"MEDIA_KEYERR_UNKNOWN\",\n \"MEDIA_RULE\",\n \"MEDIUM_FLOAT\",\n \"MEDIUM_INT\",\n \"META_MASK\",\n \"MIDIAccess\",\n \"MIDIConnectionEvent\",\n \"MIDIInput\",\n \"MIDIInputMap\",\n \"MIDIMessageEvent\",\n \"MIDIOutput\",\n \"MIDIOutputMap\",\n \"MIDIPort\",\n \"MIN\",\n \"MIN_PROGRAM_TEXEL_OFFSET\",\n \"MIN_SAFE_INTEGER\",\n \"MIN_VALUE\",\n \"MIRRORED_REPEAT\",\n \"MODE_ASYNCHRONOUS\",\n \"MODE_SYNCHRONOUS\",\n \"MODIFICATION\",\n \"MOUSEDOWN\",\n \"MOUSEDRAG\",\n \"MOUSEMOVE\",\n \"MOUSEOUT\",\n \"MOUSEOVER\",\n \"MOUSEUP\",\n \"MOZ_KEYFRAMES_RULE\",\n \"MOZ_KEYFRAME_RULE\",\n \"MOZ_SOURCE_CURSOR\",\n \"MOZ_SOURCE_ERASER\",\n \"MOZ_SOURCE_KEYBOARD\",\n \"MOZ_SOURCE_MOUSE\",\n \"MOZ_SOURCE_PEN\",\n \"MOZ_SOURCE_TOUCH\",\n \"MOZ_SOURCE_UNKNOWN\",\n \"MSGESTURE_FLAG_BEGIN\",\n \"MSGESTURE_FLAG_CANCEL\",\n \"MSGESTURE_FLAG_END\",\n \"MSGESTURE_FLAG_INERTIA\",\n \"MSGESTURE_FLAG_NONE\",\n \"MSPOINTER_TYPE_MOUSE\",\n \"MSPOINTER_TYPE_PEN\",\n \"MSPOINTER_TYPE_TOUCH\",\n \"MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE\",\n \"MS_ASYNC_CALLBACK_STATUS_CANCEL\",\n \"MS_ASYNC_CALLBACK_STATUS_CHOOSEANY\",\n \"MS_ASYNC_CALLBACK_STATUS_ERROR\",\n \"MS_ASYNC_CALLBACK_STATUS_JOIN\",\n \"MS_ASYNC_OP_STATUS_CANCELED\",\n \"MS_ASYNC_OP_STATUS_ERROR\",\n \"MS_ASYNC_OP_STATUS_SUCCESS\",\n \"MS_MANIPULATION_STATE_ACTIVE\",\n \"MS_MANIPULATION_STATE_CANCELLED\",\n \"MS_MANIPULATION_STATE_COMMITTED\",\n \"MS_MANIPULATION_STATE_DRAGGING\",\n \"MS_MANIPULATION_STATE_INERTIA\",\n \"MS_MANIPULATION_STATE_PRESELECT\",\n \"MS_MANIPULATION_STATE_SELECTING\",\n \"MS_MANIPULATION_STATE_STOPPED\",\n \"MS_MEDIA_ERR_ENCRYPTED\",\n \"MS_MEDIA_KEYERR_CLIENT\",\n \"MS_MEDIA_KEYERR_DOMAIN\",\n \"MS_MEDIA_KEYERR_HARDWARECHANGE\",\n \"MS_MEDIA_KEYERR_OUTPUT\",\n \"MS_MEDIA_KEYERR_SERVICE\",\n \"MS_MEDIA_KEYERR_UNKNOWN\",\n \"Map\",\n \"Math\",\n \"MathMLElement\",\n \"MediaCapabilities\",\n \"MediaCapabilitiesInfo\",\n \"MediaController\",\n \"MediaDeviceInfo\",\n \"MediaDevices\",\n \"MediaElementAudioSourceNode\",\n \"MediaEncryptedEvent\",\n \"MediaError\",\n \"MediaKeyError\",\n \"MediaKeyEvent\",\n \"MediaKeyMessageEvent\",\n \"MediaKeyNeededEvent\",\n \"MediaKeySession\",\n \"MediaKeyStatusMap\",\n \"MediaKeySystemAccess\",\n \"MediaKeys\",\n \"MediaList\",\n \"MediaMetadata\",\n \"MediaQueryList\",\n \"MediaQueryListEvent\",\n \"MediaRecorder\",\n \"MediaRecorderErrorEvent\",\n \"MediaSession\",\n \"MediaSettingsRange\",\n \"MediaSource\",\n \"MediaStream\",\n \"MediaStreamAudioDestinationNode\",\n \"MediaStreamAudioSourceNode\",\n \"MediaStreamEvent\",\n \"MediaStreamTrack\",\n \"MediaStreamTrackAudioSourceNode\",\n \"MediaStreamTrackEvent\",\n \"Memory\",\n \"MessageChannel\",\n \"MessageEvent\",\n \"MessagePort\",\n \"Methods\",\n \"MimeType\",\n \"MimeTypeArray\",\n \"Module\",\n \"MouseEvent\",\n \"MouseScrollEvent\",\n \"MozAnimation\",\n \"MozAnimationDelay\",\n \"MozAnimationDirection\",\n \"MozAnimationDuration\",\n \"MozAnimationFillMode\",\n \"MozAnimationIterationCount\",\n \"MozAnimationName\",\n \"MozAnimationPlayState\",\n \"MozAnimationTimingFunction\",\n \"MozAppearance\",\n \"MozBackfaceVisibility\",\n \"MozBinding\",\n \"MozBorderBottomColors\",\n \"MozBorderEnd\",\n \"MozBorderEndColor\",\n \"MozBorderEndStyle\",\n \"MozBorderEndWidth\",\n \"MozBorderImage\",\n \"MozBorderLeftColors\",\n \"MozBorderRightColors\",\n \"MozBorderStart\",\n \"MozBorderStartColor\",\n \"MozBorderStartStyle\",\n \"MozBorderStartWidth\",\n \"MozBorderTopColors\",\n \"MozBoxAlign\",\n \"MozBoxDirection\",\n \"MozBoxFlex\",\n \"MozBoxOrdinalGroup\",\n \"MozBoxOrient\",\n \"MozBoxPack\",\n \"MozBoxSizing\",\n \"MozCSSKeyframeRule\",\n \"MozCSSKeyframesRule\",\n \"MozColumnCount\",\n \"MozColumnFill\",\n \"MozColumnGap\",\n \"MozColumnRule\",\n \"MozColumnRuleColor\",\n \"MozColumnRuleStyle\",\n \"MozColumnRuleWidth\",\n \"MozColumnWidth\",\n \"MozColumns\",\n \"MozContactChangeEvent\",\n \"MozFloatEdge\",\n \"MozFontFeatureSettings\",\n \"MozFontLanguageOverride\",\n \"MozForceBrokenImageIcon\",\n \"MozHyphens\",\n \"MozImageRegion\",\n \"MozMarginEnd\",\n \"MozMarginStart\",\n \"MozMmsEvent\",\n \"MozMmsMessage\",\n \"MozMobileMessageThread\",\n \"MozOSXFontSmoothing\",\n \"MozOrient\",\n \"MozOsxFontSmoothing\",\n \"MozOutlineRadius\",\n \"MozOutlineRadiusBottomleft\",\n \"MozOutlineRadiusBottomright\",\n \"MozOutlineRadiusTopleft\",\n \"MozOutlineRadiusTopright\",\n \"MozPaddingEnd\",\n \"MozPaddingStart\",\n \"MozPerspective\",\n \"MozPerspectiveOrigin\",\n \"MozPowerManager\",\n \"MozSettingsEvent\",\n \"MozSmsEvent\",\n \"MozSmsMessage\",\n \"MozStackSizing\",\n \"MozTabSize\",\n \"MozTextAlignLast\",\n \"MozTextDecorationColor\",\n \"MozTextDecorationLine\",\n \"MozTextDecorationStyle\",\n \"MozTextSizeAdjust\",\n \"MozTransform\",\n \"MozTransformOrigin\",\n \"MozTransformStyle\",\n \"MozTransition\",\n \"MozTransitionDelay\",\n \"MozTransitionDuration\",\n \"MozTransitionProperty\",\n \"MozTransitionTimingFunction\",\n \"MozUserFocus\",\n \"MozUserInput\",\n \"MozUserModify\",\n \"MozUserSelect\",\n \"MozWindowDragging\",\n \"MozWindowShadow\",\n \"MutationEvent\",\n \"MutationObserver\",\n \"MutationRecord\",\n \"NAMESPACE_ERR\",\n \"NAMESPACE_RULE\",\n \"NEAREST\",\n \"NEAREST_MIPMAP_LINEAR\",\n \"NEAREST_MIPMAP_NEAREST\",\n \"NEGATIVE_INFINITY\",\n \"NETWORK_EMPTY\",\n \"NETWORK_ERR\",\n \"NETWORK_IDLE\",\n \"NETWORK_LOADED\",\n \"NETWORK_LOADING\",\n \"NETWORK_NO_SOURCE\",\n \"NEVER\",\n \"NEW\",\n \"NEXT\",\n \"NEXT_NO_DUPLICATE\",\n \"NICEST\",\n \"NODE_AFTER\",\n \"NODE_BEFORE\",\n \"NODE_BEFORE_AND_AFTER\",\n \"NODE_INSIDE\",\n \"NONE\",\n \"NON_TRANSIENT_ERR\",\n \"NOTATION_NODE\",\n \"NOTCH\",\n \"NOTEQUAL\",\n \"NOT_ALLOWED_ERR\",\n \"NOT_FOUND_ERR\",\n \"NOT_READABLE_ERR\",\n \"NOT_SUPPORTED_ERR\",\n \"NO_DATA_ALLOWED_ERR\",\n \"NO_ERR\",\n \"NO_ERROR\",\n \"NO_MODIFICATION_ALLOWED_ERR\",\n \"NUMBER_TYPE\",\n \"NUM_COMPRESSED_TEXTURE_FORMATS\",\n \"NaN\",\n \"NamedNodeMap\",\n \"NavigationPreloadManager\",\n \"Navigator\",\n \"NearbyLinks\",\n \"NetworkInformation\",\n \"Node\",\n \"NodeFilter\",\n \"NodeIterator\",\n \"NodeList\",\n \"Notation\",\n \"Notification\",\n \"NotifyPaintEvent\",\n \"Number\",\n \"NumberFormat\",\n \"OBJECT_TYPE\",\n \"OBSOLETE\",\n \"OK\",\n \"ONE\",\n \"ONE_MINUS_CONSTANT_ALPHA\",\n \"ONE_MINUS_CONSTANT_COLOR\",\n \"ONE_MINUS_DST_ALPHA\",\n \"ONE_MINUS_DST_COLOR\",\n \"ONE_MINUS_SRC_ALPHA\",\n \"ONE_MINUS_SRC_COLOR\",\n \"OPEN\",\n \"OPENED\",\n \"OPENING\",\n \"ORDERED_NODE_ITERATOR_TYPE\",\n \"ORDERED_NODE_SNAPSHOT_TYPE\",\n \"OTHER_ERROR\",\n \"OUT_OF_MEMORY\",\n \"Object\",\n \"OfflineAudioCompletionEvent\",\n \"OfflineAudioContext\",\n \"OfflineResourceList\",\n \"OffscreenCanvas\",\n \"OffscreenCanvasRenderingContext2D\",\n \"Option\",\n \"OrientationSensor\",\n \"OscillatorNode\",\n \"OverconstrainedError\",\n \"OverflowEvent\",\n \"PACK_ALIGNMENT\",\n \"PACK_ROW_LENGTH\",\n \"PACK_SKIP_PIXELS\",\n \"PACK_SKIP_ROWS\",\n \"PAGE_RULE\",\n \"PARSE_ERR\",\n \"PATHSEG_ARC_ABS\",\n \"PATHSEG_ARC_REL\",\n \"PATHSEG_CLOSEPATH\",\n \"PATHSEG_CURVETO_CUBIC_ABS\",\n \"PATHSEG_CURVETO_CUBIC_REL\",\n \"PATHSEG_CURVETO_CUBIC_SMOOTH_ABS\",\n \"PATHSEG_CURVETO_CUBIC_SMOOTH_REL\",\n \"PATHSEG_CURVETO_QUADRATIC_ABS\",\n \"PATHSEG_CURVETO_QUADRATIC_REL\",\n \"PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS\",\n \"PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL\",\n \"PATHSEG_LINETO_ABS\",\n \"PATHSEG_LINETO_HORIZONTAL_ABS\",\n \"PATHSEG_LINETO_HORIZONTAL_REL\",\n \"PATHSEG_LINETO_REL\",\n \"PATHSEG_LINETO_VERTICAL_ABS\",\n \"PATHSEG_LINETO_VERTICAL_REL\",\n \"PATHSEG_MOVETO_ABS\",\n \"PATHSEG_MOVETO_REL\",\n \"PATHSEG_UNKNOWN\",\n \"PATH_EXISTS_ERR\",\n \"PEAKING\",\n \"PERMISSION_DENIED\",\n \"PERSISTENT\",\n \"PI\",\n \"PIXEL_PACK_BUFFER\",\n \"PIXEL_PACK_BUFFER_BINDING\",\n \"PIXEL_UNPACK_BUFFER\",\n \"PIXEL_UNPACK_BUFFER_BINDING\",\n \"PLAYING_STATE\",\n \"POINTS\",\n \"POLYGON_OFFSET_FACTOR\",\n \"POLYGON_OFFSET_FILL\",\n \"POLYGON_OFFSET_UNITS\",\n \"POSITION_UNAVAILABLE\",\n \"POSITIVE_INFINITY\",\n \"PREV\",\n \"PREV_NO_DUPLICATE\",\n \"PROCESSING_INSTRUCTION_NODE\",\n \"PageChangeEvent\",\n \"PageTransitionEvent\",\n \"PaintRequest\",\n \"PaintRequestList\",\n \"PannerNode\",\n \"PasswordCredential\",\n \"Path2D\",\n \"PaymentAddress\",\n \"PaymentInstruments\",\n \"PaymentManager\",\n \"PaymentMethodChangeEvent\",\n \"PaymentRequest\",\n \"PaymentRequestUpdateEvent\",\n \"PaymentResponse\",\n \"Performance\",\n \"PerformanceElementTiming\",\n \"PerformanceEntry\",\n \"PerformanceEventTiming\",\n \"PerformanceLongTaskTiming\",\n \"PerformanceMark\",\n \"PerformanceMeasure\",\n \"PerformanceNavigation\",\n \"PerformanceNavigationTiming\",\n \"PerformanceObserver\",\n \"PerformanceObserverEntryList\",\n \"PerformancePaintTiming\",\n \"PerformanceResourceTiming\",\n \"PerformanceServerTiming\",\n \"PerformanceTiming\",\n \"PeriodicSyncManager\",\n \"PeriodicWave\",\n \"PermissionStatus\",\n \"Permissions\",\n \"PhotoCapabilities\",\n \"PictureInPictureWindow\",\n \"Plugin\",\n \"PluginArray\",\n \"PluralRules\",\n \"PointerEvent\",\n \"PopStateEvent\",\n \"PopupBlockedEvent\",\n \"Presentation\",\n \"PresentationAvailability\",\n \"PresentationConnection\",\n \"PresentationConnectionAvailableEvent\",\n \"PresentationConnectionCloseEvent\",\n \"PresentationConnectionList\",\n \"PresentationReceiver\",\n \"PresentationRequest\",\n \"ProcessingInstruction\",\n \"ProgressEvent\",\n \"Promise\",\n \"PromiseRejectionEvent\",\n \"PropertyNodeList\",\n \"Proxy\",\n \"PublicKeyCredential\",\n \"PushManager\",\n \"PushSubscription\",\n \"PushSubscriptionOptions\",\n \"Q\",\n \"QUERY_RESOLVE\",\n \"QUERY_RESULT\",\n \"QUERY_RESULT_AVAILABLE\",\n \"QUOTA_ERR\",\n \"QUOTA_EXCEEDED_ERR\",\n \"QueryInterface\",\n \"R11F_G11F_B10F\",\n \"R16F\",\n \"R16I\",\n \"R16UI\",\n \"R32F\",\n \"R32I\",\n \"R32UI\",\n \"R8\",\n \"R8I\",\n \"R8UI\",\n \"R8_SNORM\",\n \"RASTERIZER_DISCARD\",\n \"READ\",\n \"READ_BUFFER\",\n \"READ_FRAMEBUFFER\",\n \"READ_FRAMEBUFFER_BINDING\",\n \"READ_ONLY\",\n \"READ_ONLY_ERR\",\n \"READ_WRITE\",\n \"RED\",\n \"RED_BITS\",\n \"RED_INTEGER\",\n \"REMOVAL\",\n \"RENDERBUFFER\",\n \"RENDERBUFFER_ALPHA_SIZE\",\n \"RENDERBUFFER_BINDING\",\n \"RENDERBUFFER_BLUE_SIZE\",\n \"RENDERBUFFER_DEPTH_SIZE\",\n \"RENDERBUFFER_GREEN_SIZE\",\n \"RENDERBUFFER_HEIGHT\",\n \"RENDERBUFFER_INTERNAL_FORMAT\",\n \"RENDERBUFFER_RED_SIZE\",\n \"RENDERBUFFER_SAMPLES\",\n \"RENDERBUFFER_STENCIL_SIZE\",\n \"RENDERBUFFER_WIDTH\",\n \"RENDERER\",\n \"RENDERING_INTENT_ABSOLUTE_COLORIMETRIC\",\n \"RENDERING_INTENT_AUTO\",\n \"RENDERING_INTENT_PERCEPTUAL\",\n \"RENDERING_INTENT_RELATIVE_COLORIMETRIC\",\n \"RENDERING_INTENT_SATURATION\",\n \"RENDERING_INTENT_UNKNOWN\",\n \"RENDER_ATTACHMENT\",\n \"REPEAT\",\n \"REPLACE\",\n \"RG\",\n \"RG16F\",\n \"RG16I\",\n \"RG16UI\",\n \"RG32F\",\n \"RG32I\",\n \"RG32UI\",\n \"RG8\",\n \"RG8I\",\n \"RG8UI\",\n \"RG8_SNORM\",\n \"RGB\",\n \"RGB10_A2\",\n \"RGB10_A2UI\",\n \"RGB16F\",\n \"RGB16I\",\n \"RGB16UI\",\n \"RGB32F\",\n \"RGB32I\",\n \"RGB32UI\",\n \"RGB565\",\n \"RGB5_A1\",\n \"RGB8\",\n \"RGB8I\",\n \"RGB8UI\",\n \"RGB8_SNORM\",\n \"RGB9_E5\",\n \"RGBA\",\n \"RGBA16F\",\n \"RGBA16I\",\n \"RGBA16UI\",\n \"RGBA32F\",\n \"RGBA32I\",\n \"RGBA32UI\",\n \"RGBA4\",\n \"RGBA8\",\n \"RGBA8I\",\n \"RGBA8UI\",\n \"RGBA8_SNORM\",\n \"RGBA_INTEGER\",\n \"RGBColor\",\n \"RGB_INTEGER\",\n \"RG_INTEGER\",\n \"ROTATION_CLOCKWISE\",\n \"ROTATION_COUNTERCLOCKWISE\",\n \"RTCCertificate\",\n \"RTCDTMFSender\",\n \"RTCDTMFToneChangeEvent\",\n \"RTCDataChannel\",\n \"RTCDataChannelEvent\",\n \"RTCDtlsTransport\",\n \"RTCError\",\n \"RTCErrorEvent\",\n \"RTCIceCandidate\",\n \"RTCIceTransport\",\n \"RTCPeerConnection\",\n \"RTCPeerConnectionIceErrorEvent\",\n \"RTCPeerConnectionIceEvent\",\n \"RTCRtpReceiver\",\n \"RTCRtpSender\",\n \"RTCRtpTransceiver\",\n \"RTCSctpTransport\",\n \"RTCSessionDescription\",\n \"RTCStatsReport\",\n \"RTCTrackEvent\",\n \"RadioNodeList\",\n \"Range\",\n \"RangeError\",\n \"RangeException\",\n \"ReadableStream\",\n \"ReadableStreamDefaultReader\",\n \"RecordErrorEvent\",\n \"Rect\",\n \"ReferenceError\",\n \"Reflect\",\n \"RegExp\",\n \"RelativeOrientationSensor\",\n \"RelativeTimeFormat\",\n \"RemotePlayback\",\n \"Report\",\n \"ReportBody\",\n \"ReportingObserver\",\n \"Request\",\n \"ResizeObserver\",\n \"ResizeObserverEntry\",\n \"ResizeObserverSize\",\n \"Response\",\n \"RuntimeError\",\n \"SAMPLER_2D\",\n \"SAMPLER_2D_ARRAY\",\n \"SAMPLER_2D_ARRAY_SHADOW\",\n \"SAMPLER_2D_SHADOW\",\n \"SAMPLER_3D\",\n \"SAMPLER_BINDING\",\n \"SAMPLER_CUBE\",\n \"SAMPLER_CUBE_SHADOW\",\n \"SAMPLES\",\n \"SAMPLE_ALPHA_TO_COVERAGE\",\n \"SAMPLE_BUFFERS\",\n \"SAMPLE_COVERAGE\",\n \"SAMPLE_COVERAGE_INVERT\",\n \"SAMPLE_COVERAGE_VALUE\",\n \"SAWTOOTH\",\n \"SCHEDULED_STATE\",\n \"SCISSOR_BOX\",\n \"SCISSOR_TEST\",\n \"SCROLL_PAGE_DOWN\",\n \"SCROLL_PAGE_UP\",\n \"SDP_ANSWER\",\n \"SDP_OFFER\",\n \"SDP_PRANSWER\",\n \"SECURITY_ERR\",\n \"SELECT\",\n \"SEPARATE_ATTRIBS\",\n \"SERIALIZE_ERR\",\n \"SEVERITY_ERROR\",\n \"SEVERITY_FATAL_ERROR\",\n \"SEVERITY_WARNING\",\n \"SHADER_COMPILER\",\n \"SHADER_TYPE\",\n \"SHADING_LANGUAGE_VERSION\",\n \"SHIFT_MASK\",\n \"SHORT\",\n \"SHOWING\",\n \"SHOW_ALL\",\n \"SHOW_ATTRIBUTE\",\n \"SHOW_CDATA_SECTION\",\n \"SHOW_COMMENT\",\n \"SHOW_DOCUMENT\",\n \"SHOW_DOCUMENT_FRAGMENT\",\n \"SHOW_DOCUMENT_TYPE\",\n \"SHOW_ELEMENT\",\n \"SHOW_ENTITY\",\n \"SHOW_ENTITY_REFERENCE\",\n \"SHOW_NOTATION\",\n \"SHOW_PROCESSING_INSTRUCTION\",\n \"SHOW_TEXT\",\n \"SIGNALED\",\n \"SIGNED_NORMALIZED\",\n \"SINE\",\n \"SOUNDFIELD\",\n \"SQLException\",\n \"SQRT1_2\",\n \"SQRT2\",\n \"SQUARE\",\n \"SRC_ALPHA\",\n \"SRC_ALPHA_SATURATE\",\n \"SRC_COLOR\",\n \"SRGB\",\n \"SRGB8\",\n \"SRGB8_ALPHA8\",\n \"START_TO_END\",\n \"START_TO_START\",\n \"STATIC_COPY\",\n \"STATIC_DRAW\",\n \"STATIC_READ\",\n \"STENCIL\",\n \"STENCIL_ATTACHMENT\",\n \"STENCIL_BACK_FAIL\",\n \"STENCIL_BACK_FUNC\",\n \"STENCIL_BACK_PASS_DEPTH_FAIL\",\n \"STENCIL_BACK_PASS_DEPTH_PASS\",\n \"STENCIL_BACK_REF\",\n \"STENCIL_BACK_VALUE_MASK\",\n \"STENCIL_BACK_WRITEMASK\",\n \"STENCIL_BITS\",\n \"STENCIL_BUFFER_BIT\",\n \"STENCIL_CLEAR_VALUE\",\n \"STENCIL_FAIL\",\n \"STENCIL_FUNC\",\n \"STENCIL_INDEX\",\n \"STENCIL_INDEX8\",\n \"STENCIL_PASS_DEPTH_FAIL\",\n \"STENCIL_PASS_DEPTH_PASS\",\n \"STENCIL_REF\",\n \"STENCIL_TEST\",\n \"STENCIL_VALUE_MASK\",\n \"STENCIL_WRITEMASK\",\n \"STORAGE\",\n \"STORAGE_BINDING\",\n \"STREAM_COPY\",\n \"STREAM_DRAW\",\n \"STREAM_READ\",\n \"STRING_TYPE\",\n \"STYLE_RULE\",\n \"SUBPIXEL_BITS\",\n \"SUPPORTS_RULE\",\n \"SVGAElement\",\n \"SVGAltGlyphDefElement\",\n \"SVGAltGlyphElement\",\n \"SVGAltGlyphItemElement\",\n \"SVGAngle\",\n \"SVGAnimateColorElement\",\n \"SVGAnimateElement\",\n \"SVGAnimateMotionElement\",\n \"SVGAnimateTransformElement\",\n \"SVGAnimatedAngle\",\n \"SVGAnimatedBoolean\",\n \"SVGAnimatedEnumeration\",\n \"SVGAnimatedInteger\",\n \"SVGAnimatedLength\",\n \"SVGAnimatedLengthList\",\n \"SVGAnimatedNumber\",\n \"SVGAnimatedNumberList\",\n \"SVGAnimatedPreserveAspectRatio\",\n \"SVGAnimatedRect\",\n \"SVGAnimatedString\",\n \"SVGAnimatedTransformList\",\n \"SVGAnimationElement\",\n \"SVGCircleElement\",\n \"SVGClipPathElement\",\n \"SVGColor\",\n \"SVGComponentTransferFunctionElement\",\n \"SVGCursorElement\",\n \"SVGDefsElement\",\n \"SVGDescElement\",\n \"SVGDiscardElement\",\n \"SVGDocument\",\n \"SVGElement\",\n \"SVGElementInstance\",\n \"SVGElementInstanceList\",\n \"SVGEllipseElement\",\n \"SVGException\",\n \"SVGFEBlendElement\",\n \"SVGFEColorMatrixElement\",\n \"SVGFEComponentTransferElement\",\n \"SVGFECompositeElement\",\n \"SVGFEConvolveMatrixElement\",\n \"SVGFEDiffuseLightingElement\",\n \"SVGFEDisplacementMapElement\",\n \"SVGFEDistantLightElement\",\n \"SVGFEDropShadowElement\",\n \"SVGFEFloodElement\",\n \"SVGFEFuncAElement\",\n \"SVGFEFuncBElement\",\n \"SVGFEFuncGElement\",\n \"SVGFEFuncRElement\",\n \"SVGFEGaussianBlurElement\",\n \"SVGFEImageElement\",\n \"SVGFEMergeElement\",\n \"SVGFEMergeNodeElement\",\n \"SVGFEMorphologyElement\",\n \"SVGFEOffsetElement\",\n \"SVGFEPointLightElement\",\n \"SVGFESpecularLightingElement\",\n \"SVGFESpotLightElement\",\n \"SVGFETileElement\",\n \"SVGFETurbulenceElement\",\n \"SVGFilterElement\",\n \"SVGFontElement\",\n \"SVGFontFaceElement\",\n \"SVGFontFaceFormatElement\",\n \"SVGFontFaceNameElement\",\n \"SVGFontFaceSrcElement\",\n \"SVGFontFaceUriElement\",\n \"SVGForeignObjectElement\",\n \"SVGGElement\",\n \"SVGGeometryElement\",\n \"SVGGlyphElement\",\n \"SVGGlyphRefElement\",\n \"SVGGradientElement\",\n \"SVGGraphicsElement\",\n \"SVGHKernElement\",\n \"SVGImageElement\",\n \"SVGLength\",\n \"SVGLengthList\",\n \"SVGLineElement\",\n \"SVGLinearGradientElement\",\n \"SVGMPathElement\",\n \"SVGMarkerElement\",\n \"SVGMaskElement\",\n \"SVGMatrix\",\n \"SVGMetadataElement\",\n \"SVGMissingGlyphElement\",\n \"SVGNumber\",\n \"SVGNumberList\",\n \"SVGPaint\",\n \"SVGPathElement\",\n \"SVGPathSeg\",\n \"SVGPathSegArcAbs\",\n \"SVGPathSegArcRel\",\n \"SVGPathSegClosePath\",\n \"SVGPathSegCurvetoCubicAbs\",\n \"SVGPathSegCurvetoCubicRel\",\n \"SVGPathSegCurvetoCubicSmoothAbs\",\n \"SVGPathSegCurvetoCubicSmoothRel\",\n \"SVGPathSegCurvetoQuadraticAbs\",\n \"SVGPathSegCurvetoQuadraticRel\",\n \"SVGPathSegCurvetoQuadraticSmoothAbs\",\n \"SVGPathSegCurvetoQuadraticSmoothRel\",\n \"SVGPathSegLinetoAbs\",\n \"SVGPathSegLinetoHorizontalAbs\",\n \"SVGPathSegLinetoHorizontalRel\",\n \"SVGPathSegLinetoRel\",\n \"SVGPathSegLinetoVerticalAbs\",\n \"SVGPathSegLinetoVerticalRel\",\n \"SVGPathSegList\",\n \"SVGPathSegMovetoAbs\",\n \"SVGPathSegMovetoRel\",\n \"SVGPatternElement\",\n \"SVGPoint\",\n \"SVGPointList\",\n \"SVGPolygonElement\",\n \"SVGPolylineElement\",\n \"SVGPreserveAspectRatio\",\n \"SVGRadialGradientElement\",\n \"SVGRect\",\n \"SVGRectElement\",\n \"SVGRenderingIntent\",\n \"SVGSVGElement\",\n \"SVGScriptElement\",\n \"SVGSetElement\",\n \"SVGStopElement\",\n \"SVGStringList\",\n \"SVGStyleElement\",\n \"SVGSwitchElement\",\n \"SVGSymbolElement\",\n \"SVGTRefElement\",\n \"SVGTSpanElement\",\n \"SVGTextContentElement\",\n \"SVGTextElement\",\n \"SVGTextPathElement\",\n \"SVGTextPositioningElement\",\n \"SVGTitleElement\",\n \"SVGTransform\",\n \"SVGTransformList\",\n \"SVGUnitTypes\",\n \"SVGUseElement\",\n \"SVGVKernElement\",\n \"SVGViewElement\",\n \"SVGViewSpec\",\n \"SVGZoomAndPan\",\n \"SVGZoomEvent\",\n \"SVG_ANGLETYPE_DEG\",\n \"SVG_ANGLETYPE_GRAD\",\n \"SVG_ANGLETYPE_RAD\",\n \"SVG_ANGLETYPE_UNKNOWN\",\n \"SVG_ANGLETYPE_UNSPECIFIED\",\n \"SVG_CHANNEL_A\",\n \"SVG_CHANNEL_B\",\n \"SVG_CHANNEL_G\",\n \"SVG_CHANNEL_R\",\n \"SVG_CHANNEL_UNKNOWN\",\n \"SVG_COLORTYPE_CURRENTCOLOR\",\n \"SVG_COLORTYPE_RGBCOLOR\",\n \"SVG_COLORTYPE_RGBCOLOR_ICCCOLOR\",\n \"SVG_COLORTYPE_UNKNOWN\",\n \"SVG_EDGEMODE_DUPLICATE\",\n \"SVG_EDGEMODE_NONE\",\n \"SVG_EDGEMODE_UNKNOWN\",\n \"SVG_EDGEMODE_WRAP\",\n \"SVG_FEBLEND_MODE_COLOR\",\n \"SVG_FEBLEND_MODE_COLOR_BURN\",\n \"SVG_FEBLEND_MODE_COLOR_DODGE\",\n \"SVG_FEBLEND_MODE_DARKEN\",\n \"SVG_FEBLEND_MODE_DIFFERENCE\",\n \"SVG_FEBLEND_MODE_EXCLUSION\",\n \"SVG_FEBLEND_MODE_HARD_LIGHT\",\n \"SVG_FEBLEND_MODE_HUE\",\n \"SVG_FEBLEND_MODE_LIGHTEN\",\n \"SVG_FEBLEND_MODE_LUMINOSITY\",\n \"SVG_FEBLEND_MODE_MULTIPLY\",\n \"SVG_FEBLEND_MODE_NORMAL\",\n \"SVG_FEBLEND_MODE_OVERLAY\",\n \"SVG_FEBLEND_MODE_SATURATION\",\n \"SVG_FEBLEND_MODE_SCREEN\",\n \"SVG_FEBLEND_MODE_SOFT_LIGHT\",\n \"SVG_FEBLEND_MODE_UNKNOWN\",\n \"SVG_FECOLORMATRIX_TYPE_HUEROTATE\",\n \"SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA\",\n \"SVG_FECOLORMATRIX_TYPE_MATRIX\",\n \"SVG_FECOLORMATRIX_TYPE_SATURATE\",\n \"SVG_FECOLORMATRIX_TYPE_UNKNOWN\",\n \"SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE\",\n \"SVG_FECOMPONENTTRANSFER_TYPE_GAMMA\",\n \"SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY\",\n \"SVG_FECOMPONENTTRANSFER_TYPE_LINEAR\",\n \"SVG_FECOMPONENTTRANSFER_TYPE_TABLE\",\n \"SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN\",\n \"SVG_FECOMPOSITE_OPERATOR_ARITHMETIC\",\n \"SVG_FECOMPOSITE_OPERATOR_ATOP\",\n \"SVG_FECOMPOSITE_OPERATOR_IN\",\n \"SVG_FECOMPOSITE_OPERATOR_OUT\",\n \"SVG_FECOMPOSITE_OPERATOR_OVER\",\n \"SVG_FECOMPOSITE_OPERATOR_UNKNOWN\",\n \"SVG_FECOMPOSITE_OPERATOR_XOR\",\n \"SVG_INVALID_VALUE_ERR\",\n \"SVG_LENGTHTYPE_CM\",\n \"SVG_LENGTHTYPE_EMS\",\n \"SVG_LENGTHTYPE_EXS\",\n \"SVG_LENGTHTYPE_IN\",\n \"SVG_LENGTHTYPE_MM\",\n \"SVG_LENGTHTYPE_NUMBER\",\n \"SVG_LENGTHTYPE_PC\",\n \"SVG_LENGTHTYPE_PERCENTAGE\",\n \"SVG_LENGTHTYPE_PT\",\n \"SVG_LENGTHTYPE_PX\",\n \"SVG_LENGTHTYPE_UNKNOWN\",\n \"SVG_MARKERUNITS_STROKEWIDTH\",\n \"SVG_MARKERUNITS_UNKNOWN\",\n \"SVG_MARKERUNITS_USERSPACEONUSE\",\n \"SVG_MARKER_ORIENT_ANGLE\",\n \"SVG_MARKER_ORIENT_AUTO\",\n \"SVG_MARKER_ORIENT_UNKNOWN\",\n \"SVG_MASKTYPE_ALPHA\",\n \"SVG_MASKTYPE_LUMINANCE\",\n \"SVG_MATRIX_NOT_INVERTABLE\",\n \"SVG_MEETORSLICE_MEET\",\n \"SVG_MEETORSLICE_SLICE\",\n \"SVG_MEETORSLICE_UNKNOWN\",\n \"SVG_MORPHOLOGY_OPERATOR_DILATE\",\n \"SVG_MORPHOLOGY_OPERATOR_ERODE\",\n \"SVG_MORPHOLOGY_OPERATOR_UNKNOWN\",\n \"SVG_PAINTTYPE_CURRENTCOLOR\",\n \"SVG_PAINTTYPE_NONE\",\n \"SVG_PAINTTYPE_RGBCOLOR\",\n \"SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR\",\n \"SVG_PAINTTYPE_UNKNOWN\",\n \"SVG_PAINTTYPE_URI\",\n \"SVG_PAINTTYPE_URI_CURRENTCOLOR\",\n \"SVG_PAINTTYPE_URI_NONE\",\n \"SVG_PAINTTYPE_URI_RGBCOLOR\",\n \"SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR\",\n \"SVG_PRESERVEASPECTRATIO_NONE\",\n \"SVG_PRESERVEASPECTRATIO_UNKNOWN\",\n \"SVG_PRESERVEASPECTRATIO_XMAXYMAX\",\n \"SVG_PRESERVEASPECTRATIO_XMAXYMID\",\n \"SVG_PRESERVEASPECTRATIO_XMAXYMIN\",\n \"SVG_PRESERVEASPECTRATIO_XMIDYMAX\",\n \"SVG_PRESERVEASPECTRATIO_XMIDYMID\",\n \"SVG_PRESERVEASPECTRATIO_XMIDYMIN\",\n \"SVG_PRESERVEASPECTRATIO_XMINYMAX\",\n \"SVG_PRESERVEASPECTRATIO_XMINYMID\",\n \"SVG_PRESERVEASPECTRATIO_XMINYMIN\",\n \"SVG_SPREADMETHOD_PAD\",\n \"SVG_SPREADMETHOD_REFLECT\",\n \"SVG_SPREADMETHOD_REPEAT\",\n \"SVG_SPREADMETHOD_UNKNOWN\",\n \"SVG_STITCHTYPE_NOSTITCH\",\n \"SVG_STITCHTYPE_STITCH\",\n \"SVG_STITCHTYPE_UNKNOWN\",\n \"SVG_TRANSFORM_MATRIX\",\n \"SVG_TRANSFORM_ROTATE\",\n \"SVG_TRANSFORM_SCALE\",\n \"SVG_TRANSFORM_SKEWX\",\n \"SVG_TRANSFORM_SKEWY\",\n \"SVG_TRANSFORM_TRANSLATE\",\n \"SVG_TRANSFORM_UNKNOWN\",\n \"SVG_TURBULENCE_TYPE_FRACTALNOISE\",\n \"SVG_TURBULENCE_TYPE_TURBULENCE\",\n \"SVG_TURBULENCE_TYPE_UNKNOWN\",\n \"SVG_UNIT_TYPE_OBJECTBOUNDINGBOX\",\n \"SVG_UNIT_TYPE_UNKNOWN\",\n \"SVG_UNIT_TYPE_USERSPACEONUSE\",\n \"SVG_WRONG_TYPE_ERR\",\n \"SVG_ZOOMANDPAN_DISABLE\",\n \"SVG_ZOOMANDPAN_MAGNIFY\",\n \"SVG_ZOOMANDPAN_UNKNOWN\",\n \"SYNC_CONDITION\",\n \"SYNC_FENCE\",\n \"SYNC_FLAGS\",\n \"SYNC_FLUSH_COMMANDS_BIT\",\n \"SYNC_GPU_COMMANDS_COMPLETE\",\n \"SYNC_STATUS\",\n \"SYNTAX_ERR\",\n \"SavedPages\",\n \"Screen\",\n \"ScreenOrientation\",\n \"Script\",\n \"ScriptProcessorNode\",\n \"ScrollAreaEvent\",\n \"SecurityPolicyViolationEvent\",\n \"Selection\",\n \"Sensor\",\n \"SensorErrorEvent\",\n \"ServiceWorker\",\n \"ServiceWorkerContainer\",\n \"ServiceWorkerRegistration\",\n \"SessionDescription\",\n \"Set\",\n \"ShadowRoot\",\n \"SharedArrayBuffer\",\n \"SharedWorker\",\n \"SimpleGestureEvent\",\n \"SourceBuffer\",\n \"SourceBufferList\",\n \"SpeechSynthesis\",\n \"SpeechSynthesisErrorEvent\",\n \"SpeechSynthesisEvent\",\n \"SpeechSynthesisUtterance\",\n \"SpeechSynthesisVoice\",\n \"StaticRange\",\n \"StereoPannerNode\",\n \"StopIteration\",\n \"Storage\",\n \"StorageEvent\",\n \"StorageManager\",\n \"String\",\n \"StructType\",\n \"StylePropertyMap\",\n \"StylePropertyMapReadOnly\",\n \"StyleSheet\",\n \"StyleSheetList\",\n \"SubmitEvent\",\n \"SubtleCrypto\",\n \"Symbol\",\n \"SyncManager\",\n \"SyntaxError\",\n \"TEMPORARY\",\n \"TEXTPATH_METHODTYPE_ALIGN\",\n \"TEXTPATH_METHODTYPE_STRETCH\",\n \"TEXTPATH_METHODTYPE_UNKNOWN\",\n \"TEXTPATH_SPACINGTYPE_AUTO\",\n \"TEXTPATH_SPACINGTYPE_EXACT\",\n \"TEXTPATH_SPACINGTYPE_UNKNOWN\",\n \"TEXTURE\",\n \"TEXTURE0\",\n \"TEXTURE1\",\n \"TEXTURE10\",\n \"TEXTURE11\",\n \"TEXTURE12\",\n \"TEXTURE13\",\n \"TEXTURE14\",\n \"TEXTURE15\",\n \"TEXTURE16\",\n \"TEXTURE17\",\n \"TEXTURE18\",\n \"TEXTURE19\",\n \"TEXTURE2\",\n \"TEXTURE20\",\n \"TEXTURE21\",\n \"TEXTURE22\",\n \"TEXTURE23\",\n \"TEXTURE24\",\n \"TEXTURE25\",\n \"TEXTURE26\",\n \"TEXTURE27\",\n \"TEXTURE28\",\n \"TEXTURE29\",\n \"TEXTURE3\",\n \"TEXTURE30\",\n \"TEXTURE31\",\n \"TEXTURE4\",\n \"TEXTURE5\",\n \"TEXTURE6\",\n \"TEXTURE7\",\n \"TEXTURE8\",\n \"TEXTURE9\",\n \"TEXTURE_2D\",\n \"TEXTURE_2D_ARRAY\",\n \"TEXTURE_3D\",\n \"TEXTURE_BASE_LEVEL\",\n \"TEXTURE_BINDING\",\n \"TEXTURE_BINDING_2D\",\n \"TEXTURE_BINDING_2D_ARRAY\",\n \"TEXTURE_BINDING_3D\",\n \"TEXTURE_BINDING_CUBE_MAP\",\n \"TEXTURE_COMPARE_FUNC\",\n \"TEXTURE_COMPARE_MODE\",\n \"TEXTURE_CUBE_MAP\",\n \"TEXTURE_CUBE_MAP_NEGATIVE_X\",\n \"TEXTURE_CUBE_MAP_NEGATIVE_Y\",\n \"TEXTURE_CUBE_MAP_NEGATIVE_Z\",\n \"TEXTURE_CUBE_MAP_POSITIVE_X\",\n \"TEXTURE_CUBE_MAP_POSITIVE_Y\",\n \"TEXTURE_CUBE_MAP_POSITIVE_Z\",\n \"TEXTURE_IMMUTABLE_FORMAT\",\n \"TEXTURE_IMMUTABLE_LEVELS\",\n \"TEXTURE_MAG_FILTER\",\n \"TEXTURE_MAX_ANISOTROPY_EXT\",\n \"TEXTURE_MAX_LEVEL\",\n \"TEXTURE_MAX_LOD\",\n \"TEXTURE_MIN_FILTER\",\n \"TEXTURE_MIN_LOD\",\n \"TEXTURE_WRAP_R\",\n \"TEXTURE_WRAP_S\",\n \"TEXTURE_WRAP_T\",\n \"TEXT_NODE\",\n \"TIMEOUT\",\n \"TIMEOUT_ERR\",\n \"TIMEOUT_EXPIRED\",\n \"TIMEOUT_IGNORED\",\n \"TOO_LARGE_ERR\",\n \"TRANSACTION_INACTIVE_ERR\",\n \"TRANSFORM_FEEDBACK\",\n \"TRANSFORM_FEEDBACK_ACTIVE\",\n \"TRANSFORM_FEEDBACK_BINDING\",\n \"TRANSFORM_FEEDBACK_BUFFER\",\n \"TRANSFORM_FEEDBACK_BUFFER_BINDING\",\n \"TRANSFORM_FEEDBACK_BUFFER_MODE\",\n \"TRANSFORM_FEEDBACK_BUFFER_SIZE\",\n \"TRANSFORM_FEEDBACK_BUFFER_START\",\n \"TRANSFORM_FEEDBACK_PAUSED\",\n \"TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN\",\n \"TRANSFORM_FEEDBACK_VARYINGS\",\n \"TRIANGLE\",\n \"TRIANGLES\",\n \"TRIANGLE_FAN\",\n \"TRIANGLE_STRIP\",\n \"TYPE_BACK_FORWARD\",\n \"TYPE_ERR\",\n \"TYPE_MISMATCH_ERR\",\n \"TYPE_NAVIGATE\",\n \"TYPE_RELOAD\",\n \"TYPE_RESERVED\",\n \"Table\",\n \"TaskAttributionTiming\",\n \"Text\",\n \"TextDecoder\",\n \"TextDecoderStream\",\n \"TextEncoder\",\n \"TextEncoderStream\",\n \"TextEvent\",\n \"TextMetrics\",\n \"TextTrack\",\n \"TextTrackCue\",\n \"TextTrackCueList\",\n \"TextTrackList\",\n \"TimeEvent\",\n \"TimeRanges\",\n \"Touch\",\n \"TouchEvent\",\n \"TouchList\",\n \"TrackEvent\",\n \"TransformStream\",\n \"TransitionEvent\",\n \"TreeWalker\",\n \"TrustedHTML\",\n \"TrustedScript\",\n \"TrustedScriptURL\",\n \"TrustedTypePolicy\",\n \"TrustedTypePolicyFactory\",\n \"TypeError\",\n \"TypedObject\",\n \"U2F\",\n \"UIEvent\",\n \"UNCACHED\",\n \"UNIFORM\",\n \"UNIFORM_ARRAY_STRIDE\",\n \"UNIFORM_BLOCK_ACTIVE_UNIFORMS\",\n \"UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES\",\n \"UNIFORM_BLOCK_BINDING\",\n \"UNIFORM_BLOCK_DATA_SIZE\",\n \"UNIFORM_BLOCK_INDEX\",\n \"UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER\",\n \"UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER\",\n \"UNIFORM_BUFFER\",\n \"UNIFORM_BUFFER_BINDING\",\n \"UNIFORM_BUFFER_OFFSET_ALIGNMENT\",\n \"UNIFORM_BUFFER_SIZE\",\n \"UNIFORM_BUFFER_START\",\n \"UNIFORM_IS_ROW_MAJOR\",\n \"UNIFORM_MATRIX_STRIDE\",\n \"UNIFORM_OFFSET\",\n \"UNIFORM_SIZE\",\n \"UNIFORM_TYPE\",\n \"UNKNOWN_ERR\",\n \"UNKNOWN_RULE\",\n \"UNMASKED_RENDERER_WEBGL\",\n \"UNMASKED_VENDOR_WEBGL\",\n \"UNORDERED_NODE_ITERATOR_TYPE\",\n \"UNORDERED_NODE_SNAPSHOT_TYPE\",\n \"UNPACK_ALIGNMENT\",\n \"UNPACK_COLORSPACE_CONVERSION_WEBGL\",\n \"UNPACK_FLIP_Y_WEBGL\",\n \"UNPACK_IMAGE_HEIGHT\",\n \"UNPACK_PREMULTIPLY_ALPHA_WEBGL\",\n \"UNPACK_ROW_LENGTH\",\n \"UNPACK_SKIP_IMAGES\",\n \"UNPACK_SKIP_PIXELS\",\n \"UNPACK_SKIP_ROWS\",\n \"UNSCHEDULED_STATE\",\n \"UNSENT\",\n \"UNSIGNALED\",\n \"UNSIGNED_BYTE\",\n \"UNSIGNED_INT\",\n \"UNSIGNED_INT_10F_11F_11F_REV\",\n \"UNSIGNED_INT_24_8\",\n \"UNSIGNED_INT_2_10_10_10_REV\",\n \"UNSIGNED_INT_5_9_9_9_REV\",\n \"UNSIGNED_INT_SAMPLER_2D\",\n \"UNSIGNED_INT_SAMPLER_2D_ARRAY\",\n \"UNSIGNED_INT_SAMPLER_3D\",\n \"UNSIGNED_INT_SAMPLER_CUBE\",\n \"UNSIGNED_INT_VEC2\",\n \"UNSIGNED_INT_VEC3\",\n \"UNSIGNED_INT_VEC4\",\n \"UNSIGNED_NORMALIZED\",\n \"UNSIGNED_SHORT\",\n \"UNSIGNED_SHORT_4_4_4_4\",\n \"UNSIGNED_SHORT_5_5_5_1\",\n \"UNSIGNED_SHORT_5_6_5\",\n \"UNSPECIFIED_EVENT_TYPE_ERR\",\n \"UPDATEREADY\",\n \"URIError\",\n \"URL\",\n \"URLSearchParams\",\n \"URLUnencoded\",\n \"URL_MISMATCH_ERR\",\n \"USB\",\n \"USBAlternateInterface\",\n \"USBConfiguration\",\n \"USBConnectionEvent\",\n \"USBDevice\",\n \"USBEndpoint\",\n \"USBInTransferResult\",\n \"USBInterface\",\n \"USBIsochronousInTransferPacket\",\n \"USBIsochronousInTransferResult\",\n \"USBIsochronousOutTransferPacket\",\n \"USBIsochronousOutTransferResult\",\n \"USBOutTransferResult\",\n \"UTC\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"UserActivation\",\n \"UserMessageHandler\",\n \"UserMessageHandlersNamespace\",\n \"UserProximityEvent\",\n \"VALIDATE_STATUS\",\n \"VALIDATION_ERR\",\n \"VARIABLES_RULE\",\n \"VENDOR\",\n \"VERSION\",\n \"VERSION_CHANGE\",\n \"VERSION_ERR\",\n \"VERTEX\",\n \"VERTEX_ARRAY_BINDING\",\n \"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING\",\n \"VERTEX_ATTRIB_ARRAY_DIVISOR\",\n \"VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE\",\n \"VERTEX_ATTRIB_ARRAY_ENABLED\",\n \"VERTEX_ATTRIB_ARRAY_INTEGER\",\n \"VERTEX_ATTRIB_ARRAY_NORMALIZED\",\n \"VERTEX_ATTRIB_ARRAY_POINTER\",\n \"VERTEX_ATTRIB_ARRAY_SIZE\",\n \"VERTEX_ATTRIB_ARRAY_STRIDE\",\n \"VERTEX_ATTRIB_ARRAY_TYPE\",\n \"VERTEX_SHADER\",\n \"VERTICAL\",\n \"VERTICAL_AXIS\",\n \"VER_ERR\",\n \"VIEWPORT\",\n \"VIEWPORT_RULE\",\n \"VRDisplay\",\n \"VRDisplayCapabilities\",\n \"VRDisplayEvent\",\n \"VREyeParameters\",\n \"VRFieldOfView\",\n \"VRFrameData\",\n \"VRPose\",\n \"VRStageParameters\",\n \"VTTCue\",\n \"VTTRegion\",\n \"ValidityState\",\n \"VideoPlaybackQuality\",\n \"VideoStreamTrack\",\n \"VisualViewport\",\n \"WAIT_FAILED\",\n \"WEBKIT_FILTER_RULE\",\n \"WEBKIT_KEYFRAMES_RULE\",\n \"WEBKIT_KEYFRAME_RULE\",\n \"WEBKIT_REGION_RULE\",\n \"WRITE\",\n \"WRONG_DOCUMENT_ERR\",\n \"WakeLock\",\n \"WakeLockSentinel\",\n \"WasmAnyRef\",\n \"WaveShaperNode\",\n \"WeakMap\",\n \"WeakRef\",\n \"WeakSet\",\n \"WebAssembly\",\n \"WebGL2RenderingContext\",\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLContextEvent\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLQuery\",\n \"WebGLRenderbuffer\",\n \"WebGLRenderingContext\",\n \"WebGLSampler\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLSync\",\n \"WebGLTexture\",\n \"WebGLTransformFeedback\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArray\",\n \"WebGLVertexArrayObject\",\n \"WebKitAnimationEvent\",\n \"WebKitBlobBuilder\",\n \"WebKitCSSFilterRule\",\n \"WebKitCSSFilterValue\",\n \"WebKitCSSKeyframeRule\",\n \"WebKitCSSKeyframesRule\",\n \"WebKitCSSMatrix\",\n \"WebKitCSSRegionRule\",\n \"WebKitCSSTransformValue\",\n \"WebKitDataCue\",\n \"WebKitGamepad\",\n \"WebKitMediaKeyError\",\n \"WebKitMediaKeyMessageEvent\",\n \"WebKitMediaKeySession\",\n \"WebKitMediaKeys\",\n \"WebKitMediaSource\",\n \"WebKitMutationObserver\",\n \"WebKitNamespace\",\n \"WebKitPlaybackTargetAvailabilityEvent\",\n \"WebKitPoint\",\n \"WebKitShadowRoot\",\n \"WebKitSourceBuffer\",\n \"WebKitSourceBufferList\",\n \"WebKitTransitionEvent\",\n \"WebSocket\",\n \"WebkitAlignContent\",\n \"WebkitAlignItems\",\n \"WebkitAlignSelf\",\n \"WebkitAnimation\",\n \"WebkitAnimationDelay\",\n \"WebkitAnimationDirection\",\n \"WebkitAnimationDuration\",\n \"WebkitAnimationFillMode\",\n \"WebkitAnimationIterationCount\",\n \"WebkitAnimationName\",\n \"WebkitAnimationPlayState\",\n \"WebkitAnimationTimingFunction\",\n \"WebkitAppearance\",\n \"WebkitBackfaceVisibility\",\n \"WebkitBackgroundClip\",\n \"WebkitBackgroundOrigin\",\n \"WebkitBackgroundSize\",\n \"WebkitBorderBottomLeftRadius\",\n \"WebkitBorderBottomRightRadius\",\n \"WebkitBorderImage\",\n \"WebkitBorderRadius\",\n \"WebkitBorderTopLeftRadius\",\n \"WebkitBorderTopRightRadius\",\n \"WebkitBoxAlign\",\n \"WebkitBoxDirection\",\n \"WebkitBoxFlex\",\n \"WebkitBoxOrdinalGroup\",\n \"WebkitBoxOrient\",\n \"WebkitBoxPack\",\n \"WebkitBoxShadow\",\n \"WebkitBoxSizing\",\n \"WebkitFilter\",\n \"WebkitFlex\",\n \"WebkitFlexBasis\",\n \"WebkitFlexDirection\",\n \"WebkitFlexFlow\",\n \"WebkitFlexGrow\",\n \"WebkitFlexShrink\",\n \"WebkitFlexWrap\",\n \"WebkitJustifyContent\",\n \"WebkitLineClamp\",\n \"WebkitMask\",\n \"WebkitMaskClip\",\n \"WebkitMaskComposite\",\n \"WebkitMaskImage\",\n \"WebkitMaskOrigin\",\n \"WebkitMaskPosition\",\n \"WebkitMaskPositionX\",\n \"WebkitMaskPositionY\",\n \"WebkitMaskRepeat\",\n \"WebkitMaskSize\",\n \"WebkitOrder\",\n \"WebkitPerspective\",\n \"WebkitPerspectiveOrigin\",\n \"WebkitTextFillColor\",\n \"WebkitTextSizeAdjust\",\n \"WebkitTextStroke\",\n \"WebkitTextStrokeColor\",\n \"WebkitTextStrokeWidth\",\n \"WebkitTransform\",\n \"WebkitTransformOrigin\",\n \"WebkitTransformStyle\",\n \"WebkitTransition\",\n \"WebkitTransitionDelay\",\n \"WebkitTransitionDuration\",\n \"WebkitTransitionProperty\",\n \"WebkitTransitionTimingFunction\",\n \"WebkitUserSelect\",\n \"WheelEvent\",\n \"Window\",\n \"Worker\",\n \"Worklet\",\n \"WritableStream\",\n \"WritableStreamDefaultWriter\",\n \"XMLDocument\",\n \"XMLHttpRequest\",\n \"XMLHttpRequestEventTarget\",\n \"XMLHttpRequestException\",\n \"XMLHttpRequestProgressEvent\",\n \"XMLHttpRequestUpload\",\n \"XMLSerializer\",\n \"XMLStylesheetProcessingInstruction\",\n \"XPathEvaluator\",\n \"XPathException\",\n \"XPathExpression\",\n \"XPathNSResolver\",\n \"XPathResult\",\n \"XRBoundedReferenceSpace\",\n \"XRDOMOverlayState\",\n \"XRFrame\",\n \"XRHitTestResult\",\n \"XRHitTestSource\",\n \"XRInputSource\",\n \"XRInputSourceArray\",\n \"XRInputSourceEvent\",\n \"XRInputSourcesChangeEvent\",\n \"XRLayer\",\n \"XRPose\",\n \"XRRay\",\n \"XRReferenceSpace\",\n \"XRReferenceSpaceEvent\",\n \"XRRenderState\",\n \"XRRigidTransform\",\n \"XRSession\",\n \"XRSessionEvent\",\n \"XRSpace\",\n \"XRSystem\",\n \"XRTransientInputHitTestResult\",\n \"XRTransientInputHitTestSource\",\n \"XRView\",\n \"XRViewerPose\",\n \"XRViewport\",\n \"XRWebGLLayer\",\n \"XSLTProcessor\",\n \"ZERO\",\n \"_XD0M_\",\n \"_YD0M_\",\n \"__brand\",\n \"__defineGetter__\",\n \"__defineSetter__\",\n \"__lookupGetter__\",\n \"__lookupSetter__\",\n \"__opera\",\n \"__proto__\",\n \"_browserjsran\",\n \"a\",\n \"aLink\",\n \"abbr\",\n \"abort\",\n \"aborted\",\n \"abs\",\n \"absolute\",\n \"acceleration\",\n \"accelerationIncludingGravity\",\n \"accelerator\",\n \"accept\",\n \"acceptCharset\",\n \"acceptNode\",\n \"access\",\n \"accessKey\",\n \"accessKeyLabel\",\n \"accuracy\",\n \"acos\",\n \"acosh\",\n \"action\",\n \"actionURL\",\n \"actions\",\n \"activated\",\n \"active\",\n \"activeCues\",\n \"activeElement\",\n \"activeSourceBuffers\",\n \"activeSourceCount\",\n \"activeTexture\",\n \"activeVRDisplays\",\n \"actualBoundingBoxAscent\",\n \"actualBoundingBoxDescent\",\n \"actualBoundingBoxLeft\",\n \"actualBoundingBoxRight\",\n \"add\",\n \"addAll\",\n \"addBehavior\",\n \"addCandidate\",\n \"addColorStop\",\n \"addCue\",\n \"addElement\",\n \"addEventListener\",\n \"addFilter\",\n \"addFromString\",\n \"addFromUri\",\n \"addIceCandidate\",\n \"addImport\",\n \"addListener\",\n \"addModule\",\n \"addNamed\",\n \"addPageRule\",\n \"addPath\",\n \"addPointer\",\n \"addRange\",\n \"addRegion\",\n \"addRule\",\n \"addSearchEngine\",\n \"addSourceBuffer\",\n \"addStream\",\n \"addTextTrack\",\n \"addTrack\",\n \"addTransceiver\",\n \"addWakeLockListener\",\n \"added\",\n \"addedNodes\",\n \"additionalName\",\n \"additiveSymbols\",\n \"addons\",\n \"address\",\n \"addressLine\",\n \"addressModeU\",\n \"addressModeV\",\n \"addressModeW\",\n \"adoptNode\",\n \"adoptedStyleSheets\",\n \"adr\",\n \"advance\",\n \"after\",\n \"album\",\n \"alert\",\n \"algorithm\",\n \"align\",\n \"align-content\",\n \"align-items\",\n \"align-self\",\n \"alignContent\",\n \"alignItems\",\n \"alignSelf\",\n \"alignmentBaseline\",\n \"alinkColor\",\n \"all\",\n \"allSettled\",\n \"allow\",\n \"allowFullscreen\",\n \"allowPaymentRequest\",\n \"allowedDirections\",\n \"allowedFeatures\",\n \"allowedToPlay\",\n \"allowsFeature\",\n \"alpha\",\n \"alphaMode\",\n \"alphaToCoverageEnabled\",\n \"alt\",\n \"altGraphKey\",\n \"altHtml\",\n \"altKey\",\n \"altLeft\",\n \"alternate\",\n \"alternateSetting\",\n \"alternates\",\n \"altitude\",\n \"altitudeAccuracy\",\n \"amplitude\",\n \"ancestorOrigins\",\n \"anchor\",\n \"anchorNode\",\n \"anchorOffset\",\n \"anchors\",\n \"and\",\n \"angle\",\n \"angularAcceleration\",\n \"angularVelocity\",\n \"animVal\",\n \"animate\",\n \"animatedInstanceRoot\",\n \"animatedNormalizedPathSegList\",\n \"animatedPathSegList\",\n \"animatedPoints\",\n \"animation\",\n \"animation-delay\",\n \"animation-direction\",\n \"animation-duration\",\n \"animation-fill-mode\",\n \"animation-iteration-count\",\n \"animation-name\",\n \"animation-play-state\",\n \"animation-timing-function\",\n \"animationDelay\",\n \"animationDirection\",\n \"animationDuration\",\n \"animationFillMode\",\n \"animationIterationCount\",\n \"animationName\",\n \"animationPlayState\",\n \"animationStartTime\",\n \"animationTimingFunction\",\n \"animationsPaused\",\n \"anniversary\",\n \"antialias\",\n \"anticipatedRemoval\",\n \"any\",\n \"app\",\n \"appCodeName\",\n \"appMinorVersion\",\n \"appName\",\n \"appNotifications\",\n \"appVersion\",\n \"appearance\",\n \"append\",\n \"appendBuffer\",\n \"appendChild\",\n \"appendData\",\n \"appendItem\",\n \"appendMedium\",\n \"appendNamed\",\n \"appendRule\",\n \"appendStream\",\n \"appendWindowEnd\",\n \"appendWindowStart\",\n \"applets\",\n \"applicationCache\",\n \"applicationServerKey\",\n \"apply\",\n \"applyConstraints\",\n \"applyElement\",\n \"arc\",\n \"arcTo\",\n \"architecture\",\n \"archive\",\n \"areas\",\n \"arguments\",\n \"ariaAtomic\",\n \"ariaAutoComplete\",\n \"ariaBusy\",\n \"ariaChecked\",\n \"ariaColCount\",\n \"ariaColIndex\",\n \"ariaColSpan\",\n \"ariaCurrent\",\n \"ariaDescription\",\n \"ariaDisabled\",\n \"ariaExpanded\",\n \"ariaHasPopup\",\n \"ariaHidden\",\n \"ariaKeyShortcuts\",\n \"ariaLabel\",\n \"ariaLevel\",\n \"ariaLive\",\n \"ariaModal\",\n \"ariaMultiLine\",\n \"ariaMultiSelectable\",\n \"ariaOrientation\",\n \"ariaPlaceholder\",\n \"ariaPosInSet\",\n \"ariaPressed\",\n \"ariaReadOnly\",\n \"ariaRelevant\",\n \"ariaRequired\",\n \"ariaRoleDescription\",\n \"ariaRowCount\",\n \"ariaRowIndex\",\n \"ariaRowSpan\",\n \"ariaSelected\",\n \"ariaSetSize\",\n \"ariaSort\",\n \"ariaValueMax\",\n \"ariaValueMin\",\n \"ariaValueNow\",\n \"ariaValueText\",\n \"arrayBuffer\",\n \"arrayLayerCount\",\n \"arrayStride\",\n \"artist\",\n \"artwork\",\n \"as\",\n \"asIntN\",\n \"asUintN\",\n \"asin\",\n \"asinh\",\n \"aspect\",\n \"assert\",\n \"assign\",\n \"assignedElements\",\n \"assignedNodes\",\n \"assignedSlot\",\n \"async\",\n \"asyncIterator\",\n \"atEnd\",\n \"atan\",\n \"atan2\",\n \"atanh\",\n \"atob\",\n \"attachEvent\",\n \"attachInternals\",\n \"attachShader\",\n \"attachShadow\",\n \"attachments\",\n \"attack\",\n \"attestationObject\",\n \"attrChange\",\n \"attrName\",\n \"attributeFilter\",\n \"attributeName\",\n \"attributeNamespace\",\n \"attributeOldValue\",\n \"attributeStyleMap\",\n \"attributes\",\n \"attribution\",\n \"audioBitsPerSecond\",\n \"audioTracks\",\n \"audioWorklet\",\n \"authenticatedSignedWrites\",\n \"authenticatorData\",\n \"autoIncrement\",\n \"autobuffer\",\n \"autocapitalize\",\n \"autocomplete\",\n \"autocorrect\",\n \"autofocus\",\n \"automationRate\",\n \"autoplay\",\n \"availHeight\",\n \"availLeft\",\n \"availTop\",\n \"availWidth\",\n \"availability\",\n \"available\",\n \"aversion\",\n \"ax\",\n \"axes\",\n \"axis\",\n \"ay\",\n \"azimuth\",\n \"b\",\n \"back\",\n \"backface-visibility\",\n \"backfaceVisibility\",\n \"background\",\n \"background-attachment\",\n \"background-blend-mode\",\n \"background-clip\",\n \"background-color\",\n \"background-image\",\n \"background-origin\",\n \"background-position\",\n \"background-position-x\",\n \"background-position-y\",\n \"background-repeat\",\n \"background-size\",\n \"backgroundAttachment\",\n \"backgroundBlendMode\",\n \"backgroundClip\",\n \"backgroundColor\",\n \"backgroundFetch\",\n \"backgroundImage\",\n \"backgroundOrigin\",\n \"backgroundPosition\",\n \"backgroundPositionX\",\n \"backgroundPositionY\",\n \"backgroundRepeat\",\n \"backgroundSize\",\n \"badInput\",\n \"badge\",\n \"balance\",\n \"baseArrayLayer\",\n \"baseFrequencyX\",\n \"baseFrequencyY\",\n \"baseLatency\",\n \"baseLayer\",\n \"baseMipLevel\",\n \"baseNode\",\n \"baseOffset\",\n \"baseURI\",\n \"baseVal\",\n \"baselineShift\",\n \"battery\",\n \"bday\",\n \"before\",\n \"beginComputePass\",\n \"beginElement\",\n \"beginElementAt\",\n \"beginOcclusionQuery\",\n \"beginPath\",\n \"beginQuery\",\n \"beginRenderPass\",\n \"beginTransformFeedback\",\n \"beginningOfPassWriteIndex\",\n \"behavior\",\n \"behaviorCookie\",\n \"behaviorPart\",\n \"behaviorUrns\",\n \"beta\",\n \"bezierCurveTo\",\n \"bgColor\",\n \"bgProperties\",\n \"bias\",\n \"big\",\n \"bigint64\",\n \"biguint64\",\n \"binaryType\",\n \"bind\",\n \"bindAttribLocation\",\n \"bindBuffer\",\n \"bindBufferBase\",\n \"bindBufferRange\",\n \"bindFramebuffer\",\n \"bindGroupLayouts\",\n \"bindRenderbuffer\",\n \"bindSampler\",\n \"bindTexture\",\n \"bindTransformFeedback\",\n \"bindVertexArray\",\n \"binding\",\n \"bitness\",\n \"blend\",\n \"blendColor\",\n \"blendEquation\",\n \"blendEquationSeparate\",\n \"blendFunc\",\n \"blendFuncSeparate\",\n \"blink\",\n \"blitFramebuffer\",\n \"blob\",\n \"block-size\",\n \"blockDirection\",\n \"blockSize\",\n \"blockedURI\",\n \"blue\",\n \"bluetooth\",\n \"blur\",\n \"body\",\n \"bodyUsed\",\n \"bold\",\n \"bookmarks\",\n \"booleanValue\",\n \"border\",\n \"border-block\",\n \"border-block-color\",\n \"border-block-end\",\n \"border-block-end-color\",\n \"border-block-end-style\",\n \"border-block-end-width\",\n \"border-block-start\",\n \"border-block-start-color\",\n \"border-block-start-style\",\n \"border-block-start-width\",\n \"border-block-style\",\n \"border-block-width\",\n \"border-bottom\",\n \"border-bottom-color\",\n \"border-bottom-left-radius\",\n \"border-bottom-right-radius\",\n \"border-bottom-style\",\n \"border-bottom-width\",\n \"border-collapse\",\n \"border-color\",\n \"border-end-end-radius\",\n \"border-end-start-radius\",\n \"border-image\",\n \"border-image-outset\",\n \"border-image-repeat\",\n \"border-image-slice\",\n \"border-image-source\",\n \"border-image-width\",\n \"border-inline\",\n \"border-inline-color\",\n \"border-inline-end\",\n \"border-inline-end-color\",\n \"border-inline-end-style\",\n \"border-inline-end-width\",\n \"border-inline-start\",\n \"border-inline-start-color\",\n \"border-inline-start-style\",\n \"border-inline-start-width\",\n \"border-inline-style\",\n \"border-inline-width\",\n \"border-left\",\n \"border-left-color\",\n \"border-left-style\",\n \"border-left-width\",\n \"border-radius\",\n \"border-right\",\n \"border-right-color\",\n \"border-right-style\",\n \"border-right-width\",\n \"border-spacing\",\n \"border-start-end-radius\",\n \"border-start-start-radius\",\n \"border-style\",\n \"border-top\",\n \"border-top-color\",\n \"border-top-left-radius\",\n \"border-top-right-radius\",\n \"border-top-style\",\n \"border-top-width\",\n \"border-width\",\n \"borderBlock\",\n \"borderBlockColor\",\n \"borderBlockEnd\",\n \"borderBlockEndColor\",\n \"borderBlockEndStyle\",\n \"borderBlockEndWidth\",\n \"borderBlockStart\",\n \"borderBlockStartColor\",\n \"borderBlockStartStyle\",\n \"borderBlockStartWidth\",\n \"borderBlockStyle\",\n \"borderBlockWidth\",\n \"borderBottom\",\n \"borderBottomColor\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"borderBottomStyle\",\n \"borderBottomWidth\",\n \"borderBoxSize\",\n \"borderCollapse\",\n \"borderColor\",\n \"borderColorDark\",\n \"borderColorLight\",\n \"borderEndEndRadius\",\n \"borderEndStartRadius\",\n \"borderImage\",\n \"borderImageOutset\",\n \"borderImageRepeat\",\n \"borderImageSlice\",\n \"borderImageSource\",\n \"borderImageWidth\",\n \"borderInline\",\n \"borderInlineColor\",\n \"borderInlineEnd\",\n \"borderInlineEndColor\",\n \"borderInlineEndStyle\",\n \"borderInlineEndWidth\",\n \"borderInlineStart\",\n \"borderInlineStartColor\",\n \"borderInlineStartStyle\",\n \"borderInlineStartWidth\",\n \"borderInlineStyle\",\n \"borderInlineWidth\",\n \"borderLeft\",\n \"borderLeftColor\",\n \"borderLeftStyle\",\n \"borderLeftWidth\",\n \"borderRadius\",\n \"borderRight\",\n \"borderRightColor\",\n \"borderRightStyle\",\n \"borderRightWidth\",\n \"borderSpacing\",\n \"borderStartEndRadius\",\n \"borderStartStartRadius\",\n \"borderStyle\",\n \"borderTop\",\n \"borderTopColor\",\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderTopStyle\",\n \"borderTopWidth\",\n \"borderWidth\",\n \"bottom\",\n \"bottomMargin\",\n \"bound\",\n \"boundElements\",\n \"boundingClientRect\",\n \"boundingHeight\",\n \"boundingLeft\",\n \"boundingTop\",\n \"boundingWidth\",\n \"bounds\",\n \"boundsGeometry\",\n \"box-decoration-break\",\n \"box-shadow\",\n \"box-sizing\",\n \"boxDecorationBreak\",\n \"boxShadow\",\n \"boxSizing\",\n \"brand\",\n \"brands\",\n \"break-after\",\n \"break-before\",\n \"break-inside\",\n \"breakAfter\",\n \"breakBefore\",\n \"breakInside\",\n \"broadcast\",\n \"browserLanguage\",\n \"btoa\",\n \"bubbles\",\n \"buffer\",\n \"bufferData\",\n \"bufferDepth\",\n \"bufferSize\",\n \"bufferSubData\",\n \"buffered\",\n \"bufferedAmount\",\n \"bufferedAmountLowThreshold\",\n \"buffers\",\n \"buildID\",\n \"buildNumber\",\n \"button\",\n \"buttonID\",\n \"buttons\",\n \"byteLength\",\n \"byteOffset\",\n \"bytesPerRow\",\n \"bytesWritten\",\n \"c\",\n \"cache\",\n \"caches\",\n \"call\",\n \"caller\",\n \"canBeFormatted\",\n \"canBeMounted\",\n \"canBeShared\",\n \"canHaveChildren\",\n \"canHaveHTML\",\n \"canInsertDTMF\",\n \"canMakePayment\",\n \"canPlayType\",\n \"canPresent\",\n \"canTrickleIceCandidates\",\n \"cancel\",\n \"cancelAndHoldAtTime\",\n \"cancelAnimationFrame\",\n \"cancelBubble\",\n \"cancelIdleCallback\",\n \"cancelScheduledValues\",\n \"cancelVideoFrameCallback\",\n \"cancelWatchAvailability\",\n \"cancelable\",\n \"candidate\",\n \"canonicalUUID\",\n \"canvas\",\n \"capabilities\",\n \"caption\",\n \"caption-side\",\n \"captionSide\",\n \"capture\",\n \"captureEvents\",\n \"captureStackTrace\",\n \"captureStream\",\n \"caret-color\",\n \"caretBidiLevel\",\n \"caretColor\",\n \"caretPositionFromPoint\",\n \"caretRangeFromPoint\",\n \"cast\",\n \"catch\",\n \"category\",\n \"cbrt\",\n \"cd\",\n \"ceil\",\n \"cellIndex\",\n \"cellPadding\",\n \"cellSpacing\",\n \"cells\",\n \"ch\",\n \"chOff\",\n \"chain\",\n \"challenge\",\n \"changeType\",\n \"changedTouches\",\n \"channel\",\n \"channelCount\",\n \"channelCountMode\",\n \"channelInterpretation\",\n \"char\",\n \"charAt\",\n \"charCode\",\n \"charCodeAt\",\n \"charIndex\",\n \"charLength\",\n \"characterData\",\n \"characterDataOldValue\",\n \"characterSet\",\n \"characteristic\",\n \"charging\",\n \"chargingTime\",\n \"charset\",\n \"check\",\n \"checkEnclosure\",\n \"checkFramebufferStatus\",\n \"checkIntersection\",\n \"checkValidity\",\n \"checked\",\n \"childElementCount\",\n \"childList\",\n \"childNodes\",\n \"children\",\n \"chrome\",\n \"ciphertext\",\n \"cite\",\n \"city\",\n \"claimInterface\",\n \"claimed\",\n \"classList\",\n \"className\",\n \"classid\",\n \"clear\",\n \"clearAppBadge\",\n \"clearAttributes\",\n \"clearBuffer\",\n \"clearBufferfi\",\n \"clearBufferfv\",\n \"clearBufferiv\",\n \"clearBufferuiv\",\n \"clearColor\",\n \"clearData\",\n \"clearDepth\",\n \"clearHalt\",\n \"clearImmediate\",\n \"clearInterval\",\n \"clearLiveSeekableRange\",\n \"clearMarks\",\n \"clearMaxGCPauseAccumulator\",\n \"clearMeasures\",\n \"clearParameters\",\n \"clearRect\",\n \"clearResourceTimings\",\n \"clearShadow\",\n \"clearStencil\",\n \"clearTimeout\",\n \"clearValue\",\n \"clearWatch\",\n \"click\",\n \"clickCount\",\n \"clientDataJSON\",\n \"clientHeight\",\n \"clientInformation\",\n \"clientLeft\",\n \"clientRect\",\n \"clientRects\",\n \"clientTop\",\n \"clientWaitSync\",\n \"clientWidth\",\n \"clientX\",\n \"clientY\",\n \"clip\",\n \"clip-path\",\n \"clip-rule\",\n \"clipBottom\",\n \"clipLeft\",\n \"clipPath\",\n \"clipPathUnits\",\n \"clipRight\",\n \"clipRule\",\n \"clipTop\",\n \"clipboard\",\n \"clipboardData\",\n \"clone\",\n \"cloneContents\",\n \"cloneNode\",\n \"cloneRange\",\n \"close\",\n \"closePath\",\n \"closed\",\n \"closest\",\n \"clz\",\n \"clz32\",\n \"cm\",\n \"cmp\",\n \"code\",\n \"codeBase\",\n \"codePointAt\",\n \"codeType\",\n \"colSpan\",\n \"collapse\",\n \"collapseToEnd\",\n \"collapseToStart\",\n \"collapsed\",\n \"collect\",\n \"colno\",\n \"color\",\n \"color-adjust\",\n \"color-interpolation\",\n \"color-interpolation-filters\",\n \"colorAdjust\",\n \"colorAttachments\",\n \"colorDepth\",\n \"colorFormats\",\n \"colorInterpolation\",\n \"colorInterpolationFilters\",\n \"colorMask\",\n \"colorSpace\",\n \"colorType\",\n \"cols\",\n \"column-count\",\n \"column-fill\",\n \"column-gap\",\n \"column-rule\",\n \"column-rule-color\",\n \"column-rule-style\",\n \"column-rule-width\",\n \"column-span\",\n \"column-width\",\n \"columnCount\",\n \"columnFill\",\n \"columnGap\",\n \"columnNumber\",\n \"columnRule\",\n \"columnRuleColor\",\n \"columnRuleStyle\",\n \"columnRuleWidth\",\n \"columnSpan\",\n \"columnWidth\",\n \"columns\",\n \"command\",\n \"commit\",\n \"commitPreferences\",\n \"commitStyles\",\n \"commonAncestorContainer\",\n \"compact\",\n \"compare\",\n \"compareBoundaryPoints\",\n \"compareDocumentPosition\",\n \"compareEndPoints\",\n \"compareExchange\",\n \"compareNode\",\n \"comparePoint\",\n \"compatMode\",\n \"compatible\",\n \"compile\",\n \"compileShader\",\n \"compileStreaming\",\n \"complete\",\n \"component\",\n \"componentFromPoint\",\n \"composed\",\n \"composedPath\",\n \"composite\",\n \"compositionEndOffset\",\n \"compositionStartOffset\",\n \"compressedTexImage2D\",\n \"compressedTexImage3D\",\n \"compressedTexSubImage2D\",\n \"compressedTexSubImage3D\",\n \"compute\",\n \"computedStyleMap\",\n \"concat\",\n \"conditionText\",\n \"coneInnerAngle\",\n \"coneOuterAngle\",\n \"coneOuterGain\",\n \"configurable\",\n \"configuration\",\n \"configurationName\",\n \"configurationValue\",\n \"configurations\",\n \"configure\",\n \"confirm\",\n \"confirmComposition\",\n \"confirmSiteSpecificTrackingException\",\n \"confirmWebWideTrackingException\",\n \"connect\",\n \"connectEnd\",\n \"connectShark\",\n \"connectStart\",\n \"connected\",\n \"connection\",\n \"connectionList\",\n \"connectionSpeed\",\n \"connectionState\",\n \"connections\",\n \"console\",\n \"consolidate\",\n \"constants\",\n \"constraint\",\n \"constrictionActive\",\n \"construct\",\n \"constructor\",\n \"contactID\",\n \"contain\",\n \"containerId\",\n \"containerName\",\n \"containerSrc\",\n \"containerType\",\n \"contains\",\n \"containsNode\",\n \"content\",\n \"contentBoxSize\",\n \"contentDocument\",\n \"contentEditable\",\n \"contentHint\",\n \"contentOverflow\",\n \"contentRect\",\n \"contentScriptType\",\n \"contentStyleType\",\n \"contentType\",\n \"contentWindow\",\n \"context\",\n \"contextMenu\",\n \"contextmenu\",\n \"continue\",\n \"continuePrimaryKey\",\n \"continuous\",\n \"control\",\n \"controlTransferIn\",\n \"controlTransferOut\",\n \"controller\",\n \"controls\",\n \"controlsList\",\n \"convertPointFromNode\",\n \"convertQuadFromNode\",\n \"convertRectFromNode\",\n \"convertToBlob\",\n \"convertToSpecifiedUnits\",\n \"cookie\",\n \"cookieEnabled\",\n \"coords\",\n \"copyBufferSubData\",\n \"copyBufferToBuffer\",\n \"copyBufferToTexture\",\n \"copyExternalImageToTexture\",\n \"copyFromChannel\",\n \"copyTexImage2D\",\n \"copyTexSubImage2D\",\n \"copyTexSubImage3D\",\n \"copyTextureToBuffer\",\n \"copyTextureToTexture\",\n \"copyToChannel\",\n \"copyWithin\",\n \"correspondingElement\",\n \"correspondingUseElement\",\n \"corruptedVideoFrames\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"countReset\",\n \"counter-increment\",\n \"counter-reset\",\n \"counter-set\",\n \"counterIncrement\",\n \"counterReset\",\n \"counterSet\",\n \"country\",\n \"cpuClass\",\n \"cpuSleepAllowed\",\n \"create\",\n \"createAnalyser\",\n \"createAnswer\",\n \"createAttribute\",\n \"createAttributeNS\",\n \"createBindGroup\",\n \"createBindGroupLayout\",\n \"createBiquadFilter\",\n \"createBuffer\",\n \"createBufferSource\",\n \"createCDATASection\",\n \"createCSSStyleSheet\",\n \"createCaption\",\n \"createChannelMerger\",\n \"createChannelSplitter\",\n \"createCommandEncoder\",\n \"createComment\",\n \"createComputePipeline\",\n \"createComputePipelineAsync\",\n \"createConstantSource\",\n \"createContextualFragment\",\n \"createControlRange\",\n \"createConvolver\",\n \"createDTMFSender\",\n \"createDataChannel\",\n \"createDelay\",\n \"createDelayNode\",\n \"createDocument\",\n \"createDocumentFragment\",\n \"createDocumentType\",\n \"createDynamicsCompressor\",\n \"createElement\",\n \"createElementNS\",\n \"createEntityReference\",\n \"createEvent\",\n \"createEventObject\",\n \"createExpression\",\n \"createFramebuffer\",\n \"createFunction\",\n \"createGain\",\n \"createGainNode\",\n \"createHTML\",\n \"createHTMLDocument\",\n \"createIIRFilter\",\n \"createImageBitmap\",\n \"createImageData\",\n \"createIndex\",\n \"createJavaScriptNode\",\n \"createLinearGradient\",\n \"createMediaElementSource\",\n \"createMediaKeys\",\n \"createMediaStreamDestination\",\n \"createMediaStreamSource\",\n \"createMediaStreamTrackSource\",\n \"createMutableFile\",\n \"createNSResolver\",\n \"createNodeIterator\",\n \"createNotification\",\n \"createObjectStore\",\n \"createObjectURL\",\n \"createOffer\",\n \"createOscillator\",\n \"createPanner\",\n \"createPattern\",\n \"createPeriodicWave\",\n \"createPipelineLayout\",\n \"createPolicy\",\n \"createPopup\",\n \"createProcessingInstruction\",\n \"createProgram\",\n \"createQuery\",\n \"createQuerySet\",\n \"createRadialGradient\",\n \"createRange\",\n \"createRangeCollection\",\n \"createReader\",\n \"createRenderBundleEncoder\",\n \"createRenderPipeline\",\n \"createRenderPipelineAsync\",\n \"createRenderbuffer\",\n \"createSVGAngle\",\n \"createSVGLength\",\n \"createSVGMatrix\",\n \"createSVGNumber\",\n \"createSVGPathSegArcAbs\",\n \"createSVGPathSegArcRel\",\n \"createSVGPathSegClosePath\",\n \"createSVGPathSegCurvetoCubicAbs\",\n \"createSVGPathSegCurvetoCubicRel\",\n \"createSVGPathSegCurvetoCubicSmoothAbs\",\n \"createSVGPathSegCurvetoCubicSmoothRel\",\n \"createSVGPathSegCurvetoQuadraticAbs\",\n \"createSVGPathSegCurvetoQuadraticRel\",\n \"createSVGPathSegCurvetoQuadraticSmoothAbs\",\n \"createSVGPathSegCurvetoQuadraticSmoothRel\",\n \"createSVGPathSegLinetoAbs\",\n \"createSVGPathSegLinetoHorizontalAbs\",\n \"createSVGPathSegLinetoHorizontalRel\",\n \"createSVGPathSegLinetoRel\",\n \"createSVGPathSegLinetoVerticalAbs\",\n \"createSVGPathSegLinetoVerticalRel\",\n \"createSVGPathSegMovetoAbs\",\n \"createSVGPathSegMovetoRel\",\n \"createSVGPoint\",\n \"createSVGRect\",\n \"createSVGTransform\",\n \"createSVGTransformFromMatrix\",\n \"createSampler\",\n \"createScript\",\n \"createScriptProcessor\",\n \"createScriptURL\",\n \"createSession\",\n \"createShader\",\n \"createShaderModule\",\n \"createShadowRoot\",\n \"createStereoPanner\",\n \"createStyleSheet\",\n \"createTBody\",\n \"createTFoot\",\n \"createTHead\",\n \"createTextNode\",\n \"createTextRange\",\n \"createTexture\",\n \"createTouch\",\n \"createTouchList\",\n \"createTransformFeedback\",\n \"createTreeWalker\",\n \"createVertexArray\",\n \"createView\",\n \"createWaveShaper\",\n \"creationTime\",\n \"credentials\",\n \"crossOrigin\",\n \"crossOriginIsolated\",\n \"crypto\",\n \"csi\",\n \"csp\",\n \"cssFloat\",\n \"cssRules\",\n \"cssText\",\n \"cssValueType\",\n \"ctrlKey\",\n \"ctrlLeft\",\n \"cues\",\n \"cullFace\",\n \"cullMode\",\n \"currentDirection\",\n \"currentLocalDescription\",\n \"currentNode\",\n \"currentPage\",\n \"currentRect\",\n \"currentRemoteDescription\",\n \"currentScale\",\n \"currentScript\",\n \"currentSrc\",\n \"currentState\",\n \"currentStyle\",\n \"currentTarget\",\n \"currentTime\",\n \"currentTranslate\",\n \"currentView\",\n \"cursor\",\n \"curve\",\n \"customElements\",\n \"customError\",\n \"cx\",\n \"cy\",\n \"d\",\n \"data\",\n \"dataFld\",\n \"dataFormatAs\",\n \"dataLoss\",\n \"dataLossMessage\",\n \"dataPageSize\",\n \"dataSrc\",\n \"dataTransfer\",\n \"database\",\n \"databases\",\n \"dataset\",\n \"dateTime\",\n \"db\",\n \"debug\",\n \"debuggerEnabled\",\n \"declare\",\n \"decode\",\n \"decodeAudioData\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"decodedBodySize\",\n \"decoding\",\n \"decodingInfo\",\n \"decrypt\",\n \"default\",\n \"defaultCharset\",\n \"defaultChecked\",\n \"defaultMuted\",\n \"defaultPlaybackRate\",\n \"defaultPolicy\",\n \"defaultPrevented\",\n \"defaultQueue\",\n \"defaultRequest\",\n \"defaultSelected\",\n \"defaultStatus\",\n \"defaultURL\",\n \"defaultValue\",\n \"defaultView\",\n \"defaultstatus\",\n \"defer\",\n \"define\",\n \"defineMagicFunction\",\n \"defineMagicVariable\",\n \"defineProperties\",\n \"defineProperty\",\n \"deg\",\n \"delay\",\n \"delayTime\",\n \"delegatesFocus\",\n \"delete\",\n \"deleteBuffer\",\n \"deleteCaption\",\n \"deleteCell\",\n \"deleteContents\",\n \"deleteData\",\n \"deleteDatabase\",\n \"deleteFramebuffer\",\n \"deleteFromDocument\",\n \"deleteIndex\",\n \"deleteMedium\",\n \"deleteObjectStore\",\n \"deleteProgram\",\n \"deleteProperty\",\n \"deleteQuery\",\n \"deleteRenderbuffer\",\n \"deleteRow\",\n \"deleteRule\",\n \"deleteSampler\",\n \"deleteShader\",\n \"deleteSync\",\n \"deleteTFoot\",\n \"deleteTHead\",\n \"deleteTexture\",\n \"deleteTransformFeedback\",\n \"deleteVertexArray\",\n \"deliverChangeRecords\",\n \"delivery\",\n \"deliveryInfo\",\n \"deliveryStatus\",\n \"deliveryTimestamp\",\n \"delta\",\n \"deltaMode\",\n \"deltaX\",\n \"deltaY\",\n \"deltaZ\",\n \"dependentLocality\",\n \"depthBias\",\n \"depthBiasClamp\",\n \"depthBiasSlopeScale\",\n \"depthClearValue\",\n \"depthCompare\",\n \"depthFailOp\",\n \"depthFar\",\n \"depthFunc\",\n \"depthLoadOp\",\n \"depthMask\",\n \"depthNear\",\n \"depthOrArrayLayers\",\n \"depthRange\",\n \"depthReadOnly\",\n \"depthStencil\",\n \"depthStencilAttachment\",\n \"depthStencilFormat\",\n \"depthStoreOp\",\n \"depthWriteEnabled\",\n \"deref\",\n \"deriveBits\",\n \"deriveKey\",\n \"description\",\n \"deselectAll\",\n \"designMode\",\n \"desiredSize\",\n \"destination\",\n \"destinationURL\",\n \"destroy\",\n \"detach\",\n \"detachEvent\",\n \"detachShader\",\n \"detail\",\n \"details\",\n \"detect\",\n \"detune\",\n \"device\",\n \"deviceClass\",\n \"deviceId\",\n \"deviceMemory\",\n \"devicePixelContentBoxSize\",\n \"devicePixelRatio\",\n \"deviceProtocol\",\n \"deviceSubclass\",\n \"deviceVersionMajor\",\n \"deviceVersionMinor\",\n \"deviceVersionSubminor\",\n \"deviceXDPI\",\n \"deviceYDPI\",\n \"didTimeout\",\n \"diffuseConstant\",\n \"digest\",\n \"dimension\",\n \"dimensions\",\n \"dir\",\n \"dirName\",\n \"direction\",\n \"dirxml\",\n \"disable\",\n \"disablePictureInPicture\",\n \"disableRemotePlayback\",\n \"disableVertexAttribArray\",\n \"disabled\",\n \"dischargingTime\",\n \"disconnect\",\n \"disconnectShark\",\n \"dispatchEvent\",\n \"dispatchWorkgroups\",\n \"dispatchWorkgroupsIndirect\",\n \"display\",\n \"displayId\",\n \"displayName\",\n \"disposition\",\n \"distanceModel\",\n \"div\",\n \"divisor\",\n \"djsapi\",\n \"djsproxy\",\n \"doImport\",\n \"doNotTrack\",\n \"doScroll\",\n \"doctype\",\n \"document\",\n \"documentElement\",\n \"documentMode\",\n \"documentURI\",\n \"dolphin\",\n \"dolphinGameCenter\",\n \"dolphininfo\",\n \"dolphinmeta\",\n \"domComplete\",\n \"domContentLoadedEventEnd\",\n \"domContentLoadedEventStart\",\n \"domInteractive\",\n \"domLoading\",\n \"domOverlayState\",\n \"domain\",\n \"domainLookupEnd\",\n \"domainLookupStart\",\n \"dominant-baseline\",\n \"dominantBaseline\",\n \"done\",\n \"dopplerFactor\",\n \"dotAll\",\n \"downDegrees\",\n \"downlink\",\n \"download\",\n \"downloadTotal\",\n \"downloaded\",\n \"dpcm\",\n \"dpi\",\n \"dppx\",\n \"dragDrop\",\n \"draggable\",\n \"draw\",\n \"drawArrays\",\n \"drawArraysInstanced\",\n \"drawArraysInstancedANGLE\",\n \"drawBuffers\",\n \"drawCustomFocusRing\",\n \"drawElements\",\n \"drawElementsInstanced\",\n \"drawElementsInstancedANGLE\",\n \"drawFocusIfNeeded\",\n \"drawImage\",\n \"drawImageFromRect\",\n \"drawIndexed\",\n \"drawIndexedIndirect\",\n \"drawIndirect\",\n \"drawRangeElements\",\n \"drawSystemFocusRing\",\n \"drawingBufferHeight\",\n \"drawingBufferWidth\",\n \"dropEffect\",\n \"droppedVideoFrames\",\n \"dropzone\",\n \"dstFactor\",\n \"dtmf\",\n \"dump\",\n \"dumpProfile\",\n \"duplicate\",\n \"durability\",\n \"duration\",\n \"dvname\",\n \"dvnum\",\n \"dx\",\n \"dy\",\n \"dynsrc\",\n \"e\",\n \"edgeMode\",\n \"effect\",\n \"effectAllowed\",\n \"effectiveDirective\",\n \"effectiveType\",\n \"elapsedTime\",\n \"element\",\n \"elementFromPoint\",\n \"elementTiming\",\n \"elements\",\n \"elementsFromPoint\",\n \"elevation\",\n \"ellipse\",\n \"em\",\n \"email\",\n \"embeds\",\n \"emma\",\n \"empty\",\n \"empty-cells\",\n \"emptyCells\",\n \"emptyHTML\",\n \"emptyScript\",\n \"emulatedPosition\",\n \"enable\",\n \"enableBackground\",\n \"enableDelegations\",\n \"enableStyleSheetsForSet\",\n \"enableVertexAttribArray\",\n \"enabled\",\n \"enabledPlugin\",\n \"encode\",\n \"encodeInto\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"encodedBodySize\",\n \"encoding\",\n \"encodingInfo\",\n \"encrypt\",\n \"enctype\",\n \"end\",\n \"endContainer\",\n \"endElement\",\n \"endElementAt\",\n \"endOcclusionQuery\",\n \"endOfPassWriteIndex\",\n \"endOfStream\",\n \"endOffset\",\n \"endQuery\",\n \"endTime\",\n \"endTransformFeedback\",\n \"ended\",\n \"endpoint\",\n \"endpointNumber\",\n \"endpoints\",\n \"endsWith\",\n \"enterKeyHint\",\n \"entities\",\n \"entries\",\n \"entryPoint\",\n \"entryType\",\n \"enumerable\",\n \"enumerate\",\n \"enumerateDevices\",\n \"enumerateEditable\",\n \"environmentBlendMode\",\n \"equals\",\n \"error\",\n \"errorCode\",\n \"errorDetail\",\n \"errorText\",\n \"escape\",\n \"estimate\",\n \"eval\",\n \"evaluate\",\n \"event\",\n \"eventPhase\",\n \"every\",\n \"ex\",\n \"exception\",\n \"exchange\",\n \"exec\",\n \"execCommand\",\n \"execCommandShowHelp\",\n \"execScript\",\n \"executeBundles\",\n \"exitFullscreen\",\n \"exitPictureInPicture\",\n \"exitPointerLock\",\n \"exitPresent\",\n \"exp\",\n \"expand\",\n \"expandEntityReferences\",\n \"expando\",\n \"expansion\",\n \"expiration\",\n \"expirationTime\",\n \"expires\",\n \"expiryDate\",\n \"explicitOriginalTarget\",\n \"expm1\",\n \"exponent\",\n \"exponentialRampToValueAtTime\",\n \"exportKey\",\n \"exports\",\n \"extend\",\n \"extensions\",\n \"extentNode\",\n \"extentOffset\",\n \"external\",\n \"externalResourcesRequired\",\n \"externalTexture\",\n \"extractContents\",\n \"extractable\",\n \"eye\",\n \"f\",\n \"face\",\n \"factoryReset\",\n \"failOp\",\n \"failureReason\",\n \"fallback\",\n \"family\",\n \"familyName\",\n \"farthestViewportElement\",\n \"fastSeek\",\n \"fatal\",\n \"featureId\",\n \"featurePolicy\",\n \"featureSettings\",\n \"features\",\n \"fenceSync\",\n \"fetch\",\n \"fetchStart\",\n \"fftSize\",\n \"fgColor\",\n \"fieldOfView\",\n \"file\",\n \"fileCreatedDate\",\n \"fileHandle\",\n \"fileModifiedDate\",\n \"fileName\",\n \"fileSize\",\n \"fileUpdatedDate\",\n \"filename\",\n \"files\",\n \"filesystem\",\n \"fill\",\n \"fill-opacity\",\n \"fill-rule\",\n \"fillLightMode\",\n \"fillOpacity\",\n \"fillRect\",\n \"fillRule\",\n \"fillStyle\",\n \"fillText\",\n \"filter\",\n \"filterResX\",\n \"filterResY\",\n \"filterUnits\",\n \"filters\",\n \"finally\",\n \"find\",\n \"findIndex\",\n \"findRule\",\n \"findText\",\n \"finish\",\n \"finished\",\n \"fireEvent\",\n \"firesTouchEvents\",\n \"firstChild\",\n \"firstElementChild\",\n \"firstPage\",\n \"fixed\",\n \"flags\",\n \"flat\",\n \"flatMap\",\n \"flex\",\n \"flex-basis\",\n \"flex-direction\",\n \"flex-flow\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"flexBasis\",\n \"flexDirection\",\n \"flexFlow\",\n \"flexGrow\",\n \"flexShrink\",\n \"flexWrap\",\n \"flipX\",\n \"flipY\",\n \"float\",\n \"float32\",\n \"float64\",\n \"flood-color\",\n \"flood-opacity\",\n \"floodColor\",\n \"floodOpacity\",\n \"floor\",\n \"flush\",\n \"focus\",\n \"focusNode\",\n \"focusOffset\",\n \"font\",\n \"font-family\",\n \"font-feature-settings\",\n \"font-kerning\",\n \"font-language-override\",\n \"font-optical-sizing\",\n \"font-size\",\n \"font-size-adjust\",\n \"font-stretch\",\n \"font-style\",\n \"font-synthesis\",\n \"font-variant\",\n \"font-variant-alternates\",\n \"font-variant-caps\",\n \"font-variant-east-asian\",\n \"font-variant-ligatures\",\n \"font-variant-numeric\",\n \"font-variant-position\",\n \"font-variation-settings\",\n \"font-weight\",\n \"fontFamily\",\n \"fontFeatureSettings\",\n \"fontKerning\",\n \"fontLanguageOverride\",\n \"fontOpticalSizing\",\n \"fontSize\",\n \"fontSizeAdjust\",\n \"fontSmoothingEnabled\",\n \"fontStretch\",\n \"fontStyle\",\n \"fontSynthesis\",\n \"fontVariant\",\n \"fontVariantAlternates\",\n \"fontVariantCaps\",\n \"fontVariantEastAsian\",\n \"fontVariantLigatures\",\n \"fontVariantNumeric\",\n \"fontVariantPosition\",\n \"fontVariationSettings\",\n \"fontWeight\",\n \"fontcolor\",\n \"fontfaces\",\n \"fonts\",\n \"fontsize\",\n \"for\",\n \"forEach\",\n \"force\",\n \"forceFallbackAdapter\",\n \"forceRedraw\",\n \"form\",\n \"formAction\",\n \"formData\",\n \"formEnctype\",\n \"formMethod\",\n \"formNoValidate\",\n \"formTarget\",\n \"format\",\n \"formatToParts\",\n \"forms\",\n \"forward\",\n \"forwardX\",\n \"forwardY\",\n \"forwardZ\",\n \"foundation\",\n \"fr\",\n \"fragment\",\n \"fragmentDirective\",\n \"frame\",\n \"frameBorder\",\n \"frameElement\",\n \"frameSpacing\",\n \"framebuffer\",\n \"framebufferHeight\",\n \"framebufferRenderbuffer\",\n \"framebufferTexture2D\",\n \"framebufferTextureLayer\",\n \"framebufferWidth\",\n \"frames\",\n \"freeSpace\",\n \"freeze\",\n \"frequency\",\n \"frequencyBinCount\",\n \"from\",\n \"fromCharCode\",\n \"fromCodePoint\",\n \"fromElement\",\n \"fromEntries\",\n \"fromFloat32Array\",\n \"fromFloat64Array\",\n \"fromMatrix\",\n \"fromPoint\",\n \"fromQuad\",\n \"fromRect\",\n \"frontFace\",\n \"fround\",\n \"fullPath\",\n \"fullScreen\",\n \"fullVersionList\",\n \"fullscreen\",\n \"fullscreenElement\",\n \"fullscreenEnabled\",\n \"fx\",\n \"fy\",\n \"g\",\n \"gain\",\n \"gamepad\",\n \"gamma\",\n \"gap\",\n \"gatheringState\",\n \"gatt\",\n \"genderIdentity\",\n \"generateCertificate\",\n \"generateKey\",\n \"generateMipmap\",\n \"generateRequest\",\n \"geolocation\",\n \"gestureObject\",\n \"get\",\n \"getActiveAttrib\",\n \"getActiveUniform\",\n \"getActiveUniformBlockName\",\n \"getActiveUniformBlockParameter\",\n \"getActiveUniforms\",\n \"getAdjacentText\",\n \"getAll\",\n \"getAllKeys\",\n \"getAllResponseHeaders\",\n \"getAllowlistForFeature\",\n \"getAnimations\",\n \"getAsFile\",\n \"getAsString\",\n \"getAttachedShaders\",\n \"getAttribLocation\",\n \"getAttribute\",\n \"getAttributeNS\",\n \"getAttributeNames\",\n \"getAttributeNode\",\n \"getAttributeNodeNS\",\n \"getAttributeType\",\n \"getAudioTracks\",\n \"getAvailability\",\n \"getBBox\",\n \"getBattery\",\n \"getBigInt64\",\n \"getBigUint64\",\n \"getBindGroupLayout\",\n \"getBlob\",\n \"getBookmark\",\n \"getBoundingClientRect\",\n \"getBounds\",\n \"getBoxQuads\",\n \"getBufferParameter\",\n \"getBufferSubData\",\n \"getByteFrequencyData\",\n \"getByteTimeDomainData\",\n \"getCSSCanvasContext\",\n \"getCTM\",\n \"getCandidateWindowClientRect\",\n \"getCanonicalLocales\",\n \"getCapabilities\",\n \"getChannelData\",\n \"getCharNumAtPosition\",\n \"getCharacteristic\",\n \"getCharacteristics\",\n \"getClientExtensionResults\",\n \"getClientRect\",\n \"getClientRects\",\n \"getCoalescedEvents\",\n \"getCompilationInfo\",\n \"getCompositionAlternatives\",\n \"getComputedStyle\",\n \"getComputedTextLength\",\n \"getComputedTiming\",\n \"getConfiguration\",\n \"getConstraints\",\n \"getContext\",\n \"getContextAttributes\",\n \"getContributingSources\",\n \"getCounterValue\",\n \"getCueAsHTML\",\n \"getCueById\",\n \"getCurrentPosition\",\n \"getCurrentTexture\",\n \"getCurrentTime\",\n \"getData\",\n \"getDatabaseNames\",\n \"getDate\",\n \"getDay\",\n \"getDefaultComputedStyle\",\n \"getDescriptor\",\n \"getDescriptors\",\n \"getDestinationInsertionPoints\",\n \"getDevices\",\n \"getDirectory\",\n \"getDisplayMedia\",\n \"getDistributedNodes\",\n \"getEditable\",\n \"getElementById\",\n \"getElementsByClassName\",\n \"getElementsByName\",\n \"getElementsByTagName\",\n \"getElementsByTagNameNS\",\n \"getEnclosureList\",\n \"getEndPositionOfChar\",\n \"getEntries\",\n \"getEntriesByName\",\n \"getEntriesByType\",\n \"getError\",\n \"getExtension\",\n \"getExtentOfChar\",\n \"getEyeParameters\",\n \"getFeature\",\n \"getFile\",\n \"getFiles\",\n \"getFilesAndDirectories\",\n \"getFingerprints\",\n \"getFloat32\",\n \"getFloat64\",\n \"getFloatFrequencyData\",\n \"getFloatTimeDomainData\",\n \"getFloatValue\",\n \"getFragDataLocation\",\n \"getFrameData\",\n \"getFramebufferAttachmentParameter\",\n \"getFrequencyResponse\",\n \"getFullYear\",\n \"getGamepads\",\n \"getHighEntropyValues\",\n \"getHitTestResults\",\n \"getHitTestResultsForTransientInput\",\n \"getHours\",\n \"getIdentityAssertion\",\n \"getIds\",\n \"getImageData\",\n \"getIndexedParameter\",\n \"getInstalledRelatedApps\",\n \"getInt16\",\n \"getInt32\",\n \"getInt8\",\n \"getInternalformatParameter\",\n \"getIntersectionList\",\n \"getItem\",\n \"getItems\",\n \"getKey\",\n \"getKeyframes\",\n \"getLayers\",\n \"getLayoutMap\",\n \"getLineDash\",\n \"getLocalCandidates\",\n \"getLocalParameters\",\n \"getLocalStreams\",\n \"getMappedRange\",\n \"getMarks\",\n \"getMatchedCSSRules\",\n \"getMaxGCPauseSinceClear\",\n \"getMeasures\",\n \"getMetadata\",\n \"getMilliseconds\",\n \"getMinutes\",\n \"getModifierState\",\n \"getMonth\",\n \"getNamedItem\",\n \"getNamedItemNS\",\n \"getNativeFramebufferScaleFactor\",\n \"getNotifications\",\n \"getNotifier\",\n \"getNumberOfChars\",\n \"getOffsetReferenceSpace\",\n \"getOutputTimestamp\",\n \"getOverrideHistoryNavigationMode\",\n \"getOverrideStyle\",\n \"getOwnPropertyDescriptor\",\n \"getOwnPropertyDescriptors\",\n \"getOwnPropertyNames\",\n \"getOwnPropertySymbols\",\n \"getParameter\",\n \"getParameters\",\n \"getParent\",\n \"getPathSegAtLength\",\n \"getPhotoCapabilities\",\n \"getPhotoSettings\",\n \"getPointAtLength\",\n \"getPose\",\n \"getPredictedEvents\",\n \"getPreference\",\n \"getPreferenceDefault\",\n \"getPreferredCanvasFormat\",\n \"getPresentationAttribute\",\n \"getPreventDefault\",\n \"getPrimaryService\",\n \"getPrimaryServices\",\n \"getProgramInfoLog\",\n \"getProgramParameter\",\n \"getPropertyCSSValue\",\n \"getPropertyPriority\",\n \"getPropertyShorthand\",\n \"getPropertyType\",\n \"getPropertyValue\",\n \"getPrototypeOf\",\n \"getQuery\",\n \"getQueryParameter\",\n \"getRGBColorValue\",\n \"getRandomValues\",\n \"getRangeAt\",\n \"getReader\",\n \"getReceivers\",\n \"getRectValue\",\n \"getRegistration\",\n \"getRegistrations\",\n \"getRemoteCandidates\",\n \"getRemoteCertificates\",\n \"getRemoteParameters\",\n \"getRemoteStreams\",\n \"getRenderbufferParameter\",\n \"getResponseHeader\",\n \"getRoot\",\n \"getRootNode\",\n \"getRotationOfChar\",\n \"getSVGDocument\",\n \"getSamplerParameter\",\n \"getScreenCTM\",\n \"getSeconds\",\n \"getSelectedCandidatePair\",\n \"getSelection\",\n \"getSenders\",\n \"getService\",\n \"getSettings\",\n \"getShaderInfoLog\",\n \"getShaderParameter\",\n \"getShaderPrecisionFormat\",\n \"getShaderSource\",\n \"getSimpleDuration\",\n \"getSiteIcons\",\n \"getSources\",\n \"getSpeculativeParserUrls\",\n \"getStartPositionOfChar\",\n \"getStartTime\",\n \"getState\",\n \"getStats\",\n \"getStatusForPolicy\",\n \"getStorageUpdates\",\n \"getStreamById\",\n \"getStringValue\",\n \"getSubStringLength\",\n \"getSubscription\",\n \"getSupportedConstraints\",\n \"getSupportedExtensions\",\n \"getSupportedFormats\",\n \"getSyncParameter\",\n \"getSynchronizationSources\",\n \"getTags\",\n \"getTargetRanges\",\n \"getTexParameter\",\n \"getTime\",\n \"getTimezoneOffset\",\n \"getTiming\",\n \"getTotalLength\",\n \"getTrackById\",\n \"getTracks\",\n \"getTransceivers\",\n \"getTransform\",\n \"getTransformFeedbackVarying\",\n \"getTransformToElement\",\n \"getTransports\",\n \"getType\",\n \"getTypeMapping\",\n \"getUTCDate\",\n \"getUTCDay\",\n \"getUTCFullYear\",\n \"getUTCHours\",\n \"getUTCMilliseconds\",\n \"getUTCMinutes\",\n \"getUTCMonth\",\n \"getUTCSeconds\",\n \"getUint16\",\n \"getUint32\",\n \"getUint8\",\n \"getUniform\",\n \"getUniformBlockIndex\",\n \"getUniformIndices\",\n \"getUniformLocation\",\n \"getUserMedia\",\n \"getVRDisplays\",\n \"getValues\",\n \"getVarDate\",\n \"getVariableValue\",\n \"getVertexAttrib\",\n \"getVertexAttribOffset\",\n \"getVideoPlaybackQuality\",\n \"getVideoTracks\",\n \"getViewerPose\",\n \"getViewport\",\n \"getVoices\",\n \"getWakeLockState\",\n \"getWriter\",\n \"getYear\",\n \"givenName\",\n \"global\",\n \"globalAlpha\",\n \"globalCompositeOperation\",\n \"globalThis\",\n \"glyphOrientationHorizontal\",\n \"glyphOrientationVertical\",\n \"glyphRef\",\n \"go\",\n \"gpu\",\n \"grabFrame\",\n \"grad\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"grammars\",\n \"green\",\n \"grid\",\n \"grid-area\",\n \"grid-auto-columns\",\n \"grid-auto-flow\",\n \"grid-auto-rows\",\n \"grid-column\",\n \"grid-column-end\",\n \"grid-column-gap\",\n \"grid-column-start\",\n \"grid-gap\",\n \"grid-row\",\n \"grid-row-end\",\n \"grid-row-gap\",\n \"grid-row-start\",\n \"grid-template\",\n \"grid-template-areas\",\n \"grid-template-columns\",\n \"grid-template-rows\",\n \"gridArea\",\n \"gridAutoColumns\",\n \"gridAutoFlow\",\n \"gridAutoRows\",\n \"gridColumn\",\n \"gridColumnEnd\",\n \"gridColumnGap\",\n \"gridColumnStart\",\n \"gridGap\",\n \"gridRow\",\n \"gridRowEnd\",\n \"gridRowGap\",\n \"gridRowStart\",\n \"gridTemplate\",\n \"gridTemplateAreas\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"gripSpace\",\n \"group\",\n \"groups\",\n \"groupCollapsed\",\n \"groupEnd\",\n \"groupId\",\n \"hadRecentInput\",\n \"hand\",\n \"handedness\",\n \"hapticActuators\",\n \"hardwareConcurrency\",\n \"has\",\n \"hasAttribute\",\n \"hasAttributeNS\",\n \"hasAttributes\",\n \"hasBeenActive\",\n \"hasChildNodes\",\n \"hasComposition\",\n \"hasDynamicOffset\",\n \"hasEnrolledInstrument\",\n \"hasExtension\",\n \"hasExternalDisplay\",\n \"hasFeature\",\n \"hasFocus\",\n \"hasInstance\",\n \"hasLayout\",\n \"hasOrientation\",\n \"hasOwnProperty\",\n \"hasPointerCapture\",\n \"hasPosition\",\n \"hasReading\",\n \"hasStorageAccess\",\n \"hash\",\n \"head\",\n \"headers\",\n \"heading\",\n \"height\",\n \"hidden\",\n \"hide\",\n \"hideFocus\",\n \"high\",\n \"highWaterMark\",\n \"hint\",\n \"hints\",\n \"history\",\n \"honorificPrefix\",\n \"honorificSuffix\",\n \"horizontalOverflow\",\n \"host\",\n \"hostCandidate\",\n \"hostname\",\n \"href\",\n \"hrefTranslate\",\n \"hreflang\",\n \"hspace\",\n \"html5TagCheckInerface\",\n \"htmlFor\",\n \"htmlText\",\n \"httpEquiv\",\n \"httpRequestStatusCode\",\n \"hwTimestamp\",\n \"hyphens\",\n \"hypot\",\n \"iccId\",\n \"iceConnectionState\",\n \"iceGatheringState\",\n \"iceTransport\",\n \"icon\",\n \"iconURL\",\n \"id\",\n \"identifier\",\n \"identity\",\n \"idpLoginUrl\",\n \"ignoreBOM\",\n \"ignoreCase\",\n \"ignoreDepthValues\",\n \"image-orientation\",\n \"image-rendering\",\n \"imageHeight\",\n \"imageOrientation\",\n \"imageRendering\",\n \"imageSizes\",\n \"imageSmoothingEnabled\",\n \"imageSmoothingQuality\",\n \"imageSrcset\",\n \"imageWidth\",\n \"images\",\n \"ime-mode\",\n \"imeMode\",\n \"implementation\",\n \"importExternalTexture\",\n \"importKey\",\n \"importNode\",\n \"importStylesheet\",\n \"imports\",\n \"impp\",\n \"imul\",\n \"in\",\n \"in1\",\n \"in2\",\n \"inBandMetadataTrackDispatchType\",\n \"inRange\",\n \"includes\",\n \"incremental\",\n \"indeterminate\",\n \"index\",\n \"indexNames\",\n \"indexOf\",\n \"indexedDB\",\n \"indicate\",\n \"indices\",\n \"inert\",\n \"inertiaDestinationX\",\n \"inertiaDestinationY\",\n \"info\",\n \"init\",\n \"initAnimationEvent\",\n \"initBeforeLoadEvent\",\n \"initClipboardEvent\",\n \"initCloseEvent\",\n \"initCommandEvent\",\n \"initCompositionEvent\",\n \"initCustomEvent\",\n \"initData\",\n \"initDataType\",\n \"initDeviceMotionEvent\",\n \"initDeviceOrientationEvent\",\n \"initDragEvent\",\n \"initErrorEvent\",\n \"initEvent\",\n \"initFocusEvent\",\n \"initGestureEvent\",\n \"initHashChangeEvent\",\n \"initKeyEvent\",\n \"initKeyboardEvent\",\n \"initMSManipulationEvent\",\n \"initMessageEvent\",\n \"initMouseEvent\",\n \"initMouseScrollEvent\",\n \"initMouseWheelEvent\",\n \"initMutationEvent\",\n \"initNSMouseEvent\",\n \"initOverflowEvent\",\n \"initPageEvent\",\n \"initPageTransitionEvent\",\n \"initPointerEvent\",\n \"initPopStateEvent\",\n \"initProgressEvent\",\n \"initScrollAreaEvent\",\n \"initSimpleGestureEvent\",\n \"initStorageEvent\",\n \"initTextEvent\",\n \"initTimeEvent\",\n \"initTouchEvent\",\n \"initTransitionEvent\",\n \"initUIEvent\",\n \"initWebKitAnimationEvent\",\n \"initWebKitTransitionEvent\",\n \"initWebKitWheelEvent\",\n \"initWheelEvent\",\n \"initialTime\",\n \"initialize\",\n \"initiatorType\",\n \"inline-size\",\n \"inlineSize\",\n \"inlineVerticalFieldOfView\",\n \"inner\",\n \"innerHTML\",\n \"innerHeight\",\n \"innerText\",\n \"innerWidth\",\n \"input\",\n \"inputBuffer\",\n \"inputEncoding\",\n \"inputMethod\",\n \"inputMode\",\n \"inputSource\",\n \"inputSources\",\n \"inputType\",\n \"inputs\",\n \"insertAdjacentElement\",\n \"insertAdjacentHTML\",\n \"insertAdjacentText\",\n \"insertBefore\",\n \"insertCell\",\n \"insertDTMF\",\n \"insertData\",\n \"insertDebugMarker\",\n \"insertItemBefore\",\n \"insertNode\",\n \"insertRow\",\n \"insertRule\",\n \"inset\",\n \"inset-block\",\n \"inset-block-end\",\n \"inset-block-start\",\n \"inset-inline\",\n \"inset-inline-end\",\n \"inset-inline-start\",\n \"insetBlock\",\n \"insetBlockEnd\",\n \"insetBlockStart\",\n \"insetInline\",\n \"insetInlineEnd\",\n \"insetInlineStart\",\n \"installing\",\n \"instanceRoot\",\n \"instantiate\",\n \"instantiateStreaming\",\n \"instruments\",\n \"int16\",\n \"int32\",\n \"int8\",\n \"integrity\",\n \"interactionMode\",\n \"intercept\",\n \"interfaceClass\",\n \"interfaceName\",\n \"interfaceNumber\",\n \"interfaceProtocol\",\n \"interfaceSubclass\",\n \"interfaces\",\n \"interimResults\",\n \"internalSubset\",\n \"interpretation\",\n \"intersectionRatio\",\n \"intersectionRect\",\n \"intersectsNode\",\n \"interval\",\n \"invalidIteratorState\",\n \"invalidateFramebuffer\",\n \"invalidateSubFramebuffer\",\n \"inverse\",\n \"invertSelf\",\n \"is\",\n \"is2D\",\n \"isActive\",\n \"isAlternate\",\n \"isArray\",\n \"isBingCurrentSearchDefault\",\n \"isBuffer\",\n \"isCandidateWindowVisible\",\n \"isChar\",\n \"isCollapsed\",\n \"isComposing\",\n \"isConcatSpreadable\",\n \"isConnected\",\n \"isContentEditable\",\n \"isContentHandlerRegistered\",\n \"isContextLost\",\n \"isDefaultNamespace\",\n \"isDirectory\",\n \"isDisabled\",\n \"isEnabled\",\n \"isEqual\",\n \"isEqualNode\",\n \"isExtensible\",\n \"isExternalCTAP2SecurityKeySupported\",\n \"isFallbackAdapter\",\n \"isFile\",\n \"isFinite\",\n \"isFramebuffer\",\n \"isFrozen\",\n \"isGenerator\",\n \"isHTML\",\n \"isHistoryNavigation\",\n \"isId\",\n \"isIdentity\",\n \"isInjected\",\n \"isInteger\",\n \"isIntersecting\",\n \"isLockFree\",\n \"isMap\",\n \"isMultiLine\",\n \"isNaN\",\n \"isOpen\",\n \"isPointInFill\",\n \"isPointInPath\",\n \"isPointInRange\",\n \"isPointInStroke\",\n \"isPrefAlternate\",\n \"isPresenting\",\n \"isPrimary\",\n \"isProgram\",\n \"isPropertyImplicit\",\n \"isProtocolHandlerRegistered\",\n \"isPrototypeOf\",\n \"isQuery\",\n \"isRenderbuffer\",\n \"isSafeInteger\",\n \"isSameNode\",\n \"isSampler\",\n \"isScript\",\n \"isScriptURL\",\n \"isSealed\",\n \"isSecureContext\",\n \"isSessionSupported\",\n \"isShader\",\n \"isSupported\",\n \"isSync\",\n \"isTextEdit\",\n \"isTexture\",\n \"isTransformFeedback\",\n \"isTrusted\",\n \"isTypeSupported\",\n \"isUserVerifyingPlatformAuthenticatorAvailable\",\n \"isVertexArray\",\n \"isView\",\n \"isVisible\",\n \"isochronousTransferIn\",\n \"isochronousTransferOut\",\n \"isolation\",\n \"italics\",\n \"item\",\n \"itemId\",\n \"itemProp\",\n \"itemRef\",\n \"itemScope\",\n \"itemType\",\n \"itemValue\",\n \"items\",\n \"iterateNext\",\n \"iterationComposite\",\n \"iterator\",\n \"javaEnabled\",\n \"jobTitle\",\n \"join\",\n \"json\",\n \"justify-content\",\n \"justify-items\",\n \"justify-self\",\n \"justifyContent\",\n \"justifyItems\",\n \"justifySelf\",\n \"k1\",\n \"k2\",\n \"k3\",\n \"k4\",\n \"kHz\",\n \"keepalive\",\n \"kernelMatrix\",\n \"kernelUnitLengthX\",\n \"kernelUnitLengthY\",\n \"kerning\",\n \"key\",\n \"keyCode\",\n \"keyFor\",\n \"keyIdentifier\",\n \"keyLightEnabled\",\n \"keyLocation\",\n \"keyPath\",\n \"keyStatuses\",\n \"keySystem\",\n \"keyText\",\n \"keyUsage\",\n \"keyboard\",\n \"keys\",\n \"keytype\",\n \"kind\",\n \"knee\",\n \"label\",\n \"labels\",\n \"lang\",\n \"language\",\n \"languages\",\n \"largeArcFlag\",\n \"lastChild\",\n \"lastElementChild\",\n \"lastEventId\",\n \"lastIndex\",\n \"lastIndexOf\",\n \"lastInputTime\",\n \"lastMatch\",\n \"lastMessageSubject\",\n \"lastMessageType\",\n \"lastModified\",\n \"lastModifiedDate\",\n \"lastPage\",\n \"lastParen\",\n \"lastState\",\n \"lastStyleSheetSet\",\n \"latitude\",\n \"layerX\",\n \"layerY\",\n \"layout\",\n \"layoutFlow\",\n \"layoutGrid\",\n \"layoutGridChar\",\n \"layoutGridLine\",\n \"layoutGridMode\",\n \"layoutGridType\",\n \"lbound\",\n \"left\",\n \"leftContext\",\n \"leftDegrees\",\n \"leftMargin\",\n \"leftProjectionMatrix\",\n \"leftViewMatrix\",\n \"length\",\n \"lengthAdjust\",\n \"lengthComputable\",\n \"letter-spacing\",\n \"letterSpacing\",\n \"level\",\n \"lighting-color\",\n \"lightingColor\",\n \"limitingConeAngle\",\n \"limits\",\n \"line\",\n \"line-break\",\n \"line-height\",\n \"lineAlign\",\n \"lineBreak\",\n \"lineCap\",\n \"lineDashOffset\",\n \"lineHeight\",\n \"lineJoin\",\n \"lineNum\",\n \"lineNumber\",\n \"linePos\",\n \"lineTo\",\n \"lineWidth\",\n \"linearAcceleration\",\n \"linearRampToValueAtTime\",\n \"linearVelocity\",\n \"lineno\",\n \"lines\",\n \"link\",\n \"linkColor\",\n \"linkProgram\",\n \"links\",\n \"list\",\n \"list-style\",\n \"list-style-image\",\n \"list-style-position\",\n \"list-style-type\",\n \"listStyle\",\n \"listStyleImage\",\n \"listStylePosition\",\n \"listStyleType\",\n \"listener\",\n \"load\",\n \"loadEventEnd\",\n \"loadEventStart\",\n \"loadOp\",\n \"loadTime\",\n \"loadTimes\",\n \"loaded\",\n \"loading\",\n \"localDescription\",\n \"localName\",\n \"localService\",\n \"localStorage\",\n \"locale\",\n \"localeCompare\",\n \"location\",\n \"locationbar\",\n \"lock\",\n \"locked\",\n \"lockedFile\",\n \"locks\",\n \"lodMaxClamp\",\n \"lodMinClamp\",\n \"log\",\n \"log10\",\n \"log1p\",\n \"log2\",\n \"logicalXDPI\",\n \"logicalYDPI\",\n \"longDesc\",\n \"longitude\",\n \"lookupNamespaceURI\",\n \"lookupPrefix\",\n \"loop\",\n \"loopEnd\",\n \"loopStart\",\n \"looping\",\n \"lost\",\n \"low\",\n \"lower\",\n \"lowerBound\",\n \"lowerOpen\",\n \"lowsrc\",\n \"m11\",\n \"m12\",\n \"m13\",\n \"m14\",\n \"m21\",\n \"m22\",\n \"m23\",\n \"m24\",\n \"m31\",\n \"m32\",\n \"m33\",\n \"m34\",\n \"m41\",\n \"m42\",\n \"m43\",\n \"m44\",\n \"magFilter\",\n \"makeXRCompatible\",\n \"manifest\",\n \"manufacturer\",\n \"manufacturerName\",\n \"map\",\n \"mapAsync\",\n \"mapState\",\n \"mappedAtCreation\",\n \"mapping\",\n \"margin\",\n \"margin-block\",\n \"margin-block-end\",\n \"margin-block-start\",\n \"margin-bottom\",\n \"margin-inline\",\n \"margin-inline-end\",\n \"margin-inline-start\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"marginBlock\",\n \"marginBlockEnd\",\n \"marginBlockStart\",\n \"marginBottom\",\n \"marginHeight\",\n \"marginInline\",\n \"marginInlineEnd\",\n \"marginInlineStart\",\n \"marginLeft\",\n \"marginRight\",\n \"marginTop\",\n \"marginWidth\",\n \"mark\",\n \"marker\",\n \"marker-end\",\n \"marker-mid\",\n \"marker-offset\",\n \"marker-start\",\n \"markerEnd\",\n \"markerHeight\",\n \"markerMid\",\n \"markerOffset\",\n \"markerStart\",\n \"markerUnits\",\n \"markerWidth\",\n \"marks\",\n \"mask\",\n \"mask-clip\",\n \"mask-composite\",\n \"mask-image\",\n \"mask-mode\",\n \"mask-origin\",\n \"mask-position\",\n \"mask-position-x\",\n \"mask-position-y\",\n \"mask-repeat\",\n \"mask-size\",\n \"mask-type\",\n \"maskClip\",\n \"maskComposite\",\n \"maskContentUnits\",\n \"maskImage\",\n \"maskMode\",\n \"maskOrigin\",\n \"maskPosition\",\n \"maskPositionX\",\n \"maskPositionY\",\n \"maskRepeat\",\n \"maskSize\",\n \"maskType\",\n \"maskUnits\",\n \"match\",\n \"matchAll\",\n \"matchMedia\",\n \"matchMedium\",\n \"matches\",\n \"matrix\",\n \"matrixTransform\",\n \"max\",\n \"max-block-size\",\n \"max-height\",\n \"max-inline-size\",\n \"max-width\",\n \"maxActions\",\n \"maxAlternatives\",\n \"maxAnisotropy\",\n \"maxBindGroups\",\n \"maxBindGroupsPlusVertexBuffers\",\n \"maxBindingsPerBindGroup\",\n \"maxBlockSize\",\n \"maxBufferSize\",\n \"maxChannelCount\",\n \"maxChannels\",\n \"maxColorAttachmentBytesPerSample\",\n \"maxColorAttachments\",\n \"maxComputeInvocationsPerWorkgroup\",\n \"maxComputeWorkgroupSizeX\",\n \"maxComputeWorkgroupSizeY\",\n \"maxComputeWorkgroupSizeZ\",\n \"maxComputeWorkgroupStorageSize\",\n \"maxComputeWorkgroupsPerDimension\",\n \"maxConnectionsPerServer\",\n \"maxDecibels\",\n \"maxDistance\",\n \"maxDrawCount\",\n \"maxDynamicStorageBuffersPerPipelineLayout\",\n \"maxDynamicUniformBuffersPerPipelineLayout\",\n \"maxHeight\",\n \"maxInlineSize\",\n \"maxInterStageShaderComponents\",\n \"maxInterStageShaderVariables\",\n \"maxLayers\",\n \"maxLength\",\n \"maxMessageSize\",\n \"maxPacketLifeTime\",\n \"maxRetransmits\",\n \"maxSampledTexturesPerShaderStage\",\n \"maxSamplersPerShaderStage\",\n \"maxStorageBufferBindingSize\",\n \"maxStorageBuffersPerShaderStage\",\n \"maxStorageTexturesPerShaderStage\",\n \"maxTextureArrayLayers\",\n \"maxTextureDimension1D\",\n \"maxTextureDimension2D\",\n \"maxTextureDimension3D\",\n \"maxTouchPoints\",\n \"maxUniformBufferBindingSize\",\n \"maxUniformBuffersPerShaderStage\",\n \"maxValue\",\n \"maxVertexAttributes\",\n \"maxVertexBufferArrayStride\",\n \"maxVertexBuffers\",\n \"maxWidth\",\n \"measure\",\n \"measureText\",\n \"media\",\n \"mediaCapabilities\",\n \"mediaDevices\",\n \"mediaElement\",\n \"mediaGroup\",\n \"mediaKeys\",\n \"mediaSession\",\n \"mediaStream\",\n \"mediaText\",\n \"meetOrSlice\",\n \"memory\",\n \"menubar\",\n \"mergeAttributes\",\n \"message\",\n \"messageClass\",\n \"messageHandlers\",\n \"messageType\",\n \"messages\",\n \"metaKey\",\n \"metadata\",\n \"method\",\n \"methodDetails\",\n \"methodName\",\n \"mid\",\n \"mimeType\",\n \"mimeTypes\",\n \"min\",\n \"min-block-size\",\n \"min-height\",\n \"min-inline-size\",\n \"min-width\",\n \"minBindingSize\",\n \"minBlockSize\",\n \"minDecibels\",\n \"minFilter\",\n \"minHeight\",\n \"minInlineSize\",\n \"minLength\",\n \"minStorageBufferOffsetAlignment\",\n \"minUniformBufferOffsetAlignment\",\n \"minValue\",\n \"minWidth\",\n \"mipLevel\",\n \"mipLevelCount\",\n \"mipmapFilter\",\n \"miterLimit\",\n \"mix-blend-mode\",\n \"mixBlendMode\",\n \"mm\",\n \"mobile\",\n \"mode\",\n \"model\",\n \"modify\",\n \"module\",\n \"mount\",\n \"move\",\n \"moveBy\",\n \"moveEnd\",\n \"moveFirst\",\n \"moveFocusDown\",\n \"moveFocusLeft\",\n \"moveFocusRight\",\n \"moveFocusUp\",\n \"moveNext\",\n \"moveRow\",\n \"moveStart\",\n \"moveTo\",\n \"moveToBookmark\",\n \"moveToElementText\",\n \"moveToPoint\",\n \"movementX\",\n \"movementY\",\n \"mozAdd\",\n \"mozAnimationStartTime\",\n \"mozAnon\",\n \"mozApps\",\n \"mozAudioCaptured\",\n \"mozAudioChannelType\",\n \"mozAutoplayEnabled\",\n \"mozCancelAnimationFrame\",\n \"mozCancelFullScreen\",\n \"mozCancelRequestAnimationFrame\",\n \"mozCaptureStream\",\n \"mozCaptureStreamUntilEnded\",\n \"mozClearDataAt\",\n \"mozContact\",\n \"mozContacts\",\n \"mozCreateFileHandle\",\n \"mozCurrentTransform\",\n \"mozCurrentTransformInverse\",\n \"mozCursor\",\n \"mozDash\",\n \"mozDashOffset\",\n \"mozDecodedFrames\",\n \"mozExitPointerLock\",\n \"mozFillRule\",\n \"mozFragmentEnd\",\n \"mozFrameDelay\",\n \"mozFullScreen\",\n \"mozFullScreenElement\",\n \"mozFullScreenEnabled\",\n \"mozGetAll\",\n \"mozGetAllKeys\",\n \"mozGetAsFile\",\n \"mozGetDataAt\",\n \"mozGetMetadata\",\n \"mozGetUserMedia\",\n \"mozHasAudio\",\n \"mozHasItem\",\n \"mozHidden\",\n \"mozImageSmoothingEnabled\",\n \"mozIndexedDB\",\n \"mozInnerScreenX\",\n \"mozInnerScreenY\",\n \"mozInputSource\",\n \"mozIsTextField\",\n \"mozItem\",\n \"mozItemCount\",\n \"mozItems\",\n \"mozLength\",\n \"mozLockOrientation\",\n \"mozMatchesSelector\",\n \"mozMovementX\",\n \"mozMovementY\",\n \"mozOpaque\",\n \"mozOrientation\",\n \"mozPaintCount\",\n \"mozPaintedFrames\",\n \"mozParsedFrames\",\n \"mozPay\",\n \"mozPointerLockElement\",\n \"mozPresentedFrames\",\n \"mozPreservesPitch\",\n \"mozPressure\",\n \"mozPrintCallback\",\n \"mozRTCIceCandidate\",\n \"mozRTCPeerConnection\",\n \"mozRTCSessionDescription\",\n \"mozRemove\",\n \"mozRequestAnimationFrame\",\n \"mozRequestFullScreen\",\n \"mozRequestPointerLock\",\n \"mozSetDataAt\",\n \"mozSetImageElement\",\n \"mozSourceNode\",\n \"mozSrcObject\",\n \"mozSystem\",\n \"mozTCPSocket\",\n \"mozTextStyle\",\n \"mozTypesAt\",\n \"mozUnlockOrientation\",\n \"mozUserCancelled\",\n \"mozVisibilityState\",\n \"ms\",\n \"msAnimation\",\n \"msAnimationDelay\",\n \"msAnimationDirection\",\n \"msAnimationDuration\",\n \"msAnimationFillMode\",\n \"msAnimationIterationCount\",\n \"msAnimationName\",\n \"msAnimationPlayState\",\n \"msAnimationStartTime\",\n \"msAnimationTimingFunction\",\n \"msBackfaceVisibility\",\n \"msBlockProgression\",\n \"msCSSOMElementFloatMetrics\",\n \"msCaching\",\n \"msCachingEnabled\",\n \"msCancelRequestAnimationFrame\",\n \"msCapsLockWarningOff\",\n \"msClearImmediate\",\n \"msClose\",\n \"msContentZoomChaining\",\n \"msContentZoomFactor\",\n \"msContentZoomLimit\",\n \"msContentZoomLimitMax\",\n \"msContentZoomLimitMin\",\n \"msContentZoomSnap\",\n \"msContentZoomSnapPoints\",\n \"msContentZoomSnapType\",\n \"msContentZooming\",\n \"msConvertURL\",\n \"msCrypto\",\n \"msDoNotTrack\",\n \"msElementsFromPoint\",\n \"msElementsFromRect\",\n \"msExitFullscreen\",\n \"msExtendedCode\",\n \"msFillRule\",\n \"msFirstPaint\",\n \"msFlex\",\n \"msFlexAlign\",\n \"msFlexDirection\",\n \"msFlexFlow\",\n \"msFlexItemAlign\",\n \"msFlexLinePack\",\n \"msFlexNegative\",\n \"msFlexOrder\",\n \"msFlexPack\",\n \"msFlexPositive\",\n \"msFlexPreferredSize\",\n \"msFlexWrap\",\n \"msFlowFrom\",\n \"msFlowInto\",\n \"msFontFeatureSettings\",\n \"msFullscreenElement\",\n \"msFullscreenEnabled\",\n \"msGetInputContext\",\n \"msGetRegionContent\",\n \"msGetUntransformedBounds\",\n \"msGraphicsTrustStatus\",\n \"msGridColumn\",\n \"msGridColumnAlign\",\n \"msGridColumnSpan\",\n \"msGridColumns\",\n \"msGridRow\",\n \"msGridRowAlign\",\n \"msGridRowSpan\",\n \"msGridRows\",\n \"msHidden\",\n \"msHighContrastAdjust\",\n \"msHyphenateLimitChars\",\n \"msHyphenateLimitLines\",\n \"msHyphenateLimitZone\",\n \"msHyphens\",\n \"msImageSmoothingEnabled\",\n \"msImeAlign\",\n \"msIndexedDB\",\n \"msInterpolationMode\",\n \"msIsStaticHTML\",\n \"msKeySystem\",\n \"msKeys\",\n \"msLaunchUri\",\n \"msLockOrientation\",\n \"msManipulationViewsEnabled\",\n \"msMatchMedia\",\n \"msMatchesSelector\",\n \"msMaxTouchPoints\",\n \"msOrientation\",\n \"msOverflowStyle\",\n \"msPerspective\",\n \"msPerspectiveOrigin\",\n \"msPlayToDisabled\",\n \"msPlayToPreferredSourceUri\",\n \"msPlayToPrimary\",\n \"msPointerEnabled\",\n \"msRegionOverflow\",\n \"msReleasePointerCapture\",\n \"msRequestAnimationFrame\",\n \"msRequestFullscreen\",\n \"msSaveBlob\",\n \"msSaveOrOpenBlob\",\n \"msScrollChaining\",\n \"msScrollLimit\",\n \"msScrollLimitXMax\",\n \"msScrollLimitXMin\",\n \"msScrollLimitYMax\",\n \"msScrollLimitYMin\",\n \"msScrollRails\",\n \"msScrollSnapPointsX\",\n \"msScrollSnapPointsY\",\n \"msScrollSnapType\",\n \"msScrollSnapX\",\n \"msScrollSnapY\",\n \"msScrollTranslation\",\n \"msSetImmediate\",\n \"msSetMediaKeys\",\n \"msSetPointerCapture\",\n \"msTextCombineHorizontal\",\n \"msTextSizeAdjust\",\n \"msToBlob\",\n \"msTouchAction\",\n \"msTouchSelect\",\n \"msTraceAsyncCallbackCompleted\",\n \"msTraceAsyncCallbackStarting\",\n \"msTraceAsyncOperationCompleted\",\n \"msTraceAsyncOperationStarting\",\n \"msTransform\",\n \"msTransformOrigin\",\n \"msTransformStyle\",\n \"msTransition\",\n \"msTransitionDelay\",\n \"msTransitionDuration\",\n \"msTransitionProperty\",\n \"msTransitionTimingFunction\",\n \"msUnlockOrientation\",\n \"msUpdateAsyncCallbackRelation\",\n \"msUserSelect\",\n \"msVisibilityState\",\n \"msWrapFlow\",\n \"msWrapMargin\",\n \"msWrapThrough\",\n \"msWriteProfilerMark\",\n \"msZoom\",\n \"msZoomTo\",\n \"mt\",\n \"mul\",\n \"multiEntry\",\n \"multiSelectionObj\",\n \"multiline\",\n \"multiple\",\n \"multiply\",\n \"multiplySelf\",\n \"multisample\",\n \"multisampled\",\n \"mutableFile\",\n \"muted\",\n \"n\",\n \"name\",\n \"nameProp\",\n \"namedItem\",\n \"namedRecordset\",\n \"names\",\n \"namespaceURI\",\n \"namespaces\",\n \"naturalHeight\",\n \"naturalWidth\",\n \"navigate\",\n \"navigation\",\n \"navigationMode\",\n \"navigationPreload\",\n \"navigationStart\",\n \"navigator\",\n \"near\",\n \"nearestViewportElement\",\n \"negative\",\n \"negotiated\",\n \"netscape\",\n \"networkState\",\n \"newScale\",\n \"newTranslate\",\n \"newURL\",\n \"newValue\",\n \"newValueSpecifiedUnits\",\n \"newVersion\",\n \"newhome\",\n \"next\",\n \"nextElementSibling\",\n \"nextHopProtocol\",\n \"nextNode\",\n \"nextPage\",\n \"nextSibling\",\n \"nickname\",\n \"noHref\",\n \"noModule\",\n \"noResize\",\n \"noShade\",\n \"noValidate\",\n \"noWrap\",\n \"node\",\n \"nodeName\",\n \"nodeType\",\n \"nodeValue\",\n \"nonce\",\n \"normalize\",\n \"normalizedPathSegList\",\n \"notationName\",\n \"notations\",\n \"note\",\n \"noteGrainOn\",\n \"noteOff\",\n \"noteOn\",\n \"notify\",\n \"now\",\n \"numOctaves\",\n \"number\",\n \"numberOfChannels\",\n \"numberOfInputs\",\n \"numberOfItems\",\n \"numberOfOutputs\",\n \"numberValue\",\n \"oMatchesSelector\",\n \"object\",\n \"object-fit\",\n \"object-position\",\n \"objectFit\",\n \"objectPosition\",\n \"objectStore\",\n \"objectStoreNames\",\n \"objectType\",\n \"observe\",\n \"occlusionQuerySet\",\n \"of\",\n \"offscreenBuffering\",\n \"offset\",\n \"offset-anchor\",\n \"offset-distance\",\n \"offset-path\",\n \"offset-rotate\",\n \"offsetAnchor\",\n \"offsetDistance\",\n \"offsetHeight\",\n \"offsetLeft\",\n \"offsetNode\",\n \"offsetParent\",\n \"offsetPath\",\n \"offsetRotate\",\n \"offsetTop\",\n \"offsetWidth\",\n \"offsetX\",\n \"offsetY\",\n \"ok\",\n \"oldURL\",\n \"oldValue\",\n \"oldVersion\",\n \"olderShadowRoot\",\n \"onLine\",\n \"onSubmittedWorkDone\",\n \"onabort\",\n \"onabsolutedeviceorientation\",\n \"onactivate\",\n \"onactive\",\n \"onaddsourcebuffer\",\n \"onaddstream\",\n \"onaddtrack\",\n \"onafterprint\",\n \"onafterscriptexecute\",\n \"onafterupdate\",\n \"onanimationcancel\",\n \"onanimationend\",\n \"onanimationiteration\",\n \"onanimationstart\",\n \"onappinstalled\",\n \"onaudioend\",\n \"onaudioprocess\",\n \"onaudiostart\",\n \"onautocomplete\",\n \"onautocompleteerror\",\n \"onauxclick\",\n \"onbeforeactivate\",\n \"onbeforecopy\",\n \"onbeforecut\",\n \"onbeforedeactivate\",\n \"onbeforeeditfocus\",\n \"onbeforeinstallprompt\",\n \"onbeforepaste\",\n \"onbeforeprint\",\n \"onbeforescriptexecute\",\n \"onbeforeunload\",\n \"onbeforeupdate\",\n \"onbeforexrselect\",\n \"onbegin\",\n \"onblocked\",\n \"onblur\",\n \"onbounce\",\n \"onboundary\",\n \"onbufferedamountlow\",\n \"oncached\",\n \"oncancel\",\n \"oncandidatewindowhide\",\n \"oncandidatewindowshow\",\n \"oncandidatewindowupdate\",\n \"oncanplay\",\n \"oncanplaythrough\",\n \"once\",\n \"oncellchange\",\n \"onchange\",\n \"oncharacteristicvaluechanged\",\n \"onchargingchange\",\n \"onchargingtimechange\",\n \"onchecking\",\n \"onclick\",\n \"onclose\",\n \"onclosing\",\n \"oncompassneedscalibration\",\n \"oncomplete\",\n \"onconnect\",\n \"onconnecting\",\n \"onconnectionavailable\",\n \"onconnectionstatechange\",\n \"oncontextmenu\",\n \"oncontrollerchange\",\n \"oncontrolselect\",\n \"oncopy\",\n \"oncuechange\",\n \"oncut\",\n \"ondataavailable\",\n \"ondatachannel\",\n \"ondatasetchanged\",\n \"ondatasetcomplete\",\n \"ondblclick\",\n \"ondeactivate\",\n \"ondevicechange\",\n \"ondevicelight\",\n \"ondevicemotion\",\n \"ondeviceorientation\",\n \"ondeviceorientationabsolute\",\n \"ondeviceproximity\",\n \"ondischargingtimechange\",\n \"ondisconnect\",\n \"ondisplay\",\n \"ondownloading\",\n \"ondrag\",\n \"ondragend\",\n \"ondragenter\",\n \"ondragexit\",\n \"ondragleave\",\n \"ondragover\",\n \"ondragstart\",\n \"ondrop\",\n \"ondurationchange\",\n \"onemptied\",\n \"onencrypted\",\n \"onend\",\n \"onended\",\n \"onenter\",\n \"onenterpictureinpicture\",\n \"onerror\",\n \"onerrorupdate\",\n \"onexit\",\n \"onfilterchange\",\n \"onfinish\",\n \"onfocus\",\n \"onfocusin\",\n \"onfocusout\",\n \"onformdata\",\n \"onfreeze\",\n \"onfullscreenchange\",\n \"onfullscreenerror\",\n \"ongatheringstatechange\",\n \"ongattserverdisconnected\",\n \"ongesturechange\",\n \"ongestureend\",\n \"ongesturestart\",\n \"ongotpointercapture\",\n \"onhashchange\",\n \"onhelp\",\n \"onicecandidate\",\n \"onicecandidateerror\",\n \"oniceconnectionstatechange\",\n \"onicegatheringstatechange\",\n \"oninactive\",\n \"oninput\",\n \"oninputsourceschange\",\n \"oninvalid\",\n \"onkeydown\",\n \"onkeypress\",\n \"onkeystatuseschange\",\n \"onkeyup\",\n \"onlanguagechange\",\n \"onlayoutcomplete\",\n \"onleavepictureinpicture\",\n \"onlevelchange\",\n \"onload\",\n \"onloadeddata\",\n \"onloadedmetadata\",\n \"onloadend\",\n \"onloading\",\n \"onloadingdone\",\n \"onloadingerror\",\n \"onloadstart\",\n \"onlosecapture\",\n \"onlostpointercapture\",\n \"only\",\n \"onmark\",\n \"onmessage\",\n \"onmessageerror\",\n \"onmidimessage\",\n \"onmousedown\",\n \"onmouseenter\",\n \"onmouseleave\",\n \"onmousemove\",\n \"onmouseout\",\n \"onmouseover\",\n \"onmouseup\",\n \"onmousewheel\",\n \"onmove\",\n \"onmoveend\",\n \"onmovestart\",\n \"onmozfullscreenchange\",\n \"onmozfullscreenerror\",\n \"onmozorientationchange\",\n \"onmozpointerlockchange\",\n \"onmozpointerlockerror\",\n \"onmscontentzoom\",\n \"onmsfullscreenchange\",\n \"onmsfullscreenerror\",\n \"onmsgesturechange\",\n \"onmsgesturedoubletap\",\n \"onmsgestureend\",\n \"onmsgesturehold\",\n \"onmsgesturestart\",\n \"onmsgesturetap\",\n \"onmsgotpointercapture\",\n \"onmsinertiastart\",\n \"onmslostpointercapture\",\n \"onmsmanipulationstatechanged\",\n \"onmsneedkey\",\n \"onmsorientationchange\",\n \"onmspointercancel\",\n \"onmspointerdown\",\n \"onmspointerenter\",\n \"onmspointerhover\",\n \"onmspointerleave\",\n \"onmspointermove\",\n \"onmspointerout\",\n \"onmspointerover\",\n \"onmspointerup\",\n \"onmssitemodejumplistitemremoved\",\n \"onmsthumbnailclick\",\n \"onmute\",\n \"onnegotiationneeded\",\n \"onnomatch\",\n \"onnoupdate\",\n \"onobsolete\",\n \"onoffline\",\n \"ononline\",\n \"onopen\",\n \"onorientationchange\",\n \"onpagechange\",\n \"onpagehide\",\n \"onpageshow\",\n \"onpaste\",\n \"onpause\",\n \"onpayerdetailchange\",\n \"onpaymentmethodchange\",\n \"onplay\",\n \"onplaying\",\n \"onpluginstreamstart\",\n \"onpointercancel\",\n \"onpointerdown\",\n \"onpointerenter\",\n \"onpointerleave\",\n \"onpointerlockchange\",\n \"onpointerlockerror\",\n \"onpointermove\",\n \"onpointerout\",\n \"onpointerover\",\n \"onpointerrawupdate\",\n \"onpointerup\",\n \"onpopstate\",\n \"onprocessorerror\",\n \"onprogress\",\n \"onpropertychange\",\n \"onratechange\",\n \"onreading\",\n \"onreadystatechange\",\n \"onrejectionhandled\",\n \"onrelease\",\n \"onremove\",\n \"onremovesourcebuffer\",\n \"onremovestream\",\n \"onremovetrack\",\n \"onrepeat\",\n \"onreset\",\n \"onresize\",\n \"onresizeend\",\n \"onresizestart\",\n \"onresourcetimingbufferfull\",\n \"onresult\",\n \"onresume\",\n \"onrowenter\",\n \"onrowexit\",\n \"onrowsdelete\",\n \"onrowsinserted\",\n \"onscroll\",\n \"onsearch\",\n \"onsecuritypolicyviolation\",\n \"onseeked\",\n \"onseeking\",\n \"onselect\",\n \"onselectedcandidatepairchange\",\n \"onselectend\",\n \"onselectionchange\",\n \"onselectstart\",\n \"onshippingaddresschange\",\n \"onshippingoptionchange\",\n \"onshow\",\n \"onsignalingstatechange\",\n \"onsoundend\",\n \"onsoundstart\",\n \"onsourceclose\",\n \"onsourceclosed\",\n \"onsourceended\",\n \"onsourceopen\",\n \"onspeechend\",\n \"onspeechstart\",\n \"onsqueeze\",\n \"onsqueezeend\",\n \"onsqueezestart\",\n \"onstalled\",\n \"onstart\",\n \"onstatechange\",\n \"onstop\",\n \"onstorage\",\n \"onstoragecommit\",\n \"onsubmit\",\n \"onsuccess\",\n \"onsuspend\",\n \"onterminate\",\n \"ontextinput\",\n \"ontimeout\",\n \"ontimeupdate\",\n \"ontoggle\",\n \"ontonechange\",\n \"ontouchcancel\",\n \"ontouchend\",\n \"ontouchmove\",\n \"ontouchstart\",\n \"ontrack\",\n \"ontransitioncancel\",\n \"ontransitionend\",\n \"ontransitionrun\",\n \"ontransitionstart\",\n \"onuncapturederror\",\n \"onunhandledrejection\",\n \"onunload\",\n \"onunmute\",\n \"onupdate\",\n \"onupdateend\",\n \"onupdatefound\",\n \"onupdateready\",\n \"onupdatestart\",\n \"onupgradeneeded\",\n \"onuserproximity\",\n \"onversionchange\",\n \"onvisibilitychange\",\n \"onvoiceschanged\",\n \"onvolumechange\",\n \"onvrdisplayactivate\",\n \"onvrdisplayconnect\",\n \"onvrdisplaydeactivate\",\n \"onvrdisplaydisconnect\",\n \"onvrdisplaypresentchange\",\n \"onwaiting\",\n \"onwaitingforkey\",\n \"onwarning\",\n \"onwebkitanimationend\",\n \"onwebkitanimationiteration\",\n \"onwebkitanimationstart\",\n \"onwebkitcurrentplaybacktargetiswirelesschanged\",\n \"onwebkitfullscreenchange\",\n \"onwebkitfullscreenerror\",\n \"onwebkitkeyadded\",\n \"onwebkitkeyerror\",\n \"onwebkitkeymessage\",\n \"onwebkitneedkey\",\n \"onwebkitorientationchange\",\n \"onwebkitplaybacktargetavailabilitychanged\",\n \"onwebkitpointerlockchange\",\n \"onwebkitpointerlockerror\",\n \"onwebkitresourcetimingbufferfull\",\n \"onwebkittransitionend\",\n \"onwheel\",\n \"onzoom\",\n \"opacity\",\n \"open\",\n \"openCursor\",\n \"openDatabase\",\n \"openKeyCursor\",\n \"opened\",\n \"opener\",\n \"opera\",\n \"operation\",\n \"operationType\",\n \"operator\",\n \"opr\",\n \"optimum\",\n \"options\",\n \"or\",\n \"order\",\n \"orderX\",\n \"orderY\",\n \"ordered\",\n \"org\",\n \"organization\",\n \"orient\",\n \"orientAngle\",\n \"orientType\",\n \"orientation\",\n \"orientationX\",\n \"orientationY\",\n \"orientationZ\",\n \"origin\",\n \"originalPolicy\",\n \"originalTarget\",\n \"orphans\",\n \"oscpu\",\n \"outerHTML\",\n \"outerHeight\",\n \"outerText\",\n \"outerWidth\",\n \"outline\",\n \"outline-color\",\n \"outline-offset\",\n \"outline-style\",\n \"outline-width\",\n \"outlineColor\",\n \"outlineOffset\",\n \"outlineStyle\",\n \"outlineWidth\",\n \"outputBuffer\",\n \"outputChannelCount\",\n \"outputLatency\",\n \"outputs\",\n \"overflow\",\n \"overflow-anchor\",\n \"overflow-block\",\n \"overflow-inline\",\n \"overflow-wrap\",\n \"overflow-x\",\n \"overflow-y\",\n \"overflowAnchor\",\n \"overflowBlock\",\n \"overflowInline\",\n \"overflowWrap\",\n \"overflowX\",\n \"overflowY\",\n \"overrideMimeType\",\n \"oversample\",\n \"overscroll-behavior\",\n \"overscroll-behavior-block\",\n \"overscroll-behavior-inline\",\n \"overscroll-behavior-x\",\n \"overscroll-behavior-y\",\n \"overscrollBehavior\",\n \"overscrollBehaviorBlock\",\n \"overscrollBehaviorInline\",\n \"overscrollBehaviorX\",\n \"overscrollBehaviorY\",\n \"ownKeys\",\n \"ownerDocument\",\n \"ownerElement\",\n \"ownerNode\",\n \"ownerRule\",\n \"ownerSVGElement\",\n \"owningElement\",\n \"p1\",\n \"p2\",\n \"p3\",\n \"p4\",\n \"packetSize\",\n \"packets\",\n \"pad\",\n \"padEnd\",\n \"padStart\",\n \"padding\",\n \"padding-block\",\n \"padding-block-end\",\n \"padding-block-start\",\n \"padding-bottom\",\n \"padding-inline\",\n \"padding-inline-end\",\n \"padding-inline-start\",\n \"padding-left\",\n \"padding-right\",\n \"padding-top\",\n \"paddingBlock\",\n \"paddingBlockEnd\",\n \"paddingBlockStart\",\n \"paddingBottom\",\n \"paddingInline\",\n \"paddingInlineEnd\",\n \"paddingInlineStart\",\n \"paddingLeft\",\n \"paddingRight\",\n \"paddingTop\",\n \"page\",\n \"page-break-after\",\n \"page-break-before\",\n \"page-break-inside\",\n \"pageBreakAfter\",\n \"pageBreakBefore\",\n \"pageBreakInside\",\n \"pageCount\",\n \"pageLeft\",\n \"pageTop\",\n \"pageX\",\n \"pageXOffset\",\n \"pageY\",\n \"pageYOffset\",\n \"pages\",\n \"paint-order\",\n \"paintOrder\",\n \"paintRequests\",\n \"paintType\",\n \"paintWorklet\",\n \"palette\",\n \"pan\",\n \"panningModel\",\n \"parameterData\",\n \"parameters\",\n \"parent\",\n \"parentElement\",\n \"parentNode\",\n \"parentRule\",\n \"parentStyleSheet\",\n \"parentTextEdit\",\n \"parentWindow\",\n \"parse\",\n \"parseAll\",\n \"parseFloat\",\n \"parseFromString\",\n \"parseInt\",\n \"part\",\n \"participants\",\n \"passOp\",\n \"passive\",\n \"password\",\n \"pasteHTML\",\n \"path\",\n \"pathLength\",\n \"pathSegList\",\n \"pathSegType\",\n \"pathSegTypeAsLetter\",\n \"pathname\",\n \"pattern\",\n \"patternContentUnits\",\n \"patternMismatch\",\n \"patternTransform\",\n \"patternUnits\",\n \"pause\",\n \"pauseAnimations\",\n \"pauseOnExit\",\n \"pauseProfilers\",\n \"pauseTransformFeedback\",\n \"paused\",\n \"payerEmail\",\n \"payerName\",\n \"payerPhone\",\n \"paymentManager\",\n \"pc\",\n \"peerIdentity\",\n \"pending\",\n \"pendingLocalDescription\",\n \"pendingRemoteDescription\",\n \"percent\",\n \"performance\",\n \"periodicSync\",\n \"permission\",\n \"permissionState\",\n \"permissions\",\n \"persist\",\n \"persisted\",\n \"personalbar\",\n \"perspective\",\n \"perspective-origin\",\n \"perspectiveOrigin\",\n \"phone\",\n \"phoneticFamilyName\",\n \"phoneticGivenName\",\n \"photo\",\n \"pictureInPictureElement\",\n \"pictureInPictureEnabled\",\n \"pictureInPictureWindow\",\n \"ping\",\n \"pipeThrough\",\n \"pipeTo\",\n \"pitch\",\n \"pixelBottom\",\n \"pixelDepth\",\n \"pixelHeight\",\n \"pixelLeft\",\n \"pixelRight\",\n \"pixelStorei\",\n \"pixelTop\",\n \"pixelUnitToMillimeterX\",\n \"pixelUnitToMillimeterY\",\n \"pixelWidth\",\n \"place-content\",\n \"place-items\",\n \"place-self\",\n \"placeContent\",\n \"placeItems\",\n \"placeSelf\",\n \"placeholder\",\n \"platform\",\n \"platformVersion\",\n \"platforms\",\n \"play\",\n \"playEffect\",\n \"playState\",\n \"playbackRate\",\n \"playbackState\",\n \"playbackTime\",\n \"played\",\n \"playoutDelayHint\",\n \"playsInline\",\n \"plugins\",\n \"pluginspage\",\n \"pname\",\n \"pointer-events\",\n \"pointerBeforeReferenceNode\",\n \"pointerEnabled\",\n \"pointerEvents\",\n \"pointerId\",\n \"pointerLockElement\",\n \"pointerType\",\n \"points\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"polygonOffset\",\n \"pop\",\n \"popDebugGroup\",\n \"popErrorScope\",\n \"populateMatrix\",\n \"popupWindowFeatures\",\n \"popupWindowName\",\n \"popupWindowURI\",\n \"port\",\n \"port1\",\n \"port2\",\n \"ports\",\n \"posBottom\",\n \"posHeight\",\n \"posLeft\",\n \"posRight\",\n \"posTop\",\n \"posWidth\",\n \"pose\",\n \"position\",\n \"positionAlign\",\n \"positionX\",\n \"positionY\",\n \"positionZ\",\n \"postError\",\n \"postMessage\",\n \"postalCode\",\n \"poster\",\n \"pow\",\n \"powerEfficient\",\n \"powerOff\",\n \"powerPreference\",\n \"preMultiplySelf\",\n \"precision\",\n \"preferredStyleSheetSet\",\n \"preferredStylesheetSet\",\n \"prefix\",\n \"preload\",\n \"premultipliedAlpha\",\n \"prepend\",\n \"presentation\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"preserveAspectRatioString\",\n \"pressed\",\n \"pressure\",\n \"prevValue\",\n \"preventDefault\",\n \"preventExtensions\",\n \"preventSilentAccess\",\n \"previousElementSibling\",\n \"previousNode\",\n \"previousPage\",\n \"previousRect\",\n \"previousScale\",\n \"previousSibling\",\n \"previousTranslate\",\n \"primaryKey\",\n \"primitive\",\n \"primitiveType\",\n \"primitiveUnits\",\n \"principals\",\n \"print\",\n \"priority\",\n \"privateKey\",\n \"probablySupportsContext\",\n \"process\",\n \"processIceMessage\",\n \"processingEnd\",\n \"processingStart\",\n \"processorOptions\",\n \"product\",\n \"productId\",\n \"productName\",\n \"productSub\",\n \"profile\",\n \"profileEnd\",\n \"profiles\",\n \"projectionMatrix\",\n \"promise\",\n \"prompt\",\n \"properties\",\n \"propertyIsEnumerable\",\n \"propertyName\",\n \"protocol\",\n \"protocolLong\",\n \"prototype\",\n \"provider\",\n \"pseudoClass\",\n \"pseudoElement\",\n \"pt\",\n \"publicId\",\n \"publicKey\",\n \"published\",\n \"pulse\",\n \"push\",\n \"pushDebugGroup\",\n \"pushErrorScope\",\n \"pushManager\",\n \"pushNotification\",\n \"pushState\",\n \"put\",\n \"putImageData\",\n \"px\",\n \"quadraticCurveTo\",\n \"qualifier\",\n \"quaternion\",\n \"query\",\n \"queryCommandEnabled\",\n \"queryCommandIndeterm\",\n \"queryCommandState\",\n \"queryCommandSupported\",\n \"queryCommandText\",\n \"queryCommandValue\",\n \"querySelector\",\n \"querySelectorAll\",\n \"querySet\",\n \"queue\",\n \"queueMicrotask\",\n \"quote\",\n \"quotes\",\n \"r\",\n \"r1\",\n \"r2\",\n \"race\",\n \"rad\",\n \"radiogroup\",\n \"radiusX\",\n \"radiusY\",\n \"random\",\n \"range\",\n \"rangeCount\",\n \"rangeMax\",\n \"rangeMin\",\n \"rangeOffset\",\n \"rangeOverflow\",\n \"rangeParent\",\n \"rangeUnderflow\",\n \"rate\",\n \"ratio\",\n \"raw\",\n \"rawId\",\n \"read\",\n \"readAsArrayBuffer\",\n \"readAsBinaryString\",\n \"readAsBlob\",\n \"readAsDataURL\",\n \"readAsText\",\n \"readBuffer\",\n \"readEntries\",\n \"readOnly\",\n \"readPixels\",\n \"readReportRequested\",\n \"readText\",\n \"readValue\",\n \"readable\",\n \"ready\",\n \"readyState\",\n \"reason\",\n \"reboot\",\n \"receivedAlert\",\n \"receiver\",\n \"receivers\",\n \"recipient\",\n \"reconnect\",\n \"recordNumber\",\n \"recordsAvailable\",\n \"recordset\",\n \"rect\",\n \"red\",\n \"redEyeReduction\",\n \"redirect\",\n \"redirectCount\",\n \"redirectEnd\",\n \"redirectStart\",\n \"redirected\",\n \"reduce\",\n \"reduceRight\",\n \"reduction\",\n \"refDistance\",\n \"refX\",\n \"refY\",\n \"referenceNode\",\n \"referenceSpace\",\n \"referrer\",\n \"referrerPolicy\",\n \"refresh\",\n \"region\",\n \"regionAnchorX\",\n \"regionAnchorY\",\n \"regionId\",\n \"regions\",\n \"register\",\n \"registerContentHandler\",\n \"registerElement\",\n \"registerProperty\",\n \"registerProtocolHandler\",\n \"reject\",\n \"rel\",\n \"relList\",\n \"relatedAddress\",\n \"relatedNode\",\n \"relatedPort\",\n \"relatedTarget\",\n \"release\",\n \"releaseCapture\",\n \"releaseEvents\",\n \"releaseInterface\",\n \"releaseLock\",\n \"releasePointerCapture\",\n \"releaseShaderCompiler\",\n \"reliable\",\n \"reliableWrite\",\n \"reload\",\n \"rem\",\n \"remainingSpace\",\n \"remote\",\n \"remoteDescription\",\n \"remove\",\n \"removeAllRanges\",\n \"removeAttribute\",\n \"removeAttributeNS\",\n \"removeAttributeNode\",\n \"removeBehavior\",\n \"removeChild\",\n \"removeCue\",\n \"removeEventListener\",\n \"removeFilter\",\n \"removeImport\",\n \"removeItem\",\n \"removeListener\",\n \"removeNamedItem\",\n \"removeNamedItemNS\",\n \"removeNode\",\n \"removeParameter\",\n \"removeProperty\",\n \"removeRange\",\n \"removeRegion\",\n \"removeRule\",\n \"removeSiteSpecificTrackingException\",\n \"removeSourceBuffer\",\n \"removeStream\",\n \"removeTrack\",\n \"removeVariable\",\n \"removeWakeLockListener\",\n \"removeWebWideTrackingException\",\n \"removed\",\n \"removedNodes\",\n \"renderHeight\",\n \"renderState\",\n \"renderTime\",\n \"renderWidth\",\n \"renderbufferStorage\",\n \"renderbufferStorageMultisample\",\n \"renderedBuffer\",\n \"renderingMode\",\n \"renotify\",\n \"repeat\",\n \"replace\",\n \"replaceAdjacentText\",\n \"replaceAll\",\n \"replaceChild\",\n \"replaceChildren\",\n \"replaceData\",\n \"replaceId\",\n \"replaceItem\",\n \"replaceNode\",\n \"replaceState\",\n \"replaceSync\",\n \"replaceTrack\",\n \"replaceWholeText\",\n \"replaceWith\",\n \"reportValidity\",\n \"request\",\n \"requestAdapter\",\n \"requestAdapterInfo\",\n \"requestAnimationFrame\",\n \"requestAutocomplete\",\n \"requestData\",\n \"requestDevice\",\n \"requestFrame\",\n \"requestFullscreen\",\n \"requestHitTestSource\",\n \"requestHitTestSourceForTransientInput\",\n \"requestId\",\n \"requestIdleCallback\",\n \"requestMIDIAccess\",\n \"requestMediaKeySystemAccess\",\n \"requestPermission\",\n \"requestPictureInPicture\",\n \"requestPointerLock\",\n \"requestPresent\",\n \"requestReferenceSpace\",\n \"requestSession\",\n \"requestStart\",\n \"requestStorageAccess\",\n \"requestSubmit\",\n \"requestVideoFrameCallback\",\n \"requestingWindow\",\n \"requireInteraction\",\n \"required\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"requiredLimits\",\n \"reset\",\n \"resetPose\",\n \"resetTransform\",\n \"resize\",\n \"resizeBy\",\n \"resizeTo\",\n \"resolve\",\n \"resolveQuerySet\",\n \"resolveTarget\",\n \"resource\",\n \"response\",\n \"responseBody\",\n \"responseEnd\",\n \"responseReady\",\n \"responseStart\",\n \"responseText\",\n \"responseType\",\n \"responseURL\",\n \"responseXML\",\n \"restartIce\",\n \"restore\",\n \"result\",\n \"resultIndex\",\n \"resultType\",\n \"results\",\n \"resume\",\n \"resumeProfilers\",\n \"resumeTransformFeedback\",\n \"retry\",\n \"returnValue\",\n \"rev\",\n \"reverse\",\n \"reversed\",\n \"revocable\",\n \"revokeObjectURL\",\n \"rgbColor\",\n \"right\",\n \"rightContext\",\n \"rightDegrees\",\n \"rightMargin\",\n \"rightProjectionMatrix\",\n \"rightViewMatrix\",\n \"role\",\n \"rolloffFactor\",\n \"root\",\n \"rootBounds\",\n \"rootElement\",\n \"rootMargin\",\n \"rotate\",\n \"rotateAxisAngle\",\n \"rotateAxisAngleSelf\",\n \"rotateFromVector\",\n \"rotateFromVectorSelf\",\n \"rotateSelf\",\n \"rotation\",\n \"rotationAngle\",\n \"rotationRate\",\n \"round\",\n \"roundRect\",\n \"row-gap\",\n \"rowGap\",\n \"rowIndex\",\n \"rowSpan\",\n \"rows\",\n \"rowsPerImage\",\n \"rtcpTransport\",\n \"rtt\",\n \"ruby-align\",\n \"ruby-position\",\n \"rubyAlign\",\n \"rubyOverhang\",\n \"rubyPosition\",\n \"rules\",\n \"runtime\",\n \"runtimeStyle\",\n \"rx\",\n \"ry\",\n \"s\",\n \"safari\",\n \"sample\",\n \"sampleCount\",\n \"sampleCoverage\",\n \"sampleRate\",\n \"sampleType\",\n \"sampler\",\n \"samplerParameterf\",\n \"samplerParameteri\",\n \"sandbox\",\n \"save\",\n \"saveData\",\n \"scale\",\n \"scale3d\",\n \"scale3dSelf\",\n \"scaleNonUniform\",\n \"scaleNonUniformSelf\",\n \"scaleSelf\",\n \"scheme\",\n \"scissor\",\n \"scope\",\n \"scopeName\",\n \"scoped\",\n \"screen\",\n \"screenBrightness\",\n \"screenEnabled\",\n \"screenLeft\",\n \"screenPixelToMillimeterX\",\n \"screenPixelToMillimeterY\",\n \"screenTop\",\n \"screenX\",\n \"screenY\",\n \"scriptURL\",\n \"scripts\",\n \"scroll\",\n \"scroll-behavior\",\n \"scroll-margin\",\n \"scroll-margin-block\",\n \"scroll-margin-block-end\",\n \"scroll-margin-block-start\",\n \"scroll-margin-bottom\",\n \"scroll-margin-inline\",\n \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\",\n \"scroll-margin-left\",\n \"scroll-margin-right\",\n \"scroll-margin-top\",\n \"scroll-padding\",\n \"scroll-padding-block\",\n \"scroll-padding-block-end\",\n \"scroll-padding-block-start\",\n \"scroll-padding-bottom\",\n \"scroll-padding-inline\",\n \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\",\n \"scroll-padding-left\",\n \"scroll-padding-right\",\n \"scroll-padding-top\",\n \"scroll-snap-align\",\n \"scroll-snap-type\",\n \"scrollAmount\",\n \"scrollBehavior\",\n \"scrollBy\",\n \"scrollByLines\",\n \"scrollByPages\",\n \"scrollDelay\",\n \"scrollHeight\",\n \"scrollIntoView\",\n \"scrollIntoViewIfNeeded\",\n \"scrollLeft\",\n \"scrollLeftMax\",\n \"scrollMargin\",\n \"scrollMarginBlock\",\n \"scrollMarginBlockEnd\",\n \"scrollMarginBlockStart\",\n \"scrollMarginBottom\",\n \"scrollMarginInline\",\n \"scrollMarginInlineEnd\",\n \"scrollMarginInlineStart\",\n \"scrollMarginLeft\",\n \"scrollMarginRight\",\n \"scrollMarginTop\",\n \"scrollMaxX\",\n \"scrollMaxY\",\n \"scrollPadding\",\n \"scrollPaddingBlock\",\n \"scrollPaddingBlockEnd\",\n \"scrollPaddingBlockStart\",\n \"scrollPaddingBottom\",\n \"scrollPaddingInline\",\n \"scrollPaddingInlineEnd\",\n \"scrollPaddingInlineStart\",\n \"scrollPaddingLeft\",\n \"scrollPaddingRight\",\n \"scrollPaddingTop\",\n \"scrollRestoration\",\n \"scrollSnapAlign\",\n \"scrollSnapType\",\n \"scrollTo\",\n \"scrollTop\",\n \"scrollTopMax\",\n \"scrollWidth\",\n \"scrollX\",\n \"scrollY\",\n \"scrollbar-color\",\n \"scrollbar-width\",\n \"scrollbar3dLightColor\",\n \"scrollbarArrowColor\",\n \"scrollbarBaseColor\",\n \"scrollbarColor\",\n \"scrollbarDarkShadowColor\",\n \"scrollbarFaceColor\",\n \"scrollbarHighlightColor\",\n \"scrollbarShadowColor\",\n \"scrollbarTrackColor\",\n \"scrollbarWidth\",\n \"scrollbars\",\n \"scrolling\",\n \"scrollingElement\",\n \"sctp\",\n \"sctpCauseCode\",\n \"sdp\",\n \"sdpLineNumber\",\n \"sdpMLineIndex\",\n \"sdpMid\",\n \"seal\",\n \"search\",\n \"searchBox\",\n \"searchBoxJavaBridge_\",\n \"searchParams\",\n \"sectionRowIndex\",\n \"secureConnectionStart\",\n \"security\",\n \"seed\",\n \"seekToNextFrame\",\n \"seekable\",\n \"seeking\",\n \"select\",\n \"selectAllChildren\",\n \"selectAlternateInterface\",\n \"selectConfiguration\",\n \"selectNode\",\n \"selectNodeContents\",\n \"selectNodes\",\n \"selectSingleNode\",\n \"selectSubString\",\n \"selected\",\n \"selectedIndex\",\n \"selectedOptions\",\n \"selectedStyleSheetSet\",\n \"selectedStylesheetSet\",\n \"selection\",\n \"selectionDirection\",\n \"selectionEnd\",\n \"selectionStart\",\n \"selector\",\n \"selectorText\",\n \"self\",\n \"send\",\n \"sendAsBinary\",\n \"sendBeacon\",\n \"sender\",\n \"sentAlert\",\n \"sentTimestamp\",\n \"separator\",\n \"serialNumber\",\n \"serializeToString\",\n \"serverTiming\",\n \"service\",\n \"serviceWorker\",\n \"session\",\n \"sessionId\",\n \"sessionStorage\",\n \"set\",\n \"setActionHandler\",\n \"setActive\",\n \"setAlpha\",\n \"setAppBadge\",\n \"setAttribute\",\n \"setAttributeNS\",\n \"setAttributeNode\",\n \"setAttributeNodeNS\",\n \"setBaseAndExtent\",\n \"setBigInt64\",\n \"setBigUint64\",\n \"setBindGroup\",\n \"setBingCurrentSearchDefault\",\n \"setBlendConstant\",\n \"setCapture\",\n \"setCodecPreferences\",\n \"setColor\",\n \"setCompositeOperation\",\n \"setConfiguration\",\n \"setCurrentTime\",\n \"setCustomValidity\",\n \"setData\",\n \"setDate\",\n \"setDragImage\",\n \"setEnd\",\n \"setEndAfter\",\n \"setEndBefore\",\n \"setEndPoint\",\n \"setFillColor\",\n \"setFilterRes\",\n \"setFloat32\",\n \"setFloat64\",\n \"setFloatValue\",\n \"setFormValue\",\n \"setFullYear\",\n \"setHeaderValue\",\n \"setHours\",\n \"setIdentityProvider\",\n \"setImmediate\",\n \"setIndexBuffer\",\n \"setInt16\",\n \"setInt32\",\n \"setInt8\",\n \"setInterval\",\n \"setItem\",\n \"setKeyframes\",\n \"setLineCap\",\n \"setLineDash\",\n \"setLineJoin\",\n \"setLineWidth\",\n \"setLiveSeekableRange\",\n \"setLocalDescription\",\n \"setMatrix\",\n \"setMatrixValue\",\n \"setMediaKeys\",\n \"setMilliseconds\",\n \"setMinutes\",\n \"setMiterLimit\",\n \"setMonth\",\n \"setNamedItem\",\n \"setNamedItemNS\",\n \"setNonUserCodeExceptions\",\n \"setOrientToAngle\",\n \"setOrientToAuto\",\n \"setOrientation\",\n \"setOverrideHistoryNavigationMode\",\n \"setPaint\",\n \"setParameter\",\n \"setParameters\",\n \"setPeriodicWave\",\n \"setPipeline\",\n \"setPointerCapture\",\n \"setPosition\",\n \"setPositionState\",\n \"setPreference\",\n \"setProperty\",\n \"setPrototypeOf\",\n \"setRGBColor\",\n \"setRGBColorICCColor\",\n \"setRadius\",\n \"setRangeText\",\n \"setRemoteDescription\",\n \"setRequestHeader\",\n \"setResizable\",\n \"setResourceTimingBufferSize\",\n \"setRotate\",\n \"setScale\",\n \"setScissorRect\",\n \"setSeconds\",\n \"setSelectionRange\",\n \"setServerCertificate\",\n \"setShadow\",\n \"setSinkId\",\n \"setSkewX\",\n \"setSkewY\",\n \"setStart\",\n \"setStartAfter\",\n \"setStartBefore\",\n \"setStdDeviation\",\n \"setStencilReference\",\n \"setStreams\",\n \"setStringValue\",\n \"setStrokeColor\",\n \"setSuggestResult\",\n \"setTargetAtTime\",\n \"setTargetValueAtTime\",\n \"setTime\",\n \"setTimeout\",\n \"setTransform\",\n \"setTranslate\",\n \"setUTCDate\",\n \"setUTCFullYear\",\n \"setUTCHours\",\n \"setUTCMilliseconds\",\n \"setUTCMinutes\",\n \"setUTCMonth\",\n \"setUTCSeconds\",\n \"setUint16\",\n \"setUint32\",\n \"setUint8\",\n \"setUri\",\n \"setValidity\",\n \"setValueAtTime\",\n \"setValueCurveAtTime\",\n \"setVariable\",\n \"setVelocity\",\n \"setVersion\",\n \"setVertexBuffer\",\n \"setViewport\",\n \"setYear\",\n \"settingName\",\n \"settingValue\",\n \"sex\",\n \"shaderLocation\",\n \"shaderSource\",\n \"shadowBlur\",\n \"shadowColor\",\n \"shadowOffsetX\",\n \"shadowOffsetY\",\n \"shadowRoot\",\n \"shape\",\n \"shape-image-threshold\",\n \"shape-margin\",\n \"shape-outside\",\n \"shape-rendering\",\n \"shapeImageThreshold\",\n \"shapeMargin\",\n \"shapeOutside\",\n \"shapeRendering\",\n \"sheet\",\n \"shift\",\n \"shiftKey\",\n \"shiftLeft\",\n \"shippingAddress\",\n \"shippingOption\",\n \"shippingType\",\n \"show\",\n \"showHelp\",\n \"showModal\",\n \"showModalDialog\",\n \"showModelessDialog\",\n \"showNotification\",\n \"sidebar\",\n \"sign\",\n \"signal\",\n \"signalingState\",\n \"signature\",\n \"silent\",\n \"sin\",\n \"singleNodeValue\",\n \"sinh\",\n \"sinkId\",\n \"sittingToStandingTransform\",\n \"size\",\n \"sizeToContent\",\n \"sizeX\",\n \"sizeZ\",\n \"sizes\",\n \"skewX\",\n \"skewXSelf\",\n \"skewY\",\n \"skewYSelf\",\n \"slice\",\n \"slope\",\n \"slot\",\n \"small\",\n \"smil\",\n \"smooth\",\n \"smoothingTimeConstant\",\n \"snapToLines\",\n \"snapshotItem\",\n \"snapshotLength\",\n \"some\",\n \"sort\",\n \"sortingCode\",\n \"source\",\n \"sourceBuffer\",\n \"sourceBuffers\",\n \"sourceCapabilities\",\n \"sourceFile\",\n \"sourceIndex\",\n \"sourceMap\",\n \"sources\",\n \"spacing\",\n \"span\",\n \"speak\",\n \"speakAs\",\n \"speaking\",\n \"species\",\n \"specified\",\n \"specularConstant\",\n \"specularExponent\",\n \"speechSynthesis\",\n \"speed\",\n \"speedOfSound\",\n \"spellcheck\",\n \"splice\",\n \"split\",\n \"splitText\",\n \"spreadMethod\",\n \"sqrt\",\n \"src\",\n \"srcElement\",\n \"srcFactor\",\n \"srcFilter\",\n \"srcObject\",\n \"srcUrn\",\n \"srcdoc\",\n \"srclang\",\n \"srcset\",\n \"stack\",\n \"stackTraceLimit\",\n \"stacktrace\",\n \"stageParameters\",\n \"standalone\",\n \"standby\",\n \"start\",\n \"startContainer\",\n \"startIce\",\n \"startMessages\",\n \"startNotifications\",\n \"startOffset\",\n \"startProfiling\",\n \"startRendering\",\n \"startShark\",\n \"startTime\",\n \"startsWith\",\n \"state\",\n \"status\",\n \"statusCode\",\n \"statusMessage\",\n \"statusText\",\n \"statusbar\",\n \"stdDeviationX\",\n \"stdDeviationY\",\n \"stencilBack\",\n \"stencilClearValue\",\n \"stencilFront\",\n \"stencilFunc\",\n \"stencilFuncSeparate\",\n \"stencilLoadOp\",\n \"stencilMask\",\n \"stencilMaskSeparate\",\n \"stencilOp\",\n \"stencilOpSeparate\",\n \"stencilReadMask\",\n \"stencilReadOnly\",\n \"stencilStoreOp\",\n \"stencilWriteMask\",\n \"step\",\n \"stepDown\",\n \"stepMismatch\",\n \"stepMode\",\n \"stepUp\",\n \"sticky\",\n \"stitchTiles\",\n \"stop\",\n \"stop-color\",\n \"stop-opacity\",\n \"stopColor\",\n \"stopImmediatePropagation\",\n \"stopNotifications\",\n \"stopOpacity\",\n \"stopProfiling\",\n \"stopPropagation\",\n \"stopShark\",\n \"stopped\",\n \"storage\",\n \"storageArea\",\n \"storageName\",\n \"storageStatus\",\n \"storageTexture\",\n \"store\",\n \"storeOp\",\n \"storeSiteSpecificTrackingException\",\n \"storeWebWideTrackingException\",\n \"stpVersion\",\n \"stream\",\n \"streams\",\n \"stretch\",\n \"strike\",\n \"string\",\n \"stringValue\",\n \"stringify\",\n \"stripIndexFormat\",\n \"stroke\",\n \"stroke-dasharray\",\n \"stroke-dashoffset\",\n \"stroke-linecap\",\n \"stroke-linejoin\",\n \"stroke-miterlimit\",\n \"stroke-opacity\",\n \"stroke-width\",\n \"strokeDasharray\",\n \"strokeDashoffset\",\n \"strokeLinecap\",\n \"strokeLinejoin\",\n \"strokeMiterlimit\",\n \"strokeOpacity\",\n \"strokeRect\",\n \"strokeStyle\",\n \"strokeText\",\n \"strokeWidth\",\n \"style\",\n \"styleFloat\",\n \"styleMap\",\n \"styleMedia\",\n \"styleSheet\",\n \"styleSheetSets\",\n \"styleSheets\",\n \"sub\",\n \"subarray\",\n \"subject\",\n \"submit\",\n \"submitFrame\",\n \"submitter\",\n \"subscribe\",\n \"substr\",\n \"substring\",\n \"substringData\",\n \"subtle\",\n \"subtree\",\n \"suffix\",\n \"suffixes\",\n \"summary\",\n \"sup\",\n \"supported\",\n \"supportedContentEncodings\",\n \"supportedEntryTypes\",\n \"supports\",\n \"supportsSession\",\n \"surfaceScale\",\n \"surroundContents\",\n \"suspend\",\n \"suspendRedraw\",\n \"swapCache\",\n \"swapNode\",\n \"sweepFlag\",\n \"symbols\",\n \"sync\",\n \"sysexEnabled\",\n \"system\",\n \"systemCode\",\n \"systemId\",\n \"systemLanguage\",\n \"systemXDPI\",\n \"systemYDPI\",\n \"tBodies\",\n \"tFoot\",\n \"tHead\",\n \"tabIndex\",\n \"table\",\n \"table-layout\",\n \"tableLayout\",\n \"tableValues\",\n \"tag\",\n \"tagName\",\n \"tagUrn\",\n \"tags\",\n \"taintEnabled\",\n \"takePhoto\",\n \"takeRecords\",\n \"tan\",\n \"tangentialPressure\",\n \"tanh\",\n \"target\",\n \"targetElement\",\n \"targetRayMode\",\n \"targetRaySpace\",\n \"targetTouches\",\n \"targetX\",\n \"targetY\",\n \"targets\",\n \"tcpType\",\n \"tee\",\n \"tel\",\n \"terminate\",\n \"test\",\n \"texImage2D\",\n \"texImage3D\",\n \"texParameterf\",\n \"texParameteri\",\n \"texStorage2D\",\n \"texStorage3D\",\n \"texSubImage2D\",\n \"texSubImage3D\",\n \"text\",\n \"text-align\",\n \"text-align-last\",\n \"text-anchor\",\n \"text-combine-upright\",\n \"text-decoration\",\n \"text-decoration-color\",\n \"text-decoration-line\",\n \"text-decoration-skip-ink\",\n \"text-decoration-style\",\n \"text-decoration-thickness\",\n \"text-emphasis\",\n \"text-emphasis-color\",\n \"text-emphasis-position\",\n \"text-emphasis-style\",\n \"text-indent\",\n \"text-justify\",\n \"text-orientation\",\n \"text-overflow\",\n \"text-rendering\",\n \"text-shadow\",\n \"text-transform\",\n \"text-underline-offset\",\n \"text-underline-position\",\n \"textAlign\",\n \"textAlignLast\",\n \"textAnchor\",\n \"textAutospace\",\n \"textBaseline\",\n \"textCombineUpright\",\n \"textContent\",\n \"textDecoration\",\n \"textDecorationBlink\",\n \"textDecorationColor\",\n \"textDecorationLine\",\n \"textDecorationLineThrough\",\n \"textDecorationNone\",\n \"textDecorationOverline\",\n \"textDecorationSkipInk\",\n \"textDecorationStyle\",\n \"textDecorationThickness\",\n \"textDecorationUnderline\",\n \"textEmphasis\",\n \"textEmphasisColor\",\n \"textEmphasisPosition\",\n \"textEmphasisStyle\",\n \"textIndent\",\n \"textJustify\",\n \"textJustifyTrim\",\n \"textKashida\",\n \"textKashidaSpace\",\n \"textLength\",\n \"textOrientation\",\n \"textOverflow\",\n \"textRendering\",\n \"textShadow\",\n \"textTracks\",\n \"textTransform\",\n \"textUnderlineOffset\",\n \"textUnderlinePosition\",\n \"texture\",\n \"then\",\n \"threadId\",\n \"threshold\",\n \"thresholds\",\n \"tiltX\",\n \"tiltY\",\n \"time\",\n \"timeEnd\",\n \"timeLog\",\n \"timeOrigin\",\n \"timeRemaining\",\n \"timeStamp\",\n \"timecode\",\n \"timeline\",\n \"timelineTime\",\n \"timeout\",\n \"timestamp\",\n \"timestampOffset\",\n \"timestampWrites\",\n \"timing\",\n \"title\",\n \"to\",\n \"toArray\",\n \"toBlob\",\n \"toDataURL\",\n \"toDateString\",\n \"toElement\",\n \"toExponential\",\n \"toFixed\",\n \"toFloat32Array\",\n \"toFloat64Array\",\n \"toGMTString\",\n \"toISOString\",\n \"toJSON\",\n \"toLocaleDateString\",\n \"toLocaleFormat\",\n \"toLocaleLowerCase\",\n \"toLocaleString\",\n \"toLocaleTimeString\",\n \"toLocaleUpperCase\",\n \"toLowerCase\",\n \"toMatrix\",\n \"toMethod\",\n \"toPrecision\",\n \"toPrimitive\",\n \"toSdp\",\n \"toSource\",\n \"toStaticHTML\",\n \"toString\",\n \"toStringTag\",\n \"toSum\",\n \"toTimeString\",\n \"toUTCString\",\n \"toUpperCase\",\n \"toggle\",\n \"toggleAttribute\",\n \"toggleLongPressEnabled\",\n \"tone\",\n \"toneBuffer\",\n \"tooLong\",\n \"tooShort\",\n \"toolbar\",\n \"top\",\n \"topMargin\",\n \"topology\",\n \"total\",\n \"totalFrameDelay\",\n \"totalVideoFrames\",\n \"touch-action\",\n \"touchAction\",\n \"touched\",\n \"touches\",\n \"trace\",\n \"track\",\n \"trackVisibility\",\n \"transaction\",\n \"transactions\",\n \"transceiver\",\n \"transferControlToOffscreen\",\n \"transferFromImageBitmap\",\n \"transferImageBitmap\",\n \"transferIn\",\n \"transferOut\",\n \"transferSize\",\n \"transferToImageBitmap\",\n \"transform\",\n \"transform-box\",\n \"transform-origin\",\n \"transform-style\",\n \"transformBox\",\n \"transformFeedbackVaryings\",\n \"transformOrigin\",\n \"transformPoint\",\n \"transformString\",\n \"transformStyle\",\n \"transformToDocument\",\n \"transformToFragment\",\n \"transition\",\n \"transition-delay\",\n \"transition-duration\",\n \"transition-property\",\n \"transition-timing-function\",\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionProperty\",\n \"transitionTimingFunction\",\n \"translate\",\n \"translateSelf\",\n \"translationX\",\n \"translationY\",\n \"transport\",\n \"trim\",\n \"trimEnd\",\n \"trimLeft\",\n \"trimRight\",\n \"trimStart\",\n \"trueSpeed\",\n \"trunc\",\n \"truncate\",\n \"trustedTypes\",\n \"turn\",\n \"twist\",\n \"type\",\n \"typeDetail\",\n \"typeMismatch\",\n \"typeMustMatch\",\n \"types\",\n \"u2f\",\n \"ubound\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8Clamped\",\n \"unclippedDepth\",\n \"unconfigure\",\n \"undefined\",\n \"unescape\",\n \"uneval\",\n \"unicode\",\n \"unicode-bidi\",\n \"unicodeBidi\",\n \"unicodeRange\",\n \"uniform1f\",\n \"uniform1fv\",\n \"uniform1i\",\n \"uniform1iv\",\n \"uniform1ui\",\n \"uniform1uiv\",\n \"uniform2f\",\n \"uniform2fv\",\n \"uniform2i\",\n \"uniform2iv\",\n \"uniform2ui\",\n \"uniform2uiv\",\n \"uniform3f\",\n \"uniform3fv\",\n \"uniform3i\",\n \"uniform3iv\",\n \"uniform3ui\",\n \"uniform3uiv\",\n \"uniform4f\",\n \"uniform4fv\",\n \"uniform4i\",\n \"uniform4iv\",\n \"uniform4ui\",\n \"uniform4uiv\",\n \"uniformBlockBinding\",\n \"uniformMatrix2fv\",\n \"uniformMatrix2x3fv\",\n \"uniformMatrix2x4fv\",\n \"uniformMatrix3fv\",\n \"uniformMatrix3x2fv\",\n \"uniformMatrix3x4fv\",\n \"uniformMatrix4fv\",\n \"uniformMatrix4x2fv\",\n \"uniformMatrix4x3fv\",\n \"unique\",\n \"uniqueID\",\n \"uniqueNumber\",\n \"unit\",\n \"unitType\",\n \"units\",\n \"unloadEventEnd\",\n \"unloadEventStart\",\n \"unlock\",\n \"unmap\",\n \"unmount\",\n \"unobserve\",\n \"unpause\",\n \"unpauseAnimations\",\n \"unreadCount\",\n \"unregister\",\n \"unregisterContentHandler\",\n \"unregisterProtocolHandler\",\n \"unscopables\",\n \"unselectable\",\n \"unshift\",\n \"unsubscribe\",\n \"unsuspendRedraw\",\n \"unsuspendRedrawAll\",\n \"unwatch\",\n \"unwrapKey\",\n \"upDegrees\",\n \"upX\",\n \"upY\",\n \"upZ\",\n \"update\",\n \"updateCommands\",\n \"updateIce\",\n \"updateInterval\",\n \"updatePlaybackRate\",\n \"updateRenderState\",\n \"updateSettings\",\n \"updateTiming\",\n \"updateViaCache\",\n \"updateWith\",\n \"updated\",\n \"updating\",\n \"upgrade\",\n \"upload\",\n \"uploadTotal\",\n \"uploaded\",\n \"upper\",\n \"upperBound\",\n \"upperOpen\",\n \"uri\",\n \"url\",\n \"urn\",\n \"urns\",\n \"usage\",\n \"usages\",\n \"usb\",\n \"usbVersionMajor\",\n \"usbVersionMinor\",\n \"usbVersionSubminor\",\n \"useCurrentView\",\n \"useMap\",\n \"useProgram\",\n \"usedSpace\",\n \"user-select\",\n \"userActivation\",\n \"userAgent\",\n \"userAgentData\",\n \"userChoice\",\n \"userHandle\",\n \"userHint\",\n \"userLanguage\",\n \"userSelect\",\n \"userVisibleOnly\",\n \"username\",\n \"usernameFragment\",\n \"utterance\",\n \"uuid\",\n \"v8BreakIterator\",\n \"vAlign\",\n \"vLink\",\n \"valid\",\n \"validate\",\n \"validateProgram\",\n \"validationMessage\",\n \"validity\",\n \"value\",\n \"valueAsDate\",\n \"valueAsNumber\",\n \"valueAsString\",\n \"valueInSpecifiedUnits\",\n \"valueMissing\",\n \"valueOf\",\n \"valueText\",\n \"valueType\",\n \"values\",\n \"variable\",\n \"variant\",\n \"variationSettings\",\n \"vector-effect\",\n \"vectorEffect\",\n \"velocityAngular\",\n \"velocityExpansion\",\n \"velocityX\",\n \"velocityY\",\n \"vendor\",\n \"vendorId\",\n \"vendorSub\",\n \"verify\",\n \"version\",\n \"vertex\",\n \"vertexAttrib1f\",\n \"vertexAttrib1fv\",\n \"vertexAttrib2f\",\n \"vertexAttrib2fv\",\n \"vertexAttrib3f\",\n \"vertexAttrib3fv\",\n \"vertexAttrib4f\",\n \"vertexAttrib4fv\",\n \"vertexAttribDivisor\",\n \"vertexAttribDivisorANGLE\",\n \"vertexAttribI4i\",\n \"vertexAttribI4iv\",\n \"vertexAttribI4ui\",\n \"vertexAttribI4uiv\",\n \"vertexAttribIPointer\",\n \"vertexAttribPointer\",\n \"vertical\",\n \"vertical-align\",\n \"verticalAlign\",\n \"verticalOverflow\",\n \"vh\",\n \"vibrate\",\n \"vibrationActuator\",\n \"videoBitsPerSecond\",\n \"videoHeight\",\n \"videoTracks\",\n \"videoWidth\",\n \"view\",\n \"viewBox\",\n \"viewBoxString\",\n \"viewDimension\",\n \"viewFormats\",\n \"viewTarget\",\n \"viewTargetString\",\n \"viewport\",\n \"viewportAnchorX\",\n \"viewportAnchorY\",\n \"viewportElement\",\n \"views\",\n \"violatedDirective\",\n \"visibility\",\n \"visibilityState\",\n \"visible\",\n \"visualViewport\",\n \"vlinkColor\",\n \"vmax\",\n \"vmin\",\n \"voice\",\n \"voiceURI\",\n \"volume\",\n \"vrml\",\n \"vspace\",\n \"vw\",\n \"w\",\n \"wait\",\n \"waitSync\",\n \"waiting\",\n \"wake\",\n \"wakeLock\",\n \"wand\",\n \"warn\",\n \"wasClean\",\n \"wasDiscarded\",\n \"watch\",\n \"watchAvailability\",\n \"watchPosition\",\n \"webdriver\",\n \"webkitAddKey\",\n \"webkitAlignContent\",\n \"webkitAlignItems\",\n \"webkitAlignSelf\",\n \"webkitAnimation\",\n \"webkitAnimationDelay\",\n \"webkitAnimationDirection\",\n \"webkitAnimationDuration\",\n \"webkitAnimationFillMode\",\n \"webkitAnimationIterationCount\",\n \"webkitAnimationName\",\n \"webkitAnimationPlayState\",\n \"webkitAnimationTimingFunction\",\n \"webkitAppearance\",\n \"webkitAudioContext\",\n \"webkitAudioDecodedByteCount\",\n \"webkitAudioPannerNode\",\n \"webkitBackfaceVisibility\",\n \"webkitBackground\",\n \"webkitBackgroundAttachment\",\n \"webkitBackgroundClip\",\n \"webkitBackgroundColor\",\n \"webkitBackgroundImage\",\n \"webkitBackgroundOrigin\",\n \"webkitBackgroundPosition\",\n \"webkitBackgroundPositionX\",\n \"webkitBackgroundPositionY\",\n \"webkitBackgroundRepeat\",\n \"webkitBackgroundSize\",\n \"webkitBackingStorePixelRatio\",\n \"webkitBorderBottomLeftRadius\",\n \"webkitBorderBottomRightRadius\",\n \"webkitBorderImage\",\n \"webkitBorderImageOutset\",\n \"webkitBorderImageRepeat\",\n \"webkitBorderImageSlice\",\n \"webkitBorderImageSource\",\n \"webkitBorderImageWidth\",\n \"webkitBorderRadius\",\n \"webkitBorderTopLeftRadius\",\n \"webkitBorderTopRightRadius\",\n \"webkitBoxAlign\",\n \"webkitBoxDirection\",\n \"webkitBoxFlex\",\n \"webkitBoxOrdinalGroup\",\n \"webkitBoxOrient\",\n \"webkitBoxPack\",\n \"webkitBoxShadow\",\n \"webkitBoxSizing\",\n \"webkitCancelAnimationFrame\",\n \"webkitCancelFullScreen\",\n \"webkitCancelKeyRequest\",\n \"webkitCancelRequestAnimationFrame\",\n \"webkitClearResourceTimings\",\n \"webkitClosedCaptionsVisible\",\n \"webkitConvertPointFromNodeToPage\",\n \"webkitConvertPointFromPageToNode\",\n \"webkitCreateShadowRoot\",\n \"webkitCurrentFullScreenElement\",\n \"webkitCurrentPlaybackTargetIsWireless\",\n \"webkitDecodedFrameCount\",\n \"webkitDirectionInvertedFromDevice\",\n \"webkitDisplayingFullscreen\",\n \"webkitDroppedFrameCount\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitEntries\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n \"webkitExitPointerLock\",\n \"webkitFilter\",\n \"webkitFlex\",\n \"webkitFlexBasis\",\n \"webkitFlexDirection\",\n \"webkitFlexFlow\",\n \"webkitFlexGrow\",\n \"webkitFlexShrink\",\n \"webkitFlexWrap\",\n \"webkitFullScreenKeyboardInputAllowed\",\n \"webkitFullscreenElement\",\n \"webkitFullscreenEnabled\",\n \"webkitGenerateKeyRequest\",\n \"webkitGetAsEntry\",\n \"webkitGetDatabaseNames\",\n \"webkitGetEntries\",\n \"webkitGetEntriesByName\",\n \"webkitGetEntriesByType\",\n \"webkitGetFlowByName\",\n \"webkitGetGamepads\",\n \"webkitGetImageDataHD\",\n \"webkitGetNamedFlows\",\n \"webkitGetRegionFlowRanges\",\n \"webkitGetUserMedia\",\n \"webkitHasClosedCaptions\",\n \"webkitHidden\",\n \"webkitIDBCursor\",\n \"webkitIDBDatabase\",\n \"webkitIDBDatabaseError\",\n \"webkitIDBDatabaseException\",\n \"webkitIDBFactory\",\n \"webkitIDBIndex\",\n \"webkitIDBKeyRange\",\n \"webkitIDBObjectStore\",\n \"webkitIDBRequest\",\n \"webkitIDBTransaction\",\n \"webkitImageSmoothingEnabled\",\n \"webkitIndexedDB\",\n \"webkitInitMessageEvent\",\n \"webkitIsFullScreen\",\n \"webkitJustifyContent\",\n \"webkitKeys\",\n \"webkitLineClamp\",\n \"webkitLineDashOffset\",\n \"webkitLockOrientation\",\n \"webkitMask\",\n \"webkitMaskClip\",\n \"webkitMaskComposite\",\n \"webkitMaskImage\",\n \"webkitMaskOrigin\",\n \"webkitMaskPosition\",\n \"webkitMaskPositionX\",\n \"webkitMaskPositionY\",\n \"webkitMaskRepeat\",\n \"webkitMaskSize\",\n \"webkitMatchesSelector\",\n \"webkitMediaStream\",\n \"webkitNotifications\",\n \"webkitOfflineAudioContext\",\n \"webkitOrder\",\n \"webkitOrientation\",\n \"webkitPeerConnection00\",\n \"webkitPersistentStorage\",\n \"webkitPerspective\",\n \"webkitPerspectiveOrigin\",\n \"webkitPointerLockElement\",\n \"webkitPostMessage\",\n \"webkitPreservesPitch\",\n \"webkitPutImageDataHD\",\n \"webkitRTCPeerConnection\",\n \"webkitRegionOverset\",\n \"webkitRelativePath\",\n \"webkitRequestAnimationFrame\",\n \"webkitRequestFileSystem\",\n \"webkitRequestFullScreen\",\n \"webkitRequestFullscreen\",\n \"webkitRequestPointerLock\",\n \"webkitResolveLocalFileSystemURL\",\n \"webkitSetMediaKeys\",\n \"webkitSetResourceTimingBufferSize\",\n \"webkitShadowRoot\",\n \"webkitShowPlaybackTargetPicker\",\n \"webkitSlice\",\n \"webkitSpeechGrammar\",\n \"webkitSpeechGrammarList\",\n \"webkitSpeechRecognition\",\n \"webkitSpeechRecognitionError\",\n \"webkitSpeechRecognitionEvent\",\n \"webkitStorageInfo\",\n \"webkitSupportsFullscreen\",\n \"webkitTemporaryStorage\",\n \"webkitTextFillColor\",\n \"webkitTextSizeAdjust\",\n \"webkitTextStroke\",\n \"webkitTextStrokeColor\",\n \"webkitTextStrokeWidth\",\n \"webkitTransform\",\n \"webkitTransformOrigin\",\n \"webkitTransformStyle\",\n \"webkitTransition\",\n \"webkitTransitionDelay\",\n \"webkitTransitionDuration\",\n \"webkitTransitionProperty\",\n \"webkitTransitionTimingFunction\",\n \"webkitURL\",\n \"webkitUnlockOrientation\",\n \"webkitUserSelect\",\n \"webkitVideoDecodedByteCount\",\n \"webkitVisibilityState\",\n \"webkitWirelessVideoPlaybackDisabled\",\n \"webkitdirectory\",\n \"webkitdropzone\",\n \"webstore\",\n \"weight\",\n \"wgslLanguageFeatures\",\n \"whatToShow\",\n \"wheelDelta\",\n \"wheelDeltaX\",\n \"wheelDeltaY\",\n \"whenDefined\",\n \"which\",\n \"white-space\",\n \"whiteSpace\",\n \"wholeText\",\n \"widows\",\n \"width\",\n \"will-change\",\n \"willChange\",\n \"willValidate\",\n \"window\",\n \"withCredentials\",\n \"word-break\",\n \"word-spacing\",\n \"word-wrap\",\n \"wordBreak\",\n \"wordSpacing\",\n \"wordWrap\",\n \"workerStart\",\n \"wow64\",\n \"wrap\",\n \"wrapKey\",\n \"writable\",\n \"writableAuxiliaries\",\n \"write\",\n \"writeBuffer\",\n \"writeMask\",\n \"writeText\",\n \"writeTexture\",\n \"writeTimestamp\",\n \"writeValue\",\n \"writeWithoutResponse\",\n \"writeln\",\n \"writing-mode\",\n \"writingMode\",\n \"x\",\n \"x1\",\n \"x2\",\n \"xChannelSelector\",\n \"xmlEncoding\",\n \"xmlStandalone\",\n \"xmlVersion\",\n \"xmlbase\",\n \"xmllang\",\n \"xmlspace\",\n \"xor\",\n \"xr\",\n \"y\",\n \"y1\",\n \"y2\",\n \"yChannelSelector\",\n \"yandex\",\n \"z\",\n \"z-index\",\n \"zIndex\",\n \"zoom\",\n \"zoomAndPan\",\n \"zoomRectScreen\",\n];\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\n\"use strict\";\n/* global global, self */\n\nimport {\n defaults,\n push_uniq,\n has_annotation,\n clear_annotation,\n} from \"./utils/index.js\";\nimport { base54 } from \"./scope.js\";\nimport {\n AST_Binary,\n AST_Call,\n AST_ClassPrivateProperty,\n AST_Conditional,\n AST_Dot,\n AST_DotHash,\n AST_ObjectKeyVal,\n AST_ObjectProperty,\n AST_PrivateMethod,\n AST_PrivateGetter,\n AST_PrivateSetter,\n AST_PrivateIn,\n AST_Sequence,\n AST_String,\n AST_Sub,\n TreeTransformer,\n TreeWalker,\n _KEY,\n _MANGLEPROP,\n\n walk,\n} from \"./ast.js\";\nimport { domprops } from \"../tools/domprops.js\";\n\nfunction find_builtins(reserved) {\n domprops.forEach(add);\n\n // Compatibility fix for some standard defined globals not defined on every js environment\n var new_globals = [\"Symbol\", \"Map\", \"Promise\", \"Proxy\", \"Reflect\", \"Set\", \"WeakMap\", \"WeakSet\"];\n var objects = {};\n var global_ref = typeof global === \"object\" ? global : self;\n\n new_globals.forEach(function (new_global) {\n objects[new_global] = global_ref[new_global] || function() {};\n });\n\n [\n \"null\",\n \"true\",\n \"false\",\n \"NaN\",\n \"Infinity\",\n \"-Infinity\",\n \"undefined\",\n ].forEach(add);\n [ Object, Array, Function, Number,\n String, Boolean, Error, Math,\n Date, RegExp, objects.Symbol, ArrayBuffer,\n DataView, decodeURI, decodeURIComponent,\n encodeURI, encodeURIComponent, eval, EvalError,\n Float32Array, Float64Array, Int8Array, Int16Array,\n Int32Array, isFinite, isNaN, JSON, objects.Map, parseFloat,\n parseInt, objects.Promise, objects.Proxy, RangeError, ReferenceError,\n objects.Reflect, objects.Set, SyntaxError, TypeError, Uint8Array,\n Uint8ClampedArray, Uint16Array, Uint32Array, URIError,\n objects.WeakMap, objects.WeakSet\n ].forEach(function(ctor) {\n Object.getOwnPropertyNames(ctor).map(add);\n if (ctor.prototype) {\n Object.getOwnPropertyNames(ctor.prototype).map(add);\n }\n });\n function add(name) {\n reserved.add(name);\n }\n}\n\nfunction reserve_quoted_keys(ast, reserved) {\n function add(name) {\n push_uniq(reserved, name);\n }\n\n ast.walk(new TreeWalker(function(node) {\n if (node instanceof AST_ObjectKeyVal && node.quote) {\n add(node.key);\n } else if (node instanceof AST_ObjectProperty && node.quote) {\n add(node.key.name);\n } else if (node instanceof AST_Sub) {\n addStrings(node.property, add);\n }\n }));\n}\n\nfunction addStrings(node, add) {\n node.walk(new TreeWalker(function(node) {\n if (node instanceof AST_Sequence) {\n addStrings(node.tail_node(), add);\n } else if (node instanceof AST_String) {\n add(node.value);\n } else if (node instanceof AST_Conditional) {\n addStrings(node.consequent, add);\n addStrings(node.alternative, add);\n }\n return true;\n }));\n}\n\nfunction mangle_private_properties(ast, options) {\n var cprivate = -1;\n var private_cache = new Map();\n var nth_identifier = options.nth_identifier || base54;\n\n ast = ast.transform(new TreeTransformer(function(node) {\n if (\n node instanceof AST_ClassPrivateProperty\n || node instanceof AST_PrivateMethod\n || node instanceof AST_PrivateGetter\n || node instanceof AST_PrivateSetter\n || node instanceof AST_PrivateIn\n ) {\n node.key.name = mangle_private(node.key.name);\n } else if (node instanceof AST_DotHash) {\n node.property = mangle_private(node.property);\n }\n }));\n return ast;\n\n function mangle_private(name) {\n let mangled = private_cache.get(name);\n if (!mangled) {\n mangled = nth_identifier.get(++cprivate);\n private_cache.set(name, mangled);\n }\n\n return mangled;\n }\n}\n\nfunction find_annotated_props(ast) {\n var annotated_props = new Set();\n walk(ast, node => {\n if (\n node instanceof AST_ClassPrivateProperty\n || node instanceof AST_PrivateMethod\n || node instanceof AST_PrivateGetter\n || node instanceof AST_PrivateSetter\n || node instanceof AST_DotHash\n ) {\n // handled by mangle_private_properties\n } else if (node instanceof AST_ObjectKeyVal) {\n if (typeof node.key == \"string\" && has_annotation(node, _MANGLEPROP)) {\n annotated_props.add(node.key);\n }\n } else if (node instanceof AST_ObjectProperty) {\n // setter or getter, since KeyVal is handled above\n if (has_annotation(node, _MANGLEPROP)) {\n annotated_props.add(node.key.name);\n }\n } else if (node instanceof AST_Dot) {\n if (has_annotation(node, _MANGLEPROP)) {\n annotated_props.add(node.property);\n }\n } else if (node instanceof AST_Sub) {\n if (node.property instanceof AST_String && has_annotation(node, _MANGLEPROP)) {\n annotated_props.add(node.property.value);\n }\n }\n });\n return annotated_props;\n}\n\nfunction mangle_properties(ast, options, annotated_props = find_annotated_props(ast)) {\n options = defaults(options, {\n builtins: false,\n cache: null,\n debug: false,\n keep_quoted: false,\n nth_identifier: base54,\n only_cache: false,\n regex: null,\n reserved: null,\n undeclared: false,\n only_annotated: false,\n }, true);\n\n var nth_identifier = options.nth_identifier;\n\n var reserved_option = options.reserved;\n if (!Array.isArray(reserved_option)) reserved_option = [reserved_option];\n var reserved = new Set(reserved_option);\n if (!options.builtins) find_builtins(reserved);\n\n var cname = -1;\n\n var cache;\n if (options.cache) {\n cache = options.cache.props;\n } else {\n cache = new Map();\n }\n\n var only_annotated = options.only_annotated;\n var regex = options.regex && new RegExp(options.regex);\n\n // note debug is either false (disabled), or a string of the debug suffix to use (enabled).\n // note debug may be enabled as an empty string, which is falsey. Also treat passing 'true'\n // the same as passing an empty string.\n var debug = options.debug !== false;\n var debug_name_suffix;\n if (debug) {\n debug_name_suffix = (options.debug === true ? \"\" : options.debug);\n }\n\n var names_to_mangle = new Set();\n var unmangleable = new Set();\n // Track each already-mangled name to prevent nth_identifier from generating\n // the same name.\n cache.forEach((mangled_name) => unmangleable.add(mangled_name));\n\n var keep_quoted = !!options.keep_quoted;\n\n // step 1: find candidates to mangle\n ast.walk(new TreeWalker(function(node) {\n if (\n node instanceof AST_ClassPrivateProperty\n || node instanceof AST_PrivateMethod\n || node instanceof AST_PrivateGetter\n || node instanceof AST_PrivateSetter\n || node instanceof AST_DotHash\n ) {\n // handled by mangle_private_properties\n } else if (node instanceof AST_ObjectKeyVal) {\n if (typeof node.key == \"string\" && (!keep_quoted || !node.quote)) {\n add(node.key);\n }\n } else if (node instanceof AST_ObjectProperty) {\n // setter or getter, since KeyVal is handled above\n if (!keep_quoted || !node.quote) {\n add(node.key.name);\n }\n } else if (node instanceof AST_Dot) {\n var declared = !!options.undeclared;\n if (!declared) {\n var root = node;\n while (root.expression) {\n root = root.expression;\n }\n declared = !(root.thedef && root.thedef.undeclared);\n }\n if (declared &&\n (!keep_quoted || !node.quote)) {\n add(node.property);\n }\n } else if (node instanceof AST_Sub) {\n if (!keep_quoted) {\n addStrings(node.property, add);\n }\n } else if (node instanceof AST_Call\n && node.expression.print_to_string() == \"Object.defineProperty\") {\n addStrings(node.args[1], add);\n } else if (node instanceof AST_Binary && node.operator === \"in\") {\n addStrings(node.left, add);\n } else if (node instanceof AST_String && has_annotation(node, _KEY)) {\n add(node.value);\n }\n }));\n\n // step 2: transform the tree, renaming properties\n return ast.transform(new TreeTransformer(function(node) {\n if (\n node instanceof AST_ClassPrivateProperty\n || node instanceof AST_PrivateMethod\n || node instanceof AST_PrivateGetter\n || node instanceof AST_PrivateSetter\n || node instanceof AST_DotHash\n ) {\n // handled by mangle_private_properties\n } else if (node instanceof AST_ObjectKeyVal) {\n if (typeof node.key == \"string\" && (!keep_quoted || !node.quote)) {\n node.key = mangle(node.key);\n }\n } else if (node instanceof AST_ObjectProperty) {\n // setter, getter, method or class field\n if (!keep_quoted || !node.quote) {\n node.key.name = mangle(node.key.name);\n }\n } else if (node instanceof AST_Dot) {\n if (!keep_quoted || !node.quote) {\n node.property = mangle(node.property);\n }\n } else if (!keep_quoted && node instanceof AST_Sub) {\n node.property = mangleStrings(node.property);\n } else if (node instanceof AST_Call\n && node.expression.print_to_string() == \"Object.defineProperty\") {\n node.args[1] = mangleStrings(node.args[1]);\n } else if (node instanceof AST_Binary && node.operator === \"in\") {\n node.left = mangleStrings(node.left);\n } else if (node instanceof AST_String && has_annotation(node, _KEY)) {\n // Clear _KEY annotation to prevent double mangling\n clear_annotation(node, _KEY);\n node.value = mangle(node.value);\n }\n }));\n\n // only function declarations after this line\n\n function can_mangle(name) {\n if (unmangleable.has(name)) return false;\n if (reserved.has(name)) return false;\n if (options.only_cache) {\n return cache.has(name);\n }\n if (/^-?[0-9]+(\\.[0-9]+)?(e[+-][0-9]+)?$/.test(name)) return false;\n return true;\n }\n\n function should_mangle(name) {\n if (only_annotated && !annotated_props.has(name)) return false;\n if (regex && !regex.test(name)) {\n return annotated_props.has(name);\n }\n if (reserved.has(name)) return false;\n return cache.has(name)\n || names_to_mangle.has(name);\n }\n\n function add(name) {\n if (can_mangle(name)) {\n names_to_mangle.add(name);\n }\n\n if (!should_mangle(name)) {\n unmangleable.add(name);\n }\n }\n\n function mangle(name) {\n if (!should_mangle(name)) {\n return name;\n }\n\n var mangled = cache.get(name);\n if (!mangled) {\n if (debug) {\n // debug mode: use a prefix and suffix to preserve readability, e.g. o.foo -> o._$foo$NNN_.\n var debug_mangled = \"_$\" + name + \"$\" + debug_name_suffix + \"_\";\n\n if (can_mangle(debug_mangled)) {\n mangled = debug_mangled;\n }\n }\n\n // either debug mode is off, or it is on and we could not use the mangled name\n if (!mangled) {\n do {\n mangled = nth_identifier.get(++cname);\n } while (!can_mangle(mangled));\n }\n\n cache.set(name, mangled);\n }\n return mangled;\n }\n\n function mangleStrings(node) {\n return node.transform(new TreeTransformer(function(node) {\n if (node instanceof AST_Sequence) {\n var last = node.expressions.length - 1;\n node.expressions[last] = mangleStrings(node.expressions[last]);\n } else if (node instanceof AST_String) {\n // Clear _KEY annotation to prevent double mangling\n clear_annotation(node, _KEY);\n node.value = mangle(node.value);\n } else if (node instanceof AST_Conditional) {\n node.consequent = mangleStrings(node.consequent);\n node.alternative = mangleStrings(node.alternative);\n }\n return node;\n }));\n }\n}\n\nexport {\n reserve_quoted_keys,\n mangle_properties,\n mangle_private_properties,\n find_annotated_props,\n};\n","\"use strict\";\n/* eslint-env browser, es6, node */\n\nimport {\n defaults,\n map_from_object,\n map_to_object,\n HOP,\n} from \"./utils/index.js\";\nimport { AST_Toplevel, AST_Node, walk, AST_Scope } from \"./ast.js\";\nimport { parse } from \"./parse.js\";\nimport { OutputStream } from \"./output.js\";\nimport { Compressor } from \"./compress/index.js\";\nimport { base54 } from \"./scope.js\";\nimport { SourceMap } from \"./sourcemap.js\";\nimport {\n mangle_properties,\n mangle_private_properties,\n reserve_quoted_keys,\n find_annotated_props,\n} from \"./propmangle.js\";\n\n// to/from base64 functions\n// Prefer built-in Buffer, if available, then use hack\n// https://developer.mozilla.org/en-US/docs/Glossary/Base64#The_Unicode_Problem\nvar to_ascii = typeof Buffer !== \"undefined\"\n ? (b64) => Buffer.from(b64, \"base64\").toString()\n : (b64) => decodeURIComponent(escape(atob(b64)));\nvar to_base64 = typeof Buffer !== \"undefined\"\n ? (str) => Buffer.from(str).toString(\"base64\")\n : (str) => btoa(unescape(encodeURIComponent(str)));\n\nfunction read_source_map(code) {\n var match = /(?:^|[^.])\\/\\/# sourceMappingURL=data:application\\/json(;[\\w=-]*)?;base64,([+/0-9A-Za-z]*=*)\\s*$/.exec(code);\n if (!match) {\n console.warn(\"inline source map not found\");\n return null;\n }\n return to_ascii(match[2]);\n}\n\nfunction set_shorthand(name, options, keys) {\n if (options[name]) {\n keys.forEach(function(key) {\n if (options[key]) {\n if (typeof options[key] != \"object\") options[key] = {};\n if (!(name in options[key])) options[key][name] = options[name];\n }\n });\n }\n}\n\nfunction init_cache(cache) {\n if (!cache) return;\n if (!(\"props\" in cache)) {\n cache.props = new Map();\n } else if (!(cache.props instanceof Map)) {\n cache.props = map_from_object(cache.props);\n }\n}\n\nfunction cache_to_json(cache) {\n return {\n props: map_to_object(cache.props)\n };\n}\n\nfunction log_input(files, options, fs, debug_folder) {\n if (!(fs && fs.writeFileSync && fs.mkdirSync)) {\n return;\n }\n\n try {\n fs.mkdirSync(debug_folder);\n } catch (e) {\n if (e.code !== \"EEXIST\") throw e;\n }\n\n const log_path = `${debug_folder}/terser-debug-${(Math.random() * 9999999) | 0}.log`;\n\n options = options || {};\n\n const options_str = JSON.stringify(options, (_key, thing) => {\n if (typeof thing === \"function\") return \"[Function \" + thing.toString() + \"]\";\n if (thing instanceof RegExp) return \"[RegExp \" + thing.toString() + \"]\";\n return thing;\n }, 4);\n\n const files_str = (file) => {\n if (typeof file === \"object\" && options.parse && options.parse.spidermonkey) {\n return JSON.stringify(file, null, 2);\n } else if (typeof file === \"object\") {\n return Object.keys(file)\n .map((key) => key + \": \" + files_str(file[key]))\n .join(\"\\n\\n\");\n } else if (typeof file === \"string\") {\n return \"```\\n\" + file + \"\\n```\";\n } else {\n return file; // What do?\n }\n };\n\n fs.writeFileSync(log_path, \"Options: \\n\" + options_str + \"\\n\\nInput files:\\n\\n\" + files_str(files) + \"\\n\");\n}\n\nfunction* minify_sync_or_async(files, options, _fs_module) {\n if (\n _fs_module\n && typeof process === \"object\"\n && process.env\n && typeof process.env.TERSER_DEBUG_DIR === \"string\"\n ) {\n log_input(files, options, _fs_module, process.env.TERSER_DEBUG_DIR);\n }\n\n options = defaults(options, {\n compress: {},\n ecma: undefined,\n enclose: false,\n ie8: false,\n keep_classnames: undefined,\n keep_fnames: false,\n mangle: {},\n module: false,\n nameCache: null,\n output: null,\n format: null,\n parse: {},\n rename: undefined,\n safari10: false,\n sourceMap: false,\n spidermonkey: false,\n timings: false,\n toplevel: false,\n warnings: false,\n wrap: false,\n }, true);\n\n var timings = options.timings && {\n start: Date.now()\n };\n if (options.keep_classnames === undefined) {\n options.keep_classnames = options.keep_fnames;\n }\n if (options.rename === undefined) {\n options.rename = options.compress && options.mangle;\n }\n if (options.output && options.format) {\n throw new Error(\"Please only specify either output or format option, preferrably format.\");\n }\n options.format = options.format || options.output || {};\n set_shorthand(\"ecma\", options, [ \"parse\", \"compress\", \"format\" ]);\n set_shorthand(\"ie8\", options, [ \"compress\", \"mangle\", \"format\" ]);\n set_shorthand(\"keep_classnames\", options, [ \"compress\", \"mangle\" ]);\n set_shorthand(\"keep_fnames\", options, [ \"compress\", \"mangle\" ]);\n set_shorthand(\"module\", options, [ \"parse\", \"compress\", \"mangle\" ]);\n set_shorthand(\"safari10\", options, [ \"mangle\", \"format\" ]);\n set_shorthand(\"toplevel\", options, [ \"compress\", \"mangle\" ]);\n set_shorthand(\"warnings\", options, [ \"compress\" ]); // legacy\n var quoted_props;\n if (options.mangle) {\n options.mangle = defaults(options.mangle, {\n cache: options.nameCache && (options.nameCache.vars || {}),\n eval: false,\n ie8: false,\n keep_classnames: false,\n keep_fnames: false,\n module: false,\n nth_identifier: base54,\n properties: false,\n reserved: [],\n safari10: false,\n toplevel: false,\n }, true);\n if (options.mangle.properties) {\n if (typeof options.mangle.properties != \"object\") {\n options.mangle.properties = {};\n }\n if (options.mangle.properties.keep_quoted) {\n quoted_props = options.mangle.properties.reserved;\n if (!Array.isArray(quoted_props)) quoted_props = [];\n options.mangle.properties.reserved = quoted_props;\n }\n if (options.nameCache && !(\"cache\" in options.mangle.properties)) {\n options.mangle.properties.cache = options.nameCache.props || {};\n }\n }\n init_cache(options.mangle.cache);\n init_cache(options.mangle.properties.cache);\n }\n if (options.sourceMap) {\n options.sourceMap = defaults(options.sourceMap, {\n asObject: false,\n content: null,\n filename: null,\n includeSources: false,\n root: null,\n url: null,\n }, true);\n }\n\n // -- Parse phase --\n if (timings) timings.parse = Date.now();\n var toplevel;\n if (files instanceof AST_Toplevel) {\n toplevel = files;\n } else {\n if (typeof files == \"string\" || (options.parse.spidermonkey && !Array.isArray(files))) {\n files = [ files ];\n }\n options.parse = options.parse || {};\n options.parse.toplevel = null;\n\n if (options.parse.spidermonkey) {\n options.parse.toplevel = AST_Node.from_mozilla_ast(Object.keys(files).reduce(function(toplevel, name) {\n if (!toplevel) return files[name];\n toplevel.body = toplevel.body.concat(files[name].body);\n return toplevel;\n }, null));\n } else {\n delete options.parse.spidermonkey;\n\n for (var name in files) if (HOP(files, name)) {\n options.parse.filename = name;\n options.parse.toplevel = parse(files[name], options.parse);\n if (options.sourceMap && options.sourceMap.content == \"inline\") {\n if (Object.keys(files).length > 1)\n throw new Error(\"inline source map only works with singular input\");\n options.sourceMap.content = read_source_map(files[name]);\n }\n }\n }\n if (options.parse.toplevel === null) {\n throw new Error(\"no source file given\");\n }\n\n toplevel = options.parse.toplevel;\n }\n if (quoted_props && options.mangle.properties.keep_quoted !== \"strict\") {\n reserve_quoted_keys(toplevel, quoted_props);\n }\n var annotated_props;\n if (options.mangle && options.mangle.properties) {\n annotated_props = find_annotated_props(toplevel);\n }\n if (options.wrap) {\n toplevel = toplevel.wrap_commonjs(options.wrap);\n }\n if (options.enclose) {\n toplevel = toplevel.wrap_enclose(options.enclose);\n }\n if (timings) timings.rename = Date.now();\n // disable rename on harmony due to expand_names bug in for-of loops\n // https://github.com/mishoo/UglifyJS2/issues/2794\n if (0 && options.rename) {\n toplevel.figure_out_scope(options.mangle);\n toplevel.expand_names(options.mangle);\n }\n\n // -- Compress phase --\n if (timings) timings.compress = Date.now();\n if (options.compress) {\n toplevel = new Compressor(options.compress, {\n mangle_options: options.mangle\n }).compress(toplevel);\n }\n\n // -- Mangle phase --\n if (timings) timings.scope = Date.now();\n if (options.mangle) toplevel.figure_out_scope(options.mangle);\n if (timings) timings.mangle = Date.now();\n if (options.mangle) {\n toplevel.compute_char_frequency(options.mangle);\n toplevel.mangle_names(options.mangle);\n toplevel = mangle_private_properties(toplevel, options.mangle);\n }\n if (timings) timings.properties = Date.now();\n if (options.mangle && options.mangle.properties) {\n toplevel = mangle_properties(toplevel, options.mangle.properties, annotated_props);\n }\n\n // Format phase\n if (timings) timings.format = Date.now();\n var result = {};\n if (options.format.ast) {\n result.ast = toplevel;\n }\n if (options.format.spidermonkey) {\n result.ast = toplevel.to_mozilla_ast();\n }\n let format_options;\n if (!HOP(options.format, \"code\") || options.format.code) {\n // Make a shallow copy so that we can modify without mutating the user's input.\n format_options = {...options.format};\n if (!format_options.ast) {\n // Destroy stuff to save RAM. (unless the deprecated `ast` option is on)\n format_options._destroy_ast = true;\n\n walk(toplevel, node => {\n if (node instanceof AST_Scope) {\n node.variables = undefined;\n node.enclosed = undefined;\n node.parent_scope = undefined;\n }\n if (node.block_scope) {\n node.block_scope.variables = undefined;\n node.block_scope.enclosed = undefined;\n node.parent_scope = undefined;\n }\n });\n }\n\n if (options.sourceMap) {\n if (options.sourceMap.includeSources && files instanceof AST_Toplevel) {\n throw new Error(\"original source content unavailable\");\n }\n format_options.source_map = yield* SourceMap({\n file: options.sourceMap.filename,\n orig: options.sourceMap.content,\n root: options.sourceMap.root,\n files: options.sourceMap.includeSources ? files : null,\n });\n }\n delete format_options.ast;\n delete format_options.code;\n delete format_options.spidermonkey;\n var stream = OutputStream(format_options);\n toplevel.print(stream);\n result.code = stream.get();\n if (options.sourceMap) {\n Object.defineProperty(result, \"map\", {\n configurable: true,\n enumerable: true,\n get() {\n const map = format_options.source_map.getEncoded();\n return (result.map = options.sourceMap.asObject ? map : JSON.stringify(map));\n },\n set(value) {\n Object.defineProperty(result, \"map\", {\n value,\n writable: true,\n });\n }\n });\n result.decoded_map = format_options.source_map.getDecoded();\n if (options.sourceMap.url == \"inline\") {\n var sourceMap = typeof result.map === \"object\" ? JSON.stringify(result.map) : result.map;\n result.code += \"\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,\" + to_base64(sourceMap);\n } else if (options.sourceMap.url) {\n result.code += \"\\n//# sourceMappingURL=\" + options.sourceMap.url;\n }\n }\n }\n if (options.nameCache && options.mangle) {\n if (options.mangle.cache) options.nameCache.vars = cache_to_json(options.mangle.cache);\n if (options.mangle.properties && options.mangle.properties.cache) {\n options.nameCache.props = cache_to_json(options.mangle.properties.cache);\n }\n }\n if (format_options && format_options.source_map) {\n format_options.source_map.destroy();\n }\n if (timings) {\n timings.end = Date.now();\n result.timings = {\n parse: 1e-3 * (timings.rename - timings.parse),\n rename: 1e-3 * (timings.compress - timings.rename),\n compress: 1e-3 * (timings.scope - timings.compress),\n scope: 1e-3 * (timings.mangle - timings.scope),\n mangle: 1e-3 * (timings.properties - timings.mangle),\n properties: 1e-3 * (timings.format - timings.properties),\n format: 1e-3 * (timings.end - timings.format),\n total: 1e-3 * (timings.end - timings.start)\n };\n }\n return result;\n}\n\nasync function minify(files, options, _fs_module) {\n const gen = minify_sync_or_async(files, options, _fs_module);\n\n let yielded;\n let val;\n do {\n val = gen.next(await yielded);\n yielded = val.value;\n } while (!val.done);\n\n return val.value;\n}\n\nfunction minify_sync(files, options, _fs_module) {\n const gen = minify_sync_or_async(files, options, _fs_module);\n\n let yielded;\n let val;\n do {\n if (yielded && typeof yielded.then === \"function\") {\n throw new Error(\"minify_sync cannot be used with the legacy source-map module\");\n }\n val = gen.next(yielded);\n yielded = val.value;\n } while (!val.done);\n\n return val.value;\n}\n\nexport {\n minify,\n minify_sync,\n to_ascii,\n};\n","/***********************************************************************\n\n A JavaScript tokenizer / parser / beautifier / compressor.\n https://github.com/mishoo/UglifyJS2\n\n -------------------------------- (C) ---------------------------------\n\n Author: Mihai Bazon\n \n http://mihai.bazon.net/blog\n\n Distributed under the BSD license:\n\n Copyright 2012 (c) Mihai Bazon \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n * Redistributions of source code must retain the above\n copyright notice, this list of conditions and the following\n disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials\n provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY\n EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGE.\n\n ***********************************************************************/\n\n\"use strict\";\n\nimport {SourceMapConsumer, SourceMapGenerator} from \"@jridgewell/source-map\";\nimport {defaults, HOP} from \"./utils/index.js\";\n\n// a small wrapper around source-map and @jridgewell/source-map\nfunction* SourceMap(options) {\n options = defaults(options, {\n file : null,\n root : null,\n orig : null,\n files: {},\n });\n\n var orig_map;\n var generator = new SourceMapGenerator({\n file : options.file,\n sourceRoot : options.root\n });\n\n let sourcesContent = {__proto__: null};\n let files = options.files;\n for (var name in files) if (HOP(files, name)) {\n sourcesContent[name] = files[name];\n }\n if (options.orig) {\n // We support both @jridgewell/source-map (which has a sync\n // SourceMapConsumer) and source-map (which has an async\n // SourceMapConsumer).\n orig_map = yield new SourceMapConsumer(options.orig);\n if (orig_map.sourcesContent) {\n orig_map.sources.forEach(function(source, i) {\n var content = orig_map.sourcesContent[i];\n if (content) {\n sourcesContent[source] = content;\n }\n });\n }\n }\n\n function add(source, gen_line, gen_col, orig_line, orig_col, name) {\n let generatedPos = { line: gen_line, column: gen_col };\n\n if (orig_map) {\n var info = orig_map.originalPositionFor({\n line: orig_line,\n column: orig_col\n });\n if (info.source === null) {\n generator.addMapping({\n generated: generatedPos,\n original: null,\n source: null,\n name: null\n });\n return;\n }\n source = info.source;\n orig_line = info.line;\n orig_col = info.column;\n name = info.name || name;\n }\n generator.addMapping({\n generated : generatedPos,\n original : { line: orig_line, column: orig_col },\n source : source,\n name : name\n });\n generator.setSourceContent(source, sourcesContent[source]);\n }\n\n function clean(map) {\n const allNull = map.sourcesContent && map.sourcesContent.every(c => c == null);\n if (allNull) delete map.sourcesContent;\n if (map.file === undefined) delete map.file;\n if (map.sourceRoot === undefined) delete map.sourceRoot;\n return map;\n }\n\n function getDecoded() {\n if (!generator.toDecodedMap) return null;\n return clean(generator.toDecodedMap());\n }\n\n function getEncoded() {\n return clean(generator.toJSON());\n }\n\n function destroy() {\n // @jridgewell/source-map's SourceMapConsumer does not need to be\n // manually freed.\n if (orig_map && orig_map.destroy) orig_map.destroy();\n }\n\n return {\n add,\n getDecoded,\n getEncoded,\n destroy,\n };\n}\n\nexport {\n SourceMap,\n};\n","\n\n\n\n\n","import { render } from \"./output.vue?vue&type=template&id=32de103e\"\nimport script from \"./output.vue?vue&type=script&lang=js\"\nexport * from \"./output.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport en from './en';\n\nconst lang = 'en';\nconst packs = { en };\n\nexport default packs[lang];\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport templates from './templates';\n\nexport default { templates };\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport app from './app';\nimport config from './config';\nimport explainer from './explainer';\nimport size from './size';\n\nexport default { app, config, explainer, size };\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nexport default {\n title: 'JavaScript Minify Tool',\n description: 'A web tool for the DigitalOcean Community to quickly minify JavaScript files.',\n liveCompression: 'Enable live compression as you type',\n compress: 'Compress Code',\n input: 'Input JavaScript',\n errors: 'Errors',\n warnings: 'Warnings',\n output: 'Output JavaScript',\n map: 'Source Map',\n mapTitle: 'Generated Source Map',\n errorMsg: 'An error occurred during minification',\n warningMsg: 'A warning was generated during the minification',\n warningsMsg: 'Some warnings were generated during the minification',\n oss: 'This tool is {link|open-source on GitHub|https://github.com/do-community/minify-tool} under the {link|Apache-2.0|https://github.com/do-community/minify-tool/blob/master/LICENSE} license! We welcome feedback and contributions.',\n};\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport compress from './compress';\nimport mangle from './mangle';\n\nexport default {\n terserDefaultsPreset: 'Use the default options for Terser, which will mangle the code but not remove unused code',\n compressionPreset: 'Enable compression with Terser defaults, mangling and removing any unused code',\n safeCompressionPreset: 'Enable compression, but preserve functions and classes from being mangled or removed',\n module: 'Module',\n moduleDesc: 'Enable if you are minifying an ES6 module',\n filename: 'File name',\n filenameDesc: 'Provide a filename for your output script to enable source map generation',\n comments: 'Comments',\n commentsRemove: 'Remove all comments',\n commentsPreserve: 'Preserve JSDoc @preserve and @license comments',\n commentsKeep: 'Keep all comments',\n compress,\n mangle,\n};\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nexport default {\n compress: 'Compress',\n compressDesc: 'Compress the output script',\n deadCodeDesc: 'Remove unreachable code from the script',\n dropConsoleDesc: 'Remove calls to console.* from the script',\n dropDebuggerDesc: 'Remove calls to debugger from the script',\n keepClassnamesDesc: 'Preserve unused classes in the script',\n keepFargsDesc: 'Preserve unused arguments within functions',\n keepFnamesDesc: 'Preserve unused functions in the script',\n keepInfinityDesc: 'Preserve `Infinity` usage, instead of replacing it with `1/0`',\n};\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nexport default {\n mangle: 'Mangle',\n mangleDesc: 'Mangle variable names within the script',\n evalDesc: 'Mangle variable names within `eval` scopes',\n classnamesDesc: 'Enable to preserve class names and not mangle them',\n fnamesDesc: 'Enable to preserve function names and not mangle them',\n toplevelDesc: 'Enable to mangle names within the top-level scope',\n safari10Desc: 'Enable to work around a Safari 10 iterator bug',\n};\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nexport default {\n whyMinifyYourJavaScript: 'Why minify your JavaScript?',\n whyMinifyYourJavaScriptContent: [\n 'Minifying, or minification, is where you remove unnecessary characters from your code, whether they might be whitespace (such as indentation), code that isn\\'t ever used, comments in your code or long names for variables that can be replaced with something shorter.',\n 'Minification of your code results in it taking up less space, making it faster to send from a server to a client, as well as using less bandwidth in doing so. This improves the user experience on your site as it can load faster.',\n 'You should only minify the code that you are distributing though, not your source version that you are writing, as minified code is harder to read and understand, making debugging more complicated. Providing a source map helps with this, as it maps the minified code back to the original source code, allowing production errors to be mapped to the correct bit of code in the source version.',\n ],\n usingTerserInAProductionPipeline: 'Using Terser in a production pipeline',\n usingTerserInAProductionPipelineContent: [\n 'There are many different options available for minifying your code in a production workflow, such as uglify-js or minify, but Terser seems to be the most popular tool currently available, as it is able to handle both ES5 & ES6 syntax out of the box.',\n 'Terser is available on NPM, and can be installed in your project with `npm install terser`. Optionally, you can install it globally on your machine by adding the `-g` flag to the command, allowing the CLI to be used anywhere and the module to be included in any project.',\n 'Once installed, there are two main ways to interact with Terser. Either, you can use the command line interface (CLI) via your terminal/console, or you can use the Terser JavaScript API which allows for more fine control over how your code is minified.',\n 'To minify a file with Terser via the CLI, you can run `terser my_code.js --output my_file.min.js`. Compression and mangling can be enabled with the `--compress` and `--mangle` flags respectively. Sourcemap generation can also be enabled with the `--source-map` flag. An example of how to minify your code using the Terser JavaScript API is included below.',\n ],\n forMoreInformationPleaseSee: 'For more information on using the Terser CLI & API, please see',\n theirDocumentationOnGitHub: 'their documentation on GitHub.',\n exampleUsageForTerser: 'Example usage for Terser with your current config',\n};\n","/*\nCopyright 2020 DigitalOcean\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nexport default {\n codeSize: 'Code Size',\n before: 'Before:',\n after: 'After:',\n saving: 'Saving:',\n};\n","const BYTE_UNITS = [\n\t'B',\n\t'kB',\n\t'MB',\n\t'GB',\n\t'TB',\n\t'PB',\n\t'EB',\n\t'ZB',\n\t'YB',\n];\n\nconst BIBYTE_UNITS = [\n\t'B',\n\t'KiB',\n\t'MiB',\n\t'GiB',\n\t'TiB',\n\t'PiB',\n\t'EiB',\n\t'ZiB',\n\t'YiB',\n];\n\nconst BIT_UNITS = [\n\t'b',\n\t'kbit',\n\t'Mbit',\n\t'Gbit',\n\t'Tbit',\n\t'Pbit',\n\t'Ebit',\n\t'Zbit',\n\t'Ybit',\n];\n\nconst BIBIT_UNITS = [\n\t'b',\n\t'kibit',\n\t'Mibit',\n\t'Gibit',\n\t'Tibit',\n\t'Pibit',\n\t'Eibit',\n\t'Zibit',\n\t'Yibit',\n];\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number, locale, options) => {\n\tlet result = number;\n\tif (typeof locale === 'string' || Array.isArray(locale)) {\n\t\tresult = number.toLocaleString(locale, options);\n\t} else if (locale === true || options !== undefined) {\n\t\tresult = number.toLocaleString(undefined, options);\n\t}\n\n\treturn result;\n};\n\nexport default function prettyBytes(number, options) {\n\tif (!Number.isFinite(number)) {\n\t\tthrow new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n\t}\n\n\toptions = {\n\t\tbits: false,\n\t\tbinary: false,\n\t\tspace: true,\n\t\t...options,\n\t};\n\n\tconst UNITS = options.bits\n\t\t? (options.binary ? BIBIT_UNITS : BIT_UNITS)\n\t\t: (options.binary ? BIBYTE_UNITS : BYTE_UNITS);\n\n\tconst separator = options.space ? ' ' : '';\n\n\tif (options.signed && number === 0) {\n\t\treturn ` 0${separator}${UNITS[0]}`;\n\t}\n\n\tconst isNegative = number < 0;\n\tconst prefix = isNegative ? '-' : (options.signed ? '+' : '');\n\n\tif (isNegative) {\n\t\tnumber = -number;\n\t}\n\n\tlet localeOptions;\n\n\tif (options.minimumFractionDigits !== undefined) {\n\t\tlocaleOptions = {minimumFractionDigits: options.minimumFractionDigits};\n\t}\n\n\tif (options.maximumFractionDigits !== undefined) {\n\t\tlocaleOptions = {maximumFractionDigits: options.maximumFractionDigits, ...localeOptions};\n\t}\n\n\tif (number < 1) {\n\t\tconst numberString = toLocaleString(number, options.locale, localeOptions);\n\t\treturn prefix + numberString + separator + UNITS[0];\n\t}\n\n\tconst exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);\n\tnumber /= (options.binary ? 1024 : 1000) ** exponent;\n\n\tif (!localeOptions) {\n\t\tnumber = number.toPrecision(3);\n\t}\n\n\tconst numberString = toLocaleString(Number(number), options.locale, localeOptions);\n\n\tconst unit = UNITS[exponent];\n\n\treturn prefix + numberString + separator + unit;\n}\n","import { render } from \"./size.vue?vue&type=template&id=d812e578\"\nimport script from \"./size.vue?vue&type=script&lang=js\"\nexport * from \"./size.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./sourcemap.vue?vue&type=template&id=842fa2b8\"\nimport script from \"./sourcemap.vue?vue&type=script&lang=js\"\nexport * from \"./sourcemap.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","var E = Object.defineProperty, M = Object.defineProperties;\nvar x = Object.getOwnPropertyDescriptors;\nvar V = Object.getOwnPropertySymbols;\nvar I = Object.prototype.hasOwnProperty, N = Object.prototype.propertyIsEnumerable;\nvar C = (e, t, s) => t in e ? E(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, f = (e, t) => {\n for (var s in t || (t = {}))\n I.call(t, s) && C(e, s, t[s]);\n if (V)\n for (var s of V(t))\n N.call(t, s) && C(e, s, t[s]);\n return e;\n}, m = (e, t) => M(e, x(t));\nimport { openBlock as a, createElementBlock as h, createElementVNode as u, resolveDirective as K, normalizeClass as A, renderSlot as r, normalizeProps as d, guardReactiveProps as c, Fragment as B, renderList as L, createTextVNode as v, toDisplayString as D, createBlock as b, resolveDynamicComponent as _, createCommentVNode as O, mergeProps as k, toHandlers as j, withDirectives as w, vShow as P, createVNode as $, Transition as R, withCtx as z, withModifiers as F } from \"vue\";\nconst U = {\n props: {\n autoscroll: {\n type: Boolean,\n default: !0\n }\n },\n watch: {\n typeAheadPointer() {\n this.autoscroll && this.maybeAdjustScroll();\n },\n open(e) {\n this.autoscroll && e && this.$nextTick(() => this.maybeAdjustScroll());\n }\n },\n methods: {\n maybeAdjustScroll() {\n var t;\n const e = ((t = this.$refs.dropdownMenu) == null ? void 0 : t.children[this.typeAheadPointer]) || !1;\n if (e) {\n const s = this.getDropdownViewport(), { top: n, bottom: l, height: i } = e.getBoundingClientRect();\n if (n < s.top)\n return this.$refs.dropdownMenu.scrollTop = e.offsetTop;\n if (l > s.bottom)\n return this.$refs.dropdownMenu.scrollTop = e.offsetTop - (s.height - i);\n }\n },\n getDropdownViewport() {\n return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.getBoundingClientRect() : {\n height: 0,\n top: 0,\n bottom: 0\n };\n }\n }\n}, q = {\n data() {\n return {\n typeAheadPointer: -1\n };\n },\n watch: {\n filteredOptions() {\n for (let e = 0; e < this.filteredOptions.length; e++)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n open(e) {\n e && this.typeAheadToLastSelected();\n },\n selectedValue() {\n this.open && this.typeAheadToLastSelected();\n }\n },\n methods: {\n typeAheadUp() {\n for (let e = this.typeAheadPointer - 1; e >= 0; e--)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n typeAheadDown() {\n for (let e = this.typeAheadPointer + 1; e < this.filteredOptions.length; e++)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n typeAheadSelect() {\n const e = this.filteredOptions[this.typeAheadPointer];\n e && this.selectable(e) && this.select(e);\n },\n typeAheadToLastSelected() {\n this.typeAheadPointer = this.selectedValue.length !== 0 ? this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length - 1]) : -1;\n }\n }\n}, J = {\n props: {\n loading: {\n type: Boolean,\n default: !1\n }\n },\n data() {\n return {\n mutableLoading: !1\n };\n },\n watch: {\n search() {\n this.$emit(\"search\", this.search, this.toggleLoading);\n },\n loading(e) {\n this.mutableLoading = e;\n }\n },\n methods: {\n toggleLoading(e = null) {\n return e == null ? this.mutableLoading = !this.mutableLoading : this.mutableLoading = e;\n }\n }\n}, S = (e, t) => {\n const s = e.__vccOpts || e;\n for (const [n, l] of t)\n s[n] = l;\n return s;\n}, H = {}, X = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"10\",\n height: \"10\"\n}, Y = /* @__PURE__ */ u(\"path\", { d: \"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\" }, null, -1), Q = [\n Y\n];\nfunction G(e, t) {\n return a(), h(\"svg\", X, Q);\n}\nconst W = /* @__PURE__ */ S(H, [[\"render\", G]]), Z = {}, ee = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"14\",\n height: \"10\"\n}, te = /* @__PURE__ */ u(\"path\", { d: \"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\" }, null, -1), se = [\n te\n];\nfunction ie(e, t) {\n return a(), h(\"svg\", ee, se);\n}\nconst oe = /* @__PURE__ */ S(Z, [[\"render\", ie]]), T = {\n Deselect: W,\n OpenIndicator: oe\n}, ne = {\n mounted(e, { instance: t }) {\n if (t.appendToBody) {\n const {\n height: s,\n top: n,\n left: l,\n width: i\n } = t.$refs.toggle.getBoundingClientRect();\n let y = window.scrollX || window.pageXOffset, o = window.scrollY || window.pageYOffset;\n e.unbindPosition = t.calculatePosition(e, t, {\n width: i + \"px\",\n left: y + l + \"px\",\n top: o + n + s + \"px\"\n }), document.body.appendChild(e);\n }\n },\n unmounted(e, { instance: t }) {\n t.appendToBody && (e.unbindPosition && typeof e.unbindPosition == \"function\" && e.unbindPosition(), e.parentNode && e.parentNode.removeChild(e));\n }\n};\nfunction le(e) {\n const t = {};\n return Object.keys(e).sort().forEach((s) => {\n t[s] = e[s];\n }), JSON.stringify(t);\n}\nlet ae = 0;\nfunction re() {\n return ++ae;\n}\nconst de = {\n components: f({}, T),\n directives: { appendToBody: ne },\n mixins: [U, q, J],\n compatConfig: {\n MODE: 3\n },\n emits: [\n \"open\",\n \"close\",\n \"update:modelValue\",\n \"search\",\n \"search:compositionstart\",\n \"search:compositionend\",\n \"search:keydown\",\n \"search:blur\",\n \"search:focus\",\n \"search:input\",\n \"option:created\",\n \"option:selecting\",\n \"option:selected\",\n \"option:deselecting\",\n \"option:deselected\"\n ],\n props: {\n modelValue: {},\n components: {\n type: Object,\n default: () => ({})\n },\n options: {\n type: Array,\n default() {\n return [];\n }\n },\n disabled: {\n type: Boolean,\n default: !1\n },\n clearable: {\n type: Boolean,\n default: !0\n },\n deselectFromDropdown: {\n type: Boolean,\n default: !1\n },\n searchable: {\n type: Boolean,\n default: !0\n },\n multiple: {\n type: Boolean,\n default: !1\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n transition: {\n type: String,\n default: \"vs__fade\"\n },\n clearSearchOnSelect: {\n type: Boolean,\n default: !0\n },\n closeOnSelect: {\n type: Boolean,\n default: !0\n },\n label: {\n type: String,\n default: \"label\"\n },\n autocomplete: {\n type: String,\n default: \"off\"\n },\n reduce: {\n type: Function,\n default: (e) => e\n },\n selectable: {\n type: Function,\n default: (e) => !0\n },\n getOptionLabel: {\n type: Function,\n default(e) {\n return typeof e == \"object\" ? e.hasOwnProperty(this.label) ? e[this.label] : console.warn(`[vue-select warn]: Label key \"option.${this.label}\" does not exist in options object ${JSON.stringify(e)}.\nhttps://vue-select.org/api/props.html#getoptionlabel`) : e;\n }\n },\n getOptionKey: {\n type: Function,\n default(e) {\n if (typeof e != \"object\")\n return e;\n try {\n return e.hasOwnProperty(\"id\") ? e.id : le(e);\n } catch (t) {\n return console.warn(`[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\nhttps://vue-select.org/api/props.html#getoptionkey`, e, t);\n }\n }\n },\n onTab: {\n type: Function,\n default: function() {\n this.selectOnTab && !this.isComposing && this.typeAheadSelect();\n }\n },\n taggable: {\n type: Boolean,\n default: !1\n },\n tabindex: {\n type: Number,\n default: null\n },\n pushTags: {\n type: Boolean,\n default: !1\n },\n filterable: {\n type: Boolean,\n default: !0\n },\n filterBy: {\n type: Function,\n default(e, t, s) {\n return (t || \"\").toLocaleLowerCase().indexOf(s.toLocaleLowerCase()) > -1;\n }\n },\n filter: {\n type: Function,\n default(e, t) {\n return e.filter((s) => {\n let n = this.getOptionLabel(s);\n return typeof n == \"number\" && (n = n.toString()), this.filterBy(s, n, t);\n });\n }\n },\n createOption: {\n type: Function,\n default(e) {\n return typeof this.optionList[0] == \"object\" ? { [this.label]: e } : e;\n }\n },\n resetOnOptionsChange: {\n default: !1,\n validator: (e) => [\"function\", \"boolean\"].includes(typeof e)\n },\n clearSearchOnBlur: {\n type: Function,\n default: function({ clearSearchOnSelect: e, multiple: t }) {\n return e && !t;\n }\n },\n noDrop: {\n type: Boolean,\n default: !1\n },\n inputId: {\n type: String\n },\n dir: {\n type: String,\n default: \"auto\"\n },\n selectOnTab: {\n type: Boolean,\n default: !1\n },\n selectOnKeyCodes: {\n type: Array,\n default: () => [13]\n },\n searchInputQuerySelector: {\n type: String,\n default: \"[type=search]\"\n },\n mapKeydown: {\n type: Function,\n default: (e, t) => e\n },\n appendToBody: {\n type: Boolean,\n default: !1\n },\n calculatePosition: {\n type: Function,\n default(e, t, { width: s, top: n, left: l }) {\n e.style.top = n, e.style.left = l, e.style.width = s;\n }\n },\n dropdownShouldOpen: {\n type: Function,\n default({ noDrop: e, open: t, mutableLoading: s }) {\n return e ? !1 : t && !s;\n }\n },\n uid: {\n type: [String, Number],\n default: () => re()\n }\n },\n data() {\n return {\n search: \"\",\n open: !1,\n isComposing: !1,\n pushedTags: [],\n _value: [],\n deselectButtons: []\n };\n },\n computed: {\n isReducingValues() {\n return this.$props.reduce !== this.$options.props.reduce.default;\n },\n isTrackingValues() {\n return typeof this.modelValue == \"undefined\" || this.isReducingValues;\n },\n selectedValue() {\n let e = this.modelValue;\n return this.isTrackingValues && (e = this.$data._value), e != null && e !== \"\" ? [].concat(e) : [];\n },\n optionList() {\n return this.options.concat(this.pushTags ? this.pushedTags : []);\n },\n searchEl() {\n return this.$slots.search ? this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector) : this.$refs.search;\n },\n scope() {\n const e = {\n search: this.search,\n loading: this.loading,\n searching: this.searching,\n filteredOptions: this.filteredOptions\n };\n return {\n search: {\n attributes: f({\n disabled: this.disabled,\n placeholder: this.searchPlaceholder,\n tabindex: this.tabindex,\n readonly: !this.searchable,\n id: this.inputId,\n \"aria-autocomplete\": \"list\",\n \"aria-labelledby\": `vs${this.uid}__combobox`,\n \"aria-controls\": `vs${this.uid}__listbox`,\n ref: \"search\",\n type: \"search\",\n autocomplete: this.autocomplete,\n value: this.search\n }, this.dropdownOpen && this.filteredOptions[this.typeAheadPointer] ? {\n \"aria-activedescendant\": `vs${this.uid}__option-${this.typeAheadPointer}`\n } : {}),\n events: {\n compositionstart: () => this.isComposing = !0,\n compositionend: () => this.isComposing = !1,\n keydown: this.onSearchKeyDown,\n blur: this.onSearchBlur,\n focus: this.onSearchFocus,\n input: (t) => this.search = t.target.value\n }\n },\n spinner: {\n loading: this.mutableLoading\n },\n noOptions: {\n search: this.search,\n loading: this.mutableLoading,\n searching: this.searching\n },\n openIndicator: {\n attributes: {\n ref: \"openIndicator\",\n role: \"presentation\",\n class: \"vs__open-indicator\"\n }\n },\n listHeader: e,\n listFooter: e,\n header: m(f({}, e), { deselect: this.deselect }),\n footer: m(f({}, e), { deselect: this.deselect })\n };\n },\n childComponents() {\n return f(f({}, T), this.components);\n },\n stateClasses() {\n return {\n \"vs--open\": this.dropdownOpen,\n \"vs--single\": !this.multiple,\n \"vs--multiple\": this.multiple,\n \"vs--searching\": this.searching && !this.noDrop,\n \"vs--searchable\": this.searchable && !this.noDrop,\n \"vs--unsearchable\": !this.searchable,\n \"vs--loading\": this.mutableLoading,\n \"vs--disabled\": this.disabled\n };\n },\n searching() {\n return !!this.search;\n },\n dropdownOpen() {\n return this.dropdownShouldOpen(this);\n },\n searchPlaceholder() {\n return this.isValueEmpty && this.placeholder ? this.placeholder : void 0;\n },\n filteredOptions() {\n const e = [].concat(this.optionList);\n if (!this.filterable && !this.taggable)\n return e;\n const t = this.search.length ? this.filter(e, this.search, this) : e;\n if (this.taggable && this.search.length) {\n const s = this.createOption(this.search);\n this.optionExists(s) || t.unshift(s);\n }\n return t;\n },\n isValueEmpty() {\n return this.selectedValue.length === 0;\n },\n showClearButton() {\n return !this.multiple && this.clearable && !this.open && !this.isValueEmpty;\n }\n },\n watch: {\n options(e, t) {\n const s = () => typeof this.resetOnOptionsChange == \"function\" ? this.resetOnOptionsChange(e, t, this.selectedValue) : this.resetOnOptionsChange;\n !this.taggable && s() && this.clearSelection(), this.modelValue && this.isTrackingValues && this.setInternalValueFromOptions(this.modelValue);\n },\n modelValue: {\n immediate: !0,\n handler(e) {\n this.isTrackingValues && this.setInternalValueFromOptions(e);\n }\n },\n multiple() {\n this.clearSelection();\n },\n open(e) {\n this.$emit(e ? \"open\" : \"close\");\n }\n },\n created() {\n this.mutableLoading = this.loading;\n },\n methods: {\n setInternalValueFromOptions(e) {\n Array.isArray(e) ? this.$data._value = e.map((t) => this.findOptionFromReducedValue(t)) : this.$data._value = this.findOptionFromReducedValue(e);\n },\n select(e) {\n this.$emit(\"option:selecting\", e), this.isOptionSelected(e) ? this.deselectFromDropdown && (this.clearable || this.multiple && this.selectedValue.length > 1) && this.deselect(e) : (this.taggable && !this.optionExists(e) && (this.$emit(\"option:created\", e), this.pushTag(e)), this.multiple && (e = this.selectedValue.concat(e)), this.updateValue(e), this.$emit(\"option:selected\", e)), this.onAfterSelect(e);\n },\n deselect(e) {\n this.$emit(\"option:deselecting\", e), this.updateValue(this.selectedValue.filter((t) => !this.optionComparator(t, e))), this.$emit(\"option:deselected\", e);\n },\n clearSelection() {\n this.updateValue(this.multiple ? [] : null);\n },\n onAfterSelect(e) {\n this.closeOnSelect && (this.open = !this.open, this.searchEl.blur()), this.clearSearchOnSelect && (this.search = \"\");\n },\n updateValue(e) {\n typeof this.modelValue == \"undefined\" && (this.$data._value = e), e !== null && (Array.isArray(e) ? e = e.map((t) => this.reduce(t)) : e = this.reduce(e)), this.$emit(\"update:modelValue\", e);\n },\n toggleDropdown(e) {\n const t = e.target !== this.searchEl;\n t && e.preventDefault();\n const s = [\n ...this.deselectButtons || [],\n this.$refs.clearButton\n ];\n if (this.searchEl === void 0 || s.filter(Boolean).some((n) => n.contains(e.target) || n === e.target)) {\n e.preventDefault();\n return;\n }\n this.open && t ? this.searchEl.blur() : this.disabled || (this.open = !0, this.searchEl.focus());\n },\n isOptionSelected(e) {\n return this.selectedValue.some((t) => this.optionComparator(t, e));\n },\n isOptionDeselectable(e) {\n return this.isOptionSelected(e) && this.deselectFromDropdown;\n },\n optionComparator(e, t) {\n return this.getOptionKey(e) === this.getOptionKey(t);\n },\n findOptionFromReducedValue(e) {\n const t = (n) => JSON.stringify(this.reduce(n)) === JSON.stringify(e), s = [...this.options, ...this.pushedTags].filter(t);\n return s.length === 1 ? s[0] : s.find((n) => this.optionComparator(n, this.$data._value)) || e;\n },\n closeSearchOptions() {\n this.open = !1, this.$emit(\"search:blur\");\n },\n maybeDeleteValue() {\n if (!this.searchEl.value.length && this.selectedValue && this.selectedValue.length && this.clearable) {\n let e = null;\n this.multiple && (e = [\n ...this.selectedValue.slice(0, this.selectedValue.length - 1)\n ]), this.updateValue(e);\n }\n },\n optionExists(e) {\n return this.optionList.some((t) => this.optionComparator(t, e));\n },\n normalizeOptionForSlot(e) {\n return typeof e == \"object\" ? e : { [this.label]: e };\n },\n pushTag(e) {\n this.pushedTags.push(e);\n },\n onEscape() {\n this.search.length ? this.search = \"\" : this.searchEl.blur();\n },\n onSearchBlur() {\n if (this.mousedown && !this.searching)\n this.mousedown = !1;\n else {\n const { clearSearchOnSelect: e, multiple: t } = this;\n this.clearSearchOnBlur({ clearSearchOnSelect: e, multiple: t }) && (this.search = \"\"), this.closeSearchOptions();\n return;\n }\n if (this.search.length === 0 && this.options.length === 0) {\n this.closeSearchOptions();\n return;\n }\n },\n onSearchFocus() {\n this.open = !0, this.$emit(\"search:focus\");\n },\n onMousedown() {\n this.mousedown = !0;\n },\n onMouseUp() {\n this.mousedown = !1;\n },\n onSearchKeyDown(e) {\n const t = (l) => (l.preventDefault(), !this.isComposing && this.typeAheadSelect()), s = {\n 8: (l) => this.maybeDeleteValue(),\n 9: (l) => this.onTab(),\n 27: (l) => this.onEscape(),\n 38: (l) => (l.preventDefault(), this.typeAheadUp()),\n 40: (l) => (l.preventDefault(), this.typeAheadDown())\n };\n this.selectOnKeyCodes.forEach((l) => s[l] = t);\n const n = this.mapKeydown(s, this);\n if (typeof n[e.keyCode] == \"function\")\n return n[e.keyCode](e);\n }\n }\n}, he = [\"dir\"], ce = [\"id\", \"aria-expanded\", \"aria-owns\"], ue = {\n ref: \"selectedOptions\",\n class: \"vs__selected-options\"\n}, pe = [\"disabled\", \"title\", \"aria-label\", \"onClick\"], fe = {\n ref: \"actions\",\n class: \"vs__actions\"\n}, ge = [\"disabled\"], ye = { class: \"vs__spinner\" }, me = [\"id\"], be = [\"id\", \"aria-selected\", \"onMouseover\", \"onClick\"], _e = {\n key: 0,\n class: \"vs__no-options\"\n}, Oe = /* @__PURE__ */ v(\" Sorry, no matching options. \"), we = [\"id\"];\nfunction ve(e, t, s, n, l, i) {\n const y = K(\"append-to-body\");\n return a(), h(\"div\", {\n dir: s.dir,\n class: A([\"v-select\", i.stateClasses])\n }, [\n r(e.$slots, \"header\", d(c(i.scope.header))),\n u(\"div\", {\n id: `vs${s.uid}__combobox`,\n ref: \"toggle\",\n class: \"vs__dropdown-toggle\",\n role: \"combobox\",\n \"aria-expanded\": i.dropdownOpen.toString(),\n \"aria-owns\": `vs${s.uid}__listbox`,\n \"aria-label\": \"Search for option\",\n onMousedown: t[1] || (t[1] = (o) => i.toggleDropdown(o))\n }, [\n u(\"div\", ue, [\n (a(!0), h(B, null, L(i.selectedValue, (o, p) => r(e.$slots, \"selected-option-container\", {\n option: i.normalizeOptionForSlot(o),\n deselect: i.deselect,\n multiple: s.multiple,\n disabled: s.disabled\n }, () => [\n (a(), h(\"span\", {\n key: s.getOptionKey(o),\n class: \"vs__selected\"\n }, [\n r(e.$slots, \"selected-option\", d(c(i.normalizeOptionForSlot(o))), () => [\n v(D(s.getOptionLabel(o)), 1)\n ]),\n s.multiple ? (a(), h(\"button\", {\n key: 0,\n ref_for: !0,\n ref: (g) => l.deselectButtons[p] = g,\n disabled: s.disabled,\n type: \"button\",\n class: \"vs__deselect\",\n title: `Deselect ${s.getOptionLabel(o)}`,\n \"aria-label\": `Deselect ${s.getOptionLabel(o)}`,\n onClick: (g) => i.deselect(o)\n }, [\n (a(), b(_(i.childComponents.Deselect)))\n ], 8, pe)) : O(\"\", !0)\n ]))\n ])), 256)),\n r(e.$slots, \"search\", d(c(i.scope.search)), () => [\n u(\"input\", k({ class: \"vs__search\" }, i.scope.search.attributes, j(i.scope.search.events)), null, 16)\n ])\n ], 512),\n u(\"div\", fe, [\n w(u(\"button\", {\n ref: \"clearButton\",\n disabled: s.disabled,\n type: \"button\",\n class: \"vs__clear\",\n title: \"Clear Selected\",\n \"aria-label\": \"Clear Selected\",\n onClick: t[0] || (t[0] = (...o) => i.clearSelection && i.clearSelection(...o))\n }, [\n (a(), b(_(i.childComponents.Deselect)))\n ], 8, ge), [\n [P, i.showClearButton]\n ]),\n r(e.$slots, \"open-indicator\", d(c(i.scope.openIndicator)), () => [\n s.noDrop ? O(\"\", !0) : (a(), b(_(i.childComponents.OpenIndicator), d(k({ key: 0 }, i.scope.openIndicator.attributes)), null, 16))\n ]),\n r(e.$slots, \"spinner\", d(c(i.scope.spinner)), () => [\n w(u(\"div\", ye, \"Loading...\", 512), [\n [P, e.mutableLoading]\n ])\n ])\n ], 512)\n ], 40, ce),\n $(R, { name: s.transition }, {\n default: z(() => [\n i.dropdownOpen ? w((a(), h(\"ul\", {\n id: `vs${s.uid}__listbox`,\n ref: \"dropdownMenu\",\n key: `vs${s.uid}__listbox`,\n class: \"vs__dropdown-menu\",\n role: \"listbox\",\n tabindex: \"-1\",\n onMousedown: t[2] || (t[2] = F((...o) => i.onMousedown && i.onMousedown(...o), [\"prevent\"])),\n onMouseup: t[3] || (t[3] = (...o) => i.onMouseUp && i.onMouseUp(...o))\n }, [\n r(e.$slots, \"list-header\", d(c(i.scope.listHeader))),\n (a(!0), h(B, null, L(i.filteredOptions, (o, p) => (a(), h(\"li\", {\n id: `vs${s.uid}__option-${p}`,\n key: s.getOptionKey(o),\n role: \"option\",\n class: A([\"vs__dropdown-option\", {\n \"vs__dropdown-option--deselect\": i.isOptionDeselectable(o) && p === e.typeAheadPointer,\n \"vs__dropdown-option--selected\": i.isOptionSelected(o),\n \"vs__dropdown-option--highlight\": p === e.typeAheadPointer,\n \"vs__dropdown-option--disabled\": !s.selectable(o)\n }]),\n \"aria-selected\": p === e.typeAheadPointer ? !0 : null,\n onMouseover: (g) => s.selectable(o) ? e.typeAheadPointer = p : null,\n onClick: F((g) => s.selectable(o) ? i.select(o) : null, [\"prevent\", \"stop\"])\n }, [\n r(e.$slots, \"option\", d(c(i.normalizeOptionForSlot(o))), () => [\n v(D(s.getOptionLabel(o)), 1)\n ])\n ], 42, be))), 128)),\n i.filteredOptions.length === 0 ? (a(), h(\"li\", _e, [\n r(e.$slots, \"no-options\", d(c(i.scope.noOptions)), () => [\n Oe\n ])\n ])) : O(\"\", !0),\n r(e.$slots, \"list-footer\", d(c(i.scope.listFooter)))\n ], 40, me)), [\n [y]\n ]) : (a(), h(\"ul\", {\n key: 1,\n id: `vs${s.uid}__listbox`,\n role: \"listbox\",\n style: { display: \"none\", visibility: \"hidden\" }\n }, null, 8, we))\n ]),\n _: 3\n }, 8, [\"name\"]),\n r(e.$slots, \"footer\", d(c(i.scope.footer)))\n ], 10, he);\n}\nconst Ce = /* @__PURE__ */ S(de, [[\"render\", ve]]);\nexport {\n Ce as default\n};\n","/*!\n * vue-tippy v6.4.1\n * (c) 2023 \n * @license MIT\n */\nimport { getCurrentInstance, ref, shallowRef, onMounted, onUnmounted, isRef, isReactive, watch, isVNode, createApp, h, defineComponent, nextTick, unref, reactive } from 'vue';\n\nvar top = 'top';\nvar bottom = 'bottom';\nvar right = 'right';\nvar left = 'left';\nvar auto = 'auto';\nvar basePlacements = [top, bottom, right, left];\nvar start = 'start';\nvar end = 'end';\nvar clippingParents = 'clippingParents';\nvar viewport = 'viewport';\nvar popper = 'popper';\nvar reference = 'reference';\nvar variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nvar placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nvar beforeRead = 'beforeRead';\nvar read = 'read';\nvar afterRead = 'afterRead'; // pure-logic modifiers\n\nvar beforeMain = 'beforeMain';\nvar main = 'main';\nvar afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nvar beforeWrite = 'beforeWrite';\nvar write = 'write';\nvar afterWrite = 'afterWrite';\nvar modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];\n\nfunction getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar applyStyles$1 = {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};\n\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nvar max = Math.max;\nvar min = Math.min;\nvar round = Math.round;\n\nfunction getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}\n\n// means it doesn't take into account transforms.\n\nfunction getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}\n\nfunction contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}\n\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n\nfunction getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}\n\nfunction getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\nfunction withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}\n\nfunction getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}\n\nfunction mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}\n\nfunction expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect$1(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar arrow$1 = {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect$1,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};\n\nfunction getVariation(placement) {\n return placement.split('-')[1];\n}\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nfunction mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar computeStyles$1 = {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};\n\nvar passive = {\n passive: true\n};\n\nfunction effect$2(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar eventListeners = {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect$2,\n data: {}\n};\n\nvar hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\nvar hash$1 = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash$1[matched];\n });\n}\n\nfunction getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}\n\nfunction getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}\n\n// of the `` and `` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}\n\nfunction isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n\nfunction getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nfunction listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n\nfunction rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body' && (canEscapeClipping ? getComputedStyle(clippingParent).position !== 'static' : true);\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nfunction getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}\n\nfunction computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n }\n }\n\n return offsets;\n}\n\nfunction detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n\nfunction computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements$1.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements$1;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar flip$1 = {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar hide$1 = {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};\n\nfunction distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar offset$1 = {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar popperOffsets$1 = {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};\n\nfunction getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min$1 = offset + overflow[mainSide];\n var max$1 = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar preventOverflow$1 = {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};\n\nfunction getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nfunction getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nfunction orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}\n\nfunction debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n\nfunction mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}\n\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nfunction popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nvar defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\n/**!\n* tippy.js v6.3.7\n* (c) 2017-2021 atomiks\n* MIT License\n*/\n\nvar ROUND_ARROW = '';\nvar BOX_CLASS = \"tippy-box\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar SVG_ARROW_CLASS = \"tippy-svg-arrow\";\nvar TOUCH_OPTIONS = {\n passive: true,\n capture: true\n};\nvar TIPPY_DEFAULT_APPEND_TO = function TIPPY_DEFAULT_APPEND_TO() {\n return document.body;\n};\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n }\n\n return value;\n}\nfunction isType(value, type) {\n var str = {}.toString.call(value);\n return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\nfunction debounce$1(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\nfunction removeProperties(obj, keys) {\n var clone = Object.assign({}, obj);\n keys.forEach(function (key) {\n delete clone[key];\n });\n return clone;\n}\nfunction splitBySpaces(value) {\n return value.split(/\\s+/).filter(Boolean);\n}\nfunction normalizeToArray(value) {\n return [].concat(value);\n}\nfunction pushIfUnique(arr, value) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n}\nfunction unique(arr) {\n return arr.filter(function (item, index) {\n return arr.indexOf(item) === index;\n });\n}\nfunction getBasePlacement$1(placement) {\n return placement.split('-')[0];\n}\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\nfunction removeUndefinedProps(obj) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (obj[key] !== undefined) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nfunction div() {\n return document.createElement('div');\n}\nfunction isElement$1(value) {\n return ['Element', 'Fragment'].some(function (type) {\n return isType(value, type);\n });\n}\nfunction isNodeList(value) {\n return isType(value, 'NodeList');\n}\nfunction isMouseEvent(value) {\n return isType(value, 'MouseEvent');\n}\nfunction isReferenceElement(value) {\n return !!(value && value._tippy && value._tippy.reference === value);\n}\nfunction getArrayOfElements(value) {\n if (isElement$1(value)) {\n return [value];\n }\n\n if (isNodeList(value)) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return arrayFrom(document.querySelectorAll(value));\n}\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + \"ms\";\n }\n });\n}\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\nfunction getOwnerDocument(elementOrElements) {\n var _element$ownerDocumen;\n\n var _normalizeToArray = normalizeToArray(elementOrElements),\n element = _normalizeToArray[0]; // Elements created via a