@gisatcz/deckgl-geolib 1.12.0-dev.3 → 1.12.0-dev.4

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.
@@ -1,4 +1,4 @@
1
- import{CompositeLayer as A,log as e,COORDINATE_SYSTEM as t}from"@deck.gl/core";import{TileLayer as i}from"@deck.gl/geo-layers";import{BitmapLayer as r}from"@deck.gl/layers";import{_TerrainExtension as a}from"@deck.gl/extensions";import n from"chroma-js";import{getMeshBoundingBox as s}from"@loaders.gl/schema";import{concatenateTypedArrays as o}from"@loaders.gl/loader-utils";import{SimpleMeshLayer as g}from"@deck.gl/mesh-layers";function l(A,e,t,i){return new(t||(t=Promise))((function(r,a){function n(A){try{o(i.next(A))}catch(A){a(A)}}function s(A){try{o(i.throw(A))}catch(A){a(A)}}function o(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(n,s)}o((i=i.apply(A,e||[])).next())}))}function h(A){return(e,...t)=>B(A,e,t)}function I(A,e){return h(E(A,e).get)}const{apply:B,construct:c,defineProperty:C,get:f,getOwnPropertyDescriptor:E,getPrototypeOf:Q,has:d,ownKeys:u,set:w,setPrototypeOf:p}=Reflect,{iterator:m,species:y,toStringTag:D,for:k}=Symbol,b=Object,{create:_,defineProperty:S,freeze:x,is:F}=b,G=Array.prototype[m],U=h(G),R=ArrayBuffer;I(R.prototype,"byteLength");const M="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null;M&&I(M.prototype,"byteLength");const L=Q(Uint8Array);L.from;const v=L.prototype;v[m],h(v.keys),h(v.values),h(v.entries),h(v.set),h(v.reverse),h(v.fill),h(v.copyWithin),h(v.sort),h(v.slice),h(v.subarray),I(v,"buffer"),I(v,"byteOffset"),I(v,"length"),I(v,D);const N=Uint32Array,T=Float32Array,q=Q([][m]()),O=h(q.next),J=h(function*(){}().next),H=Q(q),Y=h(DataView.prototype.getUint16),z=WeakMap,P=z.prototype,K=h(P.get),V=h(P.set),Z=new z,X=_(null,{next:{value:function(){const A=K(Z,this);return O(A)}},[m]:{value:function(){return this}}});const W=new z,j=_(H,{next:{value:function(){const A=K(W,this);return J(A)},writable:!0,configurable:!0}});for(const A of u(q))"next"!==A&&S(j,A,E(q,A));const $=new R(4),AA=new T($),eA=new N($),tA=new N(512),iA=new N(512);for(let A=0;A<256;++A){const e=A-127;e<-27?(tA[A]=0,tA[256|A]=32768,iA[A]=24,iA[256|A]=24):e<-14?(tA[A]=1024>>-e-14,tA[256|A]=1024>>-e-14|32768,iA[A]=-e-1,iA[256|A]=-e-1):e<=15?(tA[A]=e+15<<10,tA[256|A]=e+15<<10|32768,iA[A]=13,iA[256|A]=13):e<128?(tA[A]=31744,tA[256|A]=64512,iA[A]=24,iA[256|A]=24):(tA[A]=31744,tA[256|A]=64512,iA[A]=13,iA[256|A]=13)}const rA=new N(2048),aA=new N(64),nA=new N(64);for(let A=1;A<1024;++A){let e=A<<13,t=0;for(;0==(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,rA[A]=e|t}for(let A=1024;A<2048;++A)rA[A]=939524096+(A-1024<<13);for(let A=1;A<31;++A)aA[A]=A<<23;aA[31]=1199570944,aA[32]=2147483648;for(let A=33;A<63;++A)aA[A]=2147483648+(A-32<<23);aA[63]=3347054592;for(let A=1;A<64;++A)32!==A&&(nA[A]=1024);function sA(A,e,...t){return function(A){const e=A>>10;return eA[0]=rA[nA[e]+(1023&A)]+aA[e],AA[0]}(Y(A,e,...function(A){if(A[m]===G&&q.next===O)return A;const e=_(X);return V(Z,e,U(A)),e}(t)))}function oA(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var gA={exports:{}};function lA(A,e,t){const i=t&&t.debug||!1;i&&console.log("[xml-utils] getting "+e+" in "+A);const r="object"==typeof A?A.outer:A,a=r.slice(0,r.indexOf(">")+1),n=['"',"'"];for(let A=0;A<n.length;A++){const t=n[A],r=e+"\\="+t+"([^"+t+"]*)"+t;i&&console.log("[xml-utils] pattern:",r);const s=new RegExp(r).exec(a);if(i&&console.log("[xml-utils] match:",s),s)return s[1]}}gA.exports=lA,gA.exports.default=lA;var hA=oA(gA.exports),IA={exports:{}},BA={exports:{}},cA={exports:{}};function CA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index:-1}cA.exports=CA,cA.exports.default=CA;var fA=cA.exports,EA={exports:{}};function QA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index+i[0].length-1:-1}EA.exports=QA,EA.exports.default=QA;var dA=EA.exports,uA={exports:{}};function wA(A,e){const t=new RegExp(e,"g"),i=A.match(t);return i?i.length:0}uA.exports=wA,uA.exports.default=wA;var pA=uA.exports;const mA=fA,yA=dA,DA=pA;function kA(A,e,t){const i=t&&t.debug||!1,r=!(t&&!1===typeof t.nested),a=t&&t.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",e," and ",t);const n=mA(A,`<${e}[ \n>/]`,a);if(i&&console.log("[xml-utils] start:",n),-1===n)return;const s=A.slice(n+e.length);let o=yA(s,"^[^<]*[ /]>",0);const g=-1!==o&&"/"===s[o-1];if(i&&console.log("[xml-utils] selfClosing:",g),!1===g)if(r){let A=0,t=1,i=0;for(;-1!==(o=yA(s,"[ /]"+e+">",A));){const r=s.substring(A,o+1);if(t+=DA(r,"<"+e+"[ \n\t>]"),i+=DA(r,"</"+e+">"),i>=t)break;A=o}}else o=yA(s,"[ /]"+e+">",0);const l=n+e.length+o+1;if(i&&console.log("[xml-utils] end:",l),-1===l)return;const h=A.slice(n,l);let I;return I=g?null:h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:I,outer:h,start:n,end:l}}BA.exports=kA,BA.exports.default=kA;const bA=BA.exports;function _A(A,e,t){const i=[],r=t&&t.debug||!1,a=!t||"boolean"!=typeof t.nested||t.nested;let n,s=t&&t.startIndex||0;for(;n=bA(A,e,{debug:r,startIndex:s});)s=a?n.start+1+e.length:n.end,i.push(n);return r&&console.log("findTagsByName found",i.length,"tags"),i}IA.exports=_A,IA.exports.default=_A;var SA=oA(IA.exports);const xA={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"},FA={};for(const A in xA)xA.hasOwnProperty(A)&&(FA[xA[A]]=parseInt(A,10));const GA=[FA.BitsPerSample,FA.ExtraSamples,FA.SampleFormat,FA.StripByteCounts,FA.StripOffsets,FA.StripRowCounts,FA.TileByteCounts,FA.TileOffsets,FA.SubIFDs],UA={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"},RA={};for(const A in UA)UA.hasOwnProperty(A)&&(RA[UA[A]]=parseInt(A,10));const MA=0,LA=1,vA=2,NA=3,TA=5,qA=6,OA=8,JA=0,HA=1,YA=0,zA=1,PA=2,KA={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"};const VA=new Map;function ZA(A,e){Array.isArray(A)||(A=[A]),A.forEach((A=>VA.set(A,e)))}function XA(A,e,t,i=1){return new(Object.getPrototypeOf(A).constructor)(e*t*i)}function WA(A,e,t){return(1-t)*A+t*e}function jA(A,e,t,i,r,a="nearest"){switch(a.toLowerCase()){case"nearest":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=XA(A,i,r);for(let o=0;o<r;++o){const r=Math.min(Math.round(n*o),t-1);for(let t=0;t<i;++t){const n=Math.min(Math.round(a*t),e-1),g=A[r*e+n];s[o*i+t]=g}}return s}))}(A,e,t,i,r);case"bilinear":case"linear":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=XA(A,i,r);for(let o=0;o<r;++o){const r=n*o,g=Math.floor(r),l=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const n=a*t,h=n%1,I=Math.floor(n),B=Math.min(Math.ceil(n),e-1),c=A[g*e+I],C=A[g*e+B],f=A[l*e+I],E=A[l*e+B],Q=WA(WA(c,C,h),WA(f,E,h),r%1);s[o*i+t]=Q}}return s}))}(A,e,t,i,r);default:throw new Error(`Unsupported resampling method: '${a}'`)}}function $A(A,e,t,i,r,a,n="nearest"){switch(n.toLowerCase()){case"nearest":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=XA(A,i,r,a);for(let g=0;g<r;++g){const r=Math.min(Math.round(s*g),t-1);for(let t=0;t<i;++t){const s=Math.min(Math.round(n*t),e-1);for(let n=0;n<a;++n){const l=A[r*e*a+s*a+n];o[g*i*a+t*a+n]=l}}}return o}(A,e,t,i,r,a);case"bilinear":case"linear":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=XA(A,i,r,a);for(let g=0;g<r;++g){const r=s*g,l=Math.floor(r),h=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const s=n*t,I=s%1,B=Math.floor(s),c=Math.min(Math.ceil(s),e-1);for(let n=0;n<a;++n){const s=A[l*e*a+B*a+n],C=A[l*e*a+c*a+n],f=A[h*e*a+B*a+n],E=A[h*e*a+c*a+n],Q=WA(WA(s,C,I),WA(f,E,I),r%1);o[g*i*a+t*a+n]=Q}}}return o}(A,e,t,i,r,a);default:throw new Error(`Unsupported resampling method: '${n}'`)}}function Ae(A,e,t){let i=0;for(let r=e;r<t;++r)i+=A[r];return i}function ee(A,e,t){switch(A){case 1:if(e<=8)return new Uint8Array(t);if(e<=16)return new Uint16Array(t);if(e<=32)return new Uint32Array(t);break;case 2:if(8===e)return new Int8Array(t);if(16===e)return new Int16Array(t);if(32===e)return new Int32Array(t);break;case 3:switch(e){case 16:case 32:return new Float32Array(t);case 64:return new Float64Array(t)}}throw Error("Unsupported data format/bitsPerSample")}ZA([void 0,1],(()=>Promise.resolve().then((function(){return gt})).then((A=>A.default)))),ZA(5,(()=>Promise.resolve().then((function(){return Bt})).then((A=>A.default)))),ZA(6,(()=>{throw new Error("old style JPEG compression is not supported.")})),ZA(7,(()=>Promise.resolve().then((function(){return bt})).then((A=>A.default)))),ZA([8,32946],(()=>Promise.resolve().then((function(){return La})).then((A=>A.default)))),ZA(32773,(()=>Promise.resolve().then((function(){return Na})).then((A=>A.default)))),ZA(34887,(()=>Promise.resolve().then((function(){return Ka})).then((async A=>(await A.zstd.init(),A))).then((A=>A.default)))),ZA(50001,(()=>Promise.resolve().then((function(){return Va})).then((A=>A.default))));var te=class{constructor(A,e,t,i,r,a){this.fileDirectory=A,this.geoKeys=e,this.dataView=t,this.littleEndian=i,this.tiles=r?{}:null,this.isTiled=!A.StripOffsets;const n=A.PlanarConfiguration;if(this.planarConfiguration=void 0===n?1:n,1!==this.planarConfiguration&&2!==this.planarConfiguration)throw new Error("Invalid planar configuration.");this.source=a}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return void 0!==this.fileDirectory.SamplesPerPixel?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:void 0!==this.fileDirectory.RowsPerStrip?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(A){return this.isTiled||(A+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-A*this.getTileHeight()}getBytesPerPixel(){let A=0;for(let e=0;e<this.fileDirectory.BitsPerSample.length;++e)A+=this.getSampleByteSize(e);return A}getSampleByteSize(A){if(A>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[A]/8)}getReaderForSample(A){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1,t=this.fileDirectory.BitsPerSample[A];switch(e){case 1:if(t<=8)return DataView.prototype.getUint8;if(t<=16)return DataView.prototype.getUint16;if(t<=32)return DataView.prototype.getUint32;break;case 2:if(t<=8)return DataView.prototype.getInt8;if(t<=16)return DataView.prototype.getInt16;if(t<=32)return DataView.prototype.getInt32;break;case 3:switch(t){case 16:return function(A,e){return sA(this,A,e)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1}getBitsPerSample(A=0){return this.fileDirectory.BitsPerSample[A]}getArrayForSample(A,e){return ee(this.getSampleFormat(A),this.getBitsPerSample(A),e)}async getTileOrStrip(A,e,t,i,r){const a=Math.ceil(this.getWidth()/this.getTileWidth()),n=Math.ceil(this.getHeight()/this.getTileHeight());let s;const{tiles:o}=this;let g,l;1===this.planarConfiguration?s=e*a+A:2===this.planarConfiguration&&(s=t*a*n+e*a+A),this.isTiled?(g=this.fileDirectory.TileOffsets[s],l=this.fileDirectory.TileByteCounts[s]):(g=this.fileDirectory.StripOffsets[s],l=this.fileDirectory.StripByteCounts[s]);const h=(await this.source.fetch([{offset:g,length:l}],r))[0];let I;return null!==o&&o[s]?I=o[s]:(I=(async()=>{let A=await i.decode(this.fileDirectory,h);const t=this.getSampleFormat(),r=this.getBitsPerSample();return function(A,e){return(1!==A&&2!==A||!(e<=32)||e%8!=0)&&(3!==A||16!==e&&32!==e&&64!==e)}(t,r)&&(A=function(A,e,t,i,r,a,n){const s=new DataView(A),o=2===t?1:i,g=ee(e,r,2===t?n*a:n*a*i),l=parseInt("1".repeat(r),2);if(1===e){let A;A=1===t?i*r:r;let e=a*A;0!=(7&e)&&(e=e+7&-8);for(let A=0;A<n;++A){const t=A*e;for(let e=0;e<a;++e){const i=t+e*o*r;for(let t=0;t<o;++t){const n=i+t*r,h=(A*a+e)*o+t,I=Math.floor(n/8),B=n%8;if(B+r<=8)g[h]=s.getUint8(I)>>8-r-B&l;else if(B+r<=16)g[h]=s.getUint16(I)>>16-r-B&l;else if(B+r<=24){const A=s.getUint16(I)<<8|s.getUint8(I+2);g[h]=A>>24-r-B&l}else g[h]=s.getUint32(I)>>32-r-B&l}}}}return g.buffer}(A,t,this.planarConfiguration,this.getSamplesPerPixel(),r,this.getTileWidth(),this.getBlockHeight(e))),A})(),null!==o&&(o[s]=I)),{x:A,y:e,sample:t,data:await I}}async _readRaster(A,e,t,i,r,a,n,s,o){const g=this.getTileWidth(),l=this.getTileHeight(),h=this.getWidth(),I=this.getHeight(),B=Math.max(Math.floor(A[0]/g),0),c=Math.min(Math.ceil(A[2]/g),Math.ceil(h/g)),C=Math.max(Math.floor(A[1]/l),0),f=Math.min(Math.ceil(A[3]/l),Math.ceil(I/l)),E=A[2]-A[0];let Q=this.getBytesPerPixel();const d=[],u=[];for(let A=0;A<e.length;++A)1===this.planarConfiguration?d.push(Ae(this.fileDirectory.BitsPerSample,0,e[A])/8):d.push(0),u.push(this.getReaderForSample(e[A]));const w=[],{littleEndian:p}=this;for(let a=C;a<f;++a)for(let n=B;n<c;++n){let s;1===this.planarConfiguration&&(s=this.getTileOrStrip(n,a,0,r,o));for(let B=0;B<e.length;++B){const c=B,C=e[B];2===this.planarConfiguration&&(Q=this.getSampleByteSize(C),s=this.getTileOrStrip(n,a,C,r,o));const f=s.then((r=>{const a=r.data,n=new DataView(a),s=this.getBlockHeight(r.y),o=r.y*l,B=r.x*g,C=o+s,f=(r.x+1)*g,w=u[c],m=Math.min(s,s-(C-A[3]),I-o),y=Math.min(g,g-(f-A[2]),h-B);for(let r=Math.max(0,A[1]-o);r<m;++r)for(let a=Math.max(0,A[0]-B);a<y;++a){const s=(r*g+a)*Q,l=w.call(n,s+d[c],p);let h;i?(h=(r+o-A[1])*E*e.length+(a+B-A[0])*e.length+c,t[h]=l):(h=(r+o-A[1])*E+a+B-A[0],t[c][h]=l)}}));w.push(f)}}if(await Promise.all(w),a&&A[2]-A[0]!==a||n&&A[3]-A[1]!==n){let r;return r=i?$A(t,A[2]-A[0],A[3]-A[1],a,n,e.length,s):jA(t,A[2]-A[0],A[3]-A[1],a,n,s),r.width=a,r.height=n,r}return t.width=a||A[2]-A[0],t.height=n||A[3]-A[1],t}async readRasters({window:A,samples:e=[],interleave:t,pool:i=null,width:r,height:a,resampleMethod:n,fillValue:s,signal:o}={}){const g=A||[0,0,this.getWidth(),this.getHeight()];if(g[0]>g[2]||g[1]>g[3])throw new Error("Invalid subsets");const l=(g[2]-g[0])*(g[3]-g[1]),h=this.getSamplesPerPixel();if(e&&e.length){for(let A=0;A<e.length;++A)if(e[A]>=h)return Promise.reject(new RangeError(`Invalid sample index '${e[A]}'.`))}else for(let A=0;A<h;++A)e.push(A);let I;if(t){I=ee(this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,Math.max.apply(null,this.fileDirectory.BitsPerSample),l*e.length),s&&I.fill(s)}else{I=[];for(let A=0;A<e.length;++A){const t=this.getArrayForSample(e[A],l);Array.isArray(s)&&A<s.length?t.fill(s[A]):s&&!Array.isArray(s)&&t.fill(s),I.push(t)}}const B=i||await async function(A){const e=VA.get(A.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${A.Compression}`);return new(await e())(A)}(this.fileDirectory);return await this._readRaster(g,e,I,t,B,r,a,n,o)}async readRGB({window:A,interleave:e=!0,pool:t=null,width:i,height:r,resampleMethod:a,enableAlpha:n=!1,signal:s}={}){const o=A||[0,0,this.getWidth(),this.getHeight()];if(o[0]>o[2]||o[1]>o[3])throw new Error("Invalid subsets");const g=this.fileDirectory.PhotometricInterpretation;if(g===vA){let o=[0,1,2];if(this.fileDirectory.ExtraSamples!==JA&&n){o=[];for(let A=0;A<this.fileDirectory.BitsPerSample.length;A+=1)o.push(A)}return this.readRasters({window:A,interleave:e,samples:o,pool:t,width:i,height:r,resampleMethod:a,signal:s})}let l;switch(g){case MA:case LA:case NA:l=[0];break;case TA:l=[0,1,2,3];break;case qA:case OA:l=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const h={window:o,interleave:!0,samples:l,pool:t,width:i,height:r,resampleMethod:a,signal:s},{fileDirectory:I}=this,B=await this.readRasters(h),c=2**this.fileDirectory.BitsPerSample[0];let C;switch(g){case MA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=256-A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case LA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case NA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3),a=e.length/3,n=e.length/3*2;for(let t=0,i=0;t<A.length;++t,i+=3){const s=A[t];r[i]=e[s]/65536*256,r[i+1]=e[s+a]/65536*256,r[i+2]=e[s+n]/65536*256}return r}(B,I.ColorMap);break;case TA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=4,t+=3){const r=A[e],a=A[e+1],n=A[e+2],s=A[e+3];i[t]=(255-r)/256*255*((255-s)/256),i[t+1]=(255-a)/256*255*((255-s)/256),i[t+2]=(255-n)/256*255*((255-s)/256)}return i}(B);break;case qA:C=function(A){const{width:e,height:t}=A,i=new Uint8ClampedArray(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){const r=A[e],a=A[e+1],n=A[e+2];i[t]=r+1.402*(n-128),i[t+1]=r-.34414*(a-128)-.71414*(n-128),i[t+2]=r+1.772*(a-128)}return i}(B);break;case OA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){let r,a,n,s=(A[e+0]+16)/116,o=(A[e+1]<<24>>24)/500+s,g=s-(A[e+2]<<24>>24)/200;o=.95047*(o*o*o>.008856?o*o*o:(o-16/116)/7.787),s=1*(s*s*s>.008856?s*s*s:(s-16/116)/7.787),g=1.08883*(g*g*g>.008856?g*g*g:(g-16/116)/7.787),r=3.2406*o+-1.5372*s+-.4986*g,a=-.9689*o+1.8758*s+.0415*g,n=.0557*o+-.204*s+1.057*g,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,i[t]=255*Math.max(0,Math.min(1,r)),i[t+1]=255*Math.max(0,Math.min(1,a)),i[t+2]=255*Math.max(0,Math.min(1,n))}return i}(B);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){const A=new Uint8Array(C.length/3),e=new Uint8Array(C.length/3),t=new Uint8Array(C.length/3);for(let i=0,r=0;i<C.length;i+=3,++r)A[r]=C[i],e[r]=C[i+1],t[r]=C[i+2];C=[A,e,t]}return C.width=B.width,C.height=B.height,C}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const A=[];for(let e=0;e<this.fileDirectory.ModelTiepoint.length;e+=6)A.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 A}getGDALMetadata(A=null){const e={};if(!this.fileDirectory.GDAL_METADATA)return null;const t=this.fileDirectory.GDAL_METADATA;let i=SA(t,"Item");i=null===A?i.filter((A=>void 0===hA(A,"sample"))):i.filter((e=>Number(hA(e,"sample"))===A));for(let A=0;A<i.length;++A){const t=i[A];e[hA(t,"name")]=t.inner}return e}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const A=this.fileDirectory.GDAL_NODATA;return Number(A.substring(0,A.length-1))}getOrigin(){const A=this.fileDirectory.ModelTiepoint,e=this.fileDirectory.ModelTransformation;if(A&&6===A.length)return[A[3],A[4],A[5]];if(e)return[e[3],e[7],e[11]];throw new Error("The image does not have an affine transformation.")}getResolution(A=null){const e=this.fileDirectory.ModelPixelScale,t=this.fileDirectory.ModelTransformation;if(e)return[e[0],-e[1],e[2]];if(t)return 0===t[1]&&0===t[4]?[t[0],-t[5],t[10]]:[Math.sqrt(t[0]*t[0]+t[4]*t[4]),-Math.sqrt(t[1]*t[1]+t[5]*t[5]),t[10]];if(A){const[e,t,i]=A.getResolution();return[e*A.getWidth()/this.getWidth(),t*A.getHeight()/this.getHeight(),i*A.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return 1===this.geoKeys.GTRasterTypeGeoKey}getBoundingBox(A=!1){const e=this.getHeight(),t=this.getWidth();if(this.fileDirectory.ModelTransformation&&!A){const[A,i,r,a,n,s,o,g]=this.fileDirectory.ModelTransformation,l=[[0,0],[0,e],[t,0],[t,e]].map((([e,t])=>[a+A*e+i*t,g+n*e+s*t])),h=l.map((A=>A[0])),I=l.map((A=>A[1]));return[Math.min(...h),Math.min(...I),Math.max(...h),Math.max(...I)]}{const A=this.getOrigin(),i=this.getResolution(),r=A[0],a=A[1],n=r+i[0]*t,s=a+i[1]*e;return[Math.min(r,n),Math.min(a,s),Math.max(r,n),Math.max(a,s)]}}};class ie{constructor(A){this._dataView=new DataView(A)}get buffer(){return this._dataView.buffer}getUint64(A,e){const t=this.getUint32(A,e),i=this.getUint32(A+4,e);let r;if(e){if(r=t+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*t+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}getInt64(A,e){let t=0;const i=(128&this._dataView.getUint8(A+(e?7:0)))>0;let r=!0;for(let a=0;a<8;a++){let n=this._dataView.getUint8(A+(e?a:7-a));i&&(r?0!==n&&(n=255&~(n-1),r=!1):n=255&~n),t+=n*256**a}return i&&(t=-t),t}getUint8(A,e){return this._dataView.getUint8(A,e)}getInt8(A,e){return this._dataView.getInt8(A,e)}getUint16(A,e){return this._dataView.getUint16(A,e)}getInt16(A,e){return this._dataView.getInt16(A,e)}getUint32(A,e){return this._dataView.getUint32(A,e)}getInt32(A,e){return this._dataView.getInt32(A,e)}getFloat16(A,e){return sA(this._dataView,A,e)}getFloat32(A,e){return this._dataView.getFloat32(A,e)}getFloat64(A,e){return this._dataView.getFloat64(A,e)}}class re{constructor(A,e,t,i){this._dataView=new DataView(A),this._sliceOffset=e,this._littleEndian=t,this._bigTiff=i}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(A,e){return this.sliceOffset<=A&&this.sliceTop>=A+e}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset,this._littleEndian)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset,this._littleEndian)}readUint16(A){return this._dataView.getUint16(A-this._sliceOffset,this._littleEndian)}readInt16(A){return this._dataView.getInt16(A-this._sliceOffset,this._littleEndian)}readUint32(A){return this._dataView.getUint32(A-this._sliceOffset,this._littleEndian)}readInt32(A){return this._dataView.getInt32(A-this._sliceOffset,this._littleEndian)}readFloat32(A){return this._dataView.getFloat32(A-this._sliceOffset,this._littleEndian)}readFloat64(A){return this._dataView.getFloat64(A-this._sliceOffset,this._littleEndian)}readUint64(A){const e=this.readUint32(A),t=this.readUint32(A+4);let i;if(this._littleEndian){if(i=e+2**32*t,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*e+t,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}readInt64(A){let e=0;const t=(128&this._dataView.getUint8(A+(this._littleEndian?7:0)))>0;let i=!0;for(let r=0;r<8;r++){let a=this._dataView.getUint8(A+(this._littleEndian?r:7-r));t&&(i?0!==a&&(a=255&~(a-1),i=!1):a=255&~a),e+=a*256**r}return t&&(e=-e),e}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const ae="\r\n\r\n";function ne(A){if(void 0!==Object.fromEntries)return Object.fromEntries(A);const e={};for(const[t,i]of A)e[t.toLowerCase()]=i;return e}function se(A){return ne(A.split("\r\n").map((A=>{const e=A.split(":").map((A=>A.trim()));return e[0]=e[0].toLowerCase(),e})))}function oe(A){let e,t,i;return A&&([,e,t,i]=A.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),i=parseInt(i,10)),{start:e,end:t,total:i}}class ge{async fetch(A,e=undefined){return Promise.all(A.map((A=>this.fetchSlice(A,e))))}async fetchSlice(A){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class le extends Map{constructor(A={}){if(super(),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=A.maxSize,this.maxAge=A.maxAge||Number.POSITIVE_INFINITY,this.onEviction=A.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(A){if("function"==typeof this.onEviction)for(const[e,t]of A)this.onEviction(e,t.value)}_deleteIfExpired(A,e){return"number"==typeof e.expiry&&e.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(A,e.value),this.delete(A))}_getOrDeleteIfExpired(A,e){if(!1===this._deleteIfExpired(A,e))return e.value}_getItemValue(A,e){return e.expiry?this._getOrDeleteIfExpired(A,e):e.value}_peek(A,e){const t=e.get(A);return this._getItemValue(A,t)}_set(A,e){this.cache.set(A,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,e){this.oldCache.delete(A),this._set(A,e)}*_entriesAscending(){for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield A)}}for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield A)}}get(A){if(this.cache.has(A)){const e=this.cache.get(A);return this._getItemValue(A,e)}if(this.oldCache.has(A)){const e=this.oldCache.get(A);if(!1===this._deleteIfExpired(A,e))return this._moveToRecent(A,e),e.value}}set(A,e,{maxAge:t=this.maxAge}={}){const i="number"==typeof t&&t!==Number.POSITIVE_INFINITY?Date.now()+t:void 0;this.cache.has(A)?this.cache.set(A,{value:e,expiry:i}):this._set(A,{value:e,expiry:i})}has(A){return this.cache.has(A)?!this._deleteIfExpired(A,this.cache.get(A)):!!this.oldCache.has(A)&&!this._deleteIfExpired(A,this.oldCache.get(A))}peek(A){return this.cache.has(A)?this._peek(A,this.cache):this.oldCache.has(A)?this._peek(A,this.oldCache):void 0}delete(A){const e=this.cache.delete(A);return e&&this._size--,this.oldCache.delete(A)||e}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const e=[...this._entriesAscending()],t=e.length-A;t<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(t>0&&this._emitEvictions(e.slice(0,t)),this.oldCache=new Map(e.slice(t)),this.cache=new Map,this._size=0),this.maxSize=A}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[Symbol.iterator](){for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}}}*entriesDescending(){let A=[...this.cache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}A=[...this.oldCache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;if(!this.cache.has(i)){!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}}}*entriesAscending(){for(const[A,e]of this._entriesAscending())yield[A,e.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const e of this.oldCache.keys())this.cache.has(e)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,e=this){for(const[t,i]of this.entriesAscending())A.call(e,i,t,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class he extends Error{constructor(A){super(A),Error.captureStackTrace&&Error.captureStackTrace(this,he),this.name="AbortError"}}class Ie extends Error{constructor(A,e){super(e),this.errors=A,this.message=e,this.name="AggregateError"}}const Be=Ie;class ce{constructor(A,e,t=null){this.offset=A,this.length=e,this.data=t}get top(){return this.offset+this.length}}class Ce{constructor(A,e,t){this.offset=A,this.length=e,this.blockIds=t}}class fe extends ge{constructor(A,{blockSize:e=65536,cacheSize:t=100}={}){super(),this.source=A,this.blockSize=e,this.blockCache=new le({maxSize:t,onEviction:(A,e)=>{this.evictedBlocks.set(A,e)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(A,e){const t=[],i=[],r=[];this.evictedBlocks.clear();for(const{offset:e,length:a}of A){let A=e+a;const{fileSize:n}=this;null!==n&&(A=Math.min(A,n));for(let a=Math.floor(e/this.blockSize)*this.blockSize;a<A;a+=this.blockSize){const A=Math.floor(a/this.blockSize);this.blockCache.has(A)||this.blockRequests.has(A)||(this.blockIdsToFetch.add(A),i.push(A)),this.blockRequests.has(A)&&t.push(this.blockRequests.get(A)),r.push(A)}}await async function(A){return new Promise((e=>setTimeout(e,A)))}(),this.fetchBlocks(e);const a=[];for(const A of i)this.blockRequests.has(A)&&a.push(this.blockRequests.get(A));await Promise.allSettled(t),await Promise.allSettled(a);const n=[],s=r.filter((A=>this.abortedBlockIds.has(A)||!this.blockCache.has(A)));if(s.forEach((A=>this.blockIdsToFetch.add(A))),s.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(const A of s){const e=this.blockRequests.get(A);if(!e)throw new Error(`Block ${A} is not in the block requests`);n.push(e)}await Promise.allSettled(n)}if(e&&e.aborted)throw new he("Request was aborted");const o=r.map((A=>this.blockCache.get(A)||this.evictedBlocks.get(A))),g=o.filter((A=>!A));if(g.length)throw new Be(g,"Request failed");const l=new Map(function(A,e){const t=Array.isArray(A)?A:Array.from(A),i=Array.isArray(e)?e:Array.from(e);return t.map(((A,e)=>[A,i[e]]))}(r,o));return this.readSliceData(A,l)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const e=this.groupBlocks(this.blockIdsToFetch),t=this.source.fetch(e,A);for(let i=0;i<e.length;++i){const r=e[i];for(const e of r.blockIds)this.blockRequests.set(e,(async()=>{try{const A=(await t)[i],r=e*this.blockSize,a=r-A.offset,n=Math.min(a+this.blockSize,A.data.byteLength),s=A.data.slice(a,n),o=new ce(r,s.byteLength,s,e);this.blockCache.set(e,o),this.abortedBlockIds.delete(e)}catch(t){if("AbortError"!==t.name)throw t;t.signal=A,this.blockCache.delete(e),this.abortedBlockIds.add(e)}finally{this.blockRequests.delete(e)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const e=Array.from(A).sort(((A,e)=>A-e));if(0===e.length)return[];let t=[],i=null;const r=[];for(const A of e)null===i||i+1===A?(t.push(A),i=A):(r.push(new Ce(t[0]*this.blockSize,t.length*this.blockSize,t)),t=[A],i=A);return r.push(new Ce(t[0]*this.blockSize,t.length*this.blockSize,t)),r}readSliceData(A,e){return A.map((A=>{let t=A.offset+A.length;null!==this.fileSize&&(t=Math.min(this.fileSize,t));const i=Math.floor(A.offset/this.blockSize),r=Math.floor(t/this.blockSize),a=new ArrayBuffer(A.length),n=new Uint8Array(a);for(let a=i;a<=r;++a){const i=e.get(a),r=i.offset-A.offset;let s,o=0,g=0;r<0?o=-r:r>0&&(g=r),s=i.top-t<0?i.length-o:t-i.offset-o;const l=new Uint8Array(i.data,o,s);n.set(l,g)}return a}))}}class Ee{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(A){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class Qe{constructor(A){this.url=A}async request({headers:A,signal:e}={}){throw new Error("request is not implemented")}}class de extends Ee{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class ue extends Qe{constructor(A,e){super(A),this.credentials=e}async request({headers:A,signal:e}={}){const t=await fetch(this.url,{headers:A,credentials:this.credentials,signal:e});return new de(t)}}class we extends Ee{constructor(A,e){super(),this.xhr=A,this.data=e}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)}async getData(){return this.data}}class pe extends Qe{constructRequest(A,e){return new Promise(((t,i)=>{const r=new XMLHttpRequest;r.open("GET",this.url),r.responseType="arraybuffer";for(const[e,t]of Object.entries(A))r.setRequestHeader(e,t);r.onload=()=>{const A=r.response;t(new we(r,A))},r.onerror=i,r.onabort=()=>i(new he("Request aborted")),r.send(),e&&(e.aborted&&r.abort(),e.addEventListener("abort",(()=>r.abort())))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}var me={};class ye extends Ee{constructor(A,e){super(),this.response=A,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(A){return this.response.headers[A]}async getData(){return await this.dataPromise}}class De extends Qe{constructor(A){super(A),this.parsedUrl=me.parse(this.url),this.httpApi=(this.parsedUrl.protocol,me)}constructRequest(A,e){return new Promise(((t,i)=>{const r=this.httpApi.get({...this.parsedUrl,headers:A},(A=>{const e=new Promise((e=>{const t=[];A.on("data",(A=>{t.push(A)})),A.on("end",(()=>{const A=Buffer.concat(t).buffer;e(A)})),A.on("error",i)}));t(new ye(A,e))}));r.on("error",i),e&&(e.aborted&&r.destroy(new he("Request aborted")),e.addEventListener("abort",(()=>r.destroy(new he("Request aborted")))))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}class ke extends ge{constructor(A,e,t,i){super(),this.client=A,this.headers=e,this.maxRanges=t,this.allowFullFile=i,this._fileSize=null}async fetch(A,e){return this.maxRanges>=A.length?this.fetchSlices(A,e):(this.maxRanges>0&&A.length,Promise.all(A.map((A=>this.fetchSlice(A,e)))))}async fetchSlices(A,e){const t=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map((({offset:A,length:e})=>`${A}-${A+e}`)).join(",")}`},signal:e});if(t.ok){if(206===t.status){const{type:i,params:r}=function(A){const[e,...t]=A.split(";").map((A=>A.trim()));return{type:e,params:ne(t.map((A=>A.split("="))))}}(t.getHeader("content-type"));if("multipart/byteranges"===i){const A=function(A,e){let t=null;const i=new TextDecoder("ascii"),r=[],a=`--${e}`,n=`${a}--`;for(let e=0;e<10;++e)i.decode(new Uint8Array(A,e,a.length))===a&&(t=e);if(null===t)throw new Error("Could not find initial boundary");for(;t<A.byteLength;){const e=i.decode(new Uint8Array(A,t,Math.min(a.length+1024,A.byteLength-t)));if(0===e.length||e.startsWith(n))break;if(!e.startsWith(a))throw new Error("Part does not start with boundary");const s=e.substr(a.length+2);if(0===s.length)break;const o=s.indexOf(ae),g=se(s.substr(0,o)),{start:l,end:h,total:I}=oe(g["content-range"]),B=t+a.length+o+ae.length,c=parseInt(h,10)+1-parseInt(l,10);r.push({headers:g,data:A.slice(B,B+c),offset:l,length:c,fileSize:I}),t=B+c+4}return r}(await t.getData(),r.boundary);return this._fileSize=A[0].fileSize||null,A}const a=await t.getData(),{start:n,end:s,total:o}=oe(t.getHeader("content-range"));this._fileSize=o||null;const g=[{data:a,offset:n,length:s-n}];if(A.length>1){const t=await Promise.all(A.slice(1).map((A=>this.fetchSlice(A,e))));return g.concat(t)}return g}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await t.getData();return this._fileSize=A.byteLength,[{data:A,offset:0,length:A.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(A,e){const{offset:t,length:i}=A,r=await this.client.request({headers:{...this.headers,Range:`bytes=${t}-${t+i}`},signal:e});if(r.ok){if(206===r.status){const A=await r.getData(),{total:e}=oe(r.getHeader("content-range"));return this._fileSize=e||null,{data:A,offset:t,length:i}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await r.getData();return this._fileSize=A.byteLength,{data:A,offset:0,length:A.byteLength}}}throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function be(A,{blockSize:e,cacheSize:t}){return null===e?A:new fe(A,{blockSize:e,cacheSize:t})}function _e(A,{forceXHR:e=!1,...t}={}){return"function"!=typeof fetch||e?"undefined"!=typeof XMLHttpRequest?function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new pe(A);return be(new ke(a,e,t,i),r)}(A,t):function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new De(A);return be(new ke(a,e,t,i),r)}(A,t):function(A,{headers:e={},credentials:t,maxRanges:i=0,allowFullFile:r=!1,...a}={}){const n=new ue(A,t);return be(new ke(n,e,i,r),a)}(A,t)}class Se extends ge{constructor(A){super(),this.arrayBuffer=A}fetchSlice(A,e){if(e&&e.aborted)throw new he("Request aborted");return this.arrayBuffer.slice(A.offset,A.offset+A.length)}}function xe(A,e){let t=A.length-e,i=0;do{for(let t=e;t>0;t--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function Fe(A,e,t){let i=0,r=A.length;const a=r/t;for(;r>e;){for(let t=e;t>0;--t)A[i+e]+=A[i],++i;r-=e}const n=A.slice();for(let e=0;e<a;++e)for(let i=0;i<t;++i)A[t*e+i]=n[(t-i-1)*a+e]}class Ge{async decode(A,e){const t=await this.decodeBlock(e),i=A.Predictor||1;if(1!==i){const e=!A.StripOffsets;return function(A,e,t,i,r,a){if(!e||1===e)return A;for(let A=0;A<r.length;++A){if(r[A]%8!=0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(r[A]!==r[0])throw new Error("When decoding with predictor, all samples must have the same size.")}const n=r[0]/8,s=2===a?1:r.length;for(let a=0;a<i&&!(a*s*t*n>=A.byteLength);++a){let i;if(2===e){switch(r[0]){case 8:i=new Uint8Array(A,a*s*t*n,s*t*n);break;case 16:i=new Uint16Array(A,a*s*t*n,s*t*n/2);break;case 32:i=new Uint32Array(A,a*s*t*n,s*t*n/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}xe(i,s)}else 3===e&&(i=new Uint8Array(A,a*s*t*n,s*t*n),Fe(i,s,n))}return A}(t,i,e?A.TileWidth:A.ImageWidth,e?A.TileLength:A.RowsPerStrip||A.ImageLength,A.BitsPerSample,A.PlanarConfiguration)}return t}}function Ue(A){switch(A){case RA.BYTE:case RA.ASCII:case RA.SBYTE:case RA.UNDEFINED:return 1;case RA.SHORT:case RA.SSHORT:return 2;case RA.LONG:case RA.SLONG:case RA.FLOAT:case RA.IFD:return 4;case RA.RATIONAL:case RA.SRATIONAL:case RA.DOUBLE:case RA.LONG8:case RA.SLONG8:case RA.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${A}`)}}function Re(A,e,t,i){let r=null,a=null;const n=Ue(e);switch(e){case RA.BYTE:case RA.ASCII:case RA.UNDEFINED:r=new Uint8Array(t),a=A.readUint8;break;case RA.SBYTE:r=new Int8Array(t),a=A.readInt8;break;case RA.SHORT:r=new Uint16Array(t),a=A.readUint16;break;case RA.SSHORT:r=new Int16Array(t),a=A.readInt16;break;case RA.LONG:case RA.IFD:r=new Uint32Array(t),a=A.readUint32;break;case RA.SLONG:r=new Int32Array(t),a=A.readInt32;break;case RA.LONG8:case RA.IFD8:r=new Array(t),a=A.readUint64;break;case RA.SLONG8:r=new Array(t),a=A.readInt64;break;case RA.RATIONAL:r=new Uint32Array(2*t),a=A.readUint32;break;case RA.SRATIONAL:r=new Int32Array(2*t),a=A.readInt32;break;case RA.FLOAT:r=new Float32Array(t),a=A.readFloat32;break;case RA.DOUBLE:r=new Float64Array(t),a=A.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e!==RA.RATIONAL&&e!==RA.SRATIONAL)for(let e=0;e<t;++e)r[e]=a.call(A,i+e*n);else for(let e=0;e<t;e+=2)r[e]=a.call(A,i+e*n),r[e+1]=a.call(A,i+(e*n+4));return e===RA.ASCII?new TextDecoder("utf-8").decode(r):r}class Me{constructor(A,e,t){this.fileDirectory=A,this.geoKeyDirectory=e,this.nextIFDByteOffset=t}}class Le extends Error{constructor(A){super(`No image at index ${A}`),this.index=A}}class ve{async readRasters(A={}){const{window:e,width:t,height:i}=A;let{resX:r,resY:a,bbox:n}=A;const s=await this.getImage();let o=s;const g=await this.getImageCount(),l=s.getBoundingBox();if(e&&n)throw new Error('Both "bbox" and "window" passed.');if(t||i){if(e){const[A,t]=s.getOrigin(),[i,r]=s.getResolution();n=[A+e[0]*i,t+e[1]*r,A+e[2]*i,t+e[3]*r]}const A=n||l;if(t){if(r)throw new Error("Both width and resX passed");r=(A[2]-A[0])/t}if(i){if(a)throw new Error("Both width and resY passed");a=(A[3]-A[1])/i}}if(r||a){const A=[];for(let e=0;e<g;++e){const t=await this.getImage(e),{SubfileType:i,NewSubfileType:r}=t.fileDirectory;(0===e||2===i||1&r)&&A.push(t)}A.sort(((A,e)=>A.getWidth()-e.getWidth()));for(let e=0;e<A.length;++e){const t=A[e],i=(l[2]-l[0])/t.getWidth(),n=(l[3]-l[1])/t.getHeight();if(o=t,r&&r>i||a&&a>n)break}}let h=e;if(n){const[A,e]=s.getOrigin(),[t,i]=o.getResolution(s);h=[Math.round((n[0]-A)/t),Math.round((n[1]-e)/i),Math.round((n[2]-A)/t),Math.round((n[3]-e)/i)],h=[Math.min(h[0],h[2]),Math.min(h[1],h[3]),Math.max(h[0],h[2]),Math.max(h[1],h[3])]}return o.readRasters({...A,window:h})}}class Ne extends ve{constructor(A,e,t,i,r={}){super(),this.source=A,this.littleEndian=e,this.bigTiff=t,this.firstIFDOffset=i,this.cache=r.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,e){const t=this.bigTiff?4048:1024;return new re((await this.source.fetch([{offset:A,length:void 0!==e?e:t}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const e=this.bigTiff?20:12,t=this.bigTiff?8:2;let i=await this.getSlice(A);const r=this.bigTiff?i.readUint64(A):i.readUint16(A),a=r*e+(this.bigTiff?16:6);i.covers(A,a)||(i=await this.getSlice(A,a));const n={};let s=A+(this.bigTiff?8:2);for(let A=0;A<r;s+=e,++A){const A=i.readUint16(s),e=i.readUint16(s+2),t=this.bigTiff?i.readUint64(s+4):i.readUint32(s+4);let r,a;const o=Ue(e),g=s+(this.bigTiff?12:8);if(o*t<=(this.bigTiff?8:4))r=Re(i,e,t,g);else{const A=i.readOffset(g),a=Ue(e)*t;if(i.covers(A,a))r=Re(i,e,t,A);else{r=Re(await this.getSlice(A,a),e,t,A)}}a=1===t&&-1===GA.indexOf(A)&&e!==RA.RATIONAL&&e!==RA.SRATIONAL?r[0]:r,n[xA[A]]=a}const o=function(A){const e=A.GeoKeyDirectory;if(!e)return null;const t={};for(let i=4;i<=4*e[3];i+=4){const r=KA[e[i]],a=e[i+1]?xA[e[i+1]]:null,n=e[i+2],s=e[i+3];let o=null;if(a){if(o=A[a],null==o)throw new Error(`Could not get value of geoKey '${r}'.`);"string"==typeof o?o=o.substring(s,s+n-1):o.subarray&&(o=o.subarray(s,s+n),1===n&&(o=o[0]))}else o=s;t[r]=o}return t}(n),g=i.readOffset(A+t+e*r);return new Me(n,o,g)}async requestIFD(A){if(this.ifdRequests[A])return this.ifdRequests[A];if(0===A)return this.ifdRequests[A]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[A];if(!this.ifdRequests[A-1])try{this.ifdRequests[A-1]=this.requestIFD(A-1)}catch(e){if(e instanceof Le)throw new Le(A);throw e}return this.ifdRequests[A]=(async()=>{const e=await this.ifdRequests[A-1];if(0===e.nextIFDByteOffset)throw new Le(A);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){const e=await this.requestIFD(A);return new te(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,e=!0;for(;e;)try{await this.requestIFD(A),++A}catch(A){if(!(A instanceof Le))throw A;e=!1}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e="GDAL_STRUCTURAL_METADATA_SIZE=",t=e.length+100;let i=await this.getSlice(A,t);if(e===Re(i,RA.ASCII,e.length,A)){const e=Re(i,RA.ASCII,t,A).split("\n")[0],r=Number(e.split("=")[1].split(" ")[0])+e.length;r>t&&(i=await this.getSlice(A,r));const a=Re(i,RA.ASCII,r,A);this.ghostValues={},a.split("\n").filter((A=>A.length>0)).map((A=>A.split("="))).forEach((([A,e])=>{this.ghostValues[A]=e}))}return this.ghostValues}static async fromSource(A,e,t){const i=(await A.fetch([{offset:0,length:1024}],t))[0],r=new ie(i),a=r.getUint16(0,0);let n;if(18761===a)n=!0;else{if(19789!==a)throw new TypeError("Invalid byte order value.");n=!1}const s=r.getUint16(2,n);let o;if(42===s)o=!1;else{if(43!==s)throw new TypeError("Invalid magic number.");o=!0;if(8!==r.getUint16(4,n))throw new Error("Unsupported offset byte-size.")}const g=o?r.getUint64(8,n):r.getUint32(4,n);return new Ne(A,n,o,g,e)}close(){return"function"==typeof this.source.close&&this.source.close()}}async function Te(A,e){return Ne.fromSource(function(A){return new Se(A)}(A),e)}const qe=Math.PI,Oe=qe/4,Je=180/qe;class He{constructor(A=257){this.gridSize=A;const e=A-1;if(e&e-1)throw new Error(`Expected grid size to be 2^n+1, got ${A}.`);this.numTriangles=e*e*2-2,this.numParentTriangles=this.numTriangles-e*e,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(4*this.numTriangles);for(let A=0;A<this.numTriangles;A++){let t=A+2,i=0,r=0,a=0,n=0,s=0,o=0;for(1&t?a=n=s=e:i=r=o=e;(t>>=1)>1;){const A=i+a>>1,e=r+n>>1;1&t?(a=i,n=r,i=s,r=o):(i=a,r=n,a=s,n=o),s=A,o=e}const g=4*A;this.coords[g+0]=i,this.coords[g+1]=r,this.coords[g+2]=a,this.coords[g+3]=n}}createTile(A){return new Ye(A,this)}}class Ye{constructor(A,e){const t=e.gridSize;if(A.length!==t*t)throw new Error(`Expected terrain data of length ${t*t} (${t} x ${t}), got ${A.length}.`);this.terrain=A,this.martini=e,this.errors=new Float32Array(A.length),this.update()}update(){const{numTriangles:A,numParentTriangles:e,coords:t,gridSize:i}=this.martini,{terrain:r,errors:a}=this;for(let n=A-1;n>=0;n--){const A=4*n,s=t[A+0],o=t[A+1],g=t[A+2],l=t[A+3],h=s+g>>1,I=o+l>>1,B=h+I-o,c=I+s-h,C=(r[o*i+s]+r[l*i+g])/2,f=I*i+h,E=Math.abs(C-r[f]);if(a[f]=Math.max(a[f],E),n<e){const A=(o+c>>1)*i+(s+B>>1),e=(l+c>>1)*i+(g+B>>1);a[f]=Math.max(a[f],a[A],a[e])}}}getMesh(A=0){const{gridSize:e,indices:t}=this.martini,{errors:i}=this;let r=0,a=0;const n=e-1;function s(n,o,g,l,h,I){const B=n+g>>1,c=o+l>>1;Math.abs(n-h)+Math.abs(o-I)>1&&i[c*e+B]>A?(s(h,I,n,o,B,c),s(g,l,h,I,B,c)):(t[o*e+n]=t[o*e+n]||++r,t[l*e+g]=t[l*e+g]||++r,t[I*e+h]=t[I*e+h]||++r,a++)}t.fill(0),s(0,0,n,n,n,0),s(n,n,0,0,0,n);const o=new Uint16Array(2*r),g=new Uint32Array(3*a);let l=0;function h(r,a,n,s,I,B){const c=r+n>>1,C=a+s>>1;if(Math.abs(r-I)+Math.abs(a-B)>1&&i[C*e+c]>A)h(I,B,r,a,c,C),h(n,s,I,B,c,C);else{const A=t[a*e+r]-1,i=t[s*e+n]-1,h=t[B*e+I]-1;o[2*A]=r,o[2*A+1]=a,o[2*i]=n,o[2*i+1]=s,o[2*h]=I,o[2*h+1]=B,g[l++]=A,g[l++]=i,g[l++]=h}}return h(0,0,n,n,n,0),h(n,n,0,0,0,n),{vertices:o,triangles:g}}}function ze(A,e,t,i){const r=i?function(A,e){A.westIndices.sort(((A,t)=>e[3*A+1]-e[3*t+1])),A.eastIndices.sort(((A,t)=>e[3*t+1]-e[3*A+1])),A.southIndices.sort(((A,t)=>e[3*t]-e[3*A])),A.northIndices.sort(((A,t)=>e[3*A]-e[3*t]));const t=[];for(const e in A){const i=A[e];for(let A=0;A<i.length-1;A++)t.push([i[A],i[A+1]])}return t}(i,A.POSITION.value):function(A){var e,t;const i=[];for(let e=0;e<A.length;e+=3)i.push([A[e],A[e+1]]),i.push([A[e+1],A[e+2]]),i.push([A[e+2],A[e]]);i.sort(((A,e)=>Math.min(...A)-Math.min(...e)||Math.max(...A)-Math.max(...e)));const r=[];let a=0;for(;a<i.length;)i[a][0]===(null===(e=i[a+1])||void 0===e?void 0:e[1])&&i[a][1]===(null===(t=i[a+1])||void 0===t?void 0:t[0])?a+=2:(r.push(i[a]),a++);return r}(e),a=new A.POSITION.value.constructor(6*r.length),n=new A.TEXCOORD_0.value.constructor(4*r.length),s=new e.constructor(6*r.length);for(let e=0;e<r.length;e++){Pe({edge:r[e],edgeIndex:e,attributes:A,skirtHeight:t,newPosition:a,newTexcoord0:n,newTriangles:s})}A.POSITION.value=o(A.POSITION.value,a),A.TEXCOORD_0.value=o(A.TEXCOORD_0.value,n);return{attributes:A,triangles:e instanceof Array?e.concat(s):o(e,s)}}function Pe({edge:A,edgeIndex:e,attributes:t,skirtHeight:i,newPosition:r,newTexcoord0:a,newTriangles:n}){const s=t.POSITION.value.length,o=2*e,g=2*e+1;r.set(t.POSITION.value.subarray(3*A[0],3*A[0]+3),3*o),r[3*o+2]=r[3*o+2]-i,r.set(t.POSITION.value.subarray(3*A[1],3*A[1]+3),3*g),r[3*g+2]=r[3*g+2]-i,a.set(t.TEXCOORD_0.value.subarray(2*A[0],2*A[0]+2),2*o),a.set(t.TEXCOORD_0.value.subarray(2*A[1],2*A[1]+2),2*g);const l=2*e*3;n[l]=A[0],n[l+1]=s/3+g,n[l+2]=A[1],n[l+3]=s/3+g,n[l+4]=A[0],n[l+5]=s/3+o}const Ke={type:"image",format:"uint8",useHeatMap:!0,useColorsBasedOnValues:!1,useAutoRange:!1,useDataForOpacity:!1,useSingleColor:!1,useColorClasses:!1,blurredTexture:!0,clipLow:null,clipHigh:null,multiplier:1,color:[255,0,255,255],colorScale:n.brewer.YlOrRd,colorScaleValueRange:[0,255],colorsBasedOnValues:null,colorClasses:null,alpha:100,useChannel:null,useChannelIndex:null,noDataValue:void 0,numOfChannels:void 0,nullColor:[0,0,0,0],unidentifiedColor:[0,0,0,0],clippedColor:[0,0,0,0],terrainColor:[133,133,133,255],terrainSkirtHeight:100,terrainMinValue:0,planarConfig:void 0};class Ve{constructor(){this.scale=(A,e,t,i,r)=>(A-e)*(r-i)/(t-e)+i}setUrl(A){return l(this,void 0,void 0,(function*(){const e=yield fetch(A),t=yield e.arrayBuffer(),i=yield Te(t),r=yield i.getImage(0);this.data=r}))}getMap(A,e,t){return l(this,void 0,void 0,(function*(){const i=Object.assign(Object.assign({},Ke),e);switch(i.type){case"image":return this.getBitmap(A,i);case"terrain":return this.getHeightmap(A,i,t);default:return null}}))}getHeightmap(A,e,t){var i;return l(this,void 0,void 0,(function*(){let r,a,n=[];"string"==typeof A?(yield this.setUrl(A),n=yield this.data.readRasters(),r=this.data.getWidth(),a=this.data.getHeight()):(n=A.rasters,r=A.width,a=A.height);const o=Object.assign({},e);let g=n[0];null!==(i=o.useChannelIndex)&&void 0!==i||(o.useChannelIndex=null==o.useChannel?null:o.useChannel-1),null!=e.useChannelIndex&&n[o.useChannelIndex]&&(g=n[o.useChannelIndex]);const l=new Float32Array((r+1)*(a+1)),h=g.length/(r*a);let I=null===e.useChannelIndex?0:e.useChannelIndex;for(let A=0,t=0;t<a;t++)for(let i=0;i<r;i++,A++){const i=e.noDataValue&&g[I]===e.noDataValue?e.terrainMinValue:g[I]*e.multiplier;l[A+t]=i,I+=h}for(let A=(r+1)*r,e=0;e<r;e++,A++)l[A]=l[A-r-1];for(let A=a,e=0;e<a+1;e++,A+=a+1)l[A]=l[A-1];const{terrainSkirtHeight:B}=e;let c;c=Ze(t,r,l);const{vertices:C}=c;let{triangles:f}=c,E=function(A,e,t,i,r){const a=t+1,n=A.length/2,s=new Float32Array(3*n),o=new Float32Array(2*n),[g,l,h,I]=r||[0,0,t,i],B=(h-g)/t,c=(I-l)/i;for(let r=0;r<n;r++){const n=A[2*r],l=A[2*r+1],h=l*a+n;s[3*r+0]=n*B+g,s[3*r+1]=-l*c+I,s[3*r+2]=e[h],o[2*r+0]=n/t,o[2*r+1]=l/i}return{POSITION:{value:s,size:3},TEXCOORD_0:{value:o,size:2}}}(C,l,r,a,A.bounds);const Q=s(E);if(B){const{attributes:A,triangles:e}=ze(E,f,B);E=A,f=e}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:Q},mode:4,indices:{value:Uint32Array.from(f),size:1},attributes:E}}))}getBitmap(A,e){var t;return l(this,void 0,void 0,(function*(){const i=Object.assign({},e);let r,a,n,s=[];"string"==typeof A?(yield this.setUrl(A),s=yield this.data.readRasters(),r=s.length,a=this.data.getWidth(),n=this.data.getHeight()):(s=A.rasters,r=s.length,a=A.width,n=A.height);const o=document.createElement("canvas");o.width=a,o.height=n;const g=o.getContext("2d"),l=g.createImageData(a,n);let h,I,B,c;const C=a*n*4;if(i.unidentifiedColor=this.getColorFromChromaType(i.unidentifiedColor),i.nullColor=this.getColorFromChromaType(i.nullColor),i.clippedColor=this.getColorFromChromaType(i.clippedColor),i.color=this.getColorFromChromaType(i.color),null!==(t=i.useChannelIndex)&&void 0!==t||(i.useChannelIndex=null===e.useChannel?null:e.useChannel-1),null==i.useChannelIndex){if(1===r){if(s[0].length/(a*n)==1){const A=s[0];i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C).forEach(((A,e)=>{l.data[e]=A}))}if(s[0].length/(a*n)==3){let A=0;for(let e=0;e<C;e+=4){const t=[s[0][A],s[0][A+1],s[0][A+2]],r=this.hasPixelsNoData(t,i.noDataValue)?i.nullColor:[...t,Math.floor(2.55*i.alpha)];[l.data[e],l.data[e+1],l.data[e+2],l.data[e+3]]=r,A+=3}}s[0].length/(a*n)==4&&s[0].forEach(((A,e)=>{l.data[e]=A}))}if(3===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}if(4===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}}else if(i.useChannelIndex<i.numOfChannels&&i.useChannelIndex>=0){let A=s[0];s[i.useChannelIndex]&&(A=s[i.useChannelIndex]),i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C,i.numOfChannels).forEach(((A,e)=>{l.data[e]=A}))}else{console.log(`Defined channel(${e.useChannel}) or channel index(${e.useChannelIndex}) does not exist, choose a different channel or set the useChannel property to null if you want to visualize RGB(A) imagery`);this.getDefaultColor(C,i.nullColor).forEach(((A,e)=>{l.data[e]=A}))}g.putImageData(l,0,0);return o.toDataURL("image/png")}))}getMinMax(A,e){let t=e.maxValue?e.maxValue:Number.MIN_VALUE,i=e.minValue?e.minValue:Number.MAX_VALUE;for(let r=0;r<A.length;r+=1)void 0!==e.noDataValue&&A[r]===e.noDataValue||(A[r]>t&&(t=A[r]),A[r]<i&&(i=A[r]));return[i,t]}getColorValue(A,e,t,i=1){const r=n.scale(e.colorScale).domain(e.colorScaleValueRange);let a=null===e.useChannelIndex?0:e.useChannelIndex;const s=new Array(t),o=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([A])=>A)):void 0,g=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([,A])=>[...n(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,l=e.useColorClasses?e.colorClasses.map((([A])=>[...n(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,h=e.useColorClasses?e.colorClasses.map((([,A])=>A)):void 0,I=e.useColorClasses?e.colorClasses.map((([,,A],t)=>void 0!==A?A:t===e.colorClasses.length-1?[!0,!0]:[!0,!1])):void 0;for(let n=0;n<t;n+=4){let t=e.nullColor;if(!Number.isNaN(A[a])&&(void 0===e.noDataValue||A[a]!==e.noDataValue))if(null!=e.clipLow&&A[a]<=e.clipLow||null!=e.clipHigh&&A[a]>=e.clipHigh)t=e.clippedColor;else{if(e.useHeatMap&&(t=[...r(A[a]).rgb(),Math.floor(2.55*e.alpha)]),e.useColorsBasedOnValues){const i=o.indexOf(A[a]);t=i>-1?g[i]:e.unidentifiedColor}if(e.useColorClasses){const i=this.findClassIndex(A[a],h,I);t=i>-1?l[i]:e.unidentifiedColor}e.useSingleColor&&(t=e.color),e.useDataForOpacity&&(t[3]=this.scale(A[a],e.colorScaleValueRange[0],e.colorScaleValueRange.slice(-1)[0],0,255))}[s[n],s[n+1],s[n+2],s[n+3]]=t,a+=i}return s}findClassIndex(A,e,t){for(let i=0;i<e.length;i+=1){const[r,a]=e[i],[n,s]=t[i];if((n?A>=r:A>r)&&(s?A<=a:A<a))return i}return-1}getDefaultColor(A,e){const t=new Array(A);for(let i=0;i<A;i+=4)[t[i],t[i+1],t[i+2],t[i+3]]=e;return t}getColorFromChromaType(A){return Array.isArray(A)&&4===A.length?A:[...n(A).rgb(),255]}hasPixelsNoData(A,e){return void 0!==e&&A.every((A=>A===e))}}function Ze(A,e,t){const i=new He(e+1).createTile(t),{vertices:r,triangles:a}=i.getMesh(A);return{vertices:r,triangles:a}}const Xe=2*Math.PI*6378137,We=Xe/2,je=[-20037508.342789244,20037508.342789244],$e={blurredTexture:!0};class At{constructor(A){this.cogZoomLookup=[0],this.cogResolutionLookup=[0],this.cogOrigin=[0,0],this.zoomRange=[0,0],this.loaded=!1,this.geo=new Ve,this.options=Object.assign(Object.assign({},$e),A)}initializeCog(A){var e,t,i,r;return l(this,void 0,void 0,(function*(){this.cog=yield async function(A,e={},t){return Ne.fromSource(_e(A,e),t)}(A);const a=yield this.cog.getImage();this.cogOrigin=a.getOrigin(),null!==(e=(i=this.options).noDataValue)&&void 0!==e||(i.noDataValue=this.getNoDataValue(a)),null!==(t=(r=this.options).format)&&void 0!==t||(r.format=this.getDataTypeFromTags(a)),this.options.numOfChannels=this.getNumberOfChannels(a),this.options.planarConfig=this.getPlanarConfiguration(a),[this.cogZoomLookup,this.cogResolutionLookup]=yield this.buildCogZoomResolutionLookup(this.cog),this.tileSize=a.getTileWidth(),this.zoomRange=this.calculateZoomRange(a,yield this.cog.getImageCount()),this.bounds=this.calculateBoundsAsLatLon(a)}))}getZoomRange(){return this.zoomRange}calculateZoomRange(A,e){const t=this.getZoomLevelFromResolution(A.getTileWidth(),A.getResolution()[0]);return[t-(e-1),t]}calculateBoundsAsLatLon(A){const e=A.getBoundingBox(),t=Math.min(e[0],e[2]),i=Math.max(e[0],e[2]),r=Math.min(e[1],e[3]),a=Math.max(e[1],e[3]),n=this.getLatLon([t,r]),s=this.getLatLon([i,a]);return[n[0],n[1],s[0],s[1]]}getZoomLevelFromResolution(A,e){return Math.round(Math.log2(Xe/(e*A)))}getBoundsAsLatLon(){return this.bounds}getLatLon(A){const e=We+A[0],t=-(We+(A[1]-Xe)),i=function(A){const[e,t]=A,i=e/512*(2*qe)-qe,r=2*(Math.atan(Math.exp(t/512*(2*qe)-qe))-Oe);return[i*Je,r*Je]}([e*(512/Xe),t*(512/Xe)]);return[i[0],-i[1]]}buildCogZoomResolutionLookup(A){return l(this,void 0,void 0,(function*(){const e=yield A.getImageCount(),t=yield A.getImage(0),i=t.getResolution()[0],r=t.getWidth(),a=[],n=[];for(let t=0;t<e;t++){const e=i*(r/(yield A.getImage(t)).getWidth()),s=Math.round(Math.log2(156543.03125/e));a[t]=s,n[t]=e}return[a,n]}))}getImageIndexForZoomLevel(A){const e=this.cogZoomLookup[this.cogZoomLookup.length-1];if(A>this.cogZoomLookup[0])return 0;if(A<e)return this.cogZoomLookup.length-1;const t=this.cogZoomLookup.indexOf(A);return-1===t&&console.log("getImageIndexForZoomLevel: error in retrieving image by zoom index"),t}getTileFromImage(A,e,t){return l(this,void 0,void 0,(function*(){const i=this.getImageIndexForZoomLevel(t),r=yield this.cog.getImage(i),a=r.getTileWidth(),n=r.getTileHeight();if(!a||!n)throw new Error("The image is not tiled.");const s=this.cogOrigin[0]-je[0],o=je[1]-this.cogOrigin[1],g=Xe/a/Math.pow(2,t);this.cogResolutionLookup[i];const l=Math.floor(s/g),h=Math.floor(o/g),I=[A*a-l,e*n-h,(A+1)*a-l,(e+1)*n-h],[B,c,C,f]=I,E=r.getHeight(),Q=r.getWidth(),d=Math.max(0,B),u=Math.max(0,c),w=C,p=f,m=Math.max(0,0-B),y=Math.max(0,0-c),D=[d,u,w,p];if(m>0||y>0){const A=this.createTileBuffer(this.options.format,a);A.fill(this.options.noDataValue);const e=Math.min(Q,w-d),t=Math.min(E,p-u),i=yield r.readRasters({window:D}),s=Array(i.length*i[0].length);s.fill(this.options.noDataValue);for(let r=0;r<i.length;r++){for(let s=0;s<t;s++)for(let t=0;t<e;t++){const e=y+s,o=m+t;e<a&&o<n?A[e*a+o]=i[r][s*i.width+t]:console.log("error in assigning data to tile buffer")}A.forEach(((A,e)=>{s[e*this.options.numOfChannels+r]=A}))}return[s]}return[yield r.readRasters({window:I,interleave:!0})]}))}getTile(A,e,t,i,r){return l(this,void 0,void 0,(function*(){const a=yield this.getTileFromImage(A,e,t);return this.geo.getMap({rasters:[a[0]],width:this.tileSize,height:this.tileSize,bounds:i},this.options,r)}))}getDataTypeFromTags(A){const e=A.getFileDirectory(),t=e.SampleFormat,i=e.BitsPerSample,r=t&&"number"==typeof t.length&&t.length>0?t[0]:t;let a;return a=1===r?"UInt":2===r?"Int":3===r?"Float":"Unknown",`${a}${i&&"number"==typeof i.length&&i.length>0?i[0]:i}`}getNoDataValue(A){const e=A.getGDALNoData();if(null==e)return void console.log("noDataValue is undefined or null,raster might be displayed incorrectly.");const t=String(e).replace(/\0/g,"").trim(),i=Number(t);return Number.isNaN(i)?void 0:i}getNumberOfChannels(A){return A.getSamplesPerPixel()}getPlanarConfiguration(A){const e=A.fileDirectory.PlanarConfiguration;if(1!==e&&2!==e)throw new Error("Invalid planar configuration.");return e}createTileBuffer(A,e){const t=e*e;switch(A){case"UInt8":return new Uint8Array(t);case"Int8":return new Int8Array(t);case"UInt16":return new Uint16Array(t);case"Int16":return new Int16Array(t);case"UInt32":return new Uint32Array(t);case"Int32":return new Int32Array(t);case"Float32":return new Float32Array(t);case"Float64":return new Float64Array(t);default:throw new Error(`Unsupported data type: ${A}`)}}}const et={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},tt=Object.assign(Object.assign({},i.defaultProps),{bounds:{type:"array",value:null,optional:!0,compare:!0},rasterData:et,blurredTexture:!0,opacity:1,clampToTerrain:!1,workerUrl:""});class it extends A{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return l(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({bitmapCogTiles:new At(this.props.cogBitmapOptions),initialized:!1}),yield this.init()}))}init(){return l(this,void 0,void 0,(function*(){yield this.state.bitmapCogTiles.initializeCog(this.props.rasterData);const A=this.state.bitmapCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:A,oldProps:t}){var i,r,a;const n=A.rasterData!==t.rasterData;if(n){const{rasterData:e}=A,t=e&&(Array.isArray(e)||e.includes("{x}")&&e.includes("{y}")||this.props.isTiled);this.setState({isTiled:t})}n||(A.bounds,t.bounds);this.state.isTiled,(null===(i=null==A?void 0:A.cogBitmapOptions)||void 0===i?void 0:i.useChannel)&&(null===(r=A.cogBitmapOptions)||void 0===r?void 0:r.useChannel)!==(null===(a=t.cogBitmapOptions)||void 0===a?void 0:a.useChannel)&&(this.state.bitmapCogTiles.options.useChannel=A.cogBitmapOptions.useChannel),A.workerUrl&&e.removed("workerUrl","loadOptions.terrain.workerUrl")()}getTiledBitmapData(A){return l(this,void 0,void 0,(function*(){return yield this.state.bitmapCogTiles.getTile(A.index.x,A.index.y,A.index.z)}))}renderSubLayers(A){const e=this.getSubLayerClass("image",r),{blurredTexture:t}=this.state.bitmapCogTiles.options,{opacity:i,clampToTerrain:n}=this.props,{data:s}=A;if(!s)return null;const{bbox:{west:o,south:g,east:l,north:h}}=A.tile;return new e(Object.assign(Object.assign({},A),{tileSize:this.state.bitmapCogTiles.tileSize}),Object.assign({data:null,image:s,_instanced:!1,bounds:[o,g,l,h],opacity:i,textureParameters:{minFilter:t?"linear":"nearest",magFilter:t?"linear":"nearest"},extensions:n?[new a]:[]},(null==n?void 0:n.terrainDrawMode)?{terrainDrawMode:n.terrainDrawMode}:{}))}renderLayers(){const{rasterData:A,blurredTexture:e,opacity:t,clampToTerrain:r,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h,cogBitmapOptions:I}=this.props;if(this.state.isTiled&&this.state.initialized){const{tileSize:A}=this.state.bitmapCogTiles;return new i(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledBitmapData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:[r,I]},extent:this.state.bitmapCogTiles.getBoundsAsLatLon(),tileSize:A,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h})}return null}}it.defaultProps=tt,it.layerName="CogBitmapLayer";const rt={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},at=[1],nt=Object.assign(Object.assign({},i.defaultProps),{elevationData:rt,texture:Object.assign(Object.assign({},rt),{optional:!0}),meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0});class st extends A{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return l(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({terrainCogTiles:new At(this.props.terrainOptions),initialized:!1}),yield this.init(this.terrainUrl)}))}init(A){return l(this,void 0,void 0,(function*(){yield this.state.terrainCogTiles.initializeCog(this.props.elevationData);const A=this.state.terrainCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:A,oldProps:t}){const i=A.elevationData!==t.elevationData;if(i){const{elevationData:e}=A,t=e&&(Array.isArray(e)||e.includes("{x}")&&e.includes("{y}"))||this.props.isTiled;this.setState({isTiled:t})}i||A.meshMaxError!==t.meshMaxError||A.elevationDecoder!==t.elevationDecoder||(A.bounds,t.bounds);this.state.isTiled,A.workerUrl&&e.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:A,bounds:e,elevationDecoder:t,meshMaxError:i,signal:r}){if(!A)return null;let a=this.getLoadOptions();a=Object.assign(Object.assign({},a),{_workerType:"test",terrain:Object.assign(Object.assign({skirtHeight:this.state.isTiled?2*i:0},null==a?void 0:a.terrain),{bounds:e,meshMaxError:i,elevationDecoder:t})});const{fetch:n}=this.props;return n(A,{propName:"elevationData",layer:this,loadOptions:a,signal:r,loaders:[]})}getTiledTerrainData(A){return l(this,void 0,void 0,(function*(){this.props;const{viewport:e}=this.context;let t=[0,0],i=[0,0];if(e.isGeospatial){const r=A.bbox;t=e.projectFlat([r.west,r.south]),i=e.projectFlat([r.east,r.north])}else{const e=A.bbox;t=[e.left,e.bottom],i=[e.right,e.top]}const r=[t[0],t[1],i[0],i[1]],a=yield this.state.terrainCogTiles.getTile(A.index.x,A.index.y,A.index.z,r,this.props.meshMaxError);return Promise.all([a])}))}renderSubLayers(A){const e=this.getSubLayerClass("mesh",g),{color:i,wireframe:r,material:a}=this.props,{data:n}=A;if(!n)return null;const[s]=n;return new e(Object.assign(Object.assign({},A),{tileSize:256}),{data:at,mesh:s,_instanced:!1,coordinateSystem:t.CARTESIAN,getPosition:A=>[0,0,0],getColor:i,wireframe:r,material:a})}onViewportLoad(A){if(!A)return;const{zRange:e}=this.state,t=A.map((A=>A.content)).filter((A=>A&&A[0])).map((A=>{var e,t;const i=null===(t=null===(e=A[0])||void 0===e?void 0:e.header)||void 0===t?void 0:t.boundingBox;return null==i?void 0:i.map((A=>A[2]))}));if(0===t.length)return;const i=Math.min(...t.map((A=>A[0]))),r=Math.max(...t.map((A=>A[1])));(!e||i<e[0]||r>e[1])&&this.setState({zRange:[Number.isFinite(i)?i:0,Number.isFinite(r)?r:0]})}renderLayers(){const{color:A,material:e,elevationData:t,texture:r,wireframe:a,meshMaxError:n,elevationDecoder:s,tileSize:o,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f}=this.props;if(this.state.isTiled&&this.state.initialized)return new i(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:(E=t,Array.isArray(E)?E.join(";"):E||""),meshMaxError:n,elevationDecoder:s}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:o,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f});var E}}st.defaultProps=nt,st.layerName="TerrainLayer";var ot={CogBitmapLayer:it,CogTerrainLayer:st,cogtiles:At,GeoImage:Ve};var gt=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return A}}});const lt=257;function ht(A,e){for(let t=e.length-1;t>=0;t--)A.push(e[t]);return A}function It(A){const e=new Uint16Array(4093),t=new Uint8Array(4093);for(let A=0;A<=257;A++)e[A]=4096,t[A]=A;let i=258,r=9,a=0;function n(){i=258,r=9}function s(A){const e=function(A,e,t){const i=e%8,r=Math.floor(e/8),a=8-i,n=e+t-8*(r+1);let s=8*(r+2)-(e+t);const o=8*(r+2)-e;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)"),lt;let g=A[r]&2**(8-i)-1;g<<=t-a;let l=g;if(r+1<A.length){let e=A[r+1]>>>s;e<<=Math.max(0,t-o),l+=e}if(n>8&&r+2<A.length){const i=8*(r+3)-(e+t);l+=A[r+2]>>>i}return l}(A,a,r);return a+=r,e}function o(A,r){return t[i]=r,e[i]=A,i++,i-1}function g(A){const i=[];for(let r=A;4096!==r;r=e[r])i.push(t[r]);return i}const l=[];n();const h=new Uint8Array(A);let I,B=s(h);for(;B!==lt;){if(256===B){for(n(),B=s(h);256===B;)B=s(h);if(B===lt)break;if(B>256)throw new Error(`corrupted code at scanline ${B}`);ht(l,g(B)),I=B}else if(B<i){const A=g(B);ht(l,A),o(I,A[A.length-1]),I=B}else{const A=g(I);if(!A)throw new Error(`Bogus entry. Not in dictionary, ${I} / ${i}, position: ${a}`);ht(l,A),l.push(A[A.length-1]),o(I,A[A.length-1]),I=B}i+1>=2**r&&(12===r?I=void 0:r++),B=s(h)}return new Uint8Array(l)}var Bt=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return It(A).buffer}}});const ct=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]),Ct=4017,ft=799,Et=3406,Qt=2276,dt=1567,ut=3784,wt=5793,pt=2896;function mt(A,e){let t=0;const i=[];let r=16;for(;r>0&&!A[r-1];)--r;i.push({children:[],index:0});let a,n=i[0];for(let s=0;s<r;s++){for(let r=0;r<A[s];r++){for(n=i.pop(),n.children[n.index]=e[t];n.index>0;)n=i.pop();for(n.index++,i.push(n);i.length<=s;)i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a;t++}s+1<r&&(i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a)}return i[0].children}function yt(A,e,t,i,r,a,n,s,o){const{mcusPerLine:g,progressive:l}=t,h=e;let I=e,B=0,c=0;function C(){if(c>0)return c--,B>>c&1;if(B=A[I++],255===B){const e=A[I++];if(e)throw new Error(`unexpected marker: ${(B<<8|e).toString(16)}`)}return c=7,B>>>7}function f(A){let e,t=A;for(;null!==(e=C());){if(t=t[e],"number"==typeof t)return t;if("object"!=typeof t)throw new Error("invalid huffman sequence")}return null}function E(A){let e=A,t=0;for(;e>0;){const A=C();if(null===A)return;t=t<<1|A,--e}return t}function Q(A){const e=E(A);return e>=1<<A-1?e:e+(-1<<A)+1}let d=0;let u,w=0;function p(A,e,t,i,r){const a=t%g,n=(t/g|0)*A.v+i,s=a*A.h+r;e(A,A.blocks[n][s])}function m(A,e,t){const i=t/A.blocksPerLine|0,r=t%A.blocksPerLine;e(A,A.blocks[i][r])}const y=i.length;let D,k,b,_,S,x;x=l?0===a?0===s?function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:Q(t)<<o;A.pred+=i,e[0]=A.pred}:function(A,e){e[0]|=C()<<o}:0===s?function(A,e){if(d>0)return void d--;let t=a;const i=n;for(;t<=i;){const i=f(A.huffmanTableAC),r=15&i,a=i>>4;if(0===r){if(a<15){d=E(a)+(1<<a)-1;break}t+=16}else t+=a,e[ct[t]]=Q(r)*(1<<o),t++}}:function(A,e){let t=a;const i=n;let r=0;for(;t<=i;){const i=ct[t],a=e[i]<0?-1:1;switch(w){case 0:{const e=f(A.huffmanTableAC),t=15&e;if(r=e>>4,0===t)r<15?(d=E(r)+(1<<r),w=4):(r=16,w=1);else{if(1!==t)throw new Error("invalid ACn encoding");u=Q(t),w=r?2:3}continue}case 1:case 2:e[i]?e[i]+=(C()<<o)*a:(r--,0===r&&(w=2===w?3:0));break;case 3:e[i]?e[i]+=(C()<<o)*a:(e[i]=u<<o,w=0);break;case 4:e[i]&&(e[i]+=(C()<<o)*a)}t++}4===w&&(d--,0===d&&(w=0))}:function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:Q(t);A.pred+=i,e[0]=A.pred;let r=1;for(;r<64;){const t=f(A.huffmanTableAC),i=15&t,a=t>>4;if(0===i){if(a<15)break;r+=16}else r+=a,e[ct[r]]=Q(i),r++}};let F,G,U=0;G=1===y?i[0].blocksPerLine*i[0].blocksPerColumn:g*t.mcusPerColumn;const R=r||G;for(;U<G;){for(k=0;k<y;k++)i[k].pred=0;if(d=0,1===y)for(D=i[0],S=0;S<R;S++)m(D,x,U),U++;else for(S=0;S<R;S++){for(k=0;k<y;k++){D=i[k];const{h:A,v:e}=D;for(b=0;b<e;b++)for(_=0;_<A;_++)p(D,x,U,b,_)}if(U++,U===G)break}if(c=0,F=A[I]<<8|A[I+1],F<65280)throw new Error("marker was not found");if(!(F>=65488&&F<=65495))break;I+=2}return I-h}function Dt(A,e){const t=[],{blocksPerLine:i,blocksPerColumn:r}=e,a=i<<3,n=new Int32Array(64),s=new Uint8Array(64);function o(A,t,i){const r=e.quantizationTable;let a,n,s,o,g,l,h,I,B;const c=i;let C;for(C=0;C<64;C++)c[C]=A[C]*r[C];for(C=0;C<8;++C){const A=8*C;0!==c[1+A]||0!==c[2+A]||0!==c[3+A]||0!==c[4+A]||0!==c[5+A]||0!==c[6+A]||0!==c[7+A]?(a=wt*c[0+A]+128>>8,n=wt*c[4+A]+128>>8,s=c[2+A],o=c[6+A],g=pt*(c[1+A]-c[7+A])+128>>8,I=pt*(c[1+A]+c[7+A])+128>>8,l=c[3+A]<<4,h=c[5+A]<<4,B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*ut+o*dt+128>>8,s=s*dt-o*ut+128>>8,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*Qt+I*Et+2048>>12,g=g*Et-I*Qt+2048>>12,I=B,B=l*ft+h*Ct+2048>>12,l=l*Ct-h*ft+2048>>12,h=B,c[0+A]=a+I,c[7+A]=a-I,c[1+A]=n+h,c[6+A]=n-h,c[2+A]=s+l,c[5+A]=s-l,c[3+A]=o+g,c[4+A]=o-g):(B=wt*c[0+A]+512>>10,c[0+A]=B,c[1+A]=B,c[2+A]=B,c[3+A]=B,c[4+A]=B,c[5+A]=B,c[6+A]=B,c[7+A]=B)}for(C=0;C<8;++C){const A=C;0!==c[8+A]||0!==c[16+A]||0!==c[24+A]||0!==c[32+A]||0!==c[40+A]||0!==c[48+A]||0!==c[56+A]?(a=wt*c[0+A]+2048>>12,n=wt*c[32+A]+2048>>12,s=c[16+A],o=c[48+A],g=pt*(c[8+A]-c[56+A])+2048>>12,I=pt*(c[8+A]+c[56+A])+2048>>12,l=c[24+A],h=c[40+A],B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*ut+o*dt+2048>>12,s=s*dt-o*ut+2048>>12,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*Qt+I*Et+2048>>12,g=g*Et-I*Qt+2048>>12,I=B,B=l*ft+h*Ct+2048>>12,l=l*Ct-h*ft+2048>>12,h=B,c[0+A]=a+I,c[56+A]=a-I,c[8+A]=n+h,c[48+A]=n-h,c[16+A]=s+l,c[40+A]=s-l,c[24+A]=o+g,c[32+A]=o-g):(B=wt*i[C+0]+8192>>14,c[0+A]=B,c[8+A]=B,c[16+A]=B,c[24+A]=B,c[32+A]=B,c[40+A]=B,c[48+A]=B,c[56+A]=B)}for(C=0;C<64;++C){const A=128+(c[C]+8>>4);t[C]=A<0?0:A>255?255:A}}for(let A=0;A<r;A++){const r=A<<3;for(let A=0;A<8;A++)t.push(new Uint8Array(a));for(let a=0;a<i;a++){o(e.blocks[A][a],s,n);let i=0;const g=a<<3;for(let A=0;A<8;A++){const e=t[r+A];for(let A=0;A<8;A++)e[g+A]=s[i++]}}}return t}class kt{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(A){let e=0;function t(){const t=A[e]<<8|A[e+1];return e+=2,t}function i(){const i=t(),r=A.subarray(e,e+i-2);return e+=r.length,r}function r(A){let e,t,i=0,r=0;for(t in A.components)A.components.hasOwnProperty(t)&&(e=A.components[t],i<e.h&&(i=e.h),r<e.v&&(r=e.v));const a=Math.ceil(A.samplesPerLine/8/i),n=Math.ceil(A.scanLines/8/r);for(t in A.components)if(A.components.hasOwnProperty(t)){e=A.components[t];const s=Math.ceil(Math.ceil(A.samplesPerLine/8)*e.h/i),o=Math.ceil(Math.ceil(A.scanLines/8)*e.v/r),g=a*e.h,l=n*e.v,h=[];for(let A=0;A<l;A++){const A=[];for(let e=0;e<g;e++)A.push(new Int32Array(64));h.push(A)}e.blocksPerLine=s,e.blocksPerColumn=o,e.blocks=h}A.maxH=i,A.maxV=r,A.mcusPerLine=a,A.mcusPerColumn=n}let a=t();if(65496!==a)throw new Error("SOI not found");for(a=t();65497!==a;){switch(a){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:{const A=i();65504===a&&74===A[0]&&70===A[1]&&73===A[2]&&70===A[3]&&0===A[4]&&(this.jfif={version:{major:A[5],minor:A[6]},densityUnits:A[7],xDensity:A[8]<<8|A[9],yDensity:A[10]<<8|A[11],thumbWidth:A[12],thumbHeight:A[13],thumbData:A.subarray(14,14+3*A[12]*A[13])}),65518===a&&65===A[0]&&100===A[1]&&111===A[2]&&98===A[3]&&101===A[4]&&0===A[5]&&(this.adobe={version:A[6],flags0:A[7]<<8|A[8],flags1:A[9]<<8|A[10],transformCode:A[11]});break}case 65499:{const i=t()+e-2;for(;e<i;){const i=A[e++],r=new Int32Array(64);if(i>>4==0)for(let t=0;t<64;t++){r[ct[t]]=A[e++]}else{if(i>>4!=1)throw new Error("DQT: invalid table spec");for(let A=0;A<64;A++){r[ct[A]]=t()}}this.quantizationTables[15&i]=r}break}case 65472:case 65473:case 65474:{t();const i={extended:65473===a,progressive:65474===a,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},n=A[e++];let s;for(let t=0;t<n;t++){s=A[e];const t=A[e+1]>>4,r=15&A[e+1],a=A[e+2];i.componentsOrder.push(s),i.components[s]={h:t,v:r,quantizationIdx:a},e+=3}r(i),this.frames.push(i);break}case 65476:{const i=t();for(let t=2;t<i;){const i=A[e++],r=new Uint8Array(16);let a=0;for(let t=0;t<16;t++,e++)r[t]=A[e],a+=r[t];const n=new Uint8Array(a);for(let t=0;t<a;t++,e++)n[t]=A[e];t+=17+a,i>>4==0?this.huffmanTablesDC[15&i]=mt(r,n):this.huffmanTablesAC[15&i]=mt(r,n)}break}case 65501:t(),this.resetInterval=t();break;case 65498:{t();const i=A[e++],r=[],a=this.frames[0];for(let t=0;t<i;t++){const t=a.components[A[e++]],i=A[e++];t.huffmanTableDC=this.huffmanTablesDC[i>>4],t.huffmanTableAC=this.huffmanTablesAC[15&i],r.push(t)}const n=A[e++],s=A[e++],o=A[e++],g=yt(A,e,a,r,this.resetInterval,n,s,o>>4,15&o);e+=g;break}case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${a.toString(16)}`)}a=t()}}getResult(){const{frames:A}=this;if(0===this.frames.length)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++){const e=this.frames[A].components;for(const A of Object.keys(e))e[A].quantizationTable=this.quantizationTables[e[A].quantizationIdx],delete e[A].quantizationIdx}const e=A[0],{components:t,componentsOrder:i}=e,r=[],a=e.samplesPerLine,n=e.scanLines;for(let A=0;A<i.length;A++){const a=t[i[A]];r.push({lines:Dt(0,a),scaleX:a.h/e.maxH,scaleY:a.v/e.maxV})}const s=new Uint8Array(a*n*r.length);let o=0;for(let A=0;A<n;++A)for(let e=0;e<a;++e)for(let t=0;t<r.length;++t){const i=r[t];s[o]=i.lines[0|A*i.scaleY][0|e*i.scaleX],++o}return s}}var bt=Object.freeze({__proto__:null,default:class extends Ge{constructor(A){super(),this.reader=new kt,A.JPEGTables&&this.reader.parse(A.JPEGTables)}decodeBlock(A){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(A)),this.reader.getResult().buffer}}});
1
+ import{CompositeLayer as A,log as e,COORDINATE_SYSTEM as t}from"@deck.gl/core";import{TileLayer as i}from"@deck.gl/geo-layers";import{BitmapLayer as r}from"@deck.gl/layers";import{_TerrainExtension as a}from"@deck.gl/extensions";import n from"chroma-js";import{getMeshBoundingBox as s}from"@loaders.gl/schema";import{concatenateTypedArrays as o}from"@loaders.gl/loader-utils";import{SimpleMeshLayer as g}from"@deck.gl/mesh-layers";function l(A,e,t,i){return new(t||(t=Promise))((function(r,a){function n(A){try{o(i.next(A))}catch(A){a(A)}}function s(A){try{o(i.throw(A))}catch(A){a(A)}}function o(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(n,s)}o((i=i.apply(A,e||[])).next())}))}function h(A){return(e,...t)=>B(A,e,t)}function I(A,e){return h(E(A,e).get)}const{apply:B,construct:c,defineProperty:C,get:f,getOwnPropertyDescriptor:E,getPrototypeOf:Q,has:d,ownKeys:u,set:w,setPrototypeOf:p}=Reflect,{iterator:m,species:y,toStringTag:D,for:k}=Symbol,b=Object,{create:_,defineProperty:S,freeze:x,is:F}=b,G=Array.prototype[m],U=h(G),R=ArrayBuffer;I(R.prototype,"byteLength");const M="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null;M&&I(M.prototype,"byteLength");const L=Q(Uint8Array);L.from;const v=L.prototype;v[m],h(v.keys),h(v.values),h(v.entries),h(v.set),h(v.reverse),h(v.fill),h(v.copyWithin),h(v.sort),h(v.slice),h(v.subarray),I(v,"buffer"),I(v,"byteOffset"),I(v,"length"),I(v,D);const N=Uint32Array,T=Float32Array,q=Q([][m]()),O=h(q.next),J=h(function*(){}().next),H=Q(q),Y=h(DataView.prototype.getUint16),z=WeakMap,P=z.prototype,K=h(P.get),V=h(P.set),Z=new z,X=_(null,{next:{value:function(){const A=K(Z,this);return O(A)}},[m]:{value:function(){return this}}});const W=new z,j=_(H,{next:{value:function(){const A=K(W,this);return J(A)},writable:!0,configurable:!0}});for(const A of u(q))"next"!==A&&S(j,A,E(q,A));const $=new R(4),AA=new T($),eA=new N($),tA=new N(512),iA=new N(512);for(let A=0;A<256;++A){const e=A-127;e<-27?(tA[A]=0,tA[256|A]=32768,iA[A]=24,iA[256|A]=24):e<-14?(tA[A]=1024>>-e-14,tA[256|A]=1024>>-e-14|32768,iA[A]=-e-1,iA[256|A]=-e-1):e<=15?(tA[A]=e+15<<10,tA[256|A]=e+15<<10|32768,iA[A]=13,iA[256|A]=13):e<128?(tA[A]=31744,tA[256|A]=64512,iA[A]=24,iA[256|A]=24):(tA[A]=31744,tA[256|A]=64512,iA[A]=13,iA[256|A]=13)}const rA=new N(2048),aA=new N(64),nA=new N(64);for(let A=1;A<1024;++A){let e=A<<13,t=0;for(;0==(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,rA[A]=e|t}for(let A=1024;A<2048;++A)rA[A]=939524096+(A-1024<<13);for(let A=1;A<31;++A)aA[A]=A<<23;aA[31]=1199570944,aA[32]=2147483648;for(let A=33;A<63;++A)aA[A]=2147483648+(A-32<<23);aA[63]=3347054592;for(let A=1;A<64;++A)32!==A&&(nA[A]=1024);function sA(A,e,...t){return function(A){const e=A>>10;return eA[0]=rA[nA[e]+(1023&A)]+aA[e],AA[0]}(Y(A,e,...function(A){if(A[m]===G&&q.next===O)return A;const e=_(X);return V(Z,e,U(A)),e}(t)))}function oA(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var gA={exports:{}};function lA(A,e,t){const i=t&&t.debug||!1;i&&console.log("[xml-utils] getting "+e+" in "+A);const r="object"==typeof A?A.outer:A,a=r.slice(0,r.indexOf(">")+1),n=['"',"'"];for(let A=0;A<n.length;A++){const t=n[A],r=e+"\\="+t+"([^"+t+"]*)"+t;i&&console.log("[xml-utils] pattern:",r);const s=new RegExp(r).exec(a);if(i&&console.log("[xml-utils] match:",s),s)return s[1]}}gA.exports=lA,gA.exports.default=lA;var hA=oA(gA.exports),IA={exports:{}},BA={exports:{}},cA={exports:{}};function CA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index:-1}cA.exports=CA,cA.exports.default=CA;var fA=cA.exports,EA={exports:{}};function QA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index+i[0].length-1:-1}EA.exports=QA,EA.exports.default=QA;var dA=EA.exports,uA={exports:{}};function wA(A,e){const t=new RegExp(e,"g"),i=A.match(t);return i?i.length:0}uA.exports=wA,uA.exports.default=wA;var pA=uA.exports;const mA=fA,yA=dA,DA=pA;function kA(A,e,t){const i=t&&t.debug||!1,r=!(t&&!1===typeof t.nested),a=t&&t.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",e," and ",t);const n=mA(A,`<${e}[ \n>/]`,a);if(i&&console.log("[xml-utils] start:",n),-1===n)return;const s=A.slice(n+e.length);let o=yA(s,"^[^<]*[ /]>",0);const g=-1!==o&&"/"===s[o-1];if(i&&console.log("[xml-utils] selfClosing:",g),!1===g)if(r){let A=0,t=1,i=0;for(;-1!==(o=yA(s,"[ /]"+e+">",A));){const r=s.substring(A,o+1);if(t+=DA(r,"<"+e+"[ \n\t>]"),i+=DA(r,"</"+e+">"),i>=t)break;A=o}}else o=yA(s,"[ /]"+e+">",0);const l=n+e.length+o+1;if(i&&console.log("[xml-utils] end:",l),-1===l)return;const h=A.slice(n,l);let I;return I=g?null:h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:I,outer:h,start:n,end:l}}BA.exports=kA,BA.exports.default=kA;const bA=BA.exports;function _A(A,e,t){const i=[],r=t&&t.debug||!1,a=!t||"boolean"!=typeof t.nested||t.nested;let n,s=t&&t.startIndex||0;for(;n=bA(A,e,{debug:r,startIndex:s});)s=a?n.start+1+e.length:n.end,i.push(n);return r&&console.log("findTagsByName found",i.length,"tags"),i}IA.exports=_A,IA.exports.default=_A;var SA=oA(IA.exports);const xA={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"},FA={};for(const A in xA)xA.hasOwnProperty(A)&&(FA[xA[A]]=parseInt(A,10));const GA=[FA.BitsPerSample,FA.ExtraSamples,FA.SampleFormat,FA.StripByteCounts,FA.StripOffsets,FA.StripRowCounts,FA.TileByteCounts,FA.TileOffsets,FA.SubIFDs],UA={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"},RA={};for(const A in UA)UA.hasOwnProperty(A)&&(RA[UA[A]]=parseInt(A,10));const MA=0,LA=1,vA=2,NA=3,TA=5,qA=6,OA=8,JA=0,HA=1,YA=0,zA=1,PA=2,KA={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"};const VA=new Map;function ZA(A,e){Array.isArray(A)||(A=[A]),A.forEach((A=>VA.set(A,e)))}function XA(A,e,t,i=1){return new(Object.getPrototypeOf(A).constructor)(e*t*i)}function WA(A,e,t){return(1-t)*A+t*e}function jA(A,e,t,i,r,a="nearest"){switch(a.toLowerCase()){case"nearest":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=XA(A,i,r);for(let o=0;o<r;++o){const r=Math.min(Math.round(n*o),t-1);for(let t=0;t<i;++t){const n=Math.min(Math.round(a*t),e-1),g=A[r*e+n];s[o*i+t]=g}}return s}))}(A,e,t,i,r);case"bilinear":case"linear":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=XA(A,i,r);for(let o=0;o<r;++o){const r=n*o,g=Math.floor(r),l=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const n=a*t,h=n%1,I=Math.floor(n),B=Math.min(Math.ceil(n),e-1),c=A[g*e+I],C=A[g*e+B],f=A[l*e+I],E=A[l*e+B],Q=WA(WA(c,C,h),WA(f,E,h),r%1);s[o*i+t]=Q}}return s}))}(A,e,t,i,r);default:throw new Error(`Unsupported resampling method: '${a}'`)}}function $A(A,e,t,i,r,a,n="nearest"){switch(n.toLowerCase()){case"nearest":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=XA(A,i,r,a);for(let g=0;g<r;++g){const r=Math.min(Math.round(s*g),t-1);for(let t=0;t<i;++t){const s=Math.min(Math.round(n*t),e-1);for(let n=0;n<a;++n){const l=A[r*e*a+s*a+n];o[g*i*a+t*a+n]=l}}}return o}(A,e,t,i,r,a);case"bilinear":case"linear":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=XA(A,i,r,a);for(let g=0;g<r;++g){const r=s*g,l=Math.floor(r),h=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const s=n*t,I=s%1,B=Math.floor(s),c=Math.min(Math.ceil(s),e-1);for(let n=0;n<a;++n){const s=A[l*e*a+B*a+n],C=A[l*e*a+c*a+n],f=A[h*e*a+B*a+n],E=A[h*e*a+c*a+n],Q=WA(WA(s,C,I),WA(f,E,I),r%1);o[g*i*a+t*a+n]=Q}}}return o}(A,e,t,i,r,a);default:throw new Error(`Unsupported resampling method: '${n}'`)}}function Ae(A,e,t){let i=0;for(let r=e;r<t;++r)i+=A[r];return i}function ee(A,e,t){switch(A){case 1:if(e<=8)return new Uint8Array(t);if(e<=16)return new Uint16Array(t);if(e<=32)return new Uint32Array(t);break;case 2:if(8===e)return new Int8Array(t);if(16===e)return new Int16Array(t);if(32===e)return new Int32Array(t);break;case 3:switch(e){case 16:case 32:return new Float32Array(t);case 64:return new Float64Array(t)}}throw Error("Unsupported data format/bitsPerSample")}ZA([void 0,1],(()=>Promise.resolve().then((function(){return gt})).then((A=>A.default)))),ZA(5,(()=>Promise.resolve().then((function(){return Bt})).then((A=>A.default)))),ZA(6,(()=>{throw new Error("old style JPEG compression is not supported.")})),ZA(7,(()=>Promise.resolve().then((function(){return bt})).then((A=>A.default)))),ZA([8,32946],(()=>Promise.resolve().then((function(){return La})).then((A=>A.default)))),ZA(32773,(()=>Promise.resolve().then((function(){return Na})).then((A=>A.default)))),ZA(34887,(()=>Promise.resolve().then((function(){return Ka})).then((async A=>(await A.zstd.init(),A))).then((A=>A.default)))),ZA(50001,(()=>Promise.resolve().then((function(){return Va})).then((A=>A.default))));var te=class{constructor(A,e,t,i,r,a){this.fileDirectory=A,this.geoKeys=e,this.dataView=t,this.littleEndian=i,this.tiles=r?{}:null,this.isTiled=!A.StripOffsets;const n=A.PlanarConfiguration;if(this.planarConfiguration=void 0===n?1:n,1!==this.planarConfiguration&&2!==this.planarConfiguration)throw new Error("Invalid planar configuration.");this.source=a}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return void 0!==this.fileDirectory.SamplesPerPixel?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:void 0!==this.fileDirectory.RowsPerStrip?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(A){return this.isTiled||(A+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-A*this.getTileHeight()}getBytesPerPixel(){let A=0;for(let e=0;e<this.fileDirectory.BitsPerSample.length;++e)A+=this.getSampleByteSize(e);return A}getSampleByteSize(A){if(A>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[A]/8)}getReaderForSample(A){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1,t=this.fileDirectory.BitsPerSample[A];switch(e){case 1:if(t<=8)return DataView.prototype.getUint8;if(t<=16)return DataView.prototype.getUint16;if(t<=32)return DataView.prototype.getUint32;break;case 2:if(t<=8)return DataView.prototype.getInt8;if(t<=16)return DataView.prototype.getInt16;if(t<=32)return DataView.prototype.getInt32;break;case 3:switch(t){case 16:return function(A,e){return sA(this,A,e)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1}getBitsPerSample(A=0){return this.fileDirectory.BitsPerSample[A]}getArrayForSample(A,e){return ee(this.getSampleFormat(A),this.getBitsPerSample(A),e)}async getTileOrStrip(A,e,t,i,r){const a=Math.ceil(this.getWidth()/this.getTileWidth()),n=Math.ceil(this.getHeight()/this.getTileHeight());let s;const{tiles:o}=this;let g,l;1===this.planarConfiguration?s=e*a+A:2===this.planarConfiguration&&(s=t*a*n+e*a+A),this.isTiled?(g=this.fileDirectory.TileOffsets[s],l=this.fileDirectory.TileByteCounts[s]):(g=this.fileDirectory.StripOffsets[s],l=this.fileDirectory.StripByteCounts[s]);const h=(await this.source.fetch([{offset:g,length:l}],r))[0];let I;return null!==o&&o[s]?I=o[s]:(I=(async()=>{let A=await i.decode(this.fileDirectory,h);const t=this.getSampleFormat(),r=this.getBitsPerSample();return function(A,e){return(1!==A&&2!==A||!(e<=32)||e%8!=0)&&(3!==A||16!==e&&32!==e&&64!==e)}(t,r)&&(A=function(A,e,t,i,r,a,n){const s=new DataView(A),o=2===t?1:i,g=ee(e,r,2===t?n*a:n*a*i),l=parseInt("1".repeat(r),2);if(1===e){let A;A=1===t?i*r:r;let e=a*A;0!=(7&e)&&(e=e+7&-8);for(let A=0;A<n;++A){const t=A*e;for(let e=0;e<a;++e){const i=t+e*o*r;for(let t=0;t<o;++t){const n=i+t*r,h=(A*a+e)*o+t,I=Math.floor(n/8),B=n%8;if(B+r<=8)g[h]=s.getUint8(I)>>8-r-B&l;else if(B+r<=16)g[h]=s.getUint16(I)>>16-r-B&l;else if(B+r<=24){const A=s.getUint16(I)<<8|s.getUint8(I+2);g[h]=A>>24-r-B&l}else g[h]=s.getUint32(I)>>32-r-B&l}}}}return g.buffer}(A,t,this.planarConfiguration,this.getSamplesPerPixel(),r,this.getTileWidth(),this.getBlockHeight(e))),A})(),null!==o&&(o[s]=I)),{x:A,y:e,sample:t,data:await I}}async _readRaster(A,e,t,i,r,a,n,s,o){const g=this.getTileWidth(),l=this.getTileHeight(),h=this.getWidth(),I=this.getHeight(),B=Math.max(Math.floor(A[0]/g),0),c=Math.min(Math.ceil(A[2]/g),Math.ceil(h/g)),C=Math.max(Math.floor(A[1]/l),0),f=Math.min(Math.ceil(A[3]/l),Math.ceil(I/l)),E=A[2]-A[0];let Q=this.getBytesPerPixel();const d=[],u=[];for(let A=0;A<e.length;++A)1===this.planarConfiguration?d.push(Ae(this.fileDirectory.BitsPerSample,0,e[A])/8):d.push(0),u.push(this.getReaderForSample(e[A]));const w=[],{littleEndian:p}=this;for(let a=C;a<f;++a)for(let n=B;n<c;++n){let s;1===this.planarConfiguration&&(s=this.getTileOrStrip(n,a,0,r,o));for(let B=0;B<e.length;++B){const c=B,C=e[B];2===this.planarConfiguration&&(Q=this.getSampleByteSize(C),s=this.getTileOrStrip(n,a,C,r,o));const f=s.then((r=>{const a=r.data,n=new DataView(a),s=this.getBlockHeight(r.y),o=r.y*l,B=r.x*g,C=o+s,f=(r.x+1)*g,w=u[c],m=Math.min(s,s-(C-A[3]),I-o),y=Math.min(g,g-(f-A[2]),h-B);for(let r=Math.max(0,A[1]-o);r<m;++r)for(let a=Math.max(0,A[0]-B);a<y;++a){const s=(r*g+a)*Q,l=w.call(n,s+d[c],p);let h;i?(h=(r+o-A[1])*E*e.length+(a+B-A[0])*e.length+c,t[h]=l):(h=(r+o-A[1])*E+a+B-A[0],t[c][h]=l)}}));w.push(f)}}if(await Promise.all(w),a&&A[2]-A[0]!==a||n&&A[3]-A[1]!==n){let r;return r=i?$A(t,A[2]-A[0],A[3]-A[1],a,n,e.length,s):jA(t,A[2]-A[0],A[3]-A[1],a,n,s),r.width=a,r.height=n,r}return t.width=a||A[2]-A[0],t.height=n||A[3]-A[1],t}async readRasters({window:A,samples:e=[],interleave:t,pool:i=null,width:r,height:a,resampleMethod:n,fillValue:s,signal:o}={}){const g=A||[0,0,this.getWidth(),this.getHeight()];if(g[0]>g[2]||g[1]>g[3])throw new Error("Invalid subsets");const l=(g[2]-g[0])*(g[3]-g[1]),h=this.getSamplesPerPixel();if(e&&e.length){for(let A=0;A<e.length;++A)if(e[A]>=h)return Promise.reject(new RangeError(`Invalid sample index '${e[A]}'.`))}else for(let A=0;A<h;++A)e.push(A);let I;if(t){I=ee(this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,Math.max.apply(null,this.fileDirectory.BitsPerSample),l*e.length),s&&I.fill(s)}else{I=[];for(let A=0;A<e.length;++A){const t=this.getArrayForSample(e[A],l);Array.isArray(s)&&A<s.length?t.fill(s[A]):s&&!Array.isArray(s)&&t.fill(s),I.push(t)}}const B=i||await async function(A){const e=VA.get(A.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${A.Compression}`);return new(await e())(A)}(this.fileDirectory);return await this._readRaster(g,e,I,t,B,r,a,n,o)}async readRGB({window:A,interleave:e=!0,pool:t=null,width:i,height:r,resampleMethod:a,enableAlpha:n=!1,signal:s}={}){const o=A||[0,0,this.getWidth(),this.getHeight()];if(o[0]>o[2]||o[1]>o[3])throw new Error("Invalid subsets");const g=this.fileDirectory.PhotometricInterpretation;if(g===vA){let o=[0,1,2];if(this.fileDirectory.ExtraSamples!==JA&&n){o=[];for(let A=0;A<this.fileDirectory.BitsPerSample.length;A+=1)o.push(A)}return this.readRasters({window:A,interleave:e,samples:o,pool:t,width:i,height:r,resampleMethod:a,signal:s})}let l;switch(g){case MA:case LA:case NA:l=[0];break;case TA:l=[0,1,2,3];break;case qA:case OA:l=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const h={window:o,interleave:!0,samples:l,pool:t,width:i,height:r,resampleMethod:a,signal:s},{fileDirectory:I}=this,B=await this.readRasters(h),c=2**this.fileDirectory.BitsPerSample[0];let C;switch(g){case MA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=256-A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case LA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case NA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3),a=e.length/3,n=e.length/3*2;for(let t=0,i=0;t<A.length;++t,i+=3){const s=A[t];r[i]=e[s]/65536*256,r[i+1]=e[s+a]/65536*256,r[i+2]=e[s+n]/65536*256}return r}(B,I.ColorMap);break;case TA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=4,t+=3){const r=A[e],a=A[e+1],n=A[e+2],s=A[e+3];i[t]=(255-r)/256*255*((255-s)/256),i[t+1]=(255-a)/256*255*((255-s)/256),i[t+2]=(255-n)/256*255*((255-s)/256)}return i}(B);break;case qA:C=function(A){const{width:e,height:t}=A,i=new Uint8ClampedArray(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){const r=A[e],a=A[e+1],n=A[e+2];i[t]=r+1.402*(n-128),i[t+1]=r-.34414*(a-128)-.71414*(n-128),i[t+2]=r+1.772*(a-128)}return i}(B);break;case OA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){let r,a,n,s=(A[e+0]+16)/116,o=(A[e+1]<<24>>24)/500+s,g=s-(A[e+2]<<24>>24)/200;o=.95047*(o*o*o>.008856?o*o*o:(o-16/116)/7.787),s=1*(s*s*s>.008856?s*s*s:(s-16/116)/7.787),g=1.08883*(g*g*g>.008856?g*g*g:(g-16/116)/7.787),r=3.2406*o+-1.5372*s+-.4986*g,a=-.9689*o+1.8758*s+.0415*g,n=.0557*o+-.204*s+1.057*g,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,i[t]=255*Math.max(0,Math.min(1,r)),i[t+1]=255*Math.max(0,Math.min(1,a)),i[t+2]=255*Math.max(0,Math.min(1,n))}return i}(B);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){const A=new Uint8Array(C.length/3),e=new Uint8Array(C.length/3),t=new Uint8Array(C.length/3);for(let i=0,r=0;i<C.length;i+=3,++r)A[r]=C[i],e[r]=C[i+1],t[r]=C[i+2];C=[A,e,t]}return C.width=B.width,C.height=B.height,C}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const A=[];for(let e=0;e<this.fileDirectory.ModelTiepoint.length;e+=6)A.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 A}getGDALMetadata(A=null){const e={};if(!this.fileDirectory.GDAL_METADATA)return null;const t=this.fileDirectory.GDAL_METADATA;let i=SA(t,"Item");i=null===A?i.filter((A=>void 0===hA(A,"sample"))):i.filter((e=>Number(hA(e,"sample"))===A));for(let A=0;A<i.length;++A){const t=i[A];e[hA(t,"name")]=t.inner}return e}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const A=this.fileDirectory.GDAL_NODATA;return Number(A.substring(0,A.length-1))}getOrigin(){const A=this.fileDirectory.ModelTiepoint,e=this.fileDirectory.ModelTransformation;if(A&&6===A.length)return[A[3],A[4],A[5]];if(e)return[e[3],e[7],e[11]];throw new Error("The image does not have an affine transformation.")}getResolution(A=null){const e=this.fileDirectory.ModelPixelScale,t=this.fileDirectory.ModelTransformation;if(e)return[e[0],-e[1],e[2]];if(t)return 0===t[1]&&0===t[4]?[t[0],-t[5],t[10]]:[Math.sqrt(t[0]*t[0]+t[4]*t[4]),-Math.sqrt(t[1]*t[1]+t[5]*t[5]),t[10]];if(A){const[e,t,i]=A.getResolution();return[e*A.getWidth()/this.getWidth(),t*A.getHeight()/this.getHeight(),i*A.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return 1===this.geoKeys.GTRasterTypeGeoKey}getBoundingBox(A=!1){const e=this.getHeight(),t=this.getWidth();if(this.fileDirectory.ModelTransformation&&!A){const[A,i,r,a,n,s,o,g]=this.fileDirectory.ModelTransformation,l=[[0,0],[0,e],[t,0],[t,e]].map((([e,t])=>[a+A*e+i*t,g+n*e+s*t])),h=l.map((A=>A[0])),I=l.map((A=>A[1]));return[Math.min(...h),Math.min(...I),Math.max(...h),Math.max(...I)]}{const A=this.getOrigin(),i=this.getResolution(),r=A[0],a=A[1],n=r+i[0]*t,s=a+i[1]*e;return[Math.min(r,n),Math.min(a,s),Math.max(r,n),Math.max(a,s)]}}};class ie{constructor(A){this._dataView=new DataView(A)}get buffer(){return this._dataView.buffer}getUint64(A,e){const t=this.getUint32(A,e),i=this.getUint32(A+4,e);let r;if(e){if(r=t+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*t+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}getInt64(A,e){let t=0;const i=(128&this._dataView.getUint8(A+(e?7:0)))>0;let r=!0;for(let a=0;a<8;a++){let n=this._dataView.getUint8(A+(e?a:7-a));i&&(r?0!==n&&(n=255&~(n-1),r=!1):n=255&~n),t+=n*256**a}return i&&(t=-t),t}getUint8(A,e){return this._dataView.getUint8(A,e)}getInt8(A,e){return this._dataView.getInt8(A,e)}getUint16(A,e){return this._dataView.getUint16(A,e)}getInt16(A,e){return this._dataView.getInt16(A,e)}getUint32(A,e){return this._dataView.getUint32(A,e)}getInt32(A,e){return this._dataView.getInt32(A,e)}getFloat16(A,e){return sA(this._dataView,A,e)}getFloat32(A,e){return this._dataView.getFloat32(A,e)}getFloat64(A,e){return this._dataView.getFloat64(A,e)}}class re{constructor(A,e,t,i){this._dataView=new DataView(A),this._sliceOffset=e,this._littleEndian=t,this._bigTiff=i}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(A,e){return this.sliceOffset<=A&&this.sliceTop>=A+e}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset,this._littleEndian)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset,this._littleEndian)}readUint16(A){return this._dataView.getUint16(A-this._sliceOffset,this._littleEndian)}readInt16(A){return this._dataView.getInt16(A-this._sliceOffset,this._littleEndian)}readUint32(A){return this._dataView.getUint32(A-this._sliceOffset,this._littleEndian)}readInt32(A){return this._dataView.getInt32(A-this._sliceOffset,this._littleEndian)}readFloat32(A){return this._dataView.getFloat32(A-this._sliceOffset,this._littleEndian)}readFloat64(A){return this._dataView.getFloat64(A-this._sliceOffset,this._littleEndian)}readUint64(A){const e=this.readUint32(A),t=this.readUint32(A+4);let i;if(this._littleEndian){if(i=e+2**32*t,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*e+t,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}readInt64(A){let e=0;const t=(128&this._dataView.getUint8(A+(this._littleEndian?7:0)))>0;let i=!0;for(let r=0;r<8;r++){let a=this._dataView.getUint8(A+(this._littleEndian?r:7-r));t&&(i?0!==a&&(a=255&~(a-1),i=!1):a=255&~a),e+=a*256**r}return t&&(e=-e),e}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const ae="\r\n\r\n";function ne(A){if(void 0!==Object.fromEntries)return Object.fromEntries(A);const e={};for(const[t,i]of A)e[t.toLowerCase()]=i;return e}function se(A){return ne(A.split("\r\n").map((A=>{const e=A.split(":").map((A=>A.trim()));return e[0]=e[0].toLowerCase(),e})))}function oe(A){let e,t,i;return A&&([,e,t,i]=A.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),i=parseInt(i,10)),{start:e,end:t,total:i}}class ge{async fetch(A,e=undefined){return Promise.all(A.map((A=>this.fetchSlice(A,e))))}async fetchSlice(A){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class le extends Map{constructor(A={}){if(super(),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=A.maxSize,this.maxAge=A.maxAge||Number.POSITIVE_INFINITY,this.onEviction=A.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(A){if("function"==typeof this.onEviction)for(const[e,t]of A)this.onEviction(e,t.value)}_deleteIfExpired(A,e){return"number"==typeof e.expiry&&e.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(A,e.value),this.delete(A))}_getOrDeleteIfExpired(A,e){if(!1===this._deleteIfExpired(A,e))return e.value}_getItemValue(A,e){return e.expiry?this._getOrDeleteIfExpired(A,e):e.value}_peek(A,e){const t=e.get(A);return this._getItemValue(A,t)}_set(A,e){this.cache.set(A,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,e){this.oldCache.delete(A),this._set(A,e)}*_entriesAscending(){for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield A)}}for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield A)}}get(A){if(this.cache.has(A)){const e=this.cache.get(A);return this._getItemValue(A,e)}if(this.oldCache.has(A)){const e=this.oldCache.get(A);if(!1===this._deleteIfExpired(A,e))return this._moveToRecent(A,e),e.value}}set(A,e,{maxAge:t=this.maxAge}={}){const i="number"==typeof t&&t!==Number.POSITIVE_INFINITY?Date.now()+t:void 0;this.cache.has(A)?this.cache.set(A,{value:e,expiry:i}):this._set(A,{value:e,expiry:i})}has(A){return this.cache.has(A)?!this._deleteIfExpired(A,this.cache.get(A)):!!this.oldCache.has(A)&&!this._deleteIfExpired(A,this.oldCache.get(A))}peek(A){return this.cache.has(A)?this._peek(A,this.cache):this.oldCache.has(A)?this._peek(A,this.oldCache):void 0}delete(A){const e=this.cache.delete(A);return e&&this._size--,this.oldCache.delete(A)||e}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const e=[...this._entriesAscending()],t=e.length-A;t<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(t>0&&this._emitEvictions(e.slice(0,t)),this.oldCache=new Map(e.slice(t)),this.cache=new Map,this._size=0),this.maxSize=A}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[Symbol.iterator](){for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}}}*entriesDescending(){let A=[...this.cache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}A=[...this.oldCache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;if(!this.cache.has(i)){!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}}}*entriesAscending(){for(const[A,e]of this._entriesAscending())yield[A,e.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const e of this.oldCache.keys())this.cache.has(e)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,e=this){for(const[t,i]of this.entriesAscending())A.call(e,i,t,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class he extends Error{constructor(A){super(A),Error.captureStackTrace&&Error.captureStackTrace(this,he),this.name="AbortError"}}class Ie extends Error{constructor(A,e){super(e),this.errors=A,this.message=e,this.name="AggregateError"}}const Be=Ie;class ce{constructor(A,e,t=null){this.offset=A,this.length=e,this.data=t}get top(){return this.offset+this.length}}class Ce{constructor(A,e,t){this.offset=A,this.length=e,this.blockIds=t}}class fe extends ge{constructor(A,{blockSize:e=65536,cacheSize:t=100}={}){super(),this.source=A,this.blockSize=e,this.blockCache=new le({maxSize:t,onEviction:(A,e)=>{this.evictedBlocks.set(A,e)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(A,e){const t=[],i=[],r=[];this.evictedBlocks.clear();for(const{offset:e,length:a}of A){let A=e+a;const{fileSize:n}=this;null!==n&&(A=Math.min(A,n));for(let a=Math.floor(e/this.blockSize)*this.blockSize;a<A;a+=this.blockSize){const A=Math.floor(a/this.blockSize);this.blockCache.has(A)||this.blockRequests.has(A)||(this.blockIdsToFetch.add(A),i.push(A)),this.blockRequests.has(A)&&t.push(this.blockRequests.get(A)),r.push(A)}}await async function(A){return new Promise((e=>setTimeout(e,A)))}(),this.fetchBlocks(e);const a=[];for(const A of i)this.blockRequests.has(A)&&a.push(this.blockRequests.get(A));await Promise.allSettled(t),await Promise.allSettled(a);const n=[],s=r.filter((A=>this.abortedBlockIds.has(A)||!this.blockCache.has(A)));if(s.forEach((A=>this.blockIdsToFetch.add(A))),s.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(const A of s){const e=this.blockRequests.get(A);if(!e)throw new Error(`Block ${A} is not in the block requests`);n.push(e)}await Promise.allSettled(n)}if(e&&e.aborted)throw new he("Request was aborted");const o=r.map((A=>this.blockCache.get(A)||this.evictedBlocks.get(A))),g=o.filter((A=>!A));if(g.length)throw new Be(g,"Request failed");const l=new Map(function(A,e){const t=Array.isArray(A)?A:Array.from(A),i=Array.isArray(e)?e:Array.from(e);return t.map(((A,e)=>[A,i[e]]))}(r,o));return this.readSliceData(A,l)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const e=this.groupBlocks(this.blockIdsToFetch),t=this.source.fetch(e,A);for(let i=0;i<e.length;++i){const r=e[i];for(const e of r.blockIds)this.blockRequests.set(e,(async()=>{try{const A=(await t)[i],r=e*this.blockSize,a=r-A.offset,n=Math.min(a+this.blockSize,A.data.byteLength),s=A.data.slice(a,n),o=new ce(r,s.byteLength,s,e);this.blockCache.set(e,o),this.abortedBlockIds.delete(e)}catch(t){if("AbortError"!==t.name)throw t;t.signal=A,this.blockCache.delete(e),this.abortedBlockIds.add(e)}finally{this.blockRequests.delete(e)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const e=Array.from(A).sort(((A,e)=>A-e));if(0===e.length)return[];let t=[],i=null;const r=[];for(const A of e)null===i||i+1===A?(t.push(A),i=A):(r.push(new Ce(t[0]*this.blockSize,t.length*this.blockSize,t)),t=[A],i=A);return r.push(new Ce(t[0]*this.blockSize,t.length*this.blockSize,t)),r}readSliceData(A,e){return A.map((A=>{let t=A.offset+A.length;null!==this.fileSize&&(t=Math.min(this.fileSize,t));const i=Math.floor(A.offset/this.blockSize),r=Math.floor(t/this.blockSize),a=new ArrayBuffer(A.length),n=new Uint8Array(a);for(let a=i;a<=r;++a){const i=e.get(a),r=i.offset-A.offset;let s,o=0,g=0;r<0?o=-r:r>0&&(g=r),s=i.top-t<0?i.length-o:t-i.offset-o;const l=new Uint8Array(i.data,o,s);n.set(l,g)}return a}))}}class Ee{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(A){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class Qe{constructor(A){this.url=A}async request({headers:A,signal:e}={}){throw new Error("request is not implemented")}}class de extends Ee{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class ue extends Qe{constructor(A,e){super(A),this.credentials=e}async request({headers:A,signal:e}={}){const t=await fetch(this.url,{headers:A,credentials:this.credentials,signal:e});return new de(t)}}class we extends Ee{constructor(A,e){super(),this.xhr=A,this.data=e}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)}async getData(){return this.data}}class pe extends Qe{constructRequest(A,e){return new Promise(((t,i)=>{const r=new XMLHttpRequest;r.open("GET",this.url),r.responseType="arraybuffer";for(const[e,t]of Object.entries(A))r.setRequestHeader(e,t);r.onload=()=>{const A=r.response;t(new we(r,A))},r.onerror=i,r.onabort=()=>i(new he("Request aborted")),r.send(),e&&(e.aborted&&r.abort(),e.addEventListener("abort",(()=>r.abort())))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}var me={};class ye extends Ee{constructor(A,e){super(),this.response=A,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(A){return this.response.headers[A]}async getData(){return await this.dataPromise}}class De extends Qe{constructor(A){super(A),this.parsedUrl=me.parse(this.url),this.httpApi=(this.parsedUrl.protocol,me)}constructRequest(A,e){return new Promise(((t,i)=>{const r=this.httpApi.get({...this.parsedUrl,headers:A},(A=>{const e=new Promise((e=>{const t=[];A.on("data",(A=>{t.push(A)})),A.on("end",(()=>{const A=Buffer.concat(t).buffer;e(A)})),A.on("error",i)}));t(new ye(A,e))}));r.on("error",i),e&&(e.aborted&&r.destroy(new he("Request aborted")),e.addEventListener("abort",(()=>r.destroy(new he("Request aborted")))))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}class ke extends ge{constructor(A,e,t,i){super(),this.client=A,this.headers=e,this.maxRanges=t,this.allowFullFile=i,this._fileSize=null}async fetch(A,e){return this.maxRanges>=A.length?this.fetchSlices(A,e):(this.maxRanges>0&&A.length,Promise.all(A.map((A=>this.fetchSlice(A,e)))))}async fetchSlices(A,e){const t=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map((({offset:A,length:e})=>`${A}-${A+e}`)).join(",")}`},signal:e});if(t.ok){if(206===t.status){const{type:i,params:r}=function(A){const[e,...t]=A.split(";").map((A=>A.trim()));return{type:e,params:ne(t.map((A=>A.split("="))))}}(t.getHeader("content-type"));if("multipart/byteranges"===i){const A=function(A,e){let t=null;const i=new TextDecoder("ascii"),r=[],a=`--${e}`,n=`${a}--`;for(let e=0;e<10;++e)i.decode(new Uint8Array(A,e,a.length))===a&&(t=e);if(null===t)throw new Error("Could not find initial boundary");for(;t<A.byteLength;){const e=i.decode(new Uint8Array(A,t,Math.min(a.length+1024,A.byteLength-t)));if(0===e.length||e.startsWith(n))break;if(!e.startsWith(a))throw new Error("Part does not start with boundary");const s=e.substr(a.length+2);if(0===s.length)break;const o=s.indexOf(ae),g=se(s.substr(0,o)),{start:l,end:h,total:I}=oe(g["content-range"]),B=t+a.length+o+ae.length,c=parseInt(h,10)+1-parseInt(l,10);r.push({headers:g,data:A.slice(B,B+c),offset:l,length:c,fileSize:I}),t=B+c+4}return r}(await t.getData(),r.boundary);return this._fileSize=A[0].fileSize||null,A}const a=await t.getData(),{start:n,end:s,total:o}=oe(t.getHeader("content-range"));this._fileSize=o||null;const g=[{data:a,offset:n,length:s-n}];if(A.length>1){const t=await Promise.all(A.slice(1).map((A=>this.fetchSlice(A,e))));return g.concat(t)}return g}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await t.getData();return this._fileSize=A.byteLength,[{data:A,offset:0,length:A.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(A,e){const{offset:t,length:i}=A,r=await this.client.request({headers:{...this.headers,Range:`bytes=${t}-${t+i}`},signal:e});if(r.ok){if(206===r.status){const A=await r.getData(),{total:e}=oe(r.getHeader("content-range"));return this._fileSize=e||null,{data:A,offset:t,length:i}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await r.getData();return this._fileSize=A.byteLength,{data:A,offset:0,length:A.byteLength}}}throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function be(A,{blockSize:e,cacheSize:t}){return null===e?A:new fe(A,{blockSize:e,cacheSize:t})}function _e(A,{forceXHR:e=!1,...t}={}){return"function"!=typeof fetch||e?"undefined"!=typeof XMLHttpRequest?function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new pe(A);return be(new ke(a,e,t,i),r)}(A,t):function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new De(A);return be(new ke(a,e,t,i),r)}(A,t):function(A,{headers:e={},credentials:t,maxRanges:i=0,allowFullFile:r=!1,...a}={}){const n=new ue(A,t);return be(new ke(n,e,i,r),a)}(A,t)}class Se extends ge{constructor(A){super(),this.arrayBuffer=A}fetchSlice(A,e){if(e&&e.aborted)throw new he("Request aborted");return this.arrayBuffer.slice(A.offset,A.offset+A.length)}}function xe(A,e){let t=A.length-e,i=0;do{for(let t=e;t>0;t--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function Fe(A,e,t){let i=0,r=A.length;const a=r/t;for(;r>e;){for(let t=e;t>0;--t)A[i+e]+=A[i],++i;r-=e}const n=A.slice();for(let e=0;e<a;++e)for(let i=0;i<t;++i)A[t*e+i]=n[(t-i-1)*a+e]}class Ge{async decode(A,e){const t=await this.decodeBlock(e),i=A.Predictor||1;if(1!==i){const e=!A.StripOffsets;return function(A,e,t,i,r,a){if(!e||1===e)return A;for(let A=0;A<r.length;++A){if(r[A]%8!=0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(r[A]!==r[0])throw new Error("When decoding with predictor, all samples must have the same size.")}const n=r[0]/8,s=2===a?1:r.length;for(let a=0;a<i&&!(a*s*t*n>=A.byteLength);++a){let i;if(2===e){switch(r[0]){case 8:i=new Uint8Array(A,a*s*t*n,s*t*n);break;case 16:i=new Uint16Array(A,a*s*t*n,s*t*n/2);break;case 32:i=new Uint32Array(A,a*s*t*n,s*t*n/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}xe(i,s)}else 3===e&&(i=new Uint8Array(A,a*s*t*n,s*t*n),Fe(i,s,n))}return A}(t,i,e?A.TileWidth:A.ImageWidth,e?A.TileLength:A.RowsPerStrip||A.ImageLength,A.BitsPerSample,A.PlanarConfiguration)}return t}}function Ue(A){switch(A){case RA.BYTE:case RA.ASCII:case RA.SBYTE:case RA.UNDEFINED:return 1;case RA.SHORT:case RA.SSHORT:return 2;case RA.LONG:case RA.SLONG:case RA.FLOAT:case RA.IFD:return 4;case RA.RATIONAL:case RA.SRATIONAL:case RA.DOUBLE:case RA.LONG8:case RA.SLONG8:case RA.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${A}`)}}function Re(A,e,t,i){let r=null,a=null;const n=Ue(e);switch(e){case RA.BYTE:case RA.ASCII:case RA.UNDEFINED:r=new Uint8Array(t),a=A.readUint8;break;case RA.SBYTE:r=new Int8Array(t),a=A.readInt8;break;case RA.SHORT:r=new Uint16Array(t),a=A.readUint16;break;case RA.SSHORT:r=new Int16Array(t),a=A.readInt16;break;case RA.LONG:case RA.IFD:r=new Uint32Array(t),a=A.readUint32;break;case RA.SLONG:r=new Int32Array(t),a=A.readInt32;break;case RA.LONG8:case RA.IFD8:r=new Array(t),a=A.readUint64;break;case RA.SLONG8:r=new Array(t),a=A.readInt64;break;case RA.RATIONAL:r=new Uint32Array(2*t),a=A.readUint32;break;case RA.SRATIONAL:r=new Int32Array(2*t),a=A.readInt32;break;case RA.FLOAT:r=new Float32Array(t),a=A.readFloat32;break;case RA.DOUBLE:r=new Float64Array(t),a=A.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e!==RA.RATIONAL&&e!==RA.SRATIONAL)for(let e=0;e<t;++e)r[e]=a.call(A,i+e*n);else for(let e=0;e<t;e+=2)r[e]=a.call(A,i+e*n),r[e+1]=a.call(A,i+(e*n+4));return e===RA.ASCII?new TextDecoder("utf-8").decode(r):r}class Me{constructor(A,e,t){this.fileDirectory=A,this.geoKeyDirectory=e,this.nextIFDByteOffset=t}}class Le extends Error{constructor(A){super(`No image at index ${A}`),this.index=A}}class ve{async readRasters(A={}){const{window:e,width:t,height:i}=A;let{resX:r,resY:a,bbox:n}=A;const s=await this.getImage();let o=s;const g=await this.getImageCount(),l=s.getBoundingBox();if(e&&n)throw new Error('Both "bbox" and "window" passed.');if(t||i){if(e){const[A,t]=s.getOrigin(),[i,r]=s.getResolution();n=[A+e[0]*i,t+e[1]*r,A+e[2]*i,t+e[3]*r]}const A=n||l;if(t){if(r)throw new Error("Both width and resX passed");r=(A[2]-A[0])/t}if(i){if(a)throw new Error("Both width and resY passed");a=(A[3]-A[1])/i}}if(r||a){const A=[];for(let e=0;e<g;++e){const t=await this.getImage(e),{SubfileType:i,NewSubfileType:r}=t.fileDirectory;(0===e||2===i||1&r)&&A.push(t)}A.sort(((A,e)=>A.getWidth()-e.getWidth()));for(let e=0;e<A.length;++e){const t=A[e],i=(l[2]-l[0])/t.getWidth(),n=(l[3]-l[1])/t.getHeight();if(o=t,r&&r>i||a&&a>n)break}}let h=e;if(n){const[A,e]=s.getOrigin(),[t,i]=o.getResolution(s);h=[Math.round((n[0]-A)/t),Math.round((n[1]-e)/i),Math.round((n[2]-A)/t),Math.round((n[3]-e)/i)],h=[Math.min(h[0],h[2]),Math.min(h[1],h[3]),Math.max(h[0],h[2]),Math.max(h[1],h[3])]}return o.readRasters({...A,window:h})}}class Ne extends ve{constructor(A,e,t,i,r={}){super(),this.source=A,this.littleEndian=e,this.bigTiff=t,this.firstIFDOffset=i,this.cache=r.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,e){const t=this.bigTiff?4048:1024;return new re((await this.source.fetch([{offset:A,length:void 0!==e?e:t}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const e=this.bigTiff?20:12,t=this.bigTiff?8:2;let i=await this.getSlice(A);const r=this.bigTiff?i.readUint64(A):i.readUint16(A),a=r*e+(this.bigTiff?16:6);i.covers(A,a)||(i=await this.getSlice(A,a));const n={};let s=A+(this.bigTiff?8:2);for(let A=0;A<r;s+=e,++A){const A=i.readUint16(s),e=i.readUint16(s+2),t=this.bigTiff?i.readUint64(s+4):i.readUint32(s+4);let r,a;const o=Ue(e),g=s+(this.bigTiff?12:8);if(o*t<=(this.bigTiff?8:4))r=Re(i,e,t,g);else{const A=i.readOffset(g),a=Ue(e)*t;if(i.covers(A,a))r=Re(i,e,t,A);else{r=Re(await this.getSlice(A,a),e,t,A)}}a=1===t&&-1===GA.indexOf(A)&&e!==RA.RATIONAL&&e!==RA.SRATIONAL?r[0]:r,n[xA[A]]=a}const o=function(A){const e=A.GeoKeyDirectory;if(!e)return null;const t={};for(let i=4;i<=4*e[3];i+=4){const r=KA[e[i]],a=e[i+1]?xA[e[i+1]]:null,n=e[i+2],s=e[i+3];let o=null;if(a){if(o=A[a],null==o)throw new Error(`Could not get value of geoKey '${r}'.`);"string"==typeof o?o=o.substring(s,s+n-1):o.subarray&&(o=o.subarray(s,s+n),1===n&&(o=o[0]))}else o=s;t[r]=o}return t}(n),g=i.readOffset(A+t+e*r);return new Me(n,o,g)}async requestIFD(A){if(this.ifdRequests[A])return this.ifdRequests[A];if(0===A)return this.ifdRequests[A]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[A];if(!this.ifdRequests[A-1])try{this.ifdRequests[A-1]=this.requestIFD(A-1)}catch(e){if(e instanceof Le)throw new Le(A);throw e}return this.ifdRequests[A]=(async()=>{const e=await this.ifdRequests[A-1];if(0===e.nextIFDByteOffset)throw new Le(A);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){const e=await this.requestIFD(A);return new te(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,e=!0;for(;e;)try{await this.requestIFD(A),++A}catch(A){if(!(A instanceof Le))throw A;e=!1}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e="GDAL_STRUCTURAL_METADATA_SIZE=",t=e.length+100;let i=await this.getSlice(A,t);if(e===Re(i,RA.ASCII,e.length,A)){const e=Re(i,RA.ASCII,t,A).split("\n")[0],r=Number(e.split("=")[1].split(" ")[0])+e.length;r>t&&(i=await this.getSlice(A,r));const a=Re(i,RA.ASCII,r,A);this.ghostValues={},a.split("\n").filter((A=>A.length>0)).map((A=>A.split("="))).forEach((([A,e])=>{this.ghostValues[A]=e}))}return this.ghostValues}static async fromSource(A,e,t){const i=(await A.fetch([{offset:0,length:1024}],t))[0],r=new ie(i),a=r.getUint16(0,0);let n;if(18761===a)n=!0;else{if(19789!==a)throw new TypeError("Invalid byte order value.");n=!1}const s=r.getUint16(2,n);let o;if(42===s)o=!1;else{if(43!==s)throw new TypeError("Invalid magic number.");o=!0;if(8!==r.getUint16(4,n))throw new Error("Unsupported offset byte-size.")}const g=o?r.getUint64(8,n):r.getUint32(4,n);return new Ne(A,n,o,g,e)}close(){return"function"==typeof this.source.close&&this.source.close()}}async function Te(A,e){return Ne.fromSource(function(A){return new Se(A)}(A),e)}const qe=Math.PI,Oe=qe/4,Je=180/qe;class He{constructor(A=257){this.gridSize=A;const e=A-1;if(e&e-1)throw new Error(`Expected grid size to be 2^n+1, got ${A}.`);this.numTriangles=e*e*2-2,this.numParentTriangles=this.numTriangles-e*e,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(4*this.numTriangles);for(let A=0;A<this.numTriangles;A++){let t=A+2,i=0,r=0,a=0,n=0,s=0,o=0;for(1&t?a=n=s=e:i=r=o=e;(t>>=1)>1;){const A=i+a>>1,e=r+n>>1;1&t?(a=i,n=r,i=s,r=o):(i=a,r=n,a=s,n=o),s=A,o=e}const g=4*A;this.coords[g+0]=i,this.coords[g+1]=r,this.coords[g+2]=a,this.coords[g+3]=n}}createTile(A){return new Ye(A,this)}}class Ye{constructor(A,e){const t=e.gridSize;if(A.length!==t*t)throw new Error(`Expected terrain data of length ${t*t} (${t} x ${t}), got ${A.length}.`);this.terrain=A,this.martini=e,this.errors=new Float32Array(A.length),this.update()}update(){const{numTriangles:A,numParentTriangles:e,coords:t,gridSize:i}=this.martini,{terrain:r,errors:a}=this;for(let n=A-1;n>=0;n--){const A=4*n,s=t[A+0],o=t[A+1],g=t[A+2],l=t[A+3],h=s+g>>1,I=o+l>>1,B=h+I-o,c=I+s-h,C=(r[o*i+s]+r[l*i+g])/2,f=I*i+h,E=Math.abs(C-r[f]);if(a[f]=Math.max(a[f],E),n<e){const A=(o+c>>1)*i+(s+B>>1),e=(l+c>>1)*i+(g+B>>1);a[f]=Math.max(a[f],a[A],a[e])}}}getMesh(A=0){const{gridSize:e,indices:t}=this.martini,{errors:i}=this;let r=0,a=0;const n=e-1;function s(n,o,g,l,h,I){const B=n+g>>1,c=o+l>>1;Math.abs(n-h)+Math.abs(o-I)>1&&i[c*e+B]>A?(s(h,I,n,o,B,c),s(g,l,h,I,B,c)):(t[o*e+n]=t[o*e+n]||++r,t[l*e+g]=t[l*e+g]||++r,t[I*e+h]=t[I*e+h]||++r,a++)}t.fill(0),s(0,0,n,n,n,0),s(n,n,0,0,0,n);const o=new Uint16Array(2*r),g=new Uint32Array(3*a);let l=0;function h(r,a,n,s,I,B){const c=r+n>>1,C=a+s>>1;if(Math.abs(r-I)+Math.abs(a-B)>1&&i[C*e+c]>A)h(I,B,r,a,c,C),h(n,s,I,B,c,C);else{const A=t[a*e+r]-1,i=t[s*e+n]-1,h=t[B*e+I]-1;o[2*A]=r,o[2*A+1]=a,o[2*i]=n,o[2*i+1]=s,o[2*h]=I,o[2*h+1]=B,g[l++]=A,g[l++]=i,g[l++]=h}}return h(0,0,n,n,n,0),h(n,n,0,0,0,n),{vertices:o,triangles:g}}}function ze(A,e,t,i){const r=i?function(A,e){A.westIndices.sort(((A,t)=>e[3*A+1]-e[3*t+1])),A.eastIndices.sort(((A,t)=>e[3*t+1]-e[3*A+1])),A.southIndices.sort(((A,t)=>e[3*t]-e[3*A])),A.northIndices.sort(((A,t)=>e[3*A]-e[3*t]));const t=[];for(const e in A){const i=A[e];for(let A=0;A<i.length-1;A++)t.push([i[A],i[A+1]])}return t}(i,A.POSITION.value):function(A){var e,t;const i=[];for(let e=0;e<A.length;e+=3)i.push([A[e],A[e+1]]),i.push([A[e+1],A[e+2]]),i.push([A[e+2],A[e]]);i.sort(((A,e)=>Math.min(...A)-Math.min(...e)||Math.max(...A)-Math.max(...e)));const r=[];let a=0;for(;a<i.length;)i[a][0]===(null===(e=i[a+1])||void 0===e?void 0:e[1])&&i[a][1]===(null===(t=i[a+1])||void 0===t?void 0:t[0])?a+=2:(r.push(i[a]),a++);return r}(e),a=new A.POSITION.value.constructor(6*r.length),n=new A.TEXCOORD_0.value.constructor(4*r.length),s=new e.constructor(6*r.length);for(let e=0;e<r.length;e++){Pe({edge:r[e],edgeIndex:e,attributes:A,skirtHeight:t,newPosition:a,newTexcoord0:n,newTriangles:s})}A.POSITION.value=o(A.POSITION.value,a),A.TEXCOORD_0.value=o(A.TEXCOORD_0.value,n);return{attributes:A,triangles:e instanceof Array?e.concat(s):o(e,s)}}function Pe({edge:A,edgeIndex:e,attributes:t,skirtHeight:i,newPosition:r,newTexcoord0:a,newTriangles:n}){const s=t.POSITION.value.length,o=2*e,g=2*e+1;r.set(t.POSITION.value.subarray(3*A[0],3*A[0]+3),3*o),r[3*o+2]=r[3*o+2]-i,r.set(t.POSITION.value.subarray(3*A[1],3*A[1]+3),3*g),r[3*g+2]=r[3*g+2]-i,a.set(t.TEXCOORD_0.value.subarray(2*A[0],2*A[0]+2),2*o),a.set(t.TEXCOORD_0.value.subarray(2*A[1],2*A[1]+2),2*g);const l=2*e*3;n[l]=A[0],n[l+1]=s/3+g,n[l+2]=A[1],n[l+3]=s/3+g,n[l+4]=A[0],n[l+5]=s/3+o}const Ke={type:"image",format:"uint8",useHeatMap:!0,useColorsBasedOnValues:!1,useAutoRange:!1,useDataForOpacity:!1,useSingleColor:!1,useColorClasses:!1,blurredTexture:!0,clipLow:null,clipHigh:null,multiplier:1,color:[255,0,255,255],colorScale:n.brewer.YlOrRd,colorScaleValueRange:[0,255],colorsBasedOnValues:null,colorClasses:null,alpha:100,useChannel:null,useChannelIndex:null,noDataValue:void 0,numOfChannels:void 0,nullColor:[0,0,0,0],unidentifiedColor:[0,0,0,0],clippedColor:[0,0,0,0],terrainColor:[133,133,133,255],terrainSkirtHeight:100,terrainMinValue:0,planarConfig:void 0};class Ve{constructor(){this.scale=(A,e,t,i,r)=>(A-e)*(r-i)/(t-e)+i}setUrl(A){return l(this,void 0,void 0,(function*(){const e=yield fetch(A),t=yield e.arrayBuffer(),i=yield Te(t),r=yield i.getImage(0);this.data=r}))}getMap(A,e,t){return l(this,void 0,void 0,(function*(){const i=Object.assign(Object.assign({},Ke),e);switch(i.type){case"image":return this.getBitmap(A,i);case"terrain":return this.getHeightmap(A,i,t);default:return null}}))}getHeightmap(A,e,t){var i;return l(this,void 0,void 0,(function*(){let r,a,n=[];"string"==typeof A?(yield this.setUrl(A),n=yield this.data.readRasters(),r=this.data.getWidth(),a=this.data.getHeight()):(n=A.rasters,r=A.width,a=A.height);const o=Object.assign({},e);let g=n[0];null!==(i=o.useChannelIndex)&&void 0!==i||(o.useChannelIndex=null==o.useChannel?null:o.useChannel-1),null!=e.useChannelIndex&&n[o.useChannelIndex]&&(g=n[o.useChannelIndex]);const l=new Float32Array((r+1)*(a+1)),h=g.length/(r*a);let I=null===e.useChannelIndex?0:e.useChannelIndex;for(let A=0,t=0;t<a;t++)for(let i=0;i<r;i++,A++){const i=e.noDataValue&&g[I]===e.noDataValue?e.terrainMinValue:g[I]*e.multiplier;l[A+t]=i,I+=h}for(let A=(r+1)*r,e=0;e<r;e++,A++)l[A]=l[A-r-1];for(let A=a,e=0;e<a+1;e++,A+=a+1)l[A]=l[A-1];const{terrainSkirtHeight:B}=e;let c;c=Ze(t,r,l);const{vertices:C}=c;let{triangles:f}=c,E=function(A,e,t,i,r){const a=t+1,n=A.length/2,s=new Float32Array(3*n),o=new Float32Array(2*n),[g,l,h,I]=r||[0,0,t,i],B=(h-g)/t,c=(I-l)/i;for(let r=0;r<n;r++){const n=A[2*r],l=A[2*r+1],h=l*a+n;s[3*r+0]=n*B+g,s[3*r+1]=-l*c+I,s[3*r+2]=e[h],o[2*r+0]=n/t,o[2*r+1]=l/i}return{POSITION:{value:s,size:3},TEXCOORD_0:{value:o,size:2}}}(C,l,r,a,A.bounds);const Q=s(E);if(B){const{attributes:A,triangles:e}=ze(E,f,B);E=A,f=e}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:Q},mode:4,indices:{value:Uint32Array.from(f),size:1},attributes:E}}))}getBitmap(A,e){var t;return l(this,void 0,void 0,(function*(){const i=Object.assign({},e);let r,a,n,s=[];"string"==typeof A?(yield this.setUrl(A),s=yield this.data.readRasters(),r=s.length,a=this.data.getWidth(),n=this.data.getHeight()):(s=A.rasters,r=s.length,a=A.width,n=A.height);const o=document.createElement("canvas");o.width=a,o.height=n;const g=o.getContext("2d"),l=g.createImageData(a,n);let h,I,B,c;const C=a*n*4;if(i.unidentifiedColor=this.getColorFromChromaType(i.unidentifiedColor),i.nullColor=this.getColorFromChromaType(i.nullColor),i.clippedColor=this.getColorFromChromaType(i.clippedColor),i.color=this.getColorFromChromaType(i.color),null!==(t=i.useChannelIndex)&&void 0!==t||(i.useChannelIndex=null===e.useChannel?null:e.useChannel-1),null==i.useChannelIndex){if(1===r){if(s[0].length/(a*n)==1){const A=s[0];i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C).forEach(((A,e)=>{l.data[e]=A}))}if(s[0].length/(a*n)==3){let A=0;for(let e=0;e<C;e+=4){const t=[s[0][A],s[0][A+1],s[0][A+2]],r=this.hasPixelsNoData(t,i.noDataValue)?i.nullColor:[...t,Math.floor(2.55*i.alpha)];[l.data[e],l.data[e+1],l.data[e+2],l.data[e+3]]=r,A+=3}}s[0].length/(a*n)==4&&s[0].forEach(((A,e)=>{l.data[e]=A}))}if(3===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}if(4===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}}else if(i.useChannelIndex<i.numOfChannels&&i.useChannelIndex>=0){let A=s[0];s[i.useChannelIndex]&&(A=s[i.useChannelIndex]),i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C,i.numOfChannels).forEach(((A,e)=>{l.data[e]=A}))}else{console.log(`Defined channel(${e.useChannel}) or channel index(${e.useChannelIndex}) does not exist, choose a different channel or set the useChannel property to null if you want to visualize RGB(A) imagery`);this.getDefaultColor(C,i.nullColor).forEach(((A,e)=>{l.data[e]=A}))}g.putImageData(l,0,0);return o.toDataURL("image/png")}))}getMinMax(A,e){let t=e.maxValue?e.maxValue:Number.MIN_VALUE,i=e.minValue?e.minValue:Number.MAX_VALUE;for(let r=0;r<A.length;r+=1)void 0!==e.noDataValue&&A[r]===e.noDataValue||(A[r]>t&&(t=A[r]),A[r]<i&&(i=A[r]));return[i,t]}getColorValue(A,e,t,i=1){const r=n.scale(e.colorScale).domain(e.colorScaleValueRange);let a=null===e.useChannelIndex?0:e.useChannelIndex;const s=new Array(t),o=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([A])=>A)):void 0,g=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([,A])=>[...n(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,l=e.useColorClasses?e.colorClasses.map((([A])=>[...n(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,h=e.useColorClasses?e.colorClasses.map((([,A])=>A)):void 0,I=e.useColorClasses?e.colorClasses.map((([,,A],t)=>void 0!==A?A:t===e.colorClasses.length-1?[!0,!0]:[!0,!1])):void 0;for(let n=0;n<t;n+=4){let t=e.nullColor;if(!Number.isNaN(A[a])&&(void 0===e.noDataValue||A[a]!==e.noDataValue))if(null!=e.clipLow&&A[a]<=e.clipLow||null!=e.clipHigh&&A[a]>=e.clipHigh)t=e.clippedColor;else{if(e.useHeatMap&&(t=[...r(A[a]).rgb(),Math.floor(2.55*e.alpha)]),e.useColorsBasedOnValues){const i=o.indexOf(A[a]);t=i>-1?g[i]:e.unidentifiedColor}if(e.useColorClasses){const i=this.findClassIndex(A[a],h,I);t=i>-1?l[i]:e.unidentifiedColor}e.useSingleColor&&(t=e.color),e.useDataForOpacity&&(t[3]=this.scale(A[a],e.colorScaleValueRange[0],e.colorScaleValueRange.slice(-1)[0],0,255))}[s[n],s[n+1],s[n+2],s[n+3]]=t,a+=i}return s}findClassIndex(A,e,t){for(let i=0;i<e.length;i+=1){const[r,a]=e[i],[n,s]=t[i];if((n?A>=r:A>r)&&(s?A<=a:A<a))return i}return-1}getDefaultColor(A,e){const t=new Array(A);for(let i=0;i<A;i+=4)[t[i],t[i+1],t[i+2],t[i+3]]=e;return t}getColorFromChromaType(A){return Array.isArray(A)&&4===A.length?A:[...n(A).rgb(),255]}hasPixelsNoData(A,e){return void 0!==e&&A.every((A=>A===e))}}function Ze(A,e,t){const i=new He(e+1).createTile(t),{vertices:r,triangles:a}=i.getMesh(A);return{vertices:r,triangles:a}}const Xe=2*Math.PI*6378137,We=Xe/2,je=[-20037508.342789244,20037508.342789244],$e={blurredTexture:!0};class At{constructor(A){this.cogZoomLookup=[0],this.cogResolutionLookup=[0],this.cogOrigin=[0,0],this.zoomRange=[0,0],this.loaded=!1,this.geo=new Ve,this.options=Object.assign(Object.assign({},$e),A)}initializeCog(A){var e,t,i,r;return l(this,void 0,void 0,(function*(){this.cog=yield async function(A,e={},t){return Ne.fromSource(_e(A,e),t)}(A);const a=yield this.cog.getImage();this.cogOrigin=a.getOrigin(),null!==(e=(i=this.options).noDataValue)&&void 0!==e||(i.noDataValue=this.getNoDataValue(a)),null!==(t=(r=this.options).format)&&void 0!==t||(r.format=this.getDataTypeFromTags(a)),this.options.numOfChannels=this.getNumberOfChannels(a),this.options.planarConfig=this.getPlanarConfiguration(a),[this.cogZoomLookup,this.cogResolutionLookup]=yield this.buildCogZoomResolutionLookup(this.cog),this.tileSize=a.getTileWidth(),this.zoomRange=this.calculateZoomRange(a,yield this.cog.getImageCount()),this.bounds=this.calculateBoundsAsLatLon(a)}))}getZoomRange(){return this.zoomRange}calculateZoomRange(A,e){const t=this.getZoomLevelFromResolution(A.getTileWidth(),A.getResolution()[0]);return[t-(e-1),t]}calculateBoundsAsLatLon(A){const e=A.getBoundingBox(),t=Math.min(e[0],e[2]),i=Math.max(e[0],e[2]),r=Math.min(e[1],e[3]),a=Math.max(e[1],e[3]),n=this.getLatLon([t,r]),s=this.getLatLon([i,a]);return[n[0],n[1],s[0],s[1]]}getZoomLevelFromResolution(A,e){return Math.round(Math.log2(Xe/(e*A)))}getBoundsAsLatLon(){return this.bounds}getLatLon(A){const e=We+A[0],t=-(We+(A[1]-Xe)),i=function(A){const[e,t]=A,i=e/512*(2*qe)-qe,r=2*(Math.atan(Math.exp(t/512*(2*qe)-qe))-Oe);return[i*Je,r*Je]}([e*(512/Xe),t*(512/Xe)]);return[i[0],-i[1]]}buildCogZoomResolutionLookup(A){return l(this,void 0,void 0,(function*(){const e=yield A.getImageCount(),t=yield A.getImage(0),i=t.getResolution()[0],r=t.getWidth(),a=[],n=[];for(let t=0;t<e;t++){const e=i*(r/(yield A.getImage(t)).getWidth()),s=Math.round(Math.log2(156543.03125/e));a[t]=s,n[t]=e}return[a,n]}))}getImageIndexForZoomLevel(A){const e=this.cogZoomLookup[this.cogZoomLookup.length-1];if(A>this.cogZoomLookup[0])return 0;if(A<e)return this.cogZoomLookup.length-1;const t=this.cogZoomLookup.indexOf(A);return-1===t&&console.log("getImageIndexForZoomLevel: error in retrieving image by zoom index"),t}getTileFromImage(A,e,t){return l(this,void 0,void 0,(function*(){const i=this.getImageIndexForZoomLevel(t),r=yield this.cog.getImage(i),a=r.getTileWidth(),n=r.getTileHeight();if(!a||!n)throw new Error("The image is not tiled.");const s=this.cogOrigin[0]-je[0],o=je[1]-this.cogOrigin[1],g=Xe/a/Math.pow(2,t);this.cogResolutionLookup[i];const l=Math.floor(s/g),h=Math.floor(o/g),I=[A*a-l,e*n-h,(A+1)*a-l,(e+1)*n-h],[B,c,C,f]=I,E=r.getHeight(),Q=r.getWidth(),d=Math.max(0,B),u=Math.max(0,c),w=C,p=f,m=Math.max(0,0-B),y=Math.max(0,0-c),D=[d,u,w,p];if(m>0||y>0){const A=this.createTileBuffer(this.options.format,a);A.fill(this.options.noDataValue);const e=Math.min(Q,w-d),t=Math.min(E,p-u),i=yield r.readRasters({window:D}),s=Array(i.length*i[0].length);s.fill(this.options.noDataValue);for(let r=0;r<i.length;r++){for(let s=0;s<t;s++)for(let t=0;t<e;t++){const e=y+s,o=m+t;e<a&&o<n?A[e*a+o]=i[r][s*i.width+t]:console.log("error in assigning data to tile buffer")}A.forEach(((A,e)=>{s[e*this.options.numOfChannels+r]=A}))}return[s]}return[yield r.readRasters({window:I,interleave:!0})]}))}getTile(A,e,t,i,r){return l(this,void 0,void 0,(function*(){const a=yield this.getTileFromImage(A,e,t);return this.geo.getMap({rasters:[a[0]],width:this.tileSize,height:this.tileSize,bounds:i},this.options,r)}))}getDataTypeFromTags(A){const e=A.getFileDirectory(),t=e.SampleFormat,i=e.BitsPerSample,r=t&&"number"==typeof t.length&&t.length>0?t[0]:t;let a;return a=1===r?"UInt":2===r?"Int":3===r?"Float":"Unknown",`${a}${i&&"number"==typeof i.length&&i.length>0?i[0]:i}`}getNoDataValue(A){const e=A.getGDALNoData();if(null==e)return void console.log("noDataValue is undefined or null,raster might be displayed incorrectly.");const t=String(e).replace(/\0/g,"").trim(),i=Number(t);return Number.isNaN(i)?void 0:i}getNumberOfChannels(A){return A.getSamplesPerPixel()}getPlanarConfiguration(A){const e=A.fileDirectory.PlanarConfiguration;if(1!==e&&2!==e)throw new Error("Invalid planar configuration.");return e}createTileBuffer(A,e){const t=e*e;switch(A){case"UInt8":return new Uint8Array(t);case"Int8":return new Int8Array(t);case"UInt16":return new Uint16Array(t);case"Int16":return new Int16Array(t);case"UInt32":return new Uint32Array(t);case"Int32":return new Int32Array(t);case"Float32":return new Float32Array(t);case"Float64":return new Float64Array(t);default:throw new Error(`Unsupported data type: ${A}`)}}}const et={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},tt=Object.assign(Object.assign({},i.defaultProps),{bounds:{type:"array",value:null,optional:!0,compare:!0},rasterData:et,blurredTexture:!0,opacity:1,clampToTerrain:!1,workerUrl:""});class it extends A{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return l(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({bitmapCogTiles:new At(this.props.cogBitmapOptions),initialized:!1}),yield this.init()}))}init(){return l(this,void 0,void 0,(function*(){yield this.state.bitmapCogTiles.initializeCog(this.props.rasterData);const A=this.state.bitmapCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:A,oldProps:t}){var i,r,a;const n=A.rasterData!==t.rasterData;if(n){const{rasterData:e}=A,t=e&&(Array.isArray(e)||e.includes("{x}")&&e.includes("{y}")||this.props.isTiled);this.setState({isTiled:t})}n||(A.bounds,t.bounds);this.state.isTiled,(null===(i=null==A?void 0:A.cogBitmapOptions)||void 0===i?void 0:i.useChannel)&&(null===(r=A.cogBitmapOptions)||void 0===r?void 0:r.useChannel)!==(null===(a=t.cogBitmapOptions)||void 0===a?void 0:a.useChannel)&&(this.state.bitmapCogTiles.options.useChannel=A.cogBitmapOptions.useChannel),A.workerUrl&&e.removed("workerUrl","loadOptions.terrain.workerUrl")()}getTiledBitmapData(A){return l(this,void 0,void 0,(function*(){return yield this.state.bitmapCogTiles.getTile(A.index.x,A.index.y,A.index.z)}))}renderSubLayers(A){const e=this.getSubLayerClass("image",r),{blurredTexture:t}=this.state.bitmapCogTiles.options,{opacity:i,clampToTerrain:n}=this.props,{data:s}=A;if(!s)return null;const{bbox:{west:o,south:g,east:l,north:h}}=A.tile;return new e(Object.assign(Object.assign({},A),{tileSize:this.state.bitmapCogTiles.tileSize}),Object.assign({data:null,image:s,_instanced:!1,bounds:[o,g,l,h],opacity:i,textureParameters:{minFilter:t?"linear":"nearest",magFilter:t?"linear":"nearest"},extensions:n?[new a]:[]},(null==n?void 0:n.terrainDrawMode)?{terrainDrawMode:n.terrainDrawMode}:{}))}renderLayers(){const{rasterData:A,blurredTexture:e,opacity:t,clampToTerrain:r,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h,cogBitmapOptions:I}=this.props;if(this.state.isTiled&&this.state.initialized){const{tileSize:A}=this.state.bitmapCogTiles;return new i(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledBitmapData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:[r,I.useChannel]},extent:this.state.bitmapCogTiles.getBoundsAsLatLon(),tileSize:A,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h})}return null}}it.defaultProps=tt,it.layerName="CogBitmapLayer";const rt={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},at=[1],nt=Object.assign(Object.assign({},i.defaultProps),{elevationData:rt,texture:Object.assign(Object.assign({},rt),{optional:!0}),meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0});class st extends A{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return l(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({terrainCogTiles:new At(this.props.terrainOptions),initialized:!1}),yield this.init(this.terrainUrl)}))}init(A){return l(this,void 0,void 0,(function*(){yield this.state.terrainCogTiles.initializeCog(this.props.elevationData);const A=this.state.terrainCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:A,oldProps:t}){const i=A.elevationData!==t.elevationData;if(i){const{elevationData:e}=A,t=e&&(Array.isArray(e)||e.includes("{x}")&&e.includes("{y}"))||this.props.isTiled;this.setState({isTiled:t})}i||A.meshMaxError!==t.meshMaxError||A.elevationDecoder!==t.elevationDecoder||(A.bounds,t.bounds);this.state.isTiled,A.workerUrl&&e.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:A,bounds:e,elevationDecoder:t,meshMaxError:i,signal:r}){if(!A)return null;let a=this.getLoadOptions();a=Object.assign(Object.assign({},a),{_workerType:"test",terrain:Object.assign(Object.assign({skirtHeight:this.state.isTiled?2*i:0},null==a?void 0:a.terrain),{bounds:e,meshMaxError:i,elevationDecoder:t})});const{fetch:n}=this.props;return n(A,{propName:"elevationData",layer:this,loadOptions:a,signal:r,loaders:[]})}getTiledTerrainData(A){return l(this,void 0,void 0,(function*(){this.props;const{viewport:e}=this.context;let t=[0,0],i=[0,0];if(e.isGeospatial){const r=A.bbox;t=e.projectFlat([r.west,r.south]),i=e.projectFlat([r.east,r.north])}else{const e=A.bbox;t=[e.left,e.bottom],i=[e.right,e.top]}const r=[t[0],t[1],i[0],i[1]],a=yield this.state.terrainCogTiles.getTile(A.index.x,A.index.y,A.index.z,r,this.props.meshMaxError);return Promise.all([a])}))}renderSubLayers(A){const e=this.getSubLayerClass("mesh",g),{color:i,wireframe:r,material:a}=this.props,{data:n}=A;if(!n)return null;const[s]=n;return new e(Object.assign(Object.assign({},A),{tileSize:256}),{data:at,mesh:s,_instanced:!1,coordinateSystem:t.CARTESIAN,getPosition:A=>[0,0,0],getColor:i,wireframe:r,material:a})}onViewportLoad(A){if(!A)return;const{zRange:e}=this.state,t=A.map((A=>A.content)).filter((A=>A&&A[0])).map((A=>{var e,t;const i=null===(t=null===(e=A[0])||void 0===e?void 0:e.header)||void 0===t?void 0:t.boundingBox;return null==i?void 0:i.map((A=>A[2]))}));if(0===t.length)return;const i=Math.min(...t.map((A=>A[0]))),r=Math.max(...t.map((A=>A[1])));(!e||i<e[0]||r>e[1])&&this.setState({zRange:[Number.isFinite(i)?i:0,Number.isFinite(r)?r:0]})}renderLayers(){const{color:A,material:e,elevationData:t,texture:r,wireframe:a,meshMaxError:n,elevationDecoder:s,tileSize:o,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f}=this.props;if(this.state.isTiled&&this.state.initialized)return new i(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:(E=t,Array.isArray(E)?E.join(";"):E||""),meshMaxError:n,elevationDecoder:s}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:o,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f});var E}}st.defaultProps=nt,st.layerName="TerrainLayer";var ot={CogBitmapLayer:it,CogTerrainLayer:st,cogtiles:At,GeoImage:Ve};var gt=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return A}}});const lt=257;function ht(A,e){for(let t=e.length-1;t>=0;t--)A.push(e[t]);return A}function It(A){const e=new Uint16Array(4093),t=new Uint8Array(4093);for(let A=0;A<=257;A++)e[A]=4096,t[A]=A;let i=258,r=9,a=0;function n(){i=258,r=9}function s(A){const e=function(A,e,t){const i=e%8,r=Math.floor(e/8),a=8-i,n=e+t-8*(r+1);let s=8*(r+2)-(e+t);const o=8*(r+2)-e;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)"),lt;let g=A[r]&2**(8-i)-1;g<<=t-a;let l=g;if(r+1<A.length){let e=A[r+1]>>>s;e<<=Math.max(0,t-o),l+=e}if(n>8&&r+2<A.length){const i=8*(r+3)-(e+t);l+=A[r+2]>>>i}return l}(A,a,r);return a+=r,e}function o(A,r){return t[i]=r,e[i]=A,i++,i-1}function g(A){const i=[];for(let r=A;4096!==r;r=e[r])i.push(t[r]);return i}const l=[];n();const h=new Uint8Array(A);let I,B=s(h);for(;B!==lt;){if(256===B){for(n(),B=s(h);256===B;)B=s(h);if(B===lt)break;if(B>256)throw new Error(`corrupted code at scanline ${B}`);ht(l,g(B)),I=B}else if(B<i){const A=g(B);ht(l,A),o(I,A[A.length-1]),I=B}else{const A=g(I);if(!A)throw new Error(`Bogus entry. Not in dictionary, ${I} / ${i}, position: ${a}`);ht(l,A),l.push(A[A.length-1]),o(I,A[A.length-1]),I=B}i+1>=2**r&&(12===r?I=void 0:r++),B=s(h)}return new Uint8Array(l)}var Bt=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return It(A).buffer}}});const ct=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]),Ct=4017,ft=799,Et=3406,Qt=2276,dt=1567,ut=3784,wt=5793,pt=2896;function mt(A,e){let t=0;const i=[];let r=16;for(;r>0&&!A[r-1];)--r;i.push({children:[],index:0});let a,n=i[0];for(let s=0;s<r;s++){for(let r=0;r<A[s];r++){for(n=i.pop(),n.children[n.index]=e[t];n.index>0;)n=i.pop();for(n.index++,i.push(n);i.length<=s;)i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a;t++}s+1<r&&(i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a)}return i[0].children}function yt(A,e,t,i,r,a,n,s,o){const{mcusPerLine:g,progressive:l}=t,h=e;let I=e,B=0,c=0;function C(){if(c>0)return c--,B>>c&1;if(B=A[I++],255===B){const e=A[I++];if(e)throw new Error(`unexpected marker: ${(B<<8|e).toString(16)}`)}return c=7,B>>>7}function f(A){let e,t=A;for(;null!==(e=C());){if(t=t[e],"number"==typeof t)return t;if("object"!=typeof t)throw new Error("invalid huffman sequence")}return null}function E(A){let e=A,t=0;for(;e>0;){const A=C();if(null===A)return;t=t<<1|A,--e}return t}function Q(A){const e=E(A);return e>=1<<A-1?e:e+(-1<<A)+1}let d=0;let u,w=0;function p(A,e,t,i,r){const a=t%g,n=(t/g|0)*A.v+i,s=a*A.h+r;e(A,A.blocks[n][s])}function m(A,e,t){const i=t/A.blocksPerLine|0,r=t%A.blocksPerLine;e(A,A.blocks[i][r])}const y=i.length;let D,k,b,_,S,x;x=l?0===a?0===s?function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:Q(t)<<o;A.pred+=i,e[0]=A.pred}:function(A,e){e[0]|=C()<<o}:0===s?function(A,e){if(d>0)return void d--;let t=a;const i=n;for(;t<=i;){const i=f(A.huffmanTableAC),r=15&i,a=i>>4;if(0===r){if(a<15){d=E(a)+(1<<a)-1;break}t+=16}else t+=a,e[ct[t]]=Q(r)*(1<<o),t++}}:function(A,e){let t=a;const i=n;let r=0;for(;t<=i;){const i=ct[t],a=e[i]<0?-1:1;switch(w){case 0:{const e=f(A.huffmanTableAC),t=15&e;if(r=e>>4,0===t)r<15?(d=E(r)+(1<<r),w=4):(r=16,w=1);else{if(1!==t)throw new Error("invalid ACn encoding");u=Q(t),w=r?2:3}continue}case 1:case 2:e[i]?e[i]+=(C()<<o)*a:(r--,0===r&&(w=2===w?3:0));break;case 3:e[i]?e[i]+=(C()<<o)*a:(e[i]=u<<o,w=0);break;case 4:e[i]&&(e[i]+=(C()<<o)*a)}t++}4===w&&(d--,0===d&&(w=0))}:function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:Q(t);A.pred+=i,e[0]=A.pred;let r=1;for(;r<64;){const t=f(A.huffmanTableAC),i=15&t,a=t>>4;if(0===i){if(a<15)break;r+=16}else r+=a,e[ct[r]]=Q(i),r++}};let F,G,U=0;G=1===y?i[0].blocksPerLine*i[0].blocksPerColumn:g*t.mcusPerColumn;const R=r||G;for(;U<G;){for(k=0;k<y;k++)i[k].pred=0;if(d=0,1===y)for(D=i[0],S=0;S<R;S++)m(D,x,U),U++;else for(S=0;S<R;S++){for(k=0;k<y;k++){D=i[k];const{h:A,v:e}=D;for(b=0;b<e;b++)for(_=0;_<A;_++)p(D,x,U,b,_)}if(U++,U===G)break}if(c=0,F=A[I]<<8|A[I+1],F<65280)throw new Error("marker was not found");if(!(F>=65488&&F<=65495))break;I+=2}return I-h}function Dt(A,e){const t=[],{blocksPerLine:i,blocksPerColumn:r}=e,a=i<<3,n=new Int32Array(64),s=new Uint8Array(64);function o(A,t,i){const r=e.quantizationTable;let a,n,s,o,g,l,h,I,B;const c=i;let C;for(C=0;C<64;C++)c[C]=A[C]*r[C];for(C=0;C<8;++C){const A=8*C;0!==c[1+A]||0!==c[2+A]||0!==c[3+A]||0!==c[4+A]||0!==c[5+A]||0!==c[6+A]||0!==c[7+A]?(a=wt*c[0+A]+128>>8,n=wt*c[4+A]+128>>8,s=c[2+A],o=c[6+A],g=pt*(c[1+A]-c[7+A])+128>>8,I=pt*(c[1+A]+c[7+A])+128>>8,l=c[3+A]<<4,h=c[5+A]<<4,B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*ut+o*dt+128>>8,s=s*dt-o*ut+128>>8,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*Qt+I*Et+2048>>12,g=g*Et-I*Qt+2048>>12,I=B,B=l*ft+h*Ct+2048>>12,l=l*Ct-h*ft+2048>>12,h=B,c[0+A]=a+I,c[7+A]=a-I,c[1+A]=n+h,c[6+A]=n-h,c[2+A]=s+l,c[5+A]=s-l,c[3+A]=o+g,c[4+A]=o-g):(B=wt*c[0+A]+512>>10,c[0+A]=B,c[1+A]=B,c[2+A]=B,c[3+A]=B,c[4+A]=B,c[5+A]=B,c[6+A]=B,c[7+A]=B)}for(C=0;C<8;++C){const A=C;0!==c[8+A]||0!==c[16+A]||0!==c[24+A]||0!==c[32+A]||0!==c[40+A]||0!==c[48+A]||0!==c[56+A]?(a=wt*c[0+A]+2048>>12,n=wt*c[32+A]+2048>>12,s=c[16+A],o=c[48+A],g=pt*(c[8+A]-c[56+A])+2048>>12,I=pt*(c[8+A]+c[56+A])+2048>>12,l=c[24+A],h=c[40+A],B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*ut+o*dt+2048>>12,s=s*dt-o*ut+2048>>12,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*Qt+I*Et+2048>>12,g=g*Et-I*Qt+2048>>12,I=B,B=l*ft+h*Ct+2048>>12,l=l*Ct-h*ft+2048>>12,h=B,c[0+A]=a+I,c[56+A]=a-I,c[8+A]=n+h,c[48+A]=n-h,c[16+A]=s+l,c[40+A]=s-l,c[24+A]=o+g,c[32+A]=o-g):(B=wt*i[C+0]+8192>>14,c[0+A]=B,c[8+A]=B,c[16+A]=B,c[24+A]=B,c[32+A]=B,c[40+A]=B,c[48+A]=B,c[56+A]=B)}for(C=0;C<64;++C){const A=128+(c[C]+8>>4);t[C]=A<0?0:A>255?255:A}}for(let A=0;A<r;A++){const r=A<<3;for(let A=0;A<8;A++)t.push(new Uint8Array(a));for(let a=0;a<i;a++){o(e.blocks[A][a],s,n);let i=0;const g=a<<3;for(let A=0;A<8;A++){const e=t[r+A];for(let A=0;A<8;A++)e[g+A]=s[i++]}}}return t}class kt{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(A){let e=0;function t(){const t=A[e]<<8|A[e+1];return e+=2,t}function i(){const i=t(),r=A.subarray(e,e+i-2);return e+=r.length,r}function r(A){let e,t,i=0,r=0;for(t in A.components)A.components.hasOwnProperty(t)&&(e=A.components[t],i<e.h&&(i=e.h),r<e.v&&(r=e.v));const a=Math.ceil(A.samplesPerLine/8/i),n=Math.ceil(A.scanLines/8/r);for(t in A.components)if(A.components.hasOwnProperty(t)){e=A.components[t];const s=Math.ceil(Math.ceil(A.samplesPerLine/8)*e.h/i),o=Math.ceil(Math.ceil(A.scanLines/8)*e.v/r),g=a*e.h,l=n*e.v,h=[];for(let A=0;A<l;A++){const A=[];for(let e=0;e<g;e++)A.push(new Int32Array(64));h.push(A)}e.blocksPerLine=s,e.blocksPerColumn=o,e.blocks=h}A.maxH=i,A.maxV=r,A.mcusPerLine=a,A.mcusPerColumn=n}let a=t();if(65496!==a)throw new Error("SOI not found");for(a=t();65497!==a;){switch(a){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:{const A=i();65504===a&&74===A[0]&&70===A[1]&&73===A[2]&&70===A[3]&&0===A[4]&&(this.jfif={version:{major:A[5],minor:A[6]},densityUnits:A[7],xDensity:A[8]<<8|A[9],yDensity:A[10]<<8|A[11],thumbWidth:A[12],thumbHeight:A[13],thumbData:A.subarray(14,14+3*A[12]*A[13])}),65518===a&&65===A[0]&&100===A[1]&&111===A[2]&&98===A[3]&&101===A[4]&&0===A[5]&&(this.adobe={version:A[6],flags0:A[7]<<8|A[8],flags1:A[9]<<8|A[10],transformCode:A[11]});break}case 65499:{const i=t()+e-2;for(;e<i;){const i=A[e++],r=new Int32Array(64);if(i>>4==0)for(let t=0;t<64;t++){r[ct[t]]=A[e++]}else{if(i>>4!=1)throw new Error("DQT: invalid table spec");for(let A=0;A<64;A++){r[ct[A]]=t()}}this.quantizationTables[15&i]=r}break}case 65472:case 65473:case 65474:{t();const i={extended:65473===a,progressive:65474===a,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},n=A[e++];let s;for(let t=0;t<n;t++){s=A[e];const t=A[e+1]>>4,r=15&A[e+1],a=A[e+2];i.componentsOrder.push(s),i.components[s]={h:t,v:r,quantizationIdx:a},e+=3}r(i),this.frames.push(i);break}case 65476:{const i=t();for(let t=2;t<i;){const i=A[e++],r=new Uint8Array(16);let a=0;for(let t=0;t<16;t++,e++)r[t]=A[e],a+=r[t];const n=new Uint8Array(a);for(let t=0;t<a;t++,e++)n[t]=A[e];t+=17+a,i>>4==0?this.huffmanTablesDC[15&i]=mt(r,n):this.huffmanTablesAC[15&i]=mt(r,n)}break}case 65501:t(),this.resetInterval=t();break;case 65498:{t();const i=A[e++],r=[],a=this.frames[0];for(let t=0;t<i;t++){const t=a.components[A[e++]],i=A[e++];t.huffmanTableDC=this.huffmanTablesDC[i>>4],t.huffmanTableAC=this.huffmanTablesAC[15&i],r.push(t)}const n=A[e++],s=A[e++],o=A[e++],g=yt(A,e,a,r,this.resetInterval,n,s,o>>4,15&o);e+=g;break}case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${a.toString(16)}`)}a=t()}}getResult(){const{frames:A}=this;if(0===this.frames.length)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++){const e=this.frames[A].components;for(const A of Object.keys(e))e[A].quantizationTable=this.quantizationTables[e[A].quantizationIdx],delete e[A].quantizationIdx}const e=A[0],{components:t,componentsOrder:i}=e,r=[],a=e.samplesPerLine,n=e.scanLines;for(let A=0;A<i.length;A++){const a=t[i[A]];r.push({lines:Dt(0,a),scaleX:a.h/e.maxH,scaleY:a.v/e.maxV})}const s=new Uint8Array(a*n*r.length);let o=0;for(let A=0;A<n;++A)for(let e=0;e<a;++e)for(let t=0;t<r.length;++t){const i=r[t];s[o]=i.lines[0|A*i.scaleY][0|e*i.scaleX],++o}return s}}var bt=Object.freeze({__proto__:null,default:class extends Ge{constructor(A){super(),this.reader=new kt,A.JPEGTables&&this.reader.parse(A.JPEGTables)}decodeBlock(A){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(A)),this.reader.getResult().buffer}}});
2
2
  /*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function _t(A){let e=A.length;for(;--e>=0;)A[e]=0}const St=256,xt=286,Ft=30,Gt=15,Ut=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]),Rt=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]),Mt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Lt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),vt=new Array(576);_t(vt);const Nt=new Array(60);_t(Nt);const Tt=new Array(512);_t(Tt);const qt=new Array(256);_t(qt);const Ot=new Array(29);_t(Ot);const Jt=new Array(Ft);function Ht(A,e,t,i,r){this.static_tree=A,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=r,this.has_stree=A&&A.length}let Yt,zt,Pt;function Kt(A,e){this.dyn_tree=A,this.max_code=0,this.stat_desc=e}_t(Jt);const Vt=A=>A<256?Tt[A]:Tt[256+(A>>>7)],Zt=(A,e)=>{A.pending_buf[A.pending++]=255&e,A.pending_buf[A.pending++]=e>>>8&255},Xt=(A,e,t)=>{A.bi_valid>16-t?(A.bi_buf|=e<<A.bi_valid&65535,Zt(A,A.bi_buf),A.bi_buf=e>>16-A.bi_valid,A.bi_valid+=t-16):(A.bi_buf|=e<<A.bi_valid&65535,A.bi_valid+=t)},Wt=(A,e,t)=>{Xt(A,t[2*e],t[2*e+1])},jt=(A,e)=>{let t=0;do{t|=1&A,A>>>=1,t<<=1}while(--e>0);return t>>>1},$t=(A,e,t)=>{const i=new Array(16);let r,a,n=0;for(r=1;r<=Gt;r++)n=n+t[r-1]<<1,i[r]=n;for(a=0;a<=e;a++){let e=A[2*a+1];0!==e&&(A[2*a]=jt(i[e]++,e))}},Ai=A=>{let e;for(e=0;e<xt;e++)A.dyn_ltree[2*e]=0;for(e=0;e<Ft;e++)A.dyn_dtree[2*e]=0;for(e=0;e<19;e++)A.bl_tree[2*e]=0;A.dyn_ltree[512]=1,A.opt_len=A.static_len=0,A.sym_next=A.matches=0},ei=A=>{A.bi_valid>8?Zt(A,A.bi_buf):A.bi_valid>0&&(A.pending_buf[A.pending++]=A.bi_buf),A.bi_buf=0,A.bi_valid=0},ti=(A,e,t,i)=>{const r=2*e,a=2*t;return A[r]<A[a]||A[r]===A[a]&&i[e]<=i[t]},ii=(A,e,t)=>{const i=A.heap[t];let r=t<<1;for(;r<=A.heap_len&&(r<A.heap_len&&ti(e,A.heap[r+1],A.heap[r],A.depth)&&r++,!ti(e,i,A.heap[r],A.depth));)A.heap[t]=A.heap[r],t=r,r<<=1;A.heap[t]=i},ri=(A,e,t)=>{let i,r,a,n,s=0;if(0!==A.sym_next)do{i=255&A.pending_buf[A.sym_buf+s++],i+=(255&A.pending_buf[A.sym_buf+s++])<<8,r=A.pending_buf[A.sym_buf+s++],0===i?Wt(A,r,e):(a=qt[r],Wt(A,a+St+1,e),n=Ut[a],0!==n&&(r-=Ot[a],Xt(A,r,n)),i--,a=Vt(i),Wt(A,a,t),n=Rt[a],0!==n&&(i-=Jt[a],Xt(A,i,n)))}while(s<A.sym_next);Wt(A,256,e)},ai=(A,e)=>{const t=e.dyn_tree,i=e.stat_desc.static_tree,r=e.stat_desc.has_stree,a=e.stat_desc.elems;let n,s,o,g=-1;for(A.heap_len=0,A.heap_max=573,n=0;n<a;n++)0!==t[2*n]?(A.heap[++A.heap_len]=g=n,A.depth[n]=0):t[2*n+1]=0;for(;A.heap_len<2;)o=A.heap[++A.heap_len]=g<2?++g:0,t[2*o]=1,A.depth[o]=0,A.opt_len--,r&&(A.static_len-=i[2*o+1]);for(e.max_code=g,n=A.heap_len>>1;n>=1;n--)ii(A,t,n);o=a;do{n=A.heap[1],A.heap[1]=A.heap[A.heap_len--],ii(A,t,1),s=A.heap[1],A.heap[--A.heap_max]=n,A.heap[--A.heap_max]=s,t[2*o]=t[2*n]+t[2*s],A.depth[o]=(A.depth[n]>=A.depth[s]?A.depth[n]:A.depth[s])+1,t[2*n+1]=t[2*s+1]=o,A.heap[1]=o++,ii(A,t,1)}while(A.heap_len>=2);A.heap[--A.heap_max]=A.heap[1],((A,e)=>{const t=e.dyn_tree,i=e.max_code,r=e.stat_desc.static_tree,a=e.stat_desc.has_stree,n=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,o=e.stat_desc.max_length;let g,l,h,I,B,c,C=0;for(I=0;I<=Gt;I++)A.bl_count[I]=0;for(t[2*A.heap[A.heap_max]+1]=0,g=A.heap_max+1;g<573;g++)l=A.heap[g],I=t[2*t[2*l+1]+1]+1,I>o&&(I=o,C++),t[2*l+1]=I,l>i||(A.bl_count[I]++,B=0,l>=s&&(B=n[l-s]),c=t[2*l],A.opt_len+=c*(I+B),a&&(A.static_len+=c*(r[2*l+1]+B)));if(0!==C){do{for(I=o-1;0===A.bl_count[I];)I--;A.bl_count[I]--,A.bl_count[I+1]+=2,A.bl_count[o]--,C-=2}while(C>0);for(I=o;0!==I;I--)for(l=A.bl_count[I];0!==l;)h=A.heap[--g],h>i||(t[2*h+1]!==I&&(A.opt_len+=(I-t[2*h+1])*t[2*h],t[2*h+1]=I),l--)}})(A,e),$t(t,g,A.bl_count)},ni=(A,e,t)=>{let i,r,a=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),e[2*(t+1)+1]=65535,i=0;i<=t;i++)r=n,n=e[2*(i+1)+1],++s<o&&r===n||(s<g?A.bl_tree[2*r]+=s:0!==r?(r!==a&&A.bl_tree[2*r]++,A.bl_tree[32]++):s<=10?A.bl_tree[34]++:A.bl_tree[36]++,s=0,a=r,0===n?(o=138,g=3):r===n?(o=6,g=3):(o=7,g=4))},si=(A,e,t)=>{let i,r,a=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),i=0;i<=t;i++)if(r=n,n=e[2*(i+1)+1],!(++s<o&&r===n)){if(s<g)do{Wt(A,r,A.bl_tree)}while(0!=--s);else 0!==r?(r!==a&&(Wt(A,r,A.bl_tree),s--),Wt(A,16,A.bl_tree),Xt(A,s-3,2)):s<=10?(Wt(A,17,A.bl_tree),Xt(A,s-3,3)):(Wt(A,18,A.bl_tree),Xt(A,s-11,7));s=0,a=r,0===n?(o=138,g=3):r===n?(o=6,g=3):(o=7,g=4)}};let oi=!1;const gi=(A,e,t,i)=>{Xt(A,0+(i?1:0),3),ei(A),Zt(A,t),Zt(A,~t),t&&A.pending_buf.set(A.window.subarray(e,e+t),A.pending),A.pending+=t};var li=(A,e,t,i)=>{let r,a,n=0;A.level>0?(2===A.strm.data_type&&(A.strm.data_type=(A=>{let e,t=4093624447;for(e=0;e<=31;e++,t>>>=1)if(1&t&&0!==A.dyn_ltree[2*e])return 0;if(0!==A.dyn_ltree[18]||0!==A.dyn_ltree[20]||0!==A.dyn_ltree[26])return 1;for(e=32;e<St;e++)if(0!==A.dyn_ltree[2*e])return 1;return 0})(A)),ai(A,A.l_desc),ai(A,A.d_desc),n=(A=>{let e;for(ni(A,A.dyn_ltree,A.l_desc.max_code),ni(A,A.dyn_dtree,A.d_desc.max_code),ai(A,A.bl_desc),e=18;e>=3&&0===A.bl_tree[2*Lt[e]+1];e--);return A.opt_len+=3*(e+1)+5+5+4,e})(A),r=A.opt_len+3+7>>>3,a=A.static_len+3+7>>>3,a<=r&&(r=a)):r=a=t+5,t+4<=r&&-1!==e?gi(A,e,t,i):4===A.strategy||a===r?(Xt(A,2+(i?1:0),3),ri(A,vt,Nt)):(Xt(A,4+(i?1:0),3),((A,e,t,i)=>{let r;for(Xt(A,e-257,5),Xt(A,t-1,5),Xt(A,i-4,4),r=0;r<i;r++)Xt(A,A.bl_tree[2*Lt[r]+1],3);si(A,A.dyn_ltree,e-1),si(A,A.dyn_dtree,t-1)})(A,A.l_desc.max_code+1,A.d_desc.max_code+1,n+1),ri(A,A.dyn_ltree,A.dyn_dtree)),Ai(A),i&&ei(A)},hi={_tr_init:A=>{oi||((()=>{let A,e,t,i,r;const a=new Array(16);for(t=0,i=0;i<28;i++)for(Ot[i]=t,A=0;A<1<<Ut[i];A++)qt[t++]=i;for(qt[t-1]=i,r=0,i=0;i<16;i++)for(Jt[i]=r,A=0;A<1<<Rt[i];A++)Tt[r++]=i;for(r>>=7;i<Ft;i++)for(Jt[i]=r<<7,A=0;A<1<<Rt[i]-7;A++)Tt[256+r++]=i;for(e=0;e<=Gt;e++)a[e]=0;for(A=0;A<=143;)vt[2*A+1]=8,A++,a[8]++;for(;A<=255;)vt[2*A+1]=9,A++,a[9]++;for(;A<=279;)vt[2*A+1]=7,A++,a[7]++;for(;A<=287;)vt[2*A+1]=8,A++,a[8]++;for($t(vt,287,a),A=0;A<Ft;A++)Nt[2*A+1]=5,Nt[2*A]=jt(A,5);Yt=new Ht(vt,Ut,257,xt,Gt),zt=new Ht(Nt,Rt,0,Ft,Gt),Pt=new Ht(new Array(0),Mt,0,19,7)})(),oi=!0),A.l_desc=new Kt(A.dyn_ltree,Yt),A.d_desc=new Kt(A.dyn_dtree,zt),A.bl_desc=new Kt(A.bl_tree,Pt),A.bi_buf=0,A.bi_valid=0,Ai(A)},_tr_stored_block:gi,_tr_flush_block:li,_tr_tally:(A,e,t)=>(A.pending_buf[A.sym_buf+A.sym_next++]=e,A.pending_buf[A.sym_buf+A.sym_next++]=e>>8,A.pending_buf[A.sym_buf+A.sym_next++]=t,0===e?A.dyn_ltree[2*t]++:(A.matches++,e--,A.dyn_ltree[2*(qt[t]+St+1)]++,A.dyn_dtree[2*Vt(e)]++),A.sym_next===A.sym_end),_tr_align:A=>{Xt(A,2,3),Wt(A,256,vt),(A=>{16===A.bi_valid?(Zt(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)})(A)}};var Ii=(A,e,t,i)=>{let r=65535&A|0,a=A>>>16&65535|0,n=0;for(;0!==t;){n=t>2e3?2e3:t,t-=n;do{r=r+e[i++]|0,a=a+r|0}while(--n);r%=65521,a%=65521}return r|a<<16|0};const Bi=new Uint32Array((()=>{let A,e=[];for(var t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e})());var ci=(A,e,t,i)=>{const r=Bi,a=i+t;A^=-1;for(let t=i;t<a;t++)A=A>>>8^r[255&(A^e[t])];return-1^A},Ci={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"},fi={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};const{_tr_init:Ei,_tr_stored_block:Qi,_tr_flush_block:di,_tr_tally:ui,_tr_align:wi}=hi,{Z_NO_FLUSH:pi,Z_PARTIAL_FLUSH:mi,Z_FULL_FLUSH:yi,Z_FINISH:Di,Z_BLOCK:ki,Z_OK:bi,Z_STREAM_END:_i,Z_STREAM_ERROR:Si,Z_DATA_ERROR:xi,Z_BUF_ERROR:Fi,Z_DEFAULT_COMPRESSION:Gi,Z_FILTERED:Ui,Z_HUFFMAN_ONLY:Ri,Z_RLE:Mi,Z_FIXED:Li,Z_DEFAULT_STRATEGY:vi,Z_UNKNOWN:Ni,Z_DEFLATED:Ti}=fi,qi=258,Oi=262,Ji=42,Hi=113,Yi=666,zi=(A,e)=>(A.msg=Ci[e],e),Pi=A=>2*A-(A>4?9:0),Ki=A=>{let e=A.length;for(;--e>=0;)A[e]=0},Vi=A=>{let e,t,i,r=A.w_size;e=A.hash_size,i=e;do{t=A.head[--i],A.head[i]=t>=r?t-r:0}while(--e);e=r,i=e;do{t=A.prev[--i],A.prev[i]=t>=r?t-r:0}while(--e)};let Zi=(A,e,t)=>(e<<A.hash_shift^t)&A.hash_mask;const Xi=A=>{const e=A.state;let t=e.pending;t>A.avail_out&&(t=A.avail_out),0!==t&&(A.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),A.next_out),A.next_out+=t,e.pending_out+=t,A.total_out+=t,A.avail_out-=t,e.pending-=t,0===e.pending&&(e.pending_out=0))},Wi=(A,e)=>{di(A,A.block_start>=0?A.block_start:-1,A.strstart-A.block_start,e),A.block_start=A.strstart,Xi(A.strm)},ji=(A,e)=>{A.pending_buf[A.pending++]=e},$i=(A,e)=>{A.pending_buf[A.pending++]=e>>>8&255,A.pending_buf[A.pending++]=255&e},Ar=(A,e,t,i)=>{let r=A.avail_in;return r>i&&(r=i),0===r?0:(A.avail_in-=r,e.set(A.input.subarray(A.next_in,A.next_in+r),t),1===A.state.wrap?A.adler=Ii(A.adler,e,r,t):2===A.state.wrap&&(A.adler=ci(A.adler,e,r,t)),A.next_in+=r,A.total_in+=r,r)},er=(A,e)=>{let t,i,r=A.max_chain_length,a=A.strstart,n=A.prev_length,s=A.nice_match;const o=A.strstart>A.w_size-Oi?A.strstart-(A.w_size-Oi):0,g=A.window,l=A.w_mask,h=A.prev,I=A.strstart+qi;let B=g[a+n-1],c=g[a+n];A.prev_length>=A.good_match&&(r>>=2),s>A.lookahead&&(s=A.lookahead);do{if(t=e,g[t+n]===c&&g[t+n-1]===B&&g[t]===g[a]&&g[++t]===g[a+1]){a+=2,t++;do{}while(g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&a<I);if(i=qi-(I-a),a=I-qi,i>n){if(A.match_start=e,n=i,i>=s)break;B=g[a+n-1],c=g[a+n]}}}while((e=h[e&l])>o&&0!=--r);return n<=A.lookahead?n:A.lookahead},tr=A=>{const e=A.w_size;let t,i,r;do{if(i=A.window_size-A.lookahead-A.strstart,A.strstart>=e+(e-Oi)&&(A.window.set(A.window.subarray(e,e+e-i),0),A.match_start-=e,A.strstart-=e,A.block_start-=e,A.insert>A.strstart&&(A.insert=A.strstart),Vi(A),i+=e),0===A.strm.avail_in)break;if(t=Ar(A.strm,A.window,A.strstart+A.lookahead,i),A.lookahead+=t,A.lookahead+A.insert>=3)for(r=A.strstart-A.insert,A.ins_h=A.window[r],A.ins_h=Zi(A,A.ins_h,A.window[r+1]);A.insert&&(A.ins_h=Zi(A,A.ins_h,A.window[r+3-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<3)););}while(A.lookahead<Oi&&0!==A.strm.avail_in)},ir=(A,e)=>{let t,i,r,a=A.pending_buf_size-5>A.w_size?A.w_size:A.pending_buf_size-5,n=0,s=A.strm.avail_in;do{if(t=65535,r=A.bi_valid+42>>3,A.strm.avail_out<r)break;if(r=A.strm.avail_out-r,i=A.strstart-A.block_start,t>i+A.strm.avail_in&&(t=i+A.strm.avail_in),t>r&&(t=r),t<a&&(0===t&&e!==Di||e===pi||t!==i+A.strm.avail_in))break;n=e===Di&&t===i+A.strm.avail_in?1:0,Qi(A,0,0,n),A.pending_buf[A.pending-4]=t,A.pending_buf[A.pending-3]=t>>8,A.pending_buf[A.pending-2]=~t,A.pending_buf[A.pending-1]=~t>>8,Xi(A.strm),i&&(i>t&&(i=t),A.strm.output.set(A.window.subarray(A.block_start,A.block_start+i),A.strm.next_out),A.strm.next_out+=i,A.strm.avail_out-=i,A.strm.total_out+=i,A.block_start+=i,t-=i),t&&(Ar(A.strm,A.strm.output,A.strm.next_out,t),A.strm.next_out+=t,A.strm.avail_out-=t,A.strm.total_out+=t)}while(0===n);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),n?4:e!==pi&&e!==Di&&0===A.strm.avail_in&&A.strstart===A.block_start?2:(r=A.window_size-A.strstart,A.strm.avail_in>r&&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++,r+=A.w_size,A.insert>A.strstart&&(A.insert=A.strstart)),r>A.strm.avail_in&&(r=A.strm.avail_in),r&&(Ar(A.strm,A.window,A.strstart,r),A.strstart+=r,A.insert+=r>A.w_size-A.insert?A.w_size-A.insert:r),A.high_water<A.strstart&&(A.high_water=A.strstart),r=A.bi_valid+42>>3,r=A.pending_buf_size-r>65535?65535:A.pending_buf_size-r,a=r>A.w_size?A.w_size:r,i=A.strstart-A.block_start,(i>=a||(i||e===Di)&&e!==pi&&0===A.strm.avail_in&&i<=r)&&(t=i>r?r:i,n=e===Di&&0===A.strm.avail_in&&t===i?1:0,Qi(A,A.block_start,t,n),A.block_start+=t,Xi(A.strm)),n?3:1)},rr=(A,e)=>{let t,i;for(;;){if(A.lookahead<Oi){if(tr(A),A.lookahead<Oi&&e===pi)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),0!==t&&A.strstart-t<=A.w_size-Oi&&(A.match_length=er(A,t)),A.match_length>=3)if(i=ui(A,A.strstart-A.match_start,A.match_length-3),A.lookahead-=A.match_length,A.match_length<=A.max_lazy_match&&A.lookahead>=3){A.match_length--;do{A.strstart++,A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart}while(0!=--A.match_length);A.strstart++}else A.strstart+=A.match_length,A.match_length=0,A.ins_h=A.window[A.strstart],A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+1]);else i=ui(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++;if(i&&(Wi(A,!1),0===A.strm.avail_out))return 1}return A.insert=A.strstart<2?A.strstart:2,e===Di?(Wi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Wi(A,!1),0===A.strm.avail_out)?1:2},ar=(A,e)=>{let t,i,r;for(;;){if(A.lookahead<Oi){if(tr(A),A.lookahead<Oi&&e===pi)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+3-1]),t=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=2,0!==t&&A.prev_length<A.max_lazy_match&&A.strstart-t<=A.w_size-Oi&&(A.match_length=er(A,t),A.match_length<=5&&(A.strategy===Ui||3===A.match_length&&A.strstart-A.match_start>4096)&&(A.match_length=2)),A.prev_length>=3&&A.match_length<=A.prev_length){r=A.strstart+A.lookahead-3,i=ui(A,A.strstart-1-A.prev_match,A.prev_length-3),A.lookahead-=A.prev_length-1,A.prev_length-=2;do{++A.strstart<=r&&(A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart)}while(0!=--A.prev_length);if(A.match_available=0,A.match_length=2,A.strstart++,i&&(Wi(A,!1),0===A.strm.avail_out))return 1}else if(A.match_available){if(i=ui(A,0,A.window[A.strstart-1]),i&&Wi(A,!1),A.strstart++,A.lookahead--,0===A.strm.avail_out)return 1}else A.match_available=1,A.strstart++,A.lookahead--}return A.match_available&&(i=ui(A,0,A.window[A.strstart-1]),A.match_available=0),A.insert=A.strstart<2?A.strstart:2,e===Di?(Wi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Wi(A,!1),0===A.strm.avail_out)?1:2};function nr(A,e,t,i,r){this.good_length=A,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=r}const sr=[new nr(0,0,0,0,ir),new nr(4,4,8,4,rr),new nr(4,5,16,8,rr),new nr(4,6,32,32,rr),new nr(4,4,16,16,ar),new nr(8,16,32,32,ar),new nr(8,16,128,128,ar),new nr(8,32,128,256,ar),new nr(32,128,258,1024,ar),new nr(32,258,258,4096,ar)];function or(){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=Ti,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(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Ki(this.dyn_ltree),Ki(this.dyn_dtree),Ki(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Ki(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ki(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}const gr=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.status!==Ji&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==Hi&&e.status!==Yi?1:0},lr=A=>{if(gr(A))return zi(A,Si);A.total_in=A.total_out=0,A.data_type=Ni;const e=A.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?Ji:Hi,A.adler=2===e.wrap?0:1,e.last_flush=-2,Ei(e),bi},hr=A=>{const e=lr(A);var t;return e===bi&&((t=A.state).window_size=2*t.w_size,Ki(t.head),t.max_lazy_match=sr[t.level].max_lazy,t.good_match=sr[t.level].good_length,t.nice_match=sr[t.level].nice_length,t.max_chain_length=sr[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),e},Ir=(A,e,t,i,r,a)=>{if(!A)return Si;let n=1;if(e===Gi&&(e=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),r<1||r>9||t!==Ti||i<8||i>15||e<0||e>9||a<0||a>Li||8===i&&1!==n)return zi(A,Si);8===i&&(i=9);const s=new or;return A.state=s,s.strm=A,s.status=Ji,s.wrap=n,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+3-1)/3),s.window=new Uint8Array(2*s.w_size),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<r+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=3*(s.lit_bufsize-1),s.level=e,s.strategy=a,s.method=t,hr(A)};var Br={deflateInit:(A,e)=>Ir(A,e,Ti,15,8,vi),deflateInit2:Ir,deflateReset:hr,deflateResetKeep:lr,deflateSetHeader:(A,e)=>gr(A)||2!==A.state.wrap?Si:(A.state.gzhead=e,bi),deflate:(A,e)=>{if(gr(A)||e>ki||e<0)return A?zi(A,Si):Si;const t=A.state;if(!A.output||0!==A.avail_in&&!A.input||t.status===Yi&&e!==Di)return zi(A,0===A.avail_out?Fi:Si);const i=t.last_flush;if(t.last_flush=e,0!==t.pending){if(Xi(A),0===A.avail_out)return t.last_flush=-1,bi}else if(0===A.avail_in&&Pi(e)<=Pi(i)&&e!==Di)return zi(A,Fi);if(t.status===Yi&&0!==A.avail_in)return zi(A,Fi);if(t.status===Ji&&0===t.wrap&&(t.status=Hi),t.status===Ji){let e=Ti+(t.w_bits-8<<4)<<8,i=-1;if(i=t.strategy>=Ri||t.level<2?0:t.level<6?1:6===t.level?2:3,e|=i<<6,0!==t.strstart&&(e|=32),e+=31-e%31,$i(t,e),0!==t.strstart&&($i(t,A.adler>>>16),$i(t,65535&A.adler)),A.adler=1,t.status=Hi,Xi(A),0!==t.pending)return t.last_flush=-1,bi}if(57===t.status)if(A.adler=0,ji(t,31),ji(t,139),ji(t,8),t.gzhead)ji(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),ji(t,255&t.gzhead.time),ji(t,t.gzhead.time>>8&255),ji(t,t.gzhead.time>>16&255),ji(t,t.gzhead.time>>24&255),ji(t,9===t.level?2:t.strategy>=Ri||t.level<2?4:0),ji(t,255&t.gzhead.os),t.gzhead.extra&&t.gzhead.extra.length&&(ji(t,255&t.gzhead.extra.length),ji(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(A.adler=ci(A.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=69;else if(ji(t,0),ji(t,0),ji(t,0),ji(t,0),ji(t,0),ji(t,9===t.level?2:t.strategy>=Ri||t.level<2?4:0),ji(t,3),t.status=Hi,Xi(A),0!==t.pending)return t.last_flush=-1,bi;if(69===t.status){if(t.gzhead.extra){let e=t.pending,i=(65535&t.gzhead.extra.length)-t.gzindex;for(;t.pending+i>t.pending_buf_size;){let r=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+r),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>e&&(A.adler=ci(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex+=r,Xi(A),0!==t.pending)return t.last_flush=-1,bi;e=0,i-=r}let r=new Uint8Array(t.gzhead.extra);t.pending_buf.set(r.subarray(t.gzindex,t.gzindex+i),t.pending),t.pending+=i,t.gzhead.hcrc&&t.pending>e&&(A.adler=ci(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex=0}t.status=73}if(73===t.status){if(t.gzhead.name){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=ci(A.adler,t.pending_buf,t.pending-i,i)),Xi(A),0!==t.pending)return t.last_flush=-1,bi;i=0}e=t.gzindex<t.gzhead.name.length?255&t.gzhead.name.charCodeAt(t.gzindex++):0,ji(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=ci(A.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=91}if(91===t.status){if(t.gzhead.comment){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=ci(A.adler,t.pending_buf,t.pending-i,i)),Xi(A),0!==t.pending)return t.last_flush=-1,bi;i=0}e=t.gzindex<t.gzhead.comment.length?255&t.gzhead.comment.charCodeAt(t.gzindex++):0,ji(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=ci(A.adler,t.pending_buf,t.pending-i,i))}t.status=103}if(103===t.status){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Xi(A),0!==t.pending))return t.last_flush=-1,bi;ji(t,255&A.adler),ji(t,A.adler>>8&255),A.adler=0}if(t.status=Hi,Xi(A),0!==t.pending)return t.last_flush=-1,bi}if(0!==A.avail_in||0!==t.lookahead||e!==pi&&t.status!==Yi){let i=0===t.level?ir(t,e):t.strategy===Ri?((A,e)=>{let t;for(;;){if(0===A.lookahead&&(tr(A),0===A.lookahead)){if(e===pi)return 1;break}if(A.match_length=0,t=ui(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++,t&&(Wi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===Di?(Wi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Wi(A,!1),0===A.strm.avail_out)?1:2})(t,e):t.strategy===Mi?((A,e)=>{let t,i,r,a;const n=A.window;for(;;){if(A.lookahead<=qi){if(tr(A),A.lookahead<=qi&&e===pi)return 1;if(0===A.lookahead)break}if(A.match_length=0,A.lookahead>=3&&A.strstart>0&&(r=A.strstart-1,i=n[r],i===n[++r]&&i===n[++r]&&i===n[++r])){a=A.strstart+qi;do{}while(i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&r<a);A.match_length=qi-(a-r),A.match_length>A.lookahead&&(A.match_length=A.lookahead)}if(A.match_length>=3?(t=ui(A,1,A.match_length-3),A.lookahead-=A.match_length,A.strstart+=A.match_length,A.match_length=0):(t=ui(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++),t&&(Wi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===Di?(Wi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Wi(A,!1),0===A.strm.avail_out)?1:2})(t,e):sr[t.level].func(t,e);if(3!==i&&4!==i||(t.status=Yi),1===i||3===i)return 0===A.avail_out&&(t.last_flush=-1),bi;if(2===i&&(e===mi?wi(t):e!==ki&&(Qi(t,0,0,!1),e===yi&&(Ki(t.head),0===t.lookahead&&(t.strstart=0,t.block_start=0,t.insert=0))),Xi(A),0===A.avail_out))return t.last_flush=-1,bi}return e!==Di?bi:t.wrap<=0?_i:(2===t.wrap?(ji(t,255&A.adler),ji(t,A.adler>>8&255),ji(t,A.adler>>16&255),ji(t,A.adler>>24&255),ji(t,255&A.total_in),ji(t,A.total_in>>8&255),ji(t,A.total_in>>16&255),ji(t,A.total_in>>24&255)):($i(t,A.adler>>>16),$i(t,65535&A.adler)),Xi(A),t.wrap>0&&(t.wrap=-t.wrap),0!==t.pending?bi:_i)},deflateEnd:A=>{if(gr(A))return Si;const e=A.state.status;return A.state=null,e===Hi?zi(A,xi):bi},deflateSetDictionary:(A,e)=>{let t=e.length;if(gr(A))return Si;const i=A.state,r=i.wrap;if(2===r||1===r&&i.status!==Ji||i.lookahead)return Si;if(1===r&&(A.adler=Ii(A.adler,e,t,0)),i.wrap=0,t>=i.w_size){0===r&&(Ki(i.head),i.strstart=0,i.block_start=0,i.insert=0);let A=new Uint8Array(i.w_size);A.set(e.subarray(t-i.w_size,t),0),e=A,t=i.w_size}const a=A.avail_in,n=A.next_in,s=A.input;for(A.avail_in=t,A.next_in=0,A.input=e,tr(i);i.lookahead>=3;){let A=i.strstart,e=i.lookahead-2;do{i.ins_h=Zi(i,i.ins_h,i.window[A+3-1]),i.prev[A&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=A,A++}while(--e);i.strstart=A,i.lookahead=2,tr(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,A.next_in=n,A.input=s,A.avail_in=a,i.wrap=r,bi},deflateInfo:"pako deflate (from Nodeca project)"};const cr=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var Cr={assign:function(A){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const t=e.shift();if(t){if("object"!=typeof t)throw new TypeError(t+"must be non-object");for(const e in t)cr(t,e)&&(A[e]=t[e])}}return A},flattenChunks:A=>{let e=0;for(let t=0,i=A.length;t<i;t++)e+=A[t].length;const t=new Uint8Array(e);for(let e=0,i=0,r=A.length;e<r;e++){let r=A[e];t.set(r,i),i+=r.length}return t}};let fr=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(A){fr=!1}const Er=new Uint8Array(256);for(let A=0;A<256;A++)Er[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;Er[254]=Er[254]=1;var Qr={string2buf:A=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);let e,t,i,r,a,n=A.length,s=0;for(r=0;r<n;r++)t=A.charCodeAt(r),55296==(64512&t)&&r+1<n&&(i=A.charCodeAt(r+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),r++)),s+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(s),a=0,r=0;a<s;r++)t=A.charCodeAt(r),55296==(64512&t)&&r+1<n&&(i=A.charCodeAt(r+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),r++)),t<128?e[a++]=t:t<2048?(e[a++]=192|t>>>6,e[a++]=128|63&t):t<65536?(e[a++]=224|t>>>12,e[a++]=128|t>>>6&63,e[a++]=128|63&t):(e[a++]=240|t>>>18,e[a++]=128|t>>>12&63,e[a++]=128|t>>>6&63,e[a++]=128|63&t);return e},buf2string:(A,e)=>{const t=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));let i,r;const a=new Array(2*t);for(r=0,i=0;i<t;){let e=A[i++];if(e<128){a[r++]=e;continue}let n=Er[e];if(n>4)a[r++]=65533,i+=n-1;else{for(e&=2===n?31:3===n?15:7;n>1&&i<t;)e=e<<6|63&A[i++],n--;n>1?a[r++]=65533:e<65536?a[r++]=e:(e-=65536,a[r++]=55296|e>>10&1023,a[r++]=56320|1023&e)}}return((A,e)=>{if(e<65534&&A.subarray&&fr)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(A[i]);return t})(a,r)},utf8border:(A,e)=>{(e=e||A.length)>A.length&&(e=A.length);let t=e-1;for(;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+Er[A[t]]>e?t:e}};var dr=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const ur=Object.prototype.toString,{Z_NO_FLUSH:wr,Z_SYNC_FLUSH:pr,Z_FULL_FLUSH:mr,Z_FINISH:yr,Z_OK:Dr,Z_STREAM_END:kr,Z_DEFAULT_COMPRESSION:br,Z_DEFAULT_STRATEGY:_r,Z_DEFLATED:Sr}=fi;function xr(A){this.options=Cr.assign({level:br,method:Sr,chunkSize:16384,windowBits:15,memLevel:8,strategy:_r},A||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new dr,this.strm.avail_out=0;let t=Br.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==Dr)throw new Error(Ci[t]);if(e.header&&Br.deflateSetHeader(this.strm,e.header),e.dictionary){let A;if(A="string"==typeof e.dictionary?Qr.string2buf(e.dictionary):"[object ArrayBuffer]"===ur.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,t=Br.deflateSetDictionary(this.strm,A),t!==Dr)throw new Error(Ci[t]);this._dict_set=!0}}xr.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize;let r,a;if(this.ended)return!1;for(a=e===~~e?e:!0===e?yr:wr,"string"==typeof A?t.input=Qr.string2buf(A):"[object ArrayBuffer]"===ur.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;)if(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(a===pr||a===mr)&&t.avail_out<=6)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else{if(r=Br.deflate(t,a),r===kr)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),r=Br.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Dr;if(0!==t.avail_out){if(a>0&&t.next_out>0)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else if(0===t.avail_in)break}else this.onData(t.output)}return!0},xr.prototype.onData=function(A){this.chunks.push(A)},xr.prototype.onEnd=function(A){A===Dr&&(this.result=Cr.flattenChunks(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};const Fr=16209;var Gr=function(A,e){let t,i,r,a,n,s,o,g,l,h,I,B,c,C,f,E,Q,d,u,w,p,m,y,D;const k=A.state;t=A.next_in,y=A.input,i=t+(A.avail_in-5),r=A.next_out,D=A.output,a=r-(e-A.avail_out),n=r+(A.avail_out-257),s=k.dmax,o=k.wsize,g=k.whave,l=k.wnext,h=k.window,I=k.hold,B=k.bits,c=k.lencode,C=k.distcode,f=(1<<k.lenbits)-1,E=(1<<k.distbits)-1;A:do{B<15&&(I+=y[t++]<<B,B+=8,I+=y[t++]<<B,B+=8),Q=c[I&f];e:for(;;){if(d=Q>>>24,I>>>=d,B-=d,d=Q>>>16&255,0===d)D[r++]=65535&Q;else{if(!(16&d)){if(0==(64&d)){Q=c[(65535&Q)+(I&(1<<d)-1)];continue e}if(32&d){k.mode=16191;break A}A.msg="invalid literal/length code",k.mode=Fr;break A}u=65535&Q,d&=15,d&&(B<d&&(I+=y[t++]<<B,B+=8),u+=I&(1<<d)-1,I>>>=d,B-=d),B<15&&(I+=y[t++]<<B,B+=8,I+=y[t++]<<B,B+=8),Q=C[I&E];t:for(;;){if(d=Q>>>24,I>>>=d,B-=d,d=Q>>>16&255,!(16&d)){if(0==(64&d)){Q=C[(65535&Q)+(I&(1<<d)-1)];continue t}A.msg="invalid distance code",k.mode=Fr;break A}if(w=65535&Q,d&=15,B<d&&(I+=y[t++]<<B,B+=8,B<d&&(I+=y[t++]<<B,B+=8)),w+=I&(1<<d)-1,w>s){A.msg="invalid distance too far back",k.mode=Fr;break A}if(I>>>=d,B-=d,d=r-a,w>d){if(d=w-d,d>g&&k.sane){A.msg="invalid distance too far back",k.mode=Fr;break A}if(p=0,m=h,0===l){if(p+=o-d,d<u){u-=d;do{D[r++]=h[p++]}while(--d);p=r-w,m=D}}else if(l<d){if(p+=o+l-d,d-=l,d<u){u-=d;do{D[r++]=h[p++]}while(--d);if(p=0,l<u){d=l,u-=d;do{D[r++]=h[p++]}while(--d);p=r-w,m=D}}}else if(p+=l-d,d<u){u-=d;do{D[r++]=h[p++]}while(--d);p=r-w,m=D}for(;u>2;)D[r++]=m[p++],D[r++]=m[p++],D[r++]=m[p++],u-=3;u&&(D[r++]=m[p++],u>1&&(D[r++]=m[p++]))}else{p=r-w;do{D[r++]=D[p++],D[r++]=D[p++],D[r++]=D[p++],u-=3}while(u>2);u&&(D[r++]=D[p++],u>1&&(D[r++]=D[p++]))}break}}break}}while(t<i&&r<n);u=B>>3,t-=u,B-=u<<3,I&=(1<<B)-1,A.next_in=t,A.next_out=r,A.avail_in=t<i?i-t+5:5-(t-i),A.avail_out=r<n?n-r+257:257-(r-n),k.hold=I,k.bits=B};const Ur=15,Rr=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]),Mr=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]),Lr=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]),vr=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]);var Nr=(A,e,t,i,r,a,n,s)=>{const o=s.bits;let g,l,h,I,B,c,C=0,f=0,E=0,Q=0,d=0,u=0,w=0,p=0,m=0,y=0,D=null;const k=new Uint16Array(16),b=new Uint16Array(16);let _,S,x,F=null;for(C=0;C<=Ur;C++)k[C]=0;for(f=0;f<i;f++)k[e[t+f]]++;for(d=o,Q=Ur;Q>=1&&0===k[Q];Q--);if(d>Q&&(d=Q),0===Q)return r[a++]=20971520,r[a++]=20971520,s.bits=1,0;for(E=1;E<Q&&0===k[E];E++);for(d<E&&(d=E),p=1,C=1;C<=Ur;C++)if(p<<=1,p-=k[C],p<0)return-1;if(p>0&&(0===A||1!==Q))return-1;for(b[1]=0,C=1;C<Ur;C++)b[C+1]=b[C]+k[C];for(f=0;f<i;f++)0!==e[t+f]&&(n[b[e[t+f]]++]=f);if(0===A?(D=F=n,c=20):1===A?(D=Rr,F=Mr,c=257):(D=Lr,F=vr,c=0),y=0,f=0,C=E,B=a,u=d,w=0,h=-1,m=1<<d,I=m-1,1===A&&m>852||2===A&&m>592)return 1;for(;;){_=C-w,n[f]+1<c?(S=0,x=n[f]):n[f]>=c?(S=F[n[f]-c],x=D[n[f]-c]):(S=96,x=0),g=1<<C-w,l=1<<u,E=l;do{l-=g,r[B+(y>>w)+l]=_<<24|S<<16|x|0}while(0!==l);for(g=1<<C-1;y&g;)g>>=1;if(0!==g?(y&=g-1,y+=g):y=0,f++,0==--k[C]){if(C===Q)break;C=e[t+n[f]]}if(C>d&&(y&I)!==h){for(0===w&&(w=d),B+=E,u=C-w,p=1<<u;u+w<Q&&(p-=k[u+w],!(p<=0));)u++,p<<=1;if(m+=1<<u,1===A&&m>852||2===A&&m>592)return 1;h=y&I,r[h]=d<<24|u<<16|B-a|0}}return 0!==y&&(r[B+y]=C-w<<24|64<<16|0),s.bits=d,0};const{Z_FINISH:Tr,Z_BLOCK:qr,Z_TREES:Or,Z_OK:Jr,Z_STREAM_END:Hr,Z_NEED_DICT:Yr,Z_STREAM_ERROR:zr,Z_DATA_ERROR:Pr,Z_MEM_ERROR:Kr,Z_BUF_ERROR:Vr,Z_DEFLATED:Zr}=fi,Xr=16180,Wr=16190,jr=16191,$r=16192,Aa=16194,ea=16199,ta=16200,ia=16206,ra=16209,aa=A=>(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24);function na(){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}const sa=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.mode<Xr||e.mode>16211?1:0},oa=A=>{if(sa(A))return zr;const e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=Xr,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,Jr},ga=A=>{if(sa(A))return zr;const e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,oa(A)},la=(A,e)=>{let t;if(sa(A))return zr;const i=A.state;return e<0?(t=0,e=-e):(t=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?zr:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,ga(A))},ha=(A,e)=>{if(!A)return zr;const t=new na;A.state=t,t.strm=A,t.window=null,t.mode=Xr;const i=la(A,e);return i!==Jr&&(A.state=null),i};let Ia,Ba,ca=!0;const Ca=A=>{if(ca){Ia=new Int32Array(512),Ba=new Int32Array(32);let e=0;for(;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(Nr(1,A.lens,0,288,Ia,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;Nr(2,A.lens,0,32,Ba,0,A.work,{bits:5}),ca=!1}A.lencode=Ia,A.lenbits=9,A.distcode=Ba,A.distbits=5},fa=(A,e,t,i)=>{let r;const a=A.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),i>=a.wsize?(a.window.set(e.subarray(t-a.wsize,t),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>i&&(r=i),a.window.set(e.subarray(t-i,t-i+r),a.wnext),(i-=r)?(a.window.set(e.subarray(t-i,t),0),a.wnext=i,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0};var Ea={inflateReset:ga,inflateReset2:la,inflateResetKeep:oa,inflateInit:A=>ha(A,15),inflateInit2:ha,inflate:(A,e)=>{let t,i,r,a,n,s,o,g,l,h,I,B,c,C,f,E,Q,d,u,w,p,m,y=0;const D=new Uint8Array(4);let k,b;const _=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(sa(A)||!A.output||!A.input&&0!==A.avail_in)return zr;t=A.state,t.mode===jr&&(t.mode=$r),n=A.next_out,r=A.output,o=A.avail_out,a=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,h=s,I=o,m=Jr;A:for(;;)switch(t.mode){case Xr:if(0===t.wrap){t.mode=$r;break}for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(2&t.wrap&&35615===g){0===t.wbits&&(t.wbits=15),t.check=0,D[0]=255&g,D[1]=g>>>8&255,t.check=ci(t.check,D,2,0),g=0,l=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&g)<<8)+(g>>8))%31){A.msg="incorrect header check",t.mode=ra;break}if((15&g)!==Zr){A.msg="unknown compression method",t.mode=ra;break}if(g>>>=4,l-=4,p=8+(15&g),0===t.wbits&&(t.wbits=p),p>15||p>t.wbits){A.msg="invalid window size",t.mode=ra;break}t.dmax=1<<t.wbits,t.flags=0,A.adler=t.check=1,t.mode=512&g?16189:jr,g=0,l=0;break;case 16181:for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(t.flags=g,(255&t.flags)!==Zr){A.msg="unknown compression method",t.mode=ra;break}if(57344&t.flags){A.msg="unknown header flags set",t.mode=ra;break}t.head&&(t.head.text=g>>8&1),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=ci(t.check,D,2,0)),g=0,l=0,t.mode=16182;case 16182:for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.head&&(t.head.time=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,t.check=ci(t.check,D,4,0)),g=0,l=0,t.mode=16183;case 16183:for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.head&&(t.head.xflags=255&g,t.head.os=g>>8),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=ci(t.check,D,2,0)),g=0,l=0,t.mode=16184;case 16184:if(1024&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.length=g,t.head&&(t.head.extra_len=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=ci(t.check,D,2,0)),g=0,l=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&t.flags&&(B=t.length,B>s&&(B=s),B&&(t.head&&(p=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(a,a+B),p)),512&t.flags&&4&t.wrap&&(t.check=ci(t.check,i,B,a)),s-=B,a+=B,t.length-=B),t.length))break A;t.length=0,t.mode=16186;case 16186:if(2048&t.flags){if(0===s)break A;B=0;do{p=i[a+B++],t.head&&p&&t.length<65536&&(t.head.name+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=ci(t.check,i,B,a)),s-=B,a+=B,p)break A}else t.head&&(t.head.name=null);t.length=0,t.mode=16187;case 16187:if(4096&t.flags){if(0===s)break A;B=0;do{p=i[a+B++],t.head&&p&&t.length<65536&&(t.head.comment+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=ci(t.check,i,B,a)),s-=B,a+=B,p)break A}else t.head&&(t.head.comment=null);t.mode=16188;case 16188:if(512&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(4&t.wrap&&g!==(65535&t.check)){A.msg="header crc mismatch",t.mode=ra;break}g=0,l=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=jr;break;case 16189:for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}A.adler=t.check=aa(g),g=0,l=0,t.mode=Wr;case Wr:if(0===t.havedict)return A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,Yr;A.adler=t.check=1,t.mode=jr;case jr:if(e===qr||e===Or)break A;case $r:if(t.last){g>>>=7&l,l-=7&l,t.mode=ia;break}for(;l<3;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}switch(t.last=1&g,g>>>=1,l-=1,3&g){case 0:t.mode=16193;break;case 1:if(Ca(t),t.mode=ea,e===Or){g>>>=2,l-=2;break A}break;case 2:t.mode=16196;break;case 3:A.msg="invalid block type",t.mode=ra}g>>>=2,l-=2;break;case 16193:for(g>>>=7&l,l-=7&l;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if((65535&g)!=(g>>>16^65535)){A.msg="invalid stored block lengths",t.mode=ra;break}if(t.length=65535&g,g=0,l=0,t.mode=Aa,e===Or)break A;case Aa:t.mode=16195;case 16195:if(B=t.length,B){if(B>s&&(B=s),B>o&&(B=o),0===B)break A;r.set(i.subarray(a,a+B),n),s-=B,a+=B,o-=B,n+=B,t.length-=B;break}t.mode=jr;break;case 16196:for(;l<14;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(t.nlen=257+(31&g),g>>>=5,l-=5,t.ndist=1+(31&g),g>>>=5,l-=5,t.ncode=4+(15&g),g>>>=4,l-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=ra;break}t.have=0,t.mode=16197;case 16197:for(;t.have<t.ncode;){for(;l<3;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.lens[_[t.have++]]=7&g,g>>>=3,l-=3}for(;t.have<19;)t.lens[_[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},m=Nr(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid code lengths set",t.mode=ra;break}t.have=0,t.mode=16198;case 16198:for(;t.have<t.nlen+t.ndist;){for(;y=t.lencode[g&(1<<t.lenbits)-1],f=y>>>24,E=y>>>16&255,Q=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(Q<16)g>>>=f,l-=f,t.lens[t.have++]=Q;else{if(16===Q){for(b=f+2;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(g>>>=f,l-=f,0===t.have){A.msg="invalid bit length repeat",t.mode=ra;break}p=t.lens[t.have-1],B=3+(3&g),g>>>=2,l-=2}else if(17===Q){for(b=f+3;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=f,l-=f,p=0,B=3+(7&g),g>>>=3,l-=3}else{for(b=f+7;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=f,l-=f,p=0,B=11+(127&g),g>>>=7,l-=7}if(t.have+B>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=ra;break}for(;B--;)t.lens[t.have++]=p}}if(t.mode===ra)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=ra;break}if(t.lenbits=9,k={bits:t.lenbits},m=Nr(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid literal/lengths set",t.mode=ra;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},m=Nr(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,m){A.msg="invalid distances set",t.mode=ra;break}if(t.mode=ea,e===Or)break A;case ea:t.mode=ta;case ta:if(s>=6&&o>=258){A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,Gr(A,I),n=A.next_out,r=A.output,o=A.avail_out,a=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,t.mode===jr&&(t.back=-1);break}for(t.back=0;y=t.lencode[g&(1<<t.lenbits)-1],f=y>>>24,E=y>>>16&255,Q=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(E&&0==(240&E)){for(d=f,u=E,w=Q;y=t.lencode[w+((g&(1<<d+u)-1)>>d)],f=y>>>24,E=y>>>16&255,Q=65535&y,!(d+f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=d,l-=d,t.back+=d}if(g>>>=f,l-=f,t.back+=f,t.length=Q,0===E){t.mode=16205;break}if(32&E){t.back=-1,t.mode=jr;break}if(64&E){A.msg="invalid literal/length code",t.mode=ra;break}t.extra=15&E,t.mode=16201;case 16201:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.length+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;y=t.distcode[g&(1<<t.distbits)-1],f=y>>>24,E=y>>>16&255,Q=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(0==(240&E)){for(d=f,u=E,w=Q;y=t.distcode[w+((g&(1<<d+u)-1)>>d)],f=y>>>24,E=y>>>16&255,Q=65535&y,!(d+f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=d,l-=d,t.back+=d}if(g>>>=f,l-=f,t.back+=f,64&E){A.msg="invalid distance code",t.mode=ra;break}t.offset=Q,t.extra=15&E,t.mode=16203;case 16203:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.offset+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=ra;break}t.mode=16204;case 16204:if(0===o)break A;if(B=I-o,t.offset>B){if(B=t.offset-B,B>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=ra;break}B>t.wnext?(B-=t.wnext,c=t.wsize-B):c=t.wnext-B,B>t.length&&(B=t.length),C=t.window}else C=r,c=n-t.offset,B=t.length;B>o&&(B=o),o-=B,t.length-=B;do{r[n++]=C[c++]}while(--B);0===t.length&&(t.mode=ta);break;case 16205:if(0===o)break A;r[n++]=t.length,o--,t.mode=ta;break;case ia:if(t.wrap){for(;l<32;){if(0===s)break A;s--,g|=i[a++]<<l,l+=8}if(I-=o,A.total_out+=I,t.total+=I,4&t.wrap&&I&&(A.adler=t.check=t.flags?ci(t.check,r,I,n-I):Ii(t.check,r,I,n-I)),I=o,4&t.wrap&&(t.flags?g:aa(g))!==t.check){A.msg="incorrect data check",t.mode=ra;break}g=0,l=0}t.mode=16207;case 16207:if(t.wrap&&t.flags){for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(4&t.wrap&&g!==(4294967295&t.total)){A.msg="incorrect length check",t.mode=ra;break}g=0,l=0}t.mode=16208;case 16208:m=Hr;break A;case ra:m=Pr;break A;case 16210:return Kr;default:return zr}return A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,(t.wsize||I!==A.avail_out&&t.mode<ra&&(t.mode<ia||e!==Tr))&&fa(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,t.total+=I,4&t.wrap&&I&&(A.adler=t.check=t.flags?ci(t.check,r,I,A.next_out-I):Ii(t.check,r,I,A.next_out-I)),A.data_type=t.bits+(t.last?64:0)+(t.mode===jr?128:0)+(t.mode===ea||t.mode===Aa?256:0),(0===h&&0===I||e===Tr)&&m===Jr&&(m=Vr),m},inflateEnd:A=>{if(sa(A))return zr;let e=A.state;return e.window&&(e.window=null),A.state=null,Jr},inflateGetHeader:(A,e)=>{if(sa(A))return zr;const t=A.state;return 0==(2&t.wrap)?zr:(t.head=e,e.done=!1,Jr)},inflateSetDictionary:(A,e)=>{const t=e.length;let i,r,a;return sa(A)?zr:(i=A.state,0!==i.wrap&&i.mode!==Wr?zr:i.mode===Wr&&(r=1,r=Ii(r,e,t,0),r!==i.check)?Pr:(a=fa(A,e,t,t),a?(i.mode=16210,Kr):(i.havedict=1,Jr)))},inflateInfo:"pako inflate (from Nodeca project)"};var Qa=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const da=Object.prototype.toString,{Z_NO_FLUSH:ua,Z_FINISH:wa,Z_OK:pa,Z_STREAM_END:ma,Z_NEED_DICT:ya,Z_STREAM_ERROR:Da,Z_DATA_ERROR:ka,Z_MEM_ERROR:ba}=fi;function _a(A){this.options=Cr.assign({chunkSize:65536,windowBits:15,to:""},A||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new dr,this.strm.avail_out=0;let t=Ea.inflateInit2(this.strm,e.windowBits);if(t!==pa)throw new Error(Ci[t]);if(this.header=new Qa,Ea.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Qr.string2buf(e.dictionary):"[object ArrayBuffer]"===da.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Ea.inflateSetDictionary(this.strm,e.dictionary),t!==pa)))throw new Error(Ci[t])}function Sa(A,e){const t=new _a(e);if(t.push(A),t.err)throw t.msg||Ci[t.err];return t.result}_a.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let a,n,s;if(this.ended)return!1;for(n=e===~~e?e:!0===e?wa:ua,"[object ArrayBuffer]"===da.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;){for(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),a=Ea.inflate(t,n),a===ya&&r&&(a=Ea.inflateSetDictionary(t,r),a===pa?a=Ea.inflate(t,n):a===ka&&(a=ya));t.avail_in>0&&a===ma&&t.state.wrap>0&&0!==A[t.next_in];)Ea.inflateReset(t),a=Ea.inflate(t,n);switch(a){case Da:case ka:case ya:case ba:return this.onEnd(a),this.ended=!0,!1}if(s=t.avail_out,t.next_out&&(0===t.avail_out||a===ma))if("string"===this.options.to){let A=Qr.utf8border(t.output,t.next_out),e=t.next_out-A,r=Qr.buf2string(t.output,A);t.next_out=e,t.avail_out=i-e,e&&t.output.set(t.output.subarray(A,A+e),0),this.onData(r)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(a!==pa||0!==s){if(a===ma)return a=Ea.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===t.avail_in)break}}return!0},_a.prototype.onData=function(A){this.chunks.push(A)},_a.prototype.onEnd=function(A){A===pa&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Cr.flattenChunks(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var xa={Inflate:_a,inflate:Sa,inflateRaw:function(A,e){return(e=e||{}).raw=!0,Sa(A,e)},ungzip:Sa,constants:fi};const{Inflate:Fa,inflate:Ga,inflateRaw:Ua,ungzip:Ra}=xa;var Ma=Ga;var La=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return Ma(new Uint8Array(A)).buffer}}});var va,Na=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){const e=new DataView(A),t=[];for(let i=0;i<A.byteLength;++i){let A=e.getInt8(i);if(A<0){const r=e.getUint8(i+1);A=-A;for(let e=0;e<=A;++e)t.push(r);i+=1}else{for(let r=0;r<=A;++r)t.push(e.getUint8(i+r+1));i+=A+1}}return new Uint8Array(t).buffer}}}),Ta={exports:{}};va=Ta,
3
3
  /* 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 */
4
4
  function(){var A,e,t,i,r,a,n,s,o,g,l,h,I,B,c,C,f=(A={defaultNoDataValue:-34027999387901484e22,decode:function(a,n){var s=(n=n||{}).encodedMaskData||null===n.encodedMaskData,o=r(a,n.inputOffset||0,s),g=null!==n.noDataValue?n.noDataValue:A.defaultNoDataValue,l=e(o,n.pixelType||Float32Array,n.encodedMaskData,g,n.returnMask),h={width:o.width,height:o.height,pixelData:l.resultPixels,minValue:l.minValue,maxValue:o.pixels.maxValue,noDataValue:g};return l.resultMask&&(h.maskData=l.resultMask),n.returnEncodedMask&&o.mask&&(h.encodedMaskData=o.mask.bitset?o.mask.bitset:null),n.returnFileInfo&&(h.fileInfo=t(o),n.computeUsedBitDepths&&(h.fileInfo.bitDepths=i(o))),h}},e=function(A,e,t,i,r){var n,s,o,g=0,l=A.pixels.numBlocksX,h=A.pixels.numBlocksY,I=Math.floor(A.width/l),B=Math.floor(A.height/h),c=2*A.maxZError,C=Number.MAX_VALUE;t=t||(A.mask?A.mask.bitset:null),s=new e(A.width*A.height),r&&t&&(o=new Uint8Array(A.width*A.height));for(var f,E,Q=new Float32Array(I*B),d=0;d<=h;d++){var u=d!==h?B:A.height%h;if(0!==u)for(var w=0;w<=l;w++){var p=w!==l?I:A.width%l;if(0!==p){var m,y,D,k,b=d*A.width*B+w*I,_=A.width-p,S=A.pixels.blocks[g];if(S.encoding<2?(0===S.encoding?m=S.rawData:(a(S.stuffedData,S.bitsPerPixel,S.numValidPixels,S.offset,c,Q,A.pixels.maxValue),m=Q),y=0):D=2===S.encoding?0:S.offset,t)for(E=0;E<u;E++){for(7&b&&(k=t[b>>3],k<<=7&b),f=0;f<p;f++)7&b||(k=t[b>>3]),128&k?(o&&(o[b]=1),C=C>(n=S.encoding<2?m[y++]:D)?n:C,s[b++]=n):(o&&(o[b]=0),s[b++]=i),k<<=1;b+=_}else if(S.encoding<2)for(E=0;E<u;E++){for(f=0;f<p;f++)C=C>(n=m[y++])?n:C,s[b++]=n;b+=_}else for(C=C>D?D:C,E=0;E<u;E++){for(f=0;f<p;f++)s[b++]=D;b+=_}if(1===S.encoding&&y!==S.numValidPixels)throw"Block and Mask do not match";g++}}}return{resultPixels:s,resultMask:o,minValue:C}},t=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}}},i=function(A){for(var e=A.pixels.numBlocksX*A.pixels.numBlocksY,t={},i=0;i<e;i++){var r=A.pixels.blocks[i];0===r.encoding?t.float32=!0:1===r.encoding?t[r.bitsPerPixel]=!0:t[0]=!0}return Object.keys(t)},r=function(A,e,t){var i={},r=new Uint8Array(A,e,10);if(i.fileIdentifierString=String.fromCharCode.apply(null,r),"CntZImage"!==i.fileIdentifierString.trim())throw"Unexpected file identifier string: "+i.fileIdentifierString;e+=10;var a=new DataView(A,e,24);if(i.fileVersion=a.getInt32(0,!0),i.imageType=a.getInt32(4,!0),i.height=a.getUint32(8,!0),i.width=a.getUint32(12,!0),i.maxZError=a.getFloat64(16,!0),e+=24,!t)if(a=new DataView(A,e,16),i.mask={},i.mask.numBlocksY=a.getUint32(0,!0),i.mask.numBlocksX=a.getUint32(4,!0),i.mask.numBytes=a.getUint32(8,!0),i.mask.maxValue=a.getFloat32(12,!0),e+=16,i.mask.numBytes>0){var n=new Uint8Array(Math.ceil(i.width*i.height/8)),s=(a=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),o=2,g=0;do{if(s>0)for(;s--;)n[g++]=a.getUint8(o++);else{var l=a.getUint8(o++);for(s=-s;s--;)n[g++]=l}s=a.getInt16(o,!0),o+=2}while(o<i.mask.numBytes);if(-32768!==s||g<n.length)throw"Unexpected end of mask RLE encoding";i.mask.bitset=n,e+=i.mask.numBytes}else 0==(i.mask.numBytes|i.mask.numBlocksY|i.mask.maxValue)&&(i.mask.bitset=new Uint8Array(Math.ceil(i.width*i.height/8)));a=new DataView(A,e,16),i.pixels={},i.pixels.numBlocksY=a.getUint32(0,!0),i.pixels.numBlocksX=a.getUint32(4,!0),i.pixels.numBytes=a.getUint32(8,!0),i.pixels.maxValue=a.getFloat32(12,!0),e+=16;var h=i.pixels.numBlocksX,I=i.pixels.numBlocksY,B=h+(i.width%h>0?1:0),c=I+(i.height%I>0?1:0);i.pixels.blocks=new Array(B*c);for(var C=0,f=0;f<c;f++)for(var E=0;E<B;E++){var Q=0,d=A.byteLength-e;a=new DataView(A,e,Math.min(10,d));var u={};i.pixels.blocks[C++]=u;var w=a.getUint8(0);if(Q++,u.encoding=63&w,u.encoding>3)throw"Invalid block encoding ("+u.encoding+")";if(2!==u.encoding){if(0!==w&&2!==w){if(w>>=6,u.offsetType=w,2===w)u.offset=a.getInt8(1),Q++;else if(1===w)u.offset=a.getInt16(1,!0),Q+=2;else{if(0!==w)throw"Invalid block offset type";u.offset=a.getFloat32(1,!0),Q+=4}if(1===u.encoding)if(w=a.getUint8(Q),Q++,u.bitsPerPixel=63&w,w>>=6,u.numValidPixelsType=w,2===w)u.numValidPixels=a.getUint8(Q),Q++;else if(1===w)u.numValidPixels=a.getUint16(Q,!0),Q+=2;else{if(0!==w)throw"Invalid valid pixel count type";u.numValidPixels=a.getUint32(Q,!0),Q+=4}}var p;if(e+=Q,3!==u.encoding)if(0===u.encoding){var m=(i.pixels.numBytes-1)/4;if(m!==Math.floor(m))throw"uncompressed block has invalid length";p=new ArrayBuffer(4*m),new Uint8Array(p).set(new Uint8Array(A,e,4*m));var y=new Float32Array(p);u.rawData=y,e+=4*m}else if(1===u.encoding){var D=Math.ceil(u.numValidPixels*u.bitsPerPixel/8),k=Math.ceil(D/4);p=new ArrayBuffer(4*k),new Uint8Array(p).set(new Uint8Array(A,e,D)),u.stuffedData=new Uint32Array(p),e+=D}}else e++}return i.eofOffset=e,i},a=function(A,e,t,i,r,a,n){var s,o,g,l=(1<<e)-1,h=0,I=0,B=Math.ceil((n-i)/r),c=4*A.length-Math.ceil(e*t/8);for(A[A.length-1]<<=8*c,s=0;s<t;s++){if(0===I&&(g=A[h++],I=32),I>=e)o=g>>>I-e&l,I-=e;else{var C=e-I;o=(g&l)<<C&l,o+=(g=A[h++])>>>(I=32-C)}a[s]=o<B?i+o*r:n}return a},A),E=(n=function(A,e,t,i,r,a,n,s){var o,g,l,h,I,B=(1<<t)-1,c=0,C=0,f=4*A.length-Math.ceil(t*i/8);if(A[A.length-1]<<=8*f,r)for(o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(h=t-C)&B,g+=(l=A[c++])>>>(C=32-h)),e[o]=r[g];else for(I=Math.ceil((s-a)/n),o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(h=t-C)&B,g+=(l=A[c++])>>>(C=32-h)),e[o]=g<I?a+g*n:s},s=function(A,e,t,i,r,a){var n,s=(1<<e)-1,o=0,g=0,l=0,h=0,I=0,B=[],c=4*A.length-Math.ceil(e*t/8);A[A.length-1]<<=8*c;var C=Math.ceil((a-i)/r);for(g=0;g<t;g++)0===h&&(n=A[o++],h=32),h>=e?(I=n>>>h-e&s,h-=e):(I=(n&s)<<(l=e-h)&s,I+=(n=A[o++])>>>(h=32-l)),B[g]=I<C?i+I*r:a;return B.unshift(i),B},o=function(A,e,t,i,r,a,n,s){var o,g,l,h,I=(1<<t)-1,B=0,c=0,C=0;if(r)for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&I,c-=t,C+=t):(g=l>>>C&I,c=32-(h=t-c),g|=((l=A[B++])&(1<<h)-1)<<t-h,C=h),e[o]=r[g];else{var f=Math.ceil((s-a)/n);for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&I,c-=t,C+=t):(g=l>>>C&I,c=32-(h=t-c),g|=((l=A[B++])&(1<<h)-1)<<t-h,C=h),e[o]=g<f?a+g*n:s}return e},g=function(A,e,t,i,r,a){var n,s=(1<<e)-1,o=0,g=0,l=0,h=0,I=0,B=0,c=[],C=Math.ceil((a-i)/r);for(g=0;g<t;g++)0===h&&(n=A[o++],h=32,B=0),h>=e?(I=n>>>B&s,h-=e,B+=e):(I=n>>>B&s,h=32-(l=e-h),I|=((n=A[o++])&(1<<l)-1)<<e-l,B=l),c[g]=I<C?i+I*r:a;return c.unshift(i),c},l=function(A,e,t,i){var r,a,n,s,o=(1<<t)-1,g=0,l=0,h=4*A.length-Math.ceil(t*i/8);for(A[A.length-1]<<=8*h,r=0;r<i;r++)0===l&&(n=A[g++],l=32),l>=t?(a=n>>>l-t&o,l-=t):(a=(n&o)<<(s=t-l)&o,a+=(n=A[g++])>>>(l=32-s)),e[r]=a;return e},h=function(A,e,t,i){var r,a,n,s,o=(1<<t)-1,g=0,l=0,h=0;for(r=0;r<i;r++)0===l&&(n=A[g++],l=32,h=0),l>=t?(a=n>>>h&o,l-=t,h+=t):(a=n>>>h&o,l=32-(s=t-l),a|=((n=A[g++])&(1<<s)-1)<<t-s,h=s),e[r]=a;return e},I={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(A){for(var e=65535,t=65535,i=A.length,r=Math.floor(i/2),a=0;r;){var n=r>=359?359:r;r-=n;do{e+=A[a++]<<8,t+=e+=A[a++]}while(--n);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[a]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var a,n=new DataView(A,t,8),s=n.getInt32(0,!0);if(r.fileVersion=s,t+=4,s>=3&&(r.checksum=n.getUint32(4,!0),t+=4),n=new DataView(A,t,12),r.height=n.getUint32(0,!0),r.width=n.getUint32(4,!0),t+=8,s>=4?(r.numDims=n.getUint32(8,!0),t+=4):r.numDims=1,n=new DataView(A,t,40),r.numValidPixel=n.getUint32(0,!0),r.microBlockSize=n.getInt32(4,!0),r.blobSize=n.getInt32(8,!0),r.imageType=n.getInt32(12,!0),r.maxZError=n.getFloat64(16,!0),r.zMin=n.getFloat64(24,!0),r.zMax=n.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,s>=3&&(a=s>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-a,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),a=this.readSubArray(A,e.ptr,i,r),n=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var s,o=!0;for(s=0;s<t.numDims;s++)if(a[s]!==n[s]){o=!1;break}return t.minValues=a,t.maxValues=n,o},readSubArray:function(A,e,t,i){var r;if(t===Uint8Array)r=new Uint8Array(A,e,i);else{var a=new ArrayBuffer(i);new Uint8Array(a).set(new Uint8Array(A,e,i)),r=new t(a)}return r},readMask:function(A,e){var t,i,r=e.ptr,a=e.headerInfo,n=a.width*a.height,s=a.numValidPixel,o=new DataView(A,r,4),g={};if(g.numBytes=o.getUint32(0,!0),r+=4,(0===s||n===s)&&0!==g.numBytes)throw"invalid mask";if(0===s)t=new Uint8Array(Math.ceil(n/8)),g.bitset=t,i=new Uint8Array(n),e.pixels.resultMask=i,r+=g.numBytes;else if(g.numBytes>0){t=new Uint8Array(Math.ceil(n/8));var l=(o=new DataView(A,r,g.numBytes)).getInt16(0,!0),h=2,I=0,B=0;do{if(l>0)for(;l--;)t[I++]=o.getUint8(h++);else for(B=o.getUint8(h++),l=-l;l--;)t[I++]=B;l=o.getInt16(h,!0),h+=2}while(h<g.numBytes);if(-32768!==l||I<t.length)throw"Unexpected end of mask RLE encoding";i=new Uint8Array(n);var c=0,C=0;for(C=0;C<n;C++)7&C?(c=t[C>>3],c<<=7&C):c=t[C>>3],128&c&&(i[C]=1);e.pixels.resultMask=i,g.bitset=t,r+=g.numBytes}return e.ptr=r,e.mask=g,!0},readDataOneSweep:function(A,e,t,i){var r,a=e.ptr,n=e.headerInfo,s=n.numDims,o=n.width*n.height,g=n.imageType,l=n.numValidPixel*I.getDataTypeSize(g)*s,h=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,a,l);else{var B=new ArrayBuffer(l);new Uint8Array(B).set(new Uint8Array(A,a,l)),r=new t(B)}if(r.length===o*s)e.pixels.resultPixels=i?I.swapDimensionOrder(r,o,s,t,!0):r;else{e.pixels.resultPixels=new t(o*s);var c=0,C=0,f=0,E=0;if(s>1){if(i){for(C=0;C<o;C++)if(h[C])for(E=C,f=0;f<s;f++,E+=o)e.pixels.resultPixels[E]=r[c++]}else for(C=0;C<o;C++)if(h[C])for(E=C*s,f=0;f<s;f++)e.pixels.resultPixels[E+f]=r[c++]}else for(C=0;C<o;C++)h[C]&&(e.pixels.resultPixels[C]=r[c++])}return a+=l,e.ptr=a,!0},readHuffmanTree:function(A,e){var t=this.HUFFMAN_LUT_BITS_MAX,i=new DataView(A,e.ptr,16);if(e.ptr+=16,i.getInt32(0,!0)<2)throw"unsupported Huffman version";var r=i.getInt32(4,!0),a=i.getInt32(8,!0),n=i.getInt32(12,!0);if(a>=n)return!1;var s=new Uint32Array(n-a);I.decodeBits(A,e,s);var o,g,l,h,c=[];for(o=a;o<n;o++)c[g=o-(o<r?0:r)]={first:s[o-a],second:null};var C=A.byteLength-e.ptr,f=Math.ceil(C/4),E=new ArrayBuffer(4*f);new Uint8Array(E).set(new Uint8Array(A,e.ptr,C));var Q,d=new Uint32Array(E),u=0,w=0;for(Q=d[0],o=a;o<n;o++)(h=c[g=o-(o<r?0:r)].first)>0&&(c[g].second=Q<<u>>>32-h,32-u>=h?32===(u+=h)&&(u=0,Q=d[++w]):(u+=h-32,Q=d[++w],c[g].second|=Q>>>32-u));var p=0,m=0,y=new B;for(o=0;o<c.length;o++)void 0!==c[o]&&(p=Math.max(p,c[o].first));m=p>=t?t:p;var D,k,b,_,S,x=[];for(o=a;o<n;o++)if((h=c[g=o-(o<r?0:r)].first)>0)if(D=[h,g],h<=m)for(k=c[g].second<<m-h,b=1<<m-h,l=0;l<b;l++)x[k|l]=D;else for(k=c[g].second,S=y,_=h-1;_>=0;_--)k>>>_&1?(S.right||(S.right=new B),S=S.right):(S.left||(S.left=new B),S=S.left),0!==_||S.val||(S.val=D[1]);return{decodeLut:x,numBitsLUTQick:m,numBitsLUT:p,tree:y,stuffedData:d,srcPtr:w,bitPos:u}},readHuffman:function(A,e,t,i){var r,a,n,s,o,g,l,h,B,c=e.headerInfo.numDims,C=e.headerInfo.height,f=e.headerInfo.width,E=f*C,Q=this.readHuffmanTree(A,e),d=Q.decodeLut,u=Q.tree,w=Q.stuffedData,p=Q.srcPtr,m=Q.bitPos,y=Q.numBitsLUTQick,D=Q.numBitsLUT,k=0===e.headerInfo.imageType?128:0,b=e.pixels.resultMask,_=0;m>0&&(p++,m=0);var S,x=w[p],F=1===e.encodeMode,G=new t(E*c),U=G;if(c<2||F){for(S=0;S<c;S++)if(c>1&&(U=new t(G.buffer,E*S,E),_=0),e.headerInfo.numValidPixel===f*C)for(h=0,g=0;g<C;g++)for(l=0;l<f;l++,h++){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])a=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,F?(n+=l>0?_:g>0?U[h-f]:_,n&=255,U[h]=n,_=n):U[h]=n}else for(h=0,g=0;g<C;g++)for(l=0;l<f;l++,h++)if(b[h]){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])a=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,F?(l>0&&b[h-1]?n+=_:g>0&&b[h-f]?n+=U[h-f]:n+=_,n&=255,U[h]=n,_=n):U[h]=n}}else for(h=0,g=0;g<C;g++)for(l=0;l<f;l++)if(h=g*f+l,!b||b[h])for(S=0;S<c;S++,h+=E){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])a=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,U[h]=n}e.ptr=e.ptr+4*(p+1)+(m>0?4:0),e.pixels.resultPixels=G,c>1&&!i&&(e.pixels.resultPixels=I.swapDimensionOrder(G,E,c,t))},decodeBits:function(A,e,t,i,r){var a=e.headerInfo,I=a.fileVersion,B=0,c=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,C=new DataView(A,e.ptr,c),f=C.getUint8(0);B++;var E=f>>6,Q=0===E?4:3-E,d=(32&f)>0,u=31&f,w=0;if(1===Q)w=C.getUint8(B),B++;else if(2===Q)w=C.getUint16(B,!0),B+=2;else{if(4!==Q)throw"Invalid valid pixel count type";w=C.getUint32(B,!0),B+=4}var p,m,y,D,k,b,_,S,x,F=2*a.maxZError,G=a.numDims>1?a.maxValues[r]:a.zMax;if(d){for(e.counter.lut++,S=C.getUint8(B),B++,D=Math.ceil((S-1)*u/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),y=new Uint8Array(m),e.ptr+=B,y.set(new Uint8Array(A,e.ptr,D)),_=new Uint32Array(m),e.ptr+=D,x=0;S-1>>>x;)x++;D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,b=I>=3?g(_,u,S-1,i,F,G):s(_,u,S-1,i,F,G),I>=3?o(p,t,x,w,b):n(p,t,x,w,b)}else e.counter.bitstuffer++,x=u,e.ptr+=B,x>0&&(D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,I>=3?null==i?h(p,t,x,w):o(p,t,x,w,!1,i,F,G):null==i?l(p,t,x,w):n(p,t,x,w,!1,i,F,G))},readTiles:function(A,e,t,i){var r=e.headerInfo,a=r.width,n=r.height,s=a*n,o=r.microBlockSize,g=r.imageType,l=I.getDataTypeSize(g),h=Math.ceil(a/o),B=Math.ceil(n/o);e.pixels.numBlocksY=B,e.pixels.numBlocksX=h,e.pixels.ptr=0;var c,C,f,E,Q,d,u,w,p,m,y=0,D=0,k=0,b=0,_=0,S=0,x=0,F=0,G=0,U=0,R=0,M=0,L=0,v=0,N=0,T=new t(o*o),q=n%o||o,O=a%o||o,J=r.numDims,H=e.pixels.resultMask,Y=e.pixels.resultPixels,z=r.fileVersion>=5?14:15,P=r.zMax;for(k=0;k<B;k++)for(_=k!==B-1?o:q,b=0;b<h;b++)for(U=k*a*o+b*o,R=a-(S=b!==h-1?o:O),w=0;w<J;w++){if(J>1?(m=Y,U=k*a*o+b*o,Y=new t(e.pixels.resultPixels.buffer,s*w*l,s),P=r.maxValues[w]):m=null,x=A.byteLength-e.ptr,C={},N=0,F=(c=new DataView(A,e.ptr,Math.min(10,x))).getUint8(0),N++,p=r.fileVersion>=5?4&F:0,G=F>>6&255,(F>>2&z)!=(b*o>>3&z))throw"integrity issue";if(p&&0===w)throw"integrity issue";if((Q=3&F)>3)throw e.ptr+=N,"Invalid block encoding ("+Q+")";if(2!==Q)if(0===Q){if(p)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=N,M=(M=_*S*l)<(L=A.byteLength-e.ptr)?M:L,f=new ArrayBuffer(M%l==0?M:M+l-M%l),new Uint8Array(f).set(new Uint8Array(A,e.ptr,M)),E=new t(f),v=0,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=E[v++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U++]=E[v++];U+=R}e.ptr+=v*l}else if(d=I.getDataTypeUsed(p&&g<6?4:g,G),u=I.getOnePixel(C,N,d,c),N+=I.getDataTypeSize(d),3===Q)if(e.ptr+=N,e.counter.constantoffset++,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=p?Math.min(P,m[U]+u):u),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U]=p?Math.min(P,m[U]+u):u,U++;U+=R}else if(e.ptr+=N,I.decodeBits(A,e,T,u,w),N=0,p)if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=T[N++]+m[U]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U]=T[N++]+m[U],U++;U+=R}else if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=T[N++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U++]=T[N++];U+=R}else{if(p)if(H)for(y=0;y<_;y++)for(D=0;D<S;D++)H[U]&&(Y[U]=m[U]),U++;else for(y=0;y<_;y++)for(D=0;D<S;D++)Y[U]=m[U],U++;e.counter.constant++,e.ptr+=N}}J>1&&!i&&(e.pixels.resultPixels=I.swapDimensionOrder(e.pixels.resultPixels,s,J,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:I.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,a=A.headerInfo.numDims,n=A.headerInfo.height*A.headerInfo.width,s=0,o=0,g=0,l=A.pixels.resultMask,h=A.pixels.resultPixels;if(l)if(a>1){if(e)for(s=0;s<a;s++)for(g=s*n,t=r[s],o=0;o<n;o++)l[o]&&(h[g+o]=t);else for(o=0;o<n;o++)if(l[o])for(g=o*a,s=0;s<a;s++)h[g+a]=r[s]}else for(o=0;o<n;o++)l[o]&&(h[o]=t);else if(a>1&&i!==t)if(e)for(s=0;s<a;s++)for(g=s*n,t=r[s],o=0;o<n;o++)h[g+o]=t;else for(o=0;o<n;o++)for(g=o*a,s=0;s<a;s++)h[g+s]=r[s];else for(o=0;o<n*a;o++)h[o]=t},getDataTypeArray:function(A){var e;switch(A){case 0:e=Int8Array;break;case 1:e=Uint8Array;break;case 2:e=Int16Array;break;case 3:e=Uint16Array;break;case 4:e=Int32Array;break;case 5:e=Uint32Array;break;case 6:default:e=Float32Array;break;case 7:e=Float64Array}return e},getPixelType:function(A){var e;switch(A){case 0:e="S8";break;case 1:e="U8";break;case 2:e="S16";break;case 3:e="U16";break;case 4:e="S32";break;case 5:e="U32";break;case 6:default:e="F32";break;case 7:e="F64"}return e},isValidPixelValue:function(A,e){if(null==e)return!1;var t;switch(A){case 0:t=e>=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var a=0,n=0,s=0,o=0,g=A;if(t>1)if(g=new i(e*t),r)for(a=0;a<e;a++)for(o=a,s=0;s<t;s++,o+=e)g[o]=A[n++];else for(a=0;a<e;a++)for(o=a,s=0;s<t;s++,o+=e)g[n++]=A[o];return g}},B=function(A,e,t){this.val=A,this.left=e,this.right=t},{decode:function(A,e){var t=(e=e||{}).noDataValue,i=0,r={};if(r.ptr=e.inputOffset||0,r.pixels={},I.readHeaderInfo(A,r)){var a=r.headerInfo,n=a.fileVersion,s=I.getDataTypeArray(a.imageType);if(n>5)throw"unsupported lerc version 2."+n;I.readMask(A,r),a.numValidPixel===a.width*a.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var o=a.width*a.height;r.pixels.resultPixels=new s(o*a.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var g,l=!e.returnPixelInterleavedDims;if(0!==a.numValidPixel)if(a.zMax===a.zMin)I.constructConstantSurface(r,l);else if(n>=4&&I.checkMinMaxRanges(A,r))I.constructConstantSurface(r,l);else{var h=new DataView(A,r.ptr,2),B=h.getUint8(0);if(r.ptr++,B)I.readDataOneSweep(A,r,s,l);else if(n>1&&a.imageType<=1&&Math.abs(a.maxZError-.5)<1e-5){var c=h.getUint8(1);if(r.ptr++,r.encodeMode=c,c>2||n<4&&c>1)throw"Invalid Huffman flag "+c;c?I.readHuffman(A,r,s,l):I.readTiles(A,r,s,l)}else I.readTiles(A,r,s,l)}r.eofOffset=r.ptr,e.inputOffset?(g=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(g)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(g=r.headerInfo.blobSize-r.ptr,Math.abs(g)>=1&&(r.eofOffset=r.headerInfo.blobSize));var C={width:a.width,height:a.height,pixelData:r.pixels.resultPixels,minValue:a.zMin,maxValue:a.zMax,validPixelCount:a.numValidPixel,dimCount:a.numDims,dimStats:{minValues:a.minValues,maxValues:a.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&I.isValidPixelValue(a.imageType,t)){var f=r.pixels.resultMask;for(i=0;i<o;i++)f[i]||(C.pixelData[i]=t);C.noDataValue=t}return r.noDataValue=t,e.returnFileInfo&&(C.fileInfo=I.formatFileInfo(r)),C}},getBandCount:function(A){for(var e=0,t=0,i={ptr:0,pixels:{}};t<A.byteLength-58;)I.readHeaderInfo(A,i),t+=i.headerInfo.blobSize,e++,i.ptr=t;return e}}),Q=(c=new ArrayBuffer(4),C=new Uint8Array(c),new Uint32Array(c)[0]=1,1===C[0]),d={decode:function(A,e){if(!Q)throw"Big endian system is not supported.";var t,i,r=(e=e||{}).inputOffset||0,a=new Uint8Array(A,r,10),n=String.fromCharCode.apply(null,a);if("CntZImage"===n.trim())t=f,i=1;else{if("Lerc2"!==n.substring(0,5))throw"Unexpected file identifier string: "+n;t=E,i=2}for(var s,o,g,l,h,I,B=0,c=A.byteLength-10,C=[],d={width:0,height:0,pixels:[],pixelType:e.pixelType,mask:null,statistics:[]},u=0;r<c;){var w=t.decode(A,{inputOffset:r,encodedMaskData:s,maskData:g,returnMask:0===B,returnEncodedMask:0===B,returnFileInfo:!0,returnPixelInterleavedDims:e.returnPixelInterleavedDims,pixelType:e.pixelType||null,noDataValue:e.noDataValue||null});r=w.fileInfo.eofOffset,g=w.maskData,0===B&&(s=w.encodedMaskData,d.width=w.width,d.height=w.height,d.dimCount=w.dimCount||1,d.pixelType=w.pixelType||w.fileInfo.pixelType,d.mask=g),i>1&&(g&&C.push(g),w.fileInfo.mask&&w.fileInfo.mask.numBytes>0&&u++),B++,d.pixels.push(w.pixelData),d.statistics.push({minValue:w.minValue,maxValue:w.maxValue,noDataValue:w.noDataValue,dimStats:w.dimStats})}if(i>1&&u>1){for(I=d.width*d.height,d.bandMasks=C,(g=new Uint8Array(I)).set(C[0]),l=1;l<C.length;l++)for(o=C[l],h=0;h<I;h++)g[h]=g[h]&o[h];d.maskData=g}return d}};va.exports?va.exports=d:this.Lerc=d}();var qa=oA(Ta.exports);let Oa,Ja,Ha;const Ya={env:{emscripten_notify_memory_growth:function(A){Ha=new Uint8Array(Ja.exports.memory.buffer)}}};const za="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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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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",Pa=new class{init(){return Oa||(Oa="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+za).then((A=>A.arrayBuffer())).then((A=>WebAssembly.instantiate(A,Ya))).then(this._init):WebAssembly.instantiate(Buffer.from(za,"base64"),Ya).then(this._init),Oa)}_init(A){Ja=A.instance,Ya.env.emscripten_notify_memory_growth(0)}decode(A,e=0){if(!Ja)throw new Error("ZSTDDecoder: Await .init() before decoding.");const t=A.byteLength,i=Ja.exports.malloc(t);Ha.set(A,i),e=e||Number(Ja.exports.ZSTD_findDecompressedSize(i,t));const r=Ja.exports.malloc(e),a=Ja.exports.ZSTD_decompress(r,e,i,t),n=Ha.slice(r,r+a);return Ja.exports.free(i),Ja.exports.free(r),n}};var Ka=Object.freeze({__proto__:null,default:class extends Ge{constructor(A){super(),this.planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,this.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,this.addCompression=A.LercParameters[HA]}decodeBlock(A){switch(this.addCompression){case YA:break;case zA:A=Ma(new Uint8Array(A)).buffer;break;case PA:A=Pa.decode(new Uint8Array(A)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return qa.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}},zstd:Pa});var Va=Object.freeze({__proto__:null,default:class extends Ge{constructor(){if(super(),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(A,e){const t=new Blob([e]),i=await createImageBitmap(t);let r;"undefined"!=typeof document?(r=document.createElement("canvas"),r.width=i.width,r.height=i.height):r=new OffscreenCanvas(i.width,i.height);const a=r.getContext("2d");return a.drawImage(i,0,0),a.getImageData(0,0,i.width,i.height).data.buffer}}});export{ot as default};