diff --git a/dist/assets/main-3113c108.js b/dist/assets/main-3113c108.js
deleted file mode 100644
index a22f072354c91e62881dcadcf747f584d14fe0c0..0000000000000000000000000000000000000000
--- a/dist/assets/main-3113c108.js
+++ /dev/null
@@ -1,15 +0,0 @@
-(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&a(l)}).observe(document,{childList:!0,subtree:!0});function r(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(o){if(o.ep)return;o.ep=!0;const s=r(o);fetch(o.href,s)}})();var ee=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function lr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function wa(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function a(){return this instanceof a?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(a){var o=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(r,a,o.get?o:{enumerable:!0,get:function(){return e[a]}})}),r}var Di={exports:{}},te=Di.exports={},xe,Ee;function zt(){throw new Error("setTimeout has not been defined")}function Wt(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?xe=setTimeout:xe=zt}catch{xe=zt}try{typeof clearTimeout=="function"?Ee=clearTimeout:Ee=Wt}catch{Ee=Wt}})();function Ui(e){if(xe===setTimeout)return setTimeout(e,0);if((xe===zt||!xe)&&setTimeout)return xe=setTimeout,setTimeout(e,0);try{return xe(e,0)}catch{try{return xe.call(null,e,0)}catch{return xe.call(this,e,0)}}}function ba(e){if(Ee===clearTimeout)return clearTimeout(e);if((Ee===Wt||!Ee)&&clearTimeout)return Ee=clearTimeout,clearTimeout(e);try{return Ee(e)}catch{try{return Ee.call(null,e)}catch{return Ee.call(this,e)}}}var Ae=[],Qe=!1,Ge,ht=-1;function xa(){!Qe||!Ge||(Qe=!1,Ge.length?Ae=Ge.concat(Ae):ht=-1,Ae.length&&qi())}function qi(){if(!Qe){var e=Ui(xa);Qe=!0;for(var t=Ae.length;t;){for(Ge=Ae,Ae=[];++ht<t;)Ge&&Ge[ht].run();ht=-1,t=Ae.length}Ge=null,Qe=!1,ba(e)}}te.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];Ae.push(new Gi(e,t)),Ae.length===1&&!Qe&&Ui(qi)};function Gi(e,t){this.fun=e,this.array=t}Gi.prototype.run=function(){this.fun.apply(null,this.array)};te.title="browser";te.browser=!0;te.env={};te.argv=[];te.version="";te.versions={};function Ne(){}te.on=Ne;te.addListener=Ne;te.once=Ne;te.off=Ne;te.removeListener=Ne;te.removeAllListeners=Ne;te.emit=Ne;te.prependListener=Ne;te.prependOnceListener=Ne;te.listeners=function(e){return[]};te.binding=function(e){throw new Error("process.binding is not supported")};te.cwd=function(){return"/"};te.chdir=function(e){throw new Error("process.chdir is not supported")};te.umask=function(){return 0};var Ea=Di.exports;const Ma=lr(Ea);var rt={},Et={};Et.byteLength=Ba;Et.toByteArray=Aa;Et.fromByteArray=La;var Me=[],ve=[],Ra=typeof Uint8Array<"u"?Uint8Array:Array,Nt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Ke=0,Sa=Nt.length;Ke<Sa;++Ke)Me[Ke]=Nt[Ke],ve[Nt.charCodeAt(Ke)]=Ke;ve["-".charCodeAt(0)]=62;ve["_".charCodeAt(0)]=63;function zi(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var a=r===t?0:4-r%4;return[r,a]}function Ba(e){var t=zi(e),r=t[0],a=t[1];return(r+a)*3/4-a}function Ta(e,t,r){return(t+r)*3/4-r}function Aa(e){var t,r=zi(e),a=r[0],o=r[1],s=new Ra(Ta(e,a,o)),l=0,f=o>0?a-4:a,h;for(h=0;h<f;h+=4)t=ve[e.charCodeAt(h)]<<18|ve[e.charCodeAt(h+1)]<<12|ve[e.charCodeAt(h+2)]<<6|ve[e.charCodeAt(h+3)],s[l++]=t>>16&255,s[l++]=t>>8&255,s[l++]=t&255;return o===2&&(t=ve[e.charCodeAt(h)]<<2|ve[e.charCodeAt(h+1)]>>4,s[l++]=t&255),o===1&&(t=ve[e.charCodeAt(h)]<<10|ve[e.charCodeAt(h+1)]<<4|ve[e.charCodeAt(h+2)]>>2,s[l++]=t>>8&255,s[l++]=t&255),s}function Ia(e){return Me[e>>18&63]+Me[e>>12&63]+Me[e>>6&63]+Me[e&63]}function Na(e,t,r){for(var a,o=[],s=t;s<r;s+=3)a=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(e[s+2]&255),o.push(Ia(a));return o.join("")}function La(e){for(var t,r=e.length,a=r%3,o=[],s=16383,l=0,f=r-a;l<f;l+=s)o.push(Na(e,l,l+s>f?f:l+s));return a===1?(t=e[r-1],o.push(Me[t>>2]+Me[t<<4&63]+"==")):a===2&&(t=(e[r-2]<<8)+e[r-1],o.push(Me[t>>10]+Me[t>>4&63]+Me[t<<2&63]+"=")),o.join("")}var hr={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */hr.read=function(e,t,r,a,o){var s,l,f=o*8-a-1,h=(1<<f)-1,p=h>>1,y=-7,m=r?o-1:0,x=r?-1:1,B=e[t+m];for(m+=x,s=B&(1<<-y)-1,B>>=-y,y+=f;y>0;s=s*256+e[t+m],m+=x,y-=8);for(l=s&(1<<-y)-1,s>>=-y,y+=a;y>0;l=l*256+e[t+m],m+=x,y-=8);if(s===0)s=1-p;else{if(s===h)return l?NaN:(B?-1:1)*(1/0);l=l+Math.pow(2,a),s=s-p}return(B?-1:1)*l*Math.pow(2,s-a)};hr.write=function(e,t,r,a,o,s){var l,f,h,p=s*8-o-1,y=(1<<p)-1,m=y>>1,x=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,B=a?0:s-1,E=a?1:-1,R=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(f=isNaN(t)?1:0,l=y):(l=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-l))<1&&(l--,h*=2),l+m>=1?t+=x/h:t+=x*Math.pow(2,1-m),t*h>=2&&(l++,h/=2),l+m>=y?(f=0,l=y):l+m>=1?(f=(t*h-1)*Math.pow(2,o),l=l+m):(f=t*Math.pow(2,m-1)*Math.pow(2,o),l=0));o>=8;e[r+B]=f&255,B+=E,f/=256,o-=8);for(l=l<<o|f,p+=o;p>0;e[r+B]=l&255,B+=E,l/=256,p-=8);e[r+B-E]|=R*128};/*!
- * The buffer module from node.js, for the browser.
- *
- * @author   Feross Aboukhadijeh <https://feross.org>
- * @license  MIT
- */(function(e){const t=Et,r=hr,a=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=f,e.SlowBuffer=O,e.INSPECT_MAX_BYTES=50;const o=2147483647;e.kMaxLength=o,f.TYPED_ARRAY_SUPPORT=s(),!f.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const u=new Uint8Array(1),i={foo:function(){return 42}};return Object.setPrototypeOf(i,Uint8Array.prototype),Object.setPrototypeOf(u,i),u.foo()===42}catch{return!1}}Object.defineProperty(f.prototype,"parent",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.buffer}}),Object.defineProperty(f.prototype,"offset",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.byteOffset}});function l(u){if(u>o)throw new RangeError('The value "'+u+'" is invalid for option "size"');const i=new Uint8Array(u);return Object.setPrototypeOf(i,f.prototype),i}function f(u,i,n){if(typeof u=="number"){if(typeof i=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return m(u)}return h(u,i,n)}f.poolSize=8192;function h(u,i,n){if(typeof u=="string")return x(u,i);if(ArrayBuffer.isView(u))return E(u);if(u==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof u);if(le(u,ArrayBuffer)||u&&le(u.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(le(u,SharedArrayBuffer)||u&&le(u.buffer,SharedArrayBuffer)))return R(u,i,n);if(typeof u=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const c=u.valueOf&&u.valueOf();if(c!=null&&c!==u)return f.from(c,i,n);const g=T(u);if(g)return g;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof u[Symbol.toPrimitive]=="function")return f.from(u[Symbol.toPrimitive]("string"),i,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof u)}f.from=function(u,i,n){return h(u,i,n)},Object.setPrototypeOf(f.prototype,Uint8Array.prototype),Object.setPrototypeOf(f,Uint8Array);function p(u){if(typeof u!="number")throw new TypeError('"size" argument must be of type number');if(u<0)throw new RangeError('The value "'+u+'" is invalid for option "size"')}function y(u,i,n){return p(u),u<=0?l(u):i!==void 0?typeof n=="string"?l(u).fill(i,n):l(u).fill(i):l(u)}f.alloc=function(u,i,n){return y(u,i,n)};function m(u){return p(u),l(u<0?0:I(u)|0)}f.allocUnsafe=function(u){return m(u)},f.allocUnsafeSlow=function(u){return m(u)};function x(u,i){if((typeof i!="string"||i==="")&&(i="utf8"),!f.isEncoding(i))throw new TypeError("Unknown encoding: "+i);const n=j(u,i)|0;let c=l(n);const g=c.write(u,i);return g!==n&&(c=c.slice(0,g)),c}function B(u){const i=u.length<0?0:I(u.length)|0,n=l(i);for(let c=0;c<i;c+=1)n[c]=u[c]&255;return n}function E(u){if(le(u,Uint8Array)){const i=new Uint8Array(u);return R(i.buffer,i.byteOffset,i.byteLength)}return B(u)}function R(u,i,n){if(i<0||u.byteLength<i)throw new RangeError('"offset" is outside of buffer bounds');if(u.byteLength<i+(n||0))throw new RangeError('"length" is outside of buffer bounds');let c;return i===void 0&&n===void 0?c=new Uint8Array(u):n===void 0?c=new Uint8Array(u,i):c=new Uint8Array(u,i,n),Object.setPrototypeOf(c,f.prototype),c}function T(u){if(f.isBuffer(u)){const i=I(u.length)|0,n=l(i);return n.length===0||u.copy(n,0,0,i),n}if(u.length!==void 0)return typeof u.length!="number"||$e(u.length)?l(0):B(u);if(u.type==="Buffer"&&Array.isArray(u.data))return B(u.data)}function I(u){if(u>=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return u|0}function O(u){return+u!=u&&(u=0),f.alloc(+u)}f.isBuffer=function(i){return i!=null&&i._isBuffer===!0&&i!==f.prototype},f.compare=function(i,n){if(le(i,Uint8Array)&&(i=f.from(i,i.offset,i.byteLength)),le(n,Uint8Array)&&(n=f.from(n,n.offset,n.byteLength)),!f.isBuffer(i)||!f.isBuffer(n))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(i===n)return 0;let c=i.length,g=n.length;for(let w=0,M=Math.min(c,g);w<M;++w)if(i[w]!==n[w]){c=i[w],g=n[w];break}return c<g?-1:g<c?1:0},f.isEncoding=function(i){switch(String(i).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},f.concat=function(i,n){if(!Array.isArray(i))throw new TypeError('"list" argument must be an Array of Buffers');if(i.length===0)return f.alloc(0);let c;if(n===void 0)for(n=0,c=0;c<i.length;++c)n+=i[c].length;const g=f.allocUnsafe(n);let w=0;for(c=0;c<i.length;++c){let M=i[c];if(le(M,Uint8Array))w+M.length>g.length?(f.isBuffer(M)||(M=f.from(M)),M.copy(g,w)):Uint8Array.prototype.set.call(g,M,w);else if(f.isBuffer(M))M.copy(g,w);else throw new TypeError('"list" argument must be an Array of Buffers');w+=M.length}return g};function j(u,i){if(f.isBuffer(u))return u.length;if(ArrayBuffer.isView(u)||le(u,ArrayBuffer))return u.byteLength;if(typeof u!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof u);const n=u.length,c=arguments.length>2&&arguments[2]===!0;if(!c&&n===0)return 0;let g=!1;for(;;)switch(i){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return z(u).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return n*2;case"hex":return n>>>1;case"base64":return nt(u).length;default:if(g)return c?-1:z(u).length;i=(""+i).toLowerCase(),g=!0}}f.byteLength=j;function N(u,i,n){let c=!1;if((i===void 0||i<0)&&(i=0),i>this.length||((n===void 0||n>this.length)&&(n=this.length),n<=0)||(n>>>=0,i>>>=0,n<=i))return"";for(u||(u="utf8");;)switch(u){case"hex":return ue(this,i,n);case"utf8":case"utf-8":return we(this,i,n);case"ascii":return ge(this,i,n);case"latin1":case"binary":return Le(this,i,n);case"base64":return ce(this,i,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return He(this,i,n);default:if(c)throw new TypeError("Unknown encoding: "+u);u=(u+"").toLowerCase(),c=!0}}f.prototype._isBuffer=!0;function C(u,i,n){const c=u[i];u[i]=u[n],u[n]=c}f.prototype.swap16=function(){const i=this.length;if(i%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let n=0;n<i;n+=2)C(this,n,n+1);return this},f.prototype.swap32=function(){const i=this.length;if(i%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let n=0;n<i;n+=4)C(this,n,n+3),C(this,n+1,n+2);return this},f.prototype.swap64=function(){const i=this.length;if(i%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let n=0;n<i;n+=8)C(this,n,n+7),C(this,n+1,n+6),C(this,n+2,n+5),C(this,n+3,n+4);return this},f.prototype.toString=function(){const i=this.length;return i===0?"":arguments.length===0?we(this,0,i):N.apply(this,arguments)},f.prototype.toLocaleString=f.prototype.toString,f.prototype.equals=function(i){if(!f.isBuffer(i))throw new TypeError("Argument must be a Buffer");return this===i?!0:f.compare(this,i)===0},f.prototype.inspect=function(){let i="";const n=e.INSPECT_MAX_BYTES;return i=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(i+=" ... "),"<Buffer "+i+">"},a&&(f.prototype[a]=f.prototype.inspect),f.prototype.compare=function(i,n,c,g,w){if(le(i,Uint8Array)&&(i=f.from(i,i.offset,i.byteLength)),!f.isBuffer(i))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof i);if(n===void 0&&(n=0),c===void 0&&(c=i?i.length:0),g===void 0&&(g=0),w===void 0&&(w=this.length),n<0||c>i.length||g<0||w>this.length)throw new RangeError("out of range index");if(g>=w&&n>=c)return 0;if(g>=w)return-1;if(n>=c)return 1;if(n>>>=0,c>>>=0,g>>>=0,w>>>=0,this===i)return 0;let M=w-g,G=c-n;const K=Math.min(M,G),Y=this.slice(g,w),J=i.slice(n,c);for(let H=0;H<K;++H)if(Y[H]!==J[H]){M=Y[H],G=J[H];break}return M<G?-1:G<M?1:0};function $(u,i,n,c,g){if(u.length===0)return-1;if(typeof n=="string"?(c=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,$e(n)&&(n=g?0:u.length-1),n<0&&(n=u.length+n),n>=u.length){if(g)return-1;n=u.length-1}else if(n<0)if(g)n=0;else return-1;if(typeof i=="string"&&(i=f.from(i,c)),f.isBuffer(i))return i.length===0?-1:Z(u,i,n,c,g);if(typeof i=="number")return i=i&255,typeof Uint8Array.prototype.indexOf=="function"?g?Uint8Array.prototype.indexOf.call(u,i,n):Uint8Array.prototype.lastIndexOf.call(u,i,n):Z(u,[i],n,c,g);throw new TypeError("val must be string, number or Buffer")}function Z(u,i,n,c,g){let w=1,M=u.length,G=i.length;if(c!==void 0&&(c=String(c).toLowerCase(),c==="ucs2"||c==="ucs-2"||c==="utf16le"||c==="utf-16le")){if(u.length<2||i.length<2)return-1;w=2,M/=2,G/=2,n/=2}function K(J,H){return w===1?J[H]:J.readUInt16BE(H*w)}let Y;if(g){let J=-1;for(Y=n;Y<M;Y++)if(K(u,Y)===K(i,J===-1?0:Y-J)){if(J===-1&&(J=Y),Y-J+1===G)return J*w}else J!==-1&&(Y-=Y-J),J=-1}else for(n+G>M&&(n=M-G),Y=n;Y>=0;Y--){let J=!0;for(let H=0;H<G;H++)if(K(u,Y+H)!==K(i,H)){J=!1;break}if(J)return Y}return-1}f.prototype.includes=function(i,n,c){return this.indexOf(i,n,c)!==-1},f.prototype.indexOf=function(i,n,c){return $(this,i,n,c,!0)},f.prototype.lastIndexOf=function(i,n,c){return $(this,i,n,c,!1)};function D(u,i,n,c){n=Number(n)||0;const g=u.length-n;c?(c=Number(c),c>g&&(c=g)):c=g;const w=i.length;c>w/2&&(c=w/2);let M;for(M=0;M<c;++M){const G=parseInt(i.substr(M*2,2),16);if($e(G))return M;u[n+M]=G}return M}function F(u,i,n,c){return Ve(z(i,u.length-n),u,n,c)}function fe(u,i,n,c){return Ve(je(i),u,n,c)}function Se(u,i,n,c){return Ve(nt(i),u,n,c)}function Be(u,i,n,c){return Ve(Ye(i,u.length-n),u,n,c)}f.prototype.write=function(i,n,c,g){if(n===void 0)g="utf8",c=this.length,n=0;else if(c===void 0&&typeof n=="string")g=n,c=this.length,n=0;else if(isFinite(n))n=n>>>0,isFinite(c)?(c=c>>>0,g===void 0&&(g="utf8")):(g=c,c=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const w=this.length-n;if((c===void 0||c>w)&&(c=w),i.length>0&&(c<0||n<0)||n>this.length)throw new RangeError("Attempt to write outside buffer bounds");g||(g="utf8");let M=!1;for(;;)switch(g){case"hex":return D(this,i,n,c);case"utf8":case"utf-8":return F(this,i,n,c);case"ascii":case"latin1":case"binary":return fe(this,i,n,c);case"base64":return Se(this,i,n,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Be(this,i,n,c);default:if(M)throw new TypeError("Unknown encoding: "+g);g=(""+g).toLowerCase(),M=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ce(u,i,n){return i===0&&n===u.length?t.fromByteArray(u):t.fromByteArray(u.slice(i,n))}function we(u,i,n){n=Math.min(u.length,n);const c=[];let g=i;for(;g<n;){const w=u[g];let M=null,G=w>239?4:w>223?3:w>191?2:1;if(g+G<=n){let K,Y,J,H;switch(G){case 1:w<128&&(M=w);break;case 2:K=u[g+1],(K&192)===128&&(H=(w&31)<<6|K&63,H>127&&(M=H));break;case 3:K=u[g+1],Y=u[g+2],(K&192)===128&&(Y&192)===128&&(H=(w&15)<<12|(K&63)<<6|Y&63,H>2047&&(H<55296||H>57343)&&(M=H));break;case 4:K=u[g+1],Y=u[g+2],J=u[g+3],(K&192)===128&&(Y&192)===128&&(J&192)===128&&(H=(w&15)<<18|(K&63)<<12|(Y&63)<<6|J&63,H>65535&&H<1114112&&(M=H))}}M===null?(M=65533,G=1):M>65535&&(M-=65536,c.push(M>>>10&1023|55296),M=56320|M&1023),c.push(M),g+=G}return Te(c)}const de=4096;function Te(u){const i=u.length;if(i<=de)return String.fromCharCode.apply(String,u);let n="",c=0;for(;c<i;)n+=String.fromCharCode.apply(String,u.slice(c,c+=de));return n}function ge(u,i,n){let c="";n=Math.min(u.length,n);for(let g=i;g<n;++g)c+=String.fromCharCode(u[g]&127);return c}function Le(u,i,n){let c="";n=Math.min(u.length,n);for(let g=i;g<n;++g)c+=String.fromCharCode(u[g]);return c}function ue(u,i,n){const c=u.length;(!i||i<0)&&(i=0),(!n||n<0||n>c)&&(n=c);let g="";for(let w=i;w<n;++w)g+=at[u[w]];return g}function He(u,i,n){const c=u.slice(i,n);let g="";for(let w=0;w<c.length-1;w+=2)g+=String.fromCharCode(c[w]+c[w+1]*256);return g}f.prototype.slice=function(i,n){const c=this.length;i=~~i,n=n===void 0?c:~~n,i<0?(i+=c,i<0&&(i=0)):i>c&&(i=c),n<0?(n+=c,n<0&&(n=0)):n>c&&(n=c),n<i&&(n=i);const g=this.subarray(i,n);return Object.setPrototypeOf(g,f.prototype),g};function V(u,i,n){if(u%1!==0||u<0)throw new RangeError("offset is not uint");if(u+i>n)throw new RangeError("Trying to access beyond buffer length")}f.prototype.readUintLE=f.prototype.readUIntLE=function(i,n,c){i=i>>>0,n=n>>>0,c||V(i,n,this.length);let g=this[i],w=1,M=0;for(;++M<n&&(w*=256);)g+=this[i+M]*w;return g},f.prototype.readUintBE=f.prototype.readUIntBE=function(i,n,c){i=i>>>0,n=n>>>0,c||V(i,n,this.length);let g=this[i+--n],w=1;for(;n>0&&(w*=256);)g+=this[i+--n]*w;return g},f.prototype.readUint8=f.prototype.readUInt8=function(i,n){return i=i>>>0,n||V(i,1,this.length),this[i]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(i,n){return i=i>>>0,n||V(i,2,this.length),this[i]|this[i+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(i,n){return i=i>>>0,n||V(i,2,this.length),this[i]<<8|this[i+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(i,n){return i=i>>>0,n||V(i,4,this.length),(this[i]|this[i+1]<<8|this[i+2]<<16)+this[i+3]*16777216},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(i,n){return i=i>>>0,n||V(i,4,this.length),this[i]*16777216+(this[i+1]<<16|this[i+2]<<8|this[i+3])},f.prototype.readBigUInt64LE=pe(function(i){i=i>>>0,S(i,"offset");const n=this[i],c=this[i+7];(n===void 0||c===void 0)&&L(i,this.length-8);const g=n+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24,w=this[++i]+this[++i]*2**8+this[++i]*2**16+c*2**24;return BigInt(g)+(BigInt(w)<<BigInt(32))}),f.prototype.readBigUInt64BE=pe(function(i){i=i>>>0,S(i,"offset");const n=this[i],c=this[i+7];(n===void 0||c===void 0)&&L(i,this.length-8);const g=n*2**24+this[++i]*2**16+this[++i]*2**8+this[++i],w=this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+c;return(BigInt(g)<<BigInt(32))+BigInt(w)}),f.prototype.readIntLE=function(i,n,c){i=i>>>0,n=n>>>0,c||V(i,n,this.length);let g=this[i],w=1,M=0;for(;++M<n&&(w*=256);)g+=this[i+M]*w;return w*=128,g>=w&&(g-=Math.pow(2,8*n)),g},f.prototype.readIntBE=function(i,n,c){i=i>>>0,n=n>>>0,c||V(i,n,this.length);let g=n,w=1,M=this[i+--g];for(;g>0&&(w*=256);)M+=this[i+--g]*w;return w*=128,M>=w&&(M-=Math.pow(2,8*n)),M},f.prototype.readInt8=function(i,n){return i=i>>>0,n||V(i,1,this.length),this[i]&128?(255-this[i]+1)*-1:this[i]},f.prototype.readInt16LE=function(i,n){i=i>>>0,n||V(i,2,this.length);const c=this[i]|this[i+1]<<8;return c&32768?c|4294901760:c},f.prototype.readInt16BE=function(i,n){i=i>>>0,n||V(i,2,this.length);const c=this[i+1]|this[i]<<8;return c&32768?c|4294901760:c},f.prototype.readInt32LE=function(i,n){return i=i>>>0,n||V(i,4,this.length),this[i]|this[i+1]<<8|this[i+2]<<16|this[i+3]<<24},f.prototype.readInt32BE=function(i,n){return i=i>>>0,n||V(i,4,this.length),this[i]<<24|this[i+1]<<16|this[i+2]<<8|this[i+3]},f.prototype.readBigInt64LE=pe(function(i){i=i>>>0,S(i,"offset");const n=this[i],c=this[i+7];(n===void 0||c===void 0)&&L(i,this.length-8);const g=this[i+4]+this[i+5]*2**8+this[i+6]*2**16+(c<<24);return(BigInt(g)<<BigInt(32))+BigInt(n+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24)}),f.prototype.readBigInt64BE=pe(function(i){i=i>>>0,S(i,"offset");const n=this[i],c=this[i+7];(n===void 0||c===void 0)&&L(i,this.length-8);const g=(n<<24)+this[++i]*2**16+this[++i]*2**8+this[++i];return(BigInt(g)<<BigInt(32))+BigInt(this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+c)}),f.prototype.readFloatLE=function(i,n){return i=i>>>0,n||V(i,4,this.length),r.read(this,i,!0,23,4)},f.prototype.readFloatBE=function(i,n){return i=i>>>0,n||V(i,4,this.length),r.read(this,i,!1,23,4)},f.prototype.readDoubleLE=function(i,n){return i=i>>>0,n||V(i,8,this.length),r.read(this,i,!0,52,8)},f.prototype.readDoubleBE=function(i,n){return i=i>>>0,n||V(i,8,this.length),r.read(this,i,!1,52,8)};function ie(u,i,n,c,g,w){if(!f.isBuffer(u))throw new TypeError('"buffer" argument must be a Buffer instance');if(i>g||i<w)throw new RangeError('"value" argument is out of bounds');if(n+c>u.length)throw new RangeError("Index out of range")}f.prototype.writeUintLE=f.prototype.writeUIntLE=function(i,n,c,g){if(i=+i,n=n>>>0,c=c>>>0,!g){const G=Math.pow(2,8*c)-1;ie(this,i,n,c,G,0)}let w=1,M=0;for(this[n]=i&255;++M<c&&(w*=256);)this[n+M]=i/w&255;return n+c},f.prototype.writeUintBE=f.prototype.writeUIntBE=function(i,n,c,g){if(i=+i,n=n>>>0,c=c>>>0,!g){const G=Math.pow(2,8*c)-1;ie(this,i,n,c,G,0)}let w=c-1,M=1;for(this[n+w]=i&255;--w>=0&&(M*=256);)this[n+w]=i/M&255;return n+c},f.prototype.writeUint8=f.prototype.writeUInt8=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,1,255,0),this[n]=i&255,n+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,2,65535,0),this[n]=i&255,this[n+1]=i>>>8,n+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,2,65535,0),this[n]=i>>>8,this[n+1]=i&255,n+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,4,4294967295,0),this[n+3]=i>>>24,this[n+2]=i>>>16,this[n+1]=i>>>8,this[n]=i&255,n+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,4,4294967295,0),this[n]=i>>>24,this[n+1]=i>>>16,this[n+2]=i>>>8,this[n+3]=i&255,n+4};function be(u,i,n,c,g){v(i,c,g,u,n,7);let w=Number(i&BigInt(4294967295));u[n++]=w,w=w>>8,u[n++]=w,w=w>>8,u[n++]=w,w=w>>8,u[n++]=w;let M=Number(i>>BigInt(32)&BigInt(4294967295));return u[n++]=M,M=M>>8,u[n++]=M,M=M>>8,u[n++]=M,M=M>>8,u[n++]=M,n}function Ze(u,i,n,c,g){v(i,c,g,u,n,7);let w=Number(i&BigInt(4294967295));u[n+7]=w,w=w>>8,u[n+6]=w,w=w>>8,u[n+5]=w,w=w>>8,u[n+4]=w;let M=Number(i>>BigInt(32)&BigInt(4294967295));return u[n+3]=M,M=M>>8,u[n+2]=M,M=M>>8,u[n+1]=M,M=M>>8,u[n]=M,n+8}f.prototype.writeBigUInt64LE=pe(function(i,n=0){return be(this,i,n,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeBigUInt64BE=pe(function(i,n=0){return Ze(this,i,n,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeIntLE=function(i,n,c,g){if(i=+i,n=n>>>0,!g){const K=Math.pow(2,8*c-1);ie(this,i,n,c,K-1,-K)}let w=0,M=1,G=0;for(this[n]=i&255;++w<c&&(M*=256);)i<0&&G===0&&this[n+w-1]!==0&&(G=1),this[n+w]=(i/M>>0)-G&255;return n+c},f.prototype.writeIntBE=function(i,n,c,g){if(i=+i,n=n>>>0,!g){const K=Math.pow(2,8*c-1);ie(this,i,n,c,K-1,-K)}let w=c-1,M=1,G=0;for(this[n+w]=i&255;--w>=0&&(M*=256);)i<0&&G===0&&this[n+w+1]!==0&&(G=1),this[n+w]=(i/M>>0)-G&255;return n+c},f.prototype.writeInt8=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,1,127,-128),i<0&&(i=255+i+1),this[n]=i&255,n+1},f.prototype.writeInt16LE=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,2,32767,-32768),this[n]=i&255,this[n+1]=i>>>8,n+2},f.prototype.writeInt16BE=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,2,32767,-32768),this[n]=i>>>8,this[n+1]=i&255,n+2},f.prototype.writeInt32LE=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,4,2147483647,-2147483648),this[n]=i&255,this[n+1]=i>>>8,this[n+2]=i>>>16,this[n+3]=i>>>24,n+4},f.prototype.writeInt32BE=function(i,n,c){return i=+i,n=n>>>0,c||ie(this,i,n,4,2147483647,-2147483648),i<0&&(i=4294967295+i+1),this[n]=i>>>24,this[n+1]=i>>>16,this[n+2]=i>>>8,this[n+3]=i&255,n+4},f.prototype.writeBigInt64LE=pe(function(i,n=0){return be(this,i,n,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeBigInt64BE=pe(function(i,n=0){return Ze(this,i,n,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Xe(u,i,n,c,g,w){if(n+c>u.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function b(u,i,n,c,g){return i=+i,n=n>>>0,g||Xe(u,i,n,4),r.write(u,i,n,c,23,4),n+4}f.prototype.writeFloatLE=function(i,n,c){return b(this,i,n,!0,c)},f.prototype.writeFloatBE=function(i,n,c){return b(this,i,n,!1,c)};function _(u,i,n,c,g){return i=+i,n=n>>>0,g||Xe(u,i,n,8),r.write(u,i,n,c,52,8),n+8}f.prototype.writeDoubleLE=function(i,n,c){return _(this,i,n,!0,c)},f.prototype.writeDoubleBE=function(i,n,c){return _(this,i,n,!1,c)},f.prototype.copy=function(i,n,c,g){if(!f.isBuffer(i))throw new TypeError("argument should be a Buffer");if(c||(c=0),!g&&g!==0&&(g=this.length),n>=i.length&&(n=i.length),n||(n=0),g>0&&g<c&&(g=c),g===c||i.length===0||this.length===0)return 0;if(n<0)throw new RangeError("targetStart out of bounds");if(c<0||c>=this.length)throw new RangeError("Index out of range");if(g<0)throw new RangeError("sourceEnd out of bounds");g>this.length&&(g=this.length),i.length-n<g-c&&(g=i.length-n+c);const w=g-c;return this===i&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(n,c,g):Uint8Array.prototype.set.call(i,this.subarray(c,g),n),w},f.prototype.fill=function(i,n,c,g){if(typeof i=="string"){if(typeof n=="string"?(g=n,n=0,c=this.length):typeof c=="string"&&(g=c,c=this.length),g!==void 0&&typeof g!="string")throw new TypeError("encoding must be a string");if(typeof g=="string"&&!f.isEncoding(g))throw new TypeError("Unknown encoding: "+g);if(i.length===1){const M=i.charCodeAt(0);(g==="utf8"&&M<128||g==="latin1")&&(i=M)}}else typeof i=="number"?i=i&255:typeof i=="boolean"&&(i=Number(i));if(n<0||this.length<n||this.length<c)throw new RangeError("Out of range index");if(c<=n)return this;n=n>>>0,c=c===void 0?this.length:c>>>0,i||(i=0);let w;if(typeof i=="number")for(w=n;w<c;++w)this[w]=i;else{const M=f.isBuffer(i)?i:f.from(i,g),G=M.length;if(G===0)throw new TypeError('The value "'+i+'" is invalid for argument "value"');for(w=0;w<c-n;++w)this[w+n]=M[w%G]}return this};const A={};function k(u,i,n){A[u]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:i.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${u}]`,this.stack,delete this.name}get code(){return u}set code(g){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:g,writable:!0})}toString(){return`${this.name} [${u}]: ${this.message}`}}}k("ERR_BUFFER_OUT_OF_BOUNDS",function(u){return u?`${u} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),k("ERR_INVALID_ARG_TYPE",function(u,i){return`The "${u}" argument must be of type number. Received type ${typeof i}`},TypeError),k("ERR_OUT_OF_RANGE",function(u,i,n){let c=`The value of "${u}" is out of range.`,g=n;return Number.isInteger(n)&&Math.abs(n)>2**32?g=U(String(n)):typeof n=="bigint"&&(g=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(g=U(g)),g+="n"),c+=` It must be ${i}. Received ${g}`,c},RangeError);function U(u){let i="",n=u.length;const c=u[0]==="-"?1:0;for(;n>=c+4;n-=3)i=`_${u.slice(n-3,n)}${i}`;return`${u.slice(0,n)}${i}`}function d(u,i,n){S(i,"offset"),(u[i]===void 0||u[i+n]===void 0)&&L(i,u.length-(n+1))}function v(u,i,n,c,g,w){if(u>n||u<i){const M=typeof i=="bigint"?"n":"";let G;throw w>3?i===0||i===BigInt(0)?G=`>= 0${M} and < 2${M} ** ${(w+1)*8}${M}`:G=`>= -(2${M} ** ${(w+1)*8-1}${M}) and < 2 ** ${(w+1)*8-1}${M}`:G=`>= ${i}${M} and <= ${n}${M}`,new A.ERR_OUT_OF_RANGE("value",G,u)}d(c,g,w)}function S(u,i){if(typeof u!="number")throw new A.ERR_INVALID_ARG_TYPE(i,"number",u)}function L(u,i,n){throw Math.floor(u)!==u?(S(u,n),new A.ERR_OUT_OF_RANGE(n||"offset","an integer",u)):i<0?new A.ERR_BUFFER_OUT_OF_BOUNDS:new A.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${i}`,u)}const X=/[^+/0-9A-Za-z-_]/g;function q(u){if(u=u.split("=")[0],u=u.trim().replace(X,""),u.length<2)return"";for(;u.length%4!==0;)u=u+"=";return u}function z(u,i){i=i||1/0;let n;const c=u.length;let g=null;const w=[];for(let M=0;M<c;++M){if(n=u.charCodeAt(M),n>55295&&n<57344){if(!g){if(n>56319){(i-=3)>-1&&w.push(239,191,189);continue}else if(M+1===c){(i-=3)>-1&&w.push(239,191,189);continue}g=n;continue}if(n<56320){(i-=3)>-1&&w.push(239,191,189),g=n;continue}n=(g-55296<<10|n-56320)+65536}else g&&(i-=3)>-1&&w.push(239,191,189);if(g=null,n<128){if((i-=1)<0)break;w.push(n)}else if(n<2048){if((i-=2)<0)break;w.push(n>>6|192,n&63|128)}else if(n<65536){if((i-=3)<0)break;w.push(n>>12|224,n>>6&63|128,n&63|128)}else if(n<1114112){if((i-=4)<0)break;w.push(n>>18|240,n>>12&63|128,n>>6&63|128,n&63|128)}else throw new Error("Invalid code point")}return w}function je(u){const i=[];for(let n=0;n<u.length;++n)i.push(u.charCodeAt(n)&255);return i}function Ye(u,i){let n,c,g;const w=[];for(let M=0;M<u.length&&!((i-=2)<0);++M)n=u.charCodeAt(M),c=n>>8,g=n%256,w.push(g),w.push(c);return w}function nt(u){return t.toByteArray(q(u))}function Ve(u,i,n,c){let g;for(g=0;g<c&&!(g+n>=i.length||g>=u.length);++g)i[g+n]=u[g];return g}function le(u,i){return u instanceof i||u!=null&&u.constructor!=null&&u.constructor.name!=null&&u.constructor.name===i.name}function $e(u){return u!==u}const at=function(){const u="0123456789abcdef",i=new Array(256);for(let n=0;n<16;++n){const c=n*16;for(let g=0;g<16;++g)i[c+g]=u[n]+u[g]}return i}();function pe(u){return typeof BigInt>"u"?De:u}function De(){throw new Error("BigInt not supported")}})(rt);var cr={exports:{}},et=typeof Reflect=="object"?Reflect:null,Tr=et&&typeof et.apply=="function"?et.apply:function(t,r,a){return Function.prototype.apply.call(t,r,a)},ct;et&&typeof et.ownKeys=="function"?ct=et.ownKeys:Object.getOwnPropertySymbols?ct=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:ct=function(t){return Object.getOwnPropertyNames(t)};function ja(e){console&&console.warn&&console.warn(e)}var Wi=Number.isNaN||function(t){return t!==t};function W(){W.init.call(this)}cr.exports=W;cr.exports.once=Fa;W.EventEmitter=W;W.prototype._events=void 0;W.prototype._eventsCount=0;W.prototype._maxListeners=void 0;var Ar=10;function Mt(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(W,"defaultMaxListeners",{enumerable:!0,get:function(){return Ar},set:function(e){if(typeof e!="number"||e<0||Wi(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Ar=e}});W.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};W.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Wi(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Hi(e){return e._maxListeners===void 0?W.defaultMaxListeners:e._maxListeners}W.prototype.getMaxListeners=function(){return Hi(this)};W.prototype.emit=function(t){for(var r=[],a=1;a<arguments.length;a++)r.push(arguments[a]);var o=t==="error",s=this._events;if(s!==void 0)o=o&&s.error===void 0;else if(!o)return!1;if(o){var l;if(r.length>0&&(l=r[0]),l instanceof Error)throw l;var f=new Error("Unhandled error."+(l?" ("+l.message+")":""));throw f.context=l,f}var h=s[t];if(h===void 0)return!1;if(typeof h=="function")Tr(h,this,r);else for(var p=h.length,y=Ki(h,p),a=0;a<p;++a)Tr(y[a],this,r);return!0};function Zi(e,t,r,a){var o,s,l;if(Mt(r),s=e._events,s===void 0?(s=e._events=Object.create(null),e._eventsCount=0):(s.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),l=s[t]),l===void 0)l=s[t]=r,++e._eventsCount;else if(typeof l=="function"?l=s[t]=a?[r,l]:[l,r]:a?l.unshift(r):l.push(r),o=Hi(e),o>0&&l.length>o&&!l.warned){l.warned=!0;var f=new Error("Possible EventEmitter memory leak detected. "+l.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");f.name="MaxListenersExceededWarning",f.emitter=e,f.type=t,f.count=l.length,ja(f)}return e}W.prototype.addListener=function(t,r){return Zi(this,t,r,!1)};W.prototype.on=W.prototype.addListener;W.prototype.prependListener=function(t,r){return Zi(this,t,r,!0)};function Ca(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Xi(e,t,r){var a={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=Ca.bind(a);return o.listener=r,a.wrapFn=o,o}W.prototype.once=function(t,r){return Mt(r),this.on(t,Xi(this,t,r)),this};W.prototype.prependOnceListener=function(t,r){return Mt(r),this.prependListener(t,Xi(this,t,r)),this};W.prototype.removeListener=function(t,r){var a,o,s,l,f;if(Mt(r),o=this._events,o===void 0)return this;if(a=o[t],a===void 0)return this;if(a===r||a.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete o[t],o.removeListener&&this.emit("removeListener",t,a.listener||r));else if(typeof a!="function"){for(s=-1,l=a.length-1;l>=0;l--)if(a[l]===r||a[l].listener===r){f=a[l].listener,s=l;break}if(s<0)return this;s===0?a.shift():Oa(a,s),a.length===1&&(o[t]=a[0]),o.removeListener!==void 0&&this.emit("removeListener",t,f||r)}return this};W.prototype.off=W.prototype.removeListener;W.prototype.removeAllListeners=function(t){var r,a,o;if(a=this._events,a===void 0)return this;if(a.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):a[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete a[t]),this;if(arguments.length===0){var s=Object.keys(a),l;for(o=0;o<s.length;++o)l=s[o],l!=="removeListener"&&this.removeAllListeners(l);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=a[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(o=r.length-1;o>=0;o--)this.removeListener(t,r[o]);return this};function Yi(e,t,r){var a=e._events;if(a===void 0)return[];var o=a[t];return o===void 0?[]:typeof o=="function"?r?[o.listener||o]:[o]:r?ka(o):Ki(o,o.length)}W.prototype.listeners=function(t){return Yi(this,t,!0)};W.prototype.rawListeners=function(t){return Yi(this,t,!1)};W.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Vi.call(e,t)};W.prototype.listenerCount=Vi;function Vi(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}W.prototype.eventNames=function(){return this._eventsCount>0?ct(this._events):[]};function Ki(e,t){for(var r=new Array(t),a=0;a<t;++a)r[a]=e[a];return r}function Oa(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function ka(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function Fa(e,t){return new Promise(function(r,a){function o(l){e.removeListener(t,s),a(l)}function s(){typeof e.removeListener=="function"&&e.removeListener("error",o),r([].slice.call(arguments))}Ji(e,t,s,{once:!0}),t!=="error"&&Pa(e,o,{once:!0})})}function Pa(e,t,r){typeof e.on=="function"&&Ji(e,"error",t,r)}function Ji(e,t,r,a){if(typeof e.on=="function")a.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function o(s){a.once&&e.removeEventListener(t,o),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var dr=cr.exports;const $a=lr(dr);var Rt={exports:{}},pr="_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Qi="-0123456789"+pr,Da=new RegExp("^[^"+pr+"]|[^\\"+Qi+"]","g"),Ua=12,qa={random:en,sanitize:tn,ensure:Ga};function en(e){return e=e||Ua,Ir(1,pr)+Ir(e-1,Qi)}function tn(e){return e.replace(Da,"_")}function Ga(e,t){return typeof e=="string"?tn(e):en(t)}function Ir(e,t){for(var r=t.length,a="";e>0;)e--,a+=t[Math.floor(Math.random()*r)];return a}var za=typeof ee=="object"&&ee&&ee.Object===Object&&ee,Wa=typeof self=="object"&&self&&self.Object===Object&&self,Ha=za||Wa||Function("return this")(),Za=Ha.isFinite;function Xa(e){return typeof e=="number"&&Za(e)}var ut=Xa,yt={},Ht={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(e,t){var r=rt,a=r.Buffer;function o(l,f){for(var h in l)f[h]=l[h]}a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=s);function s(l,f,h){return a(l,f,h)}s.prototype=Object.create(a.prototype),o(a,s),s.from=function(l,f,h){if(typeof l=="number")throw new TypeError("Argument must not be a number");return a(l,f,h)},s.alloc=function(l,f,h){if(typeof l!="number")throw new TypeError("Argument must be a number");var p=a(l);return f!==void 0?typeof h=="string"?p.fill(f,h):p.fill(f):p.fill(0),p},s.allocUnsafe=function(l){if(typeof l!="number")throw new TypeError("Argument must be a number");return a(l)},s.allocUnsafeSlow=function(l){if(typeof l!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(l)}})(Ht,Ht.exports);var Ya=Ht.exports,vr=Ya.Buffer,Nr=vr.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Va(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function Ka(e){var t=Va(e);if(typeof t!="string"&&(vr.isEncoding===Nr||!Nr(e)))throw new Error("Unknown encoding: "+e);return t||e}yt.StringDecoder=lt;function lt(e){this.encoding=Ka(e);var t;switch(this.encoding){case"utf16le":this.text=io,this.end=no,t=4;break;case"utf8":this.fillLast=eo,t=4;break;case"base64":this.text=ao,this.end=oo,t=3;break;default:this.write=so,this.end=fo;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=vr.allocUnsafe(t)}lt.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""};lt.prototype.end=ro;lt.prototype.text=to;lt.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function Lt(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function Ja(e,t,r){var a=t.length-1;if(a<r)return 0;var o=Lt(t[a]);return o>=0?(o>0&&(e.lastNeed=o-1),o):--a<r||o===-2?0:(o=Lt(t[a]),o>=0?(o>0&&(e.lastNeed=o-2),o):--a<r||o===-2?0:(o=Lt(t[a]),o>=0?(o>0&&(o===2?o=0:e.lastNeed=o-3),o):0))}function Qa(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function eo(e){var t=this.lastTotal-this.lastNeed,r=Qa(this,e);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function to(e,t){var r=Ja(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var a=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,a),e.toString("utf8",t,a)}function ro(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function io(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var a=r.charCodeAt(r.length-1);if(a>=55296&&a<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function no(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function ao(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function oo(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function so(e){return e.toString(this.encoding)}function fo(e){return e&&e.length?this.write(e):""}var Zt={exports:{}};typeof Object.create=="function"?Zt.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Zt.exports=function(t,r){if(r){t.super_=r;var a=function(){};a.prototype=r.prototype,t.prototype=new a,t.prototype.constructor=t}};var ke=Zt.exports,Xt={exports:{}},rn=dr.EventEmitter;const uo={},lo=Object.freeze(Object.defineProperty({__proto__:null,default:uo},Symbol.toStringTag,{value:"Module"})),nn=wa(lo);var jt,Lr;function ho(){if(Lr)return jt;Lr=1;function e(E,R){var T=Object.keys(E);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(E);R&&(I=I.filter(function(O){return Object.getOwnPropertyDescriptor(E,O).enumerable})),T.push.apply(T,I)}return T}function t(E){for(var R=1;R<arguments.length;R++){var T=arguments[R]!=null?arguments[R]:{};R%2?e(Object(T),!0).forEach(function(I){r(E,I,T[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(E,Object.getOwnPropertyDescriptors(T)):e(Object(T)).forEach(function(I){Object.defineProperty(E,I,Object.getOwnPropertyDescriptor(T,I))})}return E}function r(E,R,T){return R=l(R),R in E?Object.defineProperty(E,R,{value:T,enumerable:!0,configurable:!0,writable:!0}):E[R]=T,E}function a(E,R){if(!(E instanceof R))throw new TypeError("Cannot call a class as a function")}function o(E,R){for(var T=0;T<R.length;T++){var I=R[T];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(E,l(I.key),I)}}function s(E,R,T){return R&&o(E.prototype,R),T&&o(E,T),Object.defineProperty(E,"prototype",{writable:!1}),E}function l(E){var R=f(E,"string");return typeof R=="symbol"?R:String(R)}function f(E,R){if(typeof E!="object"||E===null)return E;var T=E[Symbol.toPrimitive];if(T!==void 0){var I=T.call(E,R||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(R==="string"?String:Number)(E)}var h=rt,p=h.Buffer,y=nn,m=y.inspect,x=m&&m.custom||"inspect";function B(E,R,T){p.prototype.copy.call(E,R,T)}return jt=function(){function E(){a(this,E),this.head=null,this.tail=null,this.length=0}return s(E,[{key:"push",value:function(T){var I={data:T,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(T){var I={data:T,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var T=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,T}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(T){if(this.length===0)return"";for(var I=this.head,O=""+I.data;I=I.next;)O+=T+I.data;return O}},{key:"concat",value:function(T){if(this.length===0)return p.alloc(0);for(var I=p.allocUnsafe(T>>>0),O=this.head,j=0;O;)B(O.data,I,j),j+=O.data.length,O=O.next;return I}},{key:"consume",value:function(T,I){var O;return T<this.head.data.length?(O=this.head.data.slice(0,T),this.head.data=this.head.data.slice(T)):T===this.head.data.length?O=this.shift():O=I?this._getString(T):this._getBuffer(T),O}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(T){var I=this.head,O=1,j=I.data;for(T-=j.length;I=I.next;){var N=I.data,C=T>N.length?N.length:T;if(C===N.length?j+=N:j+=N.slice(0,T),T-=C,T===0){C===N.length?(++O,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=N.slice(C));break}++O}return this.length-=O,j}},{key:"_getBuffer",value:function(T){var I=p.allocUnsafe(T),O=this.head,j=1;for(O.data.copy(I),T-=O.data.length;O=O.next;){var N=O.data,C=T>N.length?N.length:T;if(N.copy(I,I.length-T,0,C),T-=C,T===0){C===N.length?(++j,O.next?this.head=O.next:this.head=this.tail=null):(this.head=O,O.data=N.slice(C));break}++j}return this.length-=j,I}},{key:x,value:function(T,I){return m(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),E}(),jt}function co(e,t){var r=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Yt,this,e)):process.nextTick(Yt,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(dt,r):(r._writableState.errorEmitted=!0,process.nextTick(jr,r,s)):process.nextTick(jr,r,s):t?(process.nextTick(dt,r),t(s)):process.nextTick(dt,r)}),this)}function jr(e,t){Yt(e,t),dt(e)}function dt(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function po(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Yt(e,t){e.emit("error",t)}function vo(e,t){var r=e._readableState,a=e._writableState;r&&r.autoDestroy||a&&a.autoDestroy?e.destroy(t):e.emit("error",t)}var an={destroy:co,undestroy:po,errorOrDestroy:vo},We={};function yo(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var on={};function ye(e,t,r){r||(r=Error);function a(s,l,f){return typeof t=="string"?t:t(s,l,f)}var o=function(s){yo(l,s);function l(f,h,p){return s.call(this,a(f,h,p))||this}return l}(r);o.prototype.name=r.name,o.prototype.code=e,on[e]=o}function Cr(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(a){return String(a)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function go(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function mo(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function _o(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}ye("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);ye("ERR_INVALID_ARG_TYPE",function(e,t,r){var a;typeof t=="string"&&go(t,"not ")?(a="must not be",t=t.replace(/^not /,"")):a="must be";var o;if(mo(e," argument"))o="The ".concat(e," ").concat(a," ").concat(Cr(t,"type"));else{var s=_o(e,".")?"property":"argument";o='The "'.concat(e,'" ').concat(s," ").concat(a," ").concat(Cr(t,"type"))}return o+=". Received type ".concat(typeof r),o},TypeError);ye("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");ye("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});ye("ERR_STREAM_PREMATURE_CLOSE","Premature close");ye("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});ye("ERR_MULTIPLE_CALLBACK","Callback called multiple times");ye("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");ye("ERR_STREAM_WRITE_AFTER_END","write after end");ye("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);ye("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);ye("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");We.codes=on;var wo=We.codes.ERR_INVALID_OPT_VALUE;function bo(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function xo(e,t,r,a){var o=bo(t,a,r);if(o!=null){if(!(isFinite(o)&&Math.floor(o)===o)||o<0){var s=a?r:"highWaterMark";throw new wo(s,o)}return Math.floor(o)}return e.objectMode?16:16*1024}var sn={getHighWaterMark:xo},Eo=Mo;function Mo(e,t){if(Ct("noDeprecation"))return e;var r=!1;function a(){if(!r){if(Ct("throwDeprecation"))throw new Error(t);Ct("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return a}function Ct(e){try{if(!ee.localStorage)return!1}catch{return!1}var t=ee.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}var Ot,Or;function fn(){if(Or)return Ot;Or=1,Ot=D;function e(b){var _=this;this.next=null,this.entry=null,this.finish=function(){Xe(_,b)}}var t;D.WritableState=$;var r={deprecate:Eo},a=rn,o=rt.Buffer,s=(typeof ee<"u"?ee:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function l(b){return o.from(b)}function f(b){return o.isBuffer(b)||b instanceof s}var h=an,p=sn,y=p.getHighWaterMark,m=We.codes,x=m.ERR_INVALID_ARG_TYPE,B=m.ERR_METHOD_NOT_IMPLEMENTED,E=m.ERR_MULTIPLE_CALLBACK,R=m.ERR_STREAM_CANNOT_PIPE,T=m.ERR_STREAM_DESTROYED,I=m.ERR_STREAM_NULL_VALUES,O=m.ERR_STREAM_WRITE_AFTER_END,j=m.ERR_UNKNOWN_ENCODING,N=h.errorOrDestroy;ke(D,a);function C(){}function $(b,_,A){t=t||tt(),b=b||{},typeof A!="boolean"&&(A=_ instanceof t),this.objectMode=!!b.objectMode,A&&(this.objectMode=this.objectMode||!!b.writableObjectMode),this.highWaterMark=y(this,b,"writableHighWaterMark",A),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var k=b.decodeStrings===!1;this.decodeStrings=!k,this.defaultEncoding=b.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(U){Te(_,U)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}$.prototype.getBuffer=function(){for(var _=this.bufferedRequest,A=[];_;)A.push(_),_=_.next;return A},function(){try{Object.defineProperty($.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var Z;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Z=Function.prototype[Symbol.hasInstance],Object.defineProperty(D,Symbol.hasInstance,{value:function(_){return Z.call(this,_)?!0:this!==D?!1:_&&_._writableState instanceof $}})):Z=function(_){return _ instanceof this};function D(b){t=t||tt();var _=this instanceof t;if(!_&&!Z.call(D,this))return new D(b);this._writableState=new $(b,this,_),this.writable=!0,b&&(typeof b.write=="function"&&(this._write=b.write),typeof b.writev=="function"&&(this._writev=b.writev),typeof b.destroy=="function"&&(this._destroy=b.destroy),typeof b.final=="function"&&(this._final=b.final)),a.call(this)}D.prototype.pipe=function(){N(this,new R)};function F(b,_){var A=new O;N(b,A),process.nextTick(_,A)}function fe(b,_,A,k){var U;return A===null?U=new I:typeof A!="string"&&!_.objectMode&&(U=new x("chunk",["string","Buffer"],A)),U?(N(b,U),process.nextTick(k,U),!1):!0}D.prototype.write=function(b,_,A){var k=this._writableState,U=!1,d=!k.objectMode&&f(b);return d&&!o.isBuffer(b)&&(b=l(b)),typeof _=="function"&&(A=_,_=null),d?_="buffer":_||(_=k.defaultEncoding),typeof A!="function"&&(A=C),k.ending?F(this,A):(d||fe(this,k,b,A))&&(k.pendingcb++,U=Be(this,k,d,b,_,A)),U},D.prototype.cork=function(){this._writableState.corked++},D.prototype.uncork=function(){var b=this._writableState;b.corked&&(b.corked--,!b.writing&&!b.corked&&!b.bufferProcessing&&b.bufferedRequest&&ue(this,b))},D.prototype.setDefaultEncoding=function(_){if(typeof _=="string"&&(_=_.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((_+"").toLowerCase())>-1))throw new j(_);return this._writableState.defaultEncoding=_,this},Object.defineProperty(D.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Se(b,_,A){return!b.objectMode&&b.decodeStrings!==!1&&typeof _=="string"&&(_=o.from(_,A)),_}Object.defineProperty(D.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Be(b,_,A,k,U,d){if(!A){var v=Se(_,k,U);k!==v&&(A=!0,U="buffer",k=v)}var S=_.objectMode?1:k.length;_.length+=S;var L=_.length<_.highWaterMark;if(L||(_.needDrain=!0),_.writing||_.corked){var X=_.lastBufferedRequest;_.lastBufferedRequest={chunk:k,encoding:U,isBuf:A,callback:d,next:null},X?X.next=_.lastBufferedRequest:_.bufferedRequest=_.lastBufferedRequest,_.bufferedRequestCount+=1}else ce(b,_,!1,S,k,U,d);return L}function ce(b,_,A,k,U,d,v){_.writelen=k,_.writecb=v,_.writing=!0,_.sync=!0,_.destroyed?_.onwrite(new T("write")):A?b._writev(U,_.onwrite):b._write(U,d,_.onwrite),_.sync=!1}function we(b,_,A,k,U){--_.pendingcb,A?(process.nextTick(U,k),process.nextTick(be,b,_),b._writableState.errorEmitted=!0,N(b,k)):(U(k),b._writableState.errorEmitted=!0,N(b,k),be(b,_))}function de(b){b.writing=!1,b.writecb=null,b.length-=b.writelen,b.writelen=0}function Te(b,_){var A=b._writableState,k=A.sync,U=A.writecb;if(typeof U!="function")throw new E;if(de(A),_)we(b,A,k,_,U);else{var d=He(A)||b.destroyed;!d&&!A.corked&&!A.bufferProcessing&&A.bufferedRequest&&ue(b,A),k?process.nextTick(ge,b,A,d,U):ge(b,A,d,U)}}function ge(b,_,A,k){A||Le(b,_),_.pendingcb--,k(),be(b,_)}function Le(b,_){_.length===0&&_.needDrain&&(_.needDrain=!1,b.emit("drain"))}function ue(b,_){_.bufferProcessing=!0;var A=_.bufferedRequest;if(b._writev&&A&&A.next){var k=_.bufferedRequestCount,U=new Array(k),d=_.corkedRequestsFree;d.entry=A;for(var v=0,S=!0;A;)U[v]=A,A.isBuf||(S=!1),A=A.next,v+=1;U.allBuffers=S,ce(b,_,!0,_.length,U,"",d.finish),_.pendingcb++,_.lastBufferedRequest=null,d.next?(_.corkedRequestsFree=d.next,d.next=null):_.corkedRequestsFree=new e(_),_.bufferedRequestCount=0}else{for(;A;){var L=A.chunk,X=A.encoding,q=A.callback,z=_.objectMode?1:L.length;if(ce(b,_,!1,z,L,X,q),A=A.next,_.bufferedRequestCount--,_.writing)break}A===null&&(_.lastBufferedRequest=null)}_.bufferedRequest=A,_.bufferProcessing=!1}D.prototype._write=function(b,_,A){A(new B("_write()"))},D.prototype._writev=null,D.prototype.end=function(b,_,A){var k=this._writableState;return typeof b=="function"?(A=b,b=null,_=null):typeof _=="function"&&(A=_,_=null),b!=null&&this.write(b,_),k.corked&&(k.corked=1,this.uncork()),k.ending||Ze(this,k,A),this},Object.defineProperty(D.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function He(b){return b.ending&&b.length===0&&b.bufferedRequest===null&&!b.finished&&!b.writing}function V(b,_){b._final(function(A){_.pendingcb--,A&&N(b,A),_.prefinished=!0,b.emit("prefinish"),be(b,_)})}function ie(b,_){!_.prefinished&&!_.finalCalled&&(typeof b._final=="function"&&!_.destroyed?(_.pendingcb++,_.finalCalled=!0,process.nextTick(V,b,_)):(_.prefinished=!0,b.emit("prefinish")))}function be(b,_){var A=He(_);if(A&&(ie(b,_),_.pendingcb===0&&(_.finished=!0,b.emit("finish"),_.autoDestroy))){var k=b._readableState;(!k||k.autoDestroy&&k.endEmitted)&&b.destroy()}return A}function Ze(b,_,A){_.ending=!0,be(b,_),A&&(_.finished?process.nextTick(A):b.once("finish",A)),_.ended=!0,b.writable=!1}function Xe(b,_,A){var k=b.entry;for(b.entry=null;k;){var U=k.callback;_.pendingcb--,U(A),k=k.next}_.corkedRequestsFree.next=b}return Object.defineProperty(D.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(_){this._writableState&&(this._writableState.destroyed=_)}}),D.prototype.destroy=h.destroy,D.prototype._undestroy=h.undestroy,D.prototype._destroy=function(b,_){_(b)},Ot}var kt,kr;function tt(){if(kr)return kt;kr=1;var e=Object.keys||function(p){var y=[];for(var m in p)y.push(m);return y};kt=l;var t=ln(),r=fn();ke(l,t);for(var a=e(r.prototype),o=0;o<a.length;o++){var s=a[o];l.prototype[s]||(l.prototype[s]=r.prototype[s])}function l(p){if(!(this instanceof l))return new l(p);t.call(this,p),r.call(this,p),this.allowHalfOpen=!0,p&&(p.readable===!1&&(this.readable=!1),p.writable===!1&&(this.writable=!1),p.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",f)))}Object.defineProperty(l.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(l.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function f(){this._writableState.ended||process.nextTick(h,this)}function h(p){p.end()}return Object.defineProperty(l.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(y){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=y,this._writableState.destroyed=y)}}),kt}var Fr=We.codes.ERR_STREAM_PREMATURE_CLOSE;function Ro(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];e.apply(this,a)}}}function So(){}function Bo(e){return e.setHeader&&typeof e.abort=="function"}function un(e,t,r){if(typeof t=="function")return un(e,null,t);t||(t={}),r=Ro(r||So);var a=t.readable||t.readable!==!1&&e.readable,o=t.writable||t.writable!==!1&&e.writable,s=function(){e.writable||f()},l=e._writableState&&e._writableState.finished,f=function(){o=!1,l=!0,a||r.call(e)},h=e._readableState&&e._readableState.endEmitted,p=function(){a=!1,h=!0,o||r.call(e)},y=function(E){r.call(e,E)},m=function(){var E;if(a&&!h)return(!e._readableState||!e._readableState.ended)&&(E=new Fr),r.call(e,E);if(o&&!l)return(!e._writableState||!e._writableState.ended)&&(E=new Fr),r.call(e,E)},x=function(){e.req.on("finish",f)};return Bo(e)?(e.on("complete",f),e.on("abort",m),e.req?x():e.on("request",x)):o&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",p),e.on("finish",f),t.error!==!1&&e.on("error",y),e.on("close",m),function(){e.removeListener("complete",f),e.removeListener("abort",m),e.removeListener("request",x),e.req&&e.req.removeListener("finish",f),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",f),e.removeListener("end",p),e.removeListener("error",y),e.removeListener("close",m)}}var yr=un,Ft,Pr;function To(){if(Pr)return Ft;Pr=1;var e;function t(j,N,C){return N=r(N),N in j?Object.defineProperty(j,N,{value:C,enumerable:!0,configurable:!0,writable:!0}):j[N]=C,j}function r(j){var N=a(j,"string");return typeof N=="symbol"?N:String(N)}function a(j,N){if(typeof j!="object"||j===null)return j;var C=j[Symbol.toPrimitive];if(C!==void 0){var $=C.call(j,N||"default");if(typeof $!="object")return $;throw new TypeError("@@toPrimitive must return a primitive value.")}return(N==="string"?String:Number)(j)}var o=yr,s=Symbol("lastResolve"),l=Symbol("lastReject"),f=Symbol("error"),h=Symbol("ended"),p=Symbol("lastPromise"),y=Symbol("handlePromise"),m=Symbol("stream");function x(j,N){return{value:j,done:N}}function B(j){var N=j[s];if(N!==null){var C=j[m].read();C!==null&&(j[p]=null,j[s]=null,j[l]=null,N(x(C,!1)))}}function E(j){process.nextTick(B,j)}function R(j,N){return function(C,$){j.then(function(){if(N[h]){C(x(void 0,!0));return}N[y](C,$)},$)}}var T=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[m]},next:function(){var N=this,C=this[f];if(C!==null)return Promise.reject(C);if(this[h])return Promise.resolve(x(void 0,!0));if(this[m].destroyed)return new Promise(function(F,fe){process.nextTick(function(){N[f]?fe(N[f]):F(x(void 0,!0))})});var $=this[p],Z;if($)Z=new Promise(R($,this));else{var D=this[m].read();if(D!==null)return Promise.resolve(x(D,!1));Z=new Promise(this[y])}return this[p]=Z,Z}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var N=this;return new Promise(function(C,$){N[m].destroy(null,function(Z){if(Z){$(Z);return}C(x(void 0,!0))})})}),e),T),O=function(N){var C,$=Object.create(I,(C={},t(C,m,{value:N,writable:!0}),t(C,s,{value:null,writable:!0}),t(C,l,{value:null,writable:!0}),t(C,f,{value:null,writable:!0}),t(C,h,{value:N._readableState.endEmitted,writable:!0}),t(C,y,{value:function(D,F){var fe=$[m].read();fe?($[p]=null,$[s]=null,$[l]=null,D(x(fe,!1))):($[s]=D,$[l]=F)},writable:!0}),C));return $[p]=null,o(N,function(Z){if(Z&&Z.code!=="ERR_STREAM_PREMATURE_CLOSE"){var D=$[l];D!==null&&($[p]=null,$[s]=null,$[l]=null,D(Z)),$[f]=Z;return}var F=$[s];F!==null&&($[p]=null,$[s]=null,$[l]=null,F(x(void 0,!0))),$[h]=!0}),N.on("readable",E.bind(null,$)),$};return Ft=O,Ft}var Pt,$r;function Ao(){return $r||($r=1,Pt=function(){throw new Error("Readable.from is not available in the browser")}),Pt}var $t,Dr;function ln(){if(Dr)return $t;Dr=1,$t=F;var e;F.ReadableState=D,dr.EventEmitter;var t=function(v,S){return v.listeners(S).length},r=rn,a=rt.Buffer,o=(typeof ee<"u"?ee:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(d){return a.from(d)}function l(d){return a.isBuffer(d)||d instanceof o}var f=nn,h;f&&f.debuglog?h=f.debuglog("stream"):h=function(){};var p=ho(),y=an,m=sn,x=m.getHighWaterMark,B=We.codes,E=B.ERR_INVALID_ARG_TYPE,R=B.ERR_STREAM_PUSH_AFTER_EOF,T=B.ERR_METHOD_NOT_IMPLEMENTED,I=B.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,O,j,N;ke(F,r);var C=y.errorOrDestroy,$=["error","close","destroy","pause","resume"];function Z(d,v,S){if(typeof d.prependListener=="function")return d.prependListener(v,S);!d._events||!d._events[v]?d.on(v,S):Array.isArray(d._events[v])?d._events[v].unshift(S):d._events[v]=[S,d._events[v]]}function D(d,v,S){e=e||tt(),d=d||{},typeof S!="boolean"&&(S=v instanceof e),this.objectMode=!!d.objectMode,S&&(this.objectMode=this.objectMode||!!d.readableObjectMode),this.highWaterMark=x(this,d,"readableHighWaterMark",S),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=d.emitClose!==!1,this.autoDestroy=!!d.autoDestroy,this.destroyed=!1,this.defaultEncoding=d.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,d.encoding&&(O||(O=yt.StringDecoder),this.decoder=new O(d.encoding),this.encoding=d.encoding)}function F(d){if(e=e||tt(),!(this instanceof F))return new F(d);var v=this instanceof e;this._readableState=new D(d,this,v),this.readable=!0,d&&(typeof d.read=="function"&&(this._read=d.read),typeof d.destroy=="function"&&(this._destroy=d.destroy)),r.call(this)}Object.defineProperty(F.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(v){this._readableState&&(this._readableState.destroyed=v)}}),F.prototype.destroy=y.destroy,F.prototype._undestroy=y.undestroy,F.prototype._destroy=function(d,v){v(d)},F.prototype.push=function(d,v){var S=this._readableState,L;return S.objectMode?L=!0:typeof d=="string"&&(v=v||S.defaultEncoding,v!==S.encoding&&(d=a.from(d,v),v=""),L=!0),fe(this,d,v,!1,L)},F.prototype.unshift=function(d){return fe(this,d,null,!0,!1)};function fe(d,v,S,L,X){h("readableAddChunk",v);var q=d._readableState;if(v===null)q.reading=!1,Te(d,q);else{var z;if(X||(z=Be(q,v)),z)C(d,z);else if(q.objectMode||v&&v.length>0)if(typeof v!="string"&&!q.objectMode&&Object.getPrototypeOf(v)!==a.prototype&&(v=s(v)),L)q.endEmitted?C(d,new I):Se(d,q,v,!0);else if(q.ended)C(d,new R);else{if(q.destroyed)return!1;q.reading=!1,q.decoder&&!S?(v=q.decoder.write(v),q.objectMode||v.length!==0?Se(d,q,v,!1):ue(d,q)):Se(d,q,v,!1)}else L||(q.reading=!1,ue(d,q))}return!q.ended&&(q.length<q.highWaterMark||q.length===0)}function Se(d,v,S,L){v.flowing&&v.length===0&&!v.sync?(v.awaitDrain=0,d.emit("data",S)):(v.length+=v.objectMode?1:S.length,L?v.buffer.unshift(S):v.buffer.push(S),v.needReadable&&ge(d)),ue(d,v)}function Be(d,v){var S;return!l(v)&&typeof v!="string"&&v!==void 0&&!d.objectMode&&(S=new E("chunk",["string","Buffer","Uint8Array"],v)),S}F.prototype.isPaused=function(){return this._readableState.flowing===!1},F.prototype.setEncoding=function(d){O||(O=yt.StringDecoder);var v=new O(d);this._readableState.decoder=v,this._readableState.encoding=this._readableState.decoder.encoding;for(var S=this._readableState.buffer.head,L="";S!==null;)L+=v.write(S.data),S=S.next;return this._readableState.buffer.clear(),L!==""&&this._readableState.buffer.push(L),this._readableState.length=L.length,this};var ce=1073741824;function we(d){return d>=ce?d=ce:(d--,d|=d>>>1,d|=d>>>2,d|=d>>>4,d|=d>>>8,d|=d>>>16,d++),d}function de(d,v){return d<=0||v.length===0&&v.ended?0:v.objectMode?1:d!==d?v.flowing&&v.length?v.buffer.head.data.length:v.length:(d>v.highWaterMark&&(v.highWaterMark=we(d)),d<=v.length?d:v.ended?v.length:(v.needReadable=!0,0))}F.prototype.read=function(d){h("read",d),d=parseInt(d,10);var v=this._readableState,S=d;if(d!==0&&(v.emittedReadable=!1),d===0&&v.needReadable&&((v.highWaterMark!==0?v.length>=v.highWaterMark:v.length>0)||v.ended))return h("read: emitReadable",v.length,v.ended),v.length===0&&v.ended?A(this):ge(this),null;if(d=de(d,v),d===0&&v.ended)return v.length===0&&A(this),null;var L=v.needReadable;h("need readable",L),(v.length===0||v.length-d<v.highWaterMark)&&(L=!0,h("length less than watermark",L)),v.ended||v.reading?(L=!1,h("reading or ended",L)):L&&(h("do read"),v.reading=!0,v.sync=!0,v.length===0&&(v.needReadable=!0),this._read(v.highWaterMark),v.sync=!1,v.reading||(d=de(S,v)));var X;return d>0?X=_(d,v):X=null,X===null?(v.needReadable=v.length<=v.highWaterMark,d=0):(v.length-=d,v.awaitDrain=0),v.length===0&&(v.ended||(v.needReadable=!0),S!==d&&v.ended&&A(this)),X!==null&&this.emit("data",X),X};function Te(d,v){if(h("onEofChunk"),!v.ended){if(v.decoder){var S=v.decoder.end();S&&S.length&&(v.buffer.push(S),v.length+=v.objectMode?1:S.length)}v.ended=!0,v.sync?ge(d):(v.needReadable=!1,v.emittedReadable||(v.emittedReadable=!0,Le(d)))}}function ge(d){var v=d._readableState;h("emitReadable",v.needReadable,v.emittedReadable),v.needReadable=!1,v.emittedReadable||(h("emitReadable",v.flowing),v.emittedReadable=!0,process.nextTick(Le,d))}function Le(d){var v=d._readableState;h("emitReadable_",v.destroyed,v.length,v.ended),!v.destroyed&&(v.length||v.ended)&&(d.emit("readable"),v.emittedReadable=!1),v.needReadable=!v.flowing&&!v.ended&&v.length<=v.highWaterMark,b(d)}function ue(d,v){v.readingMore||(v.readingMore=!0,process.nextTick(He,d,v))}function He(d,v){for(;!v.reading&&!v.ended&&(v.length<v.highWaterMark||v.flowing&&v.length===0);){var S=v.length;if(h("maybeReadMore read 0"),d.read(0),S===v.length)break}v.readingMore=!1}F.prototype._read=function(d){C(this,new T("_read()"))},F.prototype.pipe=function(d,v){var S=this,L=this._readableState;switch(L.pipesCount){case 0:L.pipes=d;break;case 1:L.pipes=[L.pipes,d];break;default:L.pipes.push(d);break}L.pipesCount+=1,h("pipe count=%d opts=%j",L.pipesCount,v);var X=(!v||v.end!==!1)&&d!==process.stdout&&d!==process.stderr,q=X?je:De;L.endEmitted?process.nextTick(q):S.once("end",q),d.on("unpipe",z);function z(u,i){h("onunpipe"),u===S&&i&&i.hasUnpiped===!1&&(i.hasUnpiped=!0,Ve())}function je(){h("onend"),d.end()}var Ye=V(S);d.on("drain",Ye);var nt=!1;function Ve(){h("cleanup"),d.removeListener("close",at),d.removeListener("finish",pe),d.removeListener("drain",Ye),d.removeListener("error",$e),d.removeListener("unpipe",z),S.removeListener("end",je),S.removeListener("end",De),S.removeListener("data",le),nt=!0,L.awaitDrain&&(!d._writableState||d._writableState.needDrain)&&Ye()}S.on("data",le);function le(u){h("ondata");var i=d.write(u);h("dest.write",i),i===!1&&((L.pipesCount===1&&L.pipes===d||L.pipesCount>1&&U(L.pipes,d)!==-1)&&!nt&&(h("false write response, pause",L.awaitDrain),L.awaitDrain++),S.pause())}function $e(u){h("onerror",u),De(),d.removeListener("error",$e),t(d,"error")===0&&C(d,u)}Z(d,"error",$e);function at(){d.removeListener("finish",pe),De()}d.once("close",at);function pe(){h("onfinish"),d.removeListener("close",at),De()}d.once("finish",pe);function De(){h("unpipe"),S.unpipe(d)}return d.emit("pipe",S),L.flowing||(h("pipe resume"),S.resume()),d};function V(d){return function(){var S=d._readableState;h("pipeOnDrain",S.awaitDrain),S.awaitDrain&&S.awaitDrain--,S.awaitDrain===0&&t(d,"data")&&(S.flowing=!0,b(d))}}F.prototype.unpipe=function(d){var v=this._readableState,S={hasUnpiped:!1};if(v.pipesCount===0)return this;if(v.pipesCount===1)return d&&d!==v.pipes?this:(d||(d=v.pipes),v.pipes=null,v.pipesCount=0,v.flowing=!1,d&&d.emit("unpipe",this,S),this);if(!d){var L=v.pipes,X=v.pipesCount;v.pipes=null,v.pipesCount=0,v.flowing=!1;for(var q=0;q<X;q++)L[q].emit("unpipe",this,{hasUnpiped:!1});return this}var z=U(v.pipes,d);return z===-1?this:(v.pipes.splice(z,1),v.pipesCount-=1,v.pipesCount===1&&(v.pipes=v.pipes[0]),d.emit("unpipe",this,S),this)},F.prototype.on=function(d,v){var S=r.prototype.on.call(this,d,v),L=this._readableState;return d==="data"?(L.readableListening=this.listenerCount("readable")>0,L.flowing!==!1&&this.resume()):d==="readable"&&!L.endEmitted&&!L.readableListening&&(L.readableListening=L.needReadable=!0,L.flowing=!1,L.emittedReadable=!1,h("on readable",L.length,L.reading),L.length?ge(this):L.reading||process.nextTick(be,this)),S},F.prototype.addListener=F.prototype.on,F.prototype.removeListener=function(d,v){var S=r.prototype.removeListener.call(this,d,v);return d==="readable"&&process.nextTick(ie,this),S},F.prototype.removeAllListeners=function(d){var v=r.prototype.removeAllListeners.apply(this,arguments);return(d==="readable"||d===void 0)&&process.nextTick(ie,this),v};function ie(d){var v=d._readableState;v.readableListening=d.listenerCount("readable")>0,v.resumeScheduled&&!v.paused?v.flowing=!0:d.listenerCount("data")>0&&d.resume()}function be(d){h("readable nexttick read 0"),d.read(0)}F.prototype.resume=function(){var d=this._readableState;return d.flowing||(h("resume"),d.flowing=!d.readableListening,Ze(this,d)),d.paused=!1,this};function Ze(d,v){v.resumeScheduled||(v.resumeScheduled=!0,process.nextTick(Xe,d,v))}function Xe(d,v){h("resume",v.reading),v.reading||d.read(0),v.resumeScheduled=!1,d.emit("resume"),b(d),v.flowing&&!v.reading&&d.read(0)}F.prototype.pause=function(){return h("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(h("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function b(d){var v=d._readableState;for(h("flow",v.flowing);v.flowing&&d.read()!==null;);}F.prototype.wrap=function(d){var v=this,S=this._readableState,L=!1;d.on("end",function(){if(h("wrapped end"),S.decoder&&!S.ended){var z=S.decoder.end();z&&z.length&&v.push(z)}v.push(null)}),d.on("data",function(z){if(h("wrapped data"),S.decoder&&(z=S.decoder.write(z)),!(S.objectMode&&z==null)&&!(!S.objectMode&&(!z||!z.length))){var je=v.push(z);je||(L=!0,d.pause())}});for(var X in d)this[X]===void 0&&typeof d[X]=="function"&&(this[X]=function(je){return function(){return d[je].apply(d,arguments)}}(X));for(var q=0;q<$.length;q++)d.on($[q],this.emit.bind(this,$[q]));return this._read=function(z){h("wrapped _read",z),L&&(L=!1,d.resume())},this},typeof Symbol=="function"&&(F.prototype[Symbol.asyncIterator]=function(){return j===void 0&&(j=To()),j(this)}),Object.defineProperty(F.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(F.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(F.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(v){this._readableState&&(this._readableState.flowing=v)}}),F._fromList=_,Object.defineProperty(F.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function _(d,v){if(v.length===0)return null;var S;return v.objectMode?S=v.buffer.shift():!d||d>=v.length?(v.decoder?S=v.buffer.join(""):v.buffer.length===1?S=v.buffer.first():S=v.buffer.concat(v.length),v.buffer.clear()):S=v.buffer.consume(d,v.decoder),S}function A(d){var v=d._readableState;h("endReadable",v.endEmitted),v.endEmitted||(v.ended=!0,process.nextTick(k,v,d))}function k(d,v){if(h("endReadableNT",d.endEmitted,d.length),!d.endEmitted&&d.length===0&&(d.endEmitted=!0,v.readable=!1,v.emit("end"),d.autoDestroy)){var S=v._writableState;(!S||S.autoDestroy&&S.finished)&&v.destroy()}}typeof Symbol=="function"&&(F.from=function(d,v){return N===void 0&&(N=Ao()),N(F,d,v)});function U(d,v){for(var S=0,L=d.length;S<L;S++)if(d[S]===v)return S;return-1}return $t}var hn=Ie,St=We.codes,Io=St.ERR_METHOD_NOT_IMPLEMENTED,No=St.ERR_MULTIPLE_CALLBACK,Lo=St.ERR_TRANSFORM_ALREADY_TRANSFORMING,jo=St.ERR_TRANSFORM_WITH_LENGTH_0,Bt=tt();ke(Ie,Bt);function Co(e,t){var r=this._transformState;r.transforming=!1;var a=r.writecb;if(a===null)return this.emit("error",new No);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),a(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function Ie(e){if(!(this instanceof Ie))return new Ie(e);Bt.call(this,e),this._transformState={afterTransform:Co.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",Oo)}function Oo(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){Ur(e,t,r)}):Ur(this,null,null)}Ie.prototype.push=function(e,t){return this._transformState.needTransform=!1,Bt.prototype.push.call(this,e,t)};Ie.prototype._transform=function(e,t,r){r(new Io("_transform()"))};Ie.prototype._write=function(e,t,r){var a=this._transformState;if(a.writecb=r,a.writechunk=e,a.writeencoding=t,!a.transforming){var o=this._readableState;(a.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}};Ie.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Ie.prototype._destroy=function(e,t){Bt.prototype._destroy.call(this,e,function(r){t(r)})};function Ur(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new jo;if(e._transformState.transforming)throw new Lo;return e.push(null)}var ko=ft,cn=hn;ke(ft,cn);function ft(e){if(!(this instanceof ft))return new ft(e);cn.call(this,e)}ft.prototype._transform=function(e,t,r){r(null,e)};var Dt;function Fo(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var dn=We.codes,Po=dn.ERR_MISSING_ARGS,$o=dn.ERR_STREAM_DESTROYED;function qr(e){if(e)throw e}function Do(e){return e.setHeader&&typeof e.abort=="function"}function Uo(e,t,r,a){a=Fo(a);var o=!1;e.on("close",function(){o=!0}),Dt===void 0&&(Dt=yr),Dt(e,{readable:t,writable:r},function(l){if(l)return a(l);o=!0,a()});var s=!1;return function(l){if(!o&&!s){if(s=!0,Do(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();a(l||new $o("pipe"))}}}function Gr(e){e()}function qo(e,t){return e.pipe(t)}function Go(e){return!e.length||typeof e[e.length-1]!="function"?qr:e.pop()}function zo(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var a=Go(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Po("streams");var o,s=t.map(function(l,f){var h=f<t.length-1,p=f>0;return Uo(l,h,p,function(y){o||(o=y),y&&s.forEach(Gr),!h&&(s.forEach(Gr),a(o))})});return t.reduce(qo)}var Wo=zo;(function(e,t){t=e.exports=ln(),t.Stream=t,t.Readable=t,t.Writable=fn(),t.Duplex=tt(),t.Transform=hn,t.PassThrough=ko,t.finished=yr,t.pipeline=Wo})(Xt,Xt.exports);var gr=Xt.exports,Ho=function(e,t,r){for(var a=Math.min(r-t,e.length),o=[],s=null,l=-1;!s&&++l<a;){var f=e[l];f===`
-`?o.length+l&&(s="drill",o=[]):(o.push(f),f==="*"&&o[0]!==";"&&(s="gerber",o=[]))}return s},Zo=Ho,Xo=function(e,t,r){if(e!=="gerber"&&e!=="drill")throw new Error('filetype to get next block must be "drill" or "gerber"');for(var a=t.length-r,o=e==="gerber"?"*":`
-`,s=e==="gerber"?"%":"",l=!1,f=!1,h=!1,p=!1,y=[],m=0,x=0;!p&&m<a;){var B=t[r+m];B===`
-`&&x++,B===s?f?(h=!0,y.pop()):(f=!0,y.push(B)):B===o?(l=!0,f&&y.push(B)):B>=" "&&B<="~"&&y.push(B),m++,p=l&&(!f||h)}var E=p?y.join("").trim():"",R=p?"":y.join("");return{lines:x,read:m,block:E,rem:R}},Yo=Xo,Vo=function(e){return{type:"done",line:e||-1}},Ko=function(e,t,r){return{type:"set",line:r||-1,prop:e,value:t}},Jo=function(e,t,r){return{type:"level",line:r||-1,level:e,value:t}},Qo=function(e,t,r){return{type:"tool",line:r||-1,code:e,tool:t}},es=function(e,t,r){return{type:"op",line:r||-1,op:e,coord:t}},ts=function(e,t,r){return{type:"macro",line:r||-1,name:e,blocks:t}},rs={set:Ko,done:Vo,level:Jo,tool:Qo,op:es,macro:ts},pn=rs,Vt=1/0,is=9007199254740991,ns=17976931348623157e292,zr=0/0,as="[object Symbol]",os=/^\s+|\s+$/g,ss=/^[-+]0x[0-9a-f]+$/i,fs=/^0b[01]+$/i,us=/^0o[0-7]+$/i,mr="\\ud800-\\udfff",vn="\\u0300-\\u036f\\ufe20-\\ufe23",yn="\\u20d0-\\u20f0",gn="\\ufe0e\\ufe0f",ls="["+mr+"]",Kt="["+vn+yn+"]",Jt="\\ud83c[\\udffb-\\udfff]",hs="(?:"+Kt+"|"+Jt+")",mn="[^"+mr+"]",_n="(?:\\ud83c[\\udde6-\\uddff]){2}",wn="[\\ud800-\\udbff][\\udc00-\\udfff]",bn="\\u200d",xn=hs+"?",En="["+gn+"]?",cs="(?:"+bn+"(?:"+[mn,_n,wn].join("|")+")"+En+xn+")*",ds=En+xn+cs,ps="(?:"+[mn+Kt+"?",Kt,_n,wn,ls].join("|")+")",Qt=RegExp(Jt+"(?="+Jt+")|"+ps+ds,"g"),vs=RegExp("["+bn+mr+vn+yn+gn+"]"),ys=parseInt,gs=typeof ee=="object"&&ee&&ee.Object===Object&&ee,ms=typeof self=="object"&&self&&self.Object===Object&&self,_s=gs||ms||Function("return this")(),ws=xs("length");function bs(e){return e.split("")}function xs(e){return function(t){return t==null?void 0:t[e]}}function _r(e){return vs.test(e)}function Mn(e){return _r(e)?Ms(e):ws(e)}function Es(e){return _r(e)?Rs(e):bs(e)}function Ms(e){for(var t=Qt.lastIndex=0;Qt.test(e);)t++;return t}function Rs(e){return e.match(Qt)||[]}var Ss=Object.prototype,Bs=Ss.toString,Wr=_s.Symbol,Ts=Math.ceil,As=Math.floor,Hr=Wr?Wr.prototype:void 0,Zr=Hr?Hr.toString:void 0;function Xr(e,t){var r="";if(!e||t<1||t>is)return r;do t%2&&(r+=e),t=As(t/2),t&&(e+=e);while(t);return r}function Is(e,t,r){var a=-1,o=e.length;t<0&&(t=-t>o?0:o+t),r=r>o?o:r,r<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(o);++a<o;)s[a]=e[a+t];return s}function Rn(e){if(typeof e=="string")return e;if(Sn(e))return Zr?Zr.call(e):"";var t=e+"";return t=="0"&&1/e==-Vt?"-0":t}function Ns(e,t,r){var a=e.length;return r=r===void 0?a:r,!t&&r>=a?e:Is(e,t,r)}function Ls(e,t){t=t===void 0?" ":Rn(t);var r=t.length;if(r<2)return r?Xr(t,e):t;var a=Xr(t,Ts(e/Mn(t)));return _r(t)?Ns(Es(a),0,e).join(""):a.slice(0,e)}function Yr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function js(e){return!!e&&typeof e=="object"}function Sn(e){return typeof e=="symbol"||js(e)&&Bs.call(e)==as}function Cs(e){if(!e)return e===0?e:0;if(e=ks(e),e===Vt||e===-Vt){var t=e<0?-1:1;return t*ns}return e===e?e:0}function Os(e){var t=Cs(e),r=t%1;return t===t?r?t-r:t:0}function ks(e){if(typeof e=="number")return e;if(Sn(e))return zr;if(Yr(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Yr(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(os,"");var r=fs.test(e);return r||us.test(e)?ys(e.slice(2),r?2:8):ss.test(e)?zr:+e}function Fs(e){return e==null?"":Rn(e)}function Ps(e,t,r){e=Fs(e),t=Os(t);var a=t?Mn(e):0;return t&&a<t?Ls(t-a,r)+e:e}var $s=Ps,er=1/0,Ds=9007199254740991,Us=17976931348623157e292,Vr=0/0,qs="[object Symbol]",Gs=/^\s+|\s+$/g,zs=/^[-+]0x[0-9a-f]+$/i,Ws=/^0b[01]+$/i,Hs=/^0o[0-7]+$/i,wr="\\ud800-\\udfff",Bn="\\u0300-\\u036f\\ufe20-\\ufe23",Tn="\\u20d0-\\u20f0",An="\\ufe0e\\ufe0f",Zs="["+wr+"]",tr="["+Bn+Tn+"]",rr="\\ud83c[\\udffb-\\udfff]",Xs="(?:"+tr+"|"+rr+")",In="[^"+wr+"]",Nn="(?:\\ud83c[\\udde6-\\uddff]){2}",Ln="[\\ud800-\\udbff][\\udc00-\\udfff]",jn="\\u200d",Cn=Xs+"?",On="["+An+"]?",Ys="(?:"+jn+"(?:"+[In,Nn,Ln].join("|")+")"+On+Cn+")*",Vs=On+Cn+Ys,Ks="(?:"+[In+tr+"?",tr,Nn,Ln,Zs].join("|")+")",ir=RegExp(rr+"(?="+rr+")|"+Ks+Vs,"g"),Js=RegExp("["+jn+wr+Bn+Tn+An+"]"),Qs=parseInt,e6=typeof ee=="object"&&ee&&ee.Object===Object&&ee,t6=typeof self=="object"&&self&&self.Object===Object&&self,r6=e6||t6||Function("return this")(),i6=a6("length");function n6(e){return e.split("")}function a6(e){return function(t){return t==null?void 0:t[e]}}function br(e){return Js.test(e)}function kn(e){return br(e)?s6(e):i6(e)}function o6(e){return br(e)?f6(e):n6(e)}function s6(e){for(var t=ir.lastIndex=0;ir.test(e);)t++;return t}function f6(e){return e.match(ir)||[]}var u6=Object.prototype,l6=u6.toString,Kr=r6.Symbol,h6=Math.ceil,c6=Math.floor,Jr=Kr?Kr.prototype:void 0,Qr=Jr?Jr.toString:void 0;function ei(e,t){var r="";if(!e||t<1||t>Ds)return r;do t%2&&(r+=e),t=c6(t/2),t&&(e+=e);while(t);return r}function d6(e,t,r){var a=-1,o=e.length;t<0&&(t=-t>o?0:o+t),r=r>o?o:r,r<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(o);++a<o;)s[a]=e[a+t];return s}function Fn(e){if(typeof e=="string")return e;if(Pn(e))return Qr?Qr.call(e):"";var t=e+"";return t=="0"&&1/e==-er?"-0":t}function p6(e,t,r){var a=e.length;return r=r===void 0?a:r,!t&&r>=a?e:d6(e,t,r)}function v6(e,t){t=t===void 0?" ":Fn(t);var r=t.length;if(r<2)return r?ei(t,e):t;var a=ei(t,h6(e/kn(t)));return br(t)?p6(o6(a),0,e).join(""):a.slice(0,e)}function ti(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function y6(e){return!!e&&typeof e=="object"}function Pn(e){return typeof e=="symbol"||y6(e)&&l6.call(e)==qs}function g6(e){if(!e)return e===0?e:0;if(e=_6(e),e===er||e===-er){var t=e<0?-1:1;return t*Us}return e===e?e:0}function m6(e){var t=g6(e),r=t%1;return t===t?r?t-r:t:0}function _6(e){if(typeof e=="number")return e;if(Pn(e))return Vr;if(ti(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ti(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(Gs,"");var r=Ws.test(e);return r||Hs.test(e)?Qs(e.slice(2),r?2:8):zs.test(e)?Vr:+e}function w6(e){return e==null?"":Fn(e)}function b6(e,t,r){e=w6(e),t=m6(t);var a=t?kn(e):0;return t&&a<t?e+v6(t-a,r):e}var x6=b6,ri=ut,E6=$s,M6=x6,R6=function(e,t){if(e==null)return NaN;var r=""+e,a="+";(r[0]==="-"||r[0]==="+")&&(a=r[0],r=r.slice(1));var o=r.indexOf(".")!==-1;if(o||t==null||t.zero==null)return Number(a+r);if(t.places==null||t.places.length!==2)return NaN;var s=t.places[0],l=t.places[1];if(!ri(s)||!ri(l))return NaN;if(t.zero==="T")r=M6(r,s+l,"0");else if(t.zero==="L")r=E6(r,s+l,"0");else return NaN;var f=r.slice(0,s),h=r.slice(s,s+l);return+(a+f+"."+h)},xr=R6,S6=xr,B6=/[XY]0\d+/,T6=/[XY]\d+0(?=\D|$)/,A6=[{coord:"x",test:/X([+-]?[\d.]+)/},{coord:"y",test:/Y([+-]?[\d.]+)/},{coord:"i",test:/I([+-]?[\d.]+)/},{coord:"j",test:/J([+-]?[\d.]+)/},{coord:"a",test:/A([\d.]+)/}],I6=function(e,t){if(e==null)return{};if(t.zero==null||t.places==null)throw new Error("cannot parse coordinate with format undefined");var r=A6.reduce(function(a,o){var s=e.match(o.test);return s&&(a[o.coord]=S6(s[1],t)),a},{});return r},N6=function(e){return T6.test(e)?"L":B6.test(e)?"T":null},$n={parse:I6,detectZero:N6},L6=/[+\-/xX()]/,Dn=/[$\d.]+/,j6=new RegExp([L6.source,Dn.source].join("|"),"g"),C6=function(t,r){var a=r.match(j6),o,s=function(){var p=a.shift(),y;return Dn.test(p)?y={type:"n",val:p}:(y=o(),a.shift()),y},l=function(){var p=s(),y=a[0];for(y==="X"&&(t._warn("multiplication in macros should use 'x', not 'X'"),y="x");y==="x"||y==="/";){a.shift();var m=s();p={type:y,left:p,right:m},y=a[0]}return p};o=function(){for(var p=l(),y=a[0];y==="+"||y==="-";){a.shift();var m=l();p={type:y,left:p,right:m},y=a[0]}return p};var f=o(),h=function(p,y){var m=function(B){return B[0]==="$"?Number(y[B]):Number(B)},x=p.type;return x==="n"?m(p.val):x==="+"?h(p.left,y)+h(p.right,y):x==="-"?h(p.left,y)-h(p.right,y):x==="x"?h(p.left,y)*h(p.right,y):h(p.left,y)/h(p.right,y)};return function(p){return h(f,p)}},ii=C6,O6=/^-?[\d.]+$/,ni=/^(\$[\d+])=(.+)/,k6=function(e,t){if(t[0]==="0")return{type:"comment"};if(ni.test(t)){var r=t.match(ni),a=r[1],o=r[2],s=ii(e,o),l=function(m){return m[a]=s(m),m};return{type:"variable",set:l}}var f=function(m){return O6.test(m)?Number(m):ii(e,m)},h=t.split(",").map(f),p=h[0],y=h[1];if(p===1)return{type:"circle",exp:y,dia:h[2],cx:h[3],cy:h[4],rot:h[5]||0};if(p===2&&e._warn("macro aperture vector primitives with code 2 are deprecated"),p===2||p===20)return{type:"vect",exp:y,width:h[2],x1:h[3],y1:h[4],x2:h[5],y2:h[6],rot:h[7]};if(p===21)return{type:"rect",exp:y,width:h[2],height:h[3],cx:h[4],cy:h[5],rot:h[6]};if(p===22)return e._warn("macro aperture lower-left rectangle primitives are deprecated"),{type:"rectLL",exp:y,width:h[2],height:h[3],x:h[4],y:h[5],rot:h[6]};if(p===4)return{type:"outline",exp:y,points:h.slice(3,-1),rot:h[h.length-1]};if(p===5)return{type:"poly",exp:y,vertices:h[2],cx:h[3],cy:h[4],dia:h[5],rot:h[6]};if(p===6)return{type:"moire",exp:1,cx:h[1],cy:h[2],dia:h[3],ringThx:h[4],ringGap:h[5],maxRings:h[6],crossThx:h[7],crossLen:h[8],rot:h[9]};if(p===7)return{type:"thermal",exp:1,cx:h[1],cy:h[2],outerDia:h[3],innerDia:h[4],gap:h[5],rot:h[6]};e._warn(p+" is an unrecognized primitive for a macro aperture")},F6=k6,se=pn,Ue=xr,P6=$n,$6=F6,ai=/^G0*([123])/,oi=/^G3([67])/,si=/^G7([45])/,fi=/^G7([01])/,ui=/^G9([01])/,D6=/^G0*4/,U6=/^%TO[^%*]*/,li=/^(?:G54)?D0*([1-9]\d+)/,hi=/D0*([123])$/,ci=/^(?:G0*[123])?((?:[XYIJ][+-]?\d+){1,4})(?:D0*[123])?$/,di=/^%MO(IN|MM)/,pi=/^%FS([LT]?)([AI]?)(.*)X([0-7])([0-7])Y\4\5/,vi=/^%LP([CD])/,yi=/^%SR(?:X(\d+)Y(\d+)I([\d.]+)J([\d.]+))?/,Un=/^%ADD0*(\d{2,})([A-Za-z_$][\w\-.]*)(?:,((?:X?[\d.-]+)*))?/,qn=/^%AM([A-Za-z_$][\w\-.]*)\*?(.*)/,gi=/\*MO(IN|MM)$/,mi=function(e,t){var r=t==="IN"?"in":"mm";return e._push(se.set("units",r))},q6=function(e,t){var r={places:e.format.places},a=t.match(Un),o=a[1],s=a[2],l=a[3]?a[3].split("X"):[],f,h;s==="C"?(f="circle",h=3):s==="R"?(f="rect",h=4):s==="O"?(f="obround",h=4):s==="P"?(f="poly",h=5):(f=s,h=0);var p;f==="circle"?p=[Ue(l[0],r)]:f==="rect"||f==="obround"?p=[Ue(l[0],r),Ue(l[1],r)]:f==="poly"?(p=[Ue(l[0],r),Number(l[1]),0],l[2]&&(p[2]=Number(l[2]))):p=l.map(Number);var y=[];l[h-1]?y=[Ue(l[h-2],r),Ue(l[h-1],r)]:l[h-2]&&(y=[Ue(l[h-2],r)]);var m={shape:f,params:p,hole:y};return e._push(se.tool(o,m))},G6=function(e,t){var r=t.match(qn),a=r[1];a.match(/-/)&&e._warn("hyphens in macro name are illegal: "+a);var o=r[2].length?r[2].split("*"):[],s=o.filter(Boolean).map(function(l){return $6(e,l)});return e._push(se.macro(a,s))},z6=function(e,t){if(!(D6.test(t)||U6.test(t))){if(t==="M02")return e._push(se.done());if(oi.test(t)){var r=t.match(oi)[1],a=r==="6";return e._push(se.set("region",a))}if(si.test(t)){var o=t.match(si)[1],s=o==="4"?"s":"m";return e._push(se.set("arc",s))}if(di.test(t)){var l=t.match(di)[1];return mi(e,l)}if(fi.test(t)){var f=t.match(fi)[1],h=f==="0"?"in":"mm";return e._push(se.set("backupUnits",h))}if(pi.test(t)){var p=t.match(pi),y=p[1],m=p[2],x=p[3],B=Number(p[4]),E=Number(p[5]),R=e.format;R.zero=R.zero||y,R.places||(R.places=[B,E]),R.zero?R.zero==="T"&&e._warn("trailing zero suppression has been deprecated"):(R.zero="L",e._warn("zero suppression missing from format; assuming leading")),x&&e._warn('unknown characters "'+x+'" in "'+t+'" were ignored');var T=1.5*Math.pow(10,-R.places[1]);if(e._push(se.set("nota",m)),e._push(se.set("epsilon",T)),gi.test(t)){var I=t.match(gi)[1];mi(e,I)}return}if(ui.test(t)){var O=t.match(ui)[1],j=O==="0"?"A":"I";return e._push(se.set("backupNota",j))}if(vi.test(t)){var N=t.match(vi)[1];return e._push(se.level("polarity",N))}if(yi.test(t)){var C=t.match(yi),$=C[1]||1,Z=C[2]||1,D=C[3]||0,F=C[4]||0,fe={x:Number($),y:Number(Z),i:Number(D),j:Number(F)};return e._push(se.level("stepRep",fe))}if(li.test(t)){var Se=t.match(li)[1];return e._push(se.set("tool",Se))}if(Un.test(t))return q6(e,t);if(qn.test(t))return G6(e,t);if(hi.test(t)||ai.test(t)||ci.test(t)){var Be=t.match(hi),ce=t.match(ai),we=t.match(ci),de;if(ce&&(ce[1]==="1"?de="i":ce[1]==="2"?de="cw":de="ccw",e._push(se.set("mode",de))),Be||we){var Te=Be?Be[1]:"",ge=we?we[1]:"",Le=P6.parse(ge,e.format),ue="last";Te==="1"?ue="int":Te==="2"?ue="move":Te==="3"&&(ue="flash"),e._push(se.op(ue,Le))}return}return e._warn('block "'+t+'" was not recognized and was ignored')}},W6=z6,Gn={DRILL:"5",MOVE:"0",LINEAR:"1",CW_ARC:"2",CCW_ARC:"3"},_i=ut,Q=pn,ot=Gn,H6=xr,nr=$n,wi=/;FILE_FORMAT=(\d):(\d)/,bi=/;TYPE=(PLATED|NON_PLATED)/,xi=/;FORMAT={(.):(.)\/ (absolute|.+)? \/ (metric|inch) \/.+(trailing|leading|decimal|keep)/,zn=/^(INCH|METRIC|M71|M72)/,Wn=/,([TL])Z/,Z6=/,(0{1,8})\.(0{1,8})/,Ei=/T0*(\d+)[\S]*C([\d.]+)/,Mi=/T0*(\d+)(?![\S]*C)/,Er=/((?:[XYIJA][+-]?[\d.]+){1,4})(?:G85((?:[XY][+-]?[\d.]+){1,2}))?/,Ri=/^G0([01235])/,X6=function(e,t,r){var a={};if(xi.test(t)){var o=t.match(xi),s=Number(o[1]),l=Number(o[2]),f=o[3],h=o[4],p=o[5];_i(s)&&_i(l)&&(a.places=[s,l]),f==="absolute"?e._push(Q.set("backupNota","A",r)):e._push(Q.set("backupNota","I",r)),h==="metric"?e._push(Q.set("backupUnits","mm",r)):e._push(Q.set("backupUnits","in",r)),p==="leading"||p==="keep"?a.zero="L":p==="trailing"?a.zero="T":a.zero="D"}else if(wi.test(t)){var y=t.match(wi);a.places=[Number(y[1]),Number(y[2])]}else if(bi.test(t)){var m=t.match(bi),x=m[1]==="PLATED"?"pth":"npth";e._push(Q.set("holePlating",x,r))}return a},Y6=function(e,t,r){var a=t.match(zn),o=t.match(Wn),s=t.match(Z6),l=a[1]==="METRIC"||a[1]==="M71"?"mm":"in",f=o&&o[1];e.format.zero==null&&f&&(e.format.zero=f==="T"?"L":"T"),e.format.places==null&&(s?e.format.places=[s[1].length,s[2].length]:e.format.places=l==="in"?[2,4]:[3,3]),e._push(Q.set("units",l,r))},V6=function(e,t,r){var a=t.match(Er),o=nr.parse(a[1],e.format);if(a[2])return e._push(Q.op("move",o,r)),e._push(Q.set("mode","i",r)),o=nr.parse(a[2],e.format),e._push(Q.op("int",o,r));switch(Ri.test(t)&&(e._drillMode=t.match(Ri)[1]),e._drillMode){case ot.DRILL:return e._push(Q.op("flash",o,r));case ot.MOVE:return e._push(Q.op("move",o,r));case ot.LINEAR:return e._push(Q.set("mode","i",r)),e._push(Q.op("int",o,r));case ot.CW_ARC:return e._push(Q.set("mode","cw",r)),e._push(Q.op("int",o,r));case ot.CCW_ARC:return e._push(Q.set("mode","ccw",r)),e._push(Q.op("int",o,r))}},Hn=function(e,t,r){if(Ei.test(t)){var a=t.match(Ei),o=a[1],s=H6(a[2]),l={shape:"circle",params:[s],hole:[]};return e._push(Q.tool(o,l,r))}if(Mi.test(t)){var f=t.match(Mi)[1];e._push(Q.set("tool",f,r))}if(Er.test(t))return e.format.places||(e.format.places=[2,4],e._warn("places format missing; assuming [2, 4]")),e.format.zero||(e.format.zero="T",e._warn("zero suppression missing; assuming trailing suppression")),V6(e,t,r);if(t==="M00"||t==="M30")return e._push(Q.done(r));if(t==="G90")return e._push(Q.set("nota","A",r));if(t==="G91")return e._push(Q.set("nota","I",r));if(zn.test(t))return Y6(e,t,r)},Zn=function(e){e._drillStash.forEach(function(t){Hn(e,t.block,t.line)}),e._drillStash=[]},K6=function(e,t){if(t[0]===";"){var r=X6(e,t,e.line);Object.keys(r).forEach(function(a){e.format[a]||(e.format[a]=r[a])})}else e.format.zero?Hn(e,t,e.line):(e._drillStash.push({line:e.line,block:t}),Er.test(t)&&(e.format.zero=nr.detectZero(t),e.format.zero&&e._warn("zero suppression missing; detected "+(e.format.zero==="L"?"leading":"trailing")+" suppression")),(e.format.zero||Wn.test(t)||e._drillStash.length>=1e3)&&Zn(e))},J6={parse:K6,flush:Zn},Q6=function(e,t){return{message:e,line:t}},e3=Q6,t3=yt.StringDecoder,r3=ke,Xn=gr.Transform,Yn=Zo,i3=Yo,n3=W6,Vn=J6,a3=e3,o3=Gn,ar=65535,Fe=function(e,t,r){Xn.call(this,{readableObjectMode:!0}),this._decoder=new t3("utf8"),this._stash="",this._index=0,this._drillMode=o3.DRILL,this._drillStash=[],this._syncResult=null,this.line=0,this.format={places:e,zero:t,filetype:r}};r3(Fe,Xn);Fe.prototype._process=function(e,t){for(;this._index<e.length;){var r=i3(t,e,this._index);this._index+=r.read,this.line+=r.lines,this._stash+=r.rem,r.block&&(t==="gerber"?n3(this,r.block):Vn.parse(this,r.block))}};Fe.prototype._transform=function(e,t,r){var a=this.format.filetype;if(e=this._decoder.write(e),!a)if(a=Yn(e,this._index,ar),this._index+=e.length,a)this.format.filetype=a,this._index=0;else return this._index>=ar?r(new Error("unable to determine filetype")):(this._stash+=e,r());e=this._stash+e,this._stash="",this._process(e,a),this._index=0,r()};Fe.prototype._flush=function(e){return this.format.filetype==="drill"&&Vn.flush(this),e&&e()};Fe.prototype._push=function(e){e.line===-1&&(e.line=this.line);var t=this._syncResult?this._syncResult:this;t.push(e)};Fe.prototype._warn=function(e){this.emit("warning",a3(e,this.line))};Fe.prototype.parseSync=function(e){var t=Yn(e,this._index,100*ar);return this.format.filetype=t,this._syncResult=[],this._process(e,t),this._flush(),this._syncResult};var s3=Fe,Si=ut,f3=s3,u3=function(e){if(Array.isArray(e)&&e.length===2&&Si(e[0])&&Si(e[1]))return e;throw new Error("places must be an array of two whole numbers")},l3=function(e){if(e==="T"||e==="L")return e;throw new Error("zero suppression must be 'L' or 'T'")},h3=function(e){if(e==="gerber"||e==="drill")return e;throw new Error('filetype must be "drill" or "gerber"')},c3=function(e){e=e||{};var t=e.places?u3(e.places):null,r=e.zero?l3(e.zero):null,a=e.filetype?h3(e.filetype):null;return new f3(t,r,a)},Bi=1/0,Kn=9007199254740991,d3=17976931348623157e292,Ti=0/0,p3=4294967295,v3="[object Function]",y3="[object GeneratorFunction]",g3="[object Symbol]",m3=/^\s+|\s+$/g,_3=/^[-+]0x[0-9a-f]+$/i,w3=/^0b[01]+$/i,b3=/^0o[0-7]+$/i,x3=/^(?:0|[1-9]\d*)$/,E3=parseInt,M3=Object.prototype,Jn=M3.toString;function R3(e,t,r){return e===e&&(r!==void 0&&(e=e<=r?e:r),t!==void 0&&(e=e>=t?e:t)),e}function S3(e,t,r,a){var o=e.length;for(r=or(r),r<0&&(r=-r>o?0:o+r),a=a===void 0||a>o?o:or(a),a<0&&(a+=o),a=r>a?0:F3(a);r<a;)e[r++]=t;return e}function B3(e,t){return t=t??Kn,!!t&&(typeof e=="number"||x3.test(e))&&e>-1&&e%1==0&&e<t}function T3(e,t,r){if(!gt(r))return!1;var a=typeof t;return(a=="number"?N3(r)&&B3(t,r.length):a=="string"&&t in r)?I3(r[t],e):!1}function A3(e,t,r,a){var o=e?e.length:0;return o?(r&&typeof r!="number"&&T3(e,t,r)&&(r=0,a=o),S3(e,t,r,a)):[]}function I3(e,t){return e===t||e!==e&&t!==t}function N3(e){return e!=null&&j3(e.length)&&!L3(e)}function L3(e){var t=gt(e)?Jn.call(e):"";return t==v3||t==y3}function j3(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Kn}function gt(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function C3(e){return!!e&&typeof e=="object"}function O3(e){return typeof e=="symbol"||C3(e)&&Jn.call(e)==g3}function k3(e){if(!e)return e===0?e:0;if(e=P3(e),e===Bi||e===-Bi){var t=e<0?-1:1;return t*d3}return e===e?e:0}function or(e){var t=k3(e),r=t%1;return t===t?r?t-r:t:0}function F3(e){return e?R3(or(e),0,p3):0}function P3(e){if(typeof e=="number")return e;if(O3(e))return Ti;if(gt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=gt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(m3,"");var r=w3.test(e);return r||b3.test(e)?E3(e.slice(2),r?2:8):_3.test(e)?Ti:+e}var $3=A3,D3=$3,U3=function(e,t){var r,a;for(a=0;a<e.length;a++)if(r=e[a],t(r))return r},Ai=function(e,t,r){var a=e.reduce(function(o,s){var l=q3(t,s.position);return l<r&&l<o.distance?{point:s,distance:l}:o},{point:void 0,distance:1/0});return a.point},q3=function(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))},ze=function(e,t){return e[0]===t[0]&&e[1]===t[1]},G3=function(e,t){return e.type==="line"&&(ze(e.start,t.start)&&ze(e.end,t.end)||ze(e.start,t.end)&&ze(e.end,t.start))},z3=function(e){var t={type:e.type,start:e.end,end:e.start};return e.type==="arc"&&(t.center=e.center,t.radius=e.radius,t.sweep=e.sweep,t.dir=e.dir==="cw"?"ccw":"cw"),t},Tt=function(e,t){this._edges=[],this._optimize=e,this._fillGaps=t,this.length=0};Tt.prototype.add=function(e){var t={segment:e,start:e.start,end:e.end};this._edges.push(t),this.length++};Tt.prototype._fillGapsAndOptimize=function(){var e=this._edges.map(function(E){return E.segment});this._edges=[],this.length=0;for(var t=e.reduce(function(E,R){return E.concat([{position:R.start,edges:[]},{position:R.end,edges:[]}])},[]),r=e.length,a=0;a<r;a++){var o=e[a],s,l,f=this._fillGaps,h=a*2,p=h+1,y=t.slice(0,h).concat(t.slice(p+1));s=Ai(y,o.start,f),l=Ai(y,o.end,f),s?f&&(o.start=s.position):s={position:o.start,edges:[]},l?f&&(o.end=l.position):l={position:o.end,edges:[]};var m=U3(this._edges,function(E){return G3(E.segment,o)});if(!m){var x=this._edges.length,B={segment:o,start:s,end:l};t[h].edges.push(x),t[h].position=B.start.position,t[p].edges.push(x),t[p].position=B.end.position,this._edges.push(B),this.length++}}this._edges.forEach(function(E){t.forEach(function(R){ze(R.position,E.start.position)&&(E.start.edges=E.start.edges.concat(R.edges)),ze(R.position,E.end.position)&&(E.end.edges=E.end.edges.concat(R.edges))})})};Tt.prototype.traverse=function(){if(!this._optimize)return this._edges.map(function(h){return h.segment});this._fillGapsAndOptimize();for(var e=D3(Array(this._edges.length),!1),t=[],r=[],a,o,s,l,f={position:[]};r.length<this._edges.length;)for(a=e.indexOf(!1),t.push(a);t.length;)a=t.pop(),e[a]||(e[a]=!0,o=this._edges[a],s=o.end,ze(f.position,s.position)?(l=z3(o.segment),f=o.start):(l=o.segment,f=o.end),f.edges.reverse().forEach(function(h){e[h]||t.push(h)}),r.push(l));return r};var W3=Tt,H3=function(e,t){return{message:e,line:t}},Z3=H3,X3="[object AsyncFunction]",Y3="[object Function]",V3="[object GeneratorFunction]",K3="[object Null]",J3="[object Proxy]",Q3="[object Undefined]",e5=typeof ee=="object"&&ee&&ee.Object===Object&&ee,t5=typeof self=="object"&&self&&self.Object===Object&&self,r5=e5||t5||Function("return this")(),Qn=Object.prototype,i5=Qn.hasOwnProperty,ea=Qn.toString,Ii=r5.Symbol,qe=Ii?Ii.toStringTag:void 0;function n5(e){return e==null?e===void 0?Q3:K3:qe&&qe in Object(e)?a5(e):o5(e)}function a5(e){var t=i5.call(e,qe),r=e[qe];try{e[qe]=void 0;var a=!0}catch{}var o=ea.call(e);return a&&(t?e[qe]=r:delete e[qe]),o}function o5(e){return ea.call(e)}function s5(e){if(!f5(e))return!1;var t=n5(e);return t==Y3||t==V3||t==X3||t==J3}function f5(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var u5=s5,l5=function(){return[1/0,1/0,-1/0,-1/0]},ta=function(e,t){return[Math.min(e[0],t[0]),Math.min(e[1],t[1]),Math.max(e[2],t[2]),Math.max(e[3],t[3])]},h5=function(e,t){return[Math.min(e[0],t[0]),Math.min(e[1],t[1]),Math.max(e[2],t[0]),Math.max(e[3],t[1])]},c5=function(e,t,r,a){return[Math.min(e[0],r-t),Math.min(e[1],a-t),Math.max(e[2],r+t),Math.max(e[3],a+t)]},ra=function(e,t){var r=t[0],a=t[1];return[e[0]+r,e[1]+a,e[2]+r,e[3]+a]},d5=function(e,t){return ta(e,ra(e,t))},Mr={new:l5,add:ta,addPoint:h5,addCircle:c5,translate:ra,repeat:d5},p5=u5,v5=ut,ae=Mr,ne=function(e){var t=Math.round(e*1e8)/1e8;return t===0?0:t},y5=function(e){return e*Math.PI/180},mt=function(e,t){t=y5(t);var r=Math.sin(t),a=Math.cos(t),o=e[0],s=e[1];return[ne(o*a-s*r),ne(o*r+s*a)]},_t=function(e,t,r,a){var o=e/2;if(t=t||0,r=r||0,a&&(t||r)){var s=mt([t,r],a);t=s[0],r=s[1]}return{shape:{type:"circle",cx:t,cy:r,r:e/2},box:ae.addCircle(ae.new(),o,t,r)}},ia=function(e,t,r,a,o,s){if(s){var l=mt([e,t],s),f=mt([r,a],s);e=l[0],t=l[1],r=f[0],a=f[1]}var h=(a-t)/(r-e),p=o/2,y=p,m=p;v5(h)?(y*=h/Math.sqrt(1+Math.pow(h,2)),m*=1/Math.sqrt(1+Math.pow(h,2))):m=0;var x=[];x.push([ne(e+y),ne(t-m)]),x.push([ne(r+y),ne(a-m)]),x.push([ne(r-y),ne(a+m)]),x.push([ne(e-y),ne(t+m)]);var B=x.reduce(function(E,R){return ae.addPoint(E,R)},ae.new());return{shape:{type:"poly",points:x},box:B}},_e=function(e,t,r,a,o,s){a=a||0,o=o||0,r=r||0,s=s||0;var l=e/2,f=t/2;if(s){var h=a-l,p=a+l,y=o,m=o;return ia(h,y,p,m,t,s)}return{shape:{type:"rect",cx:a,cy:o,r,width:e,height:t},box:[-l+a,-f+o,l+a,f+o]}},g5=function(e,t){for(var r=[],a=ae.new(),o,s=0;s<e.length-2;s+=2)o=[e[s],e[s+1]],t&&(o=mt(o,t)),r.push(o),a=ae.addPoint(a,o);return{shape:{type:"poly",points:r},box:a}},na=function(e,t,r,a,o){a=a||0,o=o||0;for(var s=[],l=ae.new(),f=e/2,h=r*Math.PI/180,p=2*Math.PI/t,y,m,x,B=0;B<t;B++)y=p*B+h,m=a+ne(f*Math.cos(y)),x=o+ne(f*Math.sin(y)),l=ae.addPoint(l,[m,x]),s.push([m,x]);return{shape:{type:"poly",points:s},box:l}},aa=function(e,t,r,a){return{type:"ring",cx:e,cy:t,r,width:a}},m5=function(e,t,r,a,o,s,l,f,h){for(var p=e/2,y=[],m=ae.addCircle(ae.new(),p,l,f),x=t/2,B=r+x;p>t&&y.length<a;)p-=x,y.push(aa(l,f,ne(p),t)),p-=B;p>0&&y.length<a&&y.push(_t(ne(2*p),l,f).shape);var E=_e(s,o,0,l,f,h),R=_e(o,s,0,l,f,h);return y.push(E.shape),y.push(R.shape),m=ae.add(m,E.box),m=ae.add(m,R.box),{shape:y,box:m}},_5=function(e,t,r,a,o,s){var l=ne((r-o)/2),f=ne((r+o)/4),h=ne((r-a)/2),p=ne((r-h)/2),y=ae.addCircle(ae.new(),r/2,e,t),m=[_e(l,l,0,e+f,t+f,s).shape,_e(l,l,0,e-f,t+f,s).shape,_e(l,l,0,e-f,t-f,s).shape,_e(l,l,0,e+f,t-f,s).shape],x=aa(e,t,p,h);return{shape:{type:"clip",shape:m,clip:x},box:y}},w5=function(e,t){var r={shape:[],box:ae.new()},a=1;return t=t||[],t.reduce(function(o,s){var l;switch(s.type!=="variable"&&s.type!=="comment"&&(s=Object.keys(s).reduce(function(m,x){var B=s[x];return m[x]=E(B),m;function E(R){return Array.isArray(R)?R.map(E):p5(R)?R(e):R}},{})),s.exp!=null&&s.exp!==a&&(o.shape.push({type:"layer",polarity:s.exp===1?"dark":"clear",box:o.box.slice(0)}),a=s.exp),s.type){case"circle":l=_t(s.dia,s.cx,s.cy,s.rot);break;case"vect":l=ia(s.x1,s.y1,s.x2,s.y2,s.width,s.rot);break;case"rect":l=_e(s.width,s.height,0,s.cx,s.cy,s.rot);break;case"rectLL":var f=s.height/2,h=s.width/2,p=s.x+h,y=s.y+f;l=_e(s.width,s.height,0,p,y,s.rot);break;case"outline":l=g5(s.points,s.rot);break;case"poly":l=na(s.dia,s.vertices,s.rot,s.cx,s.cy);break;case"moire":l=m5(s.dia,s.ringThx,s.ringGap,s.maxRings,s.crossThx,s.crossLen,s.cx,s.cy,s.rot);break;case"thermal":l=_5(s.cx,s.cy,s.outerDia,s.innerDia,s.gap,s.rot);break;case"variable":return e=s.set(e),o;default:return o}return o.shape=o.shape.concat(l.shape),a===1&&(o.box=ae.add(o.box,l.box)),o},r)},b5=function(t,r){var a=[],o=ae.new(),s=t.shape,l=t.params,f,h;if(s==="circle")h=_t(l[0]);else if(s==="rect")h=_e(l[0],l[1]);else if(s==="obround")h=_e(l[0],l[1],Math.min(l[0],l[1])/2);else if(s==="poly")h=na(l[0],l[1],l[2]);else{var p=l.reduce(function(y,m,x){return y["$"+(x+1)]=m,y},{});return w5(p,r[s])}return a.push(h.shape),o=ae.add(o,h.box),t.hole.length&&(f=t.hole.length===1?_t(t.hole[0]).shape:_e(t.hole[0],t.hole[1]).shape,a.push({type:"layer",polarity:"clear",box:o},f)),{shape:a,box:o}},re=Mr,oe=Math.PI/2,Ni=Math.PI,he=Math.PI*2,Je=3*Math.PI/2,x5=function(e,t,r,a){return r?(a._warn("flash in region ignored"),re.new()):t?(t.flashed||(t.flashed=!0,a.push({type:"shape",tool:t.code,shape:t.pad})),a.push({type:"pad",tool:t.code,x:e[0],y:e[1]}),re.translate(t.box,e)):(a._warn("flash with unknown tool ignored"),re.new())},E5=function(e,t,r,a,o){for(var s,l,f,h,p;p==null&&o.length>0;)h=o.pop(),s=Math.atan2(e[1]-h[1],e[0]-h[0]),l=Math.atan2(t[1]-h[1],t[0]-h[0]),r==="cw"?s=s>=l?s:s+he:l=l>=s?l:l+he,f=Math.abs(s-l),a==="s"?f<=oe&&(p=h):p=h;if(p!=null)return s=s>=0?s:s+he,s=s<he?s:s-he,l=l>=0?l:l+he,l=l<he?l:l-he,{center:p,sweep:f,start:e.concat(s),end:t.concat(l)}},M5=function(e,t,r,a,o){var s=e.start,l=e.end,f=e.center,h=e.sweep,p,y;o==="cw"?(p=l[2],y=s[2]):(p=s[2],y=l[2]);var m=[s,l];return(p>y||h===he)&&m.push([f[0]+t,f[1]]),p=p>=oe?p-oe:p+Je,y=y>=oe?y-oe:y+Je,(p>y||h===he)&&m.push([f[0],f[1]+t]),p=p>=oe?p-oe:p+Je,y=y>=oe?y-oe:y+Je,(p>y||h===he)&&m.push([f[0]-t,f[1]]),p=p>=oe?p-oe:p+Je,y=y>=oe?y-oe:y+Je,(p>y||h===he)&&m.push([f[0],f[1]-t]),m.reduce(function(x,B){if(!r){var E=re.translate(a.box,B);return re.add(x,E)}return re.addPoint(x,B)},re.new())},Li=function(e,t){return e>=t?e:0},R5=function(e,t,r,a,o){var s=r==="ccw"?1:-1,l=(e[0]+t[0])/2,f=(e[1]+t[1])/2,h=t[0]-e[1],p=t[1]-e[1],y=Math.sqrt(Math.pow(h,2)+Math.pow(p,2)),m=y/2,x=Math.sqrt(Math.pow(o,2)-Math.pow(m,2)),B=-s*p*x/y,E=s*h*x/y;return[[Li(l+B,a),Li(f+E,a)]]},S5=function(e,t,r,a,o,s,l,f,h,p){var y=r[2]||Math.sqrt(Math.pow(r[0],2)+Math.pow(r[1],2)),m=[],x=[],B=[];r[0]&&s==="s"?x.push(e[0]+r[0],e[0]-r[0]):x.push(e[0]+r[0]),r[1]&&s==="s"?B.push(e[1]+r[1],e[1]-r[1]):B.push(e[1]+r[1]);for(var E=0;E<x.length;E++)for(var R=0;R<B.length;R++)m.push([x[E],B[R]]);var T;r[2]?(s="m",T=R5(e,t,o,f,r[2])):s==="s"?T=m.filter(function(j){var N=Math.sqrt(Math.pow(j[0]-e[0],2)+Math.pow(j[1]-e[1],2)),C=Math.sqrt(Math.pow(j[0]-t[0],2)+Math.pow(j[1]-t[1],2));return Math.abs(N-y)<=f&&Math.abs(C-y)<=f}):T=m;var I=E5(e,t,o,s,T);s==="m"&&e[0]===t[0]&&e[1]===t[1]&&(I.sweep=he);var O=re.new();return I!=null?(h.add({type:"arc",start:I.start,end:I.end,center:I.center,sweep:I.sweep,radius:y,dir:o}),O=M5(I,y,l,a,o)):p._warn("skipping impossible arc"),O},B5=function(e,t,r,a,o){if(o.add({type:"line",start:e,end:t}),!a){var s=re.translate(r.box,e),l=re.translate(r.box,t);return re.add(s,l)}var f=re.new();return f=re.addPoint(f,e),f=re.addPoint(f,t),f},T5=function(e,t,r,a,o){var s=r.trace[0]/2,l=r.trace[1]/2,f=Math.atan2(t[1]-e[1],t[0]-e[0]),h=e[0]-s,p=e[0]+s,y=e[1]-l,m=e[1]+l,x=t[0]-s,B=t[0]+s,E=t[1]-l,R=t[1]+l,T=[];return e[0]===t[0]&&e[1]===t[1]?T.push([h,y],[p,y],[p,m],[h,m]):f>=0&&f<oe?T.push([h,y],[p,y],[B,E],[B,R],[x,R],[h,m]):f>=oe&&f<=Ni?T.push([p,y],[p,m],[B,R],[x,R],[x,E],[h,y]):f>=-Ni&&f<-oe?T.push([p,m],[h,m],[x,R],[x,E],[B,E],[p,y]):T.push([h,m],[h,y],[x,E],[B,E],[B,R],[p,m]),T.forEach(function(I,O){var j=O<T.length-1?O+1:0;a.add({type:"line",start:I,end:T[j]})}),o._finishPath(),re.add(re.translate(r.box,e),re.translate(r.box,t))},A5=function(e,t,r,a,o,s,l,f,h,p){var y=l||a&&a.trace.length>0,m=l||a&&a.trace.length===1,x=a?a.code:"[NO TOOL SET]";return y?o==="i"?l||a.trace.length===1?B5(e,t,a,l,h):T5(e,t,a,h,p):m?S5(e,t,r,a,o,s,l,f,h,p):(p._warn("cannot draw arc with non-circular tool "+x+"; ignoring interpolate"),re.new()):(p._warn("tool "+x+" is not strokable; ignoring interpolate"),re.new())},I5=function(e,t,r,a,o,s,l,f,h,p){var y=[t.x!=null?t.x:r[0],t.y!=null?t.y:r[1]],m=[t.i!=null?t.i:0,t.j!=null?t.j:0,t.a],x;switch(e){case"flash":x=x5(y,a,l,p);break;case"int":x=A5(r,y,m,a,o,s,l,h,f,p);break;default:x=re.new();break}return{pos:y,box:x}},N5=I5,oa=gr.Transform,L5=ke,sa=W3,j5=Z3,C5=b5,O5=N5,pt=Mr,k5=11e-5,F5=function(e){return e==="units"||e==="backupUnits"||e==="nota"||e==="backupNota"},Pe=function(e,t,r,a,o,s){oa.call(this,{readableObjectMode:!0,writableObjectMode:!0}),this.format={units:e,backupUnits:t||"in",nota:r,backupNota:a||"A"},this._formatLock={units:e!=null,backupUnits:t!=null,nota:r!=null,backupNota:a!=null},this._plotAsOutline=s===!0?k5:s,(e||this.format.backupUnits)==="in"&&(this._plotAsOutline=this._plotAsOutline/25.4),this._optimizePaths=o||s,this._line=0,this._done=!1,this._tool=null,this._outTool=null,this._tools={},this._macros={},this._pos=[0,0],this._box=pt.new(),this._mode=null,this._arc=null,this._region=!1,this._path=new sa(this._optimizePaths,this._plotAsOutline),this._epsilon=null,this._lastOp=null,this._stepRep=[]};L5(Pe,oa);Pe.prototype._finishPath=function(e){var t=this._path.traverse();if(this._path=new sa(!e&&this._optimizePaths,this._plotAsOutline),t.length){var r=this._plotAsOutline?this._outTool:this._tool;!this._region&&r.trace.length===1?this.push({type:"stroke",width:r.trace[0],path:t}):this.push({type:"fill",path:t})}};Pe.prototype._warn=function(e){this.emit("warning",j5(e,this._line))};Pe.prototype._checkFormat=function(){this.format.units||(this.format.units=this.format.backupUnits,this._warn("units not set; using backup units: "+this.format.units)),this.format.nota||(this.format.nota=this.format.backupNota,this._warn("notation not set; using backup notation: "+this.format.nota))};Pe.prototype._updateBox=function(e){var t=this._stepRep.length;if(!t)this._box=pt.add(this._box,e);else{var r=pt.repeat(e,this._stepRep[t-1]);this._box=pt.add(this._box,r)}};Pe.prototype._transform=function(e,t,r){var a=e.type;if(this._line=e.line,this._done)return this._warn("ignoring extra command recieved after done command"),r();if(a==="op"){this._checkFormat();var o=e.op,s=e.coord;if(this.nota==="I"){var l=this;s=Object.keys(s).reduce(function(j,N){var C=s[N];return N==="x"?j[N]=l._pos[0]+C:N==="y"?j[N]=l._pos[1]+C:j[N]=C,j},{})}o==="last"&&(this._warn("modal operation commands are deprecated"),o=this._lastOp),o==="int"&&(this._mode==null&&(this._warn("no interpolation mode specified; assuming linear"),this._mode="i"),this._arc==null&&this._mode.slice(-2)==="cw"&&!s.a&&(this._warn("quadrant mode unspecified; assuming single quadrant"),this._arc="s")),this._plotAsOutline&&(this._outTool=this._tool);var f=O5(o,s,this._pos,this._tool,this._mode,this._arc,this._region||this._plotAsOutline,this._path,this._epsilon,this);this._lastOp=o,this._pos=f.pos,this._updateBox(f.box)}else if(a==="set"){var h=e.prop,p=e.value;h==="region"?(this._finishPath(p),this._region=p):F5(h)&&!this._formatLock[h]?(this.format[h]=p,(h==="units"||h==="nota")&&(this._formatLock[h]=!0)):h==="tool"?this._region?this._warn("cannot change tool while region mode is on"):this._tools[p]?this._outTool||(this._finishPath(),this._tool=this._tools[p]):this._warn("tool "+p+" is not defined"):this["_"+h]=p}else if(a==="tool"){var y=e.code,m=e.tool;this._tools[y]&&this._warn("tool "+y+" is already defined; overwriting definition");var x=C5(m,this._macros),B={code:y,trace:[],pad:x.shape,flashed:!1,box:x.box};(m.shape==="circle"||m.shape==="rect")&&m.hole.length===0&&(B.trace=m.params),this._outTool||(this._finishPath(),this._tools[y]=B,this._tool=B)}else if(a==="macro")this._macros[e.name]=e.blocks;else if(a==="level"){var E=e.level,R=e.value;if(this._finishPath(),E==="polarity")this.push({type:"polarity",polarity:R==="C"?"clear":"dark",box:this._box.slice(0)});else{var T=[];if(R.x>1||R.y>1)for(var I=0;I<R.x;I++)for(var O=0;O<R.y;O++)T.push([I*R.i,O*R.j]);this._stepRep=T,this.push({type:"repeat",offsets:this._stepRep.slice(0),box:this._box.slice(0)})}}else a==="done"&&(this._done=!0);return r()};Pe.prototype._flush=function(e){this._finishPath(),this.push({type:"size",box:this._box,units:this.format.units}),e()};var P5=Pe,$5=P5,ji=function(e){if(e==="A"||e==="I")return e;throw new Error('notation must be "in" or "mm"')},Ci=function(e){if(e==="in"||e==="mm")return e;throw new Error('units must be "in" or "mm"')},D5=function(t){t=t||{};var r=t.units?Ci(t.units):null,a=t.backupUnits?Ci(t.backupUnits):null,o=t.nota?ji(t.nota):null,s=t.backupNota?ji(t.backupNota):null;return new $5(r,a,o,s,t.optimizePaths,t.plotAsOutline)};/*!
- * escape-html
- * Copyright(c) 2012-2013 TJ Holowaychuk
- * Copyright(c) 2015 Andreas Lubbe
- * Copyright(c) 2015 Tiancheng "Timothy" Gu
- * MIT Licensed
- */var U5=/["'&<>]/,q5=G5;function G5(e){var t=""+e,r=U5.exec(t);if(!r)return t;var a,o="",s=0,l=0;for(s=r.index;s<t.length;s++){switch(t.charCodeAt(s)){case 34:a="&quot;";break;case 38:a="&amp;";break;case 39:a="&#39;";break;case 60:a="&lt;";break;case 62:a="&gt;";break;default:continue}l!==s&&(o+=t.substring(l,s)),l=s+1,o+=a}return l!==s?o+t.substring(l,s):o}var Ut=q5,fa=function(t,r,a){r=r||{},a=a||[];var o="<"+Ut(t),s=Object.keys(r).reduce(function(f,h){var p=r[h],y=p!=null?" "+Ut(h)+'="'+Ut(p)+'"':"";return f+y},""),l=a.length?">"+a.join("")+"</"+t+">":"/>";return o+s+l},st=function(e){return Math.round(1e10*e)/1e7},z5=function(e,t,r){return r("rect",{x:st(e[0]),y:st(e[1]),width:st(e[2]-e[0]),height:st(e[3]-e[1]),fill:t})},W5=function(e,t,r){var a="url(#"+e+")";return r("g",{mask:a},t)},H5=function(e,t,r,a){r=[z5(t,"#fff",a)].concat(r);var o={id:e,fill:"#000",stroke:"#000"};return a("mask",o,[a("g",{},r)])},At={shift:st,maskLayer:W5,createMask:H5},Rr=At,me=Rr.shift,Oi=Rr.createMask,Z5=Rr.maskLayer,It=function(e,t,r){return{tag:e,attr:t,children:r||[]}},sr=function(e,t,r,a){var o={cx:me(e),cy:me(t),r:me(r)};return a!=null&&(o["stroke-width"]=me(a),o.fill="none"),It("circle",o)},ua=function(e,t,r,a,o){var s={x:me(e-a/2),y:me(t-o/2),width:me(a),height:me(o)};return r&&(s.rx=me(r),s.ry=me(r)),It("rect",s)},la=function(e){var t=e.map(function(r){return r.map(me).join(",")}).join(" ");return It("polygon",{points:t})},X5=function(e,t,r,a,o){var s=e+"mask-"+t,l="url(#"+s+")",f=sr(a.cx,a.cy,a.r,a.width),h=o("mask",{id:s,stroke:"#fff"},[o(f.tag,f.attr)]),p=r.map(function(m){var x=m.type==="rect"?ua(m.cx,m.cy,m.r,m.width,m.height):la(m.points);return o(x.tag,x.attr)}),y=It("g",{mask:l},p);return{mask:h,layer:y}},Y5=function(t,r,a,o){var s=t+"_pad-"+r,l=s+"_",f=a.reduce(function(h,p,y){var m;switch(p.type){case"circle":m=sr(p.cx,p.cy,p.r);break;case"ring":m=sr(p.cx,p.cy,p.r,p.width);break;case"rect":m=ua(p.cx,p.cy,p.r,p.width,p.height);break;case"poly":m=la(p.points);break;case"clip":var x=X5(l,y,p.shape,p.clip,o);h.masks.push(x.mask),m=x.layer;break;case"layer":if(h.count++,h.last=p.polarity,p.polarity==="clear"){var B=l+h.count;h.maskId=B,h.maskBox=p.box.slice(0),h.maskChildren=[],h.layers=[Z5(B,h.layers,o)]}else{var E=Oi(h.maskId,h.maskBox,h.maskChildren,o);h.masks.push(E)}break}if(m){a.length===1&&(m.attr.id=s);var R=o(m.tag,m.attr,m.children);h.last==="dark"?h.layers.push(R):h.maskChildren.push(R)}return h},{count:0,last:"dark",layers:[],maskId:"",maskBox:[],maskChildren:[],masks:[]});return f.last==="clear"&&f.masks.push(Oi(f.maskId,f.maskBox,f.maskChildren,o)),a.length>1&&(f.layers=o("g",{id:s},f.layers)),f.masks.concat(f.layers)},V5=At,ki=V5.shift,K5=function(t,r,a,o,s){var l="#"+t+"_pad-"+r;return s("use",{"xlink:href":l,x:ki(a),y:ki(o)})},J5=At,Oe=J5.shift,Q5=function(e,t){return e[0]===t[0]&&e[1]===t[1]},e8=function(e){return"M "+Oe(e[0])+" "+Oe(e[1])},ha=function(e,t){var r=e==="L"||e==="M"?"":"L ";return r+Oe(t[0])+" "+Oe(t[1])},fr=function(e,t,r,a,o,s){if(r===0)return ha(e,o);if(r===2*Math.PI){var l=[2*s[0]-o[0],2*s[1]-o[1]],f=fr(e,t,Math.PI,a,l,s),h=fr("A",t,Math.PI,a,o,s);return f+" "+h}var p=e==="A"?"":"A ";return t=Oe(t),p+=t+" "+t+" 0 ",p+=r>Math.PI?"1 ":"0 ",p+=a==="ccw"?"1 ":"0 ",p+=Oe(o[0])+" "+Oe(o[1]),p},t8=function(e,t){var r=t.type,a=t.start,o=t.end;return Q5(e.last,a)||(e.data+=(e.data?" ":"")+e8(a),e.lastCmd="M"),e.data+=" ",r==="line"?(e.data+=ha(e.lastCmd,o),e.lastCmd="L"):(e.data+=fr(e.lastCmd,t.radius,t.sweep,t.dir,o,t.center),e.lastCmd="A"),e.last=o,e},r8=function(t,r,a){var o=t.reduce(t8,{last:[],data:""}).data,s={d:o};return r!=null&&(s.fill="none",s["stroke-width"]=Oe(r)),a("path",s)},i8=fa,ca=function(e,t,r){var a=r||i8,o={version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"0","fill-rule":"evenodd",width:e.width+e.units,height:e.height+e.units,viewBox:e.viewBox.join(" ")};typeof t=="string"&&(t={id:t}),Object.keys(t||{}).forEach(function(h){var p=t[h];p!=null&&(o[h]=p)});var s=[];if(e.layer.length){e.defs.length&&s.push(a("defs",{},e.defs));var l=e.viewBox[3]+2*e.viewBox[1],f="translate(0,"+l+") scale(1,-1)";s.push(a("g",{transform:f,fill:"currentColor",stroke:"currentColor"},e.layer))}return a("svg",o,s)},da=gr.Transform,n8=ke,pa=ut,a8=Y5,o8=K5,Fi=r8,Sr=At,s8=ca,Ce=Sr.shift,va=Sr.maskLayer,f8=Sr.createMask,u8=0,ur=1,ya=2,Re=function(e,t,r,a){da.call(this,{writableObjectMode:!0,readableObjectMode:a}),this.id=e,this.attributes=t,this.defs=[],this.layer=[],this.viewBox=[0,0,0,0],this.width=0,this.height=0,this.units="",this._maskId="",this._maskBox=[],this._mask=[],this._blockMode=!1,this._blockBox=[],this._block=[],this._blockCount=0,this._blockLayerCount=0,this._offsets=[],this._clearCount=0,this._lastLayer=0,this._blockCount=0,this._blockCount=0,this._element=r};n8(Re,da);Re.prototype._transform=function(e,t,r){switch(e.type){case"shape":this.defs=this.defs.concat(a8(this.id,e.tool,e.shape,this._element));break;case"pad":this._draw(o8(this.id,e.tool,e.x,e.y,this._element));break;case"fill":this._draw(Fi(e.path,null,this._element));break;case"stroke":this._draw(Fi(e.path,e.width,this._element));break;case"polarity":this._handleNewPolarity(e.polarity,e.box);break;case"repeat":this._handleNewRepeat(e.offsets,e.box);break;case"size":this._handleSize(e.box,e.units)}r()};Re.prototype._flush=function(e){this._handleNewRepeat([]),this.push(s8(this,this.attributes,this._element)),e()};Re.prototype._finishBlockLayer=function(){if(this._block.length){this._blockLayerCount++;var e=this.id+"_block-"+this._blockCount+"-"+this._blockLayerCount;this.defs.push(this._element("g",{id:e},this._block)),this._block=[]}};Re.prototype._finishClearLayer=function(){return this._maskId?(this.defs.push(f8(this._maskId,this._maskBox,this._mask,this._element)),this._maskId="",this._maskBox=[],this._mask=[],!0):!1};Re.prototype._handleNewPolarity=function(e,t){if(this._blockMode)return this._blockLayerCount===0&&!this._block.length&&(this._blockMode=e==="dark"?ur:ya),this._finishBlockLayer();this._clearCount=e==="clear"?this._clearCount+1:this._clearCount;var r=this.id+"_clear-"+this._clearCount;e==="clear"?(this.layer=[va(r,this.layer,this._element)],this._maskId=r,this._maskBox=t.slice(0)):this._finishClearLayer(t)};Re.prototype._handleNewRepeat=function(e,t){var r=e.length===0,a=this._finishClearLayer();this._finishBlockLayer();var o=this.layer,s=this._element,l=this._blockMode,f=this._blockLayerCount,h=this.id+"_block-"+this._blockCount+"-";if(this._offsets.forEach(function(y){for(var m=l;m<=f;m+=2)o.push(s("use",{"xlink:href":"#"+h+m,x:Ce(y[0]),y:Ce(y[1])}))}),f>2-l){var p=h+"clear";this.layer=[va(p,o,this._element)],this._maskId=p,this._maskBox=this._blockBox.slice(0),this._mask=this._offsets.reduce(function(y,m){for(var x,B=1;B<=f;B++){x=l===ur?B%2===1:B%2===0;var E={"xlink:href":"#"+h+B,x:Ce(m[0]),y:Ce(m[1])};x&&(E.fill="#fff",E.stroke="#fff"),y.push(s("use",E))}return y},[]),a=this._finishClearLayer()}this._offsets=e,r?this._blockMode=u8:(this._blockMode=a?ya:ur,this._blockCount++,this._blockLayerCount=0,this._blockBox=t.every(pa)?t:[0,0,0,0])};Re.prototype._handleSize=function(e,t){if(e.every(pa)){var r=Ce(e[0]),a=Ce(e[1]),o=Ce(e[2]-e[0]),s=Ce(e[3]-e[1]);this.viewBox=[r,a,o,s],this.width=o/1e3,this.height=s/1e3,this.units=t}};Re.prototype._draw=function(e){this._blockMode?this._block.push(e):this._maskId?this._mask.push(e):this.layer.push(e)};var l8=Re,h8=["id","attributes","defs","layer","viewBox","width","height","units"],c8=function(t){return h8.reduce(function(r,a){var o=t[a];return o!=null&&(r[a]=t[a]),r},{})},d8=qa,p8=c3,v8=D5,y8=fa,g8=l8,m8=ca,_8=c8,w8=function(e){typeof e=="string"?e={id:e}:e||(e={});var t={id:d8.ensure(e.id),attributes:e.attributes||{},createElement:e.createElement||y8,objectMode:e.objectMode==null?!1:e.objectMode,parser:{places:e.places,zero:e.zero,filetype:e.filetype},plotter:{units:e.units,backupUnits:e.backupUnits,nota:e.nota,backupNota:e.backupNota,optimizePaths:e.optimizePaths,plotAsOutline:e.plotAsOutline}};return t};Rt.exports=function(t,r,a){typeof r=="function"&&(a=r,r=null);var o=w8(r),s=a!=null,l=new g8(o.id,o.attributes,o.createElement,o.objectMode),f=p8(o.parser),h=v8(o.plotter);if(l.parser=f,l.plotter=h,f.on("warning",function(x){l.emit("warning",x)}),h.on("warning",function(x){l.emit("warning",x)}),f.once("error",function(x){l.emit("error",x)}),h.once("error",function(x){l.emit("error",x)}),f.once("end",function(){l.filetype=f.format.filetype}),t.pipe?(t.setEncoding("utf8"),t.pipe(f)):process.nextTick(function(){f.write(t),f.end()}),f.pipe(h).pipe(l),s){var p="",y=function(){return a(null,p)};l.on("readable",function(){var x;do x=l.read()||"",p+=x;while(x)}),l.once("end",y),l.once("error",function(m){return l.removeListener("end",y),a(m)})}return l};Rt.exports.render=m8;Rt.exports.clone=_8;var b8=Rt.exports;const x8=lr(b8);window.Buffer=rt.Buffer;window.process=Ma;window.EventEmitter=$a;document.getElementById("body");let vt=document.getElementById("previewSVG");const wt=["Edge_Cuts","profile","B_Cu","copper_bottom","F_Cu","copper_top","B_Mask","soldermask_bottom","F_Mask","soldermask_top","B_Paste","solderpaste_bottom","F_Paste","solderpaste_top","drill","B_Silkscreen","B_Silks","silkscreen_bottom","F_Silkscreen","F_Silks","silkscreen_top"],Pi={Edge_Cuts:[70,105,58,1],profile:[70,105,58,1],B_Cu:[30,130,220,.8],copper_bottom:[30,130,220,.8],F_Cu:[89,165,82,.8],copper_top:[89,165,82,.8],B_Mask:[200,177,170,.6],soldermask_bottom:[200,177,170,.6],F_Mask:[239,177,58,1],soldermask_top:[239,177,58,1],B_Paste:[200,20,230,.2],solderpaste_bottom:[200,20,230,.2],F_Paste:[200,20,230,.3],solderpaste_top:[200,20,230,.3],drill:[120,120,120,1],B_Silkscreen:[255,255,255,.6],B_Silks:[255,255,255,.6],silkscreen_bottom:[255,255,255,.6],F_Silkscreen:[255,255,255,1],F_Silks:[255,255,255,1],silkscreen_top:[255,255,255,1]};let bt=[],xt=null,P={fillEdge:!0,transparent:!1,blackAndWhite:!1,asSVG:!1,dpi:1e3,svgOrig:[NaN,NaN],lockOrig:!1,svgDim:[NaN,NaN],lockDim:!1,svgMargin:[0,0]};function $i(){if(xt===null)vt.outerHTML='<svg id="previewSVG"></svg>';else{let e=new XMLSerializer;vt.outerHTML=e.serializeToString(xt)}vt=document.getElementById("previewSVG")}function Br(e=!1){let t=new DOMParser;if(xt=t.parseFromString('<svg id="previewSVG" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"></svg>',"text/xml"),bt.length==0){$i();return}let r=bt.toSorted((E,R)=>wt.indexOf(E[0])-wt.indexOf(R[0])),a,o,s=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=Number.MAX_VALUE,h=-Number.MAX_VALUE,p=xt.childNodes[0];p.setAttribute("stroke-linecap","round"),p.setAttribute("stroke-linejoin","round"),p.setAttribute("stroke-width","0"),p.setAttribute("fill-rule","evenodd");let y,m,x;for([a,o]of r)m=t.parseFromString(o,"text/xml"),x=m.childNodes[0],y=x.getAttribute("viewBox").split(" ").map(E=>Number(E)),x.childNodes.length!=0&&(s=Math.min(s,y[0]),l=Math.max(l,y[0]+y[2]),f=Math.min(f,y[1]),h=Math.max(h,y[1]+y[3]));e||((!P.lockOrig||isNaN(P.svgOrig[0]))&&(P.svgOrig[0]=s/1e3,P.svgOrig[1]=f/1e3),(!P.lockDim||isNaN(P.svgDim[0]))&&(P.svgDim[0]=(l-s)/1e3,P.svgDim[1]=(h-f)/1e3)),R8();let B=[P.svgOrig[0]-P.svgMargin[0],P.svgOrig[1]-P.svgMargin[1],P.svgDim[0]+2*P.svgMargin[0],P.svgDim[1]+2*P.svgMargin[1]].map(E=>E*1e3);if(p.setAttribute("viewBox",B.join(" ")),p.setAttribute("width",`${(B[2]/1e3).toFixed(3)}mm`),p.setAttribute("height",`${(B[3]/1e3).toFixed(3)}mm`),!P.transparent){let E=p.ownerDocument.createElement("rect");P.blackAndWhite?E.setAttribute("fill","rgb(0,0,0)"):E.setAttribute("fill","rgb(255,255,255)"),E.setAttribute("x",B[0]),E.setAttribute("y",B[1]),E.setAttribute("width",B[2]),E.setAttribute("height",B[3]),p.appendChild(E)}for([a,o]of r){m=t.parseFromString(o,"text/xml"),x=m.childNodes[0],y=x.getAttribute("viewBox").split(" ").map(T=>Number(T));let E="rgb("+Pi[a].slice(0,3).join(",")+")",R=Pi[a][3];for(let T of x.childNodes){if(T.tagName=="g"){const I=/translate\([-.\d]+,\s*([-.\d]+)\)/,O=T.getAttribute("transform").match(I);let j=Number(O[1]);j+=B[1]+B[3]-(y[1]+y[3]),j+=B[1]-y[1],T.setAttribute("transform",`translate(0, ${j}) scale(1, -1)`),P.blackAndWhite?(T.setAttribute("opacity",1),T.setAttribute("fill","rgb(255,255,255)"),T.setAttribute("stroke","rgb(255,255,255)")):(T.setAttribute("opacity",R),T.setAttribute("fill",E),T.setAttribute("stroke",E)),T.childNodes.forEach(N=>{["profile","Edge_Cuts"].includes(a)&&P.fillEdge&&(N.removeAttribute("fill"),N.setAttribute("stroke","none"))})}p.appendChild(T.cloneNode(!0))}}$i()}function E8(e=!1){if(e)return;let t=new XMLSerializer().serializeToString(vt),r="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(t);if(P.asSVG){let a=document.createElement("a");a.href=r,a.download="render.svg",document.body.appendChild(a),a.click(),document.body.removeChild(a)}else{let a=P.dpi/96,o=new Image,s=document.getElementById("canvas"),l=P.svgDim[0]+2*P.svgMargin[0],f=P.svgDim[1]+2*P.svgMargin[1],h=Math.floor(P.dpi*l/25.4),p=Math.floor(P.dpi*f/25.4);s.width=h,s.height=p;let y=s.getContext("2d");y.scale(a,a),o.addEventListener("load",m=>{y.drawImage(m.target,0,0,m.target.width,m.target.height);const x=document.createElement("a");x.style.display="none",x.href=s.toDataURL("image/png"),x.download="render.png",document.body.appendChild(x),x.click()}),o.src=r}}var it=document.getElementById("dropZone");function M8(){it.style.visibility="visible"}function ga(){it.style.visibility="hidden"}window.addEventListener("dragenter",e=>{M8()});function ma(e){e.dataTransfer.dropEffect="copy",e.preventDefault()}it.addEventListener("dragenter",ma);it.addEventListener("dragover",ma);it.addEventListener("dragleave",e=>{ga()});it.addEventListener("drop",e=>{if(e.preventDefault(),ga(),!e.dataTransfer.items)return;let t=[];for(let r of e.dataTransfer.files){let a;if(r.name.endsWith(".xln")||r.name.endsWith(".drl"))a="drill";else{if(!r.name.endsWith(".gbr"))continue;let s=r.name.replace(".gbr",""),l=-1;for(let f in wt)if(a=wt[f],s.endsWith(a)){l=f;break}if(l==-1)continue}let o=new Promise((s,l)=>{const f=new FileReader;f.onload=h=>{const p={encoding:"utf8",optimizePaths:!0};x8(f.result,p,(y,m)=>{s(y?null:[a,m])})},f.onerror=l,f.readAsText(r)});t.push(o)}Promise.all(t).then(r=>{bt=r,Br()})});function _a(){let e=document.getElementById("settingsFill"),t=document.getElementById("settingsBW"),r=document.getElementById("settingsTransparent"),a=document.getElementById("settingsAsSVG"),o=document.getElementById("settingsDPI"),s=document.getElementById("settingsOrigX"),l=document.getElementById("settingsOrigY"),f=document.getElementById("settingsDimX"),h=document.getElementById("settingsDimY"),p=document.getElementById("settingsMarginX"),y=document.getElementById("settingsMarginY");P.fillEdge=e.checked,P.blackAndWhite=t.checked,P.transparent=r.checked,P.asSVG=a.checked,P.dpi=Number(o.value),P.svgMargin=[Number(p.value),Number(y.value)],P.svgOrig=[Number(s.value),Number(l.value)],P.svgDim=[Number(f.value),Number(h.value)]}function R8(){let e=document.getElementById("settingsOrigX"),t=document.getElementById("settingsOrigY"),r=document.getElementById("settingsDimX"),a=document.getElementById("settingsDimY");e.value=P.svgOrig[0],t.value=P.svgOrig[1],r.value=P.svgDim[0],a.value=P.svgDim[1]}function S8(){for(let e of["settingsFill","settingsAsSVG","settingsBW","settingsTransparent","settingsDPI","settingsOrigX","settingsOrigY","settingsDimX","settingsDimY","settingsMarginX","settingsMarginY"])document.getElementById(e).addEventListener("change",()=>{_a(),Br(!0)})}let qt=document.getElementById("settingsLockOrig"),Gt=document.getElementById("settingsLockDim");qt.addEventListener("click",()=>{let e=document.getElementById("settingsOrigX"),t=document.getElementById("settingsOrigY");P.lockOrig?(e.disabled=!1,t.disabled=!1,P.lockOrig=!1,qt.innerHTML="🔓"):(e.disabled=!0,t.disabled=!0,P.lockOrig=!0,qt.innerHTML="🔒")});Gt.addEventListener("click",()=>{let e=document.getElementById("settingsDimX"),t=document.getElementById("settingsDimY");P.lockDim?(e.disabled=!1,t.disabled=!1,P.lockDim=!1,Gt.innerHTML="🔓"):(e.disabled=!0,t.disabled=!0,P.lockDim=!0,Gt.innerHTML="🔒")});document.getElementById("downloadRenderButton").addEventListener("click",()=>{E8(!1)});S8();_a();bt=JSON.parse('[["Edge_Cuts","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"34.39mm\\" height=\\"38.835mm\\" viewBox=\\"52655 -71170 34390 38835\\"><g transform=\\"translate(0,-103505) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 86995 -34925 A 2540 2540 0 0 1 84455 -32385 L 55245 -32385 A 2540 2540 0 0 1 52705 -34925 L 52705 -68580 A 2540 2540 0 0 1 55245 -71120 L 84455 -71120 A 2540 2540 0 0 1 86995 -68580 L 86995 -34925\\" fill=\\"none\\" stroke-width=\\"100\\"/></g></svg>"],["F_Cu","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"32.531mm\\" height=\\"34.7mm\\" viewBox=\\"53775 -68780 32531 34700\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"uZojfCN5iBEs_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"uZojfCN5iBEs_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"uZojfCN5iBEs_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"uZojfCN5iBEs_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"uZojfCN5iBEs_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"uZojfCN5iBEs_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"uZojfCN5iBEs_pad-16\\"/></defs><g transform=\\"translate(0,-102860) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/><path d=\\"M 77765 -67310 78105 -66970 78105 -65450 79375 -65450 79375 -67050 79375 -66720 M 79375 -67050 79635 -67310 81280 -67310 81915 -66675 81915 -65450 83140 -65450 85090 -63500 85090 -48895 84995 -48800 82550 -48800 M 85090 -48895 85090 -42545 80645 -38100 77470 -38100 79450 -38100 M 56515 -67310 71120 -67310 77765 -67310 M 71215 -67215 71120 -67310 M 55270 -60915 55270 -61550 55270 -66065 56515 -67310 M 71215 -55880 71215 -67215 M 81915 -68580 86106 -64389 86106 -41910 79756 -35560 77470 -35560 79450 -35560 M 60039.002 -59404.002 54260.998 -59404.002 53975 -59690 53975 -66675 55880 -68580 81915 -68580 M 60350 -59715 60039.002 -59404.002 M 60350 -61550 60350 -59715 M 81915 -59690 81915 -61550 M 77470 -48260 74930 -50800 74930 -56504.295 76845.206 -58419.501 80644.501 -58419.501 81915 -59690 M 74120.499 -49069.501 74120.499 -56839.602 76509.9 -59229.002 77384.002 -59229.002 78105 -59950 78105 -61550 M 77470 -45720 74120.499 -49069.501 M 76835 -60960 73310.998 -57435.998 73310.998 -47339.002 77470 -43180 M 76835 -61550 76835 -60960 M 56515 -56385.488 57914.512 -57785 62300 -57785 65430 -60915 M 56515 -48990 56515 -56385.488 M 57785 -47720 56515 -48990 M 57229.704 -58245 57229 -58245 55372 -56388 55372 -43053 57785 -40640 62235 -40640 M 61769.501 -58594.501 57579.205 -58594.501 57229.704 -58245 M 62890 -59715 61769.501 -58594.501 M 62890 -60915 62890 -59715 M 62235 -48392 62235 -48260 M 58325 -43180 57785 -43720 M 62235 -43180 58325 -43180 M 59595 -51530 59595 -55880 M 60325 -50800 59595 -51530 M 62235 -50800 60325 -50800 M 63595 -55880 67215 -55880 M 77375 -50895 77375 -55880 M 79375 -50800 77470 -50800 77375 -50895 M 81375 -55880 81915 -55880 82550 -55245 82550 -52800\\" fill=\\"none\\" stroke-width=\\"400\\"/></g></svg>"],["F_Mask","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"28.765mm\\" height=\\"32.57mm\\" viewBox=\\"54635 -66650 28765 32570\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"rjjz4qFsGmhm_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"rjjz4qFsGmhm_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"rjjz4qFsGmhm_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"rjjz4qFsGmhm_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"rjjz4qFsGmhm_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"rjjz4qFsGmhm_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"rjjz4qFsGmhm_pad-16\\"/></defs><g transform=\\"translate(0,-100730) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/></g></svg>"],["F_Silkscreen","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"31.927400000000002mm\\" height=\\"41.975mm\\" viewBox=\\"53940 -73040 31927.4 41975\\"><g transform=\\"translate(0,-104105) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 83026.2 -34999.533 83059.533 -34932.866 83126.2 -34866.2 83226.2 -34766.2 83259.533 -34699.533 83259.533 -34632.866 M 83192.866 -34932.866 83126.2 -34866.2 83092.866 -34799.533 83092.866 -34666.2 83126.2 -34599.533 83192.866 -34532.866 83326.2 -34499.533 83559.533 -34499.533 83692.866 -34532.866 83759.533 -34599.533 83792.866 -34666.2 83792.866 -34799.533 83759.533 -34866.2 83692.866 -34932.866 83559.533 -34966.2 83326.2 -34966.2 83192.866 -34932.866 M 83559.533 -35566.199 83092.866 -35566.199 M 83559.533 -35266.199 83192.866 -35266.199 83126.2 -35299.533 83092.866 -35366.199 83092.866 -35466.199 83126.2 -35532.866 83159.533 -35566.199 M 83126.2 -36166.199 83092.866 -36099.532 83092.866 -35966.199 83126.2 -35899.532 83192.866 -35866.199 83459.533 -35866.199 83526.2 -35899.532 83559.533 -35966.199 83559.533 -36099.532 83526.2 -36166.199 83459.533 -36199.532 83392.866 -36199.532 83326.2 -35866.199 M 83559.533 -36499.532 83092.866 -36499.532 M 83492.866 -36499.532 83526.2 -36532.866 83559.533 -36599.532 83559.533 -36699.532 83526.2 -36766.199 83459.533 -36799.532 83092.866 -36799.532 M 83559.533 -37032.865 83559.533 -37299.532 M 83792.866 -37132.865 83192.866 -37132.865 83126.2 -37166.199 83092.866 -37232.865 83092.866 -37299.532 M 83092.866 -37532.865 83559.533 -37532.865 M 83792.866 -37532.865 83759.533 -37499.532 83726.2 -37532.865 83759.533 -37566.199 83792.866 -37532.865 83726.2 -37532.865 M 83559.533 -37866.198 83092.866 -37866.198 M 83492.866 -37866.198 83526.2 -37899.532 83559.533 -37966.198 83559.533 -38066.198 83526.2 -38132.865 83459.533 -38166.198 83092.866 -38166.198 M 83459.533 -39266.198 83426.2 -39366.198 83392.866 -39399.531 83326.2 -39432.864 83226.2 -39432.864 83159.533 -39399.531 83126.2 -39366.198 83092.866 -39299.531 83092.866 -39032.864 83792.866 -39032.864 83792.866 -39266.198 83759.533 -39332.864 83726.2 -39366.198 83659.533 -39399.531 83592.866 -39399.531 83526.2 -39366.198 83492.866 -39332.864 83459.533 -39266.198 83459.533 -39032.864 M 83092.866 -39832.864 83126.2 -39766.198 83159.533 -39732.864 83226.2 -39699.531 83426.2 -39699.531 83492.866 -39732.864 83526.2 -39766.198 83559.533 -39832.864 83559.533 -39932.864 83526.2 -39999.531 83492.866 -40032.864 83426.2 -40066.198 83226.2 -40066.198 83159.533 -40032.864 83126.2 -39999.531 83092.866 -39932.864 83092.866 -39832.864 M 83092.866 -40466.197 83126.2 -40399.531 83192.866 -40366.197 83792.866 -40366.197 M 83126.2 -40699.531 83092.866 -40766.198 83092.866 -40899.531 83126.2 -40966.198 83192.866 -40999.531 83226.2 -40999.531 83292.866 -40966.198 83326.2 -40899.531 83326.2 -40799.531 83359.533 -40732.864 83426.2 -40699.531 83459.533 -40699.531 83526.2 -40732.864 83559.533 -40799.531 83559.533 -40899.531 83526.2 -40966.198 M 83126.2 -41566.198 83092.866 -41499.531 83092.866 -41366.198 83126.2 -41299.531 83192.866 -41266.198 83459.533 -41266.198 83526.2 -41299.531 83559.533 -41366.198 83559.533 -41499.531 83526.2 -41566.198 83459.533 -41599.531 83392.866 -41599.531 83326.2 -41266.198 M 83826.2 -41499.531 83726.2 -41399.531 M 83126.2 -42166.198 83092.866 -42099.531 83092.866 -41966.198 83126.2 -41899.531 83192.866 -41866.198 83459.533 -41866.198 83526.2 -41899.531 83559.533 -41966.198 83559.533 -42099.531 83526.2 -42166.198 83459.533 -42199.531 83392.866 -42199.531 83326.2 -41866.198 M 83726.2 -42999.531 83759.533 -43032.864 83792.866 -43099.531 83792.866 -43266.198 83759.533 -43332.864 83726.2 -43366.198 83659.533 -43399.531 83592.866 -43399.531 83492.866 -43366.198 83092.866 -42966.198 83092.866 -43399.531 M 83792.866 -43832.865 83792.866 -43899.531 83759.533 -43966.198 83726.2 -43999.531 83659.533 -44032.865 83526.2 -44066.198 83359.533 -44066.198 83226.2 -44032.865 83159.533 -43999.531 83126.2 -43966.198 83092.866 -43899.531 83092.866 -43832.865 83126.2 -43766.198 83159.533 -43732.865 83226.2 -43699.531 83359.533 -43666.198 83526.2 -43666.198 83659.533 -43699.531 83726.2 -43732.865 83759.533 -43766.198 83792.866 -43832.865 M 83726.2 -44332.865 83759.533 -44366.198 83792.866 -44432.865 83792.866 -44599.532 83759.533 -44666.198 83726.2 -44699.532 83659.533 -44732.865 83592.866 -44732.865 83492.866 -44699.532 83092.866 -44299.532 83092.866 -44732.865 M 83792.866 -44966.199 83792.866 -45399.532 83526.2 -45166.199 83526.2 -45266.199 83492.866 -45332.865 83459.533 -45366.199 83392.866 -45399.532 83226.2 -45399.532 83159.533 -45366.199 83126.2 -45332.865 83092.866 -45266.199 83092.866 -45066.199 83126.2 -44999.532 83159.533 -44966.199 M 78740 -69469 78740 -69215 M 80010 -69469 80010 -69215 M 78740 -69469 80010 -69469\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 81607.428 -58547.142 81893.142 -58347.142 M 81607.428 -58204.285 82207.428 -58204.285 82207.428 -58432.856 82178.857 -58489.999 82150.285 -58518.57 82093.142 -58547.142 82007.428 -58547.142 81950.285 -58518.57 81921.714 -58489.999 81893.142 -58432.856 81893.142 -58204.285 M 81636 -58775.713 81607.428 -58861.428 81607.428 -59004.285 81636 -59061.428 81664.571 -59089.999 81721.714 -59118.57 81778.857 -59118.57 81836 -59089.999 81864.571 -59061.428 81893.142 -59004.285 81921.714 -58889.999 81950.285 -58832.856 81978.857 -58804.285 82036 -58775.713 82093.142 -58775.713 82150.285 -58804.285 82178.857 -58832.856 82207.428 -58889.999 82207.428 -59032.856 82178.857 -59118.57 M 82207.428 -59289.999 82207.428 -59632.857 M 81607.428 -59461.428 82207.428 -59461.428 M 80337.428 -58604.286 80937.428 -58604.286 80337.428 -58947.143 80937.428 -58947.143 M 80394.571 -59575.714 80366 -59547.142 80337.428 -59461.428 80337.428 -59404.285 80366 -59318.571 80423.142 -59261.428 80480.285 -59232.857 80594.571 -59204.285 80680.285 -59204.285 80794.571 -59232.857 80851.714 -59261.428 80908.857 -59318.571 80937.428 -59404.285 80937.428 -59461.428 80908.857 -59547.142 80880.285 -59575.714\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 70707.742 -65522.999 69979.171 -65522.999 69893.457 -65565.856 69850.6 -65608.714 69807.742 -65694.428 69807.742 -65865.856 69850.6 -65951.571 69893.457 -65994.428 69979.171 -66037.285 70707.742 -66037.285 M 70064.885 -66422.999 70064.885 -66851.571 M 69807.742 -66337.285 70707.742 -66637.285 69807.742 -66937.285 M 69807.742 -67751.571 70236.314 -67451.571 M 69807.742 -67237.285 70707.742 -67237.285 70707.742 -67580.142 70664.885 -67665.857 70622.028 -67708.714 70536.314 -67751.571 70407.742 -67751.571 70322.028 -67708.714 70279.171 -67665.857 70236.314 -67580.142 70236.314 -67237.285 M 70707.742 -68008.714 70707.742 -68523 M 69807.742 -68265.857 70707.742 -68265.857 M 70150.6 -68822.999 70150.6 -69508.714 69979.171 -69337.285 M 70150.6 -69508.714 70322.028 -69337.285\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 78368.857 -67767.142 78397.428 -67710 78397.428 -67624.285 78368.857 -67538.571 78311.714 -67481.428 78254.571 -67452.857 78140.285 -67424.285 78054.571 -67424.285 77940.285 -67452.857 77883.142 -67481.428 77826 -67538.571 77797.428 -67624.285 77797.428 -67681.428 77826 -67767.142 77854.571 -67795.714 78054.571 -67795.714 78054.571 -67681.428 M 77797.428 -68052.857 78397.428 -68052.857 77797.428 -68395.714 78397.428 -68395.714 M 77797.428 -68681.428 78397.428 -68681.428 78397.428 -68824.285 78368.857 -68909.999 78311.714 -68967.142 78254.571 -68995.713 78140.285 -69024.285 78054.571 -69024.285 77940.285 -68995.713 77883.142 -68967.142 77826 -68909.999 77797.428 -68824.285 77797.428 -68681.428 M 77127.428 -67367.142 76527.428 -67567.142 77127.428 -67767.142 M 76584.571 -68310 76556 -68281.428 76527.428 -68195.714 76527.428 -68138.571 76556 -68052.857 76613.142 -67995.714 76670.285 -67967.143 76784.571 -67938.571 76870.285 -67938.571 76984.571 -67967.143 77041.714 -67995.714 77098.857 -68052.857 77127.428 -68138.571 77127.428 -68195.714 77098.857 -68281.428 77070.285 -68310 M 76584.571 -68910 76556 -68881.428 76527.428 -68795.714 76527.428 -68738.571 76556 -68652.857 76613.142 -68595.714 76670.285 -68567.143 76784.571 -68538.571 76870.285 -68538.571 76984.571 -68567.143 77041.714 -68595.714 77098.857 -68652.857 77127.428 -68738.571 77127.428 -68795.714 77098.857 -68881.428 77070.285 -68910\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 85107.4 -34550.333 85074.066 -34650.333 85074.066 -34817 85107.4 -34883.666 85140.733 -34917 85207.4 -34950.333 85274.066 -34950.333 85340.733 -34917 85374.066 -34883.666 85407.4 -34817 85440.733 -34683.666 85474.066 -34617 85507.4 -34583.666 85574.066 -34550.333 85640.733 -34550.333 85707.4 -34583.666 85740.733 -34617 85774.066 -34683.666 85774.066 -34850.333 85740.733 -34950.333 M 85774.066 -35183.667 85074.066 -35350.333 85574.066 -35483.667 85074.066 -35617 85774.066 -35783.667 M 85074.066 -36050.333 85774.066 -36050.333 85774.066 -36217 85740.733 -36317 85674.066 -36383.667 85607.4 -36417 85474.066 -36450.333 85374.066 -36450.333 85240.733 -36417 85174.066 -36383.667 85107.4 -36317 85074.066 -36217 85074.066 -36050.333 M 85807.4 -37250.333 84907.4 -36650.333 M 85774.066 -37483.666 85207.4 -37483.666 85140.733 -37517 85107.4 -37550.333 85074.066 -37617 85074.066 -37750.333 85107.4 -37817 85140.733 -37850.333 85207.4 -37883.666 85774.066 -37883.666 M 85274.066 -38183.666 85274.066 -38516.999 M 85074.066 -38116.999 85774.066 -38350.333 85074.066 -38583.666 M 85074.066 -39216.999 85407.4 -38983.666 M 85074.066 -38816.999 85774.066 -38816.999 85774.066 -39083.666 85740.733 -39150.333 85707.4 -39183.666 85640.733 -39216.999 85540.733 -39216.999 85474.066 -39183.666 85440.733 -39150.333 85407.4 -39083.666 85407.4 -38816.999 M 85774.066 -39416.999 85774.066 -39816.999 M 85074.066 -39616.999 85774.066 -39616.999 M 85074.066 -40883.665 85440.733 -40883.665 85507.4 -40850.332 85540.733 -40783.665 85540.733 -40650.332 85507.4 -40583.665 M 85107.4 -40883.665 85074.066 -40816.999 85074.066 -40650.332 85107.4 -40583.665 85174.066 -40550.332 85240.733 -40550.332 85307.4 -40583.665 85340.733 -40650.332 85340.733 -40816.999 85374.066 -40883.665 M 85074.066 -41516.998 85774.066 -41516.998 M 85107.4 -41516.998 85074.066 -41450.332 85074.066 -41316.998 85107.4 -41250.332 85140.733 -41216.998 85207.4 -41183.665 85407.4 -41183.665 85474.066 -41216.998 85507.4 -41250.332 85540.733 -41316.998 85540.733 -41450.332 85507.4 -41516.998 M 85074.066 -42150.331 85440.733 -42150.331 85507.4 -42116.998 85540.733 -42050.331 85540.733 -41916.998 85507.4 -41850.331 M 85107.4 -42150.331 85074.066 -42083.665 85074.066 -41916.998 85107.4 -41850.331 85174.066 -41816.998 85240.733 -41816.998 85307.4 -41850.331 85340.733 -41916.998 85340.733 -42083.665 85374.066 -42150.331 M 85540.733 -42483.664 84840.733 -42483.664 M 85507.4 -42483.664 85540.733 -42550.331 85540.733 -42683.664 85507.4 -42750.331 85474.066 -42783.664 85407.4 -42816.998 85207.4 -42816.998 85140.733 -42783.664 85107.4 -42750.331 85074.066 -42683.664 85074.066 -42550.331 85107.4 -42483.664 M 85540.733 -43016.997 85540.733 -43283.664 M 85774.066 -43116.997 85174.066 -43116.997 85107.4 -43150.331 85074.066 -43216.997 85074.066 -43283.664 M 85107.4 -43783.664 85074.066 -43716.997 85074.066 -43583.664 85107.4 -43516.997 85174.066 -43483.664 85440.733 -43483.664 85507.4 -43516.997 85540.733 -43583.664 85540.733 -43716.997 85507.4 -43783.664 85440.733 -43816.997 85374.066 -43816.997 85307.4 -43483.664 M 85074.066 -44116.997 85540.733 -44116.997 M 85407.4 -44116.997 85474.066 -44150.331 85507.4 -44183.664 85540.733 -44250.331 85540.733 -44316.997\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 77854.571 -58490 77826 -58461.428 77797.428 -58375.714 77797.428 -58318.571 77826 -58232.857 77883.142 -58175.714 77940.285 -58147.143 78054.571 -58118.571 78140.285 -58118.571 78254.571 -58147.143 78311.714 -58175.714 78368.857 -58232.857 78397.428 -58318.571 78397.428 -58375.714 78368.857 -58461.428 78340.285 -58490 M 77797.428 -59032.857 77797.428 -58747.143 78397.428 -58747.143 M 77797.428 -59232.857 78397.428 -59232.857 M 77797.428 -59575.714 78140.285 -59318.571 M 78397.428 -59575.714 78054.571 -59232.857 M 79638.857 -67767.142 79667.428 -67710 79667.428 -67624.285 79638.857 -67538.571 79581.714 -67481.428 79524.571 -67452.857 79410.285 -67424.285 79324.571 -67424.285 79210.285 -67452.857 79153.142 -67481.428 79096 -67538.571 79067.428 -67624.285 79067.428 -67681.428 79096 -67767.142 79124.571 -67795.714 79324.571 -67795.714 79324.571 -67681.428 M 79067.428 -68052.857 79667.428 -68052.857 79067.428 -68395.714 79667.428 -68395.714 M 79067.428 -68681.428 79667.428 -68681.428 79667.428 -68824.285 79638.857 -68909.999 79581.714 -68967.142 79524.571 -68995.713 79410.285 -69024.285 79324.571 -69024.285 79210.285 -68995.713 79153.142 -68967.142 79096 -68909.999 79067.428 -68824.285 79067.428 -68681.428 M 63157.428 -58718.57 63157.428 -59061.428 M 62557.428 -58889.999 63157.428 -58889.999 M 63157.428 -59204.285 62557.428 -59604.285 M 63157.428 -59604.285 62557.428 -59204.285\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 66394 -43156.333 66860.666 -43856.333 M 66860.666 -43156.333 66394 -43856.333 M 67127.333 -43856.333 67127.333 -43156.333 M 67427.333 -43656.333 67760.666 -43656.333 M 67360.666 -43856.333 67594 -43156.333 67827.333 -43856.333 M 68194 -43156.333 68327.333 -43156.333 68394 -43189.666 68460.666 -43256.333 68494 -43389.666 68494 -43623 68460.666 -43756.333 68394 -43823 68327.333 -43856.333 68194 -43856.333 68127.333 -43823 68060.666 -43756.333 68027.333 -43623 68027.333 -43389.666 68060.666 -43256.333 68127.333 -43189.666 68194 -43156.333 M 69727.332 -43856.333 69493.999 -43523 M 69327.332 -43856.333 69327.332 -43156.333 69593.999 -43156.333 69660.666 -43189.666 69693.999 -43223 69727.332 -43289.666 69727.332 -43389.666 69693.999 -43456.333 69660.666 -43489.666 69593.999 -43523 69327.332 -43523 M 70027.332 -43856.333 70027.332 -43156.333 70293.999 -43156.333 70360.666 -43189.666 70393.999 -43223 70427.332 -43289.666 70427.332 -43389.666 70393.999 -43456.333 70360.666 -43489.666 70293.999 -43523 70027.332 -43523 M 70693.999 -43223 70727.332 -43189.666 70793.999 -43156.333 70960.666 -43156.333 71027.332 -43189.666 71060.666 -43223 71093.999 -43289.666 71093.999 -43356.333 71060.666 -43456.333 70660.666 -43856.333 71093.999 -43856.333 M 71527.333 -43156.333 71593.999 -43156.333 71660.666 -43189.666 71693.999 -43223 71727.333 -43289.666 71760.666 -43423 71760.666 -43589.666 71727.333 -43723 71693.999 -43789.666 71660.666 -43823 71593.999 -43856.333 71527.333 -43856.333 71460.666 -43823 71427.333 -43789.666 71393.999 -43723 71360.666 -43589.666 71360.666 -43423 71393.999 -43289.666 71427.333 -43223 71460.666 -43189.666 71527.333 -43156.333 M 72360.666 -43389.666 72360.666 -43856.333 M 72194 -43123 72027.333 -43623 72460.666 -43623 M 72860.667 -43156.333 72927.333 -43156.333 72994 -43189.666 73027.333 -43223 73060.667 -43289.666 73094 -43423 73094 -43589.666 73060.667 -43723 73027.333 -43789.666 72994 -43823 72927.333 -43856.333 72860.667 -43856.333 72794 -43823 72760.667 -43789.666 72727.333 -43723 72694 -43589.666 72694 -43423 72727.333 -43289.666 72760.667 -43223 72794 -43189.666 72860.667 -43156.333\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 55508.857 -58318.571 55537.428 -58261.429 55537.428 -58175.714 55508.857 -58090 55451.714 -58032.857 55394.571 -58004.286 55280.285 -57975.714 55194.571 -57975.714 55080.285 -58004.286 55023.142 -58032.857 54966 -58090 54937.428 -58175.714 54937.428 -58232.857 54966 -58318.571 54994.571 -58347.143 55194.571 -58347.143 55194.571 -58232.857 M 54937.428 -58604.286 55537.428 -58604.286 54937.428 -58947.143 55537.428 -58947.143 M 54937.428 -59232.857 55537.428 -59232.857 55537.428 -59375.714 55508.857 -59461.428 55451.714 -59518.571 55394.571 -59547.142 55280.285 -59575.714 55194.571 -59575.714 55080.285 -59547.142 55023.142 -59518.571 54966 -59461.428 54937.428 -59375.714 54937.428 -59232.857\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 72924 -61721.428 72881.142 -61850 72881.142 -62064.285 72924 -62150 72966.857 -62192.857 73052.571 -62235.714 73138.285 -62235.714 73224 -62192.857 73266.857 -62150 73309.714 -62064.285 73352.571 -61892.857 73395.428 -61807.142 73438.285 -61764.285 73524 -61721.428 73609.714 -61721.428 73695.428 -61764.285 73738.285 -61807.142 73781.142 -61892.857 73781.142 -62107.142 73738.285 -62235.714 M 73781.142 -62535.714 72881.142 -62750 73524 -62921.428 72881.142 -63092.857 73781.142 -63307.143 M 72881.142 -63649.999 73781.142 -63649.999 73781.142 -63864.285 73738.285 -63992.856 73652.571 -64078.571 73566.857 -64121.428 73395.428 -64164.285 73266.857 -64164.285 73095.428 -64121.428 73009.714 -64078.571 72924 -63992.856 72881.142 -63864.285 72881.142 -63649.999 M 73224 -64549.999 73224 -65235.714 73052.571 -65064.285 M 73224 -65235.714 73395.428 -65064.285\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 65097.428 -59004.285 65383.142 -58804.285 M 65097.428 -58661.428 65697.428 -58661.428 65697.428 -58889.999 65668.857 -58947.142 65640.285 -58975.713 65583.142 -59004.285 65497.428 -59004.285 65440.285 -58975.713 65411.714 -58947.142 65383.142 -58889.999 65383.142 -58661.428 M 65697.428 -59204.285 65097.428 -59604.285 M 65697.428 -59604.285 65097.428 -59204.285 M 79096 -57918.571 79067.428 -58004.286 79067.428 -58147.143 79096 -58204.286 79124.571 -58232.857 79181.714 -58261.428 79238.857 -58261.428 79296 -58232.857 79324.571 -58204.286 79353.142 -58147.143 79381.714 -58032.857 79410.285 -57975.714 79438.857 -57947.143 79496 -57918.571 79553.142 -57918.571 79610.285 -57947.143 79638.857 -57975.714 79667.428 -58032.857 79667.428 -58175.714 79638.857 -58261.428 M 79667.428 -58461.429 79067.428 -58604.286 79496 -58718.572 79067.428 -58832.857 79667.428 -58975.715 M 79667.428 -59318.571 79667.428 -59432.857 79638.857 -59490 79581.714 -59547.143 79467.428 -59575.714 79267.428 -59575.714 79153.142 -59547.143 79096 -59490 79067.428 -59432.857 79067.428 -59318.571 79096 -59261.429 79153.142 -59204.286 79267.428 -59175.714 79467.428 -59175.714 79581.714 -59204.286 79638.857 -59261.429 79667.428 -59318.571 M 82178.857 -67767.142 82207.428 -67710 82207.428 -67624.285 82178.857 -67538.571 82121.714 -67481.428 82064.571 -67452.857 81950.285 -67424.285 81864.571 -67424.285 81750.285 -67452.857 81693.142 -67481.428 81636 -67538.571 81607.428 -67624.285 81607.428 -67681.428 81636 -67767.142 81664.571 -67795.714 81864.571 -67795.714 81864.571 -67681.428 M 81607.428 -68052.857 82207.428 -68052.857 81607.428 -68395.714 82207.428 -68395.714 M 81607.428 -68681.428 82207.428 -68681.428 82207.428 -68824.285 82178.857 -68909.999 82121.714 -68967.142 82064.571 -68995.713 81950.285 -69024.285 81864.571 -69024.285 81750.285 -68995.713 81693.142 -68967.142 81636 -68909.999 81607.428 -68824.285 81607.428 -68681.428 M 76527.428 -58318.572 77127.428 -58318.572 77127.428 -58461.429 77098.857 -58547.143 77041.714 -58604.286 76984.571 -58632.857 76870.285 -58661.429 76784.571 -58661.429 76670.285 -58632.857 76613.142 -58604.286 76556 -58547.143 76527.428 -58461.429 76527.428 -58318.572 M 76527.428 -58918.572 77127.428 -58918.572 M 77127.428 -59318.571 77127.428 -59432.857 77098.857 -59490 77041.714 -59547.143 76927.428 -59575.714 76727.428 -59575.714 76613.142 -59547.143 76556 -59490 76527.428 -59432.857 76527.428 -59318.571 76556 -59261.429 76613.142 -59204.286 76727.428 -59175.714 76927.428 -59175.714 77041.714 -59204.286 77098.857 -59261.429 77127.428 -59318.571 M 67637.428 -58547.142 67923.142 -58347.142 M 67637.428 -58204.285 68237.428 -58204.285 68237.428 -58432.856 68208.857 -58489.999 68180.285 -58518.57 68123.142 -58547.142 68037.428 -58547.142 67980.285 -58518.57 67951.714 -58489.999 67923.142 -58432.856 67923.142 -58204.285 M 68237.428 -58718.57 68237.428 -59061.428 M 67637.428 -58889.999 68237.428 -58889.999 M 67666 -59232.856 67637.428 -59318.571 67637.428 -59461.428 67666 -59518.571 67694.571 -59547.142 67751.714 -59575.713 67808.857 -59575.713 67866 -59547.142 67894.571 -59518.571 67923.142 -59461.428 67951.714 -59347.142 67980.285 -59289.999 68008.857 -59261.428 68066 -59232.856 68123.142 -59232.856 68180.285 -59261.428 68208.857 -59289.999 68237.428 -59347.142 68237.428 -59489.999 68208.857 -59575.713 M 60617.428 -59032.856 60617.428 -58747.142 60331.714 -58718.57 60360.285 -58747.142 60388.857 -58804.285 60388.857 -58947.142 60360.285 -59004.285 60331.714 -59032.856 60274.571 -59061.427 60131.714 -59061.427 60074.571 -59032.856 60046 -59004.285 60017.428 -58947.142 60017.428 -58804.285 60046 -58747.142 60074.571 -58718.57 M 60617.428 -59232.856 60017.428 -59432.856 60617.428 -59632.856 M 57534.571 -58547.142 57506 -58518.57 57477.428 -58432.856 57477.428 -58375.713 57506 -58289.999 57563.142 -58232.856 57620.285 -58204.285 57734.571 -58175.713 57820.285 -58175.713 57934.571 -58204.285 57991.714 -58232.856 58048.857 -58289.999 58077.428 -58375.713 58077.428 -58432.856 58048.857 -58518.57 58020.285 -58547.142 M 58077.428 -58718.57 58077.428 -59061.428 M 57477.428 -58889.999 58077.428 -58889.999 M 57506 -59232.856 57477.428 -59318.571 57477.428 -59461.428 57506 -59518.571 57534.571 -59547.142 57591.714 -59575.713 57648.857 -59575.713 57706 -59547.142 57734.571 -59518.571 57763.142 -59461.428 57791.714 -59347.142 57820.285 -59289.999 57848.857 -59261.428 57906 -59232.856 57963.142 -59232.856 58020.285 -59261.428 58048.857 -59289.999 58077.428 -59347.142 58077.428 -59489.999 58048.857 -59575.713 M 80337.428 -67452.857 80937.428 -67452.857 M 80337.428 -67795.714 80680.285 -67538.571 M 80937.428 -67795.714 80594.571 -67452.857 M 80651.714 -68052.857 80651.714 -68252.857 M 80337.428 -68338.571 80337.428 -68052.857 80937.428 -68052.857 80937.428 -68338.571 M 80623.142 -68709.999 80337.428 -68709.999 M 80937.428 -68509.999 80623.142 -68709.999 80937.428 -68909.999 M 61326.666 -65663.833 61326.666 -66163.833 61293.333 -66263.833 61226.666 -66330.5 61126.666 -66363.833 61060 -66363.833 M 61626.666 -65730.5 61659.999 -65697.166 61726.666 -65663.833 61893.333 -65663.833 61959.999 -65697.166 61993.333 -65730.5 62026.666 -65797.166 62026.666 -65863.833 61993.333 -65963.833 61593.333 -66363.833 62026.666 -66363.833 M 84338.333 -48583.833 84105 -48250.5 M 83938.333 -48583.833 83938.333 -47883.833 84205 -47883.833 84271.667 -47917.166 84305 -47950.5 84338.333 -48017.166 84338.333 -48117.166 84305 -48183.833 84271.667 -48217.166 84205 -48250.5 83938.333 -48250.5 M 84571.667 -47883.833 85005 -47883.833 84771.667 -48150.5 84871.667 -48150.5 84938.333 -48183.833 84971.667 -48217.166 85005 -48283.833 85005 -48450.5 84971.667 -48517.166 84938.333 -48550.5 84871.667 -48583.833 84671.667 -48583.833 84605 -48550.5 84571.667 -48517.166 M 84371.666 -53663.833 83971.666 -53663.833 M 84171.666 -53663.833 84171.666 -52963.833 84104.999 -53063.833 84038.333 -53130.5 83971.666 -53163.833 M 84671.666 -53663.833 84671.666 -52963.833 M 84738.333 -53397.166 84938.333 -53663.833 M 84938.333 -53197.166 84671.666 -53463.833 M 82947.733 -55645.033 82947.733 -54945.033 83114.4 -54945.033 83214.4 -54978.366 83281.067 -55045.033 83314.4 -55111.7 83347.733 -55245.033 83347.733 -55345.033 83314.4 -55478.366 83281.067 -55545.033 83214.4 -55611.7 83114.4 -55645.033 82947.733 -55645.033 M 83614.4 -55011.7 83647.733 -54978.366 83714.4 -54945.033 83881.067 -54945.033 83947.733 -54978.366 83981.067 -55011.7 84014.4 -55078.366 84014.4 -55145.033 83981.067 -55245.033 83581.067 -55645.033 84014.4 -55645.033 M 56938.133 -55594.233 56938.133 -54894.233 57104.8 -54894.233 57204.8 -54927.566 57271.467 -54994.233 57304.8 -55060.9 57338.133 -55194.233 57338.133 -55294.233 57304.8 -55427.566 57271.467 -55494.233 57204.8 -55560.9 57104.8 -55594.233 56938.133 -55594.233 M 58004.8 -55594.233 57604.8 -55594.233 M 57804.8 -55594.233 57804.8 -54894.233 57738.133 -54994.233 57671.467 -55060.9 57604.8 -55094.233 M 73543.333 -55568.833 73310 -55235.5 M 73143.333 -55568.833 73143.333 -54868.833 73410 -54868.833 73476.667 -54902.166 73510 -54935.5 73543.333 -55002.166 73543.333 -55102.166 73510 -55168.833 73476.667 -55202.166 73410 -55235.5 73143.333 -55235.5 M 73810 -54935.5 73843.333 -54902.166 73910 -54868.833 74076.667 -54868.833 74143.333 -54902.166 74176.667 -54935.5 74210 -55002.166 74210 -55068.833 74176.667 -55168.833 73776.667 -55568.833 74210 -55568.833 M 73576.666 -56838.833 73176.666 -56838.833 M 73376.666 -56838.833 73376.666 -56138.833 73309.999 -56238.833 73243.333 -56305.5 73176.666 -56338.833 M 73876.666 -56838.833 73876.666 -56138.833 M 73943.333 -56572.166 74143.333 -56838.833 M 74143.333 -56372.166 73876.666 -56638.833 M 66721.5 -33484.476 66697.69 -33555.904 66697.69 -33674.952 66721.5 -33722.571 66745.309 -33746.38 66792.928 -33770.19 66840.547 -33770.19 66888.166 -33746.38 66911.976 -33722.571 66935.785 -33674.952 66959.595 -33579.714 66983.404 -33532.095 67007.214 -33508.285 67054.833 -33484.476 67102.452 -33484.476 67150.071 -33508.285 67173.88 -33532.095 67197.69 -33579.714 67197.69 -33698.761 67173.88 -33770.19 M 67197.69 -33936.856 66697.69 -34055.904 67054.833 -34151.142 66697.69 -34246.38 67197.69 -34365.428 M 66697.69 -34555.904 67197.69 -34555.904 67197.69 -34674.952 67173.88 -34746.38 67126.261 -34793.999 67078.642 -34817.809 66983.404 -34841.618 66911.976 -34841.618 66816.738 -34817.809 66769.119 -34793.999 66721.5 -34746.38 66697.69 -34674.952 66697.69 -34555.904 M 66697.69 -35055.904 67197.69 -35055.904 M 67197.69 -35389.237 67197.69 -35484.475 67173.88 -35532.094 67126.261 -35579.713 67031.023 -35603.523 66864.357 -35603.523 66769.119 -35579.713 66721.5 -35532.094 66697.69 -35484.475 66697.69 -35389.237 66721.5 -35341.618 66769.119 -35293.999 66864.357 -35270.19 67031.023 -35270.19 67126.261 -35293.999 67173.88 -35341.618 67197.69 -35389.237 M 72639.88 -51689.047 72663.69 -51641.428 72663.69 -51569.999 72639.88 -51498.571 72592.261 -51450.952 72544.642 -51427.142 72449.404 -51403.333 72377.976 -51403.333 72282.738 -51427.142 72235.119 -51450.952 72187.5 -51498.571 72163.69 -51569.999 72163.69 -51617.618 72187.5 -51689.047 72211.309 -51712.856 72377.976 -51712.856 72377.976 -51617.618 M 72163.69 -51927.142 72663.69 -51927.142 72163.69 -52212.856 72663.69 -52212.856 M 72163.69 -52450.952 72663.69 -52450.952 72663.69 -52570 72639.88 -52641.428 72592.261 -52689.047 72544.642 -52712.857 72449.404 -52736.666 72377.976 -52736.666 72282.738 -52712.857 72235.119 -52689.047 72187.5 -52641.428 72163.69 -52570 72163.69 -52450.952 M 67583.69 -51522.381 67083.69 -51689.047 67583.69 -51855.714 M 67083.69 -52022.38 67583.69 -52022.38 M 67083.69 -52260.475 67583.69 -52260.475 67083.69 -52546.189 67583.69 -52546.189 M 66697.69 -36484.809 66935.785 -36318.143 M 66697.69 -36199.095 67197.69 -36199.095 67197.69 -36389.571 67173.88 -36437.19 67150.071 -36461 67102.452 -36484.809 67031.023 -36484.809 66983.404 -36461 66959.595 -36437.19 66935.785 -36389.571 66935.785 -36199.095 M 66959.595 -36699.095 66959.595 -36865.762 M 66697.69 -36937.19 66697.69 -36699.095 67197.69 -36699.095 67197.69 -36937.19 M 66721.5 -37127.667 66697.69 -37199.095 66697.69 -37318.143 66721.5 -37365.762 66745.309 -37389.571 66792.928 -37413.381 66840.547 -37413.381 66888.166 -37389.571 66911.976 -37365.762 66935.785 -37318.143 66959.595 -37222.905 66983.404 -37175.286 67007.214 -37151.476 67054.833 -37127.667 67102.452 -37127.667 67150.071 -37151.476 67173.88 -37175.286 67197.69 -37222.905 67197.69 -37341.952 67173.88 -37413.381 M 66959.595 -37627.666 66959.595 -37794.333 M 66697.69 -37865.761 66697.69 -37627.666 67197.69 -37627.666 67197.69 -37865.761 M 67197.69 -38008.619 67197.69 -38294.333 M 66697.69 -38151.476 67197.69 -38151.476 M 72436.5 -33540.048 72412.69 -33611.476 72412.69 -33730.524 72436.5 -33778.143 72460.309 -33801.952 72507.928 -33825.762 72555.547 -33825.762 72603.166 -33801.952 72626.976 -33778.143 72650.785 -33730.524 72674.595 -33635.286 72698.404 -33587.667 72722.214 -33563.857 72769.833 -33540.048 72817.452 -33540.048 72865.071 -33563.857 72888.88 -33587.667 72912.69 -33635.286 72912.69 -33754.333 72888.88 -33825.762 M 72912.69 -33992.428 72412.69 -34111.476 72769.833 -34206.714 72412.69 -34301.952 72912.69 -34421 M 72460.309 -34897.19 72436.5 -34873.381 72412.69 -34801.952 72412.69 -34754.333 72436.5 -34682.905 72484.119 -34635.286 72531.738 -34611.476 72626.976 -34587.667 72698.404 -34587.667 72793.642 -34611.476 72841.261 -34635.286 72888.88 -34682.905 72912.69 -34754.333 72912.69 -34801.952 72888.88 -34873.381 72865.071 -34897.19 M 72412.69 -35349.571 72412.69 -35111.476 72912.69 -35111.476 M 72412.69 -35516.238 72912.69 -35516.238 M 72412.69 -35801.952 72698.404 -35587.667 M 72912.69 -35801.952 72626.976 -35516.238 M 72888.88 -36957.047 72912.69 -36909.428 72912.69 -36837.999 72888.88 -36766.571 72841.261 -36718.952 72793.642 -36695.142 72698.404 -36671.333 72626.976 -36671.333 72531.738 -36695.142 72484.119 -36718.952 72436.5 -36766.571 72412.69 -36837.999 72412.69 -36885.618 72436.5 -36957.047 72460.309 -36980.856 72626.976 -36980.856 72626.976 -36885.618 M 72412.69 -37195.142 72912.69 -37195.142 72412.69 -37480.856 72912.69 -37480.856 M 72412.69 -37718.952 72912.69 -37718.952 72912.69 -37838 72888.88 -37909.428 72841.261 -37957.047 72793.642 -37980.857 72698.404 -38004.666 72626.976 -38004.666 72531.738 -37980.857 72484.119 -37957.047 72436.5 -37909.428 72412.69 -37838 72412.69 -37718.952 M 55763.333 -43503.833 55530 -43170.5 M 55363.333 -43503.833 55363.333 -42803.833 55630 -42803.833 55696.667 -42837.166 55730 -42870.5 55763.333 -42937.166 55763.333 -43037.166 55730 -43103.833 55696.667 -43137.166 55630 -43170.5 55363.333 -43170.5 M 56430 -43503.833 56030 -43503.833 M 56230 -43503.833 56230 -42803.833 56163.333 -42903.833 56096.667 -42970.5 56030 -43003.833 M 55695.066 -48710.833 55295.066 -48710.833 M 55495.066 -48710.833 55495.066 -48010.833 55428.399 -48110.833 55361.733 -48177.5 55295.066 -48210.833 M 55995.066 -48710.833 55995.066 -48010.833 M 56061.733 -48444.166 56261.733 -48710.833 M 56261.733 -48244.166 55995.066 -48510.833 M 79141.666 -63123.833 79141.666 -63623.833 79108.333 -63723.833 79041.666 -63790.5 78941.666 -63823.833 78875 -63823.833 M 79841.666 -63823.833 79441.666 -63823.833 M 79641.666 -63823.833 79641.666 -63123.833 79574.999 -63223.833 79508.333 -63290.5 79441.666 -63323.833\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 69240 -60280 69240 -61550 M 68224 -63328 67716 -63328 67716 -64090 M 65684 -63328 65176 -63328 65176 -64090 M 63144 -63328 62636 -63328 62636 -64090 M 60604 -63328 60096 -63328 60096 -64090 M 58064 -63328 57556 -63328 57556 -64090 M 55524 -63328 55016 -63328 55016 -64090 M 68224 -64090 68224 -63328 M 65684 -64090 65684 -63328 M 63144 -64090 63144 -63328 M 60604 -64090 60604 -63328 M 58064 -64090 58064 -63328 M 55524 -64090 55524 -63328 M 69240 -64090 54000 -64090 54000 -72980 69240 -72980 69240 -64090 M 83620 -49800 83620 -51800 M 81480 -51800 81480 -49800 M 82475 -56830 82475 -54930 77775 -54930 M 82475 -56830 77775 -56830 M 64695 -56830 64695 -54930 59995 -54930 M 64695 -56830 59995 -56830 M 70215 -56950 68215 -56950 M 68215 -54810 70215 -54810 M 60962.5 -52461 60962.5 -33919 A 1269.999 1269.999 0 0 0 62232.5 -32649 L 77472.5 -32649 A 1270 1270 0 0 0 78742.5 -33919 L 78742.5 -52461 A 1270 1270 0 0 0 77472.5 -53731 L 62232.5 -53731 A 1269.999 1269.999 0 0 0 60962.5 -52461 M 65352.5 -32649 74352.5 -32649 74352.5 -31125 65352.5 -31125 65352.5 -32649 M 56715 -46720 56715 -44720 M 58855 -44720 58855 -46720 M 82545 -60410 82545 -61735 84455 -61735 84455 -65265 82545 -65265 M 76205 -61735 74295 -61735 74295 -65265 76205 -65265\\" fill=\\"none\\" stroke-width=\\"120\\"/></g></svg>"]]');Br();
diff --git a/dist/assets/main-eaf63962.js b/dist/assets/main-eaf63962.js
new file mode 100644
index 0000000000000000000000000000000000000000..479a21882a1dba74ce7ddc6c77b28516730ea2d3
--- /dev/null
+++ b/dist/assets/main-eaf63962.js
@@ -0,0 +1,15 @@
+(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const u of s.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&n(u)}).observe(document,{childList:!0,subtree:!0});function r(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=r(o);fetch(o.href,s)}})();var ne=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function hr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ra(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),r}var qi={exports:{}},ae=qi.exports={},Re,Se;function Wt(){throw new Error("setTimeout has not been defined")}function Ht(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Re=setTimeout:Re=Wt}catch{Re=Wt}try{typeof clearTimeout=="function"?Se=clearTimeout:Se=Ht}catch{Se=Ht}})();function zi(e){if(Re===setTimeout)return setTimeout(e,0);if((Re===Wt||!Re)&&setTimeout)return Re=setTimeout,setTimeout(e,0);try{return Re(e,0)}catch{try{return Re.call(null,e,0)}catch{return Re.call(this,e,0)}}}function Sa(e){if(Se===clearTimeout)return clearTimeout(e);if((Se===Ht||!Se)&&clearTimeout)return Se=clearTimeout,clearTimeout(e);try{return Se(e)}catch{try{return Se.call(null,e)}catch{return Se.call(this,e)}}}var Ie=[],et=!1,ze,ct=-1;function Ta(){!et||!ze||(et=!1,ze.length?Ie=ze.concat(Ie):ct=-1,Ie.length&&Wi())}function Wi(){if(!et){var e=zi(Ta);et=!0;for(var t=Ie.length;t;){for(ze=Ie,Ie=[];++ct<t;)ze&&ze[ct].run();ct=-1,t=Ie.length}ze=null,et=!1,Sa(e)}}ae.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];Ie.push(new Hi(e,t)),Ie.length===1&&!et&&zi(Wi)};function Hi(e,t){this.fun=e,this.array=t}Hi.prototype.run=function(){this.fun.apply(null,this.array)};ae.title="browser";ae.browser=!0;ae.env={};ae.argv=[];ae.version="";ae.versions={};function Le(){}ae.on=Le;ae.addListener=Le;ae.once=Le;ae.off=Le;ae.removeListener=Le;ae.removeAllListeners=Le;ae.emit=Le;ae.prependListener=Le;ae.prependOnceListener=Le;ae.listeners=function(e){return[]};ae.binding=function(e){throw new Error("process.binding is not supported")};ae.cwd=function(){return"/"};ae.chdir=function(e){throw new Error("process.chdir is not supported")};ae.umask=function(){return 0};var Aa=qi.exports;const Ba=hr(Aa);var it={},Mt={};Mt.byteLength=La;Mt.toByteArray=Ca;Mt.fromByteArray=ka;var Te=[],_e=[],Ia=typeof Uint8Array<"u"?Uint8Array:Array,Lt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Je=0,Na=Lt.length;Je<Na;++Je)Te[Je]=Lt[Je],_e[Lt.charCodeAt(Je)]=Je;_e["-".charCodeAt(0)]=62;_e["_".charCodeAt(0)]=63;function Zi(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var n=r===t?0:4-r%4;return[r,n]}function La(e){var t=Zi(e),r=t[0],n=t[1];return(r+n)*3/4-n}function ja(e,t,r){return(t+r)*3/4-r}function Ca(e){var t,r=Zi(e),n=r[0],o=r[1],s=new Ia(ja(e,n,o)),u=0,f=o>0?n-4:n,h;for(h=0;h<f;h+=4)t=_e[e.charCodeAt(h)]<<18|_e[e.charCodeAt(h+1)]<<12|_e[e.charCodeAt(h+2)]<<6|_e[e.charCodeAt(h+3)],s[u++]=t>>16&255,s[u++]=t>>8&255,s[u++]=t&255;return o===2&&(t=_e[e.charCodeAt(h)]<<2|_e[e.charCodeAt(h+1)]>>4,s[u++]=t&255),o===1&&(t=_e[e.charCodeAt(h)]<<10|_e[e.charCodeAt(h+1)]<<4|_e[e.charCodeAt(h+2)]>>2,s[u++]=t>>8&255,s[u++]=t&255),s}function Oa(e){return Te[e>>18&63]+Te[e>>12&63]+Te[e>>6&63]+Te[e&63]}function Fa(e,t,r){for(var n,o=[],s=t;s<r;s+=3)n=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(e[s+2]&255),o.push(Oa(n));return o.join("")}function ka(e){for(var t,r=e.length,n=r%3,o=[],s=16383,u=0,f=r-n;u<f;u+=s)o.push(Fa(e,u,u+s>f?f:u+s));return n===1?(t=e[r-1],o.push(Te[t>>2]+Te[t<<4&63]+"==")):n===2&&(t=(e[r-2]<<8)+e[r-1],o.push(Te[t>>10]+Te[t>>4&63]+Te[t<<2&63]+"=")),o.join("")}var cr={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */cr.read=function(e,t,r,n,o){var s,u,f=o*8-n-1,h=(1<<f)-1,d=h>>1,g=-7,m=r?o-1:0,x=r?-1:1,S=e[t+m];for(m+=x,s=S&(1<<-g)-1,S>>=-g,g+=f;g>0;s=s*256+e[t+m],m+=x,g-=8);for(u=s&(1<<-g)-1,s>>=-g,g+=n;g>0;u=u*256+e[t+m],m+=x,g-=8);if(s===0)s=1-d;else{if(s===h)return u?NaN:(S?-1:1)*(1/0);u=u+Math.pow(2,n),s=s-d}return(S?-1:1)*u*Math.pow(2,s-n)};cr.write=function(e,t,r,n,o,s){var u,f,h,d=s*8-o-1,g=(1<<d)-1,m=g>>1,x=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,S=n?0:s-1,E=n?1:-1,R=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(f=isNaN(t)?1:0,u=g):(u=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-u))<1&&(u--,h*=2),u+m>=1?t+=x/h:t+=x*Math.pow(2,1-m),t*h>=2&&(u++,h/=2),u+m>=g?(f=0,u=g):u+m>=1?(f=(t*h-1)*Math.pow(2,o),u=u+m):(f=t*Math.pow(2,m-1)*Math.pow(2,o),u=0));o>=8;e[r+S]=f&255,S+=E,f/=256,o-=8);for(u=u<<o|f,d+=o;d>0;e[r+S]=u&255,S+=E,u/=256,d-=8);e[r+S-E]|=R*128};/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author   Feross Aboukhadijeh <https://feross.org>
+ * @license  MIT
+ */(function(e){const t=Mt,r=cr,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=f,e.SlowBuffer=P,e.INSPECT_MAX_BYTES=50;const o=2147483647;e.kMaxLength=o,f.TYPED_ARRAY_SUPPORT=s(),!f.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const l=new Uint8Array(1),i={foo:function(){return 42}};return Object.setPrototypeOf(i,Uint8Array.prototype),Object.setPrototypeOf(l,i),l.foo()===42}catch{return!1}}Object.defineProperty(f.prototype,"parent",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.buffer}}),Object.defineProperty(f.prototype,"offset",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.byteOffset}});function u(l){if(l>o)throw new RangeError('The value "'+l+'" is invalid for option "size"');const i=new Uint8Array(l);return Object.setPrototypeOf(i,f.prototype),i}function f(l,i,a){if(typeof l=="number"){if(typeof i=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return m(l)}return h(l,i,a)}f.poolSize=8192;function h(l,i,a){if(typeof l=="string")return x(l,i);if(ArrayBuffer.isView(l))return E(l);if(l==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(ve(l,ArrayBuffer)||l&&ve(l.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ve(l,SharedArrayBuffer)||l&&ve(l.buffer,SharedArrayBuffer)))return R(l,i,a);if(typeof l=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const c=l.valueOf&&l.valueOf();if(c!=null&&c!==l)return f.from(c,i,a);const y=B(l);if(y)return y;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof l[Symbol.toPrimitive]=="function")return f.from(l[Symbol.toPrimitive]("string"),i,a);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l)}f.from=function(l,i,a){return h(l,i,a)},Object.setPrototypeOf(f.prototype,Uint8Array.prototype),Object.setPrototypeOf(f,Uint8Array);function d(l){if(typeof l!="number")throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function g(l,i,a){return d(l),l<=0?u(l):i!==void 0?typeof a=="string"?u(l).fill(i,a):u(l).fill(i):u(l)}f.alloc=function(l,i,a){return g(l,i,a)};function m(l){return d(l),u(l<0?0:N(l)|0)}f.allocUnsafe=function(l){return m(l)},f.allocUnsafeSlow=function(l){return m(l)};function x(l,i){if((typeof i!="string"||i==="")&&(i="utf8"),!f.isEncoding(i))throw new TypeError("Unknown encoding: "+i);const a=O(l,i)|0;let c=u(a);const y=c.write(l,i);return y!==a&&(c=c.slice(0,y)),c}function S(l){const i=l.length<0?0:N(l.length)|0,a=u(i);for(let c=0;c<i;c+=1)a[c]=l[c]&255;return a}function E(l){if(ve(l,Uint8Array)){const i=new Uint8Array(l);return R(i.buffer,i.byteOffset,i.byteLength)}return S(l)}function R(l,i,a){if(i<0||l.byteLength<i)throw new RangeError('"offset" is outside of buffer bounds');if(l.byteLength<i+(a||0))throw new RangeError('"length" is outside of buffer bounds');let c;return i===void 0&&a===void 0?c=new Uint8Array(l):a===void 0?c=new Uint8Array(l,i):c=new Uint8Array(l,i,a),Object.setPrototypeOf(c,f.prototype),c}function B(l){if(f.isBuffer(l)){const i=N(l.length)|0,a=u(i);return a.length===0||l.copy(a,0,0,i),a}if(l.length!==void 0)return typeof l.length!="number"||De(l.length)?u(0):S(l);if(l.type==="Buffer"&&Array.isArray(l.data))return S(l.data)}function N(l){if(l>=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return l|0}function P(l){return+l!=l&&(l=0),f.alloc(+l)}f.isBuffer=function(i){return i!=null&&i._isBuffer===!0&&i!==f.prototype},f.compare=function(i,a){if(ve(i,Uint8Array)&&(i=f.from(i,i.offset,i.byteLength)),ve(a,Uint8Array)&&(a=f.from(a,a.offset,a.byteLength)),!f.isBuffer(i)||!f.isBuffer(a))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(i===a)return 0;let c=i.length,y=a.length;for(let w=0,M=Math.min(c,y);w<M;++w)if(i[w]!==a[w]){c=i[w],y=a[w];break}return c<y?-1:y<c?1:0},f.isEncoding=function(i){switch(String(i).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},f.concat=function(i,a){if(!Array.isArray(i))throw new TypeError('"list" argument must be an Array of Buffers');if(i.length===0)return f.alloc(0);let c;if(a===void 0)for(a=0,c=0;c<i.length;++c)a+=i[c].length;const y=f.allocUnsafe(a);let w=0;for(c=0;c<i.length;++c){let M=i[c];if(ve(M,Uint8Array))w+M.length>y.length?(f.isBuffer(M)||(M=f.from(M)),M.copy(y,w)):Uint8Array.prototype.set.call(y,M,w);else if(f.isBuffer(M))M.copy(y,w);else throw new TypeError('"list" argument must be an Array of Buffers');w+=M.length}return y};function O(l,i){if(f.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||ve(l,ArrayBuffer))return l.byteLength;if(typeof l!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);const a=l.length,c=arguments.length>2&&arguments[2]===!0;if(!c&&a===0)return 0;let y=!1;for(;;)switch(i){case"ascii":case"latin1":case"binary":return a;case"utf8":case"utf-8":return X(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return a*2;case"hex":return a>>>1;case"base64":return at(l).length;default:if(y)return c?-1:X(l).length;i=(""+i).toLowerCase(),y=!0}}f.byteLength=O;function L(l,i,a){let c=!1;if((i===void 0||i<0)&&(i=0),i>this.length||((a===void 0||a>this.length)&&(a=this.length),a<=0)||(a>>>=0,i>>>=0,a<=i))return"";for(l||(l="utf8");;)switch(l){case"hex":return pe(this,i,a);case"utf8":case"utf-8":return de(this,i,a);case"ascii":return be(this,i,a);case"latin1":case"binary":return je(this,i,a);case"base64":return Z(this,i,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ze(this,i,a);default:if(c)throw new TypeError("Unknown encoding: "+l);l=(l+"").toLowerCase(),c=!0}}f.prototype._isBuffer=!0;function F(l,i,a){const c=l[i];l[i]=l[a],l[a]=c}f.prototype.swap16=function(){const i=this.length;if(i%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let a=0;a<i;a+=2)F(this,a,a+1);return this},f.prototype.swap32=function(){const i=this.length;if(i%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let a=0;a<i;a+=4)F(this,a,a+3),F(this,a+1,a+2);return this},f.prototype.swap64=function(){const i=this.length;if(i%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let a=0;a<i;a+=8)F(this,a,a+7),F(this,a+1,a+6),F(this,a+2,a+5),F(this,a+3,a+4);return this},f.prototype.toString=function(){const i=this.length;return i===0?"":arguments.length===0?de(this,0,i):L.apply(this,arguments)},f.prototype.toLocaleString=f.prototype.toString,f.prototype.equals=function(i){if(!f.isBuffer(i))throw new TypeError("Argument must be a Buffer");return this===i?!0:f.compare(this,i)===0},f.prototype.inspect=function(){let i="";const a=e.INSPECT_MAX_BYTES;return i=this.toString("hex",0,a).replace(/(.{2})/g,"$1 ").trim(),this.length>a&&(i+=" ... "),"<Buffer "+i+">"},n&&(f.prototype[n]=f.prototype.inspect),f.prototype.compare=function(i,a,c,y,w){if(ve(i,Uint8Array)&&(i=f.from(i,i.offset,i.byteLength)),!f.isBuffer(i))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof i);if(a===void 0&&(a=0),c===void 0&&(c=i?i.length:0),y===void 0&&(y=0),w===void 0&&(w=this.length),a<0||c>i.length||y<0||w>this.length)throw new RangeError("out of range index");if(y>=w&&a>=c)return 0;if(y>=w)return-1;if(a>=c)return 1;if(a>>>=0,c>>>=0,y>>>=0,w>>>=0,this===i)return 0;let M=w-y,H=c-a;const te=Math.min(M,H),Q=this.slice(y,w),re=i.slice(a,c);for(let K=0;K<te;++K)if(Q[K]!==re[K]){M=Q[K],H=re[K];break}return M<H?-1:H<M?1:0};function U(l,i,a,c,y){if(l.length===0)return-1;if(typeof a=="string"?(c=a,a=0):a>2147483647?a=2147483647:a<-2147483648&&(a=-2147483648),a=+a,De(a)&&(a=y?0:l.length-1),a<0&&(a=l.length+a),a>=l.length){if(y)return-1;a=l.length-1}else if(a<0)if(y)a=0;else return-1;if(typeof i=="string"&&(i=f.from(i,c)),f.isBuffer(i))return i.length===0?-1:V(l,i,a,c,y);if(typeof i=="number")return i=i&255,typeof Uint8Array.prototype.indexOf=="function"?y?Uint8Array.prototype.indexOf.call(l,i,a):Uint8Array.prototype.lastIndexOf.call(l,i,a):V(l,[i],a,c,y);throw new TypeError("val must be string, number or Buffer")}function V(l,i,a,c,y){let w=1,M=l.length,H=i.length;if(c!==void 0&&(c=String(c).toLowerCase(),c==="ucs2"||c==="ucs-2"||c==="utf16le"||c==="utf-16le")){if(l.length<2||i.length<2)return-1;w=2,M/=2,H/=2,a/=2}function te(re,K){return w===1?re[K]:re.readUInt16BE(K*w)}let Q;if(y){let re=-1;for(Q=a;Q<M;Q++)if(te(l,Q)===te(i,re===-1?0:Q-re)){if(re===-1&&(re=Q),Q-re+1===H)return re*w}else re!==-1&&(Q-=Q-re),re=-1}else for(a+H>M&&(a=M-H),Q=a;Q>=0;Q--){let re=!0;for(let K=0;K<H;K++)if(te(l,Q+K)!==te(i,K)){re=!1;break}if(re)return Q}return-1}f.prototype.includes=function(i,a,c){return this.indexOf(i,a,c)!==-1},f.prototype.indexOf=function(i,a,c){return U(this,i,a,c,!0)},f.prototype.lastIndexOf=function(i,a,c){return U(this,i,a,c,!1)};function T(l,i,a,c){a=Number(a)||0;const y=l.length-a;c?(c=Number(c),c>y&&(c=y)):c=y;const w=i.length;c>w/2&&(c=w/2);let M;for(M=0;M<c;++M){const H=parseInt(i.substr(M*2,2),16);if(De(H))return M;l[a+M]=H}return M}function k(l,i,a,c){return Ke(X(i,l.length-a),l,a,c)}function j(l,i,a,c){return Ke(Ce(i),l,a,c)}function G(l,i,a,c){return Ke(at(i),l,a,c)}function q(l,i,a,c){return Ke(Ve(i,l.length-a),l,a,c)}f.prototype.write=function(i,a,c,y){if(a===void 0)y="utf8",c=this.length,a=0;else if(c===void 0&&typeof a=="string")y=a,c=this.length,a=0;else if(isFinite(a))a=a>>>0,isFinite(c)?(c=c>>>0,y===void 0&&(y="utf8")):(y=c,c=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const w=this.length-a;if((c===void 0||c>w)&&(c=w),i.length>0&&(c<0||a<0)||a>this.length)throw new RangeError("Attempt to write outside buffer bounds");y||(y="utf8");let M=!1;for(;;)switch(y){case"hex":return T(this,i,a,c);case"utf8":case"utf-8":return k(this,i,a,c);case"ascii":case"latin1":case"binary":return j(this,i,a,c);case"base64":return G(this,i,a,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return q(this,i,a,c);default:if(M)throw new TypeError("Unknown encoding: "+y);y=(""+y).toLowerCase(),M=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Z(l,i,a){return i===0&&a===l.length?t.fromByteArray(l):t.fromByteArray(l.slice(i,a))}function de(l,i,a){a=Math.min(l.length,a);const c=[];let y=i;for(;y<a;){const w=l[y];let M=null,H=w>239?4:w>223?3:w>191?2:1;if(y+H<=a){let te,Q,re,K;switch(H){case 1:w<128&&(M=w);break;case 2:te=l[y+1],(te&192)===128&&(K=(w&31)<<6|te&63,K>127&&(M=K));break;case 3:te=l[y+1],Q=l[y+2],(te&192)===128&&(Q&192)===128&&(K=(w&15)<<12|(te&63)<<6|Q&63,K>2047&&(K<55296||K>57343)&&(M=K));break;case 4:te=l[y+1],Q=l[y+2],re=l[y+3],(te&192)===128&&(Q&192)===128&&(re&192)===128&&(K=(w&15)<<18|(te&63)<<12|(Q&63)<<6|re&63,K>65535&&K<1114112&&(M=K))}}M===null?(M=65533,H=1):M>65535&&(M-=65536,c.push(M>>>10&1023|55296),M=56320|M&1023),c.push(M),y+=H}return Be(c)}const ye=4096;function Be(l){const i=l.length;if(i<=ye)return String.fromCharCode.apply(String,l);let a="",c=0;for(;c<i;)a+=String.fromCharCode.apply(String,l.slice(c,c+=ye));return a}function be(l,i,a){let c="";a=Math.min(l.length,a);for(let y=i;y<a;++y)c+=String.fromCharCode(l[y]&127);return c}function je(l,i,a){let c="";a=Math.min(l.length,a);for(let y=i;y<a;++y)c+=String.fromCharCode(l[y]);return c}function pe(l,i,a){const c=l.length;(!i||i<0)&&(i=0),(!a||a<0||a>c)&&(a=c);let y="";for(let w=i;w<a;++w)y+=ot[l[w]];return y}function Ze(l,i,a){const c=l.slice(i,a);let y="";for(let w=0;w<c.length-1;w+=2)y+=String.fromCharCode(c[w]+c[w+1]*256);return y}f.prototype.slice=function(i,a){const c=this.length;i=~~i,a=a===void 0?c:~~a,i<0?(i+=c,i<0&&(i=0)):i>c&&(i=c),a<0?(a+=c,a<0&&(a=0)):a>c&&(a=c),a<i&&(a=i);const y=this.subarray(i,a);return Object.setPrototypeOf(y,f.prototype),y};function ee(l,i,a){if(l%1!==0||l<0)throw new RangeError("offset is not uint");if(l+i>a)throw new RangeError("Trying to access beyond buffer length")}f.prototype.readUintLE=f.prototype.readUIntLE=function(i,a,c){i=i>>>0,a=a>>>0,c||ee(i,a,this.length);let y=this[i],w=1,M=0;for(;++M<a&&(w*=256);)y+=this[i+M]*w;return y},f.prototype.readUintBE=f.prototype.readUIntBE=function(i,a,c){i=i>>>0,a=a>>>0,c||ee(i,a,this.length);let y=this[i+--a],w=1;for(;a>0&&(w*=256);)y+=this[i+--a]*w;return y},f.prototype.readUint8=f.prototype.readUInt8=function(i,a){return i=i>>>0,a||ee(i,1,this.length),this[i]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(i,a){return i=i>>>0,a||ee(i,2,this.length),this[i]|this[i+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(i,a){return i=i>>>0,a||ee(i,2,this.length),this[i]<<8|this[i+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),(this[i]|this[i+1]<<8|this[i+2]<<16)+this[i+3]*16777216},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),this[i]*16777216+(this[i+1]<<16|this[i+2]<<8|this[i+3])},f.prototype.readBigUInt64LE=me(function(i){i=i>>>0,A(i,"offset");const a=this[i],c=this[i+7];(a===void 0||c===void 0)&&C(i,this.length-8);const y=a+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24,w=this[++i]+this[++i]*2**8+this[++i]*2**16+c*2**24;return BigInt(y)+(BigInt(w)<<BigInt(32))}),f.prototype.readBigUInt64BE=me(function(i){i=i>>>0,A(i,"offset");const a=this[i],c=this[i+7];(a===void 0||c===void 0)&&C(i,this.length-8);const y=a*2**24+this[++i]*2**16+this[++i]*2**8+this[++i],w=this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+c;return(BigInt(y)<<BigInt(32))+BigInt(w)}),f.prototype.readIntLE=function(i,a,c){i=i>>>0,a=a>>>0,c||ee(i,a,this.length);let y=this[i],w=1,M=0;for(;++M<a&&(w*=256);)y+=this[i+M]*w;return w*=128,y>=w&&(y-=Math.pow(2,8*a)),y},f.prototype.readIntBE=function(i,a,c){i=i>>>0,a=a>>>0,c||ee(i,a,this.length);let y=a,w=1,M=this[i+--y];for(;y>0&&(w*=256);)M+=this[i+--y]*w;return w*=128,M>=w&&(M-=Math.pow(2,8*a)),M},f.prototype.readInt8=function(i,a){return i=i>>>0,a||ee(i,1,this.length),this[i]&128?(255-this[i]+1)*-1:this[i]},f.prototype.readInt16LE=function(i,a){i=i>>>0,a||ee(i,2,this.length);const c=this[i]|this[i+1]<<8;return c&32768?c|4294901760:c},f.prototype.readInt16BE=function(i,a){i=i>>>0,a||ee(i,2,this.length);const c=this[i+1]|this[i]<<8;return c&32768?c|4294901760:c},f.prototype.readInt32LE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),this[i]|this[i+1]<<8|this[i+2]<<16|this[i+3]<<24},f.prototype.readInt32BE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),this[i]<<24|this[i+1]<<16|this[i+2]<<8|this[i+3]},f.prototype.readBigInt64LE=me(function(i){i=i>>>0,A(i,"offset");const a=this[i],c=this[i+7];(a===void 0||c===void 0)&&C(i,this.length-8);const y=this[i+4]+this[i+5]*2**8+this[i+6]*2**16+(c<<24);return(BigInt(y)<<BigInt(32))+BigInt(a+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24)}),f.prototype.readBigInt64BE=me(function(i){i=i>>>0,A(i,"offset");const a=this[i],c=this[i+7];(a===void 0||c===void 0)&&C(i,this.length-8);const y=(a<<24)+this[++i]*2**16+this[++i]*2**8+this[++i];return(BigInt(y)<<BigInt(32))+BigInt(this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+c)}),f.prototype.readFloatLE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),r.read(this,i,!0,23,4)},f.prototype.readFloatBE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),r.read(this,i,!1,23,4)},f.prototype.readDoubleLE=function(i,a){return i=i>>>0,a||ee(i,8,this.length),r.read(this,i,!0,52,8)},f.prototype.readDoubleBE=function(i,a){return i=i>>>0,a||ee(i,8,this.length),r.read(this,i,!1,52,8)};function se(l,i,a,c,y,w){if(!f.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(i>y||i<w)throw new RangeError('"value" argument is out of bounds');if(a+c>l.length)throw new RangeError("Index out of range")}f.prototype.writeUintLE=f.prototype.writeUIntLE=function(i,a,c,y){if(i=+i,a=a>>>0,c=c>>>0,!y){const H=Math.pow(2,8*c)-1;se(this,i,a,c,H,0)}let w=1,M=0;for(this[a]=i&255;++M<c&&(w*=256);)this[a+M]=i/w&255;return a+c},f.prototype.writeUintBE=f.prototype.writeUIntBE=function(i,a,c,y){if(i=+i,a=a>>>0,c=c>>>0,!y){const H=Math.pow(2,8*c)-1;se(this,i,a,c,H,0)}let w=c-1,M=1;for(this[a+w]=i&255;--w>=0&&(M*=256);)this[a+w]=i/M&255;return a+c},f.prototype.writeUint8=f.prototype.writeUInt8=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,1,255,0),this[a]=i&255,a+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,2,65535,0),this[a]=i&255,this[a+1]=i>>>8,a+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,2,65535,0),this[a]=i>>>8,this[a+1]=i&255,a+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,4,4294967295,0),this[a+3]=i>>>24,this[a+2]=i>>>16,this[a+1]=i>>>8,this[a]=i&255,a+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,4,4294967295,0),this[a]=i>>>24,this[a+1]=i>>>16,this[a+2]=i>>>8,this[a+3]=i&255,a+4};function Me(l,i,a,c,y){v(i,c,y,l,a,7);let w=Number(i&BigInt(4294967295));l[a++]=w,w=w>>8,l[a++]=w,w=w>>8,l[a++]=w,w=w>>8,l[a++]=w;let M=Number(i>>BigInt(32)&BigInt(4294967295));return l[a++]=M,M=M>>8,l[a++]=M,M=M>>8,l[a++]=M,M=M>>8,l[a++]=M,a}function Xe(l,i,a,c,y){v(i,c,y,l,a,7);let w=Number(i&BigInt(4294967295));l[a+7]=w,w=w>>8,l[a+6]=w,w=w>>8,l[a+5]=w,w=w>>8,l[a+4]=w;let M=Number(i>>BigInt(32)&BigInt(4294967295));return l[a+3]=M,M=M>>8,l[a+2]=M,M=M>>8,l[a+1]=M,M=M>>8,l[a]=M,a+8}f.prototype.writeBigUInt64LE=me(function(i,a=0){return Me(this,i,a,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeBigUInt64BE=me(function(i,a=0){return Xe(this,i,a,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeIntLE=function(i,a,c,y){if(i=+i,a=a>>>0,!y){const te=Math.pow(2,8*c-1);se(this,i,a,c,te-1,-te)}let w=0,M=1,H=0;for(this[a]=i&255;++w<c&&(M*=256);)i<0&&H===0&&this[a+w-1]!==0&&(H=1),this[a+w]=(i/M>>0)-H&255;return a+c},f.prototype.writeIntBE=function(i,a,c,y){if(i=+i,a=a>>>0,!y){const te=Math.pow(2,8*c-1);se(this,i,a,c,te-1,-te)}let w=c-1,M=1,H=0;for(this[a+w]=i&255;--w>=0&&(M*=256);)i<0&&H===0&&this[a+w+1]!==0&&(H=1),this[a+w]=(i/M>>0)-H&255;return a+c},f.prototype.writeInt8=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,1,127,-128),i<0&&(i=255+i+1),this[a]=i&255,a+1},f.prototype.writeInt16LE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,2,32767,-32768),this[a]=i&255,this[a+1]=i>>>8,a+2},f.prototype.writeInt16BE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,2,32767,-32768),this[a]=i>>>8,this[a+1]=i&255,a+2},f.prototype.writeInt32LE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,4,2147483647,-2147483648),this[a]=i&255,this[a+1]=i>>>8,this[a+2]=i>>>16,this[a+3]=i>>>24,a+4},f.prototype.writeInt32BE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,4,2147483647,-2147483648),i<0&&(i=4294967295+i+1),this[a]=i>>>24,this[a+1]=i>>>16,this[a+2]=i>>>8,this[a+3]=i&255,a+4},f.prototype.writeBigInt64LE=me(function(i,a=0){return Me(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeBigInt64BE=me(function(i,a=0){return Xe(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ye(l,i,a,c,y,w){if(a+c>l.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("Index out of range")}function b(l,i,a,c,y){return i=+i,a=a>>>0,y||Ye(l,i,a,4),r.write(l,i,a,c,23,4),a+4}f.prototype.writeFloatLE=function(i,a,c){return b(this,i,a,!0,c)},f.prototype.writeFloatBE=function(i,a,c){return b(this,i,a,!1,c)};function _(l,i,a,c,y){return i=+i,a=a>>>0,y||Ye(l,i,a,8),r.write(l,i,a,c,52,8),a+8}f.prototype.writeDoubleLE=function(i,a,c){return _(this,i,a,!0,c)},f.prototype.writeDoubleBE=function(i,a,c){return _(this,i,a,!1,c)},f.prototype.copy=function(i,a,c,y){if(!f.isBuffer(i))throw new TypeError("argument should be a Buffer");if(c||(c=0),!y&&y!==0&&(y=this.length),a>=i.length&&(a=i.length),a||(a=0),y>0&&y<c&&(y=c),y===c||i.length===0||this.length===0)return 0;if(a<0)throw new RangeError("targetStart out of bounds");if(c<0||c>=this.length)throw new RangeError("Index out of range");if(y<0)throw new RangeError("sourceEnd out of bounds");y>this.length&&(y=this.length),i.length-a<y-c&&(y=i.length-a+c);const w=y-c;return this===i&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(a,c,y):Uint8Array.prototype.set.call(i,this.subarray(c,y),a),w},f.prototype.fill=function(i,a,c,y){if(typeof i=="string"){if(typeof a=="string"?(y=a,a=0,c=this.length):typeof c=="string"&&(y=c,c=this.length),y!==void 0&&typeof y!="string")throw new TypeError("encoding must be a string");if(typeof y=="string"&&!f.isEncoding(y))throw new TypeError("Unknown encoding: "+y);if(i.length===1){const M=i.charCodeAt(0);(y==="utf8"&&M<128||y==="latin1")&&(i=M)}}else typeof i=="number"?i=i&255:typeof i=="boolean"&&(i=Number(i));if(a<0||this.length<a||this.length<c)throw new RangeError("Out of range index");if(c<=a)return this;a=a>>>0,c=c===void 0?this.length:c>>>0,i||(i=0);let w;if(typeof i=="number")for(w=a;w<c;++w)this[w]=i;else{const M=f.isBuffer(i)?i:f.from(i,y),H=M.length;if(H===0)throw new TypeError('The value "'+i+'" is invalid for argument "value"');for(w=0;w<c-a;++w)this[w+a]=M[w%H]}return this};const I={};function $(l,i,a){I[l]=class extends a{constructor(){super(),Object.defineProperty(this,"message",{value:i.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${l}]`,this.stack,delete this.name}get code(){return l}set code(y){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:y,writable:!0})}toString(){return`${this.name} [${l}]: ${this.message}`}}}$("ERR_BUFFER_OUT_OF_BOUNDS",function(l){return l?`${l} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),$("ERR_INVALID_ARG_TYPE",function(l,i){return`The "${l}" argument must be of type number. Received type ${typeof i}`},TypeError),$("ERR_OUT_OF_RANGE",function(l,i,a){let c=`The value of "${l}" is out of range.`,y=a;return Number.isInteger(a)&&Math.abs(a)>2**32?y=z(String(a)):typeof a=="bigint"&&(y=String(a),(a>BigInt(2)**BigInt(32)||a<-(BigInt(2)**BigInt(32)))&&(y=z(y)),y+="n"),c+=` It must be ${i}. Received ${y}`,c},RangeError);function z(l){let i="",a=l.length;const c=l[0]==="-"?1:0;for(;a>=c+4;a-=3)i=`_${l.slice(a-3,a)}${i}`;return`${l.slice(0,a)}${i}`}function p(l,i,a){A(i,"offset"),(l[i]===void 0||l[i+a]===void 0)&&C(i,l.length-(a+1))}function v(l,i,a,c,y,w){if(l>a||l<i){const M=typeof i=="bigint"?"n":"";let H;throw w>3?i===0||i===BigInt(0)?H=`>= 0${M} and < 2${M} ** ${(w+1)*8}${M}`:H=`>= -(2${M} ** ${(w+1)*8-1}${M}) and < 2 ** ${(w+1)*8-1}${M}`:H=`>= ${i}${M} and <= ${a}${M}`,new I.ERR_OUT_OF_RANGE("value",H,l)}p(c,y,w)}function A(l,i){if(typeof l!="number")throw new I.ERR_INVALID_ARG_TYPE(i,"number",l)}function C(l,i,a){throw Math.floor(l)!==l?(A(l,a),new I.ERR_OUT_OF_RANGE(a||"offset","an integer",l)):i<0?new I.ERR_BUFFER_OUT_OF_BOUNDS:new I.ERR_OUT_OF_RANGE(a||"offset",`>= ${a?1:0} and <= ${i}`,l)}const J=/[^+/0-9A-Za-z-_]/g;function W(l){if(l=l.split("=")[0],l=l.trim().replace(J,""),l.length<2)return"";for(;l.length%4!==0;)l=l+"=";return l}function X(l,i){i=i||1/0;let a;const c=l.length;let y=null;const w=[];for(let M=0;M<c;++M){if(a=l.charCodeAt(M),a>55295&&a<57344){if(!y){if(a>56319){(i-=3)>-1&&w.push(239,191,189);continue}else if(M+1===c){(i-=3)>-1&&w.push(239,191,189);continue}y=a;continue}if(a<56320){(i-=3)>-1&&w.push(239,191,189),y=a;continue}a=(y-55296<<10|a-56320)+65536}else y&&(i-=3)>-1&&w.push(239,191,189);if(y=null,a<128){if((i-=1)<0)break;w.push(a)}else if(a<2048){if((i-=2)<0)break;w.push(a>>6|192,a&63|128)}else if(a<65536){if((i-=3)<0)break;w.push(a>>12|224,a>>6&63|128,a&63|128)}else if(a<1114112){if((i-=4)<0)break;w.push(a>>18|240,a>>12&63|128,a>>6&63|128,a&63|128)}else throw new Error("Invalid code point")}return w}function Ce(l){const i=[];for(let a=0;a<l.length;++a)i.push(l.charCodeAt(a)&255);return i}function Ve(l,i){let a,c,y;const w=[];for(let M=0;M<l.length&&!((i-=2)<0);++M)a=l.charCodeAt(M),c=a>>8,y=a%256,w.push(y),w.push(c);return w}function at(l){return t.toByteArray(W(l))}function Ke(l,i,a,c){let y;for(y=0;y<c&&!(y+a>=i.length||y>=l.length);++y)i[y+a]=l[y];return y}function ve(l,i){return l instanceof i||l!=null&&l.constructor!=null&&l.constructor.name!=null&&l.constructor.name===i.name}function De(l){return l!==l}const ot=function(){const l="0123456789abcdef",i=new Array(256);for(let a=0;a<16;++a){const c=a*16;for(let y=0;y<16;++y)i[c+y]=l[a]+l[y]}return i}();function me(l){return typeof BigInt>"u"?Ue:l}function Ue(){throw new Error("BigInt not supported")}})(it);var dr={exports:{}},tt=typeof Reflect=="object"?Reflect:null,Ir=tt&&typeof tt.apply=="function"?tt.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},dt;tt&&typeof tt.ownKeys=="function"?dt=tt.ownKeys:Object.getOwnPropertySymbols?dt=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:dt=function(t){return Object.getOwnPropertyNames(t)};function Pa(e){console&&console.warn&&console.warn(e)}var Xi=Number.isNaN||function(t){return t!==t};function Y(){Y.init.call(this)}dr.exports=Y;dr.exports.once=Ga;Y.EventEmitter=Y;Y.prototype._events=void 0;Y.prototype._eventsCount=0;Y.prototype._maxListeners=void 0;var Nr=10;function Rt(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Y,"defaultMaxListeners",{enumerable:!0,get:function(){return Nr},set:function(e){if(typeof e!="number"||e<0||Xi(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Nr=e}});Y.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Y.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Xi(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Yi(e){return e._maxListeners===void 0?Y.defaultMaxListeners:e._maxListeners}Y.prototype.getMaxListeners=function(){return Yi(this)};Y.prototype.emit=function(t){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var o=t==="error",s=this._events;if(s!==void 0)o=o&&s.error===void 0;else if(!o)return!1;if(o){var u;if(r.length>0&&(u=r[0]),u instanceof Error)throw u;var f=new Error("Unhandled error."+(u?" ("+u.message+")":""));throw f.context=u,f}var h=s[t];if(h===void 0)return!1;if(typeof h=="function")Ir(h,this,r);else for(var d=h.length,g=en(h,d),n=0;n<d;++n)Ir(g[n],this,r);return!0};function Vi(e,t,r,n){var o,s,u;if(Rt(r),s=e._events,s===void 0?(s=e._events=Object.create(null),e._eventsCount=0):(s.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),u=s[t]),u===void 0)u=s[t]=r,++e._eventsCount;else if(typeof u=="function"?u=s[t]=n?[r,u]:[u,r]:n?u.unshift(r):u.push(r),o=Yi(e),o>0&&u.length>o&&!u.warned){u.warned=!0;var f=new Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");f.name="MaxListenersExceededWarning",f.emitter=e,f.type=t,f.count=u.length,Pa(f)}return e}Y.prototype.addListener=function(t,r){return Vi(this,t,r,!1)};Y.prototype.on=Y.prototype.addListener;Y.prototype.prependListener=function(t,r){return Vi(this,t,r,!0)};function $a(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Ki(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=$a.bind(n);return o.listener=r,n.wrapFn=o,o}Y.prototype.once=function(t,r){return Rt(r),this.on(t,Ki(this,t,r)),this};Y.prototype.prependOnceListener=function(t,r){return Rt(r),this.prependListener(t,Ki(this,t,r)),this};Y.prototype.removeListener=function(t,r){var n,o,s,u,f;if(Rt(r),o=this._events,o===void 0)return this;if(n=o[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete o[t],o.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(s=-1,u=n.length-1;u>=0;u--)if(n[u]===r||n[u].listener===r){f=n[u].listener,s=u;break}if(s<0)return this;s===0?n.shift():Da(n,s),n.length===1&&(o[t]=n[0]),o.removeListener!==void 0&&this.emit("removeListener",t,f||r)}return this};Y.prototype.off=Y.prototype.removeListener;Y.prototype.removeAllListeners=function(t){var r,n,o;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var s=Object.keys(n),u;for(o=0;o<s.length;++o)u=s[o],u!=="removeListener"&&this.removeAllListeners(u);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(o=r.length-1;o>=0;o--)this.removeListener(t,r[o]);return this};function Ji(e,t,r){var n=e._events;if(n===void 0)return[];var o=n[t];return o===void 0?[]:typeof o=="function"?r?[o.listener||o]:[o]:r?Ua(o):en(o,o.length)}Y.prototype.listeners=function(t){return Ji(this,t,!0)};Y.prototype.rawListeners=function(t){return Ji(this,t,!1)};Y.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Qi.call(e,t)};Y.prototype.listenerCount=Qi;function Qi(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}Y.prototype.eventNames=function(){return this._eventsCount>0?dt(this._events):[]};function en(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function Da(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function Ua(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function Ga(e,t){return new Promise(function(r,n){function o(u){e.removeListener(t,s),n(u)}function s(){typeof e.removeListener=="function"&&e.removeListener("error",o),r([].slice.call(arguments))}tn(e,t,s,{once:!0}),t!=="error"&&qa(e,o,{once:!0})})}function qa(e,t,r){typeof e.on=="function"&&tn(e,"error",t,r)}function tn(e,t,r,n){if(typeof e.on=="function")n.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function o(s){n.once&&e.removeEventListener(t,o),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var pr=dr.exports;const za=hr(pr);var vr={};/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */(function(e){(function(t){t(typeof DO_NOT_EXPORT_CRC>"u"?e:{})})(function(t){t.version="1.2.2";function r(){for(var T=0,k=new Array(256),j=0;j!=256;++j)T=j,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,k[j]=T;return typeof Int32Array<"u"?new Int32Array(k):k}var n=r();function o(T){var k=0,j=0,G=0,q=typeof Int32Array<"u"?new Int32Array(4096):new Array(4096);for(G=0;G!=256;++G)q[G]=T[G];for(G=0;G!=256;++G)for(j=T[G],k=256+G;k<4096;k+=256)j=q[k]=j>>>8^T[j&255];var Z=[];for(G=1;G!=16;++G)Z[G-1]=typeof Int32Array<"u"?q.subarray(G*256,G*256+256):q.slice(G*256,G*256+256);return Z}var s=o(n),u=s[0],f=s[1],h=s[2],d=s[3],g=s[4],m=s[5],x=s[6],S=s[7],E=s[8],R=s[9],B=s[10],N=s[11],P=s[12],O=s[13],L=s[14];function F(T,k){for(var j=k^-1,G=0,q=T.length;G<q;)j=j>>>8^n[(j^T.charCodeAt(G++))&255];return~j}function U(T,k){for(var j=k^-1,G=T.length-15,q=0;q<G;)j=L[T[q++]^j&255]^O[T[q++]^j>>8&255]^P[T[q++]^j>>16&255]^N[T[q++]^j>>>24]^B[T[q++]]^R[T[q++]]^E[T[q++]]^S[T[q++]]^x[T[q++]]^m[T[q++]]^g[T[q++]]^d[T[q++]]^h[T[q++]]^f[T[q++]]^u[T[q++]]^n[T[q++]];for(G+=15;q<G;)j=j>>>8^n[(j^T[q++])&255];return~j}function V(T,k){for(var j=k^-1,G=0,q=T.length,Z=0,de=0;G<q;)Z=T.charCodeAt(G++),Z<128?j=j>>>8^n[(j^Z)&255]:Z<2048?(j=j>>>8^n[(j^(192|Z>>6&31))&255],j=j>>>8^n[(j^(128|Z&63))&255]):Z>=55296&&Z<57344?(Z=(Z&1023)+64,de=T.charCodeAt(G++)&1023,j=j>>>8^n[(j^(240|Z>>8&7))&255],j=j>>>8^n[(j^(128|Z>>2&63))&255],j=j>>>8^n[(j^(128|de>>6&15|(Z&3)<<4))&255],j=j>>>8^n[(j^(128|de&63))&255]):(j=j>>>8^n[(j^(224|Z>>12&15))&255],j=j>>>8^n[(j^(128|Z>>6&63))&255],j=j>>>8^n[(j^(128|Z&63))&255]);return~j}t.table=n,t.bstr=F,t.buf=U,t.str=V})})(vr);let fe=new Uint8Array(4),rn=new Int32Array(fe.buffer),nn=new Uint32Array(fe.buffer);function Wa(e,t,r){var n=[],o=e.length;if(o===0)return n;var s=t<0?Math.max(0,t+o):t||0;for(r!==void 0&&(o=r<0?r+o:r);o-- >s;)n[o-s]=e[o];return n}function Ha(e,t,r="tEXt"){if(e=String(e),t=String(t),t.length&&(!/^[\x00-\xFF]+$/.test(e)||!/^[\x00-\xFF]+$/.test(t)))throw new Error("Only Latin-1 characters are permitted in PNG tEXt chunks. You might want to consider base64 encoding and/or zEXt compression");if(e.length>=80)throw new Error('Keyword "'+e+'" is longer than the 79-character limit imposed by the PNG specification');let n=e.length+t.length+1,o=new Uint8Array(n),s=0,u;for(let f=0;f<e.length;f++){if(!(u=e.charCodeAt(f)))throw new Error("0x00 character is not permitted in tEXt keywords");o[s++]=u}o[s++]=0;for(let f=0;f<t.length;f++){if(!(u=t.charCodeAt(f)))throw new Error("0x00 character is not permitted in tEXt content");o[s++]=u}return{name:r,data:o}}function Za(e){if(e[0]!==137)throw new Error("Invalid .png file header");if(e[1]!==80)throw new Error("Invalid .png file header");if(e[2]!==78)throw new Error("Invalid .png file header");if(e[3]!==71)throw new Error("Invalid .png file header");if(e[4]!==13)throw new Error("Invalid .png file header: possibly caused by DOS-Unix line ending conversion?");if(e[5]!==10)throw new Error("Invalid .png file header: possibly caused by DOS-Unix line ending conversion?");if(e[6]!==26)throw new Error("Invalid .png file header");if(e[7]!==10)throw new Error("Invalid .png file header: possibly caused by DOS-Unix line ending conversion?");let t=!1,r=[],n=8;for(;n<e.length;){fe[3]=e[n++],fe[2]=e[n++],fe[1]=e[n++],fe[0]=e[n++];let o=nn[0]+4,s=new Uint8Array(o);s[0]=e[n++],s[1]=e[n++],s[2]=e[n++],s[3]=e[n++];let u=String.fromCharCode(s[0])+String.fromCharCode(s[1])+String.fromCharCode(s[2])+String.fromCharCode(s[3]);if(!r.length&&u!=="IHDR")throw new Error("IHDR header missing");if(u==="IEND"){t=!0,r.push({name:u,data:new Uint8Array(0)});break}for(let g=4;g<o;g++)s[g]=e[n++];fe[3]=e[n++],fe[2]=e[n++],fe[1]=e[n++],fe[0]=e[n++];let f=rn[0];if(vr.buf(s)!==f)throw new Error("CRC values for "+u+" header do not match, PNG file is likely corrupted");let d=new Uint8Array(s.buffer.slice(4));r.push({name:u,data:d})}if(!t)throw new Error(".png file ended prematurely: no IEND header was found");return r}function Xa(e){let t=8,r=t,n;for(n=0;n<e.length;n++)t+=e[n].data.length,t+=12;let o=new Uint8Array(t);for(o[0]=137,o[1]=80,o[2]=78,o[3]=71,o[4]=13,o[5]=10,o[6]=26,o[7]=10,n=0;n<e.length;n++){let s=e[n],u=s.name,f=s.data,h=f.length,d=[u.charCodeAt(0),u.charCodeAt(1),u.charCodeAt(2),u.charCodeAt(3)];nn[0]=h,o[r++]=fe[3],o[r++]=fe[2],o[r++]=fe[1],o[r++]=fe[0],o[r++]=d[0],o[r++]=d[1],o[r++]=d[2],o[r++]=d[3];for(let m=0;m<h;)o[r++]=f[m++];let g=d.concat(Wa(f));rn[0]=vr.buf(g),o[r++]=fe[3],o[r++]=fe[2],o[r++]=fe[1],o[r++]=fe[0]}return o}function Lr(e,t,r){e[r]=(t&4278190080)>>24,e[r+1]=(t&16711680)>>16,e[r+2]=(t&65280)>>8,e[r+3]=t&255}function Ya(e,t){const r=Za(e);return Ka(r,t),new Buffer.from(Xa(r))}async function Va(e,t){let r=await e.arrayBuffer(),n=new Uint8Array(r),o=await Ya(n,t);return new Blob([o],{type:e.type})}function Ka(e,t){if(t.clear)for(let n=e.length-1;n--;)switch(e[n].name){case"IHDR":case"IDAT":case"IEND":break;default:e.splice(n,1)}if(t.tEXt)for(var r in t.tEXt)e.splice(-1,0,Ha(r,t.tEXt[r]));if(t.pHYs){const n=new Uint8Array(9);Lr(n,t.pHYs.x,0),Lr(n,t.pHYs.y,4),n[8]=t.pHYs.units;let o=e.find(s=>s.name==="pHYs");o?o.data=n:e.splice(1,0,{name:"pHYs",data:n})}console.log(t),console.log("DONE")}var St={exports:{}},gr="_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",an="-0123456789"+gr,Ja=new RegExp("^[^"+gr+"]|[^\\"+an+"]","g"),Qa=12,eo={random:on,sanitize:sn,ensure:to};function on(e){return e=e||Qa,jr(1,gr)+jr(e-1,an)}function sn(e){return e.replace(Ja,"_")}function to(e,t){return typeof e=="string"?sn(e):on(t)}function jr(e,t){for(var r=t.length,n="";e>0;)e--,n+=t[Math.floor(Math.random()*r)];return n}var ro=typeof ne=="object"&&ne&&ne.Object===Object&&ne,io=typeof self=="object"&&self&&self.Object===Object&&self,no=ro||io||Function("return this")(),ao=no.isFinite;function oo(e){return typeof e=="number"&&ao(e)}var lt=oo,yt={},Zt={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(e,t){var r=it,n=r.Buffer;function o(u,f){for(var h in u)f[h]=u[h]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=s);function s(u,f,h){return n(u,f,h)}s.prototype=Object.create(n.prototype),o(n,s),s.from=function(u,f,h){if(typeof u=="number")throw new TypeError("Argument must not be a number");return n(u,f,h)},s.alloc=function(u,f,h){if(typeof u!="number")throw new TypeError("Argument must be a number");var d=n(u);return f!==void 0?typeof h=="string"?d.fill(f,h):d.fill(f):d.fill(0),d},s.allocUnsafe=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return n(u)},s.allocUnsafeSlow=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(u)}})(Zt,Zt.exports);var so=Zt.exports,yr=so.Buffer,Cr=yr.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function fo(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function uo(e){var t=fo(e);if(typeof t!="string"&&(yr.isEncoding===Cr||!Cr(e)))throw new Error("Unknown encoding: "+e);return t||e}yt.StringDecoder=ht;function ht(e){this.encoding=uo(e);var t;switch(this.encoding){case"utf16le":this.text=go,this.end=yo,t=4;break;case"utf8":this.fillLast=co,t=4;break;case"base64":this.text=mo,this.end=_o,t=3;break;default:this.write=wo,this.end=bo;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=yr.allocUnsafe(t)}ht.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""};ht.prototype.end=vo;ht.prototype.text=po;ht.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function jt(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function lo(e,t,r){var n=t.length-1;if(n<r)return 0;var o=jt(t[n]);return o>=0?(o>0&&(e.lastNeed=o-1),o):--n<r||o===-2?0:(o=jt(t[n]),o>=0?(o>0&&(e.lastNeed=o-2),o):--n<r||o===-2?0:(o=jt(t[n]),o>=0?(o>0&&(o===2?o=0:e.lastNeed=o-3),o):0))}function ho(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function co(e){var t=this.lastTotal-this.lastNeed,r=ho(this,e);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function po(e,t){var r=lo(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function vo(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function go(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function yo(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function mo(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function _o(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function wo(e){return e.toString(this.encoding)}function bo(e){return e&&e.length?this.write(e):""}var Xt={exports:{}};typeof Object.create=="function"?Xt.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Xt.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}};var ke=Xt.exports,Yt={exports:{}},fn=pr.EventEmitter;const xo={},Eo=Object.freeze(Object.defineProperty({__proto__:null,default:xo},Symbol.toStringTag,{value:"Module"})),un=Ra(Eo);var Ct,Or;function Mo(){if(Or)return Ct;Or=1;function e(E,R){var B=Object.keys(E);if(Object.getOwnPropertySymbols){var N=Object.getOwnPropertySymbols(E);R&&(N=N.filter(function(P){return Object.getOwnPropertyDescriptor(E,P).enumerable})),B.push.apply(B,N)}return B}function t(E){for(var R=1;R<arguments.length;R++){var B=arguments[R]!=null?arguments[R]:{};R%2?e(Object(B),!0).forEach(function(N){r(E,N,B[N])}):Object.getOwnPropertyDescriptors?Object.defineProperties(E,Object.getOwnPropertyDescriptors(B)):e(Object(B)).forEach(function(N){Object.defineProperty(E,N,Object.getOwnPropertyDescriptor(B,N))})}return E}function r(E,R,B){return R=u(R),R in E?Object.defineProperty(E,R,{value:B,enumerable:!0,configurable:!0,writable:!0}):E[R]=B,E}function n(E,R){if(!(E instanceof R))throw new TypeError("Cannot call a class as a function")}function o(E,R){for(var B=0;B<R.length;B++){var N=R[B];N.enumerable=N.enumerable||!1,N.configurable=!0,"value"in N&&(N.writable=!0),Object.defineProperty(E,u(N.key),N)}}function s(E,R,B){return R&&o(E.prototype,R),B&&o(E,B),Object.defineProperty(E,"prototype",{writable:!1}),E}function u(E){var R=f(E,"string");return typeof R=="symbol"?R:String(R)}function f(E,R){if(typeof E!="object"||E===null)return E;var B=E[Symbol.toPrimitive];if(B!==void 0){var N=B.call(E,R||"default");if(typeof N!="object")return N;throw new TypeError("@@toPrimitive must return a primitive value.")}return(R==="string"?String:Number)(E)}var h=it,d=h.Buffer,g=un,m=g.inspect,x=m&&m.custom||"inspect";function S(E,R,B){d.prototype.copy.call(E,R,B)}return Ct=function(){function E(){n(this,E),this.head=null,this.tail=null,this.length=0}return s(E,[{key:"push",value:function(B){var N={data:B,next:null};this.length>0?this.tail.next=N:this.head=N,this.tail=N,++this.length}},{key:"unshift",value:function(B){var N={data:B,next:this.head};this.length===0&&(this.tail=N),this.head=N,++this.length}},{key:"shift",value:function(){if(this.length!==0){var B=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,B}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(B){if(this.length===0)return"";for(var N=this.head,P=""+N.data;N=N.next;)P+=B+N.data;return P}},{key:"concat",value:function(B){if(this.length===0)return d.alloc(0);for(var N=d.allocUnsafe(B>>>0),P=this.head,O=0;P;)S(P.data,N,O),O+=P.data.length,P=P.next;return N}},{key:"consume",value:function(B,N){var P;return B<this.head.data.length?(P=this.head.data.slice(0,B),this.head.data=this.head.data.slice(B)):B===this.head.data.length?P=this.shift():P=N?this._getString(B):this._getBuffer(B),P}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(B){var N=this.head,P=1,O=N.data;for(B-=O.length;N=N.next;){var L=N.data,F=B>L.length?L.length:B;if(F===L.length?O+=L:O+=L.slice(0,B),B-=F,B===0){F===L.length?(++P,N.next?this.head=N.next:this.head=this.tail=null):(this.head=N,N.data=L.slice(F));break}++P}return this.length-=P,O}},{key:"_getBuffer",value:function(B){var N=d.allocUnsafe(B),P=this.head,O=1;for(P.data.copy(N),B-=P.data.length;P=P.next;){var L=P.data,F=B>L.length?L.length:B;if(L.copy(N,N.length-B,0,F),B-=F,B===0){F===L.length?(++O,P.next?this.head=P.next:this.head=this.tail=null):(this.head=P,P.data=L.slice(F));break}++O}return this.length-=O,N}},{key:x,value:function(B,N){return m(this,t(t({},N),{},{depth:0,customInspect:!1}))}}]),E}(),Ct}function Ro(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return n||o?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Vt,this,e)):process.nextTick(Vt,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(pt,r):(r._writableState.errorEmitted=!0,process.nextTick(Fr,r,s)):process.nextTick(Fr,r,s):t?(process.nextTick(pt,r),t(s)):process.nextTick(pt,r)}),this)}function Fr(e,t){Vt(e,t),pt(e)}function pt(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function So(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Vt(e,t){e.emit("error",t)}function To(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}var ln={destroy:Ro,undestroy:So,errorOrDestroy:To},He={};function Ao(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var hn={};function we(e,t,r){r||(r=Error);function n(s,u,f){return typeof t=="string"?t:t(s,u,f)}var o=function(s){Ao(u,s);function u(f,h,d){return s.call(this,n(f,h,d))||this}return u}(r);o.prototype.name=r.name,o.prototype.code=e,hn[e]=o}function kr(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(n){return String(n)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function Bo(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function Io(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function No(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}we("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);we("ERR_INVALID_ARG_TYPE",function(e,t,r){var n;typeof t=="string"&&Bo(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";var o;if(Io(e," argument"))o="The ".concat(e," ").concat(n," ").concat(kr(t,"type"));else{var s=No(e,".")?"property":"argument";o='The "'.concat(e,'" ').concat(s," ").concat(n," ").concat(kr(t,"type"))}return o+=". Received type ".concat(typeof r),o},TypeError);we("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");we("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});we("ERR_STREAM_PREMATURE_CLOSE","Premature close");we("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});we("ERR_MULTIPLE_CALLBACK","Callback called multiple times");we("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");we("ERR_STREAM_WRITE_AFTER_END","write after end");we("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);we("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);we("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");He.codes=hn;var Lo=He.codes.ERR_INVALID_OPT_VALUE;function jo(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function Co(e,t,r,n){var o=jo(t,n,r);if(o!=null){if(!(isFinite(o)&&Math.floor(o)===o)||o<0){var s=n?r:"highWaterMark";throw new Lo(s,o)}return Math.floor(o)}return e.objectMode?16:16*1024}var cn={getHighWaterMark:Co},Oo=Fo;function Fo(e,t){if(Ot("noDeprecation"))return e;var r=!1;function n(){if(!r){if(Ot("throwDeprecation"))throw new Error(t);Ot("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return n}function Ot(e){try{if(!ne.localStorage)return!1}catch{return!1}var t=ne.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}var Ft,Pr;function dn(){if(Pr)return Ft;Pr=1,Ft=T;function e(b){var _=this;this.next=null,this.entry=null,this.finish=function(){Ye(_,b)}}var t;T.WritableState=U;var r={deprecate:Oo},n=fn,o=it.Buffer,s=(typeof ne<"u"?ne:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(b){return o.from(b)}function f(b){return o.isBuffer(b)||b instanceof s}var h=ln,d=cn,g=d.getHighWaterMark,m=He.codes,x=m.ERR_INVALID_ARG_TYPE,S=m.ERR_METHOD_NOT_IMPLEMENTED,E=m.ERR_MULTIPLE_CALLBACK,R=m.ERR_STREAM_CANNOT_PIPE,B=m.ERR_STREAM_DESTROYED,N=m.ERR_STREAM_NULL_VALUES,P=m.ERR_STREAM_WRITE_AFTER_END,O=m.ERR_UNKNOWN_ENCODING,L=h.errorOrDestroy;ke(T,n);function F(){}function U(b,_,I){t=t||rt(),b=b||{},typeof I!="boolean"&&(I=_ instanceof t),this.objectMode=!!b.objectMode,I&&(this.objectMode=this.objectMode||!!b.writableObjectMode),this.highWaterMark=g(this,b,"writableHighWaterMark",I),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var $=b.decodeStrings===!1;this.decodeStrings=!$,this.defaultEncoding=b.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(z){Be(_,z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}U.prototype.getBuffer=function(){for(var _=this.bufferedRequest,I=[];_;)I.push(_),_=_.next;return I},function(){try{Object.defineProperty(U.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var V;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(V=Function.prototype[Symbol.hasInstance],Object.defineProperty(T,Symbol.hasInstance,{value:function(_){return V.call(this,_)?!0:this!==T?!1:_&&_._writableState instanceof U}})):V=function(_){return _ instanceof this};function T(b){t=t||rt();var _=this instanceof t;if(!_&&!V.call(T,this))return new T(b);this._writableState=new U(b,this,_),this.writable=!0,b&&(typeof b.write=="function"&&(this._write=b.write),typeof b.writev=="function"&&(this._writev=b.writev),typeof b.destroy=="function"&&(this._destroy=b.destroy),typeof b.final=="function"&&(this._final=b.final)),n.call(this)}T.prototype.pipe=function(){L(this,new R)};function k(b,_){var I=new P;L(b,I),process.nextTick(_,I)}function j(b,_,I,$){var z;return I===null?z=new N:typeof I!="string"&&!_.objectMode&&(z=new x("chunk",["string","Buffer"],I)),z?(L(b,z),process.nextTick($,z),!1):!0}T.prototype.write=function(b,_,I){var $=this._writableState,z=!1,p=!$.objectMode&&f(b);return p&&!o.isBuffer(b)&&(b=u(b)),typeof _=="function"&&(I=_,_=null),p?_="buffer":_||(_=$.defaultEncoding),typeof I!="function"&&(I=F),$.ending?k(this,I):(p||j(this,$,b,I))&&($.pendingcb++,z=q(this,$,p,b,_,I)),z},T.prototype.cork=function(){this._writableState.corked++},T.prototype.uncork=function(){var b=this._writableState;b.corked&&(b.corked--,!b.writing&&!b.corked&&!b.bufferProcessing&&b.bufferedRequest&&pe(this,b))},T.prototype.setDefaultEncoding=function(_){if(typeof _=="string"&&(_=_.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((_+"").toLowerCase())>-1))throw new O(_);return this._writableState.defaultEncoding=_,this},Object.defineProperty(T.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function G(b,_,I){return!b.objectMode&&b.decodeStrings!==!1&&typeof _=="string"&&(_=o.from(_,I)),_}Object.defineProperty(T.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function q(b,_,I,$,z,p){if(!I){var v=G(_,$,z);$!==v&&(I=!0,z="buffer",$=v)}var A=_.objectMode?1:$.length;_.length+=A;var C=_.length<_.highWaterMark;if(C||(_.needDrain=!0),_.writing||_.corked){var J=_.lastBufferedRequest;_.lastBufferedRequest={chunk:$,encoding:z,isBuf:I,callback:p,next:null},J?J.next=_.lastBufferedRequest:_.bufferedRequest=_.lastBufferedRequest,_.bufferedRequestCount+=1}else Z(b,_,!1,A,$,z,p);return C}function Z(b,_,I,$,z,p,v){_.writelen=$,_.writecb=v,_.writing=!0,_.sync=!0,_.destroyed?_.onwrite(new B("write")):I?b._writev(z,_.onwrite):b._write(z,p,_.onwrite),_.sync=!1}function de(b,_,I,$,z){--_.pendingcb,I?(process.nextTick(z,$),process.nextTick(Me,b,_),b._writableState.errorEmitted=!0,L(b,$)):(z($),b._writableState.errorEmitted=!0,L(b,$),Me(b,_))}function ye(b){b.writing=!1,b.writecb=null,b.length-=b.writelen,b.writelen=0}function Be(b,_){var I=b._writableState,$=I.sync,z=I.writecb;if(typeof z!="function")throw new E;if(ye(I),_)de(b,I,$,_,z);else{var p=Ze(I)||b.destroyed;!p&&!I.corked&&!I.bufferProcessing&&I.bufferedRequest&&pe(b,I),$?process.nextTick(be,b,I,p,z):be(b,I,p,z)}}function be(b,_,I,$){I||je(b,_),_.pendingcb--,$(),Me(b,_)}function je(b,_){_.length===0&&_.needDrain&&(_.needDrain=!1,b.emit("drain"))}function pe(b,_){_.bufferProcessing=!0;var I=_.bufferedRequest;if(b._writev&&I&&I.next){var $=_.bufferedRequestCount,z=new Array($),p=_.corkedRequestsFree;p.entry=I;for(var v=0,A=!0;I;)z[v]=I,I.isBuf||(A=!1),I=I.next,v+=1;z.allBuffers=A,Z(b,_,!0,_.length,z,"",p.finish),_.pendingcb++,_.lastBufferedRequest=null,p.next?(_.corkedRequestsFree=p.next,p.next=null):_.corkedRequestsFree=new e(_),_.bufferedRequestCount=0}else{for(;I;){var C=I.chunk,J=I.encoding,W=I.callback,X=_.objectMode?1:C.length;if(Z(b,_,!1,X,C,J,W),I=I.next,_.bufferedRequestCount--,_.writing)break}I===null&&(_.lastBufferedRequest=null)}_.bufferedRequest=I,_.bufferProcessing=!1}T.prototype._write=function(b,_,I){I(new S("_write()"))},T.prototype._writev=null,T.prototype.end=function(b,_,I){var $=this._writableState;return typeof b=="function"?(I=b,b=null,_=null):typeof _=="function"&&(I=_,_=null),b!=null&&this.write(b,_),$.corked&&($.corked=1,this.uncork()),$.ending||Xe(this,$,I),this},Object.defineProperty(T.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ze(b){return b.ending&&b.length===0&&b.bufferedRequest===null&&!b.finished&&!b.writing}function ee(b,_){b._final(function(I){_.pendingcb--,I&&L(b,I),_.prefinished=!0,b.emit("prefinish"),Me(b,_)})}function se(b,_){!_.prefinished&&!_.finalCalled&&(typeof b._final=="function"&&!_.destroyed?(_.pendingcb++,_.finalCalled=!0,process.nextTick(ee,b,_)):(_.prefinished=!0,b.emit("prefinish")))}function Me(b,_){var I=Ze(_);if(I&&(se(b,_),_.pendingcb===0&&(_.finished=!0,b.emit("finish"),_.autoDestroy))){var $=b._readableState;(!$||$.autoDestroy&&$.endEmitted)&&b.destroy()}return I}function Xe(b,_,I){_.ending=!0,Me(b,_),I&&(_.finished?process.nextTick(I):b.once("finish",I)),_.ended=!0,b.writable=!1}function Ye(b,_,I){var $=b.entry;for(b.entry=null;$;){var z=$.callback;_.pendingcb--,z(I),$=$.next}_.corkedRequestsFree.next=b}return Object.defineProperty(T.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(_){this._writableState&&(this._writableState.destroyed=_)}}),T.prototype.destroy=h.destroy,T.prototype._undestroy=h.undestroy,T.prototype._destroy=function(b,_){_(b)},Ft}var kt,$r;function rt(){if($r)return kt;$r=1;var e=Object.keys||function(d){var g=[];for(var m in d)g.push(m);return g};kt=u;var t=vn(),r=dn();ke(u,t);for(var n=e(r.prototype),o=0;o<n.length;o++){var s=n[o];u.prototype[s]||(u.prototype[s]=r.prototype[s])}function u(d){if(!(this instanceof u))return new u(d);t.call(this,d),r.call(this,d),this.allowHalfOpen=!0,d&&(d.readable===!1&&(this.readable=!1),d.writable===!1&&(this.writable=!1),d.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",f)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function f(){this._writableState.ended||process.nextTick(h,this)}function h(d){d.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(g){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=g,this._writableState.destroyed=g)}}),kt}var Dr=He.codes.ERR_STREAM_PREMATURE_CLOSE;function ko(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];e.apply(this,n)}}}function Po(){}function $o(e){return e.setHeader&&typeof e.abort=="function"}function pn(e,t,r){if(typeof t=="function")return pn(e,null,t);t||(t={}),r=ko(r||Po);var n=t.readable||t.readable!==!1&&e.readable,o=t.writable||t.writable!==!1&&e.writable,s=function(){e.writable||f()},u=e._writableState&&e._writableState.finished,f=function(){o=!1,u=!0,n||r.call(e)},h=e._readableState&&e._readableState.endEmitted,d=function(){n=!1,h=!0,o||r.call(e)},g=function(E){r.call(e,E)},m=function(){var E;if(n&&!h)return(!e._readableState||!e._readableState.ended)&&(E=new Dr),r.call(e,E);if(o&&!u)return(!e._writableState||!e._writableState.ended)&&(E=new Dr),r.call(e,E)},x=function(){e.req.on("finish",f)};return $o(e)?(e.on("complete",f),e.on("abort",m),e.req?x():e.on("request",x)):o&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",d),e.on("finish",f),t.error!==!1&&e.on("error",g),e.on("close",m),function(){e.removeListener("complete",f),e.removeListener("abort",m),e.removeListener("request",x),e.req&&e.req.removeListener("finish",f),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",f),e.removeListener("end",d),e.removeListener("error",g),e.removeListener("close",m)}}var mr=pn,Pt,Ur;function Do(){if(Ur)return Pt;Ur=1;var e;function t(O,L,F){return L=r(L),L in O?Object.defineProperty(O,L,{value:F,enumerable:!0,configurable:!0,writable:!0}):O[L]=F,O}function r(O){var L=n(O,"string");return typeof L=="symbol"?L:String(L)}function n(O,L){if(typeof O!="object"||O===null)return O;var F=O[Symbol.toPrimitive];if(F!==void 0){var U=F.call(O,L||"default");if(typeof U!="object")return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return(L==="string"?String:Number)(O)}var o=mr,s=Symbol("lastResolve"),u=Symbol("lastReject"),f=Symbol("error"),h=Symbol("ended"),d=Symbol("lastPromise"),g=Symbol("handlePromise"),m=Symbol("stream");function x(O,L){return{value:O,done:L}}function S(O){var L=O[s];if(L!==null){var F=O[m].read();F!==null&&(O[d]=null,O[s]=null,O[u]=null,L(x(F,!1)))}}function E(O){process.nextTick(S,O)}function R(O,L){return function(F,U){O.then(function(){if(L[h]){F(x(void 0,!0));return}L[g](F,U)},U)}}var B=Object.getPrototypeOf(function(){}),N=Object.setPrototypeOf((e={get stream(){return this[m]},next:function(){var L=this,F=this[f];if(F!==null)return Promise.reject(F);if(this[h])return Promise.resolve(x(void 0,!0));if(this[m].destroyed)return new Promise(function(k,j){process.nextTick(function(){L[f]?j(L[f]):k(x(void 0,!0))})});var U=this[d],V;if(U)V=new Promise(R(U,this));else{var T=this[m].read();if(T!==null)return Promise.resolve(x(T,!1));V=new Promise(this[g])}return this[d]=V,V}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var L=this;return new Promise(function(F,U){L[m].destroy(null,function(V){if(V){U(V);return}F(x(void 0,!0))})})}),e),B),P=function(L){var F,U=Object.create(N,(F={},t(F,m,{value:L,writable:!0}),t(F,s,{value:null,writable:!0}),t(F,u,{value:null,writable:!0}),t(F,f,{value:null,writable:!0}),t(F,h,{value:L._readableState.endEmitted,writable:!0}),t(F,g,{value:function(T,k){var j=U[m].read();j?(U[d]=null,U[s]=null,U[u]=null,T(x(j,!1))):(U[s]=T,U[u]=k)},writable:!0}),F));return U[d]=null,o(L,function(V){if(V&&V.code!=="ERR_STREAM_PREMATURE_CLOSE"){var T=U[u];T!==null&&(U[d]=null,U[s]=null,U[u]=null,T(V)),U[f]=V;return}var k=U[s];k!==null&&(U[d]=null,U[s]=null,U[u]=null,k(x(void 0,!0))),U[h]=!0}),L.on("readable",E.bind(null,U)),U};return Pt=P,Pt}var $t,Gr;function Uo(){return Gr||(Gr=1,$t=function(){throw new Error("Readable.from is not available in the browser")}),$t}var Dt,qr;function vn(){if(qr)return Dt;qr=1,Dt=k;var e;k.ReadableState=T,pr.EventEmitter;var t=function(v,A){return v.listeners(A).length},r=fn,n=it.Buffer,o=(typeof ne<"u"?ne:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(p){return n.from(p)}function u(p){return n.isBuffer(p)||p instanceof o}var f=un,h;f&&f.debuglog?h=f.debuglog("stream"):h=function(){};var d=Mo(),g=ln,m=cn,x=m.getHighWaterMark,S=He.codes,E=S.ERR_INVALID_ARG_TYPE,R=S.ERR_STREAM_PUSH_AFTER_EOF,B=S.ERR_METHOD_NOT_IMPLEMENTED,N=S.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,P,O,L;ke(k,r);var F=g.errorOrDestroy,U=["error","close","destroy","pause","resume"];function V(p,v,A){if(typeof p.prependListener=="function")return p.prependListener(v,A);!p._events||!p._events[v]?p.on(v,A):Array.isArray(p._events[v])?p._events[v].unshift(A):p._events[v]=[A,p._events[v]]}function T(p,v,A){e=e||rt(),p=p||{},typeof A!="boolean"&&(A=v instanceof e),this.objectMode=!!p.objectMode,A&&(this.objectMode=this.objectMode||!!p.readableObjectMode),this.highWaterMark=x(this,p,"readableHighWaterMark",A),this.buffer=new d,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=p.emitClose!==!1,this.autoDestroy=!!p.autoDestroy,this.destroyed=!1,this.defaultEncoding=p.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,p.encoding&&(P||(P=yt.StringDecoder),this.decoder=new P(p.encoding),this.encoding=p.encoding)}function k(p){if(e=e||rt(),!(this instanceof k))return new k(p);var v=this instanceof e;this._readableState=new T(p,this,v),this.readable=!0,p&&(typeof p.read=="function"&&(this._read=p.read),typeof p.destroy=="function"&&(this._destroy=p.destroy)),r.call(this)}Object.defineProperty(k.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(v){this._readableState&&(this._readableState.destroyed=v)}}),k.prototype.destroy=g.destroy,k.prototype._undestroy=g.undestroy,k.prototype._destroy=function(p,v){v(p)},k.prototype.push=function(p,v){var A=this._readableState,C;return A.objectMode?C=!0:typeof p=="string"&&(v=v||A.defaultEncoding,v!==A.encoding&&(p=n.from(p,v),v=""),C=!0),j(this,p,v,!1,C)},k.prototype.unshift=function(p){return j(this,p,null,!0,!1)};function j(p,v,A,C,J){h("readableAddChunk",v);var W=p._readableState;if(v===null)W.reading=!1,Be(p,W);else{var X;if(J||(X=q(W,v)),X)F(p,X);else if(W.objectMode||v&&v.length>0)if(typeof v!="string"&&!W.objectMode&&Object.getPrototypeOf(v)!==n.prototype&&(v=s(v)),C)W.endEmitted?F(p,new N):G(p,W,v,!0);else if(W.ended)F(p,new R);else{if(W.destroyed)return!1;W.reading=!1,W.decoder&&!A?(v=W.decoder.write(v),W.objectMode||v.length!==0?G(p,W,v,!1):pe(p,W)):G(p,W,v,!1)}else C||(W.reading=!1,pe(p,W))}return!W.ended&&(W.length<W.highWaterMark||W.length===0)}function G(p,v,A,C){v.flowing&&v.length===0&&!v.sync?(v.awaitDrain=0,p.emit("data",A)):(v.length+=v.objectMode?1:A.length,C?v.buffer.unshift(A):v.buffer.push(A),v.needReadable&&be(p)),pe(p,v)}function q(p,v){var A;return!u(v)&&typeof v!="string"&&v!==void 0&&!p.objectMode&&(A=new E("chunk",["string","Buffer","Uint8Array"],v)),A}k.prototype.isPaused=function(){return this._readableState.flowing===!1},k.prototype.setEncoding=function(p){P||(P=yt.StringDecoder);var v=new P(p);this._readableState.decoder=v,this._readableState.encoding=this._readableState.decoder.encoding;for(var A=this._readableState.buffer.head,C="";A!==null;)C+=v.write(A.data),A=A.next;return this._readableState.buffer.clear(),C!==""&&this._readableState.buffer.push(C),this._readableState.length=C.length,this};var Z=1073741824;function de(p){return p>=Z?p=Z:(p--,p|=p>>>1,p|=p>>>2,p|=p>>>4,p|=p>>>8,p|=p>>>16,p++),p}function ye(p,v){return p<=0||v.length===0&&v.ended?0:v.objectMode?1:p!==p?v.flowing&&v.length?v.buffer.head.data.length:v.length:(p>v.highWaterMark&&(v.highWaterMark=de(p)),p<=v.length?p:v.ended?v.length:(v.needReadable=!0,0))}k.prototype.read=function(p){h("read",p),p=parseInt(p,10);var v=this._readableState,A=p;if(p!==0&&(v.emittedReadable=!1),p===0&&v.needReadable&&((v.highWaterMark!==0?v.length>=v.highWaterMark:v.length>0)||v.ended))return h("read: emitReadable",v.length,v.ended),v.length===0&&v.ended?I(this):be(this),null;if(p=ye(p,v),p===0&&v.ended)return v.length===0&&I(this),null;var C=v.needReadable;h("need readable",C),(v.length===0||v.length-p<v.highWaterMark)&&(C=!0,h("length less than watermark",C)),v.ended||v.reading?(C=!1,h("reading or ended",C)):C&&(h("do read"),v.reading=!0,v.sync=!0,v.length===0&&(v.needReadable=!0),this._read(v.highWaterMark),v.sync=!1,v.reading||(p=ye(A,v)));var J;return p>0?J=_(p,v):J=null,J===null?(v.needReadable=v.length<=v.highWaterMark,p=0):(v.length-=p,v.awaitDrain=0),v.length===0&&(v.ended||(v.needReadable=!0),A!==p&&v.ended&&I(this)),J!==null&&this.emit("data",J),J};function Be(p,v){if(h("onEofChunk"),!v.ended){if(v.decoder){var A=v.decoder.end();A&&A.length&&(v.buffer.push(A),v.length+=v.objectMode?1:A.length)}v.ended=!0,v.sync?be(p):(v.needReadable=!1,v.emittedReadable||(v.emittedReadable=!0,je(p)))}}function be(p){var v=p._readableState;h("emitReadable",v.needReadable,v.emittedReadable),v.needReadable=!1,v.emittedReadable||(h("emitReadable",v.flowing),v.emittedReadable=!0,process.nextTick(je,p))}function je(p){var v=p._readableState;h("emitReadable_",v.destroyed,v.length,v.ended),!v.destroyed&&(v.length||v.ended)&&(p.emit("readable"),v.emittedReadable=!1),v.needReadable=!v.flowing&&!v.ended&&v.length<=v.highWaterMark,b(p)}function pe(p,v){v.readingMore||(v.readingMore=!0,process.nextTick(Ze,p,v))}function Ze(p,v){for(;!v.reading&&!v.ended&&(v.length<v.highWaterMark||v.flowing&&v.length===0);){var A=v.length;if(h("maybeReadMore read 0"),p.read(0),A===v.length)break}v.readingMore=!1}k.prototype._read=function(p){F(this,new B("_read()"))},k.prototype.pipe=function(p,v){var A=this,C=this._readableState;switch(C.pipesCount){case 0:C.pipes=p;break;case 1:C.pipes=[C.pipes,p];break;default:C.pipes.push(p);break}C.pipesCount+=1,h("pipe count=%d opts=%j",C.pipesCount,v);var J=(!v||v.end!==!1)&&p!==process.stdout&&p!==process.stderr,W=J?Ce:Ue;C.endEmitted?process.nextTick(W):A.once("end",W),p.on("unpipe",X);function X(l,i){h("onunpipe"),l===A&&i&&i.hasUnpiped===!1&&(i.hasUnpiped=!0,Ke())}function Ce(){h("onend"),p.end()}var Ve=ee(A);p.on("drain",Ve);var at=!1;function Ke(){h("cleanup"),p.removeListener("close",ot),p.removeListener("finish",me),p.removeListener("drain",Ve),p.removeListener("error",De),p.removeListener("unpipe",X),A.removeListener("end",Ce),A.removeListener("end",Ue),A.removeListener("data",ve),at=!0,C.awaitDrain&&(!p._writableState||p._writableState.needDrain)&&Ve()}A.on("data",ve);function ve(l){h("ondata");var i=p.write(l);h("dest.write",i),i===!1&&((C.pipesCount===1&&C.pipes===p||C.pipesCount>1&&z(C.pipes,p)!==-1)&&!at&&(h("false write response, pause",C.awaitDrain),C.awaitDrain++),A.pause())}function De(l){h("onerror",l),Ue(),p.removeListener("error",De),t(p,"error")===0&&F(p,l)}V(p,"error",De);function ot(){p.removeListener("finish",me),Ue()}p.once("close",ot);function me(){h("onfinish"),p.removeListener("close",ot),Ue()}p.once("finish",me);function Ue(){h("unpipe"),A.unpipe(p)}return p.emit("pipe",A),C.flowing||(h("pipe resume"),A.resume()),p};function ee(p){return function(){var A=p._readableState;h("pipeOnDrain",A.awaitDrain),A.awaitDrain&&A.awaitDrain--,A.awaitDrain===0&&t(p,"data")&&(A.flowing=!0,b(p))}}k.prototype.unpipe=function(p){var v=this._readableState,A={hasUnpiped:!1};if(v.pipesCount===0)return this;if(v.pipesCount===1)return p&&p!==v.pipes?this:(p||(p=v.pipes),v.pipes=null,v.pipesCount=0,v.flowing=!1,p&&p.emit("unpipe",this,A),this);if(!p){var C=v.pipes,J=v.pipesCount;v.pipes=null,v.pipesCount=0,v.flowing=!1;for(var W=0;W<J;W++)C[W].emit("unpipe",this,{hasUnpiped:!1});return this}var X=z(v.pipes,p);return X===-1?this:(v.pipes.splice(X,1),v.pipesCount-=1,v.pipesCount===1&&(v.pipes=v.pipes[0]),p.emit("unpipe",this,A),this)},k.prototype.on=function(p,v){var A=r.prototype.on.call(this,p,v),C=this._readableState;return p==="data"?(C.readableListening=this.listenerCount("readable")>0,C.flowing!==!1&&this.resume()):p==="readable"&&!C.endEmitted&&!C.readableListening&&(C.readableListening=C.needReadable=!0,C.flowing=!1,C.emittedReadable=!1,h("on readable",C.length,C.reading),C.length?be(this):C.reading||process.nextTick(Me,this)),A},k.prototype.addListener=k.prototype.on,k.prototype.removeListener=function(p,v){var A=r.prototype.removeListener.call(this,p,v);return p==="readable"&&process.nextTick(se,this),A},k.prototype.removeAllListeners=function(p){var v=r.prototype.removeAllListeners.apply(this,arguments);return(p==="readable"||p===void 0)&&process.nextTick(se,this),v};function se(p){var v=p._readableState;v.readableListening=p.listenerCount("readable")>0,v.resumeScheduled&&!v.paused?v.flowing=!0:p.listenerCount("data")>0&&p.resume()}function Me(p){h("readable nexttick read 0"),p.read(0)}k.prototype.resume=function(){var p=this._readableState;return p.flowing||(h("resume"),p.flowing=!p.readableListening,Xe(this,p)),p.paused=!1,this};function Xe(p,v){v.resumeScheduled||(v.resumeScheduled=!0,process.nextTick(Ye,p,v))}function Ye(p,v){h("resume",v.reading),v.reading||p.read(0),v.resumeScheduled=!1,p.emit("resume"),b(p),v.flowing&&!v.reading&&p.read(0)}k.prototype.pause=function(){return h("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(h("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function b(p){var v=p._readableState;for(h("flow",v.flowing);v.flowing&&p.read()!==null;);}k.prototype.wrap=function(p){var v=this,A=this._readableState,C=!1;p.on("end",function(){if(h("wrapped end"),A.decoder&&!A.ended){var X=A.decoder.end();X&&X.length&&v.push(X)}v.push(null)}),p.on("data",function(X){if(h("wrapped data"),A.decoder&&(X=A.decoder.write(X)),!(A.objectMode&&X==null)&&!(!A.objectMode&&(!X||!X.length))){var Ce=v.push(X);Ce||(C=!0,p.pause())}});for(var J in p)this[J]===void 0&&typeof p[J]=="function"&&(this[J]=function(Ce){return function(){return p[Ce].apply(p,arguments)}}(J));for(var W=0;W<U.length;W++)p.on(U[W],this.emit.bind(this,U[W]));return this._read=function(X){h("wrapped _read",X),C&&(C=!1,p.resume())},this},typeof Symbol=="function"&&(k.prototype[Symbol.asyncIterator]=function(){return O===void 0&&(O=Do()),O(this)}),Object.defineProperty(k.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(k.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(k.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(v){this._readableState&&(this._readableState.flowing=v)}}),k._fromList=_,Object.defineProperty(k.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function _(p,v){if(v.length===0)return null;var A;return v.objectMode?A=v.buffer.shift():!p||p>=v.length?(v.decoder?A=v.buffer.join(""):v.buffer.length===1?A=v.buffer.first():A=v.buffer.concat(v.length),v.buffer.clear()):A=v.buffer.consume(p,v.decoder),A}function I(p){var v=p._readableState;h("endReadable",v.endEmitted),v.endEmitted||(v.ended=!0,process.nextTick($,v,p))}function $(p,v){if(h("endReadableNT",p.endEmitted,p.length),!p.endEmitted&&p.length===0&&(p.endEmitted=!0,v.readable=!1,v.emit("end"),p.autoDestroy)){var A=v._writableState;(!A||A.autoDestroy&&A.finished)&&v.destroy()}}typeof Symbol=="function"&&(k.from=function(p,v){return L===void 0&&(L=Uo()),L(k,p,v)});function z(p,v){for(var A=0,C=p.length;A<C;A++)if(p[A]===v)return A;return-1}return Dt}var gn=Ne,Tt=He.codes,Go=Tt.ERR_METHOD_NOT_IMPLEMENTED,qo=Tt.ERR_MULTIPLE_CALLBACK,zo=Tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,Wo=Tt.ERR_TRANSFORM_WITH_LENGTH_0,At=rt();ke(Ne,At);function Ho(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new qo);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function Ne(e){if(!(this instanceof Ne))return new Ne(e);At.call(this,e),this._transformState={afterTransform:Ho.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",Zo)}function Zo(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){zr(e,t,r)}):zr(this,null,null)}Ne.prototype.push=function(e,t){return this._transformState.needTransform=!1,At.prototype.push.call(this,e,t)};Ne.prototype._transform=function(e,t,r){r(new Go("_transform()"))};Ne.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var o=this._readableState;(n.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}};Ne.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Ne.prototype._destroy=function(e,t){At.prototype._destroy.call(this,e,function(r){t(r)})};function zr(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new Wo;if(e._transformState.transforming)throw new zo;return e.push(null)}var Xo=ut,yn=gn;ke(ut,yn);function ut(e){if(!(this instanceof ut))return new ut(e);yn.call(this,e)}ut.prototype._transform=function(e,t,r){r(null,e)};var Ut;function Yo(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var mn=He.codes,Vo=mn.ERR_MISSING_ARGS,Ko=mn.ERR_STREAM_DESTROYED;function Wr(e){if(e)throw e}function Jo(e){return e.setHeader&&typeof e.abort=="function"}function Qo(e,t,r,n){n=Yo(n);var o=!1;e.on("close",function(){o=!0}),Ut===void 0&&(Ut=mr),Ut(e,{readable:t,writable:r},function(u){if(u)return n(u);o=!0,n()});var s=!1;return function(u){if(!o&&!s){if(s=!0,Jo(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(u||new Ko("pipe"))}}}function Hr(e){e()}function es(e,t){return e.pipe(t)}function ts(e){return!e.length||typeof e[e.length-1]!="function"?Wr:e.pop()}function rs(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=ts(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Vo("streams");var o,s=t.map(function(u,f){var h=f<t.length-1,d=f>0;return Qo(u,h,d,function(g){o||(o=g),g&&s.forEach(Hr),!h&&(s.forEach(Hr),n(o))})});return t.reduce(es)}var is=rs;(function(e,t){t=e.exports=vn(),t.Stream=t,t.Readable=t,t.Writable=dn(),t.Duplex=rt(),t.Transform=gn,t.PassThrough=Xo,t.finished=mr,t.pipeline=is})(Yt,Yt.exports);var _r=Yt.exports,ns=function(e,t,r){for(var n=Math.min(r-t,e.length),o=[],s=null,u=-1;!s&&++u<n;){var f=e[u];f===`
+`?o.length+u&&(s="drill",o=[]):(o.push(f),f==="*"&&o[0]!==";"&&(s="gerber",o=[]))}return s},as=ns,os=function(e,t,r){if(e!=="gerber"&&e!=="drill")throw new Error('filetype to get next block must be "drill" or "gerber"');for(var n=t.length-r,o=e==="gerber"?"*":`
+`,s=e==="gerber"?"%":"",u=!1,f=!1,h=!1,d=!1,g=[],m=0,x=0;!d&&m<n;){var S=t[r+m];S===`
+`&&x++,S===s?f?(h=!0,g.pop()):(f=!0,g.push(S)):S===o?(u=!0,f&&g.push(S)):S>=" "&&S<="~"&&g.push(S),m++,d=u&&(!f||h)}var E=d?g.join("").trim():"",R=d?"":g.join("");return{lines:x,read:m,block:E,rem:R}},ss=os,fs=function(e){return{type:"done",line:e||-1}},us=function(e,t,r){return{type:"set",line:r||-1,prop:e,value:t}},ls=function(e,t,r){return{type:"level",line:r||-1,level:e,value:t}},hs=function(e,t,r){return{type:"tool",line:r||-1,code:e,tool:t}},cs=function(e,t,r){return{type:"op",line:r||-1,op:e,coord:t}},ds=function(e,t,r){return{type:"macro",line:r||-1,name:e,blocks:t}},ps={set:us,done:fs,level:ls,tool:hs,op:cs,macro:ds},_n=ps,Kt=1/0,vs=9007199254740991,gs=17976931348623157e292,Zr=0/0,ys="[object Symbol]",ms=/^\s+|\s+$/g,_s=/^[-+]0x[0-9a-f]+$/i,ws=/^0b[01]+$/i,bs=/^0o[0-7]+$/i,wr="\\ud800-\\udfff",wn="\\u0300-\\u036f\\ufe20-\\ufe23",bn="\\u20d0-\\u20f0",xn="\\ufe0e\\ufe0f",xs="["+wr+"]",Jt="["+wn+bn+"]",Qt="\\ud83c[\\udffb-\\udfff]",Es="(?:"+Jt+"|"+Qt+")",En="[^"+wr+"]",Mn="(?:\\ud83c[\\udde6-\\uddff]){2}",Rn="[\\ud800-\\udbff][\\udc00-\\udfff]",Sn="\\u200d",Tn=Es+"?",An="["+xn+"]?",Ms="(?:"+Sn+"(?:"+[En,Mn,Rn].join("|")+")"+An+Tn+")*",Rs=An+Tn+Ms,Ss="(?:"+[En+Jt+"?",Jt,Mn,Rn,xs].join("|")+")",er=RegExp(Qt+"(?="+Qt+")|"+Ss+Rs,"g"),Ts=RegExp("["+Sn+wr+wn+bn+xn+"]"),As=parseInt,Bs=typeof ne=="object"&&ne&&ne.Object===Object&&ne,Is=typeof self=="object"&&self&&self.Object===Object&&self,Ns=Bs||Is||Function("return this")(),Ls=Cs("length");function js(e){return e.split("")}function Cs(e){return function(t){return t==null?void 0:t[e]}}function br(e){return Ts.test(e)}function Bn(e){return br(e)?Fs(e):Ls(e)}function Os(e){return br(e)?ks(e):js(e)}function Fs(e){for(var t=er.lastIndex=0;er.test(e);)t++;return t}function ks(e){return e.match(er)||[]}var Ps=Object.prototype,$s=Ps.toString,Xr=Ns.Symbol,Ds=Math.ceil,Us=Math.floor,Yr=Xr?Xr.prototype:void 0,Vr=Yr?Yr.toString:void 0;function Kr(e,t){var r="";if(!e||t<1||t>vs)return r;do t%2&&(r+=e),t=Us(t/2),t&&(e+=e);while(t);return r}function Gs(e,t,r){var n=-1,o=e.length;t<0&&(t=-t>o?0:o+t),r=r>o?o:r,r<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(o);++n<o;)s[n]=e[n+t];return s}function In(e){if(typeof e=="string")return e;if(Nn(e))return Vr?Vr.call(e):"";var t=e+"";return t=="0"&&1/e==-Kt?"-0":t}function qs(e,t,r){var n=e.length;return r=r===void 0?n:r,!t&&r>=n?e:Gs(e,t,r)}function zs(e,t){t=t===void 0?" ":In(t);var r=t.length;if(r<2)return r?Kr(t,e):t;var n=Kr(t,Ds(e/Bn(t)));return br(t)?qs(Os(n),0,e).join(""):n.slice(0,e)}function Jr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Ws(e){return!!e&&typeof e=="object"}function Nn(e){return typeof e=="symbol"||Ws(e)&&$s.call(e)==ys}function Hs(e){if(!e)return e===0?e:0;if(e=Xs(e),e===Kt||e===-Kt){var t=e<0?-1:1;return t*gs}return e===e?e:0}function Zs(e){var t=Hs(e),r=t%1;return t===t?r?t-r:t:0}function Xs(e){if(typeof e=="number")return e;if(Nn(e))return Zr;if(Jr(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Jr(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(ms,"");var r=ws.test(e);return r||bs.test(e)?As(e.slice(2),r?2:8):_s.test(e)?Zr:+e}function Ys(e){return e==null?"":In(e)}function Vs(e,t,r){e=Ys(e),t=Zs(t);var n=t?Bn(e):0;return t&&n<t?zs(t-n,r)+e:e}var Ks=Vs,tr=1/0,Js=9007199254740991,Qs=17976931348623157e292,Qr=0/0,e6="[object Symbol]",t6=/^\s+|\s+$/g,r6=/^[-+]0x[0-9a-f]+$/i,i6=/^0b[01]+$/i,n6=/^0o[0-7]+$/i,xr="\\ud800-\\udfff",Ln="\\u0300-\\u036f\\ufe20-\\ufe23",jn="\\u20d0-\\u20f0",Cn="\\ufe0e\\ufe0f",a6="["+xr+"]",rr="["+Ln+jn+"]",ir="\\ud83c[\\udffb-\\udfff]",o6="(?:"+rr+"|"+ir+")",On="[^"+xr+"]",Fn="(?:\\ud83c[\\udde6-\\uddff]){2}",kn="[\\ud800-\\udbff][\\udc00-\\udfff]",Pn="\\u200d",$n=o6+"?",Dn="["+Cn+"]?",s6="(?:"+Pn+"(?:"+[On,Fn,kn].join("|")+")"+Dn+$n+")*",f6=Dn+$n+s6,u6="(?:"+[On+rr+"?",rr,Fn,kn,a6].join("|")+")",nr=RegExp(ir+"(?="+ir+")|"+u6+f6,"g"),l6=RegExp("["+Pn+xr+Ln+jn+Cn+"]"),h6=parseInt,c6=typeof ne=="object"&&ne&&ne.Object===Object&&ne,d6=typeof self=="object"&&self&&self.Object===Object&&self,p6=c6||d6||Function("return this")(),v6=y6("length");function g6(e){return e.split("")}function y6(e){return function(t){return t==null?void 0:t[e]}}function Er(e){return l6.test(e)}function Un(e){return Er(e)?_6(e):v6(e)}function m6(e){return Er(e)?w6(e):g6(e)}function _6(e){for(var t=nr.lastIndex=0;nr.test(e);)t++;return t}function w6(e){return e.match(nr)||[]}var b6=Object.prototype,x6=b6.toString,ei=p6.Symbol,E6=Math.ceil,M6=Math.floor,ti=ei?ei.prototype:void 0,ri=ti?ti.toString:void 0;function ii(e,t){var r="";if(!e||t<1||t>Js)return r;do t%2&&(r+=e),t=M6(t/2),t&&(e+=e);while(t);return r}function R6(e,t,r){var n=-1,o=e.length;t<0&&(t=-t>o?0:o+t),r=r>o?o:r,r<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(o);++n<o;)s[n]=e[n+t];return s}function Gn(e){if(typeof e=="string")return e;if(qn(e))return ri?ri.call(e):"";var t=e+"";return t=="0"&&1/e==-tr?"-0":t}function S6(e,t,r){var n=e.length;return r=r===void 0?n:r,!t&&r>=n?e:R6(e,t,r)}function T6(e,t){t=t===void 0?" ":Gn(t);var r=t.length;if(r<2)return r?ii(t,e):t;var n=ii(t,E6(e/Un(t)));return Er(t)?S6(m6(n),0,e).join(""):n.slice(0,e)}function ni(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function A6(e){return!!e&&typeof e=="object"}function qn(e){return typeof e=="symbol"||A6(e)&&x6.call(e)==e6}function B6(e){if(!e)return e===0?e:0;if(e=N6(e),e===tr||e===-tr){var t=e<0?-1:1;return t*Qs}return e===e?e:0}function I6(e){var t=B6(e),r=t%1;return t===t?r?t-r:t:0}function N6(e){if(typeof e=="number")return e;if(qn(e))return Qr;if(ni(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ni(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(t6,"");var r=i6.test(e);return r||n6.test(e)?h6(e.slice(2),r?2:8):r6.test(e)?Qr:+e}function L6(e){return e==null?"":Gn(e)}function j6(e,t,r){e=L6(e),t=I6(t);var n=t?Un(e):0;return t&&n<t?e+T6(t-n,r):e}var C6=j6,ai=lt,O6=Ks,F6=C6,k6=function(e,t){if(e==null)return NaN;var r=""+e,n="+";(r[0]==="-"||r[0]==="+")&&(n=r[0],r=r.slice(1));var o=r.indexOf(".")!==-1;if(o||t==null||t.zero==null)return Number(n+r);if(t.places==null||t.places.length!==2)return NaN;var s=t.places[0],u=t.places[1];if(!ai(s)||!ai(u))return NaN;if(t.zero==="T")r=F6(r,s+u,"0");else if(t.zero==="L")r=O6(r,s+u,"0");else return NaN;var f=r.slice(0,s),h=r.slice(s,s+u);return+(n+f+"."+h)},Mr=k6,P6=Mr,$6=/[XY]0\d+/,D6=/[XY]\d+0(?=\D|$)/,U6=[{coord:"x",test:/X([+-]?[\d.]+)/},{coord:"y",test:/Y([+-]?[\d.]+)/},{coord:"i",test:/I([+-]?[\d.]+)/},{coord:"j",test:/J([+-]?[\d.]+)/},{coord:"a",test:/A([\d.]+)/}],G6=function(e,t){if(e==null)return{};if(t.zero==null||t.places==null)throw new Error("cannot parse coordinate with format undefined");var r=U6.reduce(function(n,o){var s=e.match(o.test);return s&&(n[o.coord]=P6(s[1],t)),n},{});return r},q6=function(e){return D6.test(e)?"L":$6.test(e)?"T":null},zn={parse:G6,detectZero:q6},z6=/[+\-/xX()]/,Wn=/[$\d.]+/,W6=new RegExp([z6.source,Wn.source].join("|"),"g"),H6=function(t,r){var n=r.match(W6),o,s=function(){var d=n.shift(),g;return Wn.test(d)?g={type:"n",val:d}:(g=o(),n.shift()),g},u=function(){var d=s(),g=n[0];for(g==="X"&&(t._warn("multiplication in macros should use 'x', not 'X'"),g="x");g==="x"||g==="/";){n.shift();var m=s();d={type:g,left:d,right:m},g=n[0]}return d};o=function(){for(var d=u(),g=n[0];g==="+"||g==="-";){n.shift();var m=u();d={type:g,left:d,right:m},g=n[0]}return d};var f=o(),h=function(d,g){var m=function(S){return S[0]==="$"?Number(g[S]):Number(S)},x=d.type;return x==="n"?m(d.val):x==="+"?h(d.left,g)+h(d.right,g):x==="-"?h(d.left,g)-h(d.right,g):x==="x"?h(d.left,g)*h(d.right,g):h(d.left,g)/h(d.right,g)};return function(d){return h(f,d)}},oi=H6,Z6=/^-?[\d.]+$/,si=/^(\$[\d+])=(.+)/,X6=function(e,t){if(t[0]==="0")return{type:"comment"};if(si.test(t)){var r=t.match(si),n=r[1],o=r[2],s=oi(e,o),u=function(m){return m[n]=s(m),m};return{type:"variable",set:u}}var f=function(m){return Z6.test(m)?Number(m):oi(e,m)},h=t.split(",").map(f),d=h[0],g=h[1];if(d===1)return{type:"circle",exp:g,dia:h[2],cx:h[3],cy:h[4],rot:h[5]||0};if(d===2&&e._warn("macro aperture vector primitives with code 2 are deprecated"),d===2||d===20)return{type:"vect",exp:g,width:h[2],x1:h[3],y1:h[4],x2:h[5],y2:h[6],rot:h[7]};if(d===21)return{type:"rect",exp:g,width:h[2],height:h[3],cx:h[4],cy:h[5],rot:h[6]};if(d===22)return e._warn("macro aperture lower-left rectangle primitives are deprecated"),{type:"rectLL",exp:g,width:h[2],height:h[3],x:h[4],y:h[5],rot:h[6]};if(d===4)return{type:"outline",exp:g,points:h.slice(3,-1),rot:h[h.length-1]};if(d===5)return{type:"poly",exp:g,vertices:h[2],cx:h[3],cy:h[4],dia:h[5],rot:h[6]};if(d===6)return{type:"moire",exp:1,cx:h[1],cy:h[2],dia:h[3],ringThx:h[4],ringGap:h[5],maxRings:h[6],crossThx:h[7],crossLen:h[8],rot:h[9]};if(d===7)return{type:"thermal",exp:1,cx:h[1],cy:h[2],outerDia:h[3],innerDia:h[4],gap:h[5],rot:h[6]};e._warn(d+" is an unrecognized primitive for a macro aperture")},Y6=X6,ce=_n,Ge=Mr,V6=zn,K6=Y6,fi=/^G0*([123])/,ui=/^G3([67])/,li=/^G7([45])/,hi=/^G7([01])/,ci=/^G9([01])/,J6=/^G0*4/,Q6=/^%TO[^%*]*/,di=/^(?:G54)?D0*([1-9]\d+)/,pi=/D0*([123])$/,vi=/^(?:G0*[123])?((?:[XYIJ][+-]?\d+){1,4})(?:D0*[123])?$/,gi=/^%MO(IN|MM)/,yi=/^%FS([LT]?)([AI]?)(.*)X([0-7])([0-7])Y\4\5/,mi=/^%LP([CD])/,_i=/^%SR(?:X(\d+)Y(\d+)I([\d.]+)J([\d.]+))?/,Hn=/^%ADD0*(\d{2,})([A-Za-z_$][\w\-.]*)(?:,((?:X?[\d.-]+)*))?/,Zn=/^%AM([A-Za-z_$][\w\-.]*)\*?(.*)/,wi=/\*MO(IN|MM)$/,bi=function(e,t){var r=t==="IN"?"in":"mm";return e._push(ce.set("units",r))},e3=function(e,t){var r={places:e.format.places},n=t.match(Hn),o=n[1],s=n[2],u=n[3]?n[3].split("X"):[],f,h;s==="C"?(f="circle",h=3):s==="R"?(f="rect",h=4):s==="O"?(f="obround",h=4):s==="P"?(f="poly",h=5):(f=s,h=0);var d;f==="circle"?d=[Ge(u[0],r)]:f==="rect"||f==="obround"?d=[Ge(u[0],r),Ge(u[1],r)]:f==="poly"?(d=[Ge(u[0],r),Number(u[1]),0],u[2]&&(d[2]=Number(u[2]))):d=u.map(Number);var g=[];u[h-1]?g=[Ge(u[h-2],r),Ge(u[h-1],r)]:u[h-2]&&(g=[Ge(u[h-2],r)]);var m={shape:f,params:d,hole:g};return e._push(ce.tool(o,m))},t3=function(e,t){var r=t.match(Zn),n=r[1];n.match(/-/)&&e._warn("hyphens in macro name are illegal: "+n);var o=r[2].length?r[2].split("*"):[],s=o.filter(Boolean).map(function(u){return K6(e,u)});return e._push(ce.macro(n,s))},r3=function(e,t){if(!(J6.test(t)||Q6.test(t))){if(t==="M02")return e._push(ce.done());if(ui.test(t)){var r=t.match(ui)[1],n=r==="6";return e._push(ce.set("region",n))}if(li.test(t)){var o=t.match(li)[1],s=o==="4"?"s":"m";return e._push(ce.set("arc",s))}if(gi.test(t)){var u=t.match(gi)[1];return bi(e,u)}if(hi.test(t)){var f=t.match(hi)[1],h=f==="0"?"in":"mm";return e._push(ce.set("backupUnits",h))}if(yi.test(t)){var d=t.match(yi),g=d[1],m=d[2],x=d[3],S=Number(d[4]),E=Number(d[5]),R=e.format;R.zero=R.zero||g,R.places||(R.places=[S,E]),R.zero?R.zero==="T"&&e._warn("trailing zero suppression has been deprecated"):(R.zero="L",e._warn("zero suppression missing from format; assuming leading")),x&&e._warn('unknown characters "'+x+'" in "'+t+'" were ignored');var B=1.5*Math.pow(10,-R.places[1]);if(e._push(ce.set("nota",m)),e._push(ce.set("epsilon",B)),wi.test(t)){var N=t.match(wi)[1];bi(e,N)}return}if(ci.test(t)){var P=t.match(ci)[1],O=P==="0"?"A":"I";return e._push(ce.set("backupNota",O))}if(mi.test(t)){var L=t.match(mi)[1];return e._push(ce.level("polarity",L))}if(_i.test(t)){var F=t.match(_i),U=F[1]||1,V=F[2]||1,T=F[3]||0,k=F[4]||0,j={x:Number(U),y:Number(V),i:Number(T),j:Number(k)};return e._push(ce.level("stepRep",j))}if(di.test(t)){var G=t.match(di)[1];return e._push(ce.set("tool",G))}if(Hn.test(t))return e3(e,t);if(Zn.test(t))return t3(e,t);if(pi.test(t)||fi.test(t)||vi.test(t)){var q=t.match(pi),Z=t.match(fi),de=t.match(vi),ye;if(Z&&(Z[1]==="1"?ye="i":Z[1]==="2"?ye="cw":ye="ccw",e._push(ce.set("mode",ye))),q||de){var Be=q?q[1]:"",be=de?de[1]:"",je=V6.parse(be,e.format),pe="last";Be==="1"?pe="int":Be==="2"?pe="move":Be==="3"&&(pe="flash"),e._push(ce.op(pe,je))}return}return e._warn('block "'+t+'" was not recognized and was ignored')}},i3=r3,Xn={DRILL:"5",MOVE:"0",LINEAR:"1",CW_ARC:"2",CCW_ARC:"3"},xi=lt,ie=_n,st=Xn,n3=Mr,ar=zn,Ei=/;FILE_FORMAT=(\d):(\d)/,Mi=/;TYPE=(PLATED|NON_PLATED)/,Ri=/;FORMAT={(.):(.)\/ (absolute|.+)? \/ (metric|inch) \/.+(trailing|leading|decimal|keep)/,Yn=/^(INCH|METRIC|M71|M72)/,Vn=/,([TL])Z/,a3=/,(0{1,8})\.(0{1,8})/,Si=/T0*(\d+)[\S]*C([\d.]+)/,Ti=/T0*(\d+)(?![\S]*C)/,Rr=/((?:[XYIJA][+-]?[\d.]+){1,4})(?:G85((?:[XY][+-]?[\d.]+){1,2}))?/,Ai=/^G0([01235])/,o3=function(e,t,r){var n={};if(Ri.test(t)){var o=t.match(Ri),s=Number(o[1]),u=Number(o[2]),f=o[3],h=o[4],d=o[5];xi(s)&&xi(u)&&(n.places=[s,u]),f==="absolute"?e._push(ie.set("backupNota","A",r)):e._push(ie.set("backupNota","I",r)),h==="metric"?e._push(ie.set("backupUnits","mm",r)):e._push(ie.set("backupUnits","in",r)),d==="leading"||d==="keep"?n.zero="L":d==="trailing"?n.zero="T":n.zero="D"}else if(Ei.test(t)){var g=t.match(Ei);n.places=[Number(g[1]),Number(g[2])]}else if(Mi.test(t)){var m=t.match(Mi),x=m[1]==="PLATED"?"pth":"npth";e._push(ie.set("holePlating",x,r))}return n},s3=function(e,t,r){var n=t.match(Yn),o=t.match(Vn),s=t.match(a3),u=n[1]==="METRIC"||n[1]==="M71"?"mm":"in",f=o&&o[1];e.format.zero==null&&f&&(e.format.zero=f==="T"?"L":"T"),e.format.places==null&&(s?e.format.places=[s[1].length,s[2].length]:e.format.places=u==="in"?[2,4]:[3,3]),e._push(ie.set("units",u,r))},f3=function(e,t,r){var n=t.match(Rr),o=ar.parse(n[1],e.format);if(n[2])return e._push(ie.op("move",o,r)),e._push(ie.set("mode","i",r)),o=ar.parse(n[2],e.format),e._push(ie.op("int",o,r));switch(Ai.test(t)&&(e._drillMode=t.match(Ai)[1]),e._drillMode){case st.DRILL:return e._push(ie.op("flash",o,r));case st.MOVE:return e._push(ie.op("move",o,r));case st.LINEAR:return e._push(ie.set("mode","i",r)),e._push(ie.op("int",o,r));case st.CW_ARC:return e._push(ie.set("mode","cw",r)),e._push(ie.op("int",o,r));case st.CCW_ARC:return e._push(ie.set("mode","ccw",r)),e._push(ie.op("int",o,r))}},Kn=function(e,t,r){if(Si.test(t)){var n=t.match(Si),o=n[1],s=n3(n[2]),u={shape:"circle",params:[s],hole:[]};return e._push(ie.tool(o,u,r))}if(Ti.test(t)){var f=t.match(Ti)[1];e._push(ie.set("tool",f,r))}if(Rr.test(t))return e.format.places||(e.format.places=[2,4],e._warn("places format missing; assuming [2, 4]")),e.format.zero||(e.format.zero="T",e._warn("zero suppression missing; assuming trailing suppression")),f3(e,t,r);if(t==="M00"||t==="M30")return e._push(ie.done(r));if(t==="G90")return e._push(ie.set("nota","A",r));if(t==="G91")return e._push(ie.set("nota","I",r));if(Yn.test(t))return s3(e,t,r)},Jn=function(e){e._drillStash.forEach(function(t){Kn(e,t.block,t.line)}),e._drillStash=[]},u3=function(e,t){if(t[0]===";"){var r=o3(e,t,e.line);Object.keys(r).forEach(function(n){e.format[n]||(e.format[n]=r[n])})}else e.format.zero?Kn(e,t,e.line):(e._drillStash.push({line:e.line,block:t}),Rr.test(t)&&(e.format.zero=ar.detectZero(t),e.format.zero&&e._warn("zero suppression missing; detected "+(e.format.zero==="L"?"leading":"trailing")+" suppression")),(e.format.zero||Vn.test(t)||e._drillStash.length>=1e3)&&Jn(e))},l3={parse:u3,flush:Jn},h3=function(e,t){return{message:e,line:t}},c3=h3,d3=yt.StringDecoder,p3=ke,Qn=_r.Transform,ea=as,v3=ss,g3=i3,ta=l3,y3=c3,m3=Xn,or=65535,Pe=function(e,t,r){Qn.call(this,{readableObjectMode:!0}),this._decoder=new d3("utf8"),this._stash="",this._index=0,this._drillMode=m3.DRILL,this._drillStash=[],this._syncResult=null,this.line=0,this.format={places:e,zero:t,filetype:r}};p3(Pe,Qn);Pe.prototype._process=function(e,t){for(;this._index<e.length;){var r=v3(t,e,this._index);this._index+=r.read,this.line+=r.lines,this._stash+=r.rem,r.block&&(t==="gerber"?g3(this,r.block):ta.parse(this,r.block))}};Pe.prototype._transform=function(e,t,r){var n=this.format.filetype;if(e=this._decoder.write(e),!n)if(n=ea(e,this._index,or),this._index+=e.length,n)this.format.filetype=n,this._index=0;else return this._index>=or?r(new Error("unable to determine filetype")):(this._stash+=e,r());e=this._stash+e,this._stash="",this._process(e,n),this._index=0,r()};Pe.prototype._flush=function(e){return this.format.filetype==="drill"&&ta.flush(this),e&&e()};Pe.prototype._push=function(e){e.line===-1&&(e.line=this.line);var t=this._syncResult?this._syncResult:this;t.push(e)};Pe.prototype._warn=function(e){this.emit("warning",y3(e,this.line))};Pe.prototype.parseSync=function(e){var t=ea(e,this._index,100*or);return this.format.filetype=t,this._syncResult=[],this._process(e,t),this._flush(),this._syncResult};var _3=Pe,Bi=lt,w3=_3,b3=function(e){if(Array.isArray(e)&&e.length===2&&Bi(e[0])&&Bi(e[1]))return e;throw new Error("places must be an array of two whole numbers")},x3=function(e){if(e==="T"||e==="L")return e;throw new Error("zero suppression must be 'L' or 'T'")},E3=function(e){if(e==="gerber"||e==="drill")return e;throw new Error('filetype must be "drill" or "gerber"')},M3=function(e){e=e||{};var t=e.places?b3(e.places):null,r=e.zero?x3(e.zero):null,n=e.filetype?E3(e.filetype):null;return new w3(t,r,n)},Ii=1/0,ra=9007199254740991,R3=17976931348623157e292,Ni=0/0,S3=4294967295,T3="[object Function]",A3="[object GeneratorFunction]",B3="[object Symbol]",I3=/^\s+|\s+$/g,N3=/^[-+]0x[0-9a-f]+$/i,L3=/^0b[01]+$/i,j3=/^0o[0-7]+$/i,C3=/^(?:0|[1-9]\d*)$/,O3=parseInt,F3=Object.prototype,ia=F3.toString;function k3(e,t,r){return e===e&&(r!==void 0&&(e=e<=r?e:r),t!==void 0&&(e=e>=t?e:t)),e}function P3(e,t,r,n){var o=e.length;for(r=sr(r),r<0&&(r=-r>o?0:o+r),n=n===void 0||n>o?o:sr(n),n<0&&(n+=o),n=r>n?0:Y3(n);r<n;)e[r++]=t;return e}function $3(e,t){return t=t??ra,!!t&&(typeof e=="number"||C3.test(e))&&e>-1&&e%1==0&&e<t}function D3(e,t,r){if(!mt(r))return!1;var n=typeof t;return(n=="number"?q3(r)&&$3(t,r.length):n=="string"&&t in r)?G3(r[t],e):!1}function U3(e,t,r,n){var o=e?e.length:0;return o?(r&&typeof r!="number"&&D3(e,t,r)&&(r=0,n=o),P3(e,t,r,n)):[]}function G3(e,t){return e===t||e!==e&&t!==t}function q3(e){return e!=null&&W3(e.length)&&!z3(e)}function z3(e){var t=mt(e)?ia.call(e):"";return t==T3||t==A3}function W3(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ra}function mt(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function H3(e){return!!e&&typeof e=="object"}function Z3(e){return typeof e=="symbol"||H3(e)&&ia.call(e)==B3}function X3(e){if(!e)return e===0?e:0;if(e=V3(e),e===Ii||e===-Ii){var t=e<0?-1:1;return t*R3}return e===e?e:0}function sr(e){var t=X3(e),r=t%1;return t===t?r?t-r:t:0}function Y3(e){return e?k3(sr(e),0,S3):0}function V3(e){if(typeof e=="number")return e;if(Z3(e))return Ni;if(mt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=mt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(I3,"");var r=L3.test(e);return r||j3.test(e)?O3(e.slice(2),r?2:8):N3.test(e)?Ni:+e}var K3=U3,J3=K3,Q3=function(e,t){var r,n;for(n=0;n<e.length;n++)if(r=e[n],t(r))return r},Li=function(e,t,r){var n=e.reduce(function(o,s){var u=e5(t,s.position);return u<r&&u<o.distance?{point:s,distance:u}:o},{point:void 0,distance:1/0});return n.point},e5=function(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))},We=function(e,t){return e[0]===t[0]&&e[1]===t[1]},t5=function(e,t){return e.type==="line"&&(We(e.start,t.start)&&We(e.end,t.end)||We(e.start,t.end)&&We(e.end,t.start))},r5=function(e){var t={type:e.type,start:e.end,end:e.start};return e.type==="arc"&&(t.center=e.center,t.radius=e.radius,t.sweep=e.sweep,t.dir=e.dir==="cw"?"ccw":"cw"),t},Bt=function(e,t){this._edges=[],this._optimize=e,this._fillGaps=t,this.length=0};Bt.prototype.add=function(e){var t={segment:e,start:e.start,end:e.end};this._edges.push(t),this.length++};Bt.prototype._fillGapsAndOptimize=function(){var e=this._edges.map(function(E){return E.segment});this._edges=[],this.length=0;for(var t=e.reduce(function(E,R){return E.concat([{position:R.start,edges:[]},{position:R.end,edges:[]}])},[]),r=e.length,n=0;n<r;n++){var o=e[n],s,u,f=this._fillGaps,h=n*2,d=h+1,g=t.slice(0,h).concat(t.slice(d+1));s=Li(g,o.start,f),u=Li(g,o.end,f),s?f&&(o.start=s.position):s={position:o.start,edges:[]},u?f&&(o.end=u.position):u={position:o.end,edges:[]};var m=Q3(this._edges,function(E){return t5(E.segment,o)});if(!m){var x=this._edges.length,S={segment:o,start:s,end:u};t[h].edges.push(x),t[h].position=S.start.position,t[d].edges.push(x),t[d].position=S.end.position,this._edges.push(S),this.length++}}this._edges.forEach(function(E){t.forEach(function(R){We(R.position,E.start.position)&&(E.start.edges=E.start.edges.concat(R.edges)),We(R.position,E.end.position)&&(E.end.edges=E.end.edges.concat(R.edges))})})};Bt.prototype.traverse=function(){if(!this._optimize)return this._edges.map(function(h){return h.segment});this._fillGapsAndOptimize();for(var e=J3(Array(this._edges.length),!1),t=[],r=[],n,o,s,u,f={position:[]};r.length<this._edges.length;)for(n=e.indexOf(!1),t.push(n);t.length;)n=t.pop(),e[n]||(e[n]=!0,o=this._edges[n],s=o.end,We(f.position,s.position)?(u=r5(o.segment),f=o.start):(u=o.segment,f=o.end),f.edges.reverse().forEach(function(h){e[h]||t.push(h)}),r.push(u));return r};var i5=Bt,n5=function(e,t){return{message:e,line:t}},a5=n5,o5="[object AsyncFunction]",s5="[object Function]",f5="[object GeneratorFunction]",u5="[object Null]",l5="[object Proxy]",h5="[object Undefined]",c5=typeof ne=="object"&&ne&&ne.Object===Object&&ne,d5=typeof self=="object"&&self&&self.Object===Object&&self,p5=c5||d5||Function("return this")(),na=Object.prototype,v5=na.hasOwnProperty,aa=na.toString,ji=p5.Symbol,qe=ji?ji.toStringTag:void 0;function g5(e){return e==null?e===void 0?h5:u5:qe&&qe in Object(e)?y5(e):m5(e)}function y5(e){var t=v5.call(e,qe),r=e[qe];try{e[qe]=void 0;var n=!0}catch{}var o=aa.call(e);return n&&(t?e[qe]=r:delete e[qe]),o}function m5(e){return aa.call(e)}function _5(e){if(!w5(e))return!1;var t=g5(e);return t==s5||t==f5||t==o5||t==l5}function w5(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var b5=_5,x5=function(){return[1/0,1/0,-1/0,-1/0]},oa=function(e,t){return[Math.min(e[0],t[0]),Math.min(e[1],t[1]),Math.max(e[2],t[2]),Math.max(e[3],t[3])]},E5=function(e,t){return[Math.min(e[0],t[0]),Math.min(e[1],t[1]),Math.max(e[2],t[0]),Math.max(e[3],t[1])]},M5=function(e,t,r,n){return[Math.min(e[0],r-t),Math.min(e[1],n-t),Math.max(e[2],r+t),Math.max(e[3],n+t)]},sa=function(e,t){var r=t[0],n=t[1];return[e[0]+r,e[1]+n,e[2]+r,e[3]+n]},R5=function(e,t){return oa(e,sa(e,t))},Sr={new:x5,add:oa,addPoint:E5,addCircle:M5,translate:sa,repeat:R5},S5=b5,T5=lt,le=Sr,ue=function(e){var t=Math.round(e*1e8)/1e8;return t===0?0:t},A5=function(e){return e*Math.PI/180},_t=function(e,t){t=A5(t);var r=Math.sin(t),n=Math.cos(t),o=e[0],s=e[1];return[ue(o*n-s*r),ue(o*r+s*n)]},wt=function(e,t,r,n){var o=e/2;if(t=t||0,r=r||0,n&&(t||r)){var s=_t([t,r],n);t=s[0],r=s[1]}return{shape:{type:"circle",cx:t,cy:r,r:e/2},box:le.addCircle(le.new(),o,t,r)}},fa=function(e,t,r,n,o,s){if(s){var u=_t([e,t],s),f=_t([r,n],s);e=u[0],t=u[1],r=f[0],n=f[1]}var h=(n-t)/(r-e),d=o/2,g=d,m=d;T5(h)?(g*=h/Math.sqrt(1+Math.pow(h,2)),m*=1/Math.sqrt(1+Math.pow(h,2))):m=0;var x=[];x.push([ue(e+g),ue(t-m)]),x.push([ue(r+g),ue(n-m)]),x.push([ue(r-g),ue(n+m)]),x.push([ue(e-g),ue(t+m)]);var S=x.reduce(function(E,R){return le.addPoint(E,R)},le.new());return{shape:{type:"poly",points:x},box:S}},Ee=function(e,t,r,n,o,s){n=n||0,o=o||0,r=r||0,s=s||0;var u=e/2,f=t/2;if(s){var h=n-u,d=n+u,g=o,m=o;return fa(h,g,d,m,t,s)}return{shape:{type:"rect",cx:n,cy:o,r,width:e,height:t},box:[-u+n,-f+o,u+n,f+o]}},B5=function(e,t){for(var r=[],n=le.new(),o,s=0;s<e.length-2;s+=2)o=[e[s],e[s+1]],t&&(o=_t(o,t)),r.push(o),n=le.addPoint(n,o);return{shape:{type:"poly",points:r},box:n}},ua=function(e,t,r,n,o){n=n||0,o=o||0;for(var s=[],u=le.new(),f=e/2,h=r*Math.PI/180,d=2*Math.PI/t,g,m,x,S=0;S<t;S++)g=d*S+h,m=n+ue(f*Math.cos(g)),x=o+ue(f*Math.sin(g)),u=le.addPoint(u,[m,x]),s.push([m,x]);return{shape:{type:"poly",points:s},box:u}},la=function(e,t,r,n){return{type:"ring",cx:e,cy:t,r,width:n}},I5=function(e,t,r,n,o,s,u,f,h){for(var d=e/2,g=[],m=le.addCircle(le.new(),d,u,f),x=t/2,S=r+x;d>t&&g.length<n;)d-=x,g.push(la(u,f,ue(d),t)),d-=S;d>0&&g.length<n&&g.push(wt(ue(2*d),u,f).shape);var E=Ee(s,o,0,u,f,h),R=Ee(o,s,0,u,f,h);return g.push(E.shape),g.push(R.shape),m=le.add(m,E.box),m=le.add(m,R.box),{shape:g,box:m}},N5=function(e,t,r,n,o,s){var u=ue((r-o)/2),f=ue((r+o)/4),h=ue((r-n)/2),d=ue((r-h)/2),g=le.addCircle(le.new(),r/2,e,t),m=[Ee(u,u,0,e+f,t+f,s).shape,Ee(u,u,0,e-f,t+f,s).shape,Ee(u,u,0,e-f,t-f,s).shape,Ee(u,u,0,e+f,t-f,s).shape],x=la(e,t,d,h);return{shape:{type:"clip",shape:m,clip:x},box:g}},L5=function(e,t){var r={shape:[],box:le.new()},n=1;return t=t||[],t.reduce(function(o,s){var u;switch(s.type!=="variable"&&s.type!=="comment"&&(s=Object.keys(s).reduce(function(m,x){var S=s[x];return m[x]=E(S),m;function E(R){return Array.isArray(R)?R.map(E):S5(R)?R(e):R}},{})),s.exp!=null&&s.exp!==n&&(o.shape.push({type:"layer",polarity:s.exp===1?"dark":"clear",box:o.box.slice(0)}),n=s.exp),s.type){case"circle":u=wt(s.dia,s.cx,s.cy,s.rot);break;case"vect":u=fa(s.x1,s.y1,s.x2,s.y2,s.width,s.rot);break;case"rect":u=Ee(s.width,s.height,0,s.cx,s.cy,s.rot);break;case"rectLL":var f=s.height/2,h=s.width/2,d=s.x+h,g=s.y+f;u=Ee(s.width,s.height,0,d,g,s.rot);break;case"outline":u=B5(s.points,s.rot);break;case"poly":u=ua(s.dia,s.vertices,s.rot,s.cx,s.cy);break;case"moire":u=I5(s.dia,s.ringThx,s.ringGap,s.maxRings,s.crossThx,s.crossLen,s.cx,s.cy,s.rot);break;case"thermal":u=N5(s.cx,s.cy,s.outerDia,s.innerDia,s.gap,s.rot);break;case"variable":return e=s.set(e),o;default:return o}return o.shape=o.shape.concat(u.shape),n===1&&(o.box=le.add(o.box,u.box)),o},r)},j5=function(t,r){var n=[],o=le.new(),s=t.shape,u=t.params,f,h;if(s==="circle")h=wt(u[0]);else if(s==="rect")h=Ee(u[0],u[1]);else if(s==="obround")h=Ee(u[0],u[1],Math.min(u[0],u[1])/2);else if(s==="poly")h=ua(u[0],u[1],u[2]);else{var d=u.reduce(function(g,m,x){return g["$"+(x+1)]=m,g},{});return L5(d,r[s])}return n.push(h.shape),o=le.add(o,h.box),t.hole.length&&(f=t.hole.length===1?wt(t.hole[0]).shape:Ee(t.hole[0],t.hole[1]).shape,n.push({type:"layer",polarity:"clear",box:o},f)),{shape:n,box:o}},oe=Sr,he=Math.PI/2,Ci=Math.PI,ge=Math.PI*2,Qe=3*Math.PI/2,C5=function(e,t,r,n){return r?(n._warn("flash in region ignored"),oe.new()):t?(t.flashed||(t.flashed=!0,n.push({type:"shape",tool:t.code,shape:t.pad})),n.push({type:"pad",tool:t.code,x:e[0],y:e[1]}),oe.translate(t.box,e)):(n._warn("flash with unknown tool ignored"),oe.new())},O5=function(e,t,r,n,o){for(var s,u,f,h,d;d==null&&o.length>0;)h=o.pop(),s=Math.atan2(e[1]-h[1],e[0]-h[0]),u=Math.atan2(t[1]-h[1],t[0]-h[0]),r==="cw"?s=s>=u?s:s+ge:u=u>=s?u:u+ge,f=Math.abs(s-u),n==="s"?f<=he&&(d=h):d=h;if(d!=null)return s=s>=0?s:s+ge,s=s<ge?s:s-ge,u=u>=0?u:u+ge,u=u<ge?u:u-ge,{center:d,sweep:f,start:e.concat(s),end:t.concat(u)}},F5=function(e,t,r,n,o){var s=e.start,u=e.end,f=e.center,h=e.sweep,d,g;o==="cw"?(d=u[2],g=s[2]):(d=s[2],g=u[2]);var m=[s,u];return(d>g||h===ge)&&m.push([f[0]+t,f[1]]),d=d>=he?d-he:d+Qe,g=g>=he?g-he:g+Qe,(d>g||h===ge)&&m.push([f[0],f[1]+t]),d=d>=he?d-he:d+Qe,g=g>=he?g-he:g+Qe,(d>g||h===ge)&&m.push([f[0]-t,f[1]]),d=d>=he?d-he:d+Qe,g=g>=he?g-he:g+Qe,(d>g||h===ge)&&m.push([f[0],f[1]-t]),m.reduce(function(x,S){if(!r){var E=oe.translate(n.box,S);return oe.add(x,E)}return oe.addPoint(x,S)},oe.new())},Oi=function(e,t){return e>=t?e:0},k5=function(e,t,r,n,o){var s=r==="ccw"?1:-1,u=(e[0]+t[0])/2,f=(e[1]+t[1])/2,h=t[0]-e[1],d=t[1]-e[1],g=Math.sqrt(Math.pow(h,2)+Math.pow(d,2)),m=g/2,x=Math.sqrt(Math.pow(o,2)-Math.pow(m,2)),S=-s*d*x/g,E=s*h*x/g;return[[Oi(u+S,n),Oi(f+E,n)]]},P5=function(e,t,r,n,o,s,u,f,h,d){var g=r[2]||Math.sqrt(Math.pow(r[0],2)+Math.pow(r[1],2)),m=[],x=[],S=[];r[0]&&s==="s"?x.push(e[0]+r[0],e[0]-r[0]):x.push(e[0]+r[0]),r[1]&&s==="s"?S.push(e[1]+r[1],e[1]-r[1]):S.push(e[1]+r[1]);for(var E=0;E<x.length;E++)for(var R=0;R<S.length;R++)m.push([x[E],S[R]]);var B;r[2]?(s="m",B=k5(e,t,o,f,r[2])):s==="s"?B=m.filter(function(O){var L=Math.sqrt(Math.pow(O[0]-e[0],2)+Math.pow(O[1]-e[1],2)),F=Math.sqrt(Math.pow(O[0]-t[0],2)+Math.pow(O[1]-t[1],2));return Math.abs(L-g)<=f&&Math.abs(F-g)<=f}):B=m;var N=O5(e,t,o,s,B);s==="m"&&e[0]===t[0]&&e[1]===t[1]&&(N.sweep=ge);var P=oe.new();return N!=null?(h.add({type:"arc",start:N.start,end:N.end,center:N.center,sweep:N.sweep,radius:g,dir:o}),P=F5(N,g,u,n,o)):d._warn("skipping impossible arc"),P},$5=function(e,t,r,n,o){if(o.add({type:"line",start:e,end:t}),!n){var s=oe.translate(r.box,e),u=oe.translate(r.box,t);return oe.add(s,u)}var f=oe.new();return f=oe.addPoint(f,e),f=oe.addPoint(f,t),f},D5=function(e,t,r,n,o){var s=r.trace[0]/2,u=r.trace[1]/2,f=Math.atan2(t[1]-e[1],t[0]-e[0]),h=e[0]-s,d=e[0]+s,g=e[1]-u,m=e[1]+u,x=t[0]-s,S=t[0]+s,E=t[1]-u,R=t[1]+u,B=[];return e[0]===t[0]&&e[1]===t[1]?B.push([h,g],[d,g],[d,m],[h,m]):f>=0&&f<he?B.push([h,g],[d,g],[S,E],[S,R],[x,R],[h,m]):f>=he&&f<=Ci?B.push([d,g],[d,m],[S,R],[x,R],[x,E],[h,g]):f>=-Ci&&f<-he?B.push([d,m],[h,m],[x,R],[x,E],[S,E],[d,g]):B.push([h,m],[h,g],[x,E],[S,E],[S,R],[d,m]),B.forEach(function(N,P){var O=P<B.length-1?P+1:0;n.add({type:"line",start:N,end:B[O]})}),o._finishPath(),oe.add(oe.translate(r.box,e),oe.translate(r.box,t))},U5=function(e,t,r,n,o,s,u,f,h,d){var g=u||n&&n.trace.length>0,m=u||n&&n.trace.length===1,x=n?n.code:"[NO TOOL SET]";return g?o==="i"?u||n.trace.length===1?$5(e,t,n,u,h):D5(e,t,n,h,d):m?P5(e,t,r,n,o,s,u,f,h,d):(d._warn("cannot draw arc with non-circular tool "+x+"; ignoring interpolate"),oe.new()):(d._warn("tool "+x+" is not strokable; ignoring interpolate"),oe.new())},G5=function(e,t,r,n,o,s,u,f,h,d){var g=[t.x!=null?t.x:r[0],t.y!=null?t.y:r[1]],m=[t.i!=null?t.i:0,t.j!=null?t.j:0,t.a],x;switch(e){case"flash":x=C5(g,n,u,d);break;case"int":x=U5(r,g,m,n,o,s,u,h,f,d);break;default:x=oe.new();break}return{pos:g,box:x}},q5=G5,ha=_r.Transform,z5=ke,ca=i5,W5=a5,H5=j5,Z5=q5,vt=Sr,X5=11e-5,Y5=function(e){return e==="units"||e==="backupUnits"||e==="nota"||e==="backupNota"},$e=function(e,t,r,n,o,s){ha.call(this,{readableObjectMode:!0,writableObjectMode:!0}),this.format={units:e,backupUnits:t||"in",nota:r,backupNota:n||"A"},this._formatLock={units:e!=null,backupUnits:t!=null,nota:r!=null,backupNota:n!=null},this._plotAsOutline=s===!0?X5:s,(e||this.format.backupUnits)==="in"&&(this._plotAsOutline=this._plotAsOutline/25.4),this._optimizePaths=o||s,this._line=0,this._done=!1,this._tool=null,this._outTool=null,this._tools={},this._macros={},this._pos=[0,0],this._box=vt.new(),this._mode=null,this._arc=null,this._region=!1,this._path=new ca(this._optimizePaths,this._plotAsOutline),this._epsilon=null,this._lastOp=null,this._stepRep=[]};z5($e,ha);$e.prototype._finishPath=function(e){var t=this._path.traverse();if(this._path=new ca(!e&&this._optimizePaths,this._plotAsOutline),t.length){var r=this._plotAsOutline?this._outTool:this._tool;!this._region&&r.trace.length===1?this.push({type:"stroke",width:r.trace[0],path:t}):this.push({type:"fill",path:t})}};$e.prototype._warn=function(e){this.emit("warning",W5(e,this._line))};$e.prototype._checkFormat=function(){this.format.units||(this.format.units=this.format.backupUnits,this._warn("units not set; using backup units: "+this.format.units)),this.format.nota||(this.format.nota=this.format.backupNota,this._warn("notation not set; using backup notation: "+this.format.nota))};$e.prototype._updateBox=function(e){var t=this._stepRep.length;if(!t)this._box=vt.add(this._box,e);else{var r=vt.repeat(e,this._stepRep[t-1]);this._box=vt.add(this._box,r)}};$e.prototype._transform=function(e,t,r){var n=e.type;if(this._line=e.line,this._done)return this._warn("ignoring extra command recieved after done command"),r();if(n==="op"){this._checkFormat();var o=e.op,s=e.coord;if(this.nota==="I"){var u=this;s=Object.keys(s).reduce(function(O,L){var F=s[L];return L==="x"?O[L]=u._pos[0]+F:L==="y"?O[L]=u._pos[1]+F:O[L]=F,O},{})}o==="last"&&(this._warn("modal operation commands are deprecated"),o=this._lastOp),o==="int"&&(this._mode==null&&(this._warn("no interpolation mode specified; assuming linear"),this._mode="i"),this._arc==null&&this._mode.slice(-2)==="cw"&&!s.a&&(this._warn("quadrant mode unspecified; assuming single quadrant"),this._arc="s")),this._plotAsOutline&&(this._outTool=this._tool);var f=Z5(o,s,this._pos,this._tool,this._mode,this._arc,this._region||this._plotAsOutline,this._path,this._epsilon,this);this._lastOp=o,this._pos=f.pos,this._updateBox(f.box)}else if(n==="set"){var h=e.prop,d=e.value;h==="region"?(this._finishPath(d),this._region=d):Y5(h)&&!this._formatLock[h]?(this.format[h]=d,(h==="units"||h==="nota")&&(this._formatLock[h]=!0)):h==="tool"?this._region?this._warn("cannot change tool while region mode is on"):this._tools[d]?this._outTool||(this._finishPath(),this._tool=this._tools[d]):this._warn("tool "+d+" is not defined"):this["_"+h]=d}else if(n==="tool"){var g=e.code,m=e.tool;this._tools[g]&&this._warn("tool "+g+" is already defined; overwriting definition");var x=H5(m,this._macros),S={code:g,trace:[],pad:x.shape,flashed:!1,box:x.box};(m.shape==="circle"||m.shape==="rect")&&m.hole.length===0&&(S.trace=m.params),this._outTool||(this._finishPath(),this._tools[g]=S,this._tool=S)}else if(n==="macro")this._macros[e.name]=e.blocks;else if(n==="level"){var E=e.level,R=e.value;if(this._finishPath(),E==="polarity")this.push({type:"polarity",polarity:R==="C"?"clear":"dark",box:this._box.slice(0)});else{var B=[];if(R.x>1||R.y>1)for(var N=0;N<R.x;N++)for(var P=0;P<R.y;P++)B.push([N*R.i,P*R.j]);this._stepRep=B,this.push({type:"repeat",offsets:this._stepRep.slice(0),box:this._box.slice(0)})}}else n==="done"&&(this._done=!0);return r()};$e.prototype._flush=function(e){this._finishPath(),this.push({type:"size",box:this._box,units:this.format.units}),e()};var V5=$e,K5=V5,Fi=function(e){if(e==="A"||e==="I")return e;throw new Error('notation must be "in" or "mm"')},ki=function(e){if(e==="in"||e==="mm")return e;throw new Error('units must be "in" or "mm"')},J5=function(t){t=t||{};var r=t.units?ki(t.units):null,n=t.backupUnits?ki(t.backupUnits):null,o=t.nota?Fi(t.nota):null,s=t.backupNota?Fi(t.backupNota):null;return new K5(r,n,o,s,t.optimizePaths,t.plotAsOutline)};/*!
+ * escape-html
+ * Copyright(c) 2012-2013 TJ Holowaychuk
+ * Copyright(c) 2015 Andreas Lubbe
+ * Copyright(c) 2015 Tiancheng "Timothy" Gu
+ * MIT Licensed
+ */var Q5=/["'&<>]/,e0=t0;function t0(e){var t=""+e,r=Q5.exec(t);if(!r)return t;var n,o="",s=0,u=0;for(s=r.index;s<t.length;s++){switch(t.charCodeAt(s)){case 34:n="&quot;";break;case 38:n="&amp;";break;case 39:n="&#39;";break;case 60:n="&lt;";break;case 62:n="&gt;";break;default:continue}u!==s&&(o+=t.substring(u,s)),u=s+1,o+=n}return u!==s?o+t.substring(u,s):o}var Gt=e0,da=function(t,r,n){r=r||{},n=n||[];var o="<"+Gt(t),s=Object.keys(r).reduce(function(f,h){var d=r[h],g=d!=null?" "+Gt(h)+'="'+Gt(d)+'"':"";return f+g},""),u=n.length?">"+n.join("")+"</"+t+">":"/>";return o+s+u},ft=function(e){return Math.round(1e10*e)/1e7},r0=function(e,t,r){return r("rect",{x:ft(e[0]),y:ft(e[1]),width:ft(e[2]-e[0]),height:ft(e[3]-e[1]),fill:t})},i0=function(e,t,r){var n="url(#"+e+")";return r("g",{mask:n},t)},n0=function(e,t,r,n){r=[r0(t,"#fff",n)].concat(r);var o={id:e,fill:"#000",stroke:"#000"};return n("mask",o,[n("g",{},r)])},It={shift:ft,maskLayer:i0,createMask:n0},Tr=It,xe=Tr.shift,Pi=Tr.createMask,a0=Tr.maskLayer,Nt=function(e,t,r){return{tag:e,attr:t,children:r||[]}},fr=function(e,t,r,n){var o={cx:xe(e),cy:xe(t),r:xe(r)};return n!=null&&(o["stroke-width"]=xe(n),o.fill="none"),Nt("circle",o)},pa=function(e,t,r,n,o){var s={x:xe(e-n/2),y:xe(t-o/2),width:xe(n),height:xe(o)};return r&&(s.rx=xe(r),s.ry=xe(r)),Nt("rect",s)},va=function(e){var t=e.map(function(r){return r.map(xe).join(",")}).join(" ");return Nt("polygon",{points:t})},o0=function(e,t,r,n,o){var s=e+"mask-"+t,u="url(#"+s+")",f=fr(n.cx,n.cy,n.r,n.width),h=o("mask",{id:s,stroke:"#fff"},[o(f.tag,f.attr)]),d=r.map(function(m){var x=m.type==="rect"?pa(m.cx,m.cy,m.r,m.width,m.height):va(m.points);return o(x.tag,x.attr)}),g=Nt("g",{mask:u},d);return{mask:h,layer:g}},s0=function(t,r,n,o){var s=t+"_pad-"+r,u=s+"_",f=n.reduce(function(h,d,g){var m;switch(d.type){case"circle":m=fr(d.cx,d.cy,d.r);break;case"ring":m=fr(d.cx,d.cy,d.r,d.width);break;case"rect":m=pa(d.cx,d.cy,d.r,d.width,d.height);break;case"poly":m=va(d.points);break;case"clip":var x=o0(u,g,d.shape,d.clip,o);h.masks.push(x.mask),m=x.layer;break;case"layer":if(h.count++,h.last=d.polarity,d.polarity==="clear"){var S=u+h.count;h.maskId=S,h.maskBox=d.box.slice(0),h.maskChildren=[],h.layers=[a0(S,h.layers,o)]}else{var E=Pi(h.maskId,h.maskBox,h.maskChildren,o);h.masks.push(E)}break}if(m){n.length===1&&(m.attr.id=s);var R=o(m.tag,m.attr,m.children);h.last==="dark"?h.layers.push(R):h.maskChildren.push(R)}return h},{count:0,last:"dark",layers:[],maskId:"",maskBox:[],maskChildren:[],masks:[]});return f.last==="clear"&&f.masks.push(Pi(f.maskId,f.maskBox,f.maskChildren,o)),n.length>1&&(f.layers=o("g",{id:s},f.layers)),f.masks.concat(f.layers)},f0=It,$i=f0.shift,u0=function(t,r,n,o,s){var u="#"+t+"_pad-"+r;return s("use",{"xlink:href":u,x:$i(n),y:$i(o)})},l0=It,Fe=l0.shift,h0=function(e,t){return e[0]===t[0]&&e[1]===t[1]},c0=function(e){return"M "+Fe(e[0])+" "+Fe(e[1])},ga=function(e,t){var r=e==="L"||e==="M"?"":"L ";return r+Fe(t[0])+" "+Fe(t[1])},ur=function(e,t,r,n,o,s){if(r===0)return ga(e,o);if(r===2*Math.PI){var u=[2*s[0]-o[0],2*s[1]-o[1]],f=ur(e,t,Math.PI,n,u,s),h=ur("A",t,Math.PI,n,o,s);return f+" "+h}var d=e==="A"?"":"A ";return t=Fe(t),d+=t+" "+t+" 0 ",d+=r>Math.PI?"1 ":"0 ",d+=n==="ccw"?"1 ":"0 ",d+=Fe(o[0])+" "+Fe(o[1]),d},d0=function(e,t){var r=t.type,n=t.start,o=t.end;return h0(e.last,n)||(e.data+=(e.data?" ":"")+c0(n),e.lastCmd="M"),e.data+=" ",r==="line"?(e.data+=ga(e.lastCmd,o),e.lastCmd="L"):(e.data+=ur(e.lastCmd,t.radius,t.sweep,t.dir,o,t.center),e.lastCmd="A"),e.last=o,e},p0=function(t,r,n){var o=t.reduce(d0,{last:[],data:""}).data,s={d:o};return r!=null&&(s.fill="none",s["stroke-width"]=Fe(r)),n("path",s)},v0=da,ya=function(e,t,r){var n=r||v0,o={version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"0","fill-rule":"evenodd",width:e.width+e.units,height:e.height+e.units,viewBox:e.viewBox.join(" ")};typeof t=="string"&&(t={id:t}),Object.keys(t||{}).forEach(function(h){var d=t[h];d!=null&&(o[h]=d)});var s=[];if(e.layer.length){e.defs.length&&s.push(n("defs",{},e.defs));var u=e.viewBox[3]+2*e.viewBox[1],f="translate(0,"+u+") scale(1,-1)";s.push(n("g",{transform:f,fill:"currentColor",stroke:"currentColor"},e.layer))}return n("svg",o,s)},ma=_r.Transform,g0=ke,_a=lt,y0=s0,m0=u0,Di=p0,Ar=It,_0=ya,Oe=Ar.shift,wa=Ar.maskLayer,w0=Ar.createMask,b0=0,lr=1,ba=2,Ae=function(e,t,r,n){ma.call(this,{writableObjectMode:!0,readableObjectMode:n}),this.id=e,this.attributes=t,this.defs=[],this.layer=[],this.viewBox=[0,0,0,0],this.width=0,this.height=0,this.units="",this._maskId="",this._maskBox=[],this._mask=[],this._blockMode=!1,this._blockBox=[],this._block=[],this._blockCount=0,this._blockLayerCount=0,this._offsets=[],this._clearCount=0,this._lastLayer=0,this._blockCount=0,this._blockCount=0,this._element=r};g0(Ae,ma);Ae.prototype._transform=function(e,t,r){switch(e.type){case"shape":this.defs=this.defs.concat(y0(this.id,e.tool,e.shape,this._element));break;case"pad":this._draw(m0(this.id,e.tool,e.x,e.y,this._element));break;case"fill":this._draw(Di(e.path,null,this._element));break;case"stroke":this._draw(Di(e.path,e.width,this._element));break;case"polarity":this._handleNewPolarity(e.polarity,e.box);break;case"repeat":this._handleNewRepeat(e.offsets,e.box);break;case"size":this._handleSize(e.box,e.units)}r()};Ae.prototype._flush=function(e){this._handleNewRepeat([]),this.push(_0(this,this.attributes,this._element)),e()};Ae.prototype._finishBlockLayer=function(){if(this._block.length){this._blockLayerCount++;var e=this.id+"_block-"+this._blockCount+"-"+this._blockLayerCount;this.defs.push(this._element("g",{id:e},this._block)),this._block=[]}};Ae.prototype._finishClearLayer=function(){return this._maskId?(this.defs.push(w0(this._maskId,this._maskBox,this._mask,this._element)),this._maskId="",this._maskBox=[],this._mask=[],!0):!1};Ae.prototype._handleNewPolarity=function(e,t){if(this._blockMode)return this._blockLayerCount===0&&!this._block.length&&(this._blockMode=e==="dark"?lr:ba),this._finishBlockLayer();this._clearCount=e==="clear"?this._clearCount+1:this._clearCount;var r=this.id+"_clear-"+this._clearCount;e==="clear"?(this.layer=[wa(r,this.layer,this._element)],this._maskId=r,this._maskBox=t.slice(0)):this._finishClearLayer(t)};Ae.prototype._handleNewRepeat=function(e,t){var r=e.length===0,n=this._finishClearLayer();this._finishBlockLayer();var o=this.layer,s=this._element,u=this._blockMode,f=this._blockLayerCount,h=this.id+"_block-"+this._blockCount+"-";if(this._offsets.forEach(function(g){for(var m=u;m<=f;m+=2)o.push(s("use",{"xlink:href":"#"+h+m,x:Oe(g[0]),y:Oe(g[1])}))}),f>2-u){var d=h+"clear";this.layer=[wa(d,o,this._element)],this._maskId=d,this._maskBox=this._blockBox.slice(0),this._mask=this._offsets.reduce(function(g,m){for(var x,S=1;S<=f;S++){x=u===lr?S%2===1:S%2===0;var E={"xlink:href":"#"+h+S,x:Oe(m[0]),y:Oe(m[1])};x&&(E.fill="#fff",E.stroke="#fff"),g.push(s("use",E))}return g},[]),n=this._finishClearLayer()}this._offsets=e,r?this._blockMode=b0:(this._blockMode=n?ba:lr,this._blockCount++,this._blockLayerCount=0,this._blockBox=t.every(_a)?t:[0,0,0,0])};Ae.prototype._handleSize=function(e,t){if(e.every(_a)){var r=Oe(e[0]),n=Oe(e[1]),o=Oe(e[2]-e[0]),s=Oe(e[3]-e[1]);this.viewBox=[r,n,o,s],this.width=o/1e3,this.height=s/1e3,this.units=t}};Ae.prototype._draw=function(e){this._blockMode?this._block.push(e):this._maskId?this._mask.push(e):this.layer.push(e)};var x0=Ae,E0=["id","attributes","defs","layer","viewBox","width","height","units"],M0=function(t){return E0.reduce(function(r,n){var o=t[n];return o!=null&&(r[n]=t[n]),r},{})},R0=eo,S0=M3,T0=J5,A0=da,B0=x0,I0=ya,N0=M0,L0=function(e){typeof e=="string"?e={id:e}:e||(e={});var t={id:R0.ensure(e.id),attributes:e.attributes||{},createElement:e.createElement||A0,objectMode:e.objectMode==null?!1:e.objectMode,parser:{places:e.places,zero:e.zero,filetype:e.filetype},plotter:{units:e.units,backupUnits:e.backupUnits,nota:e.nota,backupNota:e.backupNota,optimizePaths:e.optimizePaths,plotAsOutline:e.plotAsOutline}};return t};St.exports=function(t,r,n){typeof r=="function"&&(n=r,r=null);var o=L0(r),s=n!=null,u=new B0(o.id,o.attributes,o.createElement,o.objectMode),f=S0(o.parser),h=T0(o.plotter);if(u.parser=f,u.plotter=h,f.on("warning",function(x){u.emit("warning",x)}),h.on("warning",function(x){u.emit("warning",x)}),f.once("error",function(x){u.emit("error",x)}),h.once("error",function(x){u.emit("error",x)}),f.once("end",function(){u.filetype=f.format.filetype}),t.pipe?(t.setEncoding("utf8"),t.pipe(f)):process.nextTick(function(){f.write(t),f.end()}),f.pipe(h).pipe(u),s){var d="",g=function(){return n(null,d)};u.on("readable",function(){var x;do x=u.read()||"",d+=x;while(x)}),u.once("end",g),u.once("error",function(m){return u.removeListener("end",g),n(m)})}return u};St.exports.render=I0;St.exports.clone=N0;var j0=St.exports;const C0=hr(j0);window.Buffer=it.Buffer;window.process=Ba;window.EventEmitter=za;document.getElementById("body");let gt=document.getElementById("previewSVG");const bt=["Edge_Cuts","profile","B_Cu","copper_bottom","F_Cu","copper_top","B_Mask","soldermask_bottom","F_Mask","soldermask_top","B_Paste","solderpaste_bottom","F_Paste","solderpaste_top","drill","B_Silkscreen","B_Silks","silkscreen_bottom","F_Silkscreen","F_Silks","silkscreen_top"],Ui={Edge_Cuts:[70,105,58,1],profile:[70,105,58,1],B_Cu:[30,130,220,.8],copper_bottom:[30,130,220,.8],F_Cu:[89,165,82,.8],copper_top:[89,165,82,.8],B_Mask:[200,177,170,.6],soldermask_bottom:[200,177,170,.6],F_Mask:[239,177,58,1],soldermask_top:[239,177,58,1],B_Paste:[200,20,230,.2],solderpaste_bottom:[200,20,230,.2],F_Paste:[200,20,230,.3],solderpaste_top:[200,20,230,.3],drill:[120,120,120,1],B_Silkscreen:[255,255,255,.6],B_Silks:[255,255,255,.6],silkscreen_bottom:[255,255,255,.6],F_Silkscreen:[255,255,255,1],F_Silks:[255,255,255,1],silkscreen_top:[255,255,255,1]};let xt=[],Et=null,D={fillEdge:!0,transparent:!1,blackAndWhite:!1,asSVG:!1,dpi:1e3,svgOrig:[NaN,NaN],lockOrig:!1,svgDim:[NaN,NaN],lockDim:!1,svgMargin:[0,0]};function Gi(){if(Et===null)gt.outerHTML='<svg id="previewSVG"></svg>';else{let e=new XMLSerializer;gt.outerHTML=e.serializeToString(Et)}gt=document.getElementById("previewSVG")}function Br(e=!1){let t=new DOMParser;if(Et=t.parseFromString('<svg id="previewSVG" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"></svg>',"text/xml"),xt.length==0){Gi();return}let r=xt.toSorted((E,R)=>bt.indexOf(E[0])-bt.indexOf(R[0])),n,o,s=Number.MAX_VALUE,u=-Number.MAX_VALUE,f=Number.MAX_VALUE,h=-Number.MAX_VALUE,d=Et.childNodes[0];d.setAttribute("stroke-linecap","round"),d.setAttribute("stroke-linejoin","round"),d.setAttribute("stroke-width","0"),d.setAttribute("fill-rule","evenodd");let g,m,x;for([n,o]of r)m=t.parseFromString(o,"text/xml"),x=m.childNodes[0],g=x.getAttribute("viewBox").split(" ").map(E=>Number(E)),x.childNodes.length!=0&&(s=Math.min(s,g[0]),u=Math.max(u,g[0]+g[2]),f=Math.min(f,g[1]),h=Math.max(h,g[1]+g[3]));e||((!D.lockOrig||isNaN(D.svgOrig[0]))&&(D.svgOrig[0]=s/1e3,D.svgOrig[1]=f/1e3),(!D.lockDim||isNaN(D.svgDim[0]))&&(D.svgDim[0]=(u-s)/1e3,D.svgDim[1]=(h-f)/1e3)),P0();let S=[D.svgOrig[0]-D.svgMargin[0],D.svgOrig[1]-D.svgMargin[1],D.svgDim[0]+2*D.svgMargin[0],D.svgDim[1]+2*D.svgMargin[1]].map(E=>E*1e3);if(d.setAttribute("viewBox",S.join(" ")),d.setAttribute("width",`${(S[2]/1e3).toFixed(3)}mm`),d.setAttribute("height",`${(S[3]/1e3).toFixed(3)}mm`),!D.transparent){let E=d.ownerDocument.createElement("rect");D.blackAndWhite?E.setAttribute("fill","rgb(0,0,0)"):E.setAttribute("fill","rgb(255,255,255)"),E.setAttribute("x",S[0]),E.setAttribute("y",S[1]),E.setAttribute("width",S[2]),E.setAttribute("height",S[3]),d.appendChild(E)}for([n,o]of r){m=t.parseFromString(o,"text/xml"),x=m.childNodes[0],g=x.getAttribute("viewBox").split(" ").map(B=>Number(B));let E="rgb("+Ui[n].slice(0,3).join(",")+")",R=Ui[n][3];for(let B of x.childNodes){if(B.tagName=="g"){const N=/translate\([-.\d]+,\s*([-.\d]+)\)/,P=B.getAttribute("transform").match(N);let O=Number(P[1]);O+=S[1]+S[3]-(g[1]+g[3]),O+=S[1]-g[1],B.setAttribute("transform",`translate(0, ${O}) scale(1, -1)`),D.blackAndWhite?(B.setAttribute("opacity",1),B.setAttribute("fill","rgb(255,255,255)"),B.setAttribute("stroke","rgb(255,255,255)")):(B.setAttribute("opacity",R),B.setAttribute("fill",E),B.setAttribute("stroke",E)),B.childNodes.forEach(L=>{["profile","Edge_Cuts"].includes(n)&&D.fillEdge&&(L.removeAttribute("fill"),L.setAttribute("stroke","none"))})}d.appendChild(B.cloneNode(!0))}}Gi()}function O0(e,t="file.txt"){if(window.navigator&&window.navigator.msSaveOrOpenBlob)return window.navigator.msSaveOrOpenBlob(e);const r=window.URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,n.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})),setTimeout(()=>{window.URL.revokeObjectURL(r),n.remove()},100)}async function F0(e=!1){if(e)return;let t=new XMLSerializer().serializeToString(gt),r="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(t);if(D.asSVG){let n=document.createElement("a");n.href=r,n.download="render.svg",document.body.appendChild(n),n.click(),document.body.removeChild(n)}else{let n=D.dpi/96,o=new Image,s=document.getElementById("canvas"),u=D.svgDim[0]+2*D.svgMargin[0],f=D.svgDim[1]+2*D.svgMargin[1],h=Math.floor(D.dpi*u/25.4),d=Math.floor(D.dpi*f/25.4);s.width=h,s.height=d;let g=s.getContext("2d");g.scale(n,n),o.addEventListener("load",async m=>{g.drawImage(m.target,0,0,m.target.width,m.target.height),s.toBlob(async x=>{let S={pHYs:{x:Math.round(1e3*D.dpi/25.4),y:Math.round(1e3*D.dpi/25.4),units:1},tExt:{Software:"gerber2img"}},E=await Va(x,S);O0(E,"render.png")})}),o.src=r}}var nt=document.getElementById("dropZone");function k0(){nt.style.visibility="visible"}function xa(){nt.style.visibility="hidden"}window.addEventListener("dragenter",e=>{k0()});function Ea(e){e.dataTransfer.dropEffect="copy",e.preventDefault()}nt.addEventListener("dragenter",Ea);nt.addEventListener("dragover",Ea);nt.addEventListener("dragleave",e=>{xa()});nt.addEventListener("drop",e=>{if(e.preventDefault(),xa(),!e.dataTransfer.items)return;let t=[];for(let r of e.dataTransfer.files){let n;if(r.name.endsWith(".xln")||r.name.endsWith(".drl"))n="drill";else{if(!r.name.endsWith(".gbr"))continue;let s=r.name.replace(".gbr",""),u=-1;for(let f in bt)if(n=bt[f],s.endsWith(n)){u=f;break}if(u==-1)continue}let o=new Promise((s,u)=>{const f=new FileReader;f.onload=h=>{const d={encoding:"utf8",optimizePaths:!0};C0(f.result,d,(g,m)=>{s(g?null:[n,m])})},f.onerror=u,f.readAsText(r)});t.push(o)}Promise.all(t).then(r=>{xt=r,Br()})});function Ma(){let e=document.getElementById("settingsFill"),t=document.getElementById("settingsBW"),r=document.getElementById("settingsTransparent"),n=document.getElementById("settingsAsSVG"),o=document.getElementById("settingsDPI"),s=document.getElementById("settingsOrigX"),u=document.getElementById("settingsOrigY"),f=document.getElementById("settingsDimX"),h=document.getElementById("settingsDimY"),d=document.getElementById("settingsMarginX"),g=document.getElementById("settingsMarginY");D.fillEdge=e.checked,D.blackAndWhite=t.checked,D.transparent=r.checked,D.asSVG=n.checked,D.dpi=Number(o.value),D.svgMargin=[Number(d.value),Number(g.value)],D.svgOrig=[Number(s.value),Number(u.value)],D.svgDim=[Number(f.value),Number(h.value)]}function P0(){let e=document.getElementById("settingsOrigX"),t=document.getElementById("settingsOrigY"),r=document.getElementById("settingsDimX"),n=document.getElementById("settingsDimY");e.value=D.svgOrig[0],t.value=D.svgOrig[1],r.value=D.svgDim[0],n.value=D.svgDim[1]}function $0(){for(let e of["settingsFill","settingsAsSVG","settingsBW","settingsTransparent","settingsDPI","settingsOrigX","settingsOrigY","settingsDimX","settingsDimY","settingsMarginX","settingsMarginY"])document.getElementById(e).addEventListener("change",()=>{Ma(),Br(!0)})}let qt=document.getElementById("settingsLockOrig"),zt=document.getElementById("settingsLockDim");qt.addEventListener("click",()=>{let e=document.getElementById("settingsOrigX"),t=document.getElementById("settingsOrigY");D.lockOrig?(e.disabled=!1,t.disabled=!1,D.lockOrig=!1,qt.innerHTML="🔓"):(e.disabled=!0,t.disabled=!0,D.lockOrig=!0,qt.innerHTML="🔒")});zt.addEventListener("click",()=>{let e=document.getElementById("settingsDimX"),t=document.getElementById("settingsDimY");D.lockDim?(e.disabled=!1,t.disabled=!1,D.lockDim=!1,zt.innerHTML="🔓"):(e.disabled=!0,t.disabled=!0,D.lockDim=!0,zt.innerHTML="🔒")});document.getElementById("downloadRenderButton").addEventListener("click",async()=>{await F0(!1)});$0();Ma();xt=JSON.parse('[["Edge_Cuts","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"34.39mm\\" height=\\"38.835mm\\" viewBox=\\"52655 -71170 34390 38835\\"><g transform=\\"translate(0,-103505) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 86995 -34925 A 2540 2540 0 0 1 84455 -32385 L 55245 -32385 A 2540 2540 0 0 1 52705 -34925 L 52705 -68580 A 2540 2540 0 0 1 55245 -71120 L 84455 -71120 A 2540 2540 0 0 1 86995 -68580 L 86995 -34925\\" fill=\\"none\\" stroke-width=\\"100\\"/></g></svg>"],["F_Cu","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"32.531mm\\" height=\\"34.7mm\\" viewBox=\\"53775 -68780 32531 34700\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"uZojfCN5iBEs_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"uZojfCN5iBEs_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"uZojfCN5iBEs_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"uZojfCN5iBEs_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"uZojfCN5iBEs_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"uZojfCN5iBEs_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"uZojfCN5iBEs_pad-16\\"/></defs><g transform=\\"translate(0,-102860) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/><path d=\\"M 77765 -67310 78105 -66970 78105 -65450 79375 -65450 79375 -67050 79375 -66720 M 79375 -67050 79635 -67310 81280 -67310 81915 -66675 81915 -65450 83140 -65450 85090 -63500 85090 -48895 84995 -48800 82550 -48800 M 85090 -48895 85090 -42545 80645 -38100 77470 -38100 79450 -38100 M 56515 -67310 71120 -67310 77765 -67310 M 71215 -67215 71120 -67310 M 55270 -60915 55270 -61550 55270 -66065 56515 -67310 M 71215 -55880 71215 -67215 M 81915 -68580 86106 -64389 86106 -41910 79756 -35560 77470 -35560 79450 -35560 M 60039.002 -59404.002 54260.998 -59404.002 53975 -59690 53975 -66675 55880 -68580 81915 -68580 M 60350 -59715 60039.002 -59404.002 M 60350 -61550 60350 -59715 M 81915 -59690 81915 -61550 M 77470 -48260 74930 -50800 74930 -56504.295 76845.206 -58419.501 80644.501 -58419.501 81915 -59690 M 74120.499 -49069.501 74120.499 -56839.602 76509.9 -59229.002 77384.002 -59229.002 78105 -59950 78105 -61550 M 77470 -45720 74120.499 -49069.501 M 76835 -60960 73310.998 -57435.998 73310.998 -47339.002 77470 -43180 M 76835 -61550 76835 -60960 M 56515 -56385.488 57914.512 -57785 62300 -57785 65430 -60915 M 56515 -48990 56515 -56385.488 M 57785 -47720 56515 -48990 M 57229.704 -58245 57229 -58245 55372 -56388 55372 -43053 57785 -40640 62235 -40640 M 61769.501 -58594.501 57579.205 -58594.501 57229.704 -58245 M 62890 -59715 61769.501 -58594.501 M 62890 -60915 62890 -59715 M 62235 -48392 62235 -48260 M 58325 -43180 57785 -43720 M 62235 -43180 58325 -43180 M 59595 -51530 59595 -55880 M 60325 -50800 59595 -51530 M 62235 -50800 60325 -50800 M 63595 -55880 67215 -55880 M 77375 -50895 77375 -55880 M 79375 -50800 77470 -50800 77375 -50895 M 81375 -55880 81915 -55880 82550 -55245 82550 -52800\\" fill=\\"none\\" stroke-width=\\"400\\"/></g></svg>"],["F_Mask","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"28.765mm\\" height=\\"32.57mm\\" viewBox=\\"54635 -66650 28765 32570\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"rjjz4qFsGmhm_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"rjjz4qFsGmhm_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"rjjz4qFsGmhm_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"rjjz4qFsGmhm_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"rjjz4qFsGmhm_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"rjjz4qFsGmhm_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"rjjz4qFsGmhm_pad-16\\"/></defs><g transform=\\"translate(0,-100730) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/></g></svg>"],["F_Silkscreen","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"31.927400000000002mm\\" height=\\"41.975mm\\" viewBox=\\"53940 -73040 31927.4 41975\\"><g transform=\\"translate(0,-104105) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 83026.2 -34999.533 83059.533 -34932.866 83126.2 -34866.2 83226.2 -34766.2 83259.533 -34699.533 83259.533 -34632.866 M 83192.866 -34932.866 83126.2 -34866.2 83092.866 -34799.533 83092.866 -34666.2 83126.2 -34599.533 83192.866 -34532.866 83326.2 -34499.533 83559.533 -34499.533 83692.866 -34532.866 83759.533 -34599.533 83792.866 -34666.2 83792.866 -34799.533 83759.533 -34866.2 83692.866 -34932.866 83559.533 -34966.2 83326.2 -34966.2 83192.866 -34932.866 M 83559.533 -35566.199 83092.866 -35566.199 M 83559.533 -35266.199 83192.866 -35266.199 83126.2 -35299.533 83092.866 -35366.199 83092.866 -35466.199 83126.2 -35532.866 83159.533 -35566.199 M 83126.2 -36166.199 83092.866 -36099.532 83092.866 -35966.199 83126.2 -35899.532 83192.866 -35866.199 83459.533 -35866.199 83526.2 -35899.532 83559.533 -35966.199 83559.533 -36099.532 83526.2 -36166.199 83459.533 -36199.532 83392.866 -36199.532 83326.2 -35866.199 M 83559.533 -36499.532 83092.866 -36499.532 M 83492.866 -36499.532 83526.2 -36532.866 83559.533 -36599.532 83559.533 -36699.532 83526.2 -36766.199 83459.533 -36799.532 83092.866 -36799.532 M 83559.533 -37032.865 83559.533 -37299.532 M 83792.866 -37132.865 83192.866 -37132.865 83126.2 -37166.199 83092.866 -37232.865 83092.866 -37299.532 M 83092.866 -37532.865 83559.533 -37532.865 M 83792.866 -37532.865 83759.533 -37499.532 83726.2 -37532.865 83759.533 -37566.199 83792.866 -37532.865 83726.2 -37532.865 M 83559.533 -37866.198 83092.866 -37866.198 M 83492.866 -37866.198 83526.2 -37899.532 83559.533 -37966.198 83559.533 -38066.198 83526.2 -38132.865 83459.533 -38166.198 83092.866 -38166.198 M 83459.533 -39266.198 83426.2 -39366.198 83392.866 -39399.531 83326.2 -39432.864 83226.2 -39432.864 83159.533 -39399.531 83126.2 -39366.198 83092.866 -39299.531 83092.866 -39032.864 83792.866 -39032.864 83792.866 -39266.198 83759.533 -39332.864 83726.2 -39366.198 83659.533 -39399.531 83592.866 -39399.531 83526.2 -39366.198 83492.866 -39332.864 83459.533 -39266.198 83459.533 -39032.864 M 83092.866 -39832.864 83126.2 -39766.198 83159.533 -39732.864 83226.2 -39699.531 83426.2 -39699.531 83492.866 -39732.864 83526.2 -39766.198 83559.533 -39832.864 83559.533 -39932.864 83526.2 -39999.531 83492.866 -40032.864 83426.2 -40066.198 83226.2 -40066.198 83159.533 -40032.864 83126.2 -39999.531 83092.866 -39932.864 83092.866 -39832.864 M 83092.866 -40466.197 83126.2 -40399.531 83192.866 -40366.197 83792.866 -40366.197 M 83126.2 -40699.531 83092.866 -40766.198 83092.866 -40899.531 83126.2 -40966.198 83192.866 -40999.531 83226.2 -40999.531 83292.866 -40966.198 83326.2 -40899.531 83326.2 -40799.531 83359.533 -40732.864 83426.2 -40699.531 83459.533 -40699.531 83526.2 -40732.864 83559.533 -40799.531 83559.533 -40899.531 83526.2 -40966.198 M 83126.2 -41566.198 83092.866 -41499.531 83092.866 -41366.198 83126.2 -41299.531 83192.866 -41266.198 83459.533 -41266.198 83526.2 -41299.531 83559.533 -41366.198 83559.533 -41499.531 83526.2 -41566.198 83459.533 -41599.531 83392.866 -41599.531 83326.2 -41266.198 M 83826.2 -41499.531 83726.2 -41399.531 M 83126.2 -42166.198 83092.866 -42099.531 83092.866 -41966.198 83126.2 -41899.531 83192.866 -41866.198 83459.533 -41866.198 83526.2 -41899.531 83559.533 -41966.198 83559.533 -42099.531 83526.2 -42166.198 83459.533 -42199.531 83392.866 -42199.531 83326.2 -41866.198 M 83726.2 -42999.531 83759.533 -43032.864 83792.866 -43099.531 83792.866 -43266.198 83759.533 -43332.864 83726.2 -43366.198 83659.533 -43399.531 83592.866 -43399.531 83492.866 -43366.198 83092.866 -42966.198 83092.866 -43399.531 M 83792.866 -43832.865 83792.866 -43899.531 83759.533 -43966.198 83726.2 -43999.531 83659.533 -44032.865 83526.2 -44066.198 83359.533 -44066.198 83226.2 -44032.865 83159.533 -43999.531 83126.2 -43966.198 83092.866 -43899.531 83092.866 -43832.865 83126.2 -43766.198 83159.533 -43732.865 83226.2 -43699.531 83359.533 -43666.198 83526.2 -43666.198 83659.533 -43699.531 83726.2 -43732.865 83759.533 -43766.198 83792.866 -43832.865 M 83726.2 -44332.865 83759.533 -44366.198 83792.866 -44432.865 83792.866 -44599.532 83759.533 -44666.198 83726.2 -44699.532 83659.533 -44732.865 83592.866 -44732.865 83492.866 -44699.532 83092.866 -44299.532 83092.866 -44732.865 M 83792.866 -44966.199 83792.866 -45399.532 83526.2 -45166.199 83526.2 -45266.199 83492.866 -45332.865 83459.533 -45366.199 83392.866 -45399.532 83226.2 -45399.532 83159.533 -45366.199 83126.2 -45332.865 83092.866 -45266.199 83092.866 -45066.199 83126.2 -44999.532 83159.533 -44966.199 M 78740 -69469 78740 -69215 M 80010 -69469 80010 -69215 M 78740 -69469 80010 -69469\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 81607.428 -58547.142 81893.142 -58347.142 M 81607.428 -58204.285 82207.428 -58204.285 82207.428 -58432.856 82178.857 -58489.999 82150.285 -58518.57 82093.142 -58547.142 82007.428 -58547.142 81950.285 -58518.57 81921.714 -58489.999 81893.142 -58432.856 81893.142 -58204.285 M 81636 -58775.713 81607.428 -58861.428 81607.428 -59004.285 81636 -59061.428 81664.571 -59089.999 81721.714 -59118.57 81778.857 -59118.57 81836 -59089.999 81864.571 -59061.428 81893.142 -59004.285 81921.714 -58889.999 81950.285 -58832.856 81978.857 -58804.285 82036 -58775.713 82093.142 -58775.713 82150.285 -58804.285 82178.857 -58832.856 82207.428 -58889.999 82207.428 -59032.856 82178.857 -59118.57 M 82207.428 -59289.999 82207.428 -59632.857 M 81607.428 -59461.428 82207.428 -59461.428 M 80337.428 -58604.286 80937.428 -58604.286 80337.428 -58947.143 80937.428 -58947.143 M 80394.571 -59575.714 80366 -59547.142 80337.428 -59461.428 80337.428 -59404.285 80366 -59318.571 80423.142 -59261.428 80480.285 -59232.857 80594.571 -59204.285 80680.285 -59204.285 80794.571 -59232.857 80851.714 -59261.428 80908.857 -59318.571 80937.428 -59404.285 80937.428 -59461.428 80908.857 -59547.142 80880.285 -59575.714\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 70707.742 -65522.999 69979.171 -65522.999 69893.457 -65565.856 69850.6 -65608.714 69807.742 -65694.428 69807.742 -65865.856 69850.6 -65951.571 69893.457 -65994.428 69979.171 -66037.285 70707.742 -66037.285 M 70064.885 -66422.999 70064.885 -66851.571 M 69807.742 -66337.285 70707.742 -66637.285 69807.742 -66937.285 M 69807.742 -67751.571 70236.314 -67451.571 M 69807.742 -67237.285 70707.742 -67237.285 70707.742 -67580.142 70664.885 -67665.857 70622.028 -67708.714 70536.314 -67751.571 70407.742 -67751.571 70322.028 -67708.714 70279.171 -67665.857 70236.314 -67580.142 70236.314 -67237.285 M 70707.742 -68008.714 70707.742 -68523 M 69807.742 -68265.857 70707.742 -68265.857 M 70150.6 -68822.999 70150.6 -69508.714 69979.171 -69337.285 M 70150.6 -69508.714 70322.028 -69337.285\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 78368.857 -67767.142 78397.428 -67710 78397.428 -67624.285 78368.857 -67538.571 78311.714 -67481.428 78254.571 -67452.857 78140.285 -67424.285 78054.571 -67424.285 77940.285 -67452.857 77883.142 -67481.428 77826 -67538.571 77797.428 -67624.285 77797.428 -67681.428 77826 -67767.142 77854.571 -67795.714 78054.571 -67795.714 78054.571 -67681.428 M 77797.428 -68052.857 78397.428 -68052.857 77797.428 -68395.714 78397.428 -68395.714 M 77797.428 -68681.428 78397.428 -68681.428 78397.428 -68824.285 78368.857 -68909.999 78311.714 -68967.142 78254.571 -68995.713 78140.285 -69024.285 78054.571 -69024.285 77940.285 -68995.713 77883.142 -68967.142 77826 -68909.999 77797.428 -68824.285 77797.428 -68681.428 M 77127.428 -67367.142 76527.428 -67567.142 77127.428 -67767.142 M 76584.571 -68310 76556 -68281.428 76527.428 -68195.714 76527.428 -68138.571 76556 -68052.857 76613.142 -67995.714 76670.285 -67967.143 76784.571 -67938.571 76870.285 -67938.571 76984.571 -67967.143 77041.714 -67995.714 77098.857 -68052.857 77127.428 -68138.571 77127.428 -68195.714 77098.857 -68281.428 77070.285 -68310 M 76584.571 -68910 76556 -68881.428 76527.428 -68795.714 76527.428 -68738.571 76556 -68652.857 76613.142 -68595.714 76670.285 -68567.143 76784.571 -68538.571 76870.285 -68538.571 76984.571 -68567.143 77041.714 -68595.714 77098.857 -68652.857 77127.428 -68738.571 77127.428 -68795.714 77098.857 -68881.428 77070.285 -68910\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 85107.4 -34550.333 85074.066 -34650.333 85074.066 -34817 85107.4 -34883.666 85140.733 -34917 85207.4 -34950.333 85274.066 -34950.333 85340.733 -34917 85374.066 -34883.666 85407.4 -34817 85440.733 -34683.666 85474.066 -34617 85507.4 -34583.666 85574.066 -34550.333 85640.733 -34550.333 85707.4 -34583.666 85740.733 -34617 85774.066 -34683.666 85774.066 -34850.333 85740.733 -34950.333 M 85774.066 -35183.667 85074.066 -35350.333 85574.066 -35483.667 85074.066 -35617 85774.066 -35783.667 M 85074.066 -36050.333 85774.066 -36050.333 85774.066 -36217 85740.733 -36317 85674.066 -36383.667 85607.4 -36417 85474.066 -36450.333 85374.066 -36450.333 85240.733 -36417 85174.066 -36383.667 85107.4 -36317 85074.066 -36217 85074.066 -36050.333 M 85807.4 -37250.333 84907.4 -36650.333 M 85774.066 -37483.666 85207.4 -37483.666 85140.733 -37517 85107.4 -37550.333 85074.066 -37617 85074.066 -37750.333 85107.4 -37817 85140.733 -37850.333 85207.4 -37883.666 85774.066 -37883.666 M 85274.066 -38183.666 85274.066 -38516.999 M 85074.066 -38116.999 85774.066 -38350.333 85074.066 -38583.666 M 85074.066 -39216.999 85407.4 -38983.666 M 85074.066 -38816.999 85774.066 -38816.999 85774.066 -39083.666 85740.733 -39150.333 85707.4 -39183.666 85640.733 -39216.999 85540.733 -39216.999 85474.066 -39183.666 85440.733 -39150.333 85407.4 -39083.666 85407.4 -38816.999 M 85774.066 -39416.999 85774.066 -39816.999 M 85074.066 -39616.999 85774.066 -39616.999 M 85074.066 -40883.665 85440.733 -40883.665 85507.4 -40850.332 85540.733 -40783.665 85540.733 -40650.332 85507.4 -40583.665 M 85107.4 -40883.665 85074.066 -40816.999 85074.066 -40650.332 85107.4 -40583.665 85174.066 -40550.332 85240.733 -40550.332 85307.4 -40583.665 85340.733 -40650.332 85340.733 -40816.999 85374.066 -40883.665 M 85074.066 -41516.998 85774.066 -41516.998 M 85107.4 -41516.998 85074.066 -41450.332 85074.066 -41316.998 85107.4 -41250.332 85140.733 -41216.998 85207.4 -41183.665 85407.4 -41183.665 85474.066 -41216.998 85507.4 -41250.332 85540.733 -41316.998 85540.733 -41450.332 85507.4 -41516.998 M 85074.066 -42150.331 85440.733 -42150.331 85507.4 -42116.998 85540.733 -42050.331 85540.733 -41916.998 85507.4 -41850.331 M 85107.4 -42150.331 85074.066 -42083.665 85074.066 -41916.998 85107.4 -41850.331 85174.066 -41816.998 85240.733 -41816.998 85307.4 -41850.331 85340.733 -41916.998 85340.733 -42083.665 85374.066 -42150.331 M 85540.733 -42483.664 84840.733 -42483.664 M 85507.4 -42483.664 85540.733 -42550.331 85540.733 -42683.664 85507.4 -42750.331 85474.066 -42783.664 85407.4 -42816.998 85207.4 -42816.998 85140.733 -42783.664 85107.4 -42750.331 85074.066 -42683.664 85074.066 -42550.331 85107.4 -42483.664 M 85540.733 -43016.997 85540.733 -43283.664 M 85774.066 -43116.997 85174.066 -43116.997 85107.4 -43150.331 85074.066 -43216.997 85074.066 -43283.664 M 85107.4 -43783.664 85074.066 -43716.997 85074.066 -43583.664 85107.4 -43516.997 85174.066 -43483.664 85440.733 -43483.664 85507.4 -43516.997 85540.733 -43583.664 85540.733 -43716.997 85507.4 -43783.664 85440.733 -43816.997 85374.066 -43816.997 85307.4 -43483.664 M 85074.066 -44116.997 85540.733 -44116.997 M 85407.4 -44116.997 85474.066 -44150.331 85507.4 -44183.664 85540.733 -44250.331 85540.733 -44316.997\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 77854.571 -58490 77826 -58461.428 77797.428 -58375.714 77797.428 -58318.571 77826 -58232.857 77883.142 -58175.714 77940.285 -58147.143 78054.571 -58118.571 78140.285 -58118.571 78254.571 -58147.143 78311.714 -58175.714 78368.857 -58232.857 78397.428 -58318.571 78397.428 -58375.714 78368.857 -58461.428 78340.285 -58490 M 77797.428 -59032.857 77797.428 -58747.143 78397.428 -58747.143 M 77797.428 -59232.857 78397.428 -59232.857 M 77797.428 -59575.714 78140.285 -59318.571 M 78397.428 -59575.714 78054.571 -59232.857 M 79638.857 -67767.142 79667.428 -67710 79667.428 -67624.285 79638.857 -67538.571 79581.714 -67481.428 79524.571 -67452.857 79410.285 -67424.285 79324.571 -67424.285 79210.285 -67452.857 79153.142 -67481.428 79096 -67538.571 79067.428 -67624.285 79067.428 -67681.428 79096 -67767.142 79124.571 -67795.714 79324.571 -67795.714 79324.571 -67681.428 M 79067.428 -68052.857 79667.428 -68052.857 79067.428 -68395.714 79667.428 -68395.714 M 79067.428 -68681.428 79667.428 -68681.428 79667.428 -68824.285 79638.857 -68909.999 79581.714 -68967.142 79524.571 -68995.713 79410.285 -69024.285 79324.571 -69024.285 79210.285 -68995.713 79153.142 -68967.142 79096 -68909.999 79067.428 -68824.285 79067.428 -68681.428 M 63157.428 -58718.57 63157.428 -59061.428 M 62557.428 -58889.999 63157.428 -58889.999 M 63157.428 -59204.285 62557.428 -59604.285 M 63157.428 -59604.285 62557.428 -59204.285\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 66394 -43156.333 66860.666 -43856.333 M 66860.666 -43156.333 66394 -43856.333 M 67127.333 -43856.333 67127.333 -43156.333 M 67427.333 -43656.333 67760.666 -43656.333 M 67360.666 -43856.333 67594 -43156.333 67827.333 -43856.333 M 68194 -43156.333 68327.333 -43156.333 68394 -43189.666 68460.666 -43256.333 68494 -43389.666 68494 -43623 68460.666 -43756.333 68394 -43823 68327.333 -43856.333 68194 -43856.333 68127.333 -43823 68060.666 -43756.333 68027.333 -43623 68027.333 -43389.666 68060.666 -43256.333 68127.333 -43189.666 68194 -43156.333 M 69727.332 -43856.333 69493.999 -43523 M 69327.332 -43856.333 69327.332 -43156.333 69593.999 -43156.333 69660.666 -43189.666 69693.999 -43223 69727.332 -43289.666 69727.332 -43389.666 69693.999 -43456.333 69660.666 -43489.666 69593.999 -43523 69327.332 -43523 M 70027.332 -43856.333 70027.332 -43156.333 70293.999 -43156.333 70360.666 -43189.666 70393.999 -43223 70427.332 -43289.666 70427.332 -43389.666 70393.999 -43456.333 70360.666 -43489.666 70293.999 -43523 70027.332 -43523 M 70693.999 -43223 70727.332 -43189.666 70793.999 -43156.333 70960.666 -43156.333 71027.332 -43189.666 71060.666 -43223 71093.999 -43289.666 71093.999 -43356.333 71060.666 -43456.333 70660.666 -43856.333 71093.999 -43856.333 M 71527.333 -43156.333 71593.999 -43156.333 71660.666 -43189.666 71693.999 -43223 71727.333 -43289.666 71760.666 -43423 71760.666 -43589.666 71727.333 -43723 71693.999 -43789.666 71660.666 -43823 71593.999 -43856.333 71527.333 -43856.333 71460.666 -43823 71427.333 -43789.666 71393.999 -43723 71360.666 -43589.666 71360.666 -43423 71393.999 -43289.666 71427.333 -43223 71460.666 -43189.666 71527.333 -43156.333 M 72360.666 -43389.666 72360.666 -43856.333 M 72194 -43123 72027.333 -43623 72460.666 -43623 M 72860.667 -43156.333 72927.333 -43156.333 72994 -43189.666 73027.333 -43223 73060.667 -43289.666 73094 -43423 73094 -43589.666 73060.667 -43723 73027.333 -43789.666 72994 -43823 72927.333 -43856.333 72860.667 -43856.333 72794 -43823 72760.667 -43789.666 72727.333 -43723 72694 -43589.666 72694 -43423 72727.333 -43289.666 72760.667 -43223 72794 -43189.666 72860.667 -43156.333\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 55508.857 -58318.571 55537.428 -58261.429 55537.428 -58175.714 55508.857 -58090 55451.714 -58032.857 55394.571 -58004.286 55280.285 -57975.714 55194.571 -57975.714 55080.285 -58004.286 55023.142 -58032.857 54966 -58090 54937.428 -58175.714 54937.428 -58232.857 54966 -58318.571 54994.571 -58347.143 55194.571 -58347.143 55194.571 -58232.857 M 54937.428 -58604.286 55537.428 -58604.286 54937.428 -58947.143 55537.428 -58947.143 M 54937.428 -59232.857 55537.428 -59232.857 55537.428 -59375.714 55508.857 -59461.428 55451.714 -59518.571 55394.571 -59547.142 55280.285 -59575.714 55194.571 -59575.714 55080.285 -59547.142 55023.142 -59518.571 54966 -59461.428 54937.428 -59375.714 54937.428 -59232.857\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 72924 -61721.428 72881.142 -61850 72881.142 -62064.285 72924 -62150 72966.857 -62192.857 73052.571 -62235.714 73138.285 -62235.714 73224 -62192.857 73266.857 -62150 73309.714 -62064.285 73352.571 -61892.857 73395.428 -61807.142 73438.285 -61764.285 73524 -61721.428 73609.714 -61721.428 73695.428 -61764.285 73738.285 -61807.142 73781.142 -61892.857 73781.142 -62107.142 73738.285 -62235.714 M 73781.142 -62535.714 72881.142 -62750 73524 -62921.428 72881.142 -63092.857 73781.142 -63307.143 M 72881.142 -63649.999 73781.142 -63649.999 73781.142 -63864.285 73738.285 -63992.856 73652.571 -64078.571 73566.857 -64121.428 73395.428 -64164.285 73266.857 -64164.285 73095.428 -64121.428 73009.714 -64078.571 72924 -63992.856 72881.142 -63864.285 72881.142 -63649.999 M 73224 -64549.999 73224 -65235.714 73052.571 -65064.285 M 73224 -65235.714 73395.428 -65064.285\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 65097.428 -59004.285 65383.142 -58804.285 M 65097.428 -58661.428 65697.428 -58661.428 65697.428 -58889.999 65668.857 -58947.142 65640.285 -58975.713 65583.142 -59004.285 65497.428 -59004.285 65440.285 -58975.713 65411.714 -58947.142 65383.142 -58889.999 65383.142 -58661.428 M 65697.428 -59204.285 65097.428 -59604.285 M 65697.428 -59604.285 65097.428 -59204.285 M 79096 -57918.571 79067.428 -58004.286 79067.428 -58147.143 79096 -58204.286 79124.571 -58232.857 79181.714 -58261.428 79238.857 -58261.428 79296 -58232.857 79324.571 -58204.286 79353.142 -58147.143 79381.714 -58032.857 79410.285 -57975.714 79438.857 -57947.143 79496 -57918.571 79553.142 -57918.571 79610.285 -57947.143 79638.857 -57975.714 79667.428 -58032.857 79667.428 -58175.714 79638.857 -58261.428 M 79667.428 -58461.429 79067.428 -58604.286 79496 -58718.572 79067.428 -58832.857 79667.428 -58975.715 M 79667.428 -59318.571 79667.428 -59432.857 79638.857 -59490 79581.714 -59547.143 79467.428 -59575.714 79267.428 -59575.714 79153.142 -59547.143 79096 -59490 79067.428 -59432.857 79067.428 -59318.571 79096 -59261.429 79153.142 -59204.286 79267.428 -59175.714 79467.428 -59175.714 79581.714 -59204.286 79638.857 -59261.429 79667.428 -59318.571 M 82178.857 -67767.142 82207.428 -67710 82207.428 -67624.285 82178.857 -67538.571 82121.714 -67481.428 82064.571 -67452.857 81950.285 -67424.285 81864.571 -67424.285 81750.285 -67452.857 81693.142 -67481.428 81636 -67538.571 81607.428 -67624.285 81607.428 -67681.428 81636 -67767.142 81664.571 -67795.714 81864.571 -67795.714 81864.571 -67681.428 M 81607.428 -68052.857 82207.428 -68052.857 81607.428 -68395.714 82207.428 -68395.714 M 81607.428 -68681.428 82207.428 -68681.428 82207.428 -68824.285 82178.857 -68909.999 82121.714 -68967.142 82064.571 -68995.713 81950.285 -69024.285 81864.571 -69024.285 81750.285 -68995.713 81693.142 -68967.142 81636 -68909.999 81607.428 -68824.285 81607.428 -68681.428 M 76527.428 -58318.572 77127.428 -58318.572 77127.428 -58461.429 77098.857 -58547.143 77041.714 -58604.286 76984.571 -58632.857 76870.285 -58661.429 76784.571 -58661.429 76670.285 -58632.857 76613.142 -58604.286 76556 -58547.143 76527.428 -58461.429 76527.428 -58318.572 M 76527.428 -58918.572 77127.428 -58918.572 M 77127.428 -59318.571 77127.428 -59432.857 77098.857 -59490 77041.714 -59547.143 76927.428 -59575.714 76727.428 -59575.714 76613.142 -59547.143 76556 -59490 76527.428 -59432.857 76527.428 -59318.571 76556 -59261.429 76613.142 -59204.286 76727.428 -59175.714 76927.428 -59175.714 77041.714 -59204.286 77098.857 -59261.429 77127.428 -59318.571 M 67637.428 -58547.142 67923.142 -58347.142 M 67637.428 -58204.285 68237.428 -58204.285 68237.428 -58432.856 68208.857 -58489.999 68180.285 -58518.57 68123.142 -58547.142 68037.428 -58547.142 67980.285 -58518.57 67951.714 -58489.999 67923.142 -58432.856 67923.142 -58204.285 M 68237.428 -58718.57 68237.428 -59061.428 M 67637.428 -58889.999 68237.428 -58889.999 M 67666 -59232.856 67637.428 -59318.571 67637.428 -59461.428 67666 -59518.571 67694.571 -59547.142 67751.714 -59575.713 67808.857 -59575.713 67866 -59547.142 67894.571 -59518.571 67923.142 -59461.428 67951.714 -59347.142 67980.285 -59289.999 68008.857 -59261.428 68066 -59232.856 68123.142 -59232.856 68180.285 -59261.428 68208.857 -59289.999 68237.428 -59347.142 68237.428 -59489.999 68208.857 -59575.713 M 60617.428 -59032.856 60617.428 -58747.142 60331.714 -58718.57 60360.285 -58747.142 60388.857 -58804.285 60388.857 -58947.142 60360.285 -59004.285 60331.714 -59032.856 60274.571 -59061.427 60131.714 -59061.427 60074.571 -59032.856 60046 -59004.285 60017.428 -58947.142 60017.428 -58804.285 60046 -58747.142 60074.571 -58718.57 M 60617.428 -59232.856 60017.428 -59432.856 60617.428 -59632.856 M 57534.571 -58547.142 57506 -58518.57 57477.428 -58432.856 57477.428 -58375.713 57506 -58289.999 57563.142 -58232.856 57620.285 -58204.285 57734.571 -58175.713 57820.285 -58175.713 57934.571 -58204.285 57991.714 -58232.856 58048.857 -58289.999 58077.428 -58375.713 58077.428 -58432.856 58048.857 -58518.57 58020.285 -58547.142 M 58077.428 -58718.57 58077.428 -59061.428 M 57477.428 -58889.999 58077.428 -58889.999 M 57506 -59232.856 57477.428 -59318.571 57477.428 -59461.428 57506 -59518.571 57534.571 -59547.142 57591.714 -59575.713 57648.857 -59575.713 57706 -59547.142 57734.571 -59518.571 57763.142 -59461.428 57791.714 -59347.142 57820.285 -59289.999 57848.857 -59261.428 57906 -59232.856 57963.142 -59232.856 58020.285 -59261.428 58048.857 -59289.999 58077.428 -59347.142 58077.428 -59489.999 58048.857 -59575.713 M 80337.428 -67452.857 80937.428 -67452.857 M 80337.428 -67795.714 80680.285 -67538.571 M 80937.428 -67795.714 80594.571 -67452.857 M 80651.714 -68052.857 80651.714 -68252.857 M 80337.428 -68338.571 80337.428 -68052.857 80937.428 -68052.857 80937.428 -68338.571 M 80623.142 -68709.999 80337.428 -68709.999 M 80937.428 -68509.999 80623.142 -68709.999 80937.428 -68909.999 M 61326.666 -65663.833 61326.666 -66163.833 61293.333 -66263.833 61226.666 -66330.5 61126.666 -66363.833 61060 -66363.833 M 61626.666 -65730.5 61659.999 -65697.166 61726.666 -65663.833 61893.333 -65663.833 61959.999 -65697.166 61993.333 -65730.5 62026.666 -65797.166 62026.666 -65863.833 61993.333 -65963.833 61593.333 -66363.833 62026.666 -66363.833 M 84338.333 -48583.833 84105 -48250.5 M 83938.333 -48583.833 83938.333 -47883.833 84205 -47883.833 84271.667 -47917.166 84305 -47950.5 84338.333 -48017.166 84338.333 -48117.166 84305 -48183.833 84271.667 -48217.166 84205 -48250.5 83938.333 -48250.5 M 84571.667 -47883.833 85005 -47883.833 84771.667 -48150.5 84871.667 -48150.5 84938.333 -48183.833 84971.667 -48217.166 85005 -48283.833 85005 -48450.5 84971.667 -48517.166 84938.333 -48550.5 84871.667 -48583.833 84671.667 -48583.833 84605 -48550.5 84571.667 -48517.166 M 84371.666 -53663.833 83971.666 -53663.833 M 84171.666 -53663.833 84171.666 -52963.833 84104.999 -53063.833 84038.333 -53130.5 83971.666 -53163.833 M 84671.666 -53663.833 84671.666 -52963.833 M 84738.333 -53397.166 84938.333 -53663.833 M 84938.333 -53197.166 84671.666 -53463.833 M 82947.733 -55645.033 82947.733 -54945.033 83114.4 -54945.033 83214.4 -54978.366 83281.067 -55045.033 83314.4 -55111.7 83347.733 -55245.033 83347.733 -55345.033 83314.4 -55478.366 83281.067 -55545.033 83214.4 -55611.7 83114.4 -55645.033 82947.733 -55645.033 M 83614.4 -55011.7 83647.733 -54978.366 83714.4 -54945.033 83881.067 -54945.033 83947.733 -54978.366 83981.067 -55011.7 84014.4 -55078.366 84014.4 -55145.033 83981.067 -55245.033 83581.067 -55645.033 84014.4 -55645.033 M 56938.133 -55594.233 56938.133 -54894.233 57104.8 -54894.233 57204.8 -54927.566 57271.467 -54994.233 57304.8 -55060.9 57338.133 -55194.233 57338.133 -55294.233 57304.8 -55427.566 57271.467 -55494.233 57204.8 -55560.9 57104.8 -55594.233 56938.133 -55594.233 M 58004.8 -55594.233 57604.8 -55594.233 M 57804.8 -55594.233 57804.8 -54894.233 57738.133 -54994.233 57671.467 -55060.9 57604.8 -55094.233 M 73543.333 -55568.833 73310 -55235.5 M 73143.333 -55568.833 73143.333 -54868.833 73410 -54868.833 73476.667 -54902.166 73510 -54935.5 73543.333 -55002.166 73543.333 -55102.166 73510 -55168.833 73476.667 -55202.166 73410 -55235.5 73143.333 -55235.5 M 73810 -54935.5 73843.333 -54902.166 73910 -54868.833 74076.667 -54868.833 74143.333 -54902.166 74176.667 -54935.5 74210 -55002.166 74210 -55068.833 74176.667 -55168.833 73776.667 -55568.833 74210 -55568.833 M 73576.666 -56838.833 73176.666 -56838.833 M 73376.666 -56838.833 73376.666 -56138.833 73309.999 -56238.833 73243.333 -56305.5 73176.666 -56338.833 M 73876.666 -56838.833 73876.666 -56138.833 M 73943.333 -56572.166 74143.333 -56838.833 M 74143.333 -56372.166 73876.666 -56638.833 M 66721.5 -33484.476 66697.69 -33555.904 66697.69 -33674.952 66721.5 -33722.571 66745.309 -33746.38 66792.928 -33770.19 66840.547 -33770.19 66888.166 -33746.38 66911.976 -33722.571 66935.785 -33674.952 66959.595 -33579.714 66983.404 -33532.095 67007.214 -33508.285 67054.833 -33484.476 67102.452 -33484.476 67150.071 -33508.285 67173.88 -33532.095 67197.69 -33579.714 67197.69 -33698.761 67173.88 -33770.19 M 67197.69 -33936.856 66697.69 -34055.904 67054.833 -34151.142 66697.69 -34246.38 67197.69 -34365.428 M 66697.69 -34555.904 67197.69 -34555.904 67197.69 -34674.952 67173.88 -34746.38 67126.261 -34793.999 67078.642 -34817.809 66983.404 -34841.618 66911.976 -34841.618 66816.738 -34817.809 66769.119 -34793.999 66721.5 -34746.38 66697.69 -34674.952 66697.69 -34555.904 M 66697.69 -35055.904 67197.69 -35055.904 M 67197.69 -35389.237 67197.69 -35484.475 67173.88 -35532.094 67126.261 -35579.713 67031.023 -35603.523 66864.357 -35603.523 66769.119 -35579.713 66721.5 -35532.094 66697.69 -35484.475 66697.69 -35389.237 66721.5 -35341.618 66769.119 -35293.999 66864.357 -35270.19 67031.023 -35270.19 67126.261 -35293.999 67173.88 -35341.618 67197.69 -35389.237 M 72639.88 -51689.047 72663.69 -51641.428 72663.69 -51569.999 72639.88 -51498.571 72592.261 -51450.952 72544.642 -51427.142 72449.404 -51403.333 72377.976 -51403.333 72282.738 -51427.142 72235.119 -51450.952 72187.5 -51498.571 72163.69 -51569.999 72163.69 -51617.618 72187.5 -51689.047 72211.309 -51712.856 72377.976 -51712.856 72377.976 -51617.618 M 72163.69 -51927.142 72663.69 -51927.142 72163.69 -52212.856 72663.69 -52212.856 M 72163.69 -52450.952 72663.69 -52450.952 72663.69 -52570 72639.88 -52641.428 72592.261 -52689.047 72544.642 -52712.857 72449.404 -52736.666 72377.976 -52736.666 72282.738 -52712.857 72235.119 -52689.047 72187.5 -52641.428 72163.69 -52570 72163.69 -52450.952 M 67583.69 -51522.381 67083.69 -51689.047 67583.69 -51855.714 M 67083.69 -52022.38 67583.69 -52022.38 M 67083.69 -52260.475 67583.69 -52260.475 67083.69 -52546.189 67583.69 -52546.189 M 66697.69 -36484.809 66935.785 -36318.143 M 66697.69 -36199.095 67197.69 -36199.095 67197.69 -36389.571 67173.88 -36437.19 67150.071 -36461 67102.452 -36484.809 67031.023 -36484.809 66983.404 -36461 66959.595 -36437.19 66935.785 -36389.571 66935.785 -36199.095 M 66959.595 -36699.095 66959.595 -36865.762 M 66697.69 -36937.19 66697.69 -36699.095 67197.69 -36699.095 67197.69 -36937.19 M 66721.5 -37127.667 66697.69 -37199.095 66697.69 -37318.143 66721.5 -37365.762 66745.309 -37389.571 66792.928 -37413.381 66840.547 -37413.381 66888.166 -37389.571 66911.976 -37365.762 66935.785 -37318.143 66959.595 -37222.905 66983.404 -37175.286 67007.214 -37151.476 67054.833 -37127.667 67102.452 -37127.667 67150.071 -37151.476 67173.88 -37175.286 67197.69 -37222.905 67197.69 -37341.952 67173.88 -37413.381 M 66959.595 -37627.666 66959.595 -37794.333 M 66697.69 -37865.761 66697.69 -37627.666 67197.69 -37627.666 67197.69 -37865.761 M 67197.69 -38008.619 67197.69 -38294.333 M 66697.69 -38151.476 67197.69 -38151.476 M 72436.5 -33540.048 72412.69 -33611.476 72412.69 -33730.524 72436.5 -33778.143 72460.309 -33801.952 72507.928 -33825.762 72555.547 -33825.762 72603.166 -33801.952 72626.976 -33778.143 72650.785 -33730.524 72674.595 -33635.286 72698.404 -33587.667 72722.214 -33563.857 72769.833 -33540.048 72817.452 -33540.048 72865.071 -33563.857 72888.88 -33587.667 72912.69 -33635.286 72912.69 -33754.333 72888.88 -33825.762 M 72912.69 -33992.428 72412.69 -34111.476 72769.833 -34206.714 72412.69 -34301.952 72912.69 -34421 M 72460.309 -34897.19 72436.5 -34873.381 72412.69 -34801.952 72412.69 -34754.333 72436.5 -34682.905 72484.119 -34635.286 72531.738 -34611.476 72626.976 -34587.667 72698.404 -34587.667 72793.642 -34611.476 72841.261 -34635.286 72888.88 -34682.905 72912.69 -34754.333 72912.69 -34801.952 72888.88 -34873.381 72865.071 -34897.19 M 72412.69 -35349.571 72412.69 -35111.476 72912.69 -35111.476 M 72412.69 -35516.238 72912.69 -35516.238 M 72412.69 -35801.952 72698.404 -35587.667 M 72912.69 -35801.952 72626.976 -35516.238 M 72888.88 -36957.047 72912.69 -36909.428 72912.69 -36837.999 72888.88 -36766.571 72841.261 -36718.952 72793.642 -36695.142 72698.404 -36671.333 72626.976 -36671.333 72531.738 -36695.142 72484.119 -36718.952 72436.5 -36766.571 72412.69 -36837.999 72412.69 -36885.618 72436.5 -36957.047 72460.309 -36980.856 72626.976 -36980.856 72626.976 -36885.618 M 72412.69 -37195.142 72912.69 -37195.142 72412.69 -37480.856 72912.69 -37480.856 M 72412.69 -37718.952 72912.69 -37718.952 72912.69 -37838 72888.88 -37909.428 72841.261 -37957.047 72793.642 -37980.857 72698.404 -38004.666 72626.976 -38004.666 72531.738 -37980.857 72484.119 -37957.047 72436.5 -37909.428 72412.69 -37838 72412.69 -37718.952 M 55763.333 -43503.833 55530 -43170.5 M 55363.333 -43503.833 55363.333 -42803.833 55630 -42803.833 55696.667 -42837.166 55730 -42870.5 55763.333 -42937.166 55763.333 -43037.166 55730 -43103.833 55696.667 -43137.166 55630 -43170.5 55363.333 -43170.5 M 56430 -43503.833 56030 -43503.833 M 56230 -43503.833 56230 -42803.833 56163.333 -42903.833 56096.667 -42970.5 56030 -43003.833 M 55695.066 -48710.833 55295.066 -48710.833 M 55495.066 -48710.833 55495.066 -48010.833 55428.399 -48110.833 55361.733 -48177.5 55295.066 -48210.833 M 55995.066 -48710.833 55995.066 -48010.833 M 56061.733 -48444.166 56261.733 -48710.833 M 56261.733 -48244.166 55995.066 -48510.833 M 79141.666 -63123.833 79141.666 -63623.833 79108.333 -63723.833 79041.666 -63790.5 78941.666 -63823.833 78875 -63823.833 M 79841.666 -63823.833 79441.666 -63823.833 M 79641.666 -63823.833 79641.666 -63123.833 79574.999 -63223.833 79508.333 -63290.5 79441.666 -63323.833\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 69240 -60280 69240 -61550 M 68224 -63328 67716 -63328 67716 -64090 M 65684 -63328 65176 -63328 65176 -64090 M 63144 -63328 62636 -63328 62636 -64090 M 60604 -63328 60096 -63328 60096 -64090 M 58064 -63328 57556 -63328 57556 -64090 M 55524 -63328 55016 -63328 55016 -64090 M 68224 -64090 68224 -63328 M 65684 -64090 65684 -63328 M 63144 -64090 63144 -63328 M 60604 -64090 60604 -63328 M 58064 -64090 58064 -63328 M 55524 -64090 55524 -63328 M 69240 -64090 54000 -64090 54000 -72980 69240 -72980 69240 -64090 M 83620 -49800 83620 -51800 M 81480 -51800 81480 -49800 M 82475 -56830 82475 -54930 77775 -54930 M 82475 -56830 77775 -56830 M 64695 -56830 64695 -54930 59995 -54930 M 64695 -56830 59995 -56830 M 70215 -56950 68215 -56950 M 68215 -54810 70215 -54810 M 60962.5 -52461 60962.5 -33919 A 1269.999 1269.999 0 0 0 62232.5 -32649 L 77472.5 -32649 A 1270 1270 0 0 0 78742.5 -33919 L 78742.5 -52461 A 1270 1270 0 0 0 77472.5 -53731 L 62232.5 -53731 A 1269.999 1269.999 0 0 0 60962.5 -52461 M 65352.5 -32649 74352.5 -32649 74352.5 -31125 65352.5 -31125 65352.5 -32649 M 56715 -46720 56715 -44720 M 58855 -44720 58855 -46720 M 82545 -60410 82545 -61735 84455 -61735 84455 -65265 82545 -65265 M 76205 -61735 74295 -61735 74295 -65265 76205 -65265\\" fill=\\"none\\" stroke-width=\\"120\\"/></g></svg>"]]');Br();
diff --git a/dist/index.html b/dist/index.html
index 9b3160e12338eec58364b0dbdd70ee6ec3015e89..dab727487180fd184fd05af34d8fe45ce3996e4b 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -8,7 +8,7 @@
 	<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
 	<meta http-equiv="Pragma" content="no-cache" />
 	<meta http-equiv="Expires" content="-1" />
-  <script type="module" crossorigin src="https://quentinbolsee.pages.cba.mit.edu/gerber2img/assets/main-3113c108.js"></script>
+  <script type="module" crossorigin src="https://quentinbolsee.pages.cba.mit.edu/gerber2img/assets/main-eaf63962.js"></script>
   <link rel="stylesheet" href="https://quentinbolsee.pages.cba.mit.edu/gerber2img/assets/index-e1ba9a9d.css">
 </head>
 <body style="background-color: rgb(255, 255, 255);">
diff --git a/lib/png-metadata/README.md b/lib/png-metadata/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7962686f81210cf0b18174836236b247a1a52806
--- /dev/null
+++ b/lib/png-metadata/README.md
@@ -0,0 +1,77 @@
+# png-metadata
+library to read and write PNG Metadata on NodeJS and Browser
+
+w3 PNG Chunks specification: https://www.w3.org/TR/PNG-Chunks.html
+
+The Metadata in PNG files: https://dev.exiv2.org/projects/exiv2/wiki/The_Metadata_in_PNG_files
+ 
+ 
+ ### example with buffers
+```javascript
+  function loadFileAsBlob(url){
+    return new Promise((resolve, reject) => {
+      var xhr = new XMLHttpRequest();
+      xhr.open('GET', url, true);
+      xhr.responseType = 'blob';
+      xhr.onload = function(e) {
+        if (this.status === 200) {
+          resolve(this.response);
+          // myBlob is now the blob that the object URL pointed to.
+        }else{
+          reject(this.response);
+        }
+      };
+      xhr.send();
+    })
+  };
+
+  //Browser
+  const blob = await loadFileAsBlob('1000ppcm.png');
+  const buffer = await blob.arrayBuffer();
+
+  //NodeJS
+  const buffer = fs.readFileSync('1000ppcm.png')
+
+  //read metadata
+  metadata = readMetadata(buffer);
+```
+
+### metadata format
+
+image with 300 dpi
+
+```javascript
+{
+  "pHYs": { 
+    "x": 30000,
+    "y": 30000,
+    "units": RESOLUTION_UNITS.INCHES
+  },
+  "tEXt": {
+    "Title":            "Short (one line) title or caption for image",
+    "Author":           "Name of image's creator",
+    "Description":      "Description of image (possibly long)",
+    "Copyright":        "Copyright notice",
+    "Software":         "Software used to create the image",
+    "Disclaimer":       "Legal disclaimer",
+    "Warning":          "Warning of nature of content",
+    "Source":           "Device used to create the image",
+    "Comment":          "Miscellaneous comment"
+  }
+}
+```
+
+### writing metadata
+
+```javascript
+writeMetadata(buffer,metadata);
+```
+
+### save image from canvas
+
+```javascript
+canvas.toBlob(blob => {
+    let newBlob = fabric.util.png.writeMetadataB(blob, metadata);
+    saveAs(newBlob, title);
+});
+```
diff --git a/lib/png-metadata/index.js b/lib/png-metadata/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5c9a34b46cae2255d86fcaea2b6b41c1b818f7d
--- /dev/null
+++ b/lib/png-metadata/index.js
@@ -0,0 +1,445 @@
+/**
+ * library to read and write PNG Metadata
+ *
+ * References:
+ * w3 PNG Chunks specification: https://www.w3.org/TR/PNG-Chunks.html
+ * The Metadata in PNG files: https://dev.exiv2.org/projects/exiv2/wiki/The_Metadata_in_PNG_files
+ */
+
+let crc32 = require('crc-32')
+
+
+// Used for fast-ish conversion between uint8s and uint32s/int32s.
+// Also required in order to remain agnostic for both Node Buffers and
+// Uint8Arrays.
+let uint8 = new Uint8Array(4)
+let int32 = new Int32Array(uint8.buffer)
+let uint32 = new Uint32Array(uint8.buffer)
+
+const RESOLUTION_UNITS = {UNDEFINED: 0, METERS: 1, INCHES: 2};
+
+/**
+ * https://github.com/aheckmann/sliced
+ * An Array.prototype.slice.call(arguments) alternative
+ * @param {Object} args something with a length
+ * @param {Number} slice
+ * @param {Number} sliceEnd
+ * @api public
+ */
+function sliced (args, slice, sliceEnd) {
+	var ret = [];
+	var len = args.length;
+
+	if (0 === len) return ret;
+
+	var start = slice < 0
+		? Math.max(0, slice + len)
+		: slice || 0;
+
+	if (sliceEnd !== undefined) {
+		len = sliceEnd < 0
+			? sliceEnd + len
+			: sliceEnd
+	}
+
+	while (len-- > start) {
+		ret[len - start] = args[len];
+	}
+
+	return ret;
+}
+
+/**
+ * https://github.com/hughsk/png-chunk-text
+ * Returns a chunk object containing the metadata for a given key and value:
+ * @param keyword
+ * @param content
+ * @param chunkName
+ * @returns {{data: Uint8Array, name: 'tEXt'}}
+ */
+function textEncode (keyword, content , chunkName = 'tEXt') {
+	keyword = String(keyword)
+	content = String(content)
+
+	if (content.length && (!/^[\x00-\xFF]+$/.test(keyword) || !/^[\x00-\xFF]+$/.test(content))) {
+		throw new Error('Only Latin-1 characters are permitted in PNG tEXt chunks. You might want to consider base64 encoding and/or zEXt compression')
+	}
+
+	if (keyword.length >= 80) {
+		throw new Error('Keyword "' + keyword + '" is longer than the 79-character limit imposed by the PNG specification')
+	}
+
+	let totalSize = keyword.length + content.length + 1
+	let output = new Uint8Array(totalSize)
+	let idx = 0
+	let code
+
+	for (let i = 0; i < keyword.length; i++) {
+		if (!(code = keyword.charCodeAt(i))) {
+			throw new Error('0x00 character is not permitted in tEXt keywords')
+		}
+
+		output[idx++] = code
+	}
+
+	output[idx++] = 0
+
+	for (let j = 0; j < content.length; j++) {
+		if (!(code = content.charCodeAt(j))) {
+			throw new Error('0x00 character is not permitted in tEXt content')
+		}
+
+		output[idx++] = code
+	}
+
+	return {
+		name: chunkName,
+		data: output
+	}
+}
+
+/**
+ * https://github.com/hughsk/png-chunk-text
+ * Reads a Uint8Array or Node.js Buffer instance containing a tEXt PNG chunk's data and returns its keyword/text:
+ * @param data
+ * @returns {{text: string, keyword: string}}
+ */
+function textDecode (data) {
+	if (data.data && data.name) {
+		data = data.data
+	}
+
+	let naming = true
+	let text = ''
+	let name = ''
+
+	for (let i = 0; i < data.length; i++) {
+		let code = data[i]
+
+		if (naming) {
+			if (code) {
+				name += String.fromCharCode(code)
+			} else {
+				naming = false
+			}
+		} else {
+			if (code) {
+				text += String.fromCharCode(code)
+			} else {
+				throw new Error('Invalid NULL character found. 0x00 character is not permitted in tEXt content')
+			}
+		}
+	}
+
+	return {
+		keyword: name,
+		text: text
+	}
+}
+
+/**
+ * https://github.com/hughsk/png-chunks-extract
+ * Extract the data chunks from a PNG file.
+ * Useful for reading the metadata of a PNG image, or as the base of a more complete PNG parser.
+ * Takes the raw image file data as a Uint8Array or Node.js Buffer, and returns an array of chunks. Each chunk has a name and data buffer:
+ * @param data {Uint8Array}
+ * @returns {[{name: String, data: Uint8Array}]}
+ */
+function extractChunks (data) {
+	if (data[0] !== 0x89) throw new Error('Invalid .png file header')
+	if (data[1] !== 0x50) throw new Error('Invalid .png file header')
+	if (data[2] !== 0x4E) throw new Error('Invalid .png file header')
+	if (data[3] !== 0x47) throw new Error('Invalid .png file header')
+	if (data[4] !== 0x0D) throw new Error('Invalid .png file header: possibly caused by DOS-Unix line ending conversion?')
+	if (data[5] !== 0x0A) throw new Error('Invalid .png file header: possibly caused by DOS-Unix line ending conversion?')
+	if (data[6] !== 0x1A) throw new Error('Invalid .png file header')
+	if (data[7] !== 0x0A) throw new Error('Invalid .png file header: possibly caused by DOS-Unix line ending conversion?')
+
+	let ended = false
+	let chunks = []
+	let idx = 8
+
+	while (idx < data.length) {
+		// Read the length of the current chunk,
+		// which is stored as a Uint32.
+		uint8[3] = data[idx++]
+		uint8[2] = data[idx++]
+		uint8[1] = data[idx++]
+		uint8[0] = data[idx++]
+
+		// Chunk includes name/type for CRC check (see below).
+		let length = uint32[0] + 4
+		let chunk = new Uint8Array(length)
+		chunk[0] = data[idx++]
+		chunk[1] = data[idx++]
+		chunk[2] = data[idx++]
+		chunk[3] = data[idx++]
+
+		// Get the name in ASCII for identification.
+		let name = (
+			String.fromCharCode(chunk[0]) +
+			String.fromCharCode(chunk[1]) +
+			String.fromCharCode(chunk[2]) +
+			String.fromCharCode(chunk[3])
+		)
+
+		// The IHDR header MUST come first.
+		if (!chunks.length && name !== 'IHDR') {
+			throw new Error('IHDR header missing')
+		}
+
+		// The IEND header marks the end of the file,
+		// so on discovering it break out of the loop.
+		if (name === 'IEND') {
+			ended = true
+			chunks.push({
+				name: name,
+				data: new Uint8Array(0)
+			})
+
+			break
+		}
+
+		// Read the contents of the chunk out of the main buffer.
+		for (let i = 4; i < length; i++) {
+			chunk[i] = data[idx++]
+		}
+
+		// Read out the CRC value for comparison.
+		// It's stored as an Int32.
+		uint8[3] = data[idx++]
+		uint8[2] = data[idx++]
+		uint8[1] = data[idx++]
+		uint8[0] = data[idx++]
+
+		let crcActual = int32[0]
+		let crcExpect = crc32.buf(chunk)
+		if (crcExpect !== crcActual) {
+			throw new Error(
+				'CRC values for ' + name + ' header do not match, PNG file is likely corrupted'
+			)
+		}
+
+		// The chunk data is now copied to remove the 4 preceding
+		// bytes used for the chunk name/type.
+		let chunkData = new Uint8Array(chunk.buffer.slice(4))
+
+		chunks.push({
+			name: name,
+			data: chunkData
+		})
+	}
+
+	if (!ended) {
+		throw new Error('.png file ended prematurely: no IEND header was found')
+	}
+
+	return chunks
+}
+
+/**
+ * https://github.com/hughsk/png-chunks-encode
+ * Return a fresh PNG buffer given a set of PNG chunks. Useful in combination with png-chunks-encode to easily modify or add to the data of a PNG file.
+ * Takes an array of chunks, each with a name and data:
+ * @param chunks {[{name: String, data: Uint8Array}]}
+ * @returns {Uint8Array}
+ */
+function encodeChunks (chunks) {
+	let totalSize = 8
+	let idx = totalSize
+	let i
+
+	for (i = 0; i < chunks.length; i++) {
+		totalSize += chunks[i].data.length
+		totalSize += 12
+	}
+
+	let output = new Uint8Array(totalSize)
+
+	output[0] = 0x89
+	output[1] = 0x50
+	output[2] = 0x4E
+	output[3] = 0x47
+	output[4] = 0x0D
+	output[5] = 0x0A
+	output[6] = 0x1A
+	output[7] = 0x0A
+
+	for (i = 0; i < chunks.length; i++) {
+		let chunk = chunks[i]
+		let name = chunk.name
+		let data = chunk.data
+		let size = data.length
+		let nameChars = [
+			name.charCodeAt(0),
+			name.charCodeAt(1),
+			name.charCodeAt(2),
+			name.charCodeAt(3)
+		]
+
+		uint32[0] = size
+		output[idx++] = uint8[3]
+		output[idx++] = uint8[2]
+		output[idx++] = uint8[1]
+		output[idx++] = uint8[0]
+
+		output[idx++] = nameChars[0]
+		output[idx++] = nameChars[1]
+		output[idx++] = nameChars[2]
+		output[idx++] = nameChars[3]
+
+		for (let j = 0; j < size;) {
+			output[idx++] = data[j++]
+		}
+
+		let crcCheck = nameChars.concat(sliced(data));
+		int32[0] = crc32.buf(crcCheck)
+		output[idx++] = uint8[3]
+		output[idx++] = uint8[2]
+		output[idx++] = uint8[1]
+		output[idx++] = uint8[0]
+	}
+
+	return output
+}
+
+/**
+ * read 4 bytes number from UInt8Array.
+ * @param uint8array
+ * @param offset
+ * @returns {number}
+ */
+function readUint32 (uint8array,offset) {
+	let byte1, byte2, byte3, byte4;
+	byte1 = uint8array[offset++];
+	byte2 = uint8array[offset++];
+	byte3 = uint8array[offset++];
+	byte4 = uint8array[offset];
+	return  0 | (byte1 << 24) | (byte2 << 16) | (byte3 << 8) | byte4;
+}
+
+/**
+ * write 4 bytes number to UInt8Array.
+ * @param uint8array
+ * @param num
+ * @param offset
+ */
+function writeUInt32(uint8array, num, offset){
+	uint8array[offset] = (num & 0xff000000) >> 24;
+	uint8array[offset + 1] = (num & 0x00ff0000) >> 16;
+	uint8array[offset + 2] = (num & 0x0000ff00) >> 8;
+	uint8array[offset + 3] = (num & 0x000000ff);
+}
+
+/**
+ * Get object with PNG metadata. only tEXt and pHYs chunks are parsed
+ * @param buffer {Buffer}
+ * @returns {{tEXt: {keyword: value}, pHYs: {x: number, y: number, units: RESOLUTION_UNITS}, [string]: true}}
+ */
+function readMetadata(buffer){
+	let result = {};
+	const chunks = extractChunks(buffer);
+	chunks.forEach( chunk => {
+		switch(chunk.name){
+			case 'tEXt':
+				if (!result.tEXt) {
+					result.tEXt = {};
+				}
+				let textChunk = textDecode(chunk.data);
+				result.tEXt[textChunk.keyword] = textChunk.text;
+				break
+			case 'pHYs':
+				result.pHYs = {
+					// Pixels per unit, X axis: 4 bytes (unsigned integer)
+					"x": readUint32(chunk.data, 0),
+					// Pixels per unit, Y axis: 4 bytes (unsigned integer)
+					"y":  readUint32(chunk.data, 4),
+					"unit": chunk.data[8],
+				}
+				break
+			case 'gAMA':
+			case 'cHRM':
+			case 'sRGB':
+			case 'IHDR':
+			case 'iCCP':
+			default:
+				result[chunk.name] = true;
+		}
+	})
+	return result;
+}
+
+/**
+ * create new Buffer with metadata. only tEXt and pHYs chunks are supported.
+ * @param buffer {Buffer}
+ * @param metadata {{tEXt: {keyword: value}, pHYs: {x: number, y: number, units: RESOLUTION_UNITS}}}
+ * @returns {Buffer}
+ */
+function writeMetadata(buffer,metadata){
+	const chunks = extractChunks(buffer);
+	insertMetadata(chunks,metadata);
+	return new Buffer.from(encodeChunks(chunks))
+}
+
+/**
+ * the same. but for Blobs
+ * @param blob {Blob}
+ * @param metadata {{tEXt: {keyword: value}, pHYs: {x: number, y: number, units: RESOLUTION_UNITS}}}
+ * @returns {Promise<Blob>} new blob
+ */
+export async function writeMetadataB(blob,metadata){
+	let arrayBuffer = await blob.arrayBuffer();
+	let uint8Array = new Uint8Array(arrayBuffer);
+	let newBuffer = await writeMetadata(uint8Array,metadata);
+	return new Blob([newBuffer], {type : blob.type});
+}
+
+function insertMetadata(chunks,metadata){
+	if(metadata.clear){
+		for(let i = chunks.length - 1; i--;){
+			switch(chunks[i].name){
+				case 'IHDR':
+				case 'IDAT':
+				case 'IEND':
+					break;
+				default:
+					chunks.splice(i,1);
+			}
+		}
+	}
+	if(metadata.tEXt){
+		for(var keyword in metadata.tEXt){
+			chunks.splice(-1, 0, textEncode(keyword, metadata.tEXt[keyword]))
+		}
+	}
+	if(metadata.pHYs){
+		const data = new Uint8Array(9);
+		writeUInt32(data,metadata.pHYs.x,0)
+		writeUInt32(data,metadata.pHYs.y,4)
+		data[8] = metadata.pHYs.units; // inches
+
+		let pHYs = chunks.find(chunk => chunk.name === "pHYs");
+		if(pHYs){
+			pHYs.data = data;
+		}
+		else{
+			chunks.splice(1, 0, {name: "pHYs",data: data})
+		}
+	}
+    console.log(metadata)
+    console.log("DONE")
+}
+
+
+
+// module.exports = {
+// 	RESOLUTION_UNITS: RESOLUTION_UNITS,
+// 	insertMetadata: insertMetadata,
+// 	readMetadata: readMetadata,
+// 	writeMetadata: writeMetadata,
+// 	writeMetadataB: writeMetadataB,
+// 	textEncode: textEncode,
+// 	textDecode: textDecode,
+// 	extractChunks: extractChunks,
+// 	encodeChunks: encodeChunks
+// };
diff --git a/lib/png-metadata/package.json b/lib/png-metadata/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..c3e8e127c6f56c987322ea34c74318170a233424
--- /dev/null
+++ b/lib/png-metadata/package.json
@@ -0,0 +1,9 @@
+{
+  "name": "png-metadata",
+  "version": "1.0.0",
+  "description": "library to read and write PNG Metadata",
+  "main": "index.js",
+  "dependencies": {
+    "crc-32": "^1.2.0"
+  }
+}
diff --git a/package.json b/package.json
index 4b27094400dc63da13ef4a3c4743c8137fc2cd5f..ab670d4146f8c359eefa6c556de5c7bdc21777fc 100644
--- a/package.json
+++ b/package.json
@@ -15,10 +15,12 @@
     "browserify-zlib": "^0.2.0",
     "process": "^0.11.10",
     "stream-browserify": "^3.0.0",
-    "util": "^0.12.5"
+    "util": "^0.12.5",
+    "png-metadata": "file:lib/png-metadata"
   },
   "devDependencies": {
     "typescript": "^5.0.2",
-    "vite": "^4.4.11"
+    "vite": "^4.4.11",
+    "vite-require": "^0.2.3"
   }
 }
diff --git a/src/interface.js b/src/interface.js
index 816546a0c202b0ba2b3db94ac0d182186e7f80ee..1fe498cdca7632f7ac3c40b6d64435e9a08ff9ee 100644
--- a/src/interface.js
+++ b/src/interface.js
@@ -9,7 +9,8 @@ window.Buffer = Buffer;
 window.process = process;
 window.EventEmitter = EventEmitter;
 
-import gerberToSvg from 'gerber-to-svg'
+import { writeMetadataB } from 'png-metadata';
+import gerberToSvg from 'gerber-to-svg';
 
 let sourceElem = document.getElementById("body");
 let svgElem = document.getElementById("previewSVG");
@@ -226,7 +227,37 @@ function setDPI(canvas, dpi) {
     ctx.scale(scaleFactor, scaleFactor);
 }
 
-function downloadImage(separateLayers=false) {
+function downloadBlob(blob, name = 'file.txt') {
+    if (
+      window.navigator &&
+      window.navigator.msSaveOrOpenBlob
+    ) return window.navigator.msSaveOrOpenBlob(blob);
+
+    // For other browsers:
+    // Create a link pointing to the ObjectURL containing the blob.
+    const data = window.URL.createObjectURL(blob);
+
+    const link = document.createElement('a');
+    link.href = data;
+    link.download = name;
+
+    // this is necessary as link.click() does not work on the latest firefox
+    link.dispatchEvent(
+      new MouseEvent('click', {
+        bubbles: true,
+        cancelable: true,
+        view: window
+      })
+    );
+
+    setTimeout(() => {
+      // For Firefox it is necessary to delay revoking the ObjectURL
+      window.URL.revokeObjectURL(data);
+      link.remove();
+    }, 100);
+}
+
+async function downloadImage(separateLayers=false) {
     if (separateLayers) {
         return;
     }
@@ -256,14 +287,30 @@ function downloadImage(separateLayers=false) {
         canvas.height = pxHeight;
         let ctx = canvas.getContext('2d');
         ctx.scale(scaleFactor, scaleFactor);
-        image.addEventListener('load', (e) => {
+        image.addEventListener('load', async (e) => {
             ctx.drawImage(e.target, 0, 0, e.target.width, e.target.height);
-            const a = document.createElement('a');
-            a.style.display = 'none';
-            a.href = canvas.toDataURL("image/png");
-            a.download = 'render.png';
-            document.body.appendChild(a);
-            a.click();
+            canvas.toBlob(async (blob) => {
+                let metadata = {
+                    pHYs: {
+                        x: Math.round(1000 * globalSettings.dpi / 25.4),
+                        y: Math.round(1000 * globalSettings.dpi / 25.4),
+                        units: 1 // inches
+                    },
+                    tExt: {
+                        Software: "gerber2img"
+                    }
+                }
+                let newBlob = await writeMetadataB(blob, metadata);
+                downloadBlob(newBlob, "render.png");
+                // saveAs(newBlob, title);
+            });
+            // writeMetadataB()
+            // const a = document.createElement('a');
+            // a.style.display = 'none';
+            // a.href = canvas.toDataURL("image/png");
+            // a.download = 'render.png';
+            // document.body.appendChild(a);
+            // a.click();
         });
         image.src = svgURL;
     }
@@ -460,8 +507,8 @@ lockDimElem.addEventListener("click", () => {
     }
 });
 
-document.getElementById("downloadRenderButton").addEventListener("click", () => {
-    downloadImage(false);
+document.getElementById("downloadRenderButton").addEventListener("click", async () => {
+    await downloadImage(false);
 });
 
 // document.getElementById("downloadlayersButton").addEventListener("click", () => {
diff --git a/vite.config.js b/vite.config.js
index 6974e2e4ddfc38aceadbff5b09839f1f92015f14..12932d4345ff33214417a598d1261cc4a2456296 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -1,5 +1,6 @@
 import { resolve } from 'path'
 import { defineConfig } from 'vite'
+import { viteRequire } from 'vite-require'
 
 export default defineConfig({
     resolve: {
@@ -19,4 +20,7 @@ export default defineConfig({
             },
         },
     },
+    plugins: [
+      viteRequire()
+    ]
 })