@etu-wiki/sharp-iiif-shims 0.0.96 → 0.0.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export default class SharpIiifImageShims extends IiifImageShims {
11
11
  private sizeImpl;
12
12
  private rotationImpl;
13
13
  private qualityFormatImpl;
14
+ generateImageTile(path: string, metadata: any, s3Url: string): Promise<any>;
14
15
  iiifTransform(path: string, metadata: any): sharp.Sharp | null;
15
16
  generateIiifImage(path: string, sourceImage: any, scaleLimit?: number): Promise<any>;
16
17
  generateImageInfo(id: string, metadata: any, preferredFormat?: string): any;
package/dist/index.js CHANGED
@@ -1 +1,16 @@
1
- "use strict";var gt=Object.create;var j=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var ut=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ft=(e,i)=>()=>(i||e((i={exports:{}}).exports,i),i.exports),dt=(e,i)=>{for(var r in i)j(e,r,{get:i[r],enumerable:!0})},V=(e,i,r,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of pt(i))!mt.call(e,s)&&s!==r&&j(e,s,{get:()=>i[s],enumerable:!(t=ct(i,s))||t.enumerable});return e};var Z=(e,i,r)=>(r=e!=null?gt(ut(e)):{},V(i||!e||!e.__esModule?j(r,"default",{value:e,enumerable:!0}):r,e)),yt=e=>V(j({},"__esModule",{value:!0}),e);var rt=ft((jt,k)=>{"use strict";var E=Object.defineProperty,wt=Object.getOwnPropertyDescriptor,zt=Object.getOwnPropertyNames,vt=Object.prototype.hasOwnProperty,bt=(e,i)=>{for(var r in i)E(e,r,{get:i[r],enumerable:!0})},$t=(e,i,r,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of zt(i))!vt.call(e,s)&&s!==r&&E(e,s,{get:()=>i[s],enumerable:!(t=wt(i,s))||t.enumerable});return e},xt=e=>$t(E({},"__esModule",{value:!0}),e),et={};bt(et,{default:()=>it});k.exports=xt(et);var n="[1-9][0-9]*",tt="[0-9]*",b="(?=.*[1-9])\\d+(\\.\\d+)?",O="\\d+(\\.\\d+)?",q=(e=>(e.jpg="image/jpeg",e.jpeg="image/jpeg",e.png="image/png",e.webp="image/webp",e.tif="image/tiff",e.tiff="image/tiff",e.gif="image/gif",e.jp2="image/jp2",e.pdf="application/pdf",e))(q||{}),x={version:["1.0","1.1","2.0","2.1","3.0"],level:["0","1","2"],region:["full","square",`${tt},${tt},${n},${n}`,`pct:${O},${O},${b},${b}`],rotation:`!?${O}`,quality:["color","gray","bitonal","default","native","grey"],format:["jpg","png","webp","tif","gif","jp2","pdf"],size:[""]},Pt={1:["full",`${n},`,`,${n}`,`pct:${b}`,`${n},${n}`,`!${n},${n}`],1.1:["full",`${n},`,`,${n}`,`pct:${b}`,`${n},${n}`,`!${n},${n}`],2:["full",`${n},`,`,${n}`,`pct:${b}`,`${n},${n}`,`!${n},${n}`],2.1:["full","max",`${n},`,`,${n}`,`pct:${b}`,`${n},${n}`,`!${n},${n}`],3:["max",`${n},`,`,${n}`,`pct:${b}`,`${n},${n}`,`!${n},${n}`,"\\^max",`\\^${n},`,`\\^,${n}`,`\\^pct:${b}`,`\\^${n},${n}`,`\\^!${n},${n}`]},S=/^pct:([\d,]+)/,it=class{constructor(e,i,r,t,s,a,o){this.version=e,this.level=i,this.maxArea=r,this.maxWidth=t,this.maxHeight=s,this.tileWidth=a,this.tileHeight=o,this.validate("version",e),this.validate("level",i),x.size=Pt[Number(e)]}validator(e){var i=x[e];return i instanceof Array&&(i=i.join("|")),new RegExp("^("+i+")$")}validate(e,i){if(!this.validator(e).test(i))throw Error(`invalid IIIF url ${e}: ${i}`);return!0}normalizeRegionParams(e,i){if(this.validate("region",e),e==="full")return null;if(e==="square")return this._regionSquare(i);if(S.test(e))return this._regionPct(e.match(S)[1],i);{let r=e.split(",").map(t=>Number(t));return this._regionXYWH(r,i)}}_regionSquare(e){let i,r,t=e.width,s=e.height;if(t!==s){let a=Math.min(t,s),o=Math.abs(Math.floor((t-s)/2));return t>s?(i=o,r=0):(i=0,r=o),this._regionXYWH([i,r,a,a],e)}return null}_regionPct(e,i){let r=e.split(",").map((t,s)=>{let a=Number(t)/100;return s===0||s===2?Math.ceil(i.width*a):s===1||s===3?Math.ceil(i.height*a):null});return this._regionXYWH(r,i)}_regionXYWH(e,i){let r=i.width,t=i.height,[s,a,o,h]=e;return s+o>r&&(o=r-s),a+h>t&&(h=t-a),{x:s,y:a,w:o,h}}normalizeSizeParams(e,i){let r=e,t=i.width,s=i.height;if(!i||!t&&!s)throw Error(`invalid region dimensions: ${JSON.stringify(i,null,2)}`);this.validate("size",r);let a=!1;r.charAt(0)==="^"&&(a=!0,r=r.substring(1));let o=null;if(r==="full"||(r==="max"?o=this._sizeMaxScale(i):S.test(r)?o=this._sizePctScale(r.match(S)[1]):r.charAt(0)==="!"&&(r=r.substring(1),o=this._sizeBangScale(r,a,i)),o===1))return null;if(o){let h=Math.ceil(t*o),g=Math.ceil(s*o);return this._sizeWH(`${h},${g}`,a,i)}else return this._sizeWH(r,a,i)}_sizeBangScale(e,i,r){let t=r.width,s=r.height,[a,o]=e.split(",").map(g=>g===""?null:Number(g)),h=Math.min(a/t,o/s);if(a>t&&o>s&&!i)throw Error("should not upscale without ^");return h}_sizeMaxScale(e){let i=e.width,r=e.height,t=1;return this.maxArea&&this.maxArea<i*r&&(t=Math.sqrt(this.maxArea/(i*r))),this.maxWidth&&this.maxWidth<i&&(t=Math.min(t,this.maxWidth/i)),this.maxHeight&&this.maxHeight<r&&(t=Math.min(t,this.maxHeight/r)),t}_sizePctScale(e){return Number(e)/100}_sizeWH(e,i,r){let t=r.width,s=r.height,[a,o]=e.split(",").map(h=>h===""?null:Number(h));if(a?o||(o=Math.ceil(s*a/t),o=o===0?1:o):(a=Math.ceil(t*o/s),a=a===0?1:a),(a>t||o>s)&&!i)throw Error("should not upscale without ^");return{width:a,height:o}}normalizeRotationParams(e){this.validate("rotation",e);let i=!1;if(e==="0")return null;e[0]==="!"&&(i=!0);let r=Number(e.replace(/^!/,""));return{isMirror:i,degree:r}}normalizeQualityParams(e){return this.validate("quality",e),e==="native"||e==="default"?null:e}normalizeFormatParams(e,i){if((this.version==="1.0"||this.version==="1.1"||this.version==="2.0"||this.version==="2.1")&&!e)return"png";this.validate("format",e);let r=q[e],t=q[i];return r===t?null:e}getContentType(e){return q[e]}generateImageInfoTemp(e,i){let r={},t={};r.info=t;let s=this.version;return s==="1.0"?(t.identifier=e,t.width=i.width,t.height=i.height,t.scale_factors=this.factors(i),t.tile_width=this.tileWidth,t.tile_height=this.tileHeight,t.formats=x.format,t.qualities=x.quality,t.profile=this.uriPattern("compliance"),r.contentType="application/json",r.body=JSON.stringify(t)):(s==="1.1"?(t["@context"]=this.uriPattern("context"),t["@id"]=e,t.width=i.width,t.height=i.height,t.scale_factors=this.factors(i),t.tile_width=this.tileWidth,t.tile_height=this.tileHeight,t.formats=x.format,t.qualities=x.quality,t.profile=this.uriPattern("compliance")):s==="2.0"||s==="2.1"?(t["@context"]=this.uriPattern("context"),t["@id"]=e,t.protocol="http://iiif.io/api/image",t.width=i.width,t.height=i.height,this.level==="0"?t.sizes=this.sizes(i):t.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],t.profile=[this.uriPattern("compliance")]):s==="3.0"&&(t["@context"]=[this.uriPattern("context")],t.id=e,t.type="ImageService3",t.protocol="http://iiif.io/api/image",t.width=i.width,t.height=i.height,this.level==="0"?t.sizes=this.sizes(i):t.tiles=[{scaleFactors:this.factors(i),width:this.tileWidth,height:this.tileHeight}],t.profile=this.uriPattern("compliance")),r.contentType="application/ld+json"),r}factors(e){let i=1,r=[];for(;this.tileWidth*i<=e.width||this.tileHeight*i<=e.height;)r.push(i),i*=2;return r.length===0&&r.push(1),r}uriPattern(e){let i="",r="";return this.version==="1.0"?i=`http://library.stanford.edu/iiif/image-api/compliance.html#level${this.level}`:this.version==="1.1"?(i=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level${this.level}`,r="http://library.stanford.edu/iiif/image-api/1.1/context.json"):this.version==="2.0"||this.version==="2.1"?(i=`http://iiif.io/api/image/2/level${this.level}.json`,r="http://iiif.io/api/image/2/context.json"):this.version==="3.0"&&(i=`level${this.level}`,r="http://iiif.io/api/image/3/context.json"),e==="compliance"?i:e==="context"?r:""}sizes(e){return[{width:e.width,height:e.height}]}};k.exports=it});var Bt={};dt(Bt,{default:()=>P});module.exports=yt(Bt);var m=Z(require("sharp")),ot=Z(rt()),Ht=1e8,st=1e4,at=1e4,Mt=512,Wt=512,It={2:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","rotationArbitrary","rotationBy90s","sizeAboveFull","sizeByWhListed","sizeByForcedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"],2.1:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","regionSquare","rotationArbitrary","rotationBy90s","sizeAboveFull","sizeByConfinedWh","sizeByDistortedWh","sizeByH","sizeByPct","sizeByW","sizeByWh","sizeByWhListed","sizeByForcedWh"],3:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","regionSquare","rotationArbitrary","rotationBy90s","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh","sizeUpscaling"]},P=class extends ot.default{constructor(r,t,s=!1,a=Ht,o=st,h=at,g=Mt,p=Wt){super(r,t,a,o,h,g,p);this.enableHD=s}regionImpl(r,t){r&&(t=t.extract({left:r.x,top:r.y,width:r.w,height:r.h}))}sizeImpl(r,t){r&&(t=t.resize({...r,fit:"fill"}))}rotationImpl(r,t){r&&(r.isMirror&&(t=t.flop()),t=t.rotate(r.degree))}qualityFormatImpl(r,t,s,a,o){r&&(r==="color"?s=s.toColorspace("srgb"):r==="gray"||r==="grey"?s=s.grayscale():r==="bitonal"&&(s=s.threshold())),t&&(s=s.toFormat(t)),a==="png"&&(o.paletteBitDepth===1||o.space==="b-w")&&(s=s.toColorspace("b-w").png({colors:2}))}iiifTransform(r,t){let s=this.enableHD?(0,m.default)({limitInputPixels:!1,sequentialRead:!0}):(0,m.default)(),a=r.split("/"),o=a.pop(),h=o.split(".")[0],g=o.split(".")[1],p=a.pop(),z=a.pop(),R=a.pop(),H=!1,l=s,c={width:t.width,height:t.height};t&&t.orientation&&(H=!0,l=l.rotate(),t.orientation>=5&&(c={width:t.height,height:t.width}));let f=super.normalizeRegionParams(R,c);this.regionImpl(f,l);let d=super.normalizeSizeParams(z,{width:f?f.w:c.width,height:f?f.h:c.height});this.sizeImpl(d,l);let y=super.normalizeRotationParams(p);this.rotationImpl(y,l);let v=super.normalizeQualityParams(h),M=super.normalizeFormatParams(g,t.format);return this.qualityFormatImpl(v,M,l,g,t),f||d||y||v||M||H?l:(console.log("skip iiif transform"),null)}async generateIiifImage(r,t,s=256){let a=this.enableHD?(0,m.default)(t,{limitInputPixels:!1,sequentialRead:!0}):(0,m.default)(t),o=r.split("/"),h=o.pop(),g=h.split(".")[0],p=h.split(".")[1],z=o.pop(),R=o.pop(),H=o.pop(),l=await a.metadata(),c={width:l.width,height:l.height},f={},d=a,y=super.normalizeRegionParams(H,c);this.regionImpl(y,d);let v=super.normalizeSizeParams(R,{width:y?y.w:c.width,height:y?y.h:c.height});this.sizeImpl(v,d);let{x:M,y:nt,w:T,h:A}=y||{x:0,y:0,w:c.width,h:c.height},{width:D,height:F}=v||{width:c.width,height:c.height};try{if(T*A>D*F*s&&D<st&&F<at&&l.pages&&l.pages>1){console.log("thumbnail");let w=Math.max(D/T,F/A),[L,N,W,I]=[Math.round(M*w),Math.round(nt*w),Math.round(T*w),Math.round(A*w)],[C,U]=[Math.round(c.width*w),Math.round(c.height*w)];console.log("rawMeta.pages: "+l.pages);let u=Math.max(0,l.pages-1);console.log("selectedPage1: "+u),u>=l.pages&&(console.log("Warning: Selected page exceeds available pages, using last available page"),u=Math.max(0,l.pages-1));let Y=this.enableHD?await(0,m.default)(t,{limitInputPixels:!1,page:u,sequentialRead:!0}).metadata():await(0,m.default)(t,{page:u}).metadata(),G=Y.width,J=Y.height;for(;u>0&&(J<U||G<C);)J*=2,G*=2,u--;(u<0||u>=l.pages)&&(console.log("Warning: Invalid page index after calculation, using page 0"),u=0),console.log("selectedPage2: "+u);let B={width:C,height:U,fastShrinkOnLoad:!1},Q=this.enableHD?await(0,m.default)(t,{limitInputPixels:!1,page:u,sequentialRead:!0}).resize(B).toBuffer():await(0,m.default)(t,{page:u}).resize(B).toBuffer(),_=this.enableHD?(0,m.default)(Q,{limitInputPixels:!1,sequentialRead:!0}):(0,m.default)(Q),$=await _.metadata();console.log($),N+I>$.height&&(I=$.height-N,console.log("adjested sh: "+I)),L+W>$.width&&(W=$.width-L,console.log("adjusted sw: "+W));let K={x:L,y:N,w:W,h:I};this.regionImpl(K,_),this.sizeImpl(v,_),console.log($.width,$.height,B.width,B.height,K,v),d=_}}catch(w){console.trace(w),console.log(w)}let ht=super.normalizeRotationParams(z);this.rotationImpl(ht,d);let lt=super.normalizeQualityParams(g);console.log(p,l.format);let X=super.normalizeFormatParams(p,l.format);return this.qualityFormatImpl(lt,X,d,p,l),console.log("pipeline "+d),f.body=d,f.contentType=super.getContentType(X),f}generateImageInfo(r,t,s=""){let a=this.version,o=this.level,h={width:t.width,height:t.height};t&&t.orientation&&t.orientation>=5&&(console.log(t.orientation),h={width:t.height,height:t.width});let g=super.generateImageInfoTemp(r,h),p=g.info;if((a==="2.0"||a==="2.1")&&(p.profile=[super.uriPattern("compliance")],o==="2")){let z={};z.formats=["jpg","png","webp","jp2","pdf","tif"],z.qualities=["color","gray","bitonal","default","native","grey"],z.supports=It[Number(a)],p.profile.push(z)}return a==="3.0"&&s&&(p.extraFormats=[s],p.preferredFormats=[s]),s&&(p.formats=[s]),g}};module.exports=P;
1
+ "use strict";var la=Object.create;var ze=Object.defineProperty;var fa=Object.getOwnPropertyDescriptor;var Ia=Object.getOwnPropertyNames;var ca=Object.getPrototypeOf,ha=Object.prototype.hasOwnProperty;var IA=(A,t)=>()=>(A&&(t=A(A=0)),t);var vA=(A,t)=>()=>(t||A((t={exports:{}}).exports,t),t.exports),RA=(A,t)=>{for(var e in t)ze(A,e,{get:t[e],enumerable:!0})},ir=(A,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ia(t))!ha.call(A,r)&&r!==e&&ze(A,r,{get:()=>t[r],enumerable:!(i=fa(t,r))||i.enumerable});return A};var UA=(A,t,e)=>(e=A!=null?la(ca(A)):{},ir(t||!A||!A.__esModule?ze(e,"default",{value:A,enumerable:!0}):e,A)),Ba=A=>ir(ze({},"__esModule",{value:!0}),A);var ar=vA((Zl,Jt)=>{"use strict";var Yt=Object.defineProperty,Ca=Object.getOwnPropertyDescriptor,Ea=Object.getOwnPropertyNames,ua=Object.prototype.hasOwnProperty,Qa=(A,t)=>{for(var e in t)Yt(A,e,{get:t[e],enumerable:!0})},da=(A,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ea(t))!ua.call(A,r)&&r!==e&&Yt(A,r,{get:()=>t[r],enumerable:!(i=Ca(t,r))||i.enumerable});return A},wa=A=>da(Yt({},"__esModule",{value:!0}),A),nr={};Qa(nr,{default:()=>or});Jt.exports=wa(nr);var H="[1-9][0-9]*",rr="[0-9]*",GA="(?=.*[1-9])\\d+(\\.\\d+)?",Ht="\\d+(\\.\\d+)?",Pe=(A=>(A.jpg="image/jpeg",A.jpeg="image/jpeg",A.png="image/png",A.webp="image/webp",A.tif="image/tiff",A.tiff="image/tiff",A.gif="image/gif",A.jp2="image/jp2",A.pdf="application/pdf",A))(Pe||{}),jA={version:["1.0","1.1","2.0","2.1","3.0"],level:["0","1","2"],region:["full","square",`${rr},${rr},${H},${H}`,`pct:${Ht},${Ht},${GA},${GA}`],rotation:`!?${Ht}`,quality:["color","gray","bitonal","default","native","grey"],format:["jpg","png","webp","tif","gif","jp2","pdf"],size:[""]},pa={1:["full",`${H},`,`,${H}`,`pct:${GA}`,`${H},${H}`,`!${H},${H}`],1.1:["full",`${H},`,`,${H}`,`pct:${GA}`,`${H},${H}`,`!${H},${H}`],2:["full",`${H},`,`,${H}`,`pct:${GA}`,`${H},${H}`,`!${H},${H}`],2.1:["full","max",`${H},`,`,${H}`,`pct:${GA}`,`${H},${H}`,`!${H},${H}`],3:["max",`${H},`,`,${H}`,`pct:${GA}`,`${H},${H}`,`!${H},${H}`,"\\^max",`\\^${H},`,`\\^,${H}`,`\\^pct:${GA}`,`\\^${H},${H}`,`\\^!${H},${H}`]},Ke=/^pct:([\d,]+)/,or=class{constructor(A,t,e,i,r,n,l){this.version=A,this.level=t,this.maxArea=e,this.maxWidth=i,this.maxHeight=r,this.tileWidth=n,this.tileHeight=l,this.validate("version",A),this.validate("level",t),jA.size=pa[Number(A)]}validator(A){var t=jA[A];return t instanceof Array&&(t=t.join("|")),new RegExp("^("+t+")$")}validate(A,t){if(!this.validator(A).test(t))throw Error(`invalid IIIF url ${A}: ${t}`);return!0}normalizeRegionParams(A,t){if(this.validate("region",A),A==="full")return null;if(A==="square")return this._regionSquare(t);if(Ke.test(A))return this._regionPct(A.match(Ke)[1],t);{let e=A.split(",").map(i=>Number(i));return this._regionXYWH(e,t)}}_regionSquare(A){let t,e,i=A.width,r=A.height;if(i!==r){let n=Math.min(i,r),l=Math.abs(Math.floor((i-r)/2));return i>r?(t=l,e=0):(t=0,e=l),this._regionXYWH([t,e,n,n],A)}return null}_regionPct(A,t){let e=A.split(",").map((i,r)=>{let n=Number(i)/100;return r===0||r===2?Math.ceil(t.width*n):r===1||r===3?Math.ceil(t.height*n):null});return this._regionXYWH(e,t)}_regionXYWH(A,t){let e=t.width,i=t.height,[r,n,l,s]=A;return r+l>e&&(l=e-r),n+s>i&&(s=i-n),{x:r,y:n,w:l,h:s}}normalizeSizeParams(A,t){let e=A,i=t.width,r=t.height;if(!t||!i&&!r)throw Error(`invalid region dimensions: ${JSON.stringify(t,null,2)}`);this.validate("size",e);let n=!1;e.charAt(0)==="^"&&(n=!0,e=e.substring(1));let l=null;if(e==="full"||(e==="max"?l=this._sizeMaxScale(t):Ke.test(e)?l=this._sizePctScale(e.match(Ke)[1]):e.charAt(0)==="!"&&(e=e.substring(1),l=this._sizeBangScale(e,n,t)),l===1))return null;if(l){let s=Math.ceil(i*l),f=Math.ceil(r*l);return this._sizeWH(`${s},${f}`,n,t)}else return this._sizeWH(e,n,t)}_sizeBangScale(A,t,e){let i=e.width,r=e.height,[n,l]=A.split(",").map(f=>f===""?null:Number(f)),s=Math.min(n/i,l/r);if(n>i&&l>r&&!t)throw Error("should not upscale without ^");return s}_sizeMaxScale(A){let t=A.width,e=A.height,i=1;return this.maxArea&&this.maxArea<t*e&&(i=Math.sqrt(this.maxArea/(t*e))),this.maxWidth&&this.maxWidth<t&&(i=Math.min(i,this.maxWidth/t)),this.maxHeight&&this.maxHeight<e&&(i=Math.min(i,this.maxHeight/e)),i}_sizePctScale(A){return Number(A)/100}_sizeWH(A,t,e){let i=e.width,r=e.height,[n,l]=A.split(",").map(s=>s===""?null:Number(s));if(n?l||(l=Math.ceil(r*n/i),l=l===0?1:l):(n=Math.ceil(i*l/r),n=n===0?1:n),(n>i||l>r)&&!t)throw Error("should not upscale without ^");return{width:n,height:l}}normalizeRotationParams(A){this.validate("rotation",A);let t=!1;if(A==="0")return null;A[0]==="!"&&(t=!0);let e=Number(A.replace(/^!/,""));return{isMirror:t,degree:e}}normalizeQualityParams(A){return this.validate("quality",A),A==="native"||A==="default"?null:A}normalizeFormatParams(A,t){if((this.version==="1.0"||this.version==="1.1"||this.version==="2.0"||this.version==="2.1")&&!A)return"png";this.validate("format",A);let e=Pe[A],i=Pe[t];return e===i?null:A}getContentType(A){return Pe[A]}generateImageInfoTemp(A,t){let e={},i={};e.info=i;let r=this.version;return r==="1.0"?(i.identifier=A,i.width=t.width,i.height=t.height,i.scale_factors=this.factors(t),i.tile_width=this.tileWidth,i.tile_height=this.tileHeight,i.formats=jA.format,i.qualities=jA.quality,i.profile=this.uriPattern("compliance"),e.contentType="application/json",e.body=JSON.stringify(i)):(r==="1.1"?(i["@context"]=this.uriPattern("context"),i["@id"]=A,i.width=t.width,i.height=t.height,i.scale_factors=this.factors(t),i.tile_width=this.tileWidth,i.tile_height=this.tileHeight,i.formats=jA.format,i.qualities=jA.quality,i.profile=this.uriPattern("compliance")):r==="2.0"||r==="2.1"?(i["@context"]=this.uriPattern("context"),i["@id"]=A,i.protocol="http://iiif.io/api/image",i.width=t.width,i.height=t.height,this.level==="0"?i.sizes=this.sizes(t):i.tiles=[{scaleFactors:this.factors(t),width:this.tileWidth,height:this.tileHeight}],i.profile=[this.uriPattern("compliance")]):r==="3.0"&&(i["@context"]=[this.uriPattern("context")],i.id=A,i.type="ImageService3",i.protocol="http://iiif.io/api/image",i.width=t.width,i.height=t.height,this.level==="0"?i.sizes=this.sizes(t):i.tiles=[{scaleFactors:this.factors(t),width:this.tileWidth,height:this.tileHeight}],i.profile=this.uriPattern("compliance")),e.contentType="application/ld+json"),e}factors(A){let t=1,e=[];for(;this.tileWidth*t<=A.width||this.tileHeight*t<=A.height;)e.push(t),t*=2;return e.length===0&&e.push(1),e}uriPattern(A){let t="",e="";return this.version==="1.0"?t=`http://library.stanford.edu/iiif/image-api/compliance.html#level${this.level}`:this.version==="1.1"?(t=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level${this.level}`,e="http://library.stanford.edu/iiif/image-api/1.1/context.json"):this.version==="2.0"||this.version==="2.1"?(t=`http://iiif.io/api/image/2/level${this.level}.json`,e="http://iiif.io/api/image/2/context.json"):this.version==="3.0"&&(t=`level${this.level}`,e="http://iiif.io/api/image/3/context.json"),A==="compliance"?t:A==="context"?e:""}sizes(A){return[{width:A.width,height:A.height}]}};Jt.exports=or});var vr=vA((eI,$t)=>{function Fr(A,t,e){let i=e&&e.debug||!1;i&&console.log("[xml-utils] getting "+t+" in "+A);let r=typeof A=="object"?A.outer:A,n=r.slice(0,r.indexOf(">")+1),l=['"',"'"];for(let s=0;s<l.length;s++){let f=l[s],o=t+"\\="+f+"([^"+f+"]*)"+f;i&&console.log("[xml-utils] pattern:",o);let h=new RegExp(o).exec(n);if(i&&console.log("[xml-utils] match:",h),h)return h[1]}}$t.exports=Fr;$t.exports.default=Fr});var Ur=vA((tI,Wt)=>{function Rr(A,t,e){let r=new RegExp(t).exec(A.slice(e));return r?e+r.index:-1}Wt.exports=Rr;Wt.exports.default=Rr});var Mr=vA((iI,Ai)=>{function Gr(A,t,e){let r=new RegExp(t).exec(A.slice(e));return r?e+r.index+r[0].length-1:-1}Ai.exports=Gr;Ai.exports.default=Gr});var Nr=vA((rI,ei)=>{function Lr(A,t){let e=new RegExp(t,"g"),i=A.match(e);return i?i.length:0}ei.exports=Lr;ei.exports.default=Lr});var qr=vA((nI,ii)=>{var Ta=Ur(),ti=Mr(),Tr=Nr();function Or(A,t,e){let i=e&&e.debug||!1,r=!(e&&typeof e.nested===!1),n=e&&e.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",t," and ",e);let l=Ta(A,`<${t}[
2
+ >/]`,n);if(i&&console.log("[xml-utils] start:",l),l===-1)return;let s=A.slice(l+t.length),f=ti(s,"^[^<]*[ /]>",0),o=f!==-1&&s[f-1]==="/";if(i&&console.log("[xml-utils] selfClosing:",o),o===!1)if(r){let g=0,c=1,B=0;for(;(f=ti(s,"[ /]"+t+">",g))!==-1;){let C=s.substring(g,f+1);if(c+=Tr(C,"<"+t+`[
3
+ >]`),B+=Tr(C,"</"+t+">"),B>=c)break;g=f}}else f=ti(s,"[ /]"+t+">",0);let a=l+t.length+f+1;if(i&&console.log("[xml-utils] end:",a),a===-1)return;let h=A.slice(l,a),I;return o?I=null:I=h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:I,outer:h,start:l,end:a}}ii.exports=Or;ii.exports.default=Or});var Yr=vA((oI,ri)=>{var Oa=qr();function Hr(A,t,e){let i=[],r=e&&e.debug||!1,n=e&&typeof e.nested=="boolean"?e.nested:!0,l=e&&e.startIndex||0,s;for(;s=Oa(A,t,{debug:r,startIndex:l});)n?l=s.start+1+t.length:l=s.end,i.push(s);return r&&console.log("findTagsByName found",i.length,"tags"),i}ri.exports=Hr;ri.exports.default=Hr});var te,dA,Jr,ni,O,oA,zr,Kr,tt,ue,qa,it=IA(()=>{te={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},dA={};for(let A in te)te.hasOwnProperty(A)&&(dA[te[A]]=parseInt(A,10));Jr=[dA.BitsPerSample,dA.ExtraSamples,dA.SampleFormat,dA.StripByteCounts,dA.StripOffsets,dA.StripRowCounts,dA.TileByteCounts,dA.TileOffsets,dA.SubIFDs],ni={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},O={};for(let A in ni)ni.hasOwnProperty(A)&&(O[ni[A]]=parseInt(A,10));oA={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},zr={Unspecified:0,Assocalpha:1,Unassalpha:2},Kr={Version:0,AddCompression:1},tt={None:0,Deflate:1,Zstandard:2},ue={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},qa={};for(let A in ue)ue.hasOwnProperty(A)&&(qa[ue[A]]=parseInt(A,10))});function za(A,t){let e=A.length-t,i=0;do{for(let r=t;r>0;r--)A[i+t]+=A[i],i++;e-=t}while(e>0)}function Ka(A,t,e){let i=0,r=A.length,n=r/e;for(;r>t;){for(let s=t;s>0;--s)A[i+t]+=A[i],++i;r-=t}let l=A.slice();for(let s=0;s<n;++s)for(let f=0;f<e;++f)A[e*s+f]=l[(e-f-1)*n+s]}function Wr(A,t,e,i,r,n){if(!t||t===1)return A;for(let f=0;f<r.length;++f){if(r[f]%8!==0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(r[f]!==r[0])throw new Error("When decoding with predictor, all samples must have the same size.")}let l=r[0]/8,s=n===2?1:r.length;for(let f=0;f<i&&!(f*s*e*l>=A.byteLength);++f){let o;if(t===2){switch(r[0]){case 8:o=new Uint8Array(A,f*s*e*l,s*e*l);break;case 16:o=new Uint16Array(A,f*s*e*l,s*e*l/2);break;case 32:o=new Uint32Array(A,f*s*e*l,s*e*l/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}za(o,s,l)}else t===3&&(o=new Uint8Array(A,f*s*e*l,s*e*l),Ka(o,s,l))}return A}var An=IA(()=>{});var W,_A=IA(()=>{An();W=class{async decode(t,e){let i=await this.decodeBlock(e),r=t.Predictor||1;if(r!==1){let n=!t.StripOffsets,l=n?t.TileWidth:t.ImageWidth,s=n?t.TileLength:t.RowsPerStrip||t.ImageLength;return Wr(i,r,l,s,t.BitsPerSample,t.PlanarConfiguration)}return i}}});var en={};RA(en,{default:()=>rt});var rt,tn=IA(()=>{_A();rt=class extends W{decodeBlock(t){return t}}});var nn={};RA(nn,{default:()=>nt});function Va(A,t,e){let i=t%8,r=Math.floor(t/8),n=8-i,l=t+e-(r+1)*8,s=8*(r+2)-(t+e),f=(r+2)*8-t;if(s=Math.max(0,s),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),si;let o=A[r]&2**(8-i)-1;o<<=e-n;let a=o;if(r+1<A.length){let h=A[r+1]>>>s;h<<=Math.max(0,e-f),a+=h}if(l>8&&r+2<A.length){let h=(r+3)*8-(t+e),I=A[r+2]>>>h;a+=I}return a}function ai(A,t){for(let e=t.length-1;e>=0;e--)A.push(t[e]);return A}function Za(A){let t=new Uint16Array(4093),e=new Uint8Array(4093);for(let c=0;c<=257;c++)t[c]=4096,e[c]=c;let i=258,r=rn,n=0;function l(){i=258,r=rn}function s(c){let B=Va(c,n,r);return n+=r,B}function f(c,B){return e[i]=B,t[i]=c,i++,i-1}function o(c){let B=[];for(let C=c;C!==4096;C=t[C])B.push(e[C]);return B}let a=[];l();let h=new Uint8Array(A),I=s(h),g;for(;I!==si;){if(I===oi){for(l(),I=s(h);I===oi;)I=s(h);if(I===si)break;if(I>oi)throw new Error(`corrupted code at scanline ${I}`);{let c=o(I);ai(a,c),g=I}}else if(I<i){let c=o(I);ai(a,c),f(g,c[c.length-1]),g=I}else{let c=o(g);if(!c)throw new Error(`Bogus entry. Not in dictionary, ${g} / ${i}, position: ${n}`);ai(a,c),a.push(c[c.length-1]),f(g,c[c.length-1]),g=I}i+1>=2**r&&(r===Pa?g=void 0:r++),I=s(h)}return new Uint8Array(a)}var rn,oi,si,Pa,nt,on=IA(()=>{_A();rn=9,oi=256,si=257,Pa=12;nt=class extends W{decodeBlock(t){return Za(t,!1).buffer}}});var sn={};RA(sn,{default:()=>ct});function an(A,t){let e=0,i=[],r=16;for(;r>0&&!A[r-1];)--r;i.push({children:[],index:0});let n=i[0],l;for(let s=0;s<r;s++){for(let f=0;f<A[s];f++){for(n=i.pop(),n.children[n.index]=t[e];n.index>0;)n=i.pop();for(n.index++,i.push(n);i.length<=s;)i.push(l={children:[],index:0}),n.children[n.index]=l.children,n=l;e++}s+1<r&&(i.push(l={children:[],index:0}),n.children[n.index]=l.children,n=l)}return i[0].children}function Xa(A,t,e,i,r,n,l,s,f){let{mcusPerLine:o,progressive:a}=e,h=t,I=t,g=0,c=0;function B(){if(c>0)return c--,g>>c&1;if(g=A[I++],g===255){let L=A[I++];if(L)throw new Error(`unexpected marker: ${(g<<8|L).toString(16)}`)}return c=7,g>>>7}function C(L){let M=L,G;for(;(G=B())!==null;){if(M=M[G],typeof M=="number")return M;if(typeof M!="object")throw new Error("invalid huffman sequence")}return null}function d(L){let M=L,G=0;for(;M>0;){let P=B();if(P===null)return;G=G<<1|P,--M}return G}function E(L){let M=d(L);return M>=1<<L-1?M:M+(-1<<L)+1}function w(L,M){let G=C(L.huffmanTableDC),P=G===0?0:E(G);L.pred+=P,M[0]=L.pred;let X=1;for(;X<64;){let Y=C(L.huffmanTableAC),K=Y&15,AA=Y>>4;if(K===0){if(AA<15)break;X+=16}else{X+=AA;let nA=Qe[X];M[nA]=E(K),X++}}}function p(L,M){let G=C(L.huffmanTableDC),P=G===0?0:E(G)<<f;L.pred+=P,M[0]=L.pred}function Q(L,M){M[0]|=B()<<f}let u=0;function m(L,M){if(u>0){u--;return}let G=n,P=l;for(;G<=P;){let X=C(L.huffmanTableAC),Y=X&15,K=X>>4;if(Y===0){if(K<15){u=d(K)+(1<<K)-1;break}G+=16}else{G+=K;let AA=Qe[G];M[AA]=E(Y)*(1<<f),G++}}}let y=0,k;function x(L,M){let G=n,P=l,X=0;for(;G<=P;){let Y=Qe[G],K=M[Y]<0?-1:1;switch(y){case 0:{let AA=C(L.huffmanTableAC),nA=AA&15;if(X=AA>>4,nA===0)X<15?(u=d(X)+(1<<X),y=4):(X=16,y=1);else{if(nA!==1)throw new Error("invalid ACn encoding");k=E(nA),y=X?2:3}continue}case 1:case 2:M[Y]?M[Y]+=(B()<<f)*K:(X--,X===0&&(y=y===2?3:0));break;case 3:M[Y]?M[Y]+=(B()<<f)*K:(M[Y]=k<<f,y=0);break;case 4:M[Y]&&(M[Y]+=(B()<<f)*K);break;default:break}G++}y===4&&(u--,u===0&&(y=0))}function b(L,M,G,P,X){let Y=G/o|0,K=G%o,AA=Y*L.v+P,nA=K*L.h+X;M(L,L.blocks[AA][nA])}function S(L,M,G){let P=G/L.blocksPerLine|0,X=G%L.blocksPerLine;M(L,L.blocks[P][X])}let N=i.length,D,_,R,T,F,v;a?n===0?v=s===0?p:Q:v=s===0?m:x:v=w;let U=0,q,z;N===1?z=i[0].blocksPerLine*i[0].blocksPerColumn:z=o*e.mcusPerColumn;let V=r||z;for(;U<z;){for(_=0;_<N;_++)i[_].pred=0;if(u=0,N===1)for(D=i[0],F=0;F<V;F++)S(D,v,U),U++;else for(F=0;F<V;F++){for(_=0;_<N;_++){D=i[_];let{h:L,v:M}=D;for(R=0;R<M;R++)for(T=0;T<L;T++)b(D,v,U,R,T)}if(U++,U===z)break}if(c=0,q=A[I]<<8|A[I+1],q<65280)throw new Error("marker was not found");if(q>=65488&&q<=65495)I+=2;else break}return I-h}function ja(A,t){let e=[],{blocksPerLine:i,blocksPerColumn:r}=t,n=i<<3,l=new Int32Array(64),s=new Uint8Array(64);function f(o,a,h){let I=t.quantizationTable,g,c,B,C,d,E,w,p,Q,u=h,m;for(m=0;m<64;m++)u[m]=o[m]*I[m];for(m=0;m<8;++m){let y=8*m;if(u[1+y]===0&&u[2+y]===0&&u[3+y]===0&&u[4+y]===0&&u[5+y]===0&&u[6+y]===0&&u[7+y]===0){Q=ie*u[0+y]+512>>10,u[0+y]=Q,u[1+y]=Q,u[2+y]=Q,u[3+y]=Q,u[4+y]=Q,u[5+y]=Q,u[6+y]=Q,u[7+y]=Q;continue}g=ie*u[0+y]+128>>8,c=ie*u[4+y]+128>>8,B=u[2+y],C=u[6+y],d=It*(u[1+y]-u[7+y])+128>>8,p=It*(u[1+y]+u[7+y])+128>>8,E=u[3+y]<<4,w=u[5+y]<<4,Q=g-c+1>>1,g=g+c+1>>1,c=Q,Q=B*ft+C*lt+128>>8,B=B*lt-C*ft+128>>8,C=Q,Q=d-w+1>>1,d=d+w+1>>1,w=Q,Q=p+E+1>>1,E=p-E+1>>1,p=Q,Q=g-C+1>>1,g=g+C+1>>1,C=Q,Q=c-B+1>>1,c=c+B+1>>1,B=Q,Q=d*gt+p*st+2048>>12,d=d*st-p*gt+2048>>12,p=Q,Q=E*at+w*ot+2048>>12,E=E*ot-w*at+2048>>12,w=Q,u[0+y]=g+p,u[7+y]=g-p,u[1+y]=c+w,u[6+y]=c-w,u[2+y]=B+E,u[5+y]=B-E,u[3+y]=C+d,u[4+y]=C-d}for(m=0;m<8;++m){let y=m;if(u[1*8+y]===0&&u[2*8+y]===0&&u[3*8+y]===0&&u[4*8+y]===0&&u[5*8+y]===0&&u[6*8+y]===0&&u[7*8+y]===0){Q=ie*h[m+0]+8192>>14,u[0*8+y]=Q,u[1*8+y]=Q,u[2*8+y]=Q,u[3*8+y]=Q,u[4*8+y]=Q,u[5*8+y]=Q,u[6*8+y]=Q,u[7*8+y]=Q;continue}g=ie*u[0*8+y]+2048>>12,c=ie*u[4*8+y]+2048>>12,B=u[2*8+y],C=u[6*8+y],d=It*(u[1*8+y]-u[7*8+y])+2048>>12,p=It*(u[1*8+y]+u[7*8+y])+2048>>12,E=u[3*8+y],w=u[5*8+y],Q=g-c+1>>1,g=g+c+1>>1,c=Q,Q=B*ft+C*lt+2048>>12,B=B*lt-C*ft+2048>>12,C=Q,Q=d-w+1>>1,d=d+w+1>>1,w=Q,Q=p+E+1>>1,E=p-E+1>>1,p=Q,Q=g-C+1>>1,g=g+C+1>>1,C=Q,Q=c-B+1>>1,c=c+B+1>>1,B=Q,Q=d*gt+p*st+2048>>12,d=d*st-p*gt+2048>>12,p=Q,Q=E*at+w*ot+2048>>12,E=E*ot-w*at+2048>>12,w=Q,u[0*8+y]=g+p,u[7*8+y]=g-p,u[1*8+y]=c+w,u[6*8+y]=c-w,u[2*8+y]=B+E,u[5*8+y]=B-E,u[3*8+y]=C+d,u[4*8+y]=C-d}for(m=0;m<64;++m){let y=128+(u[m]+8>>4);y<0?a[m]=0:y>255?a[m]=255:a[m]=y}}for(let o=0;o<r;o++){let a=o<<3;for(let h=0;h<8;h++)e.push(new Uint8Array(n));for(let h=0;h<i;h++){f(t.blocks[o][h],s,l);let I=0,g=h<<3;for(let c=0;c<8;c++){let B=e[a+c];for(let C=0;C<8;C++)B[g+C]=s[I++]}}}return e}var Qe,ot,at,st,gt,lt,ft,ie,It,gi,ct,gn=IA(()=>{_A();Qe=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),ot=4017,at=799,st=3406,gt=2276,lt=1567,ft=3784,ie=5793,It=2896;gi=class{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(t){let e=0;function i(){let s=t[e]<<8|t[e+1];return e+=2,s}function r(){let s=i(),f=t.subarray(e,e+s-2);return e+=f.length,f}function n(s){let f=0,o=0,a,h;for(h in s.components)s.components.hasOwnProperty(h)&&(a=s.components[h],f<a.h&&(f=a.h),o<a.v&&(o=a.v));let I=Math.ceil(s.samplesPerLine/8/f),g=Math.ceil(s.scanLines/8/o);for(h in s.components)if(s.components.hasOwnProperty(h)){a=s.components[h];let c=Math.ceil(Math.ceil(s.samplesPerLine/8)*a.h/f),B=Math.ceil(Math.ceil(s.scanLines/8)*a.v/o),C=I*a.h,d=g*a.v,E=[];for(let w=0;w<d;w++){let p=[];for(let Q=0;Q<C;Q++)p.push(new Int32Array(64));E.push(p)}a.blocksPerLine=c,a.blocksPerColumn=B,a.blocks=E}s.maxH=f,s.maxV=o,s.mcusPerLine=I,s.mcusPerColumn=g}let l=i();if(l!==65496)throw new Error("SOI not found");for(l=i();l!==65497;){switch(l){case 65280:break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:{let s=r();l===65504&&s[0]===74&&s[1]===70&&s[2]===73&&s[3]===70&&s[4]===0&&(this.jfif={version:{major:s[5],minor:s[6]},densityUnits:s[7],xDensity:s[8]<<8|s[9],yDensity:s[10]<<8|s[11],thumbWidth:s[12],thumbHeight:s[13],thumbData:s.subarray(14,14+3*s[12]*s[13])}),l===65518&&s[0]===65&&s[1]===100&&s[2]===111&&s[3]===98&&s[4]===101&&s[5]===0&&(this.adobe={version:s[6],flags0:s[7]<<8|s[8],flags1:s[9]<<8|s[10],transformCode:s[11]});break}case 65499:{let f=i()+e-2;for(;e<f;){let o=t[e++],a=new Int32Array(64);if(o>>4)if(o>>4===1)for(let h=0;h<64;h++){let I=Qe[h];a[I]=i()}else throw new Error("DQT: invalid table spec");else for(let h=0;h<64;h++){let I=Qe[h];a[I]=t[e++]}this.quantizationTables[o&15]=a}break}case 65472:case 65473:case 65474:{i();let s={extended:l===65473,progressive:l===65474,precision:t[e++],scanLines:i(),samplesPerLine:i(),components:{},componentsOrder:[]},f=t[e++],o;for(let a=0;a<f;a++){o=t[e];let h=t[e+1]>>4,I=t[e+1]&15,g=t[e+2];s.componentsOrder.push(o),s.components[o]={h,v:I,quantizationIdx:g},e+=3}n(s),this.frames.push(s);break}case 65476:{let s=i();for(let f=2;f<s;){let o=t[e++],a=new Uint8Array(16),h=0;for(let g=0;g<16;g++,e++)a[g]=t[e],h+=a[g];let I=new Uint8Array(h);for(let g=0;g<h;g++,e++)I[g]=t[e];f+=17+h,o>>4?this.huffmanTablesAC[o&15]=an(a,I):this.huffmanTablesDC[o&15]=an(a,I)}break}case 65501:i(),this.resetInterval=i();break;case 65498:{i();let s=t[e++],f=[],o=this.frames[0];for(let c=0;c<s;c++){let B=o.components[t[e++]],C=t[e++];B.huffmanTableDC=this.huffmanTablesDC[C>>4],B.huffmanTableAC=this.huffmanTablesAC[C&15],f.push(B)}let a=t[e++],h=t[e++],I=t[e++],g=Xa(t,e,o,f,this.resetInterval,a,h,I>>4,I&15);e+=g;break}case 65535:t[e]!==255&&e--;break;default:if(t[e-3]===255&&t[e-2]>=192&&t[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${l.toString(16)}`)}l=i()}}getResult(){let{frames:t}=this;if(this.frames.length===0)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let a=0;a<this.frames.length;a++){let h=this.frames[a].components;for(let I of Object.keys(h))h[I].quantizationTable=this.quantizationTables[h[I].quantizationIdx],delete h[I].quantizationIdx}let e=t[0],{components:i,componentsOrder:r}=e,n=[],l=e.samplesPerLine,s=e.scanLines;for(let a=0;a<r.length;a++){let h=i[r[a]];n.push({lines:ja(e,h),scaleX:h.h/e.maxH,scaleY:h.v/e.maxV})}let f=new Uint8Array(l*s*n.length),o=0;for(let a=0;a<s;++a)for(let h=0;h<l;++h)for(let I=0;I<n.length;++I){let g=n[I];f[o]=g.lines[0|a*g.scaleY][0|h*g.scaleX],++o}return f}},ct=class extends W{constructor(t){super(),this.reader=new gi,t.JPEGTables&&this.reader.parse(t.JPEGTables)}decodeBlock(t){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(t)),this.reader.getResult().buffer}}});function ge(A){let t=A.length;for(;--t>=0;)A[t]=0}function fi(A,t,e,i,r){this.static_tree=A,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=r,this.has_stree=A&&A.length}function Ii(A,t){this.dyn_tree=A,this.max_code=0,this.stat_desc=t}function wA(A,t,e,i,r){this.good_length=A,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=r}function Ws(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=yt,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Js*2),this.dyn_dtree=new Uint16Array((2*Hs+1)*2),this.bl_tree=new Uint16Array((2*Ys+1)*2),MA(this.dyn_ltree),MA(this.dyn_dtree),MA(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(zs+1),this.heap=new Uint16Array(2*Di+1),MA(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Di+1),MA(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function wg(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}function Me(A){this.options=mt.assign({level:Dg,method:bg,chunkSize:16384,windowBits:15,memLevel:8,strategy:kg},A||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Bo,this.strm.avail_out=0;let e=me.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==wt)throw new Error(PA[e]);if(t.header&&me.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=ve.string2buf(t.dictionary):Co.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,e=me.deflateSetDictionary(this.strm,i),e!==wt)throw new Error(PA[e]);this._dict_set=!0}}function Ni(A,t){let e=new Me(t);if(e.push(A,!0),e.err)throw e.msg||PA[e.err];return e.result}function Sg(A,t){return t=t||{},t.raw=!0,Ni(A,t)}function Fg(A,t){return t=t||{},t.gzip=!0,Ni(A,t)}function Al(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function El(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function Le(A){this.options=mt.assign({chunkSize:1024*64,windowBits:15,to:""},A||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(A&&A.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Bo,this.strm.avail_out=0;let e=kA.inflateInit2(this.strm,t.windowBits);if(e!==Re)throw new Error(PA[e]);if(this.header=new ul,kA.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=ve.string2buf(t.dictionary):bo.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=kA.inflateSetDictionary(this.strm,t.dictionary),e!==Re)))throw new Error(PA[e])}function Ti(A,t){let e=new Le(t);if(e.push(A),e.err)throw e.msg||PA[e.err];return e.result}function yl(A,t){return t=t||{},t.raw=!0,Ti(A,t)}var $a,Vn,Wa,As,es,Ri,Ue,xe,oe,Ui,Zn,JA,li,ts,Gi,Xn,jn,$n,mi,Qt,is,Wn,rs,DA,ye,De,ke,Mi,dt,Ao,eo,to,io,be,aA,pA,ro,ns,os,no,as,oo,ao,ln,ci,fn,_i,In,cn,ss,gs,ls,hn,fs,so,Is,cs,hs,Bs,Cs,Es,us,Qs,ds,ws,Se,ps,ys,ms,eA,PA,le,_s,xi,xs,NA,Ds,TA,ks,bs,cA,Bn,tA,Cn,yA,Ss,hi,Fs,vs,ht,Rs,Us,Gs,Ms,yt,Ls,Ns,Ts,Os,qs,Di,Hs,Ys,Js,zs,J,LA,mA,Ks,ae,Li,ki,bi,Si,Fi,zA,we,rA,fe,VA,Ie,Ps,KA,En,MA,Vs,Zs,OA,sA,gA,Z,de,vi,go,se,lo,Bi,re,Xs,js,pe,$s,Ge,fo,Io,Ag,co,eg,tg,ig,rg,ng,og,ag,sg,gg,lg,fg,Ig,cg,me,hg,Bg,Cg,mt,ho,Fe,Eg,ug,Qg,dg,ve,Bo,Co,pg,yg,mg,_g,wt,xg,Dg,kg,bg,vg,Rg,Ug,Gg,Mg,Lg,Bt,Ng,Tg,ne,un,Qn,dn,Ci,wn,Og,qg,Hg,Yg,Jg,_e,zg,Eo,uo,pn,Kg,Ct,ZA,Pg,Vg,hA,Qo,wo,Zg,yn,_t,mn,_n,xn,Dn,kn,bn,Sn,Fn,vn,pt,xA,Ei,Rn,ui,Un,Gn,Mn,Ln,Et,ut,Nn,Tn,On,qn,Hn,Qi,Yn,Jn,$,po,yo,Xg,jg,$g,Wg,zn,XA,mo,_o,xo,Do,el,Kn,di,wi,tl,ko,il,rl,nl,ol,al,sl,gl,ll,fl,Il,cl,hl,Bl,Cl,kA,ul,bo,Ql,dl,Re,pi,yi,wl,Pn,pl,ml,_l,xl,Dl,kl,bl,BI,CI,EI,uI,QI,Sl,dI,wI,xt,Oi=IA(()=>{$a=0,Vn=1,Wa=2,As=3,es=258,Ri=29,Ue=256,xe=Ue+1+Ri,oe=30,Ui=19,Zn=2*xe+1,JA=15,li=16,ts=7,Gi=256,Xn=16,jn=17,$n=18,mi=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Qt=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),is=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Wn=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),rs=512,DA=new Array((xe+2)*2);ge(DA);ye=new Array(oe*2);ge(ye);De=new Array(rs);ge(De);ke=new Array(es-As+1);ge(ke);Mi=new Array(Ri);ge(Mi);dt=new Array(oe);ge(dt);io=A=>A<256?De[A]:De[256+(A>>>7)],be=(A,t)=>{A.pending_buf[A.pending++]=t&255,A.pending_buf[A.pending++]=t>>>8&255},aA=(A,t,e)=>{A.bi_valid>li-e?(A.bi_buf|=t<<A.bi_valid&65535,be(A,A.bi_buf),A.bi_buf=t>>li-A.bi_valid,A.bi_valid+=e-li):(A.bi_buf|=t<<A.bi_valid&65535,A.bi_valid+=e)},pA=(A,t,e)=>{aA(A,e[t*2],e[t*2+1])},ro=(A,t)=>{let e=0;do e|=A&1,A>>>=1,e<<=1;while(--t>0);return e>>>1},ns=A=>{A.bi_valid===16?(be(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=A.bi_buf&255,A.bi_buf>>=8,A.bi_valid-=8)},os=(A,t)=>{let e=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,n=t.stat_desc.has_stree,l=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,f=t.stat_desc.max_length,o,a,h,I,g,c,B=0;for(I=0;I<=JA;I++)A.bl_count[I]=0;for(e[A.heap[A.heap_max]*2+1]=0,o=A.heap_max+1;o<Zn;o++)a=A.heap[o],I=e[e[a*2+1]*2+1]+1,I>f&&(I=f,B++),e[a*2+1]=I,!(a>i)&&(A.bl_count[I]++,g=0,a>=s&&(g=l[a-s]),c=e[a*2],A.opt_len+=c*(I+g),n&&(A.static_len+=c*(r[a*2+1]+g)));if(B!==0){do{for(I=f-1;A.bl_count[I]===0;)I--;A.bl_count[I]--,A.bl_count[I+1]+=2,A.bl_count[f]--,B-=2}while(B>0);for(I=f;I!==0;I--)for(a=A.bl_count[I];a!==0;)h=A.heap[--o],!(h>i)&&(e[h*2+1]!==I&&(A.opt_len+=(I-e[h*2+1])*e[h*2],e[h*2+1]=I),a--)}},no=(A,t,e)=>{let i=new Array(JA+1),r=0,n,l;for(n=1;n<=JA;n++)r=r+e[n-1]<<1,i[n]=r;for(l=0;l<=t;l++){let s=A[l*2+1];s!==0&&(A[l*2]=ro(i[s]++,s))}},as=()=>{let A,t,e,i,r,n=new Array(JA+1);for(e=0,i=0;i<Ri-1;i++)for(Mi[i]=e,A=0;A<1<<mi[i];A++)ke[e++]=i;for(ke[e-1]=i,r=0,i=0;i<16;i++)for(dt[i]=r,A=0;A<1<<Qt[i];A++)De[r++]=i;for(r>>=7;i<oe;i++)for(dt[i]=r<<7,A=0;A<1<<Qt[i]-7;A++)De[256+r++]=i;for(t=0;t<=JA;t++)n[t]=0;for(A=0;A<=143;)DA[A*2+1]=8,A++,n[8]++;for(;A<=255;)DA[A*2+1]=9,A++,n[9]++;for(;A<=279;)DA[A*2+1]=7,A++,n[7]++;for(;A<=287;)DA[A*2+1]=8,A++,n[8]++;for(no(DA,xe+1,n),A=0;A<oe;A++)ye[A*2+1]=5,ye[A*2]=ro(A,5);Ao=new fi(DA,mi,Ue+1,xe,JA),eo=new fi(ye,Qt,0,oe,JA),to=new fi(new Array(0),is,0,Ui,ts)},oo=A=>{let t;for(t=0;t<xe;t++)A.dyn_ltree[t*2]=0;for(t=0;t<oe;t++)A.dyn_dtree[t*2]=0;for(t=0;t<Ui;t++)A.bl_tree[t*2]=0;A.dyn_ltree[Gi*2]=1,A.opt_len=A.static_len=0,A.sym_next=A.matches=0},ao=A=>{A.bi_valid>8?be(A,A.bi_buf):A.bi_valid>0&&(A.pending_buf[A.pending++]=A.bi_buf),A.bi_buf=0,A.bi_valid=0},ln=(A,t,e,i)=>{let r=t*2,n=e*2;return A[r]<A[n]||A[r]===A[n]&&i[t]<=i[e]},ci=(A,t,e)=>{let i=A.heap[e],r=e<<1;for(;r<=A.heap_len&&(r<A.heap_len&&ln(t,A.heap[r+1],A.heap[r],A.depth)&&r++,!ln(t,i,A.heap[r],A.depth));)A.heap[e]=A.heap[r],e=r,r<<=1;A.heap[e]=i},fn=(A,t,e)=>{let i,r,n=0,l,s;if(A.sym_next!==0)do i=A.pending_buf[A.sym_buf+n++]&255,i+=(A.pending_buf[A.sym_buf+n++]&255)<<8,r=A.pending_buf[A.sym_buf+n++],i===0?pA(A,r,t):(l=ke[r],pA(A,l+Ue+1,t),s=mi[l],s!==0&&(r-=Mi[l],aA(A,r,s)),i--,l=io(i),pA(A,l,e),s=Qt[l],s!==0&&(i-=dt[l],aA(A,i,s)));while(n<A.sym_next);pA(A,Gi,t)},_i=(A,t)=>{let e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,n=t.stat_desc.elems,l,s,f=-1,o;for(A.heap_len=0,A.heap_max=Zn,l=0;l<n;l++)e[l*2]!==0?(A.heap[++A.heap_len]=f=l,A.depth[l]=0):e[l*2+1]=0;for(;A.heap_len<2;)o=A.heap[++A.heap_len]=f<2?++f:0,e[o*2]=1,A.depth[o]=0,A.opt_len--,r&&(A.static_len-=i[o*2+1]);for(t.max_code=f,l=A.heap_len>>1;l>=1;l--)ci(A,e,l);o=n;do l=A.heap[1],A.heap[1]=A.heap[A.heap_len--],ci(A,e,1),s=A.heap[1],A.heap[--A.heap_max]=l,A.heap[--A.heap_max]=s,e[o*2]=e[l*2]+e[s*2],A.depth[o]=(A.depth[l]>=A.depth[s]?A.depth[l]:A.depth[s])+1,e[l*2+1]=e[s*2+1]=o,A.heap[1]=o++,ci(A,e,1);while(A.heap_len>=2);A.heap[--A.heap_max]=A.heap[1],os(A,t),no(e,f,A.bl_count)},In=(A,t,e)=>{let i,r=-1,n,l=t[0*2+1],s=0,f=7,o=4;for(l===0&&(f=138,o=3),t[(e+1)*2+1]=65535,i=0;i<=e;i++)n=l,l=t[(i+1)*2+1],!(++s<f&&n===l)&&(s<o?A.bl_tree[n*2]+=s:n!==0?(n!==r&&A.bl_tree[n*2]++,A.bl_tree[Xn*2]++):s<=10?A.bl_tree[jn*2]++:A.bl_tree[$n*2]++,s=0,r=n,l===0?(f=138,o=3):n===l?(f=6,o=3):(f=7,o=4))},cn=(A,t,e)=>{let i,r=-1,n,l=t[0*2+1],s=0,f=7,o=4;for(l===0&&(f=138,o=3),i=0;i<=e;i++)if(n=l,l=t[(i+1)*2+1],!(++s<f&&n===l)){if(s<o)do pA(A,n,A.bl_tree);while(--s!==0);else n!==0?(n!==r&&(pA(A,n,A.bl_tree),s--),pA(A,Xn,A.bl_tree),aA(A,s-3,2)):s<=10?(pA(A,jn,A.bl_tree),aA(A,s-3,3)):(pA(A,$n,A.bl_tree),aA(A,s-11,7));s=0,r=n,l===0?(f=138,o=3):n===l?(f=6,o=3):(f=7,o=4)}},ss=A=>{let t;for(In(A,A.dyn_ltree,A.l_desc.max_code),In(A,A.dyn_dtree,A.d_desc.max_code),_i(A,A.bl_desc),t=Ui-1;t>=3&&A.bl_tree[Wn[t]*2+1]===0;t--);return A.opt_len+=3*(t+1)+5+5+4,t},gs=(A,t,e,i)=>{let r;for(aA(A,t-257,5),aA(A,e-1,5),aA(A,i-4,4),r=0;r<i;r++)aA(A,A.bl_tree[Wn[r]*2+1],3);cn(A,A.dyn_ltree,t-1),cn(A,A.dyn_dtree,e-1)},ls=A=>{let t=4093624447,e;for(e=0;e<=31;e++,t>>>=1)if(t&1&&A.dyn_ltree[e*2]!==0)return 0;if(A.dyn_ltree[9*2]!==0||A.dyn_ltree[10*2]!==0||A.dyn_ltree[13*2]!==0)return 1;for(e=32;e<Ue;e++)if(A.dyn_ltree[e*2]!==0)return 1;return 0},hn=!1,fs=A=>{hn||(as(),hn=!0),A.l_desc=new Ii(A.dyn_ltree,Ao),A.d_desc=new Ii(A.dyn_dtree,eo),A.bl_desc=new Ii(A.bl_tree,to),A.bi_buf=0,A.bi_valid=0,oo(A)},so=(A,t,e,i)=>{aA(A,($a<<1)+(i?1:0),3),ao(A),be(A,e),be(A,~e),e&&A.pending_buf.set(A.window.subarray(t,t+e),A.pending),A.pending+=e},Is=A=>{aA(A,Vn<<1,3),pA(A,Gi,DA),ns(A)},cs=(A,t,e,i)=>{let r,n,l=0;A.level>0?(A.strm.data_type===2&&(A.strm.data_type=ls(A)),_i(A,A.l_desc),_i(A,A.d_desc),l=ss(A),r=A.opt_len+3+7>>>3,n=A.static_len+3+7>>>3,n<=r&&(r=n)):r=n=e+5,e+4<=r&&t!==-1?so(A,t,e,i):A.strategy===4||n===r?(aA(A,(Vn<<1)+(i?1:0),3),fn(A,DA,ye)):(aA(A,(Wa<<1)+(i?1:0),3),gs(A,A.l_desc.max_code+1,A.d_desc.max_code+1,l+1),fn(A,A.dyn_ltree,A.dyn_dtree)),oo(A),i&&ao(A)},hs=(A,t,e)=>(A.pending_buf[A.sym_buf+A.sym_next++]=t,A.pending_buf[A.sym_buf+A.sym_next++]=t>>8,A.pending_buf[A.sym_buf+A.sym_next++]=e,t===0?A.dyn_ltree[e*2]++:(A.matches++,t--,A.dyn_ltree[(ke[e]+Ue+1)*2]++,A.dyn_dtree[io(t)*2]++),A.sym_next===A.sym_end),Bs=fs,Cs=so,Es=cs,us=hs,Qs=Is,ds={_tr_init:Bs,_tr_stored_block:Cs,_tr_flush_block:Es,_tr_tally:us,_tr_align:Qs},ws=(A,t,e,i)=>{let r=A&65535|0,n=A>>>16&65535|0,l=0;for(;e!==0;){l=e>2e3?2e3:e,e-=l;do r=r+t[i++]|0,n=n+r|0;while(--l);r%=65521,n%=65521}return r|n<<16|0},Se=ws,ps=()=>{let A,t=[];for(var e=0;e<256;e++){A=e;for(var i=0;i<8;i++)A=A&1?3988292384^A>>>1:A>>>1;t[e]=A}return t},ys=new Uint32Array(ps()),ms=(A,t,e,i)=>{let r=ys,n=i+e;A^=-1;for(let l=i;l<n;l++)A=A>>>8^r[(A^t[l])&255];return A^-1},eA=ms,PA={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},le={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:_s,_tr_stored_block:xi,_tr_flush_block:xs,_tr_tally:NA,_tr_align:Ds}=ds,{Z_NO_FLUSH:TA,Z_PARTIAL_FLUSH:ks,Z_FULL_FLUSH:bs,Z_FINISH:cA,Z_BLOCK:Bn,Z_OK:tA,Z_STREAM_END:Cn,Z_STREAM_ERROR:yA,Z_DATA_ERROR:Ss,Z_BUF_ERROR:hi,Z_DEFAULT_COMPRESSION:Fs,Z_FILTERED:vs,Z_HUFFMAN_ONLY:ht,Z_RLE:Rs,Z_FIXED:Us,Z_DEFAULT_STRATEGY:Gs,Z_UNKNOWN:Ms,Z_DEFLATED:yt}=le,Ls=9,Ns=15,Ts=8,Os=29,qs=256,Di=qs+1+Os,Hs=30,Ys=19,Js=2*Di+1,zs=15,J=3,LA=258,mA=LA+J+1,Ks=32,ae=42,Li=57,ki=69,bi=73,Si=91,Fi=103,zA=113,we=666,rA=1,fe=2,VA=3,Ie=4,Ps=3,KA=(A,t)=>(A.msg=PA[t],t),En=A=>A*2-(A>4?9:0),MA=A=>{let t=A.length;for(;--t>=0;)A[t]=0},Vs=A=>{let t,e,i,r=A.w_size;t=A.hash_size,i=t;do e=A.head[--i],A.head[i]=e>=r?e-r:0;while(--t);t=r,i=t;do e=A.prev[--i],A.prev[i]=e>=r?e-r:0;while(--t)},Zs=(A,t,e)=>(t<<A.hash_shift^e)&A.hash_mask,OA=Zs,sA=A=>{let t=A.state,e=t.pending;e>A.avail_out&&(e=A.avail_out),e!==0&&(A.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),A.next_out),A.next_out+=e,t.pending_out+=e,A.total_out+=e,A.avail_out-=e,t.pending-=e,t.pending===0&&(t.pending_out=0))},gA=(A,t)=>{xs(A,A.block_start>=0?A.block_start:-1,A.strstart-A.block_start,t),A.block_start=A.strstart,sA(A.strm)},Z=(A,t)=>{A.pending_buf[A.pending++]=t},de=(A,t)=>{A.pending_buf[A.pending++]=t>>>8&255,A.pending_buf[A.pending++]=t&255},vi=(A,t,e,i)=>{let r=A.avail_in;return r>i&&(r=i),r===0?0:(A.avail_in-=r,t.set(A.input.subarray(A.next_in,A.next_in+r),e),A.state.wrap===1?A.adler=Se(A.adler,t,r,e):A.state.wrap===2&&(A.adler=eA(A.adler,t,r,e)),A.next_in+=r,A.total_in+=r,r)},go=(A,t)=>{let e=A.max_chain_length,i=A.strstart,r,n,l=A.prev_length,s=A.nice_match,f=A.strstart>A.w_size-mA?A.strstart-(A.w_size-mA):0,o=A.window,a=A.w_mask,h=A.prev,I=A.strstart+LA,g=o[i+l-1],c=o[i+l];A.prev_length>=A.good_match&&(e>>=2),s>A.lookahead&&(s=A.lookahead);do if(r=t,!(o[r+l]!==c||o[r+l-1]!==g||o[r]!==o[i]||o[++r]!==o[i+1])){i+=2,r++;do;while(o[++i]===o[++r]&&o[++i]===o[++r]&&o[++i]===o[++r]&&o[++i]===o[++r]&&o[++i]===o[++r]&&o[++i]===o[++r]&&o[++i]===o[++r]&&o[++i]===o[++r]&&i<I);if(n=LA-(I-i),i=I-LA,n>l){if(A.match_start=t,l=n,n>=s)break;g=o[i+l-1],c=o[i+l]}}while((t=h[t&a])>f&&--e!==0);return l<=A.lookahead?l:A.lookahead},se=A=>{let t=A.w_size,e,i,r;do{if(i=A.window_size-A.lookahead-A.strstart,A.strstart>=t+(t-mA)&&(A.window.set(A.window.subarray(t,t+t-i),0),A.match_start-=t,A.strstart-=t,A.block_start-=t,A.insert>A.strstart&&(A.insert=A.strstart),Vs(A),i+=t),A.strm.avail_in===0)break;if(e=vi(A.strm,A.window,A.strstart+A.lookahead,i),A.lookahead+=e,A.lookahead+A.insert>=J)for(r=A.strstart-A.insert,A.ins_h=A.window[r],A.ins_h=OA(A,A.ins_h,A.window[r+1]);A.insert&&(A.ins_h=OA(A,A.ins_h,A.window[r+J-1]),A.prev[r&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=r,r++,A.insert--,!(A.lookahead+A.insert<J)););}while(A.lookahead<mA&&A.strm.avail_in!==0)},lo=(A,t)=>{let e=A.pending_buf_size-5>A.w_size?A.w_size:A.pending_buf_size-5,i,r,n,l=0,s=A.strm.avail_in;do{if(i=65535,n=A.bi_valid+42>>3,A.strm.avail_out<n||(n=A.strm.avail_out-n,r=A.strstart-A.block_start,i>r+A.strm.avail_in&&(i=r+A.strm.avail_in),i>n&&(i=n),i<e&&(i===0&&t!==cA||t===TA||i!==r+A.strm.avail_in)))break;l=t===cA&&i===r+A.strm.avail_in?1:0,xi(A,0,0,l),A.pending_buf[A.pending-4]=i,A.pending_buf[A.pending-3]=i>>8,A.pending_buf[A.pending-2]=~i,A.pending_buf[A.pending-1]=~i>>8,sA(A.strm),r&&(r>i&&(r=i),A.strm.output.set(A.window.subarray(A.block_start,A.block_start+r),A.strm.next_out),A.strm.next_out+=r,A.strm.avail_out-=r,A.strm.total_out+=r,A.block_start+=r,i-=r),i&&(vi(A.strm,A.strm.output,A.strm.next_out,i),A.strm.next_out+=i,A.strm.avail_out-=i,A.strm.total_out+=i)}while(l===0);return s-=A.strm.avail_in,s&&(s>=A.w_size?(A.matches=2,A.window.set(A.strm.input.subarray(A.strm.next_in-A.w_size,A.strm.next_in),0),A.strstart=A.w_size,A.insert=A.strstart):(A.window_size-A.strstart<=s&&(A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,A.insert>A.strstart&&(A.insert=A.strstart)),A.window.set(A.strm.input.subarray(A.strm.next_in-s,A.strm.next_in),A.strstart),A.strstart+=s,A.insert+=s>A.w_size-A.insert?A.w_size-A.insert:s),A.block_start=A.strstart),A.high_water<A.strstart&&(A.high_water=A.strstart),l?Ie:t!==TA&&t!==cA&&A.strm.avail_in===0&&A.strstart===A.block_start?fe:(n=A.window_size-A.strstart,A.strm.avail_in>n&&A.block_start>=A.w_size&&(A.block_start-=A.w_size,A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,n+=A.w_size,A.insert>A.strstart&&(A.insert=A.strstart)),n>A.strm.avail_in&&(n=A.strm.avail_in),n&&(vi(A.strm,A.window,A.strstart,n),A.strstart+=n,A.insert+=n>A.w_size-A.insert?A.w_size-A.insert:n),A.high_water<A.strstart&&(A.high_water=A.strstart),n=A.bi_valid+42>>3,n=A.pending_buf_size-n>65535?65535:A.pending_buf_size-n,e=n>A.w_size?A.w_size:n,r=A.strstart-A.block_start,(r>=e||(r||t===cA)&&t!==TA&&A.strm.avail_in===0&&r<=n)&&(i=r>n?n:r,l=t===cA&&A.strm.avail_in===0&&i===r?1:0,xi(A,A.block_start,i,l),A.block_start+=i,sA(A.strm)),l?VA:rA)},Bi=(A,t)=>{let e,i;for(;;){if(A.lookahead<mA){if(se(A),A.lookahead<mA&&t===TA)return rA;if(A.lookahead===0)break}if(e=0,A.lookahead>=J&&(A.ins_h=OA(A,A.ins_h,A.window[A.strstart+J-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),e!==0&&A.strstart-e<=A.w_size-mA&&(A.match_length=go(A,e)),A.match_length>=J)if(i=NA(A,A.strstart-A.match_start,A.match_length-J),A.lookahead-=A.match_length,A.match_length<=A.max_lazy_match&&A.lookahead>=J){A.match_length--;do A.strstart++,A.ins_h=OA(A,A.ins_h,A.window[A.strstart+J-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart;while(--A.match_length!==0);A.strstart++}else A.strstart+=A.match_length,A.match_length=0,A.ins_h=A.window[A.strstart],A.ins_h=OA(A,A.ins_h,A.window[A.strstart+1]);else i=NA(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++;if(i&&(gA(A,!1),A.strm.avail_out===0))return rA}return A.insert=A.strstart<J-1?A.strstart:J-1,t===cA?(gA(A,!0),A.strm.avail_out===0?VA:Ie):A.sym_next&&(gA(A,!1),A.strm.avail_out===0)?rA:fe},re=(A,t)=>{let e,i,r;for(;;){if(A.lookahead<mA){if(se(A),A.lookahead<mA&&t===TA)return rA;if(A.lookahead===0)break}if(e=0,A.lookahead>=J&&(A.ins_h=OA(A,A.ins_h,A.window[A.strstart+J-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),A.prev_length=A.match_length,A.prev_match=A.match_start,A.match_length=J-1,e!==0&&A.prev_length<A.max_lazy_match&&A.strstart-e<=A.w_size-mA&&(A.match_length=go(A,e),A.match_length<=5&&(A.strategy===vs||A.match_length===J&&A.strstart-A.match_start>4096)&&(A.match_length=J-1)),A.prev_length>=J&&A.match_length<=A.prev_length){r=A.strstart+A.lookahead-J,i=NA(A,A.strstart-1-A.prev_match,A.prev_length-J),A.lookahead-=A.prev_length-1,A.prev_length-=2;do++A.strstart<=r&&(A.ins_h=OA(A,A.ins_h,A.window[A.strstart+J-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart);while(--A.prev_length!==0);if(A.match_available=0,A.match_length=J-1,A.strstart++,i&&(gA(A,!1),A.strm.avail_out===0))return rA}else if(A.match_available){if(i=NA(A,0,A.window[A.strstart-1]),i&&gA(A,!1),A.strstart++,A.lookahead--,A.strm.avail_out===0)return rA}else A.match_available=1,A.strstart++,A.lookahead--}return A.match_available&&(i=NA(A,0,A.window[A.strstart-1]),A.match_available=0),A.insert=A.strstart<J-1?A.strstart:J-1,t===cA?(gA(A,!0),A.strm.avail_out===0?VA:Ie):A.sym_next&&(gA(A,!1),A.strm.avail_out===0)?rA:fe},Xs=(A,t)=>{let e,i,r,n,l=A.window;for(;;){if(A.lookahead<=LA){if(se(A),A.lookahead<=LA&&t===TA)return rA;if(A.lookahead===0)break}if(A.match_length=0,A.lookahead>=J&&A.strstart>0&&(r=A.strstart-1,i=l[r],i===l[++r]&&i===l[++r]&&i===l[++r])){n=A.strstart+LA;do;while(i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&r<n);A.match_length=LA-(n-r),A.match_length>A.lookahead&&(A.match_length=A.lookahead)}if(A.match_length>=J?(e=NA(A,1,A.match_length-J),A.lookahead-=A.match_length,A.strstart+=A.match_length,A.match_length=0):(e=NA(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++),e&&(gA(A,!1),A.strm.avail_out===0))return rA}return A.insert=0,t===cA?(gA(A,!0),A.strm.avail_out===0?VA:Ie):A.sym_next&&(gA(A,!1),A.strm.avail_out===0)?rA:fe},js=(A,t)=>{let e;for(;;){if(A.lookahead===0&&(se(A),A.lookahead===0)){if(t===TA)return rA;break}if(A.match_length=0,e=NA(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++,e&&(gA(A,!1),A.strm.avail_out===0))return rA}return A.insert=0,t===cA?(gA(A,!0),A.strm.avail_out===0?VA:Ie):A.sym_next&&(gA(A,!1),A.strm.avail_out===0)?rA:fe};pe=[new wA(0,0,0,0,lo),new wA(4,4,8,4,Bi),new wA(4,5,16,8,Bi),new wA(4,6,32,32,Bi),new wA(4,4,16,16,re),new wA(8,16,32,32,re),new wA(8,16,128,128,re),new wA(8,32,128,256,re),new wA(32,128,258,1024,re),new wA(32,258,258,4096,re)],$s=A=>{A.window_size=2*A.w_size,MA(A.head),A.max_lazy_match=pe[A.level].max_lazy,A.good_match=pe[A.level].good_length,A.nice_match=pe[A.level].nice_length,A.max_chain_length=pe[A.level].max_chain,A.strstart=0,A.block_start=0,A.lookahead=0,A.insert=0,A.match_length=A.prev_length=J-1,A.match_available=0,A.ins_h=0};Ge=A=>{if(!A)return 1;let t=A.state;return!t||t.strm!==A||t.status!==ae&&t.status!==Li&&t.status!==ki&&t.status!==bi&&t.status!==Si&&t.status!==Fi&&t.status!==zA&&t.status!==we?1:0},fo=A=>{if(Ge(A))return KA(A,yA);A.total_in=A.total_out=0,A.data_type=Ms;let t=A.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Li:t.wrap?ae:zA,A.adler=t.wrap===2?0:1,t.last_flush=-2,_s(t),tA},Io=A=>{let t=fo(A);return t===tA&&$s(A.state),t},Ag=(A,t)=>Ge(A)||A.state.wrap!==2?yA:(A.state.gzhead=t,tA),co=(A,t,e,i,r,n)=>{if(!A)return yA;let l=1;if(t===Fs&&(t=6),i<0?(l=0,i=-i):i>15&&(l=2,i-=16),r<1||r>Ls||e!==yt||i<8||i>15||t<0||t>9||n<0||n>Us||i===8&&l!==1)return KA(A,yA);i===8&&(i=9);let s=new Ws;return A.state=s,s.strm=A,s.status=ae,s.wrap=l,s.gzhead=null,s.w_bits=i,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=r+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+J-1)/J),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<r+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=n,s.method=e,Io(A)},eg=(A,t)=>co(A,t,yt,Ns,Ts,Gs),tg=(A,t)=>{if(Ge(A)||t>Bn||t<0)return A?KA(A,yA):yA;let e=A.state;if(!A.output||A.avail_in!==0&&!A.input||e.status===we&&t!==cA)return KA(A,A.avail_out===0?hi:yA);let i=e.last_flush;if(e.last_flush=t,e.pending!==0){if(sA(A),A.avail_out===0)return e.last_flush=-1,tA}else if(A.avail_in===0&&En(t)<=En(i)&&t!==cA)return KA(A,hi);if(e.status===we&&A.avail_in!==0)return KA(A,hi);if(e.status===ae&&e.wrap===0&&(e.status=zA),e.status===ae){let r=yt+(e.w_bits-8<<4)<<8,n=-1;if(e.strategy>=ht||e.level<2?n=0:e.level<6?n=1:e.level===6?n=2:n=3,r|=n<<6,e.strstart!==0&&(r|=Ks),r+=31-r%31,de(e,r),e.strstart!==0&&(de(e,A.adler>>>16),de(e,A.adler&65535)),A.adler=1,e.status=zA,sA(A),e.pending!==0)return e.last_flush=-1,tA}if(e.status===Li){if(A.adler=0,Z(e,31),Z(e,139),Z(e,8),e.gzhead)Z(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),Z(e,e.gzhead.time&255),Z(e,e.gzhead.time>>8&255),Z(e,e.gzhead.time>>16&255),Z(e,e.gzhead.time>>24&255),Z(e,e.level===9?2:e.strategy>=ht||e.level<2?4:0),Z(e,e.gzhead.os&255),e.gzhead.extra&&e.gzhead.extra.length&&(Z(e,e.gzhead.extra.length&255),Z(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(A.adler=eA(A.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=ki;else if(Z(e,0),Z(e,0),Z(e,0),Z(e,0),Z(e,0),Z(e,e.level===9?2:e.strategy>=ht||e.level<2?4:0),Z(e,Ps),e.status=zA,sA(A),e.pending!==0)return e.last_flush=-1,tA}if(e.status===ki){if(e.gzhead.extra){let r=e.pending,n=(e.gzhead.extra.length&65535)-e.gzindex;for(;e.pending+n>e.pending_buf_size;){let s=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+s),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(A.adler=eA(A.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=s,sA(A),e.pending!==0)return e.last_flush=-1,tA;r=0,n-=s}let l=new Uint8Array(e.gzhead.extra);e.pending_buf.set(l.subarray(e.gzindex,e.gzindex+n),e.pending),e.pending+=n,e.gzhead.hcrc&&e.pending>r&&(A.adler=eA(A.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=bi}if(e.status===bi){if(e.gzhead.name){let r=e.pending,n;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(A.adler=eA(A.adler,e.pending_buf,e.pending-r,r)),sA(A),e.pending!==0)return e.last_flush=-1,tA;r=0}e.gzindex<e.gzhead.name.length?n=e.gzhead.name.charCodeAt(e.gzindex++)&255:n=0,Z(e,n)}while(n!==0);e.gzhead.hcrc&&e.pending>r&&(A.adler=eA(A.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=Si}if(e.status===Si){if(e.gzhead.comment){let r=e.pending,n;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(A.adler=eA(A.adler,e.pending_buf,e.pending-r,r)),sA(A),e.pending!==0)return e.last_flush=-1,tA;r=0}e.gzindex<e.gzhead.comment.length?n=e.gzhead.comment.charCodeAt(e.gzindex++)&255:n=0,Z(e,n)}while(n!==0);e.gzhead.hcrc&&e.pending>r&&(A.adler=eA(A.adler,e.pending_buf,e.pending-r,r))}e.status=Fi}if(e.status===Fi){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(sA(A),e.pending!==0))return e.last_flush=-1,tA;Z(e,A.adler&255),Z(e,A.adler>>8&255),A.adler=0}if(e.status=zA,sA(A),e.pending!==0)return e.last_flush=-1,tA}if(A.avail_in!==0||e.lookahead!==0||t!==TA&&e.status!==we){let r=e.level===0?lo(e,t):e.strategy===ht?js(e,t):e.strategy===Rs?Xs(e,t):pe[e.level].func(e,t);if((r===VA||r===Ie)&&(e.status=we),r===rA||r===VA)return A.avail_out===0&&(e.last_flush=-1),tA;if(r===fe&&(t===ks?Ds(e):t!==Bn&&(xi(e,0,0,!1),t===bs&&(MA(e.head),e.lookahead===0&&(e.strstart=0,e.block_start=0,e.insert=0))),sA(A),A.avail_out===0))return e.last_flush=-1,tA}return t!==cA?tA:e.wrap<=0?Cn:(e.wrap===2?(Z(e,A.adler&255),Z(e,A.adler>>8&255),Z(e,A.adler>>16&255),Z(e,A.adler>>24&255),Z(e,A.total_in&255),Z(e,A.total_in>>8&255),Z(e,A.total_in>>16&255),Z(e,A.total_in>>24&255)):(de(e,A.adler>>>16),de(e,A.adler&65535)),sA(A),e.wrap>0&&(e.wrap=-e.wrap),e.pending!==0?tA:Cn)},ig=A=>{if(Ge(A))return yA;let t=A.state.status;return A.state=null,t===zA?KA(A,Ss):tA},rg=(A,t)=>{let e=t.length;if(Ge(A))return yA;let i=A.state,r=i.wrap;if(r===2||r===1&&i.status!==ae||i.lookahead)return yA;if(r===1&&(A.adler=Se(A.adler,t,e,0)),i.wrap=0,e>=i.w_size){r===0&&(MA(i.head),i.strstart=0,i.block_start=0,i.insert=0);let f=new Uint8Array(i.w_size);f.set(t.subarray(e-i.w_size,e),0),t=f,e=i.w_size}let n=A.avail_in,l=A.next_in,s=A.input;for(A.avail_in=e,A.next_in=0,A.input=t,se(i);i.lookahead>=J;){let f=i.strstart,o=i.lookahead-(J-1);do i.ins_h=OA(i,i.ins_h,i.window[f+J-1]),i.prev[f&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=f,f++;while(--o);i.strstart=f,i.lookahead=J-1,se(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=J-1,i.match_available=0,A.next_in=l,A.input=s,A.avail_in=n,i.wrap=r,tA},ng=eg,og=co,ag=Io,sg=fo,gg=Ag,lg=tg,fg=ig,Ig=rg,cg="pako deflate (from Nodeca project)",me={deflateInit:ng,deflateInit2:og,deflateReset:ag,deflateResetKeep:sg,deflateSetHeader:gg,deflate:lg,deflateEnd:fg,deflateSetDictionary:Ig,deflateInfo:cg},hg=(A,t)=>Object.prototype.hasOwnProperty.call(A,t),Bg=function(A){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let e=t.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(let i in e)hg(e,i)&&(A[i]=e[i])}}return A},Cg=A=>{let t=0;for(let i=0,r=A.length;i<r;i++)t+=A[i].length;let e=new Uint8Array(t);for(let i=0,r=0,n=A.length;i<n;i++){let l=A[i];e.set(l,r),r+=l.length}return e},mt={assign:Bg,flattenChunks:Cg},ho=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{ho=!1}Fe=new Uint8Array(256);for(let A=0;A<256;A++)Fe[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;Fe[254]=Fe[254]=1;Eg=A=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(A);let t,e,i,r,n,l=A.length,s=0;for(r=0;r<l;r++)e=A.charCodeAt(r),(e&64512)===55296&&r+1<l&&(i=A.charCodeAt(r+1),(i&64512)===56320&&(e=65536+(e-55296<<10)+(i-56320),r++)),s+=e<128?1:e<2048?2:e<65536?3:4;for(t=new Uint8Array(s),n=0,r=0;n<s;r++)e=A.charCodeAt(r),(e&64512)===55296&&r+1<l&&(i=A.charCodeAt(r+1),(i&64512)===56320&&(e=65536+(e-55296<<10)+(i-56320),r++)),e<128?t[n++]=e:e<2048?(t[n++]=192|e>>>6,t[n++]=128|e&63):e<65536?(t[n++]=224|e>>>12,t[n++]=128|e>>>6&63,t[n++]=128|e&63):(t[n++]=240|e>>>18,t[n++]=128|e>>>12&63,t[n++]=128|e>>>6&63,t[n++]=128|e&63);return t},ug=(A,t)=>{if(t<65534&&A.subarray&&ho)return String.fromCharCode.apply(null,A.length===t?A:A.subarray(0,t));let e="";for(let i=0;i<t;i++)e+=String.fromCharCode(A[i]);return e},Qg=(A,t)=>{let e=t||A.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(A.subarray(0,t));let i,r,n=new Array(e*2);for(r=0,i=0;i<e;){let l=A[i++];if(l<128){n[r++]=l;continue}let s=Fe[l];if(s>4){n[r++]=65533,i+=s-1;continue}for(l&=s===2?31:s===3?15:7;s>1&&i<e;)l=l<<6|A[i++]&63,s--;if(s>1){n[r++]=65533;continue}l<65536?n[r++]=l:(l-=65536,n[r++]=55296|l>>10&1023,n[r++]=56320|l&1023)}return ug(n,r)},dg=(A,t)=>{t=t||A.length,t>A.length&&(t=A.length);let e=t-1;for(;e>=0&&(A[e]&192)===128;)e--;return e<0||e===0?t:e+Fe[A[e]]>t?e:t},ve={string2buf:Eg,buf2string:Qg,utf8border:dg};Bo=wg,Co=Object.prototype.toString,{Z_NO_FLUSH:pg,Z_SYNC_FLUSH:yg,Z_FULL_FLUSH:mg,Z_FINISH:_g,Z_OK:wt,Z_STREAM_END:xg,Z_DEFAULT_COMPRESSION:Dg,Z_DEFAULT_STRATEGY:kg,Z_DEFLATED:bg}=le;Me.prototype.push=function(A,t){let e=this.strm,i=this.options.chunkSize,r,n;if(this.ended)return!1;for(t===~~t?n=t:n=t===!0?_g:pg,typeof A=="string"?e.input=ve.string2buf(A):Co.call(A)==="[object ArrayBuffer]"?e.input=new Uint8Array(A):e.input=A,e.next_in=0,e.avail_in=e.input.length;;){if(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(n===yg||n===mg)&&e.avail_out<=6){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(r=me.deflate(e,n),r===xg)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=me.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===wt;if(e.avail_out===0){this.onData(e.output);continue}if(n>0&&e.next_out>0){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(e.avail_in===0)break}return!0};Me.prototype.onData=function(A){this.chunks.push(A)};Me.prototype.onEnd=function(A){A===wt&&(this.result=mt.flattenChunks(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};vg=Me,Rg=Ni,Ug=Sg,Gg=Fg,Mg=le,Lg={Deflate:vg,deflate:Rg,deflateRaw:Ug,gzip:Gg,constants:Mg},Bt=16209,Ng=16191,Tg=function(t,e){let i,r,n,l,s,f,o,a,h,I,g,c,B,C,d,E,w,p,Q,u,m,y,k,x,b=t.state;i=t.next_in,k=t.input,r=i+(t.avail_in-5),n=t.next_out,x=t.output,l=n-(e-t.avail_out),s=n+(t.avail_out-257),f=b.dmax,o=b.wsize,a=b.whave,h=b.wnext,I=b.window,g=b.hold,c=b.bits,B=b.lencode,C=b.distcode,d=(1<<b.lenbits)-1,E=(1<<b.distbits)-1;A:do{c<15&&(g+=k[i++]<<c,c+=8,g+=k[i++]<<c,c+=8),w=B[g&d];e:for(;;){if(p=w>>>24,g>>>=p,c-=p,p=w>>>16&255,p===0)x[n++]=w&65535;else if(p&16){Q=w&65535,p&=15,p&&(c<p&&(g+=k[i++]<<c,c+=8),Q+=g&(1<<p)-1,g>>>=p,c-=p),c<15&&(g+=k[i++]<<c,c+=8,g+=k[i++]<<c,c+=8),w=C[g&E];t:for(;;){if(p=w>>>24,g>>>=p,c-=p,p=w>>>16&255,p&16){if(u=w&65535,p&=15,c<p&&(g+=k[i++]<<c,c+=8,c<p&&(g+=k[i++]<<c,c+=8)),u+=g&(1<<p)-1,u>f){t.msg="invalid distance too far back",b.mode=Bt;break A}if(g>>>=p,c-=p,p=n-l,u>p){if(p=u-p,p>a&&b.sane){t.msg="invalid distance too far back",b.mode=Bt;break A}if(m=0,y=I,h===0){if(m+=o-p,p<Q){Q-=p;do x[n++]=I[m++];while(--p);m=n-u,y=x}}else if(h<p){if(m+=o+h-p,p-=h,p<Q){Q-=p;do x[n++]=I[m++];while(--p);if(m=0,h<Q){p=h,Q-=p;do x[n++]=I[m++];while(--p);m=n-u,y=x}}}else if(m+=h-p,p<Q){Q-=p;do x[n++]=I[m++];while(--p);m=n-u,y=x}for(;Q>2;)x[n++]=y[m++],x[n++]=y[m++],x[n++]=y[m++],Q-=3;Q&&(x[n++]=y[m++],Q>1&&(x[n++]=y[m++]))}else{m=n-u;do x[n++]=x[m++],x[n++]=x[m++],x[n++]=x[m++],Q-=3;while(Q>2);Q&&(x[n++]=x[m++],Q>1&&(x[n++]=x[m++]))}}else if(p&64){t.msg="invalid distance code",b.mode=Bt;break A}else{w=C[(w&65535)+(g&(1<<p)-1)];continue t}break}}else if(p&64)if(p&32){b.mode=Ng;break A}else{t.msg="invalid literal/length code",b.mode=Bt;break A}else{w=B[(w&65535)+(g&(1<<p)-1)];continue e}break}}while(i<r&&n<s);Q=c>>3,i-=Q,c-=Q<<3,g&=(1<<c)-1,t.next_in=i,t.next_out=n,t.avail_in=i<r?5+(r-i):5-(i-r),t.avail_out=n<s?257+(s-n):257-(n-s),b.hold=g,b.bits=c},ne=15,un=852,Qn=592,dn=0,Ci=1,wn=2,Og=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),qg=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Hg=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Yg=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Jg=(A,t,e,i,r,n,l,s)=>{let f=s.bits,o=0,a=0,h=0,I=0,g=0,c=0,B=0,C=0,d=0,E=0,w,p,Q,u,m,y=null,k,x=new Uint16Array(ne+1),b=new Uint16Array(ne+1),S=null,N,D,_;for(o=0;o<=ne;o++)x[o]=0;for(a=0;a<i;a++)x[t[e+a]]++;for(g=f,I=ne;I>=1&&x[I]===0;I--);if(g>I&&(g=I),I===0)return r[n++]=1<<24|64<<16|0,r[n++]=1<<24|64<<16|0,s.bits=1,0;for(h=1;h<I&&x[h]===0;h++);for(g<h&&(g=h),C=1,o=1;o<=ne;o++)if(C<<=1,C-=x[o],C<0)return-1;if(C>0&&(A===dn||I!==1))return-1;for(b[1]=0,o=1;o<ne;o++)b[o+1]=b[o]+x[o];for(a=0;a<i;a++)t[e+a]!==0&&(l[b[t[e+a]]++]=a);if(A===dn?(y=S=l,k=20):A===Ci?(y=Og,S=qg,k=257):(y=Hg,S=Yg,k=0),E=0,a=0,o=h,m=n,c=g,B=0,Q=-1,d=1<<g,u=d-1,A===Ci&&d>un||A===wn&&d>Qn)return 1;for(;;){N=o-B,l[a]+1<k?(D=0,_=l[a]):l[a]>=k?(D=S[l[a]-k],_=y[l[a]-k]):(D=32+64,_=0),w=1<<o-B,p=1<<c,h=p;do p-=w,r[m+(E>>B)+p]=N<<24|D<<16|_|0;while(p!==0);for(w=1<<o-1;E&w;)w>>=1;if(w!==0?(E&=w-1,E+=w):E=0,a++,--x[o]===0){if(o===I)break;o=t[e+l[a]]}if(o>g&&(E&u)!==Q){for(B===0&&(B=g),m+=h,c=o-B,C=1<<c;c+B<I&&(C-=x[c+B],!(C<=0));)c++,C<<=1;if(d+=1<<c,A===Ci&&d>un||A===wn&&d>Qn)return 1;Q=E&u,r[Q]=g<<24|c<<16|m-n|0}}return E!==0&&(r[m+E]=o-B<<24|64<<16|0),s.bits=g,0},_e=Jg,zg=0,Eo=1,uo=2,{Z_FINISH:pn,Z_BLOCK:Kg,Z_TREES:Ct,Z_OK:ZA,Z_STREAM_END:Pg,Z_NEED_DICT:Vg,Z_STREAM_ERROR:hA,Z_DATA_ERROR:Qo,Z_MEM_ERROR:wo,Z_BUF_ERROR:Zg,Z_DEFLATED:yn}=le,_t=16180,mn=16181,_n=16182,xn=16183,Dn=16184,kn=16185,bn=16186,Sn=16187,Fn=16188,vn=16189,pt=16190,xA=16191,Ei=16192,Rn=16193,ui=16194,Un=16195,Gn=16196,Mn=16197,Ln=16198,Et=16199,ut=16200,Nn=16201,Tn=16202,On=16203,qn=16204,Hn=16205,Qi=16206,Yn=16207,Jn=16208,$=16209,po=16210,yo=16211,Xg=852,jg=592,$g=15,Wg=$g,zn=A=>(A>>>24&255)+(A>>>8&65280)+((A&65280)<<8)+((A&255)<<24);XA=A=>{if(!A)return 1;let t=A.state;return!t||t.strm!==A||t.mode<_t||t.mode>yo?1:0},mo=A=>{if(XA(A))return hA;let t=A.state;return A.total_in=A.total_out=t.total=0,A.msg="",t.wrap&&(A.adler=t.wrap&1),t.mode=_t,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(Xg),t.distcode=t.distdyn=new Int32Array(jg),t.sane=1,t.back=-1,ZA},_o=A=>{if(XA(A))return hA;let t=A.state;return t.wsize=0,t.whave=0,t.wnext=0,mo(A)},xo=(A,t)=>{let e;if(XA(A))return hA;let i=A.state;return t<0?(e=0,t=-t):(e=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?hA:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,_o(A))},Do=(A,t)=>{if(!A)return hA;let e=new Al;A.state=e,e.strm=A,e.window=null,e.mode=_t;let i=xo(A,t);return i!==ZA&&(A.state=null),i},el=A=>Do(A,Wg),Kn=!0,tl=A=>{if(Kn){di=new Int32Array(512),wi=new Int32Array(32);let t=0;for(;t<144;)A.lens[t++]=8;for(;t<256;)A.lens[t++]=9;for(;t<280;)A.lens[t++]=7;for(;t<288;)A.lens[t++]=8;for(_e(Eo,A.lens,0,288,di,0,A.work,{bits:9}),t=0;t<32;)A.lens[t++]=5;_e(uo,A.lens,0,32,wi,0,A.work,{bits:5}),Kn=!1}A.lencode=di,A.lenbits=9,A.distcode=wi,A.distbits=5},ko=(A,t,e,i)=>{let r,n=A.state;return n.window===null&&(n.wsize=1<<n.wbits,n.wnext=0,n.whave=0,n.window=new Uint8Array(n.wsize)),i>=n.wsize?(n.window.set(t.subarray(e-n.wsize,e),0),n.wnext=0,n.whave=n.wsize):(r=n.wsize-n.wnext,r>i&&(r=i),n.window.set(t.subarray(e-i,e-i+r),n.wnext),i-=r,i?(n.window.set(t.subarray(e-i,e),0),n.wnext=i,n.whave=n.wsize):(n.wnext+=r,n.wnext===n.wsize&&(n.wnext=0),n.whave<n.wsize&&(n.whave+=r))),0},il=(A,t)=>{let e,i,r,n,l,s,f,o,a,h,I,g,c,B,C=0,d,E,w,p,Q,u,m,y,k=new Uint8Array(4),x,b,S=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(XA(A)||!A.output||!A.input&&A.avail_in!==0)return hA;e=A.state,e.mode===xA&&(e.mode=Ei),l=A.next_out,r=A.output,f=A.avail_out,n=A.next_in,i=A.input,s=A.avail_in,o=e.hold,a=e.bits,h=s,I=f,y=ZA;A:for(;;)switch(e.mode){case _t:if(e.wrap===0){e.mode=Ei;break}for(;a<16;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if(e.wrap&2&&o===35615){e.wbits===0&&(e.wbits=15),e.check=0,k[0]=o&255,k[1]=o>>>8&255,e.check=eA(e.check,k,2,0),o=0,a=0,e.mode=mn;break}if(e.head&&(e.head.done=!1),!(e.wrap&1)||(((o&255)<<8)+(o>>8))%31){A.msg="incorrect header check",e.mode=$;break}if((o&15)!==yn){A.msg="unknown compression method",e.mode=$;break}if(o>>>=4,a-=4,m=(o&15)+8,e.wbits===0&&(e.wbits=m),m>15||m>e.wbits){A.msg="invalid window size",e.mode=$;break}e.dmax=1<<e.wbits,e.flags=0,A.adler=e.check=1,e.mode=o&512?vn:xA,o=0,a=0;break;case mn:for(;a<16;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if(e.flags=o,(e.flags&255)!==yn){A.msg="unknown compression method",e.mode=$;break}if(e.flags&57344){A.msg="unknown header flags set",e.mode=$;break}e.head&&(e.head.text=o>>8&1),e.flags&512&&e.wrap&4&&(k[0]=o&255,k[1]=o>>>8&255,e.check=eA(e.check,k,2,0)),o=0,a=0,e.mode=_n;case _n:for(;a<32;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}e.head&&(e.head.time=o),e.flags&512&&e.wrap&4&&(k[0]=o&255,k[1]=o>>>8&255,k[2]=o>>>16&255,k[3]=o>>>24&255,e.check=eA(e.check,k,4,0)),o=0,a=0,e.mode=xn;case xn:for(;a<16;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}e.head&&(e.head.xflags=o&255,e.head.os=o>>8),e.flags&512&&e.wrap&4&&(k[0]=o&255,k[1]=o>>>8&255,e.check=eA(e.check,k,2,0)),o=0,a=0,e.mode=Dn;case Dn:if(e.flags&1024){for(;a<16;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}e.length=o,e.head&&(e.head.extra_len=o),e.flags&512&&e.wrap&4&&(k[0]=o&255,k[1]=o>>>8&255,e.check=eA(e.check,k,2,0)),o=0,a=0}else e.head&&(e.head.extra=null);e.mode=kn;case kn:if(e.flags&1024&&(g=e.length,g>s&&(g=s),g&&(e.head&&(m=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(n,n+g),m)),e.flags&512&&e.wrap&4&&(e.check=eA(e.check,i,g,n)),s-=g,n+=g,e.length-=g),e.length))break A;e.length=0,e.mode=bn;case bn:if(e.flags&2048){if(s===0)break A;g=0;do m=i[n+g++],e.head&&m&&e.length<65536&&(e.head.name+=String.fromCharCode(m));while(m&&g<s);if(e.flags&512&&e.wrap&4&&(e.check=eA(e.check,i,g,n)),s-=g,n+=g,m)break A}else e.head&&(e.head.name=null);e.length=0,e.mode=Sn;case Sn:if(e.flags&4096){if(s===0)break A;g=0;do m=i[n+g++],e.head&&m&&e.length<65536&&(e.head.comment+=String.fromCharCode(m));while(m&&g<s);if(e.flags&512&&e.wrap&4&&(e.check=eA(e.check,i,g,n)),s-=g,n+=g,m)break A}else e.head&&(e.head.comment=null);e.mode=Fn;case Fn:if(e.flags&512){for(;a<16;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if(e.wrap&4&&o!==(e.check&65535)){A.msg="header crc mismatch",e.mode=$;break}o=0,a=0}e.head&&(e.head.hcrc=e.flags>>9&1,e.head.done=!0),A.adler=e.check=0,e.mode=xA;break;case vn:for(;a<32;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}A.adler=e.check=zn(o),o=0,a=0,e.mode=pt;case pt:if(e.havedict===0)return A.next_out=l,A.avail_out=f,A.next_in=n,A.avail_in=s,e.hold=o,e.bits=a,Vg;A.adler=e.check=1,e.mode=xA;case xA:if(t===Kg||t===Ct)break A;case Ei:if(e.last){o>>>=a&7,a-=a&7,e.mode=Qi;break}for(;a<3;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}switch(e.last=o&1,o>>>=1,a-=1,o&3){case 0:e.mode=Rn;break;case 1:if(tl(e),e.mode=Et,t===Ct){o>>>=2,a-=2;break A}break;case 2:e.mode=Gn;break;case 3:A.msg="invalid block type",e.mode=$}o>>>=2,a-=2;break;case Rn:for(o>>>=a&7,a-=a&7;a<32;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if((o&65535)!==(o>>>16^65535)){A.msg="invalid stored block lengths",e.mode=$;break}if(e.length=o&65535,o=0,a=0,e.mode=ui,t===Ct)break A;case ui:e.mode=Un;case Un:if(g=e.length,g){if(g>s&&(g=s),g>f&&(g=f),g===0)break A;r.set(i.subarray(n,n+g),l),s-=g,n+=g,f-=g,l+=g,e.length-=g;break}e.mode=xA;break;case Gn:for(;a<14;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if(e.nlen=(o&31)+257,o>>>=5,a-=5,e.ndist=(o&31)+1,o>>>=5,a-=5,e.ncode=(o&15)+4,o>>>=4,a-=4,e.nlen>286||e.ndist>30){A.msg="too many length or distance symbols",e.mode=$;break}e.have=0,e.mode=Mn;case Mn:for(;e.have<e.ncode;){for(;a<3;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}e.lens[S[e.have++]]=o&7,o>>>=3,a-=3}for(;e.have<19;)e.lens[S[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,x={bits:e.lenbits},y=_e(zg,e.lens,0,19,e.lencode,0,e.work,x),e.lenbits=x.bits,y){A.msg="invalid code lengths set",e.mode=$;break}e.have=0,e.mode=Ln;case Ln:for(;e.have<e.nlen+e.ndist;){for(;C=e.lencode[o&(1<<e.lenbits)-1],d=C>>>24,E=C>>>16&255,w=C&65535,!(d<=a);){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if(w<16)o>>>=d,a-=d,e.lens[e.have++]=w;else{if(w===16){for(b=d+2;a<b;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if(o>>>=d,a-=d,e.have===0){A.msg="invalid bit length repeat",e.mode=$;break}m=e.lens[e.have-1],g=3+(o&3),o>>>=2,a-=2}else if(w===17){for(b=d+3;a<b;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}o>>>=d,a-=d,m=0,g=3+(o&7),o>>>=3,a-=3}else{for(b=d+7;a<b;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}o>>>=d,a-=d,m=0,g=11+(o&127),o>>>=7,a-=7}if(e.have+g>e.nlen+e.ndist){A.msg="invalid bit length repeat",e.mode=$;break}for(;g--;)e.lens[e.have++]=m}}if(e.mode===$)break;if(e.lens[256]===0){A.msg="invalid code -- missing end-of-block",e.mode=$;break}if(e.lenbits=9,x={bits:e.lenbits},y=_e(Eo,e.lens,0,e.nlen,e.lencode,0,e.work,x),e.lenbits=x.bits,y){A.msg="invalid literal/lengths set",e.mode=$;break}if(e.distbits=6,e.distcode=e.distdyn,x={bits:e.distbits},y=_e(uo,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,x),e.distbits=x.bits,y){A.msg="invalid distances set",e.mode=$;break}if(e.mode=Et,t===Ct)break A;case Et:e.mode=ut;case ut:if(s>=6&&f>=258){A.next_out=l,A.avail_out=f,A.next_in=n,A.avail_in=s,e.hold=o,e.bits=a,Tg(A,I),l=A.next_out,r=A.output,f=A.avail_out,n=A.next_in,i=A.input,s=A.avail_in,o=e.hold,a=e.bits,e.mode===xA&&(e.back=-1);break}for(e.back=0;C=e.lencode[o&(1<<e.lenbits)-1],d=C>>>24,E=C>>>16&255,w=C&65535,!(d<=a);){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if(E&&!(E&240)){for(p=d,Q=E,u=w;C=e.lencode[u+((o&(1<<p+Q)-1)>>p)],d=C>>>24,E=C>>>16&255,w=C&65535,!(p+d<=a);){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}o>>>=p,a-=p,e.back+=p}if(o>>>=d,a-=d,e.back+=d,e.length=w,E===0){e.mode=Hn;break}if(E&32){e.back=-1,e.mode=xA;break}if(E&64){A.msg="invalid literal/length code",e.mode=$;break}e.extra=E&15,e.mode=Nn;case Nn:if(e.extra){for(b=e.extra;a<b;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}e.length+=o&(1<<e.extra)-1,o>>>=e.extra,a-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=Tn;case Tn:for(;C=e.distcode[o&(1<<e.distbits)-1],d=C>>>24,E=C>>>16&255,w=C&65535,!(d<=a);){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if(!(E&240)){for(p=d,Q=E,u=w;C=e.distcode[u+((o&(1<<p+Q)-1)>>p)],d=C>>>24,E=C>>>16&255,w=C&65535,!(p+d<=a);){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}o>>>=p,a-=p,e.back+=p}if(o>>>=d,a-=d,e.back+=d,E&64){A.msg="invalid distance code",e.mode=$;break}e.offset=w,e.extra=E&15,e.mode=On;case On:if(e.extra){for(b=e.extra;a<b;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}e.offset+=o&(1<<e.extra)-1,o>>>=e.extra,a-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){A.msg="invalid distance too far back",e.mode=$;break}e.mode=qn;case qn:if(f===0)break A;if(g=I-f,e.offset>g){if(g=e.offset-g,g>e.whave&&e.sane){A.msg="invalid distance too far back",e.mode=$;break}g>e.wnext?(g-=e.wnext,c=e.wsize-g):c=e.wnext-g,g>e.length&&(g=e.length),B=e.window}else B=r,c=l-e.offset,g=e.length;g>f&&(g=f),f-=g,e.length-=g;do r[l++]=B[c++];while(--g);e.length===0&&(e.mode=ut);break;case Hn:if(f===0)break A;r[l++]=e.length,f--,e.mode=ut;break;case Qi:if(e.wrap){for(;a<32;){if(s===0)break A;s--,o|=i[n++]<<a,a+=8}if(I-=f,A.total_out+=I,e.total+=I,e.wrap&4&&I&&(A.adler=e.check=e.flags?eA(e.check,r,I,l-I):Se(e.check,r,I,l-I)),I=f,e.wrap&4&&(e.flags?o:zn(o))!==e.check){A.msg="incorrect data check",e.mode=$;break}o=0,a=0}e.mode=Yn;case Yn:if(e.wrap&&e.flags){for(;a<32;){if(s===0)break A;s--,o+=i[n++]<<a,a+=8}if(e.wrap&4&&o!==(e.total&4294967295)){A.msg="incorrect length check",e.mode=$;break}o=0,a=0}e.mode=Jn;case Jn:y=Pg;break A;case $:y=Qo;break A;case po:return wo;case yo:default:return hA}return A.next_out=l,A.avail_out=f,A.next_in=n,A.avail_in=s,e.hold=o,e.bits=a,(e.wsize||I!==A.avail_out&&e.mode<$&&(e.mode<Qi||t!==pn))&&ko(A,A.output,A.next_out,I-A.avail_out),h-=A.avail_in,I-=A.avail_out,A.total_in+=h,A.total_out+=I,e.total+=I,e.wrap&4&&I&&(A.adler=e.check=e.flags?eA(e.check,r,I,A.next_out-I):Se(e.check,r,I,A.next_out-I)),A.data_type=e.bits+(e.last?64:0)+(e.mode===xA?128:0)+(e.mode===Et||e.mode===ui?256:0),(h===0&&I===0||t===pn)&&y===ZA&&(y=Zg),y},rl=A=>{if(XA(A))return hA;let t=A.state;return t.window&&(t.window=null),A.state=null,ZA},nl=(A,t)=>{if(XA(A))return hA;let e=A.state;return e.wrap&2?(e.head=t,t.done=!1,ZA):hA},ol=(A,t)=>{let e=t.length,i,r,n;return XA(A)||(i=A.state,i.wrap!==0&&i.mode!==pt)?hA:i.mode===pt&&(r=1,r=Se(r,t,e,0),r!==i.check)?Qo:(n=ko(A,t,e,e),n?(i.mode=po,wo):(i.havedict=1,ZA))},al=_o,sl=xo,gl=mo,ll=el,fl=Do,Il=il,cl=rl,hl=nl,Bl=ol,Cl="pako inflate (from Nodeca project)",kA={inflateReset:al,inflateReset2:sl,inflateResetKeep:gl,inflateInit:ll,inflateInit2:fl,inflate:Il,inflateEnd:cl,inflateGetHeader:hl,inflateSetDictionary:Bl,inflateInfo:Cl};ul=El,bo=Object.prototype.toString,{Z_NO_FLUSH:Ql,Z_FINISH:dl,Z_OK:Re,Z_STREAM_END:pi,Z_NEED_DICT:yi,Z_STREAM_ERROR:wl,Z_DATA_ERROR:Pn,Z_MEM_ERROR:pl}=le;Le.prototype.push=function(A,t){let e=this.strm,i=this.options.chunkSize,r=this.options.dictionary,n,l,s;if(this.ended)return!1;for(t===~~t?l=t:l=t===!0?dl:Ql,bo.call(A)==="[object ArrayBuffer]"?e.input=new Uint8Array(A):e.input=A,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),n=kA.inflate(e,l),n===yi&&r&&(n=kA.inflateSetDictionary(e,r),n===Re?n=kA.inflate(e,l):n===Pn&&(n=yi));e.avail_in>0&&n===pi&&e.state.wrap>0&&A[e.next_in]!==0;)kA.inflateReset(e),n=kA.inflate(e,l);switch(n){case wl:case Pn:case yi:case pl:return this.onEnd(n),this.ended=!0,!1}if(s=e.avail_out,e.next_out&&(e.avail_out===0||n===pi))if(this.options.to==="string"){let f=ve.utf8border(e.output,e.next_out),o=e.next_out-f,a=ve.buf2string(e.output,f);e.next_out=o,e.avail_out=i-o,o&&e.output.set(e.output.subarray(f,f+o),0),this.onData(a)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(n===Re&&s===0)){if(n===pi)return n=kA.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,!0;if(e.avail_in===0)break}}return!0};Le.prototype.onData=function(A){this.chunks.push(A)};Le.prototype.onEnd=function(A){A===Re&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=mt.flattenChunks(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};ml=Le,_l=Ti,xl=yl,Dl=Ti,kl=le,bl={Inflate:ml,inflate:_l,inflateRaw:xl,ungzip:Dl,constants:kl},{Deflate:BI,deflate:CI,deflateRaw:EI,gzip:uI}=Lg,{Inflate:QI,inflate:Sl,inflateRaw:dI,ungzip:wI}=bl,xt=Sl});var So={};RA(So,{default:()=>Dt});var Dt,Fo=IA(()=>{Oi();_A();Dt=class extends W{decodeBlock(t){return xt(new Uint8Array(t)).buffer}}});var vo={};RA(vo,{default:()=>kt});var kt,Ro=IA(()=>{_A();kt=class extends W{decodeBlock(t){let e=new DataView(t),i=[];for(let r=0;r<t.byteLength;++r){let n=e.getInt8(r);if(n<0){let l=e.getUint8(r+1);n=-n;for(let s=0;s<=n;++s)i.push(l);r+=1}else{for(let l=0;l<=n;++l)i.push(e.getUint8(r+l+1));r+=n+1}}return new Uint8Array(i).buffer}}});var Uo=vA((xI,bt)=>{(function(){var A=function(){var r={};r.defaultNoDataValue=-34027999387901484e22,r.decode=function(a,h){h=h||{};var I=h.encodedMaskData||h.encodedMaskData===null,g=f(a,h.inputOffset||0,I),c=h.noDataValue!==null?h.noDataValue:r.defaultNoDataValue,B=n(g,h.pixelType||Float32Array,h.encodedMaskData,c,h.returnMask),C={width:g.width,height:g.height,pixelData:B.resultPixels,minValue:B.minValue,maxValue:g.pixels.maxValue,noDataValue:c};return B.resultMask&&(C.maskData=B.resultMask),h.returnEncodedMask&&g.mask&&(C.encodedMaskData=g.mask.bitset?g.mask.bitset:null),h.returnFileInfo&&(C.fileInfo=l(g),h.computeUsedBitDepths&&(C.fileInfo.bitDepths=s(g))),C};var n=function(a,h,I,g,c){var B=0,C=a.pixels.numBlocksX,d=a.pixels.numBlocksY,E=Math.floor(a.width/C),w=Math.floor(a.height/d),p=2*a.maxZError,Q=Number.MAX_VALUE,u;I=I||(a.mask?a.mask.bitset:null);var m,y;m=new h(a.width*a.height),c&&I&&(y=new Uint8Array(a.width*a.height));for(var k=new Float32Array(E*w),x,b,S=0;S<=d;S++){var N=S!==d?w:a.height%d;if(N!==0)for(var D=0;D<=C;D++){var _=D!==C?E:a.width%C;if(_!==0){var R=S*a.width*w+D*E,T=a.width-_,F=a.pixels.blocks[B],v,U,q;F.encoding<2?(F.encoding===0?v=F.rawData:(o(F.stuffedData,F.bitsPerPixel,F.numValidPixels,F.offset,p,k,a.pixels.maxValue),v=k),U=0):F.encoding===2?q=0:q=F.offset;var z;if(I)for(b=0;b<N;b++){for(R&7&&(z=I[R>>3],z<<=R&7),x=0;x<_;x++)R&7||(z=I[R>>3]),z&128?(y&&(y[R]=1),u=F.encoding<2?v[U++]:q,Q=Q>u?u:Q,m[R++]=u):(y&&(y[R]=0),m[R++]=g),z<<=1;R+=T}else if(F.encoding<2)for(b=0;b<N;b++){for(x=0;x<_;x++)u=v[U++],Q=Q>u?u:Q,m[R++]=u;R+=T}else for(Q=Q>q?q:Q,b=0;b<N;b++){for(x=0;x<_;x++)m[R++]=q;R+=T}if(F.encoding===1&&U!==F.numValidPixels)throw"Block and Mask do not match";B++}}}return{resultPixels:m,resultMask:y,minValue:Q}},l=function(a){return{fileIdentifierString:a.fileIdentifierString,fileVersion:a.fileVersion,imageType:a.imageType,height:a.height,width:a.width,maxZError:a.maxZError,eofOffset:a.eofOffset,mask:a.mask?{numBlocksX:a.mask.numBlocksX,numBlocksY:a.mask.numBlocksY,numBytes:a.mask.numBytes,maxValue:a.mask.maxValue}:null,pixels:{numBlocksX:a.pixels.numBlocksX,numBlocksY:a.pixels.numBlocksY,numBytes:a.pixels.numBytes,maxValue:a.pixels.maxValue,noDataValue:a.noDataValue}}},s=function(a){for(var h=a.pixels.numBlocksX*a.pixels.numBlocksY,I={},g=0;g<h;g++){var c=a.pixels.blocks[g];c.encoding===0?I.float32=!0:c.encoding===1?I[c.bitsPerPixel]=!0:I[0]=!0}return Object.keys(I)},f=function(a,h,I){var g={},c=new Uint8Array(a,h,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,c),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;h+=10;var B=new DataView(a,h,24);if(g.fileVersion=B.getInt32(0,!0),g.imageType=B.getInt32(4,!0),g.height=B.getUint32(8,!0),g.width=B.getUint32(12,!0),g.maxZError=B.getFloat64(16,!0),h+=24,!I)if(B=new DataView(a,h,16),g.mask={},g.mask.numBlocksY=B.getUint32(0,!0),g.mask.numBlocksX=B.getUint32(4,!0),g.mask.numBytes=B.getUint32(8,!0),g.mask.maxValue=B.getFloat32(12,!0),h+=16,g.mask.numBytes>0){var C=new Uint8Array(Math.ceil(g.width*g.height/8));B=new DataView(a,h,g.mask.numBytes);var d=B.getInt16(0,!0),E=2,w=0;do{if(d>0)for(;d--;)C[w++]=B.getUint8(E++);else{var p=B.getUint8(E++);for(d=-d;d--;)C[w++]=p}d=B.getInt16(E,!0),E+=2}while(E<g.mask.numBytes);if(d!==-32768||w<C.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=C,h+=g.mask.numBytes}else g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue||(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));B=new DataView(a,h,16),g.pixels={},g.pixels.numBlocksY=B.getUint32(0,!0),g.pixels.numBlocksX=B.getUint32(4,!0),g.pixels.numBytes=B.getUint32(8,!0),g.pixels.maxValue=B.getFloat32(12,!0),h+=16;var Q=g.pixels.numBlocksX,u=g.pixels.numBlocksY,m=Q+(g.width%Q>0?1:0),y=u+(g.height%u>0?1:0);g.pixels.blocks=new Array(m*y);for(var k=0,x=0;x<y;x++)for(var b=0;b<m;b++){var S=0,N=a.byteLength-h;B=new DataView(a,h,Math.min(10,N));var D={};g.pixels.blocks[k++]=D;var _=B.getUint8(0);if(S++,D.encoding=_&63,D.encoding>3)throw"Invalid block encoding ("+D.encoding+")";if(D.encoding===2){h++;continue}if(_!==0&&_!==2){if(_>>=6,D.offsetType=_,_===2)D.offset=B.getInt8(1),S++;else if(_===1)D.offset=B.getInt16(1,!0),S+=2;else if(_===0)D.offset=B.getFloat32(1,!0),S+=4;else throw"Invalid block offset type";if(D.encoding===1)if(_=B.getUint8(S),S++,D.bitsPerPixel=_&63,_>>=6,D.numValidPixelsType=_,_===2)D.numValidPixels=B.getUint8(S),S++;else if(_===1)D.numValidPixels=B.getUint16(S,!0),S+=2;else if(_===0)D.numValidPixels=B.getUint32(S,!0),S+=4;else throw"Invalid valid pixel count type"}if(h+=S,D.encoding!==3){var R,T;if(D.encoding===0){var F=(g.pixels.numBytes-1)/4;if(F!==Math.floor(F))throw"uncompressed block has invalid length";R=new ArrayBuffer(F*4),T=new Uint8Array(R),T.set(new Uint8Array(a,h,F*4));var v=new Float32Array(R);D.rawData=v,h+=F*4}else if(D.encoding===1){var U=Math.ceil(D.numValidPixels*D.bitsPerPixel/8),q=Math.ceil(U/4);R=new ArrayBuffer(q*4),T=new Uint8Array(R),T.set(new Uint8Array(a,h,U)),D.stuffedData=new Uint32Array(R),h+=U}}}return g.eofOffset=h,g},o=function(a,h,I,g,c,B,C){var d=(1<<h)-1,E=0,w,p=0,Q,u,m=Math.ceil((C-g)/c),y=a.length*4-Math.ceil(h*I/8);for(a[a.length-1]<<=8*y,w=0;w<I;w++){if(p===0&&(u=a[E++],p=32),p>=h)Q=u>>>p-h&d,p-=h;else{var k=h-p;Q=(u&d)<<k&d,u=a[E++],p=32-k,Q+=u>>>p}B[w]=Q<m?g+Q*c:C}return B};return r}(),t=function(){"use strict";var r={unstuff:function(f,o,a,h,I,g,c,B){var C=(1<<a)-1,d=0,E,w=0,p,Q,u,m,y=f.length*4-Math.ceil(a*h/8);if(f[f.length-1]<<=8*y,I)for(E=0;E<h;E++)w===0&&(Q=f[d++],w=32),w>=a?(p=Q>>>w-a&C,w-=a):(u=a-w,p=(Q&C)<<u&C,Q=f[d++],w=32-u,p+=Q>>>w),o[E]=I[p];else for(m=Math.ceil((B-g)/c),E=0;E<h;E++)w===0&&(Q=f[d++],w=32),w>=a?(p=Q>>>w-a&C,w-=a):(u=a-w,p=(Q&C)<<u&C,Q=f[d++],w=32-u,p+=Q>>>w),o[E]=p<m?g+p*c:B},unstuffLUT:function(f,o,a,h,I,g){var c=(1<<o)-1,B=0,C=0,d=0,E=0,w=0,p,Q=[],u=f.length*4-Math.ceil(o*a/8);f[f.length-1]<<=8*u;var m=Math.ceil((g-h)/I);for(C=0;C<a;C++)E===0&&(p=f[B++],E=32),E>=o?(w=p>>>E-o&c,E-=o):(d=o-E,w=(p&c)<<d&c,p=f[B++],E=32-d,w+=p>>>E),Q[C]=w<m?h+w*I:g;return Q.unshift(h),Q},unstuff2:function(f,o,a,h,I,g,c,B){var C=(1<<a)-1,d=0,E,w=0,p=0,Q,u,m;if(I)for(E=0;E<h;E++)w===0&&(u=f[d++],w=32,p=0),w>=a?(Q=u>>>p&C,w-=a,p+=a):(m=a-w,Q=u>>>p&C,u=f[d++],w=32-m,Q|=(u&(1<<m)-1)<<a-m,p=m),o[E]=I[Q];else{var y=Math.ceil((B-g)/c);for(E=0;E<h;E++)w===0&&(u=f[d++],w=32,p=0),w>=a?(Q=u>>>p&C,w-=a,p+=a):(m=a-w,Q=u>>>p&C,u=f[d++],w=32-m,Q|=(u&(1<<m)-1)<<a-m,p=m),o[E]=Q<y?g+Q*c:B}return o},unstuffLUT2:function(f,o,a,h,I,g){var c=(1<<o)-1,B=0,C=0,d=0,E=0,w=0,p=0,Q,u=[],m=Math.ceil((g-h)/I);for(C=0;C<a;C++)E===0&&(Q=f[B++],E=32,p=0),E>=o?(w=Q>>>p&c,E-=o,p+=o):(d=o-E,w=Q>>>p&c,Q=f[B++],E=32-d,w|=(Q&(1<<d)-1)<<o-d,p=d),u[C]=w<m?h+w*I:g;return u.unshift(h),u},originalUnstuff:function(f,o,a,h){var I=(1<<a)-1,g=0,c,B=0,C,d,E,w=f.length*4-Math.ceil(a*h/8);for(f[f.length-1]<<=8*w,c=0;c<h;c++)B===0&&(d=f[g++],B=32),B>=a?(C=d>>>B-a&I,B-=a):(E=a-B,C=(d&I)<<E&I,d=f[g++],B=32-E,C+=d>>>B),o[c]=C;return o},originalUnstuff2:function(f,o,a,h){var I=(1<<a)-1,g=0,c,B=0,C=0,d,E,w;for(c=0;c<h;c++)B===0&&(E=f[g++],B=32,C=0),B>=a?(d=E>>>C&I,B-=a,C+=a):(w=a-B,d=E>>>C&I,E=f[g++],B=32-w,d|=(E&(1<<w)-1)<<a-w,C=w),o[c]=d;return o}},n={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(f){for(var o=65535,a=65535,h=f.length,I=Math.floor(h/2),g=0;I;){var c=I>=359?359:I;I-=c;do o+=f[g++]<<8,a+=o+=f[g++];while(--c);o=(o&65535)+(o>>>16),a=(a&65535)+(a>>>16)}return h&1&&(a+=o+=f[g]<<8),o=(o&65535)+(o>>>16),a=(a&65535)+(a>>>16),(a<<16|o)>>>0},readHeaderInfo:function(f,o){var a=o.ptr,h=new Uint8Array(f,a,6),I={};if(I.fileIdentifierString=String.fromCharCode.apply(null,h),I.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+I.fileIdentifierString;a+=6;var g=new DataView(f,a,8),c=g.getInt32(0,!0);I.fileVersion=c,a+=4,c>=3&&(I.checksum=g.getUint32(4,!0),a+=4),g=new DataView(f,a,12),I.height=g.getUint32(0,!0),I.width=g.getUint32(4,!0),a+=8,c>=4?(I.numDims=g.getUint32(8,!0),a+=4):I.numDims=1,g=new DataView(f,a,40),I.numValidPixel=g.getUint32(0,!0),I.microBlockSize=g.getInt32(4,!0),I.blobSize=g.getInt32(8,!0),I.imageType=g.getInt32(12,!0),I.maxZError=g.getFloat64(16,!0),I.zMin=g.getFloat64(24,!0),I.zMax=g.getFloat64(32,!0),a+=40,o.headerInfo=I,o.ptr=a;var B,C;if(c>=3&&(C=c>=4?52:48,B=this.computeChecksumFletcher32(new Uint8Array(f,a-C,I.blobSize-14)),B!==I.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(f,o){var a=o.headerInfo,h=this.getDataTypeArray(a.imageType),I=a.numDims*this.getDataTypeSize(a.imageType),g=this.readSubArray(f,o.ptr,h,I),c=this.readSubArray(f,o.ptr+I,h,I);o.ptr+=2*I;var B,C=!0;for(B=0;B<a.numDims;B++)if(g[B]!==c[B]){C=!1;break}return a.minValues=g,a.maxValues=c,C},readSubArray:function(f,o,a,h){var I;if(a===Uint8Array)I=new Uint8Array(f,o,h);else{var g=new ArrayBuffer(h),c=new Uint8Array(g);c.set(new Uint8Array(f,o,h)),I=new a(g)}return I},readMask:function(f,o){var a=o.ptr,h=o.headerInfo,I=h.width*h.height,g=h.numValidPixel,c=new DataView(f,a,4),B={};if(B.numBytes=c.getUint32(0,!0),a+=4,(g===0||I===g)&&B.numBytes!==0)throw"invalid mask";var C,d;if(g===0)C=new Uint8Array(Math.ceil(I/8)),B.bitset=C,d=new Uint8Array(I),o.pixels.resultMask=d,a+=B.numBytes;else if(B.numBytes>0){C=new Uint8Array(Math.ceil(I/8)),c=new DataView(f,a,B.numBytes);var E=c.getInt16(0,!0),w=2,p=0,Q=0;do{if(E>0)for(;E--;)C[p++]=c.getUint8(w++);else for(Q=c.getUint8(w++),E=-E;E--;)C[p++]=Q;E=c.getInt16(w,!0),w+=2}while(w<B.numBytes);if(E!==-32768||p<C.length)throw"Unexpected end of mask RLE encoding";d=new Uint8Array(I);var u=0,m=0;for(m=0;m<I;m++)m&7?(u=C[m>>3],u<<=m&7):u=C[m>>3],u&128&&(d[m]=1);o.pixels.resultMask=d,B.bitset=C,a+=B.numBytes}return o.ptr=a,o.mask=B,!0},readDataOneSweep:function(f,o,a,h){var I=o.ptr,g=o.headerInfo,c=g.numDims,B=g.width*g.height,C=g.imageType,d=g.numValidPixel*n.getDataTypeSize(C)*c,E,w=o.pixels.resultMask;if(a===Uint8Array)E=new Uint8Array(f,I,d);else{var p=new ArrayBuffer(d),Q=new Uint8Array(p);Q.set(new Uint8Array(f,I,d)),E=new a(p)}if(E.length===B*c)h?o.pixels.resultPixels=n.swapDimensionOrder(E,B,c,a,!0):o.pixels.resultPixels=E;else{o.pixels.resultPixels=new a(B*c);var u=0,m=0,y=0,k=0;if(c>1){if(h){for(m=0;m<B;m++)if(w[m])for(k=m,y=0;y<c;y++,k+=B)o.pixels.resultPixels[k]=E[u++]}else for(m=0;m<B;m++)if(w[m])for(k=m*c,y=0;y<c;y++)o.pixels.resultPixels[k+y]=E[u++]}else for(m=0;m<B;m++)w[m]&&(o.pixels.resultPixels[m]=E[u++])}return I+=d,o.ptr=I,!0},readHuffmanTree:function(f,o){var a=this.HUFFMAN_LUT_BITS_MAX,h=new DataView(f,o.ptr,16);o.ptr+=16;var I=h.getInt32(0,!0);if(I<2)throw"unsupported Huffman version";var g=h.getInt32(4,!0),c=h.getInt32(8,!0),B=h.getInt32(12,!0);if(c>=B)return!1;var C=new Uint32Array(B-c);n.decodeBits(f,o,C);var d=[],E,w,p,Q;for(E=c;E<B;E++)w=E-(E<g?0:g),d[w]={first:C[E-c],second:null};var u=f.byteLength-o.ptr,m=Math.ceil(u/4),y=new ArrayBuffer(m*4),k=new Uint8Array(y);k.set(new Uint8Array(f,o.ptr,u));var x=new Uint32Array(y),b=0,S,N=0;for(S=x[0],E=c;E<B;E++)w=E-(E<g?0:g),Q=d[w].first,Q>0&&(d[w].second=S<<b>>>32-Q,32-b>=Q?(b+=Q,b===32&&(b=0,N++,S=x[N])):(b+=Q-32,N++,S=x[N],d[w].second|=S>>>32-b));var D=0,_=0,R=new l;for(E=0;E<d.length;E++)d[E]!==void 0&&(D=Math.max(D,d[E].first));D>=a?_=a:_=D;var T=[],F,v,U,q,z,V;for(E=c;E<B;E++)if(w=E-(E<g?0:g),Q=d[w].first,Q>0)if(F=[Q,w],Q<=_)for(v=d[w].second<<_-Q,U=1<<_-Q,p=0;p<U;p++)T[v|p]=F;else for(v=d[w].second,V=R,q=Q-1;q>=0;q--)z=v>>>q&1,z?(V.right||(V.right=new l),V=V.right):(V.left||(V.left=new l),V=V.left),q===0&&!V.val&&(V.val=F[1]);return{decodeLut:T,numBitsLUTQick:_,numBitsLUT:D,tree:R,stuffedData:x,srcPtr:N,bitPos:b}},readHuffman:function(f,o,a,h){var I=o.headerInfo,g=I.numDims,c=o.headerInfo.height,B=o.headerInfo.width,C=B*c,d=this.readHuffmanTree(f,o),E=d.decodeLut,w=d.tree,p=d.stuffedData,Q=d.srcPtr,u=d.bitPos,m=d.numBitsLUTQick,y=d.numBitsLUT,k=o.headerInfo.imageType===0?128:0,x,b,S,N=o.pixels.resultMask,D,_,R,T,F,v,U,q=0;u>0&&(Q++,u=0);var z=p[Q],V=o.encodeMode===1,L=new a(C*g),M=L,G;if(g<2||V){for(G=0;G<g;G++)if(g>1&&(M=new a(L.buffer,C*G,C),q=0),o.headerInfo.numValidPixel===B*c)for(v=0,T=0;T<c;T++)for(F=0;F<B;F++,v++){if(b=0,D=z<<u>>>32-m,_=D,32-u<m&&(D|=p[Q+1]>>>64-u-m,_=D),E[_])b=E[_][1],u+=E[_][0];else for(D=z<<u>>>32-y,_=D,32-u<y&&(D|=p[Q+1]>>>64-u-y,_=D),x=w,U=0;U<y;U++)if(R=D>>>y-U-1&1,x=R?x.right:x.left,!(x.left||x.right)){b=x.val,u=u+U+1;break}u>=32&&(u-=32,Q++,z=p[Q]),S=b-k,V?(F>0?S+=q:T>0?S+=M[v-B]:S+=q,S&=255,M[v]=S,q=S):M[v]=S}else for(v=0,T=0;T<c;T++)for(F=0;F<B;F++,v++)if(N[v]){if(b=0,D=z<<u>>>32-m,_=D,32-u<m&&(D|=p[Q+1]>>>64-u-m,_=D),E[_])b=E[_][1],u+=E[_][0];else for(D=z<<u>>>32-y,_=D,32-u<y&&(D|=p[Q+1]>>>64-u-y,_=D),x=w,U=0;U<y;U++)if(R=D>>>y-U-1&1,x=R?x.right:x.left,!(x.left||x.right)){b=x.val,u=u+U+1;break}u>=32&&(u-=32,Q++,z=p[Q]),S=b-k,V?(F>0&&N[v-1]?S+=q:T>0&&N[v-B]?S+=M[v-B]:S+=q,S&=255,M[v]=S,q=S):M[v]=S}}else for(v=0,T=0;T<c;T++)for(F=0;F<B;F++)if(v=T*B+F,!N||N[v])for(G=0;G<g;G++,v+=C){if(b=0,D=z<<u>>>32-m,_=D,32-u<m&&(D|=p[Q+1]>>>64-u-m,_=D),E[_])b=E[_][1],u+=E[_][0];else for(D=z<<u>>>32-y,_=D,32-u<y&&(D|=p[Q+1]>>>64-u-y,_=D),x=w,U=0;U<y;U++)if(R=D>>>y-U-1&1,x=R?x.right:x.left,!(x.left||x.right)){b=x.val,u=u+U+1;break}u>=32&&(u-=32,Q++,z=p[Q]),S=b-k,M[v]=S}o.ptr=o.ptr+(Q+1)*4+(u>0?4:0),o.pixels.resultPixels=L,g>1&&!h&&(o.pixels.resultPixels=n.swapDimensionOrder(L,C,g,a))},decodeBits:function(f,o,a,h,I){{var g=o.headerInfo,c=g.fileVersion,B=0,C=f.byteLength-o.ptr>=5?5:f.byteLength-o.ptr,d=new DataView(f,o.ptr,C),E=d.getUint8(0);B++;var w=E>>6,p=w===0?4:3-w,Q=(E&32)>0,u=E&31,m=0;if(p===1)m=d.getUint8(B),B++;else if(p===2)m=d.getUint16(B,!0),B+=2;else if(p===4)m=d.getUint32(B,!0),B+=4;else throw"Invalid valid pixel count type";var y=2*g.maxZError,k,x,b,S,N,D,_,R,T,F,v=g.numDims>1?g.maxValues[I]:g.zMax;if(Q){for(o.counter.lut++,R=d.getUint8(B),T=u,B++,S=Math.ceil((R-1)*u/8),N=Math.ceil(S/4),x=new ArrayBuffer(N*4),b=new Uint8Array(x),o.ptr+=B,b.set(new Uint8Array(f,o.ptr,S)),_=new Uint32Array(x),o.ptr+=S,F=0;R-1>>>F;)F++;S=Math.ceil(m*F/8),N=Math.ceil(S/4),x=new ArrayBuffer(N*4),b=new Uint8Array(x),b.set(new Uint8Array(f,o.ptr,S)),k=new Uint32Array(x),o.ptr+=S,c>=3?D=r.unstuffLUT2(_,u,R-1,h,y,v):D=r.unstuffLUT(_,u,R-1,h,y,v),c>=3?r.unstuff2(k,a,F,m,D):r.unstuff(k,a,F,m,D)}else o.counter.bitstuffer++,F=u,o.ptr+=B,F>0&&(S=Math.ceil(m*F/8),N=Math.ceil(S/4),x=new ArrayBuffer(N*4),b=new Uint8Array(x),b.set(new Uint8Array(f,o.ptr,S)),k=new Uint32Array(x),o.ptr+=S,c>=3?h==null?r.originalUnstuff2(k,a,F,m):r.unstuff2(k,a,F,m,!1,h,y,v):h==null?r.originalUnstuff(k,a,F,m):r.unstuff(k,a,F,m,!1,h,y,v))}},readTiles:function(f,o,a,h){var I=o.headerInfo,g=I.width,c=I.height,B=g*c,C=I.microBlockSize,d=I.imageType,E=n.getDataTypeSize(d),w=Math.ceil(g/C),p=Math.ceil(c/C);o.pixels.numBlocksY=p,o.pixels.numBlocksX=w,o.pixels.ptr=0;var Q=0,u=0,m=0,y=0,k=0,x=0,b=0,S=0,N=0,D=0,_=0,R=0,T=0,F=0,v=0,U=0,q,z,V,L,M,G,P=new a(C*C),X=c%C||C,Y=g%C||C,K,AA,nA=I.numDims,YA,EA=o.pixels.resultMask,fA=o.pixels.resultPixels,ga=I.fileVersion,tr=ga>=5?14:15,SA,qt=I.zMax,FA;for(m=0;m<p;m++)for(k=m!==p-1?C:X,y=0;y<w;y++)for(x=y!==w-1?C:Y,_=m*g*C+y*C,R=g-x,YA=0;YA<nA;YA++){if(nA>1?(FA=fA,_=m*g*C+y*C,fA=new a(o.pixels.resultPixels.buffer,B*YA*E,B),qt=I.maxValues[YA]):FA=null,b=f.byteLength-o.ptr,q=new DataView(f,o.ptr,Math.min(10,b)),z={},U=0,S=q.getUint8(0),U++,SA=I.fileVersion>=5?S&4:0,N=S>>6&255,D=S>>2&tr,D!==(y*C>>3&tr)||SA&&YA===0)throw"integrity issue";if(G=S&3,G>3)throw o.ptr+=U,"Invalid block encoding ("+G+")";if(G===2){if(SA)if(EA)for(Q=0;Q<k;Q++)for(u=0;u<x;u++)EA[_]&&(fA[_]=FA[_]),_++;else for(Q=0;Q<k;Q++)for(u=0;u<x;u++)fA[_]=FA[_],_++;o.counter.constant++,o.ptr+=U;continue}else if(G===0){if(SA)throw"integrity issue";if(o.counter.uncompressed++,o.ptr+=U,T=k*x*E,F=f.byteLength-o.ptr,T=T<F?T:F,V=new ArrayBuffer(T%E===0?T:T+E-T%E),L=new Uint8Array(V),L.set(new Uint8Array(f,o.ptr,T)),M=new a(V),v=0,EA)for(Q=0;Q<k;Q++){for(u=0;u<x;u++)EA[_]&&(fA[_]=M[v++]),_++;_+=R}else for(Q=0;Q<k;Q++){for(u=0;u<x;u++)fA[_++]=M[v++];_+=R}o.ptr+=v*E}else if(K=n.getDataTypeUsed(SA&&d<6?4:d,N),AA=n.getOnePixel(z,U,K,q),U+=n.getDataTypeSize(K),G===3)if(o.ptr+=U,o.counter.constantoffset++,EA)for(Q=0;Q<k;Q++){for(u=0;u<x;u++)EA[_]&&(fA[_]=SA?Math.min(qt,FA[_]+AA):AA),_++;_+=R}else for(Q=0;Q<k;Q++){for(u=0;u<x;u++)fA[_]=SA?Math.min(qt,FA[_]+AA):AA,_++;_+=R}else if(o.ptr+=U,n.decodeBits(f,o,P,AA,YA),U=0,SA)if(EA)for(Q=0;Q<k;Q++){for(u=0;u<x;u++)EA[_]&&(fA[_]=P[U++]+FA[_]),_++;_+=R}else for(Q=0;Q<k;Q++){for(u=0;u<x;u++)fA[_]=P[U++]+FA[_],_++;_+=R}else if(EA)for(Q=0;Q<k;Q++){for(u=0;u<x;u++)EA[_]&&(fA[_]=P[U++]),_++;_+=R}else for(Q=0;Q<k;Q++){for(u=0;u<x;u++)fA[_++]=P[U++];_+=R}}nA>1&&!h&&(o.pixels.resultPixels=n.swapDimensionOrder(o.pixels.resultPixels,B,nA,a))},formatFileInfo:function(f){return{fileIdentifierString:f.headerInfo.fileIdentifierString,fileVersion:f.headerInfo.fileVersion,imageType:f.headerInfo.imageType,height:f.headerInfo.height,width:f.headerInfo.width,numValidPixel:f.headerInfo.numValidPixel,microBlockSize:f.headerInfo.microBlockSize,blobSize:f.headerInfo.blobSize,maxZError:f.headerInfo.maxZError,pixelType:n.getPixelType(f.headerInfo.imageType),eofOffset:f.eofOffset,mask:f.mask?{numBytes:f.mask.numBytes}:null,pixels:{numBlocksX:f.pixels.numBlocksX,numBlocksY:f.pixels.numBlocksY,maxValue:f.headerInfo.zMax,minValue:f.headerInfo.zMin,noDataValue:f.noDataValue}}},constructConstantSurface:function(f,o){var a=f.headerInfo.zMax,h=f.headerInfo.zMin,I=f.headerInfo.maxValues,g=f.headerInfo.numDims,c=f.headerInfo.height*f.headerInfo.width,B=0,C=0,d=0,E=f.pixels.resultMask,w=f.pixels.resultPixels;if(E)if(g>1){if(o)for(B=0;B<g;B++)for(d=B*c,a=I[B],C=0;C<c;C++)E[C]&&(w[d+C]=a);else for(C=0;C<c;C++)if(E[C])for(d=C*g,B=0;B<g;B++)w[d+g]=I[B]}else for(C=0;C<c;C++)E[C]&&(w[C]=a);else if(g>1&&h!==a)if(o)for(B=0;B<g;B++)for(d=B*c,a=I[B],C=0;C<c;C++)w[d+C]=a;else for(C=0;C<c;C++)for(d=C*g,B=0;B<g;B++)w[d+B]=I[B];else for(C=0;C<c*g;C++)w[C]=a},getDataTypeArray:function(f){var o;switch(f){case 0:o=Int8Array;break;case 1:o=Uint8Array;break;case 2:o=Int16Array;break;case 3:o=Uint16Array;break;case 4:o=Int32Array;break;case 5:o=Uint32Array;break;case 6:o=Float32Array;break;case 7:o=Float64Array;break;default:o=Float32Array}return o},getPixelType:function(f){var o;switch(f){case 0:o="S8";break;case 1:o="U8";break;case 2:o="S16";break;case 3:o="U16";break;case 4:o="S32";break;case 5:o="U32";break;case 6:o="F32";break;case 7:o="F64";break;default:o="F32"}return o},isValidPixelValue:function(f,o){if(o==null)return!1;var a;switch(f){case 0:a=o>=-128&&o<=127;break;case 1:a=o>=0&&o<=255;break;case 2:a=o>=-32768&&o<=32767;break;case 3:a=o>=0&&o<=65536;break;case 4:a=o>=-2147483648&&o<=2147483647;break;case 5:a=o>=0&&o<=4294967296;break;case 6:a=o>=-34027999387901484e22&&o<=34027999387901484e22;break;case 7:a=o>=-17976931348623157e292&&o<=17976931348623157e292;break;default:a=!1}return a},getDataTypeSize:function(f){var o=0;switch(f){case 0:case 1:o=1;break;case 2:case 3:o=2;break;case 4:case 5:case 6:o=4;break;case 7:o=8;break;default:o=f}return o},getDataTypeUsed:function(f,o){var a=f;switch(f){case 2:case 4:a=f-o;break;case 3:case 5:a=f-2*o;break;case 6:o===0?a=f:o===1?a=2:a=1;break;case 7:o===0?a=f:a=f-2*o+1;break;default:a=f;break}return a},getOnePixel:function(f,o,a,h){var I=0;switch(a){case 0:I=h.getInt8(o);break;case 1:I=h.getUint8(o);break;case 2:I=h.getInt16(o,!0);break;case 3:I=h.getUint16(o,!0);break;case 4:I=h.getInt32(o,!0);break;case 5:I=h.getUInt32(o,!0);break;case 6:I=h.getFloat32(o,!0);break;case 7:I=h.getFloat64(o,!0);break;default:throw"the decoder does not understand this pixel type"}return I},swapDimensionOrder:function(f,o,a,h,I){var g=0,c=0,B=0,C=0,d=f;if(a>1)if(d=new h(o*a),I)for(g=0;g<o;g++)for(C=g,B=0;B<a;B++,C+=o)d[C]=f[c++];else for(g=0;g<o;g++)for(C=g,B=0;B<a;B++,C+=o)d[c++]=f[C];return d}},l=function(f,o,a){this.val=f,this.left=o,this.right=a},s={decode:function(f,o){o=o||{};var a=o.noDataValue,h=0,I={};if(I.ptr=o.inputOffset||0,I.pixels={},!!n.readHeaderInfo(f,I)){var g=I.headerInfo,c=g.fileVersion,B=n.getDataTypeArray(g.imageType);if(c>5)throw"unsupported lerc version 2."+c;n.readMask(f,I),g.numValidPixel!==g.width*g.height&&!I.pixels.resultMask&&(I.pixels.resultMask=o.maskData);var C=g.width*g.height;I.pixels.resultPixels=new B(C*g.numDims),I.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var d=!o.returnPixelInterleavedDims;if(g.numValidPixel!==0)if(g.zMax===g.zMin)n.constructConstantSurface(I,d);else if(c>=4&&n.checkMinMaxRanges(f,I))n.constructConstantSurface(I,d);else{var E=new DataView(f,I.ptr,2),w=E.getUint8(0);if(I.ptr++,w)n.readDataOneSweep(f,I,B,d);else if(c>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var p=E.getUint8(1);if(I.ptr++,I.encodeMode=p,p>2||c<4&&p>1)throw"Invalid Huffman flag "+p;p?n.readHuffman(f,I,B,d):n.readTiles(f,I,B,d)}else n.readTiles(f,I,B,d)}I.eofOffset=I.ptr;var Q;o.inputOffset?(Q=I.headerInfo.blobSize+o.inputOffset-I.ptr,Math.abs(Q)>=1&&(I.eofOffset=o.inputOffset+I.headerInfo.blobSize)):(Q=I.headerInfo.blobSize-I.ptr,Math.abs(Q)>=1&&(I.eofOffset=I.headerInfo.blobSize));var u={width:g.width,height:g.height,pixelData:I.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:I.pixels.resultMask};if(I.pixels.resultMask&&n.isValidPixelValue(g.imageType,a)){var m=I.pixels.resultMask;for(h=0;h<C;h++)m[h]||(u.pixelData[h]=a);u.noDataValue=a}return I.noDataValue=a,o.returnFileInfo&&(u.fileInfo=n.formatFileInfo(I)),u}},getBandCount:function(f){var o=0,a=0,h={};for(h.ptr=0,h.pixels={};a<f.byteLength-58;)n.readHeaderInfo(f,h),a+=h.headerInfo.blobSize,o++,h.ptr=a;return o}};return s}(),e=function(){var r=new ArrayBuffer(4),n=new Uint8Array(r),l=new Uint32Array(r);return l[0]=1,n[0]===1}(),i={decode:function(r,n){if(!e)throw"Big endian system is not supported.";n=n||{};var l=n.inputOffset||0,s=new Uint8Array(r,l,10),f=String.fromCharCode.apply(null,s),o,a;if(f.trim()==="CntZImage")o=A,a=1;else if(f.substring(0,5)==="Lerc2")o=t,a=2;else throw"Unexpected file identifier string: "+f;for(var h=0,I=r.byteLength-10,g,c=[],B,C,d={width:0,height:0,pixels:[],pixelType:n.pixelType,mask:null,statistics:[]},E=0;l<I;){var w=o.decode(r,{inputOffset:l,encodedMaskData:g,maskData:C,returnMask:h===0,returnEncodedMask:h===0,returnFileInfo:!0,returnPixelInterleavedDims:n.returnPixelInterleavedDims,pixelType:n.pixelType||null,noDataValue:n.noDataValue||null});l=w.fileInfo.eofOffset,C=w.maskData,h===0&&(g=w.encodedMaskData,d.width=w.width,d.height=w.height,d.dimCount=w.dimCount||1,d.pixelType=w.pixelType||w.fileInfo.pixelType,d.mask=C),a>1&&(C&&c.push(C),w.fileInfo.mask&&w.fileInfo.mask.numBytes>0&&E++),h++,d.pixels.push(w.pixelData),d.statistics.push({minValue:w.minValue,maxValue:w.maxValue,noDataValue:w.noDataValue,dimStats:w.dimStats})}var p,Q,u;if(a>1&&E>1){for(u=d.width*d.height,d.bandMasks=c,C=new Uint8Array(u),C.set(c[0]),p=1;p<c.length;p++)for(B=c[p],Q=0;Q<u;Q++)C[Q]=C[Q]&B[Q];d.maskData=C}return d}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof bt<"u"&&bt.exports?bt.exports=i:this.Lerc=i})()});var Ne,bA,Hi,qi,St,Go,Mo=IA(()=>{qi={env:{emscripten_notify_memory_growth:function(A){Hi=new Uint8Array(bA.exports.memory.buffer)}}},St=class{init(){return Ne||(typeof fetch<"u"?Ne=fetch("data:application/wasm;base64,"+Go).then(t=>t.arrayBuffer()).then(t=>WebAssembly.instantiate(t,qi)).then(this._init):Ne=WebAssembly.instantiate(Buffer.from(Go,"base64"),qi).then(this._init),Ne)}_init(t){bA=t.instance,qi.env.emscripten_notify_memory_growth(0)}decode(t,e=0){if(!bA)throw new Error("ZSTDDecoder: Await .init() before decoding.");let i=t.byteLength,r=bA.exports.malloc(i);Hi.set(t,r),e=e||Number(bA.exports.ZSTD_findDecompressedSize(r,i));let n=bA.exports.malloc(e),l=bA.exports.ZSTD_decompress(n,e,r,i),s=Hi.slice(n,n+l);return bA.exports.free(r),bA.exports.free(n),s}},Go="AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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"});var To={};RA(To,{default:()=>Ft,zstd:()=>No});var Lo,No,Ft,Oo=IA(()=>{Oi();Lo=UA(Uo(),1);Mo();_A();it();No=new St,Ft=class extends W{constructor(t){super(),this.planarConfiguration=typeof t.PlanarConfiguration<"u"?t.PlanarConfiguration:1,this.samplesPerPixel=typeof t.SamplesPerPixel<"u"?t.SamplesPerPixel:1,this.addCompression=t.LercParameters[Kr.AddCompression]}decodeBlock(t){switch(this.addCompression){case tt.None:break;case tt.Deflate:t=xt(new Uint8Array(t)).buffer;break;case tt.Zstandard:t=No.decode(new Uint8Array(t)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return Lo.default.decode(t,{returnPixelInterleavedDims:this.planarConfiguration===1}).pixels[0].buffer}}});var qo={};RA(qo,{default:()=>vt});var vt,Ho=IA(()=>{_A();vt=class extends W{constructor(){if(super(),typeof createImageBitmap>"u")throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if(typeof document>"u"&&typeof OffscreenCanvas>"u")throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(t,e){let i=new Blob([e]),r=await createImageBitmap(i),n;typeof document<"u"?(n=document.createElement("canvas"),n.width=r.width,n.height=r.height):n=new OffscreenCanvas(r.width,r.height);let l=n.getContext("2d");return l.drawImage(r,0,0),l.getImageData(0,0,r.width,r.height).data.buffer}}});var Pl={};RA(Pl,{default:()=>Je});module.exports=Ba(Pl);var lA=UA(require("sharp")),sa=UA(ar());var sr="Cannot convert undefined or null to object";function j(A){return(t,...e)=>ya(A,t,e)}function $A(A,t){return j(Ve(A,t).get)}var{apply:ya,construct:Wl,defineProperty:Af,get:ef,getOwnPropertyDescriptor:Ve,getPrototypeOf:Ze,has:tf,ownKeys:lr,set:rf,setPrototypeOf:nf}=Reflect;var{EPSILON:fr,MAX_SAFE_INTEGER:of,isFinite:ma,isNaN:_a}=Number,{iterator:WA,species:af,toStringTag:xa,for:sf}=Symbol,Xe=Object,{create:je,defineProperty:Ir,freeze:gf,is:lf}=Xe,zt=Xe.prototype,ff=zt.__lookupGetter__?j(zt.__lookupGetter__):(A,t)=>{if(A==null)throw Sa(sr);let e=Xe(A);do{let i=Ve(e,t);if(i!==void 0)return Da(i,"get")?i.get:void 0}while((e=Ze(e))!==null)},Da=Xe.hasOwn||j(zt.hasOwnProperty),cr=Array,If=cr.isArray,$e=cr.prototype,cf=j($e.join),hf=j($e.push),Bf=j($e.toLocaleString),Kt=$e[WA],hr=j(Kt),{abs:ka,trunc:Cf}=Math,We=ArrayBuffer,Ef=We.isView,Br=We.prototype,uf=j(Br.slice),Qf=$A(Br,"byteLength"),gr=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null,df=gr&&$A(gr.prototype,"byteLength"),Cr=Ze(Uint8Array),wf=Cr.from,iA=Cr.prototype,pf=iA[WA],yf=j(iA.keys),mf=j(iA.values),_f=j(iA.entries),xf=j(iA.set),Df=j(iA.reverse),kf=j(iA.fill),bf=j(iA.copyWithin),Sf=j(iA.sort),Ff=j(iA.slice),vf=j(iA.subarray),Rf=$A(iA,"buffer"),Uf=$A(iA,"byteOffset"),Gf=$A(iA,"length"),Mf=$A(iA,xa),Er=Uint8Array,Pt=Uint16Array;var At=Uint32Array,ur=Float32Array,Ae=Ze([][WA]()),Vt=j(Ae.next),Qr=j(function*(){}().next),dr=Ze(Ae),wr=DataView.prototype,pr=j(wr.getUint16),ba=j(wr.setUint16),Sa=TypeError;var Fa=WeakSet,yr=Fa.prototype,Lf=j(yr.add),Nf=j(yr.has),et=WeakMap,Zt=et.prototype,Xt=j(Zt.get),Tf=j(Zt.has),mr=j(Zt.set);var _r=new et,va=je(null,{next:{value:function(){let t=Xt(_r,this);return Vt(t)}},[WA]:{value:function(){return this}}});function xr(A){if(A[WA]===Kt&&Ae.next===Vt)return A;let t=je(va);return mr(_r,t,hr(A)),t}var Ra=new et,Ua=je(dr,{next:{value:function(){let t=Xt(Ra,this);return Qr(t)},writable:!0,configurable:!0}});for(let A of lr(Ae))A!=="next"&&Ir(Ua,A,Ve(Ae,A));var Ga=1/fr;var Ma=6103515625e-14;var Dr=.0009765625,Jf=Dr*Ma,zf=Dr*Ga;var kr=new We(4),La=new ur(kr),Na=new At(kr),uA=new Pt(512),QA=new Er(512);for(let A=0;A<256;++A){let t=A-127;t<-24?(uA[A]=0,uA[A|256]=32768,QA[A]=24,QA[A|256]=24):t<-14?(uA[A]=1024>>-t-14,uA[A|256]=1024>>-t-14|32768,QA[A]=-t-1,QA[A|256]=-t-1):t<=15?(uA[A]=t+15<<10,uA[A|256]=t+15<<10|32768,QA[A]=13,QA[A|256]=13):t<128?(uA[A]=31744,uA[A|256]=64512,QA[A]=24,QA[A|256]=24):(uA[A]=31744,uA[A|256]=64512,QA[A]=13,QA[A|256]=13)}var jt=new At(2048);for(let A=1;A<1024;++A){let t=A<<13,e=0;for(;!(t&8388608);)t<<=1,e-=8388608;t&=-8388609,e+=947912704,jt[A]=t|e}for(let A=1024;A<2048;++A)jt[A]=939524096+(A-1024<<13);var ee=new At(64);for(let A=1;A<31;++A)ee[A]=A<<23;ee[31]=1199570944;ee[32]=2147483648;for(let A=33;A<63;++A)ee[A]=2147483648+(A-32<<23);ee[63]=3347054592;var br=new Pt(64);for(let A=1;A<64;++A)A!==32&&(br[A]=1024);function Sr(A){let t=A>>10;return Na[0]=jt[br[t]+(A&1023)]+ee[t],La[0]}function Ee(A,t,...e){return Sr(pr(A,t,...xr(e)))}var Ut=UA(vr(),1),Ko=UA(Yr(),1);it();function Pr(A,t){let{width:e,height:i}=A,r=new Uint8Array(e*i*3),n;for(let l=0,s=0;l<A.length;++l,s+=3)n=256-A[l]/t*256,r[s]=n,r[s+1]=n,r[s+2]=n;return r}function Vr(A,t){let{width:e,height:i}=A,r=new Uint8Array(e*i*3),n;for(let l=0,s=0;l<A.length;++l,s+=3)n=A[l]/t*256,r[s]=n,r[s+1]=n,r[s+2]=n;return r}function Zr(A,t){let{width:e,height:i}=A,r=new Uint8Array(e*i*3),n=t.length/3,l=t.length/3*2;for(let s=0,f=0;s<A.length;++s,f+=3){let o=A[s];r[f]=t[o]/65536*256,r[f+1]=t[o+n]/65536*256,r[f+2]=t[o+l]/65536*256}return r}function Xr(A){let{width:t,height:e}=A,i=new Uint8Array(t*e*3);for(let r=0,n=0;r<A.length;r+=4,n+=3){let l=A[r],s=A[r+1],f=A[r+2],o=A[r+3];i[n]=255*((255-l)/256)*((255-o)/256),i[n+1]=255*((255-s)/256)*((255-o)/256),i[n+2]=255*((255-f)/256)*((255-o)/256)}return i}function jr(A){let{width:t,height:e}=A,i=new Uint8ClampedArray(t*e*3);for(let r=0,n=0;r<A.length;r+=3,n+=3){let l=A[r],s=A[r+1],f=A[r+2];i[n]=l+1.402*(f-128),i[n+1]=l-.34414*(s-128)-.71414*(f-128),i[n+2]=l+1.772*(s-128)}return i}var Ha=.95047,Ya=1,Ja=1.08883;function $r(A){let{width:t,height:e}=A,i=new Uint8Array(t*e*3);for(let r=0,n=0;r<A.length;r+=3,n+=3){let l=A[r+0],s=A[r+1]<<24>>24,f=A[r+2]<<24>>24,o=(l+16)/116,a=s/500+o,h=o-f/200,I,g,c;a=Ha*(a*a*a>.008856?a*a*a:(a-16/116)/7.787),o=Ya*(o*o*o>.008856?o*o*o:(o-16/116)/7.787),h=Ja*(h*h*h>.008856?h*h*h:(h-16/116)/7.787),I=a*3.2406+o*-1.5372+h*-.4986,g=a*-.9689+o*1.8758+h*.0415,c=a*.0557+o*-.204+h*1.057,I=I>.0031308?1.055*I**(1/2.4)-.055:12.92*I,g=g>.0031308?1.055*g**(1/2.4)-.055:12.92*g,c=c>.0031308?1.055*c**(1/2.4)-.055:12.92*c,i[n]=Math.max(0,Math.min(1,I))*255,i[n+1]=Math.max(0,Math.min(1,g))*255,i[n+2]=Math.max(0,Math.min(1,c))*255}return i}var Yo=new Map;function BA(A,t){Array.isArray(A)||(A=[A]),A.forEach(e=>Yo.set(e,t))}async function Yi(A){let t=Yo.get(A.Compression);if(!t)throw new Error(`Unknown compression method identifier: ${A.Compression}`);let e=await t();return new e(A)}BA([void 0,1],()=>Promise.resolve().then(()=>(tn(),en)).then(A=>A.default));BA(5,()=>Promise.resolve().then(()=>(on(),nn)).then(A=>A.default));BA(6,()=>{throw new Error("old style JPEG compression is not supported.")});BA(7,()=>Promise.resolve().then(()=>(gn(),sn)).then(A=>A.default));BA([8,32946],()=>Promise.resolve().then(()=>(Fo(),So)).then(A=>A.default));BA(32773,()=>Promise.resolve().then(()=>(Ro(),vo)).then(A=>A.default));BA(34887,()=>Promise.resolve().then(()=>(Oo(),To)).then(async A=>(await A.zstd.init(),A)).then(A=>A.default));BA(50001,()=>Promise.resolve().then(()=>(Ho(),qo)).then(A=>A.default));function Rt(A,t,e,i=1){return new(Object.getPrototypeOf(A)).constructor(t*e*i)}function Fl(A,t,e,i,r){let n=t/i,l=e/r;return A.map(s=>{let f=Rt(s,i,r);for(let o=0;o<r;++o){let a=Math.min(Math.round(l*o),e-1);for(let h=0;h<i;++h){let I=Math.min(Math.round(n*h),t-1),g=s[a*t+I];f[o*i+h]=g}}return f})}function ce(A,t,e){return(1-e)*A+e*t}function vl(A,t,e,i,r){let n=t/i,l=e/r;return A.map(s=>{let f=Rt(s,i,r);for(let o=0;o<r;++o){let a=l*o,h=Math.floor(a),I=Math.min(Math.ceil(a),e-1);for(let g=0;g<i;++g){let c=n*g,B=c%1,C=Math.floor(c),d=Math.min(Math.ceil(c),t-1),E=s[h*t+C],w=s[h*t+d],p=s[I*t+C],Q=s[I*t+d],u=ce(ce(E,w,B),ce(p,Q,B),a%1);f[o*i+g]=u}}return f})}function Jo(A,t,e,i,r,n="nearest"){switch(n.toLowerCase()){case"nearest":return Fl(A,t,e,i,r);case"bilinear":case"linear":return vl(A,t,e,i,r);default:throw new Error(`Unsupported resampling method: '${n}'`)}}function Rl(A,t,e,i,r,n){let l=t/i,s=e/r,f=Rt(A,i,r,n);for(let o=0;o<r;++o){let a=Math.min(Math.round(s*o),e-1);for(let h=0;h<i;++h){let I=Math.min(Math.round(l*h),t-1);for(let g=0;g<n;++g){let c=A[a*t*n+I*n+g];f[o*i*n+h*n+g]=c}}}return f}function Ul(A,t,e,i,r,n){let l=t/i,s=e/r,f=Rt(A,i,r,n);for(let o=0;o<r;++o){let a=s*o,h=Math.floor(a),I=Math.min(Math.ceil(a),e-1);for(let g=0;g<i;++g){let c=l*g,B=c%1,C=Math.floor(c),d=Math.min(Math.ceil(c),t-1);for(let E=0;E<n;++E){let w=A[h*t*n+C*n+E],p=A[h*t*n+d*n+E],Q=A[I*t*n+C*n+E],u=A[I*t*n+d*n+E],m=ce(ce(w,p,B),ce(Q,u,B),a%1);f[o*i*n+g*n+E]=m}}}return f}function zo(A,t,e,i,r,n,l="nearest"){switch(l.toLowerCase()){case"nearest":return Rl(A,t,e,i,r,n);case"bilinear":case"linear":return Ul(A,t,e,i,r,n);default:throw new Error(`Unsupported resampling method: '${l}'`)}}function Gl(A,t,e){let i=0;for(let r=t;r<e;++r)i+=A[r];return i}function Ji(A,t,e){switch(A){case 1:if(t<=8)return new Uint8Array(e);if(t<=16)return new Uint16Array(e);if(t<=32)return new Uint32Array(e);break;case 2:if(t===8)return new Int8Array(e);if(t===16)return new Int16Array(e);if(t===32)return new Int32Array(e);break;case 3:switch(t){case 16:case 32:return new Float32Array(e);case 64:return new Float64Array(e);default:break}break;default:break}throw Error("Unsupported data format/bitsPerSample")}function Ml(A,t){return(A===1||A===2)&&t<=32&&t%8===0?!1:!(A===3&&(t===16||t===32||t===64))}function Ll(A,t,e,i,r,n,l){let s=new DataView(A),f=e===2?l*n:l*n*i,o=e===2?1:i,a=Ji(t,r,f),h=parseInt("1".repeat(r),2);if(t===1){let I;e===1?I=i*r:I=r;let g=n*I;g&7&&(g=g+7&-8);for(let c=0;c<l;++c){let B=c*g;for(let C=0;C<n;++C){let d=B+C*o*r;for(let E=0;E<o;++E){let w=d+E*r,p=(c*n+C)*o+E,Q=Math.floor(w/8),u=w%8;if(u+r<=8)a[p]=s.getUint8(Q)>>8-r-u&h;else if(u+r<=16)a[p]=s.getUint16(Q)>>16-r-u&h;else if(u+r<=24){let m=s.getUint16(Q)<<8|s.getUint8(Q+2);a[p]=m>>24-r-u&h}else a[p]=s.getUint32(Q)>>32-r-u&h}}}}return a.buffer}var zi=class{constructor(t,e,i,r,n,l){this.fileDirectory=t,this.geoKeys=e,this.dataView=i,this.littleEndian=r,this.tiles=n?{}:null,this.isTiled=!t.StripOffsets;let s=t.PlanarConfiguration;if(this.planarConfiguration=typeof s>"u"?1:s,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=l}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<"u"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<"u"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(t){return this.isTiled||(t+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-t*this.getTileHeight()}getBytesPerPixel(){let t=0;for(let e=0;e<this.fileDirectory.BitsPerSample.length;++e)t+=this.getSampleByteSize(e);return t}getSampleByteSize(t){if(t>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${t} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[t]/8)}getReaderForSample(t){let e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1,i=this.fileDirectory.BitsPerSample[t];switch(e){case 1:if(i<=8)return DataView.prototype.getUint8;if(i<=16)return DataView.prototype.getUint16;if(i<=32)return DataView.prototype.getUint32;break;case 2:if(i<=8)return DataView.prototype.getInt8;if(i<=16)return DataView.prototype.getInt16;if(i<=32)return DataView.prototype.getInt32;break;case 3:switch(i){case 16:return function(r,n){return Ee(this,r,n)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64;default:break}break;default:break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(t=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1}getBitsPerSample(t=0){return this.fileDirectory.BitsPerSample[t]}getArrayForSample(t,e){let i=this.getSampleFormat(t),r=this.getBitsPerSample(t);return Ji(i,r,e)}async getTileOrStrip(t,e,i,r,n){let l=Math.ceil(this.getWidth()/this.getTileWidth()),s=Math.ceil(this.getHeight()/this.getTileHeight()),f,{tiles:o}=this;this.planarConfiguration===1?f=e*l+t:this.planarConfiguration===2&&(f=i*l*s+e*l+t);let a,h;this.isTiled?(a=this.fileDirectory.TileOffsets[f],h=this.fileDirectory.TileByteCounts[f]):(a=this.fileDirectory.StripOffsets[f],h=this.fileDirectory.StripByteCounts[f]);let I=(await this.source.fetch([{offset:a,length:h}],n))[0],g;return o===null||!o[f]?(g=(async()=>{let c=await r.decode(this.fileDirectory,I),B=this.getSampleFormat(),C=this.getBitsPerSample();return Ml(B,C)&&(c=Ll(c,B,this.planarConfiguration,this.getSamplesPerPixel(),C,this.getTileWidth(),this.getBlockHeight(e))),c})(),o!==null&&(o[f]=g)):g=o[f],{x:t,y:e,sample:i,data:await g}}async _readRaster(t,e,i,r,n,l,s,f,o){let a=this.getTileWidth(),h=this.getTileHeight(),I=this.getWidth(),g=this.getHeight(),c=Math.max(Math.floor(t[0]/a),0),B=Math.min(Math.ceil(t[2]/a),Math.ceil(I/a)),C=Math.max(Math.floor(t[1]/h),0),d=Math.min(Math.ceil(t[3]/h),Math.ceil(g/h)),E=t[2]-t[0],w=this.getBytesPerPixel(),p=[],Q=[];for(let y=0;y<e.length;++y)this.planarConfiguration===1?p.push(Gl(this.fileDirectory.BitsPerSample,0,e[y])/8):p.push(0),Q.push(this.getReaderForSample(e[y]));let u=[],{littleEndian:m}=this;for(let y=C;y<d;++y)for(let k=c;k<B;++k){let x;this.planarConfiguration===1&&(x=this.getTileOrStrip(k,y,0,n,o));for(let b=0;b<e.length;++b){let S=b,N=e[b];this.planarConfiguration===2&&(w=this.getSampleByteSize(N),x=this.getTileOrStrip(k,y,N,n,o));let D=x.then(_=>{let R=_.data,T=new DataView(R),F=this.getBlockHeight(_.y),v=_.y*h,U=_.x*a,q=v+F,z=(_.x+1)*a,V=Q[S],L=Math.min(F,F-(q-t[3]),g-v),M=Math.min(a,a-(z-t[2]),I-U);for(let G=Math.max(0,t[1]-v);G<L;++G)for(let P=Math.max(0,t[0]-U);P<M;++P){let X=(G*a+P)*w,Y=V.call(T,X+p[S],m),K;r?(K=(G+v-t[1])*E*e.length+(P+U-t[0])*e.length+S,i[K]=Y):(K=(G+v-t[1])*E+P+U-t[0],i[S][K]=Y)}});u.push(D)}}if(await Promise.all(u),l&&t[2]-t[0]!==l||s&&t[3]-t[1]!==s){let y;return r?y=zo(i,t[2]-t[0],t[3]-t[1],l,s,e.length,f):y=Jo(i,t[2]-t[0],t[3]-t[1],l,s,f),y.width=l,y.height=s,y}return i.width=l||t[2]-t[0],i.height=s||t[3]-t[1],i}async readRasters({window:t,samples:e=[],interleave:i,pool:r=null,width:n,height:l,resampleMethod:s,fillValue:f,signal:o}={}){let a=t||[0,0,this.getWidth(),this.getHeight()];if(a[0]>a[2]||a[1]>a[3])throw new Error("Invalid subsets");let h=a[2]-a[0],I=a[3]-a[1],g=h*I,c=this.getSamplesPerPixel();if(!e||!e.length)for(let E=0;E<c;++E)e.push(E);else for(let E=0;E<e.length;++E)if(e[E]>=c)return Promise.reject(new RangeError(`Invalid sample index '${e[E]}'.`));let B;if(i){let E=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,w=Math.max.apply(null,this.fileDirectory.BitsPerSample);B=Ji(E,w,g*e.length),f&&B.fill(f)}else{B=[];for(let E=0;E<e.length;++E){let w=this.getArrayForSample(e[E],g);Array.isArray(f)&&E<f.length?w.fill(f[E]):f&&!Array.isArray(f)&&w.fill(f),B.push(w)}}let C=r||await Yi(this.fileDirectory);return await this._readRaster(a,e,B,i,C,n,l,s,o)}async readRGB({window:t,interleave:e=!0,pool:i=null,width:r,height:n,resampleMethod:l,enableAlpha:s=!1,signal:f}={}){let o=t||[0,0,this.getWidth(),this.getHeight()];if(o[0]>o[2]||o[1]>o[3])throw new Error("Invalid subsets");let a=this.fileDirectory.PhotometricInterpretation;if(a===oA.RGB){let d=[0,1,2];if(this.fileDirectory.ExtraSamples!==zr.Unspecified&&s){d=[];for(let E=0;E<this.fileDirectory.BitsPerSample.length;E+=1)d.push(E)}return this.readRasters({window:t,interleave:e,samples:d,pool:i,width:r,height:n,resampleMethod:l,signal:f})}let h;switch(a){case oA.WhiteIsZero:case oA.BlackIsZero:case oA.Palette:h=[0];break;case oA.CMYK:h=[0,1,2,3];break;case oA.YCbCr:case oA.CIELab:h=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}let I={window:o,interleave:!0,samples:h,pool:i,width:r,height:n,resampleMethod:l,signal:f},{fileDirectory:g}=this,c=await this.readRasters(I),B=2**this.fileDirectory.BitsPerSample[0],C;switch(a){case oA.WhiteIsZero:C=Pr(c,B);break;case oA.BlackIsZero:C=Vr(c,B);break;case oA.Palette:C=Zr(c,g.ColorMap);break;case oA.CMYK:C=Xr(c);break;case oA.YCbCr:C=jr(c);break;case oA.CIELab:C=$r(c);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){let d=new Uint8Array(C.length/3),E=new Uint8Array(C.length/3),w=new Uint8Array(C.length/3);for(let p=0,Q=0;p<C.length;p+=3,++Q)d[Q]=C[p],E[Q]=C[p+1],w[Q]=C[p+2];C=[d,E,w]}return C.width=c.width,C.height=c.height,C}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];let t=[];for(let e=0;e<this.fileDirectory.ModelTiepoint.length;e+=6)t.push({i:this.fileDirectory.ModelTiepoint[e],j:this.fileDirectory.ModelTiepoint[e+1],k:this.fileDirectory.ModelTiepoint[e+2],x:this.fileDirectory.ModelTiepoint[e+3],y:this.fileDirectory.ModelTiepoint[e+4],z:this.fileDirectory.ModelTiepoint[e+5]});return t}getGDALMetadata(t=null){let e={};if(!this.fileDirectory.GDAL_METADATA)return null;let i=this.fileDirectory.GDAL_METADATA,r=(0,Ko.default)(i,"Item");t===null?r=r.filter(n=>(0,Ut.default)(n,"sample")===void 0):r=r.filter(n=>Number((0,Ut.default)(n,"sample"))===t);for(let n=0;n<r.length;++n){let l=r[n];e[(0,Ut.default)(l,"name")]=l.inner}return e}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;let t=this.fileDirectory.GDAL_NODATA;return Number(t.substring(0,t.length-1))}getOrigin(){let t=this.fileDirectory.ModelTiepoint,e=this.fileDirectory.ModelTransformation;if(t&&t.length===6)return[t[3],t[4],t[5]];if(e)return[e[3],e[7],e[11]];throw new Error("The image does not have an affine transformation.")}getResolution(t=null){let e=this.fileDirectory.ModelPixelScale,i=this.fileDirectory.ModelTransformation;if(e)return[e[0],-e[1],e[2]];if(i)return i[1]===0&&i[4]===0?[i[0],-i[5],i[10]]:[Math.sqrt(i[0]*i[0]+i[4]*i[4]),-Math.sqrt(i[1]*i[1]+i[5]*i[5]),i[10]];if(t){let[r,n,l]=t.getResolution();return[r*t.getWidth()/this.getWidth(),n*t.getHeight()/this.getHeight(),l*t.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return this.geoKeys.GTRasterTypeGeoKey===1}getBoundingBox(t=!1){let e=this.getHeight(),i=this.getWidth();if(this.fileDirectory.ModelTransformation&&!t){let[r,n,l,s,f,o,a,h]=this.fileDirectory.ModelTransformation,g=[[0,0],[0,e],[i,0],[i,e]].map(([C,d])=>[s+r*C+n*d,h+f*C+o*d]),c=g.map(C=>C[0]),B=g.map(C=>C[1]);return[Math.min(...c),Math.min(...B),Math.max(...c),Math.max(...B)]}else{let r=this.getOrigin(),n=this.getResolution(),l=r[0],s=r[1],f=l+n[0]*i,o=s+n[1]*e;return[Math.min(l,f),Math.min(s,o),Math.max(l,f),Math.max(s,o)]}}},Po=zi;var Te=class{constructor(t){this._dataView=new DataView(t)}get buffer(){return this._dataView.buffer}getUint64(t,e){let i=this.getUint32(t,e),r=this.getUint32(t+4,e),n;if(e){if(n=i+2**32*r,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}if(n=2**32*i+r,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}getInt64(t,e){let i=0,r=(this._dataView.getUint8(t+(e?7:0))&128)>0,n=!0;for(let l=0;l<8;l++){let s=this._dataView.getUint8(t+(e?l:7-l));r&&(n?s!==0&&(s=~(s-1)&255,n=!1):s=~s&255),i+=s*256**l}return r&&(i=-i),i}getUint8(t,e){return this._dataView.getUint8(t,e)}getInt8(t,e){return this._dataView.getInt8(t,e)}getUint16(t,e){return this._dataView.getUint16(t,e)}getInt16(t,e){return this._dataView.getInt16(t,e)}getUint32(t,e){return this._dataView.getUint32(t,e)}getInt32(t,e){return this._dataView.getInt32(t,e)}getFloat16(t,e){return Ee(this._dataView,t,e)}getFloat32(t,e){return this._dataView.getFloat32(t,e)}getFloat64(t,e){return this._dataView.getFloat64(t,e)}};var Oe=class{constructor(t,e,i,r){this._dataView=new DataView(t),this._sliceOffset=e,this._littleEndian=i,this._bigTiff=r}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(t,e){return this.sliceOffset<=t&&this.sliceTop>=t+e}readUint8(t){return this._dataView.getUint8(t-this._sliceOffset,this._littleEndian)}readInt8(t){return this._dataView.getInt8(t-this._sliceOffset,this._littleEndian)}readUint16(t){return this._dataView.getUint16(t-this._sliceOffset,this._littleEndian)}readInt16(t){return this._dataView.getInt16(t-this._sliceOffset,this._littleEndian)}readUint32(t){return this._dataView.getUint32(t-this._sliceOffset,this._littleEndian)}readInt32(t){return this._dataView.getInt32(t-this._sliceOffset,this._littleEndian)}readFloat32(t){return this._dataView.getFloat32(t-this._sliceOffset,this._littleEndian)}readFloat64(t){return this._dataView.getFloat64(t-this._sliceOffset,this._littleEndian)}readUint64(t){let e=this.readUint32(t),i=this.readUint32(t+4),r;if(this._littleEndian){if(r=e+2**32*i,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*e+i,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}readInt64(t){let e=0,i=(this._dataView.getUint8(t+(this._littleEndian?7:0))&128)>0,r=!0;for(let n=0;n<8;n++){let l=this._dataView.getUint8(t+(this._littleEndian?n:7-n));i&&(r?l!==0&&(l=~(l-1)&255,r=!1):l=~l&255),e+=l*256**n}return i&&(e=-e),e}readOffset(t){return this._bigTiff?this.readUint64(t):this.readUint32(t)}};var Vo=`\r
4
+ \r
5
+ `;function Zo(A){if(typeof Object.fromEntries<"u")return Object.fromEntries(A);let t={};for(let[e,i]of A)t[e.toLowerCase()]=i;return t}function Nl(A){let t=A.split(`\r
6
+ `).map(e=>{let i=e.split(":").map(r=>r.trim());return i[0]=i[0].toLowerCase(),i});return Zo(t)}function Xo(A){let[t,...e]=A.split(";").map(r=>r.trim()),i=e.map(r=>r.split("="));return{type:t,params:Zo(i)}}function Gt(A){let t,e,i;return A&&([,t,e,i]=A.match(/bytes (\d+)-(\d+)\/(\d+)/),t=parseInt(t,10),e=parseInt(e,10),i=parseInt(i,10)),{start:t,end:e,total:i}}function jo(A,t){let e=null,i=new TextDecoder("ascii"),r=[],n=`--${t}`,l=`${n}--`;for(let s=0;s<10;++s)i.decode(new Uint8Array(A,s,n.length))===n&&(e=s);if(e===null)throw new Error("Could not find initial boundary");for(;e<A.byteLength;){let s=i.decode(new Uint8Array(A,e,Math.min(n.length+1024,A.byteLength-e)));if(s.length===0||s.startsWith(l))break;if(!s.startsWith(n))throw new Error("Part does not start with boundary");let f=s.substr(n.length+2);if(f.length===0)break;let o=f.indexOf(Vo),a=Nl(f.substr(0,o)),{start:h,end:I,total:g}=Gt(a["content-range"]),c=e+n.length+o+Vo.length,B=parseInt(I,10)+1-parseInt(h,10);r.push({headers:a,data:A.slice(c,c+B),offset:h,length:B,fileSize:g}),e=c+B+4}return r}var he=class{async fetch(t,e=void 0){return Promise.all(t.map(i=>this.fetchSlice(i,e)))}async fetchSlice(t){throw new Error(`fetching of slice ${t} not possible, not implemented`)}get fileSize(){return null}async close(){}};var qe=class extends Map{constructor(t={}){if(super(),!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof t.maxAge=="number"&&t.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=t.maxSize,this.maxAge=t.maxAge||Number.POSITIVE_INFINITY,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(t){if(typeof this.onEviction=="function")for(let[e,i]of t)this.onEviction(e,i.value)}_deleteIfExpired(t,e){return typeof e.expiry=="number"&&e.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(t,e.value),this.delete(t)):!1}_getOrDeleteIfExpired(t,e){if(this._deleteIfExpired(t,e)===!1)return e.value}_getItemValue(t,e){return e.expiry?this._getOrDeleteIfExpired(t,e):e.value}_peek(t,e){let i=e.get(t);return this._getItemValue(t,i)}_set(t,e){this.cache.set(t,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(t,e){this.oldCache.delete(t),this._set(t,e)}*_entriesAscending(){for(let t of this.oldCache){let[e,i]=t;this.cache.has(e)||this._deleteIfExpired(e,i)===!1&&(yield t)}for(let t of this.cache){let[e,i]=t;this._deleteIfExpired(e,i)===!1&&(yield t)}}get(t){if(this.cache.has(t)){let e=this.cache.get(t);return this._getItemValue(t,e)}if(this.oldCache.has(t)){let e=this.oldCache.get(t);if(this._deleteIfExpired(t,e)===!1)return this._moveToRecent(t,e),e.value}}set(t,e,{maxAge:i=this.maxAge}={}){let r=typeof i=="number"&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;return this.cache.has(t)?this.cache.set(t,{value:e,expiry:r}):this._set(t,{value:e,expiry:r}),this}has(t){return this.cache.has(t)?!this._deleteIfExpired(t,this.cache.get(t)):this.oldCache.has(t)?!this._deleteIfExpired(t,this.oldCache.get(t)):!1}peek(t){if(this.cache.has(t))return this._peek(t,this.cache);if(this.oldCache.has(t))return this._peek(t,this.oldCache)}delete(t){let e=this.cache.delete(t);return e&&this._size--,this.oldCache.delete(t)||e}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(t){if(!(t&&t>0))throw new TypeError("`maxSize` must be a number greater than 0");let e=[...this._entriesAscending()],i=e.length-t;i<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(i>0&&this._emitEvictions(e.slice(0,i)),this.oldCache=new Map(e.slice(i)),this.cache=new Map,this._size=0),this.maxSize=t}*keys(){for(let[t]of this)yield t}*values(){for(let[,t]of this)yield t}*[Symbol.iterator](){for(let t of this.cache){let[e,i]=t;this._deleteIfExpired(e,i)===!1&&(yield[e,i.value])}for(let t of this.oldCache){let[e,i]=t;this.cache.has(e)||this._deleteIfExpired(e,i)===!1&&(yield[e,i.value])}}*entriesDescending(){let t=[...this.cache];for(let e=t.length-1;e>=0;--e){let i=t[e],[r,n]=i;this._deleteIfExpired(r,n)===!1&&(yield[r,n.value])}t=[...this.oldCache];for(let e=t.length-1;e>=0;--e){let i=t[e],[r,n]=i;this.cache.has(r)||this._deleteIfExpired(r,n)===!1&&(yield[r,n.value])}}*entriesAscending(){for(let[t,e]of this._entriesAscending())yield[t,e.value]}get size(){if(!this._size)return this.oldCache.size;let t=0;for(let e of this.oldCache.keys())this.cache.has(e)||t++;return Math.min(this._size+t,this.maxSize)}entries(){return this.entriesAscending()}forEach(t,e=this){for(let[i,r]of this.entriesAscending())t.call(e,r,i,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}};async function $o(A){return new Promise(t=>setTimeout(t,A))}function Wo(A,t){let e=Array.isArray(A)?A:Array.from(A),i=Array.isArray(t)?t:Array.from(t);return e.map((r,n)=>[r,i[n]])}var CA=class extends Error{constructor(t){super(t),Error.captureStackTrace&&Error.captureStackTrace(this,CA),this.name="AbortError"}},Ki=class extends Error{constructor(t,e){super(e),this.errors=t,this.message=e,this.name="AggregateError"}},Aa=Ki;var Pi=class{constructor(t,e,i=null){this.offset=t,this.length=e,this.data=i}get top(){return this.offset+this.length}},Mt=class{constructor(t,e,i){this.offset=t,this.length=e,this.blockIds=i}},Lt=class extends he{constructor(t,{blockSize:e=65536,cacheSize:i=100}={}){super(),this.source=t,this.blockSize=e,this.blockCache=new qe({maxSize:i,onEviction:(r,n)=>{this.evictedBlocks.set(r,n)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(t,e){let i=[],r=[],n=[];this.evictedBlocks.clear();for(let{offset:I,length:g}of t){let c=I+g,{fileSize:B}=this;B!==null&&(c=Math.min(c,B));let C=Math.floor(I/this.blockSize)*this.blockSize;for(let d=C;d<c;d+=this.blockSize){let E=Math.floor(d/this.blockSize);!this.blockCache.has(E)&&!this.blockRequests.has(E)&&(this.blockIdsToFetch.add(E),r.push(E)),this.blockRequests.has(E)&&i.push(this.blockRequests.get(E)),n.push(E)}}await $o(),this.fetchBlocks(e);let l=[];for(let I of r)this.blockRequests.has(I)&&l.push(this.blockRequests.get(I));await Promise.allSettled(i),await Promise.allSettled(l);let s=[],f=n.filter(I=>this.abortedBlockIds.has(I)||!this.blockCache.has(I));if(f.forEach(I=>this.blockIdsToFetch.add(I)),f.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(let I of f){let g=this.blockRequests.get(I);if(!g)throw new Error(`Block ${I} is not in the block requests`);s.push(g)}await Promise.allSettled(s)}if(e&&e.aborted)throw new CA("Request was aborted");let o=n.map(I=>this.blockCache.get(I)||this.evictedBlocks.get(I)),a=o.filter(I=>!I);if(a.length)throw new Aa(a,"Request failed");let h=new Map(Wo(n,o));return this.readSliceData(t,h)}fetchBlocks(t){if(this.blockIdsToFetch.size>0){let e=this.groupBlocks(this.blockIdsToFetch),i=this.source.fetch(e,t);for(let r=0;r<e.length;++r){let n=e[r];for(let l of n.blockIds)this.blockRequests.set(l,(async()=>{try{let s=(await i)[r],f=l*this.blockSize,o=f-s.offset,a=Math.min(o+this.blockSize,s.data.byteLength),h=s.data.slice(o,a),I=new Pi(f,h.byteLength,h,l);this.blockCache.set(l,I),this.abortedBlockIds.delete(l)}catch(s){if(s.name==="AbortError")s.signal=t,this.blockCache.delete(l),this.abortedBlockIds.add(l);else throw s}finally{this.blockRequests.delete(l)}})())}this.blockIdsToFetch.clear()}}groupBlocks(t){let e=Array.from(t).sort((l,s)=>l-s);if(e.length===0)return[];let i=[],r=null,n=[];for(let l of e)r===null||r+1===l?(i.push(l),r=l):(n.push(new Mt(i[0]*this.blockSize,i.length*this.blockSize,i)),i=[l],r=l);return n.push(new Mt(i[0]*this.blockSize,i.length*this.blockSize,i)),n}readSliceData(t,e){return t.map(i=>{let r=i.offset+i.length;this.fileSize!==null&&(r=Math.min(this.fileSize,r));let n=Math.floor(i.offset/this.blockSize),l=Math.floor(r/this.blockSize),s=new ArrayBuffer(i.length),f=new Uint8Array(s);for(let o=n;o<=l;++o){let a=e.get(o),h=a.offset-i.offset,I=a.top-r,g=0,c=0,B;h<0?g=-h:h>0&&(c=h),I<0?B=a.length-g:B=r-a.offset-g;let C=new Uint8Array(a.data,g,B);f.set(C,c)}return s})}};var qA=class{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(t){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}},HA=class{constructor(t){this.url=t}async request({headers:t,signal:e}={}){throw new Error("request is not implemented")}};var Vi=class extends qA{constructor(t){super(),this.response=t}get status(){return this.response.status}getHeader(t){return this.response.headers.get(t)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}},Nt=class extends HA{constructor(t,e){super(t),this.credentials=e}async request({headers:t,signal:e}={}){let i=await fetch(this.url,{headers:t,credentials:this.credentials,signal:e});return new Vi(i)}};var Zi=class extends qA{constructor(t,e){super(),this.xhr=t,this.data=e}get status(){return this.xhr.status}getHeader(t){return this.xhr.getResponseHeader(t)}async getData(){return this.data}},Tt=class extends HA{constructRequest(t,e){return new Promise((i,r)=>{let n=new XMLHttpRequest;n.open("GET",this.url),n.responseType="arraybuffer";for(let[l,s]of Object.entries(t))n.setRequestHeader(l,s);n.onload=()=>{let l=n.response;i(new Zi(n,l))},n.onerror=r,n.onabort=()=>r(new CA("Request aborted")),n.send(),e&&(e.aborted&&n.abort(),e.addEventListener("abort",()=>n.abort()))})}async request({headers:t,signal:e}={}){return await this.constructRequest(t,e)}};var ea=UA(require("http"),1),ta=UA(require("https"),1),ia=UA(require("url"),1);var Xi=class extends qA{constructor(t,e){super(),this.response=t,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(t){return this.response.headers[t]}async getData(){return await this.dataPromise}},Ot=class extends HA{constructor(t){super(t),this.parsedUrl=ia.default.parse(this.url),this.httpApi=this.parsedUrl.protocol==="http:"?ea.default:ta.default}constructRequest(t,e){return new Promise((i,r)=>{let n=this.httpApi.get({...this.parsedUrl,headers:t},l=>{let s=new Promise(f=>{let o=[];l.on("data",a=>{o.push(a)}),l.on("end",()=>{let a=Buffer.concat(o).buffer;f(a)}),l.on("error",r)});i(new Xi(l,s))});n.on("error",r),e&&(e.aborted&&n.destroy(new CA("Request aborted")),e.addEventListener("abort",()=>n.destroy(new CA("Request aborted"))))})}async request({headers:t,signal:e}={}){return await this.constructRequest(t,e)}};var He=class extends he{constructor(t,e,i,r){super(),this.client=t,this.headers=e,this.maxRanges=i,this.allowFullFile=r,this._fileSize=null}async fetch(t,e){return this.maxRanges>=t.length?this.fetchSlices(t,e):(this.maxRanges>0&&t.length>1,Promise.all(t.map(i=>this.fetchSlice(i,e))))}async fetchSlices(t,e){let i=await this.client.request({headers:{...this.headers,Range:`bytes=${t.map(({offset:r,length:n})=>`${r}-${r+n}`).join(",")}`},signal:e});if(i.ok)if(i.status===206){let{type:r,params:n}=Xo(i.getHeader("content-type"));if(r==="multipart/byteranges"){let h=jo(await i.getData(),n.boundary);return this._fileSize=h[0].fileSize||null,h}let l=await i.getData(),{start:s,end:f,total:o}=Gt(i.getHeader("content-range"));this._fileSize=o||null;let a=[{data:l,offset:s,length:f-s}];if(t.length>1){let h=await Promise.all(t.slice(1).map(I=>this.fetchSlice(I,e)));return a.concat(h)}return a}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let r=await i.getData();return this._fileSize=r.byteLength,[{data:r,offset:0,length:r.byteLength}]}else throw new Error("Error fetching data.")}async fetchSlice(t,e){let{offset:i,length:r}=t,n=await this.client.request({headers:{...this.headers,Range:`bytes=${i}-${i+r}`},signal:e});if(n.ok)if(n.status===206){let l=await n.getData(),{total:s}=Gt(n.getHeader("content-range"));return this._fileSize=s||null,{data:l,offset:i,length:r}}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let l=await n.getData();return this._fileSize=l.byteLength,{data:l,offset:0,length:l.byteLength}}else throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}};function ji(A,{blockSize:t,cacheSize:e}){return t===null?A:new Lt(A,{blockSize:t,cacheSize:e})}function Tl(A,{headers:t={},credentials:e,maxRanges:i=0,allowFullFile:r=!1,...n}={}){let l=new Nt(A,e),s=new He(l,t,i,r);return ji(s,n)}function Ol(A,{headers:t={},maxRanges:e=0,allowFullFile:i=!1,...r}={}){let n=new Tt(A),l=new He(n,t,e,i);return ji(l,r)}function ql(A,{headers:t={},maxRanges:e=0,allowFullFile:i=!1,...r}={}){let n=new Ot(A),l=new He(n,t,e,i);return ji(l,r)}function ra(A,{forceXHR:t=!1,...e}={}){return typeof fetch=="function"&&!t?Tl(A,e):typeof XMLHttpRequest<"u"?Ol(A,e):ql(A,e)}it();_A();function $i(A){switch(A){case O.BYTE:case O.ASCII:case O.SBYTE:case O.UNDEFINED:return 1;case O.SHORT:case O.SSHORT:return 2;case O.LONG:case O.SLONG:case O.FLOAT:case O.IFD:return 4;case O.RATIONAL:case O.SRATIONAL:case O.DOUBLE:case O.LONG8:case O.SLONG8:case O.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${A}`)}}function Hl(A){let t=A.GeoKeyDirectory;if(!t)return null;let e={};for(let i=4;i<=t[3]*4;i+=4){let r=ue[t[i]],n=t[i+1]?te[t[i+1]]:null,l=t[i+2],s=t[i+3],f=null;if(!n)f=s;else{if(f=A[n],typeof f>"u"||f===null)throw new Error(`Could not get value of geoKey '${r}'.`);typeof f=="string"?f=f.substring(s,s+l-1):f.subarray&&(f=f.subarray(s,s+l),l===1&&(f=f[0]))}e[r]=f}return e}function Be(A,t,e,i){let r=null,n=null,l=$i(t);switch(t){case O.BYTE:case O.ASCII:case O.UNDEFINED:r=new Uint8Array(e),n=A.readUint8;break;case O.SBYTE:r=new Int8Array(e),n=A.readInt8;break;case O.SHORT:r=new Uint16Array(e),n=A.readUint16;break;case O.SSHORT:r=new Int16Array(e),n=A.readInt16;break;case O.LONG:case O.IFD:r=new Uint32Array(e),n=A.readUint32;break;case O.SLONG:r=new Int32Array(e),n=A.readInt32;break;case O.LONG8:case O.IFD8:r=new Array(e),n=A.readUint64;break;case O.SLONG8:r=new Array(e),n=A.readInt64;break;case O.RATIONAL:r=new Uint32Array(e*2),n=A.readUint32;break;case O.SRATIONAL:r=new Int32Array(e*2),n=A.readInt32;break;case O.FLOAT:r=new Float32Array(e),n=A.readFloat32;break;case O.DOUBLE:r=new Float64Array(e),n=A.readFloat64;break;default:throw new RangeError(`Invalid field type: ${t}`)}if(t===O.RATIONAL||t===O.SRATIONAL)for(let s=0;s<e;s+=2)r[s]=n.call(A,i+s*l),r[s+1]=n.call(A,i+(s*l+4));else for(let s=0;s<e;++s)r[s]=n.call(A,i+s*l);return t===O.ASCII?new TextDecoder("utf-8").decode(r):r}var Wi=class{constructor(t,e,i){this.fileDirectory=t,this.geoKeyDirectory=e,this.nextIFDByteOffset=i}},Ce=class extends Error{constructor(t){super(`No image at index ${t}`),this.index=t}},Ar=class{async readRasters(t={}){let{window:e,width:i,height:r}=t,{resX:n,resY:l,bbox:s}=t,f=await this.getImage(),o=f,a=await this.getImageCount(),h=f.getBoundingBox();if(e&&s)throw new Error('Both "bbox" and "window" passed.');if(i||r){if(e){let[c,B]=f.getOrigin(),[C,d]=f.getResolution();s=[c+e[0]*C,B+e[1]*d,c+e[2]*C,B+e[3]*d]}let g=s||h;if(i){if(n)throw new Error("Both width and resX passed");n=(g[2]-g[0])/i}if(r){if(l)throw new Error("Both width and resY passed");l=(g[3]-g[1])/r}}if(n||l){let g=[];for(let c=0;c<a;++c){let B=await this.getImage(c),{SubfileType:C,NewSubfileType:d}=B.fileDirectory;(c===0||C===2||d&1)&&g.push(B)}g.sort((c,B)=>c.getWidth()-B.getWidth());for(let c=0;c<g.length;++c){let B=g[c],C=(h[2]-h[0])/B.getWidth(),d=(h[3]-h[1])/B.getHeight();if(o=B,n&&n>C||l&&l>d)break}}let I=e;if(s){let[g,c]=f.getOrigin(),[B,C]=o.getResolution(f);I=[Math.round((s[0]-g)/B),Math.round((s[1]-c)/C),Math.round((s[2]-g)/B),Math.round((s[3]-c)/C)],I=[Math.min(I[0],I[2]),Math.min(I[1],I[3]),Math.max(I[0],I[2]),Math.max(I[1],I[3])]}return o.readRasters({...t,window:I})}},Ye=class extends Ar{constructor(t,e,i,r,n={}){super(),this.source=t,this.littleEndian=e,this.bigTiff=i,this.firstIFDOffset=r,this.cache=n.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(t,e){let i=this.bigTiff?4048:1024;return new Oe((await this.source.fetch([{offset:t,length:typeof e<"u"?e:i}]))[0],t,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(t){let e=this.bigTiff?20:12,i=this.bigTiff?8:2,r=await this.getSlice(t),n=this.bigTiff?r.readUint64(t):r.readUint16(t),l=n*e+(this.bigTiff?16:6);r.covers(t,l)||(r=await this.getSlice(t,l));let s={},f=t+(this.bigTiff?8:2);for(let h=0;h<n;f+=e,++h){let I=r.readUint16(f),g=r.readUint16(f+2),c=this.bigTiff?r.readUint64(f+4):r.readUint32(f+4),B,C,d=$i(g),E=f+(this.bigTiff?12:8);if(d*c<=(this.bigTiff?8:4))B=Be(r,g,c,E);else{let w=r.readOffset(E),p=$i(g)*c;if(r.covers(w,p))B=Be(r,g,c,w);else{let Q=await this.getSlice(w,p);B=Be(Q,g,c,w)}}c===1&&Jr.indexOf(I)===-1&&!(g===O.RATIONAL||g===O.SRATIONAL)?C=B[0]:C=B,s[te[I]]=C}let o=Hl(s),a=r.readOffset(t+i+e*n);return new Wi(s,o,a)}async requestIFD(t){if(this.ifdRequests[t])return this.ifdRequests[t];if(t===0)return this.ifdRequests[t]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[t];if(!this.ifdRequests[t-1])try{this.ifdRequests[t-1]=this.requestIFD(t-1)}catch(e){throw e instanceof Ce?new Ce(t):e}return this.ifdRequests[t]=(async()=>{let e=await this.ifdRequests[t-1];if(e.nextIFDByteOffset===0)throw new Ce(t);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[t]}async getImage(t=0){let e=await this.requestIFD(t);return new Po(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let t=0,e=!0;for(;e;)try{await this.requestIFD(t),++t}catch(i){if(i instanceof Ce)e=!1;else throw i}return t}async getGhostValues(){let t=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;let e="GDAL_STRUCTURAL_METADATA_SIZE=",i=e.length+100,r=await this.getSlice(t,i);if(e===Be(r,O.ASCII,e.length,t)){let l=Be(r,O.ASCII,i,t).split(`
7
+ `)[0],s=Number(l.split("=")[1].split(" ")[0])+l.length;s>i&&(r=await this.getSlice(t,s));let f=Be(r,O.ASCII,s,t);this.ghostValues={},f.split(`
8
+ `).filter(o=>o.length>0).map(o=>o.split("=")).forEach(([o,a])=>{this.ghostValues[o]=a})}return this.ghostValues}static async fromSource(t,e,i){let r=(await t.fetch([{offset:0,length:1024}],i))[0],n=new Te(r),l=n.getUint16(0,0),s;if(l===18761)s=!0;else if(l===19789)s=!1;else throw new TypeError("Invalid byte order value.");let f=n.getUint16(2,s),o;if(f===42)o=!1;else if(f===43){if(o=!0,n.getUint16(4,s)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");let a=o?n.getUint64(8,s):n.getUint32(4,s);return new Ye(t,s,o,a,e)}close(){return typeof this.source.close=="function"?this.source.close():!1}};async function na(A,t={},e){return Ye.fromSource(ra(A,t),e)}var Yl=1e8,oa=1e4,aa=1e4,Jl=512,zl=512,Kl={2:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","rotationArbitrary","rotationBy90s","sizeAboveFull","sizeByWhListed","sizeByForcedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"],2.1:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","regionSquare","rotationArbitrary","rotationBy90s","sizeAboveFull","sizeByConfinedWh","sizeByDistortedWh","sizeByH","sizeByPct","sizeByW","sizeByWh","sizeByWhListed","sizeByForcedWh"],3:["baseUriRedirect","canonicalLinkHeader","cors","jsonldMediaType","mirroring","profileLinkHeader","regionByPct","regionByPx","regionSquare","rotationArbitrary","rotationBy90s","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh","sizeUpscaling"]},er=class extends W{async decode(t,e){let i=Array.isArray(t.BitsPerSample)?t.BitsPerSample.length:t.SamplesPerPixel||4,r=(0,lA.default)(e,{sequentialRead:!0}),l=(await r.metadata()).channels||4;i===4&&l<4&&r.ensureAlpha?r=r.ensureAlpha():i===3&&l>3&&r.removeAlpha&&(r=r.removeAlpha());let{data:s,info:f}=await r.raw().toBuffer({resolveWithObject:!0});if(f.channels!==i){let o=f.width*f.height,a=Buffer.alloc(o*i),h=s;for(let I=0;I<o;I+=1){let g=I*f.channels,c=I*i;for(let B=0;B<i;B+=1)B<f.channels?a[c+B]=h[g+B]:a[c+B]=B===3?255:0}return a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength)}return s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength)}};BA(50001,()=>Promise.resolve(er));var Je=class extends sa.default{constructor(e,i,r=!1,n=Yl,l=oa,s=aa,f=Jl,o=zl){super(e,i,n,l,s,f,o);this.enableHD=r}regionImpl(e,i){e&&(i=i.extract({left:e.x,top:e.y,width:e.w,height:e.h}))}sizeImpl(e,i){e&&(i=i.resize({...e,fit:"fill"}))}rotationImpl(e,i){e&&(e.isMirror&&(i=i.flop()),i=i.rotate(e.degree))}qualityFormatImpl(e,i,r,n,l){e&&(e==="color"?r=r.toColorspace("srgb"):e==="gray"||e==="grey"?r=r.grayscale():e==="bitonal"&&(r=r.threshold())),i&&(r=r.toFormat(i)),n==="png"&&(l.paletteBitDepth===1||l.space==="b-w")&&(r=r.toColorspace("b-w").png({colors:2}))}async generateImageTile(e,i,r){let n=e.split("/"),l=n.pop(),s=l.split(".")[0],f=l.split(".")[1],o=n.pop(),a=n.pop(),h=n.pop(),I=n.pop(),g={width:i.width,height:i.height},c=super.normalizeRegionParams(h,g),B=super.normalizeSizeParams(a,{width:c?c.w:g.width,height:c?c.h:g.height}),{x:C,y:d,w:E,h:w}=c,{width:p,height:Q}=B,u=r+"/"+I,m=await na(u),y=await m.getImage();console.log(`Source dimensions: ${y.getWidth()} x ${y.getHeight()}`),console.log(`Extracting region: x=${C}, y=${d}, w=${E}, h=${w}`),console.log(`Output size: ${p} x ${Q}`);let k=await m.getImageCount();console.log(`Total images (including overviews): ${k}`);let x=E/p,b=w/Q,S=Math.max(x,b);console.log(`Scale factor: ${S.toFixed(2)}`);let N=y,D=0,_=C,R=d,T=E,F=w;if(k>1&&S>1){console.log("Looking for suitable overview...");for(let Y=1;Y<k;Y++){let K=Math.pow(2,Y),AA=Math.floor(y.getWidth()/K),nA=Math.floor(y.getHeight()/K);if(console.log(`Overview ${Y}: ${AA} x ${nA} (factor: ${K})`),K>=S&&(D===0||K<Math.pow(2,D))){D=Y-1;break}}if(D>0){N=await m.getImage(D);let Y=Math.pow(2,D);console.log(`Using overview level: ${D} (factor: ${Y})`),console.log(`Overview dimensions: ${N.getWidth()} x ${N.getHeight()}`),_=Math.floor(C/Y),R=Math.floor(d/Y),T=Math.floor(E/Y),F=Math.floor(w/Y),console.log(`Adjusted window: x=${_}, y=${R}, w=${T}, h=${F}`)}else if(k>1)try{let Y=k-1;N=await m.getImage(Y);let K=Math.pow(2,Y);console.log(`Using largest overview (factor: ${K})`),console.log(`Overview dimensions: ${N.getWidth()} x ${N.getHeight()}`),_=Math.floor(C/K),R=Math.floor(d/K),T=Math.floor(E/K),F=Math.floor(w/K),console.log(`Adjusted window: x=${_}, y=${R}, w=${T}, h=${F}`)}catch(Y){console.warn("Could not use largest overview, falling back to full resolution")}}else console.log("Using full resolution (no suitable overview found or scale factor <= 1)");let v=N.getSamplesPerPixel(),U;v>=3?(U=[0,1,2],v>=4&&U.push(3)):U=[0];let q=await N.readRasters({window:[_,R,_+T,R+F],width:p,height:Q,samples:U,interleave:!0,resampleMethod:"bilinear"}),z=U.length,V=Buffer.from(q.buffer,q.byteOffset,q.byteLength),L=(0,lA.default)(V,{raw:{width:p,height:Q,channels:z}}),M=super.normalizeRotationParams(o);this.rotationImpl(M,L);let G=super.normalizeQualityParams(s),P=super.normalizeFormatParams(f,i.format);this.qualityFormatImpl(G,P,L,f,i);let X={};return X.body=L,X.contentType=super.getContentType(P),X}iiifTransform(e,i){let r=this.enableHD?(0,lA.default)({limitInputPixels:!1,sequentialRead:!0}):(0,lA.default)(),n=e.split("/"),l=n.pop(),s=l.split(".")[0],f=l.split(".")[1],o=n.pop(),a=n.pop(),h=n.pop(),I=!1,g=r,c={width:i.width,height:i.height};i&&i.orientation&&(I=!0,g=g.rotate(),i.orientation>=5&&(c={width:i.height,height:i.width}));let B=super.normalizeRegionParams(h,c);this.regionImpl(B,g);let C=super.normalizeSizeParams(a,{width:B?B.w:c.width,height:B?B.h:c.height});this.sizeImpl(C,g);let d=super.normalizeRotationParams(o);this.rotationImpl(d,g);let E=super.normalizeQualityParams(s),w=super.normalizeFormatParams(f,i.format);return this.qualityFormatImpl(E,w,g,f,i),B||C||d||E||w||I?g:(console.log("skip iiif transform"),null)}async generateIiifImage(e,i,r=256){let n=this.enableHD?(0,lA.default)(i,{limitInputPixels:!1,sequentialRead:!0}):(0,lA.default)(i),l=e.split("/"),s=l.pop(),f=s.split(".")[0],o=s.split(".")[1],a=l.pop(),h=l.pop(),I=l.pop(),g=await n.metadata(),c={width:g.width,height:g.height},B={},C=n,d=super.normalizeRegionParams(I,c);this.regionImpl(d,C);let E=super.normalizeSizeParams(h,{width:d?d.w:c.width,height:d?d.h:c.height});this.sizeImpl(E,C);let{x:w,y:p,w:Q,h:u}=d||{x:0,y:0,w:c.width,h:c.height},{width:m,height:y}=E||{width:c.width,height:c.height};try{if(Q*u>m*y*r&&m<oa&&y<aa&&g.pages&&g.pages>1){console.log("thumbnail");let S=Math.max(m/Q,y/u),[N,D,_,R]=[Math.round(w*S),Math.round(p*S),Math.round(Q*S),Math.round(u*S)],[T,F]=[Math.round(c.width*S),Math.round(c.height*S)];console.log("rawMeta.pages: "+g.pages);let v=Math.max(0,g.pages-1);console.log("selectedPage1: "+v),v>=g.pages&&(console.log("Warning: Selected page exceeds available pages, using last available page"),v=Math.max(0,g.pages-1));let U=this.enableHD?await(0,lA.default)(i,{limitInputPixels:!1,page:v,sequentialRead:!0}).metadata():await(0,lA.default)(i,{page:v}).metadata(),q=U.width,z=U.height;for(;v>0&&(z<F||q<T);)z*=2,q*=2,v--;(v<0||v>=g.pages)&&(console.log("Warning: Invalid page index after calculation, using page 0"),v=0),console.log("selectedPage2: "+v);let V={width:T,height:F,fastShrinkOnLoad:!1},L=this.enableHD?await(0,lA.default)(i,{limitInputPixels:!1,page:v,sequentialRead:!0}).resize(V).toBuffer():await(0,lA.default)(i,{page:v}).resize(V).toBuffer(),M=this.enableHD?(0,lA.default)(L,{limitInputPixels:!1,sequentialRead:!0}):(0,lA.default)(L),G=await M.metadata();console.log(G),D+R>G.height&&(R=G.height-D,console.log("adjested sh: "+R)),N+_>G.width&&(_=G.width-N,console.log("adjusted sw: "+_));let P={x:N,y:D,w:_,h:R};this.regionImpl(P,M),this.sizeImpl(E,M),console.log(G.width,G.height,V.width,V.height,P,E),C=M}}catch(S){console.trace(S),console.log(S)}let k=super.normalizeRotationParams(a);this.rotationImpl(k,C);let x=super.normalizeQualityParams(f);console.log(o,g.format);let b=super.normalizeFormatParams(o,g.format);return this.qualityFormatImpl(x,b,C,o,g),console.log("pipeline "+C),B.body=C,B.contentType=super.getContentType(b),B}generateImageInfo(e,i,r=""){let n=this.version,l=this.level,s={width:i.width,height:i.height};i&&i.orientation&&i.orientation>=5&&(console.log(i.orientation),s={width:i.height,height:i.width});let f=super.generateImageInfoTemp(e,s),o=f.info;if((n==="2.0"||n==="2.1")&&(o.profile=[super.uriPattern("compliance")],l==="2")){let a={};a.formats=["jpg","png","webp","jp2","pdf","tif"],a.qualities=["color","gray","bitonal","default","native","grey"],a.supports=Kl[Number(n)],o.profile.push(a)}return n==="3.0"&&r&&(o.extraFormats=[r],o.preferredFormats=[r]),r&&(o.formats=[r]),f}};module.exports=Je;
9
+ /*! Bundled license information:
10
+
11
+ pako/dist/pako.esm.mjs:
12
+ (*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
13
+
14
+ lerc/LercDecode.js:
15
+ (* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve *)
16
+ */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etu-wiki/sharp-iiif-shims",
3
- "version": "0.0.96",
3
+ "version": "0.0.97",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -31,7 +31,8 @@
31
31
  "dist"
32
32
  ],
33
33
  "dependencies": {
34
- "@etu-wiki/iiif-image-shims": "^0.0.26"
34
+ "@etu-wiki/iiif-image-shims": "^0.0.26",
35
+ "geotiff": "^2.1.3"
35
36
  },
36
37
  "peerDependencies": {
37
38
  "sharp": ">=0.32.6"