1var vI=Object.defineProperty;var xI=(a,i,n)=>i in a?vI(a,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[i]=n;var Ee=(a,i,n)=>xI(a,typeof i!="symbol"?i+"":i,n);import{N as w0}from"./CNcFdr_w.js";const O0=new Map,Bi=[],BI=(a,i,n)=>{if(i&&typeof i.init=="function"&&typeof i.createInferenceSessionHandler=="function"){const g=O0.get(a);if(g===void 0)O0.set(a,{backend:i,priority:n});else{if(g.priority>n)return;if(g.priority===n&&g.backend!==i)throw new Error(`cannot register backend "${a}" using priority ${n}`)}if(n>=0){const p=Bi.indexOf(a);p!==-1&&Bi.splice(p,1);for(let h=0;h<Bi.length;h++)if(O0.get(Bi[h]).priority<=n){Bi.splice(h,0,a);return}Bi.push(a)}return}throw new TypeError("not a valid backend")},yI=async a=>{const i=O0.get(a);if(!i)return"backend not found.";if(i.initialized)return i.backend;if(i.aborted)return i.error;{const n=!!i.initPromise;try{return n||(i.initPromise=i.backend.init(a)),await i.initPromise,i.initialized=!0,i.backend}catch(g){return n||(i.error=`${g}`,i.aborted=!0),i.error}finally{delete i.initPromise}}},DI=async a=>{const i=a.executionProviders||[],n=i.map(M=>typeof M=="string"?M:M.name),g=n.length===0?Bi:n;let p;const h=[],C=new Set;for(const M of g){const E=await yI(M);typeof E=="string"?h.push({name:M,err:E}):(p||(p=E),p===E&&C.add(M))}if(!p)throw new Error(`no available backend found. ERR: ${h.map(M=>`[${M.name}] ${M.err}`).join(", ")}`);for(const{name:M,err:E}of h)n.includes(M)&&console.warn(`removing requested execution provider "${M}" from session options because it is not available: ${E}`);const k=i.filter(M=>C.has(typeof M=="string"?M:M.name));return[p,new Proxy(a,{get:(M,E)=>E==="executionProviders"?k:Reflect.get(M,E)})]},TI="1.21.0";let gg="warning";const La={wasm:{},webgl:{},webgpu:{},versions:{common:TI},set logLevel(a){if(a!==void 0){if(typeof a!="string"||["verbose","info","warning","error","fatal"].indexOf(a)===-1)throw new Error(`Unsupported logging level: ${a}`);gg=a}},get logLevel(){return gg}};Object.defineProperty(La,"logLevel",{enumerable:!0});const PI=La,GI=(a,i)=>{const n=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);n.width=a.dims[3],n.height=a.dims[2];const g=n.getContext("2d");if(g!=null){let p,h;(i==null?void 0:i.tensorLayout)!==void 0&&i.tensorLayout==="NHWC"?(p=a.dims[2],h=a.dims[3]):(p=a.dims[3],h=a.dims[2]);const C=(i==null?void 0:i.format)!==void 0?i.format:"RGB",k=i==null?void 0:i.norm;let M,E;k===void 0||k.mean===void 0?M=[255,255,255,255]:typeof k.mean=="number"?M=[k.mean,k.mean,k.mean,k.mean]:(M=[k.mean[0],k.mean[1],k.mean[2],0],k.mean[3]!==void 0&&(M[3]=k.mean[3])),k===void 0||k.bias===void 0?E=[0,0,0,0]:typeof k.bias=="number"?E=[k.bias,k.bias,k.bias,k.bias]:(E=[k.bias[0],k.bias[1],k.bias[2],0],k.bias[3]!==void 0&&(E[3]=k.bias[3]));const D=h*p;let B=0,v=D,S=D*2,F=-1;C==="RGBA"?(B=0,v=D,S=D*2,F=D*3):C==="RGB"?(B=0,v=D,S=D*2):C==="RBG"&&(B=0,S=D,v=D*2);for(let R=0;R<h;R++)for(let X=0;X<p;X++){const z=(a.data[B++]-E[0])*M[0],L=(a.data[v++]-E[1])*M[1],K=(a.data[S++]-E[2])*M[2],d=F===-1?255:(a.data[F++]-E[3])*M[3];g.fillStyle="rgba("+z+","+L+","+K+","+d+")",g.fillRect(X,R,1,1)}if("toDataURL"in n)return n.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},QI=(a,i)=>{const n=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");let g;if(n!=null){let p,h,C;(i==null?void 0:i.tensorLayout)!==void 0&&i.tensorLayout==="NHWC"?(p=a.dims[2],h=a.dims[1],C=a.dims[3]):(p=a.dims[3],h=a.dims[2],C=a.dims[1]);const k=i!==void 0&&i.format!==void 0?i.format:"RGB",M=i==null?void 0:i.norm;let E,D;M===void 0||M.mean===void 0?E=[255,255,255,255]:typeof M.mean=="number"?E=[M.mean,M.mean,M.mean,M.mean]:(E=[M.mean[0],M.mean[1],M.mean[2],255],M.mean[3]!==void 0&&(E[3]=M.mean[3])),M===void 0||M.bias===void 0?D=[0,0,0,0]:typeof M.bias=="number"?D=[M.bias,M.bias,M.bias,M.bias]:(D=[M.bias[0],M.bias[1],M.bias[2],0],M.bias[3]!==void 0&&(D[3]=M.bias[3]));const B=h*p;if(i!==void 0&&(i.format!==void 0&&C===4&&i.format!=="RGBA"||C===3&&i.format!=="RGB"&&i.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");const v=4;let S=0,F=1,R=2,X=3,z=0,L=B,K=B*2,d=-1;k==="RGBA"?(z=0,L=B,K=B*2,d=B*3):k==="RGB"?(z=0,L=B,K=B*2):k==="RBG"&&(z=0,K=B,L=B*2),g=n.createImageData(p,h);for(let w=0;w<h*p;S+=v,F+=v,R+=v,X+=v,w++)g.data[S]=(a.data[z++]-D[0])*E[0],g.data[F]=(a.data[L++]-D[1])*E[1],g.data[R]=(a.data[K++]-D[2])*E[2],g.data[X]=d===-1?255:(a.data[d++]-D[3])*E[3]}else throw new Error("Can not access image data");return g},Ul=(a,i)=>{if(a===void 0)throw new Error("Image buffer must be defined");if(i.height===void 0||i.width===void 0)throw new Error("Image height and width must be defined");if(i.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");const{height:n,width:g}=i,p=i.norm??{mean:255,bias:0};let h,C;typeof p.mean=="number"?h=[p.mean,p.mean,p.mean,p.mean]:h=[p.mean[0],p.mean[1],p.mean[2],p.mean[3]??255],typeof p.bias=="number"?C=[p.bias,p.bias,p.bias,p.bias]:C=[p.bias[0],p.bias[1],p.bias[2],p.bias[3]??0];const k=i.format!==void 0?i.format:"RGBA",M=i.tensorFormat!==void 0&&i.tensorFormat!==void 0?i.tensorFormat:"RGB",E=n*g,D=M==="RGBA"?new Float32Array(E*4):new Float32Array(E*3);let B=4,v=0,S=1,F=2,R=3,X=0,z=E,L=E*2,K=-1;k==="RGB"&&(B=3,v=0,S=1,F=2,R=-1),M==="RGBA"?K=E*3:M==="RBG"?(X=0,L=E,z=E*2):M==="BGR"&&(L=0,z=E,X=E*2);for(let w=0;w<E;w++,v+=B,F+=B,S+=B,R+=B)D[X++]=(a[v]+C[0])/h[0],D[z++]=(a[S]+C[1])/h[1],D[L++]=(a[F]+C[2])/h[2],K!==-1&&R!==-1&&(D[K++]=(a[R]+C[3])/h[3]);return M==="RGBA"?new Ba("float32",D,[1,4,n,g]):new Ba("float32",D,[1,3,n,g])},FI=async(a,i)=>
1{const n=typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement,g=typeof ImageData<"u"&&a instanceof ImageData,p=typeof ImageBitmap<"u"&&a instanceof ImageBitmap,h=typeof a=="string";let C,k=i??{};const M=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},E=D=>typeof HTMLCanvasElement<"u"&&D instanceof HTMLCanvasElement||D instanceof OffscreenCanvas?D.getContext("2d"):null;if(n){const D=M();D.width=a.width,D.height=a.height;const B=E(D);if(B!=null){let v=a.height,S=a.width;if(i!==void 0&&i.resizedHeight!==void 0&&i.resizedWidth!==void 0&&(v=i.resizedHeight,S=i.resizedWidth),i!==void 0){if(k=i,i.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");k.tensorFormat="RGBA",k.height=v,k.width=S}else k.tensorFormat="RGBA",k.height=v,k.width=S;B.drawImage(a,0,0),C=B.getImageData(0,0,S,v).data}else throw new Error("Can not access image data")}else if(g){let D,B;if(i!==void 0&&i.resizedWidth!==void 0&&i.resizedHeight!==void 0?(D=i.resizedHeight,B=i.resizedWidth):(D=a.height,B=a.width),i!==void 0&&(k=i),k.format="RGBA",k.height=D,k.width=B,i!==void 0){const v=M();v.width=B,v.height=D;const S=E(v);if(S!=null)S.putImageData(a,0,0),C=S.getImageData(0,0,B,D).data;else throw new Error("Can not access image data")}else C=a.data}else if(p){if(i===void 0)throw new Error("Please provide image config with format for Imagebitmap");const D=M();D.width=a.width,D.height=a.height;const B=E(D);if(B!=null){const v=a.height,S=a.width;return B.drawImage(a,0,0,S,v),C=B.getImageData(0,0,S,v).data,k.height=v,k.width=S,Ul(C,k)}else throw new Error("Can not access image data")}else{if(h)return new Promise((D,B)=>{const v=M(),S=E(v);if(!a||!S)return B();const F=new Image;F.crossOrigin="Anonymous",F.src=a,F.onload=()=>{v.width=F.width,v.height=F.height,S.drawImage(F,0,0,v.width,v.height);const R=S.getImageData(0,0,v.width,v.height);k.height=v.height,k.width=v.width,D(Ul(R.data,k))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(C!==void 0)return Ul(C,k);throw new Error("Input data provided is not supported - aborted tensor creation")},SI=(a,i)=>{const{width:n,height:g,download:p,dispose:h}=i,C=[1,g,n,4];return new Ba({location:"texture",type:"float32",texture:a,dims:C,download:p,dispose:h})},OI=(a,i)=>{const{dataType:n,dims:g,download:p,dispose:h}=i;return new Ba({location:"gpu-buffer",type:n??"float32",gpuBuffer:a,dims:g,download:p,dispose:h})},_I=(a,i)=>{const{dataType:n,dims:g,download:p,dispose:h}=i;return new Ba({location:"ml-tensor",type:n??"float32",mlTensor:a,dims:g,download:p,dispose:h})},zI=(a,i,n)=>new Ba({location:"cpu-pinned",type:a,data:i,dims:n??[i.length]}),so=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),_0=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);let pg=!1;const NI=()=>{if(!pg){pg=!0;const a=typeof BigInt64Array<"u"&&BigInt64Array.from,i=typeof BigUint64Array<"u"&&BigUint64Array.from,n=globalThis.Float16Array,g=typeof n<"u"&&n.from;a&&(so.set("int64",BigInt64Array),_0.set(BigInt64Array,"int64")),i&&(so.set("uint64",BigUint64Array),_0.set(BigUint64Array,"uint64")),g?(so.set("float16",n),_0.set(n,"float16")):so.set("float16",Uint16Array)}},LI=a=>{let i=1;for(let n=0;n<a.length;n++){const g=a[n];if(typeof g!="number"||!Number.isSafeInteger(g))throw new TypeError(`dims[${n}] must be an integer, got: ${g}`);if(g<0)throw new RangeError(`dims[${n}] must be a non-negative integer, got: ${g}`);i*=g}return i},RI=(a,i)=>{switch(a.location){case"cpu":return new Ba(a.type,a.data,i);case"cpu-pinned":return new Ba({location:"cpu-pinned",data:a.data,type:a.type,dims:i});case"texture":return new Ba({location:"texture",texture:a.texture,type:a.type,dims:i});case"gpu-buffer":return new Ba({location:"gpu-buffer",gpuBuffer:a.gpuBuffer,type:a.type,dims:i});case"ml-tensor":return new Ba({location:"ml-tensor",mlTensor:a.mlTensor,type:a.type,dims:i});default:throw new Error(`tensorReshape: tensor location ${a.location} is not supported`)}};let Ba=class{constructor(i,n,g){NI();let p,h;if(typeof i=="object"&&"location"in i)switch(this.dataLocation=i.location,p=i.type,h=i.dims,i.location){case"cpu-pinned":{const k=so.get(p);if(!k)throw new TypeError(`unsupported type "${p}" to create tensor from pinned buffer`);if(!(i.data instanceof k))throw new TypeError(`buffer should be of type ${k.name}`);this.cpuData=i.data;break}case"texture":{if(p!=="float32")throw new TypeError(`unsupported type "${p}" to create tensor from texture`);this.gpuTextureData=i.texture,this.downloader=i.download,this.disposer=i.dispose;break}case"gpu-buffer":{if(p!=="float32"&&p!=="float16"&&p!=="int32"&&p!=="int64"&&p!=="uint32"&&p!=="uint8"&&p!=="bool"&&p!=="uint4"&&p!=="int4")throw new TypeError(`unsupported type "${p}" to create tensor from gpu buffer`);this.gpuBufferData=i.gpuBuffer,this.downloader=i.download,this.disposer=i.dispose;break}case"ml-tensor":{if(p!=="float32"&&p!=="float16"&&p!=="int32"&&p!=="int64"&&p!=="uint32"&&p!=="uint64"&&p!=="int8"&&p!=="uint8"&&p!=="bool"&&p!=="uint4"&&p!=="int4")throw new TypeError(`unsupported type "${p}" to create tensor from MLTensor`);this.mlTensorData=i.mlTensor,this.downloader=i.download,this.disposer=i.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let k,M;
1if(typeof i=="string")if(p=i,M=g,i==="string"){if(!Array.isArray(n))throw new TypeError("A string tensor's data must be a string array.");k=n}else{const E=so.get(i);if(E===void 0)throw new TypeError(`Unsupported tensor type: ${i}.`);if(Array.isArray(n)){if(i==="float16"&&E===Uint16Array||i==="uint4"||i==="int4")throw new TypeError(`Creating a ${i} tensor from number array is not supported. Please use ${E.name} as data.`);i==="uint64"||i==="int64"?k=E.from(n,BigInt):k=E.from(n)}else if(n instanceof E)k=n;else if(n instanceof Uint8ClampedArray)if(i==="uint8")k=Uint8Array.from(n);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(i==="float16"&&n instanceof Uint16Array&&E!==Uint16Array)k=new globalThis.Float16Array(n.buffer,n.byteOffset,n.length);else throw new TypeError(`A ${p} tensor's data must be type of ${E}`)}else if(M=n,Array.isArray(i)){if(i.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const E=typeof i[0];if(E==="string")p="string",k=i;else if(E==="boolean")p="bool",k=Uint8Array.from(i);else throw new TypeError(`Invalid element type of data array: ${E}.`)}else if(i instanceof Uint8ClampedArray)p="uint8",k=Uint8Array.from(i);else{const E=_0.get(i.constructor);if(E===void 0)throw new TypeError(`Unsupported type for tensor data: ${i.constructor}.`);p=E,k=i}if(M===void 0)M=[k.length];else if(!Array.isArray(M))throw new TypeError("A tensor's dims must be a number array");h=M,this.cpuData=k,this.dataLocation="cpu"}const C=LI(h);if(this.cpuData&&C!==this.cpuData.length&&!((p==="uint4"||p==="int4")&&Math.ceil(C/2)===this.cpuData.length))throw new Error(`Tensor's size(${C}) does not match data length(${this.cpuData.length}).`);this.type=p,this.dims=h,this.size=C}static async fromImage(i,n){return FI(i,n)}static fromTexture(i,n){return SI(i,n)}static fromGpuBuffer(i,n){return OI(i,n)}static fromMLTensor(i,n){return _I(i,n)}static fromPinnedBuffer(i,n,g){return zI(i,n,g)}toDataURL(i){return GI(this,i)}toImageData(i){return QI(this,i)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(i){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;const n=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=n,i&&this.disposer&&(this.disposer(),this.disposer=void 0),n}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(i){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return RI(this,i)}};const to=Ba,ah=(a,i)=>{(typeof La.trace>"u"?!La.wasm.trace:!La.trace)||console.timeStamp(`${a}::ORT::${i}`)},nh=(a,i)=>{var p;const n=((p=new Error().stack)==null?void 0:p.split(/\r\n|\r|\n/g))||[];let g=!1;for(let h=0;h<n.length;h++){if(g&&!n[h].includes("TRACE_FUNC")){let C=`FUNC_${a}::${n[h].trim().split(" ")[1]}`;i&&(C+=`::${i}`),ah("CPU",C);return}n[h].includes("TRACE_FUNC")&&(g=!0)}},ec=a=>{(typeof La.trace>"u"?!La.wasm.trace:!La.trace)||nh("BEGIN",a)},Ac=a=>{(typeof La.trace>"u"?!La.wasm.trace:!La.trace)||nh("END",a)};let jI=class ih{constructor(i){this.handler=i}async run(i,n,g){ec();const p={};let h={};if(typeof i!="object"||i===null||i instanceof to||Array.isArray(i))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let C=!0;if(typeof n=="object"){if(n===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(n instanceof to)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(n)){if(n.length===0)throw new TypeError("'fetches' cannot be an empty array.");C=!1;
1for(const E of n){if(typeof E!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(E)===-1)throw new RangeError(`'fetches' contains invalid output name: ${E}.`);p[E]=null}if(typeof g=="object"&&g!==null)h=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else{let E=!1;const D=Object.getOwnPropertyNames(n);for(const B of this.outputNames)if(D.indexOf(B)!==-1){const v=n[B];(v===null||v instanceof to)&&(E=!0,C=!1,p[B]=v)}if(E){if(typeof g=="object"&&g!==null)h=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else h=n}}else if(typeof n<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const E of this.inputNames)if(typeof i[E]>"u")throw new Error(`input '${E}' is missing in 'feeds'.`);if(C)for(const E of this.outputNames)p[E]=null;const k=await this.handler.run(i,p,h),M={};for(const E in k)if(Object.hasOwnProperty.call(k,E)){const D=k[E];D instanceof to?M[E]=D:M[E]=new to(D.type,D.data,D.dims)}return Ac(),M}async release(){return this.handler.dispose()}static async create(i,n,g,p){ec();let h,C={};if(typeof i=="string"){if(h=i,typeof n=="object"&&n!==null)C=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(i instanceof Uint8Array){if(h=i,typeof n=="object"&&n!==null)C=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(i instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&i instanceof SharedArrayBuffer){const D=i;let B=0,v=i.byteLength;if(typeof n=="object"&&n!==null)C=n;else if(typeof n=="number"){if(B=n,!Number.isSafeInteger(B))throw new RangeError("'byteOffset' must be an integer.");if(B<0||B>=D.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${D.byteLength}).`);if(v=i.byteLength-B,typeof g=="number"){if(v=g,!Number.isSafeInteger(v))throw new RangeError("'byteLength' must be an integer.");if(v<=0||B+v>D.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${D.byteLength-B}].`);if(typeof p=="object"&&p!==null)C=p;else if(typeof p<"u")throw new TypeError("'options' must be an object.")}else if(typeof g<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof n<"u")throw new TypeError("'options' must be an object.");h=new Uint8Array(D,B,v)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");const[k,M]=await DI(C),E=await k.createInferenceSessionHandler(h,M);return Ac(),new ih(E)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};const WI=jI,VI=Object.freeze(Object.defineProperty({__proto__:null,InferenceSession:WI,TRACE:ah,TRACE_FUNC_BEGIN:ec,TRACE_FUNC_END:Ac,Tensor:to,env:PI,registerBackend:BI},Symbol.toStringTag,{value:"Module"}));/*! 2 * ONNX Runtime Web v1.22.0-dev.20250409-89f8206ba4 3 * Copyright (c) Microsoft Corporation. All rights reserved. 4 * Licensed under the MIT License. 5 */var Cc=Object.defineProperty,YI=Object.getOwnPropertyDescriptor,HI=Object.getOwnPropertyNames,UI=Object.prototype.hasOwnProperty,KI=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(i,n)=>(typeof require<"u"?require:i)[n]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')}),kA=(a,i)=>()=>(a&&(i=a(a=0)),i),po=(a,i)=>{for(var n in i)Cc(a,n,{get:i[n],enumerable:!0})},XI=(a,i,n,g)=>{if(i&&typeof i=="object"||typeof i=="function")for(let p of HI(i))!UI.call(a,p)&&p!==n&&Cc(a,p,{get:()=>i[p],enumerable:!(g=YI(i,p))||g.enumerable});return a},Zo=a=>XI(Cc({},"__esModule",{value:!0}),a),Go,qn,Ti,mg,oh,lh=kA(()=>{Go=new Map,qn=[],Ti=(a,i,n)=>{if(i&&typeof i.init=="function"&&typeof i.createInferenceSessionHandler=="function"){let g=Go.get(a);if(g===void 0)Go.set(a,{backend:i,priority:n});else{if(g.priority>n)return;if(g.priority===n&&g.backend!==i)throw new Error(`cannot register backend "${a}" using priority ${n}`)}if(n>=0){let p=qn.indexOf(a);p!==-1&&qn.splice(p,1);for(let h=0;h<qn.length;h++)if(Go.get(qn[h]).priority<=n){qn.splice(h,0,a);return}qn.push(a)}return}throw new TypeError("not a valid backend")},mg=async a=>{let i=Go.get(a);if(!i)return"backend not found.";if(i.initialized)return i.backend;if(i.aborted)return i.error;{let n=!!i.initPromise;try{return n||(i.initPromise=i.backend.init(a)),await i.initPromise,i.initialized=!0,i.backend}catch(g){return n||(i.error=`${g}`,i.aborted=!0),i.error}finally{delete i.initPromise}}},oh=async a=>{let i=a.executionProviders||[],n=i.map(M=>
vendor: 14,831 bytes, line 5
5typeof M=="string"?M:M.name),g=n.length===0?qn:n,p,h=[],C=new Set;for(let M of g){let E=await mg(M);typeof E=="string"?h.push({name:M,err:E}):(p||(p=E),p===E&&C.add(M))}if(!p)throw new Error(`no available backend found. ERR: ${h.map(M=>`[${M.name}] ${M.err}`).join(", ")}`);for(let{name:M,err:E}of h)n.includes(M)&&console.warn(`removing requested execution provider "${M}" from session options because it is not available: ${E}`);let k=i.filter(M=>C.has(typeof M=="string"?M:M.name));return[p,new Proxy(a,{get:(M,E)=>E==="executionProviders"?k:Reflect.get(M,E)})]}}),ZI=kA(()=>{lh()}),ch,JI=kA(()=>{ch="1.22.0-dev.20250409-89f8206ba4"}),Kl,xa,uh=kA(()=>{JI(),Kl="warning",xa={wasm:{},webgl:{},webgpu:{},versions:{common:ch},set logLevel(a){if(a!==void 0){if(typeof a!="string"||["verbose","info","warning","error","fatal"].indexOf(a)===-1)throw new Error(`Unsupported logging level: ${a}`);Kl=a}},get logLevel(){return Kl}},Object.defineProperty(xa,"logLevel",{enumerable:!0})}),Dr,qI=kA(()=>{uh(),Dr=xa}),dh,fh,$I=kA(()=>{dh=(a,i)=>{let n=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);n.width=a.dims[3],n.height=a.dims[2];let g=n.getContext("2d");if(g!=null){let p,h;(i==null?void 0:i.tensorLayout)!==void 0&&i.tensorLayout==="NHWC"?(p=a.dims[2],h=a.dims[3]):(p=a.dims[3],h=a.dims[2]);let C=(i==null?void 0:i.format)!==void 0?i.format:"RGB",k=i==null?void 0:i.norm,M,E;k===void 0||k.mean===void 0?M=[255,255,255,255]:typeof k.mean=="number"?M=[k.mean,k.mean,k.mean,k.mean]:(M=[k.mean[0],k.mean[1],k.mean[2],0],k.mean[3]!==void 0&&(M[3]=k.mean[3])),k===void 0||k.bias===void 0?E=[0,0,0,0]:typeof k.bias=="number"?E=[k.bias,k.bias,k.bias,k.bias]:(E=[k.bias[0],k.bias[1],k.bias[2],0],k.bias[3]!==void 0&&(E[3]=k.bias[3]));let D=h*p,B=0,v=D,S=D*2,F=-1;C==="RGBA"?(B=0,v=D,S=D*2,F=D*3):C==="RGB"?(B=0,v=D,S=D*2):C==="RBG"&&(B=0,S=D,v=D*2);for(let R=0;R<h;R++)for(let X=0;X<p;X++){let z=(a.data[B++]-E[0])*M[0],L=(a.data[v++]-E[1])*M[1],K=(a.data[S++]-E[2])*M[2],d=F===-1?255:(a.data[F++]-E[3])*M[3];g.fillStyle="rgba("+z+","+L+","+K+","+d+")",g.fillRect(X,R,1,1)}if("toDataURL"in n)return n.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},fh=(a,i)=>{let n=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),g;if(n!=null){let p,h,C;(i==null?void 0:i.tensorLayout)!==void 0&&i.tensorLayout==="NHWC"?(p=a.dims[2],h=a.dims[1],C=a.dims[3]):(p=a.dims[3],h=a.dims[2],C=a.dims[1]);let k=i!==void 0&&i.format!==void 0?i.format:"RGB",M=i==null?void 0:i.norm,E,D;M===void 0||M.mean===void 0?E=[255,255,255,255]:typeof M.mean=="number"?E=[M.mean,M.mean,M.mean,M.mean]:(E=[M.mean[0],M.mean[1],M.mean[2],255],M.mean[3]!==void 0&&(E[3]=M.mean[3])),M===void 0||M.bias===void 0?D=[0,0,0,0]:typeof M.bias=="number"?D=[M.bias,M.bias,M.bias,M.bias]:(D=[M.bias[0],M.bias[1],M.bias[2],0],M.bias[3]!==void 0&&(D[3]=M.bias[3]));let B=h*p;if(i!==void 0&&(i.format!==void 0&&C===4&&i.format!=="RGBA"||C===3&&i.format!=="RGB"&&i.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let v=4,S=0,F=1,R=2,X=3,z=0,L=B,K=B*2,d=-1;k==="RGBA"?(z=0,L=B,K=B*2,d=B*3):k==="RGB"?(z=0,L=B,K=B*2):k==="RBG"&&(z=0,K=B,L=B*2),g=n.createImageData(p,h);for(let w=0;w<h*p;S+=v,F+=v,R+=v,X+=v,w++)g.data[S]=(a.data[z++]-D[0])*E[0],g.data[F]=(a.data[L++]-D[1])*E[1],g.data[R]=(a.data[K++]-D[2])*E[2],g.data[X]=d===-1?255:(a.data[d++]-D[3])*E[3]}else throw new Error("Can not access image data");return g}}),k0,gh,ph,mh,hh,Ch,e6=kA(()=>{bc(),k0=(a,i)=>{if(a===void 0)throw new Error("Image buffer must be defined");if(i.height===void 0||i.width===void 0)throw new Error("Image height and width must be defined");if(i.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:n,width:g}=i,p=i.norm??{mean:255,bias:0},h,C;typeof p.mean=="number"?h=[p.mean,p.mean,p.mean,p.mean]:h=[p.mean[0],p.mean[1],p.mean[2],p.mean[3]??255],typeof p.bias=="number"?C=[p.bias,p.bias,p.bias,p.bias]:C=[p.bias[0],p.bias[1],p.bias[2],p.bias[3]??0];let k=i.format!==void 0?i.format:"RGBA",M=i.tensorFormat!==void 0&&i.tensorFormat!==void 0?i.tensorFormat:"RGB",E=n*g,D=M==="RGBA"?new Float32Array(E*4):new Float32Array(E*3),B=4,v=0,S=1,F=2,R=3,X=0,z=E,L=E*2,K=-1;k==="RGB"&&(B=3,v=0,S=1,F=2,R=-1),M==="RGBA"?K=E*3:M==="RBG"?(X=0,L=E,z=E*2):M==="BGR"&&(L=0,z=E,X=E*2);for(let d=0;d<E;d++,v+=B,F+=B,S+=B,R+=B)D[X++]=(a[v]+C[0])/h[0],D[z++]=(a[S]+C[1])/h[1],D[L++]=(a[F]+C[2])/h[2],K!==-1&&R!==-1&&(D[K++]=(a[R]+C[3])/h[3]);return M==="RGBA"?new pa("float32",D,[1,4,n,g]):new pa("float32",D,[1,3,n,g])},gh=async(a,i)=>{let n=typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement,g=typeof ImageData<"u"&&a instanceof ImageData,p=typeof ImageBitmap<"u"&&a instanceof ImageBitmap,h=typeof a=="string",C,k=i??{},M=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},E=D=>typeof HTMLCanvasElement<"u"&&D instanceof HTMLCanvasElement||D instanceof OffscreenCanvas?D.getContext("2d"):null;if(n){let D=M();D.width=a.width,D.height=a.height;let B=E(D);if(B!=null){let v=a.height,S=a.width;if(i!==void 0&&i.resizedHeight!==void 0&&i.resizedWidth!==void 0&&(v=i.resizedHeight,S=i.resizedWidth),i!==void 0){if(k=i,i.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");k.tensorFormat="RGBA",k.height=v,k.width=S}else k.tensorFormat="RGBA",k.height=v,k.width=S;B.drawImage(a,0,0),C=B.getImageData(0,0,S,v).data}else throw new Error("Can not access image data")}else if(g){let D,B;if(i!==void 0&&i.resizedWidth!==void 0&&i.resizedHeight!==void 0?(D=i.resizedHeight,B=i.resizedWidth):(D=a.height,B=a.width),i!==void 0&&(k=i),k.format="RGBA",k.height=D,k.width=B,i!==void 0){let v=M();v.width=B,v.height=D;let S=E(v);if(S!=null)S.putImageData(a,0,0),C=S.getImageData(0,0,B,D).data;else throw new Error("Can not access image data")}else C=a.data}else if(p){if(i===void 0)throw new Error("Please provide image config with format for Imagebitmap");let D=M();D.width=a.width,D.height=a.height;let B=E(D);if(B!=null){let v=a.height,S=a.width;return B.drawImage(a,0,0,S,v),C=B.getImageData(0,0,S,v).data,k.height=v,k.width=S,k0(C,k)}else throw new Error("Can not access image data")}else{if(h)return new Promise((D,B)=>{let v=M(),S=E(v);if(!a||!S)return B();let F=new Image;F.crossOrigin="Anonymous",F.src=a,F.onload=()=>{v.width=F.width,v.height=F.height,S.drawImage(F,0,0,v.width,v.height);let R=S.getImageData(0,0,v.width,v.height);k.height=v.height,k.width=v.width,D(k0(R.data,k))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(C!==void 0)return k0(C,k);throw new Error("Input data provided is not supported - aborted tensor creation")},ph=(a,i)=>{let{width:n,height:g,download:p,dispose:h}=i,C=[1,g,n,4];return new pa({location:"texture",type:"float32",texture:a,dims:C,download:p,dispose:h})},mh=(a,i)=>{let{dataType:n,dims:g,download:p,dispose:h}=i;return new pa({location:"gpu-buffer",type:n??"float32",gpuBuffer:a,dims:g,download:p,dispose:h})},hh=(a,i)=>{let{dataType:n,dims:g,download:p,dispose:h}=i;return new pa({location:"ml-tensor",type:n??"float32",mlTensor:a,dims:g,download:p,dispose:h})},Ch=(a,i,n)=>new pa({location:"cpu-pinned",type:a,data:i,dims:n??[i.length]})}),yi,Wo,Xl,bh,A6=kA(()=>{yi=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Wo=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Xl=!1,bh=()=>{if(!Xl){Xl=!0;let a=typeof BigInt64Array<"u"&&BigInt64Array.from,i=typeof BigUint64Array<"u"&&BigUint64Array.from,n=globalThis.Float16Array,g=typeof n<"u"&&n.from;a&&(yi.set("int64",BigInt64Array),Wo.set(BigInt64Array,"int64")),i&&(yi.set("uint64",BigUint64Array),Wo.set(BigUint64Array,"uint64")),g?(yi.set("float16",n),Wo.set(n,"float16")):yi.set("float16",Uint16Array)}}}),Ih,wh,t6=kA(()=>{bc(),Ih=a=>{let i=1;for(let n=0;n<a.length;n++){let g=a[n];if(typeof g!="number"||!Number.isSafeInteger(g))throw new TypeError(`dims[${n}] must be an integer, got: ${g}`);if(g<0)throw new RangeError(`dims[${n}] must be a non-negative integer, got: ${g}`);i*=g}return i},wh=(a,i)=>{switch(a.location){case"cpu":return new pa(a.type,a.data,i);case"cpu-pinned":return new pa({location:"cpu-pinned",data:a.data,type:a.type,dims:i});case"texture":return new pa({location:"texture",texture:a.texture,type:a.type,dims:i});case"gpu-buffer":return new pa({location:"gpu-buffer",gpuBuffer:a.gpuBuffer,type:a.type,dims:i});case"ml-tensor":return new pa({location:"ml-tensor",mlTensor:a.mlTensor,type:a.type,dims:i});default:throw new Error(`tensorReshape: tensor location ${a.location} is not supported`)}}}),pa,bc=kA(()=>{$I(),e6(),A6(),t6(),pa=class{constructor(a,i,n){bh();let g,p;if(typeof a=="object"&&"location"in a)switch(this.dataLocation=a.location,g=a.type,p=a.dims,a.location){case"cpu-pinned":{let C=yi.get(g);if(!C)throw new TypeError(`unsupported type "${g}" to create tensor from pinned buffer`);if(!(a.data instanceof C))throw new TypeError(`buffer should be of type ${C.name}`);this.cpuData=a.data;break}case"texture":{if(g!=="float32")throw new TypeError(`unsupported type "${g}" to create tensor from texture`);this.gpuTextureData=a.texture,this.downloader=a.download,this.disposer=a.dispose;break}case"gpu-buffer":{if(g!=="float32"&&g!=="float16"&&g!=="int32"&&g!=="int64"&&g!=="uint32"&&g!=="uint8"&&g!=="bool"&&g!=="uint4"&&g!=="int4")throw new TypeError(`unsupported type "${g}" to create tensor from gpu buffer`);this.gpuBufferData=a.gpuBuffer,this.downloader=a.download,this.disposer=a.dispose;break}case"ml-tensor":{if(g!=="float32"&&g!=="float16"&&g!=="int32"&&g!=="int64"&&g!=="uint32"&&g!=="uint64"&&g!=="int8"&&g!=="uint8"&&g!=="bool"&&g!=="uint4"&&g!=="int4")throw new TypeError(`unsupported type "${g}" to create tensor from MLTensor`);this.mlTensorData=a.mlTensor,this.downloader=a.download,this.disposer=a.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let C,k;if(typeof a=="string")if(g=a,k=n,a==="string"){if(!Array.isArray(i))throw new TypeError("A string tensor's data must be a string array.");C=i}else{let M=yi.get(a);if(M===void 0)throw new TypeError(`Unsupported tensor type: ${a}.`);if(Array.isArray(i)){if(a==="float16"&&M===Uint16Array||a==="uint4"||a==="int4")throw new TypeError(`Creating a ${a} tensor from number array is not supported. Please use ${M.name} as data.`);a==="uint64"||a==="int64"?C=M.from(i,BigInt):C=M.from(i)}else if(i instanceof M)C=i;else if(i instanceof Uint8ClampedArray)if(a==="uint8")C=Uint8Array.from(i);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(a==="float16"&&i instanceof Uint16Array&&M!==Uint16Array)C=new globalThis.Float16Array(i.buffer,i.byteOffset,i.length);else throw new TypeError(`A ${g} tensor's data must be type of ${M}`)}else if(k=i,Array.isArray(a)){if(a.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let M=typeof a[0];if(M==="string")g="string",C=a;else if(M==="boolean")g="bool",C=Uint8Array.from(a);else throw new TypeError(`Invalid element type of data array: ${M}.`)}else if(a instanceof Uint8ClampedArray)g="uint8",C=Uint8Array.from(a);else{let M=Wo.get(a.constructor);if(M===void 0)throw new TypeError(`Unsupported type for tensor data: ${a.constructor}.`);g=M,C=a}if(k===void 0)k=[C.length];else if(!Array.isArray(k))throw new TypeError("A tensor's dims must be a number array");p=k,this.cpuData=C,this.dataLocation="cpu"}let h=Ih(p);if(this.cpuData&&h!==this.cpuData.length&&!((g==="uint4"||g==="int4")&&Math.ceil(h/2)===this.cpuData.length))throw new Error(`Tensor's size(${h}) does not match data length(${this.cpuData.length}).`);this.type=g,this.dims=p,this.size=h}static async fromImage(a,i){return gh(a,i)}static fromTexture(a,i){return ph(a,i)}static fromGpuBuffer(a,i){return mh(a,i)}static fromMLTensor(a,i){return hh(a,i)}static fromPinnedBuffer(a,i,n){return Ch(a,i,n)}toDataURL(a){return dh(this,a)}toImageData(a){return fh(this,a)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(a){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let i=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=i,a&&this.disposer&&(this.disposer(),this.disposer=void 0),i}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(a){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return wh(this,a)}}}),Na,kh=kA(()=>{bc(),Na=pa}),Jo,Zl,Ra,ya,Mh=kA(()=>{uh(),Jo=(a,i)=>{(typeof xa.trace>"u"?!xa.wasm.trace:!xa.trace)||console.timeStamp(`${a}::ORT::${i}`)},Zl=(a,i)=>{var p;let n=((p=new Error().stack)==null?void 0:p.split(/\r\n|\r|\n/g))||[],g=!1;for(let h=0;h<n.length;h++){if(g&&!n[h].includes("TRACE_FUNC")){let C=`FUNC_${a}::${n[h].trim().split(" ")[1]}`;i&&(C+=`::${i}`),Jo("CPU",C);return}n[h].includes("TRACE_FUNC")&&(g=!0)}},Ra=a=>{(typeof xa.trace>
5"u"?!xa.wasm.trace:!xa.trace)||Zl("BEGIN",a)},ya=a=>{(typeof xa.trace>"u"?!xa.wasm.trace:!xa.trace)||Zl("END",a)}}),Eh,r6=kA(()=>{lh(),kh(),Mh(),Eh=class vh{constructor(i){this.handler=i}async run(i,n,g){Ra();let p={},h={};if(typeof i!="object"||i===null||i instanceof Na||Array.isArray(i))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let C=!0;if(typeof n=="object"){if(n===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(n instanceof Na)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(n)){if(n.length===0)throw new TypeError("'fetches' cannot be an empty array.");C=!1;for(let E of n){if(typeof E!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(E)===-1)throw new RangeError(`'fetches' contains invalid output name: ${E}.`);p[E]=null}if(typeof g=="object"&&g!==null)h=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else{let E=!1,D=Object.getOwnPropertyNames(n);for(let B of this.outputNames)if(D.indexOf(B)!==-1){let v=n[B];(v===null||v instanceof Na)&&(E=!0,C=!1,p[B]=v)}if(E){if(typeof g=="object"&&g!==null)h=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else h=n}}else if(typeof n<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let E of this.inputNames)if(typeof i[E]>"u")throw new Error(`input '${E}' is missing in 'feeds'.`);if(C)for(let E of this.outputNames)p[E]=null;let k=await this.handler.run(i,p,h),M={};for(let E in k)if(Object.hasOwnProperty.call(k,E)){let D=k[E];D instanceof Na?M[E]=D:M[E]=new Na(D.type,D.data,D.dims)}return ya(),M}async release(){return this.handler.dispose()}static async create(i,n,g,p){Ra();let h,C={};if(typeof i=="string"){if(h=i,typeof n=="object"&&n!==null)C=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(i instanceof Uint8Array){if(h=i,typeof n=="object"&&n!==null)C=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(i instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&i instanceof SharedArrayBuffer){let D=i,B=0,v=i.byteLength;if(typeof n=="object"&&n!==null)C=n;else if(typeof n=="number"){if(B=n,!Number.isSafeInteger(B))throw new RangeError("'byteOffset' must be an integer.");if(B<0||B>=D.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${D.byteLength}).`);if(v=i.byteLength-B,typeof g=="number"){if(v=g,!Number.isSafeInteger(v))throw new RangeError("'byteLength' must be an integer.");if(v<=0||B+v>D.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${D.byteLength-B}].`);if(typeof p=="object"&&p!==null)C=p;else if(typeof p<"u")throw new TypeError("'options' must be an object.")}else if(typeof g<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof n<"u")throw new TypeError("'options' must be an object.");h=new Uint8Array(D,B,v)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[k,M]=await oh(C),E=await k.createInferenceSessionHandler(h,M);return ya(),new vh(E)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}}}),Ic,s6=kA(()=>{r6(),Ic=Eh}),a6=kA(()=>{}),n6=kA(()=>{}),i6=kA(()=>{}),o6=kA(()=>{}),xh={};po(xh,{InferenceSession:()=>Ic,TRACE:()=>Jo,TRACE_FUNC_BEGIN:()=>Ra,TRACE_FUNC_END:()=>ya,Tensor:()=>Na,env:()=>Dr,registerBackend:()=>Ti});var ja=kA(()=>{ZI(),qI(),s6(),kh(),a6(),n6(),Mh(),i6(),o6()}),wc=kA(()=>{}),Bh={};po(Bh,{default:()=>yh});var Jl,ql,yh,l6=kA(()=>{var a;Qb(),Oi(),kc(),Jl="ort-wasm-proxy-worker",ql=((a=globalThis.self)==null?void 0:a.name)===Jl,ql&&(self.onmessage=i=>{let{type:n,in:g}=i.data;try{switch(n){case"init-wasm":Mc(g.wasm).then(()=>{Rc(g).then(()=>{postMessage({type:n})},p=>{postMessage({type:n,err:p})})},p=>{postMessage({type:n,err:p})});break;case"init-ep":{let{epName:p,env:h}=g;jc(h,p).then(()=>{postMessage({type:n})},C=>{postMessage({type:n,err:C})});break}case"copy-from":{let{buffer:p}=g,h=U0(p);postMessage({type:n,out:h});break}case"create":{let{model:p,options:h}=g;Wc(p,h).then(C=>{postMessage({type:n,out:C})},C=>{postMessage({type:n,err:C})});break}case"release":Vc(g),postMessage({type:n});break;case"run":{let{sessionId:p,inputIndices:h,inputs:C,outputIndices:k,options:M}=g;Yc(p,h,C,k,new Array(k.length).fill(null),M).then(E=>{E.some(D=>D[3]!=="cpu")?postMessage({type:n,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:n,out:E},Uc([...C,...E]))},E=>{postMessage({type:n,err:E})});break}case"end-profiling":Hc(g),postMessage({type:n});break;default:}}catch(p){postMessage({type:n,err:p})}}),yh=ql?null:i=>new Worker(i??ga,{type:"module",name:Jl})}),Dh={};po(Dh,{default:()=>Th});var $l,e2,Th,hg,c6=kA(()=>{var a,i;e2=($l=import.meta.url,async function(n={}){var Zr;
5var g,p,h=n,C=new Promise((G,j)=>{g=G,p=j}),k=typeof window=="object",M=typeof WorkerGlobalScope<"u",E=M&&((Zr=self.name)==null?void 0:Zr.startsWith("em-pthread"));h.mountExternalData=(G,j)=>{G.startsWith("./")&&(G=G.substring(2)),(h.Eb||(h.Eb=new Map)).set(G,j)},h.unmountExternalData=()=>{delete h.Eb};var D=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,pc:!0}).buffer.constructor;let B=G=>async(...j)=>{var q;try{if(h.Fb)throw Error("Session already started");let ne=h.Fb={dc:j[0],errors:[]},fe=await G(...j);if(h.Fb!==ne)throw Error("Session mismatch");(q=h.Jb)==null||q.flush();let Se=ne.errors;if(0<Se.length){let Ke=await Promise.all(Se);if(Ke=Ke.filter(fA=>fA),0<Ke.length)throw Error(Ke.join(` 6`))}return fe}finally{h.Fb=null}};h.jsepInit=(G,j)=>{if(G==="webgpu"){[h.Jb,h.Ub,h.Yb,h.Kb,h.Xb,h.jb,h.Zb,h.ac,h.Vb,h.Wb,h.$b]=j;let q=h.Jb;h.jsepRegisterBuffer=(ne,fe,Se,Ke)=>q.registerBuffer(ne,fe,Se,Ke),h.jsepGetBuffer=ne=>q.getBuffer(ne),h.jsepCreateDownloader=(ne,fe,Se)=>q.createDownloader(ne,fe,Se),h.jsepOnCreateSession=ne=>{q.onCreateSession(ne)},h.jsepOnReleaseSession=ne=>{q.onReleaseSession(ne)},h.jsepOnRunStart=ne=>q.onRunStart(ne),h.bc=(ne,fe)=>{q.upload(ne,fe)}}else if(G==="webnn"){let q=j[0];[h.nc,h.Nb,h.webnnEnsureTensor,h.Ob,h.webnnDownloadTensor]=j.slice(1),h.webnnReleaseTensorId=h.Nb,h.webnnUploadTensor=h.Ob,h.webnnOnRunStart=ne=>q.onRunStart(ne),h.webnnOnRunEnd=q.onRunEnd.bind(q),h.webnnRegisterMLContext=(ne,fe)=>{q.registerMLContext(ne,fe)},h.webnnOnReleaseSession=ne=>{q.onReleaseSession(ne)},h.webnnCreateMLTensorDownloader=(ne,fe)=>q.createMLTensorDownloader(ne,fe),h.webnnRegisterMLTensor=(ne,fe,Se,Ke)=>q.registerMLTensor(ne,fe,Se,Ke),h.webnnCreateMLContext=ne=>q.createMLContext(ne),h.webnnRegisterMLConstant=(ne,fe,Se,Ke,fA,yA)=>q.registerMLConstant(ne,fe,Se,Ke,fA,h.Eb,yA),h.webnnRegisterGraphInput=q.registerGraphInput.bind(q),h.webnnIsGraphInput=q.isGraphInput.bind(q),h.webnnCreateTemporaryTensor=q.createTemporaryTensor.bind(q),h.webnnIsInt64Supported=q.isInt64Supported.bind(q)}};let v=()=>{let G=(j,q,ne)=>(...fe)=>{let Se=Pr,Ke=q==null?void 0:q();fe=j(...fe);let fA=q==null?void 0:q();return Ke!==fA&&(j=fA,ne(Ke),q=ne=null),Pr!=Se?new Promise((yA,VA)=>{mr={resolve:yA,reject:VA}}):fe};(()=>{for(let j of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])h[j]=G(h[j],()=>h[j],q=>h[j]=q)})(),B!==void 0&&(h._OrtRun=B(h._OrtRun),h._OrtRunWithBinding=B(h._OrtRunWithBinding)),v=void 0};h.asyncInit=()=>{v==null||v()};var S,F,R=Object.assign({},h),X=(G,j)=>{throw j},z="";(k||M)&&(M?z=self.location.href:typeof document<"u"&&document.currentScript&&(z=document.currentScript.src),$l&&(z=$l),z=z.startsWith("blob:")?"":z.slice(0,z.replace(/[?#].*/,"").lastIndexOf("/")+1),M&&(F=G=>{var j=new XMLHttpRequest;return j.open("GET",G,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),S=async G=>{if(Pe(G))return new Promise((q,ne)=>{var fe=new XMLHttpRequest;fe.open("GET",G,!0),fe.responseType="arraybuffer",fe.onload=()=>{fe.status==200||fe.status==0&&fe.response?q(fe.response):ne(fe.status)},fe.onerror=ne,fe.send(null)});var j=await fetch(G,{credentials:"same-origin"});if(j.ok)return j.arrayBuffer();throw Error(j.status+" : "+j.url)});var L=console.log.bind(console),K=console.error.bind(console),d=L,w=K;Object.assign(h,R),R=null;var e,u,y,ee,T,O,ge,se,we,be,Be,ve,De,je=h.wasmBinary,Le=!1,Pe=G=>G.startsWith("file://");function me(){return e.buffer!=ee.buffer&&Ae(),ee}function ie(){return e.buffer!=ee.buffer&&Ae(),T}function Ie(){return e.buffer!=ee.buffer&&Ae(),O}function Fe(){return e.buffer!=ee.buffer&&Ae(),ge}function xe(){return e.buffer!=ee.buffer&&Ae(),se}function sA(){return e.buffer!=ee.buffer&&Ae(),we}function uA(){return e.buffer!=ee.buffer&&Ae(),be}function hA(){return e.buffer!=ee.buffer&&Ae(),De}if(E){let G=function(j){try{var q=j.data,ne=q.Bb;if(ne==="load"){let fe=[];self.onmessage=Se=>fe.push(Se),self.startWorker=()=>{postMessage({Bb:"loaded"});for(let Se of fe)G(Se);self.onmessage=G};for(let Se of q.Rb)h[Se]&&!h[Se].proxy||(h[Se]=(...Ke)=>{postMessage({Bb:"callHandler",Qb:Se,args:Ke})},Se=="print"&&(d=h[Se]),Se=="printErr"&&(w=h[Se]));e=q.kc,Ae(),iA(q.lc)}else if(ne==="run"){Ts(q.Ab),at(q.Ab,0,0,1,0,0),ds(),ze(q.Ab),ye||(Rn(),ye=!0);try{Er(q.fc,q.Hb)}catch(fe){if(fe!="unwind")throw fe}}else q.target!=="setimmediate"&&(ne==="checkMailbox"?ye&&$e():ne&&(w(`worker: received unknown command ${ne}`),w(q)))}catch(fe){throw Gs(),fe}};var iA,ye=!1;w=function(...j){j=j.join(" ")},self.alert=function(...j){postMessage({Bb:"alert",text:j.join(" "),ic:wr()})},self.onunhandledrejection=j=>{throw j.reason||j},self.onmessage=G}function Ae(){var G=e.buffer;h.HEAP8=ee=new Int8Array(G),h.HEAP16=O=new Int16Array(G),h.HEAPU8=T=new Uint8Array(G),h.HEAPU16=ge=new Uint16Array(G),h.HEAP32=se=new Int32Array(G),h.HEAPU32=we=new Uint32Array(G),h.HEAPF32=be=new Float32Array(G),h.HEAPF64=De=new Float64Array(G),h.HEAP64=Be=new BigInt64Array(G),h.HEAPU64=ve=new BigUint64Array(G)}function Re(){E?startWorker(h):et.Ca()}E||(e=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),Ae());var qe,Ue=0,rA=null;function aA(){if(--Ue==0&&rA){var G=rA;rA=null,G()}}function Y(G){throw w(G="Aborted("+G+")"),Le=!0,G=new WebAssembly.RuntimeError(G+". Build with -sASSERTIONS for more info."),p(G),G}function cA(){return{a:{L:MA,Aa:ce,b:Ss,$:UA,A:bs,pa:mt,X:ue,Z:ae,qa:pe,na:ke,ga:_e,ma:eA,J:FA,Y:NA,V:SA,oa:gt,W:YA,va:Bt,E:Vs,Q:ha,O:ra,D:_s,u:_r,r:pA,P:CA,z:J,R:de,ja:he,T:wA,aa:Xe,M:QA,F:it,ia:ze,sa:St,t:Ht,Ba:er,w:Es,o:Ir,l:zr,c:as,n:aa,j:Pn,v:ni,p:na,f:Va,s:Nr,m:PA,e:gs,k:Gn,i:ia,g:ii,d:oi,da:li,ea:jt,fa:Sn,ba:ln,ca:oa,N:Ya,xa:ci,ua:cn,h:dA,C:ui,G:GA,ta:ka,x:un,ra:dn,U:Xr,q:zs,y:ns,K:Ua,S:Ka,za:On,ya:Za,ka:Ja,la:EA,_:JA,B:Ps,I:_n,ha:zn,H:Ea,a:e,wa:lA}}}
vendor: 16,676 bytes, line 6
6var He={829644:(G,j,q,ne,fe)=>{if(h===void 0||!h.Eb)return 1;if((G=Jt(Number(G>>>0))).startsWith("./")&&(G=G.substring(2)),!(G=h.Eb.get(G)))return 2;if(j=Number(j>>>0),q=Number(q>>>0),ne=Number(ne>>>0),j+q>G.byteLength)return 3;try{let Se=G.subarray(j,j+q);switch(fe){case 0:ie().set(Se,ne>>>0);break;case 1:h.mc?h.mc(ne,Se):h.bc(ne,Se);break;default:return 4}return 0}catch{return 4}},830468:(G,j,q)=>{h.Ob(G,ie().subarray(j>>>0,j+q>>>0))},830532:()=>h.nc(),830574:G=>{h.Nb(G)},830611:()=>{h.Vb()},830642:()=>{h.Wb()},830671:()=>{h.$b()},830696:G=>h.Ub(G),830729:G=>h.Yb(G),830761:(G,j,q)=>{h.Kb(Number(G),Number(j),Number(q),!0)},830824:(G,j,q)=>{h.Kb(Number(G),Number(j),Number(q))},830881:()=>typeof wasmOffsetConverter<"u",830938:G=>{h.jb("Abs",G,void 0)},830989:G=>{h.jb("Neg",G,void 0)},831040:G=>{h.jb("Floor",G,void 0)},831093:G=>{h.jb("Ceil",G,void 0)},831145:G=>{h.jb("Reciprocal",G,void 0)},831203:G=>{h.jb("Sqrt",G,void 0)},831255:G=>{h.jb("Exp",G,void 0)},831306:G=>{h.jb("Erf",G,void 0)},831357:G=>{h.jb("Sigmoid",G,void 0)},831412:(G,j,q)=>{h.jb("HardSigmoid",G,{alpha:j,beta:q})},831491:G=>{h.jb("Log",G,void 0)},831542:G=>{h.jb("Sin",G,void 0)},831593:G=>{h.jb("Cos",G,void 0)},831644:G=>{h.jb("Tan",G,void 0)},831695:G=>{h.jb("Asin",G,void 0)},831747:G=>{h.jb("Acos",G,void 0)},831799:G=>{h.jb("Atan",G,void 0)},831851:G=>{h.jb("Sinh",G,void 0)},831903:G=>{h.jb("Cosh",G,void 0)},831955:G=>{h.jb("Asinh",G,void 0)},832008:G=>{h.jb("Acosh",G,void 0)},832061:G=>{h.jb("Atanh",G,void 0)},832114:G=>{h.jb("Tanh",G,void 0)},832166:G=>{h.jb("Not",G,void 0)},832217:(G,j,q)=>{h.jb("Clip",G,{min:j,max:q})},832286:G=>{h.jb("Clip",G,void 0)},832338:(G,j)=>{h.jb("Elu",G,{alpha:j})},832396:G=>{h.jb("Gelu",G,void 0)},832448:G=>{h.jb("Relu",G,void 0)},832500:(G,j)=>{h.jb("LeakyRelu",G,{alpha:j})},832564:(G,j)=>{h.jb("ThresholdedRelu",G,{alpha:j})},832634:(G,j)=>{h.jb("Cast",G,{to:j})},832692:G=>{h.jb("Add",G,void 0)},832743:G=>{h.jb("Sub",G,void 0)},832794:G=>{h.jb("Mul",G,void 0)},832845:G=>{h.jb("Div",G,void 0)},832896:G=>{h.jb("Pow",G,void 0)},832947:G=>{h.jb("Equal",G,void 0)},833e3:G=>{h.jb("Greater",G,void 0)},833055:G=>{h.jb("GreaterOrEqual",G,void 0)},833117:G=>{h.jb("Less",G,void 0)},833169:G=>{h.jb("LessOrEqual",G,void 0)},833228:(G,j,q,ne,fe)=>{h.jb("ReduceMean",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},833403:(G,j,q,ne,fe)=>{h.jb("ReduceMax",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},833577:(G,j,q,ne,fe)=>{h.jb("ReduceMin",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},833751:(G,j,q,ne,fe)=>{h.jb("ReduceProd",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},833926:(G,j,q,ne,fe)=>{h.jb("ReduceSum",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},834100:(G,j,q,ne,fe)=>{h.jb("ReduceL1",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},834273:(G,j,q,ne,fe)=>{h.jb("ReduceL2",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},834446:(G,j,q,ne,fe)=>{h.jb("ReduceLogSum",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},834623:(G,j,q,ne,fe)=>{h.jb("ReduceSumSquare",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},834803:(G,j,q,ne,fe)=>{h.jb("ReduceLogSumExp",G,{keepDims:!!j,noopWithEmptyAxes:!!q,axes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},834983:G=>{h.jb("Where",G,void 0)},835036:(G,j,q)=>{h.jb("Transpose",G,{perm:j?Array.from(xe().subarray(Number(j)>>>0,Number(q)>>>0)):[]})},835160:(G,j,q,ne)=>{h.jb("DepthToSpace",G,{blocksize:j,mode:Jt(q),format:ne?"NHWC":"NCHW"})},835293:(G,j,q,ne)=>{h.jb("DepthToSpace",G,{blocksize:j,mode:Jt(q),format:ne?"NHWC":"NCHW"})},835426:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut,bt,Nt,Tt,la)=>{h.jb("ConvTranspose",G,{format:yA?"NHWC":"NCHW",autoPad:j,dilations:[q],group:ne,kernelShape:[fe],pads:[Se,Ke],strides:[fA],wIsConst:()=>!!me()[VA>>>0],outputPadding:ut?Array.from(xe().subarray(Number(ut)>>>0,Number(bt)>>>0)):[],outputShape:Nt?Array.from(xe().subarray(Number(Nt)>>>0,Number(Tt)>>>0)):[],activation:Jt(la)})},835859:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut,bt,Nt,Tt)=>{h.jb("ConvTranspose",G,{format:fA?"NHWC":"NCHW",autoPad:j,dilations:Array.from(xe().subarray(Number(q)>>>0,2+(Number(q)>>>0)>>>0)),group:ne,kernelShape:Array.from(xe().subarray(Number(fe)>>>0,2+(Number(fe)>>>0)>>>0)),pads:Array.from(xe().subarray(Number(Se)>>>0,4+(Number(Se)>>>0)>>>0)),strides:Array.from(xe().subarray(Number(Ke)>>>0,2+(Number(Ke)>>>0)>>>0)),wIsConst:()=>!!me()[yA>>>0],outputPadding:VA?Array.from(xe().subarray(Number(VA)>>>0,Number(ut)>>>0)):[],outputShape:bt?Array.from(xe().subarray(Number(bt)>>>0,Number(Nt)>>>0)):[],activation:Jt(Tt)})},836520:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut,bt,Nt,Tt,la)=>{h.jb("ConvTranspose",G,{format:yA?"NHWC":"NCHW",autoPad:j,dilations:[q],group:ne,kernelShape:[fe],pads:[Se,Ke],strides:[fA],wIsConst:()=>!!me()[VA>>>0],outputPadding:ut?Array.from(xe().subarray(Number(ut)>>>0,Number(bt)>>>0)):[],outputShape:Nt?Array.from(xe().subarray(Number(Nt)>>>0,Number(Tt)>>>0)):[],activation:Jt(la)})},836953:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut,bt,Nt,Tt)=>{h.jb("ConvTranspose",G,{format:fA?"NHWC":"NCHW",autoPad:j,dilations:Array.from(xe().subarray(Number(q)>>>0,2+(Number(q)>>>0)>>>0)),group:ne,kernelShape:Array.from(xe().subarray(Number(fe)>>>0,2+(Number(fe)>>>0)>>>0)),pads:Array.from(xe().subarray(Number(Se)>>>0,4+(Number(Se)>>>0)>>>0)),strides:Array.from(xe().subarray(Number(Ke)>>>0,2+(Number(Ke)>>>0)>>>0)),wIsConst:()=>!!me()[yA>>>0],outputPadding:VA?Array.from(xe().subarray(Number(VA)>>>0,Number(ut)>>>0)):[],outputShape:bt?Array.from(xe().subarray(Number(bt)>>>0,Number(Nt)>>>0)):[],activation:Jt(Tt)})},837614:(G,j)=>{h.jb("GlobalAveragePool",G,{format:j?"NHWC":"NCHW"})},837705:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut,bt,Nt,Tt)=>{h.jb("AveragePool",G,{format:Tt?"NHWC":"NCHW",auto_pad:j,ceil_mode:q,count_include_pad:ne,storage_order:fe,dilations:Se?Array.from(xe().subarray(Number(Se)>>>0,Number(Ke)>>>0)):[],kernel_shape:fA?Array.from(xe().subarray(Number(fA)>>>0,Number(yA)>>>0)):[],pads:VA?Array.from(xe().subarray(Number(VA)>>>0,Number(ut)>>>0)):[],strides:bt?Array.from(xe().subarray(Number(bt)>>>0,Number(Nt)>>>0)):[]})},838184:(G,j)=>{h.jb("GlobalAveragePool",G,{format:j?"NHWC":"NCHW"})},838275:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut,bt,Nt,Tt)=>{h.jb("AveragePool",G,{format:Tt?"NHWC":"NCHW",auto_pad:j,ceil_mode:q,count_include_pad:ne,storage_order:fe,dilations:Se?Array.from(xe().subarray(Number(Se)>>>0,Number(Ke)>>>0)):[],kernel_shape:fA?Array.from(xe().subarray(Number(fA)>>>0,Number(yA)>>>0)):[],pads:VA?Array.from(xe().subarray(Number(VA)>>>0,Number(ut)>>>0)):[],strides:bt?Array.from(xe().subarray(Number(bt)>>>0,Number(Nt)>>>0)):[]})},838754:(G,j)=>{h.jb("GlobalMaxPool",G,{format:j?"NHWC":"NCHW"})},838841:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut,bt,Nt,Tt)=>{h.jb("MaxPool",G,{format:Tt?"NHWC":"NCHW",auto_pad:j,ceil_mode:q,count_include_pad:ne,storage_order:fe,dilations:Se?Array.from(xe().subarray(Number(Se)>>>0,Number(Ke)>>>0)):[],kernel_shape:fA?Array.from(xe().subarray(Number(fA)>>>0,Number(yA)>>>0)):[],pads:VA?Array.from(xe().subarray(Number(VA)>>>0,Number(ut)>>>0)):[],strides:bt?Array.from(xe().subarray(Number(bt)>>>0,Number(Nt)>>>0)):[]})},839316:(G,j)=>{h.jb("GlobalMaxPool",G,{format:j?"NHWC":"NCHW"})},839403:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut,bt,Nt,Tt)=>{h.jb("MaxPool",G,{format:Tt?"NHWC":"NCHW",auto_pad:j,ceil_mode:q,count_include_pad:ne,storage_order:fe,dilations:Se?Array.from(xe().subarray(Number(Se)>>>0,Number(Ke)>>>0)):[],kernel_shape:fA?Array.from(xe().subarray(Number(fA)>>>0,Number(yA)>>>0)):[],pads:VA?Array.from(xe().subarray(Number(VA)>>>0,Number(ut)>>>0)):[],strides:bt?Array.from(xe().subarray(Number(bt)>>>0,Number(Nt)>>>0)):[]})},839878:(G,j,q,ne,fe)=>{h.jb("Gemm",G,{alpha:j,beta:q,transA:ne,transB:fe})},839982:G=>{h.jb("MatMul",G,void 0)},840036:(G,j,q,ne)=>{h.jb("ArgMax",G,{keepDims:!!j,selectLastIndex:!!q,axis:ne})},840144:(G,j,q,ne)=>{h.jb("ArgMin",G,{keepDims:!!j,selectLastIndex:!!q,axis:ne})},840252:(G,j)=>{h.jb("Softmax",G,{axis:j})},840315:(G,j)=>{h.jb("Concat",G,{axis:j})},840375:(G,j,q,ne,fe)=>{h.jb("Split",G,{axis:j,numOutputs:q,splitSizes:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},840531:G=>{h.jb("Expand",G,void 0)},840585:(G,j)=>{h.jb("Gather",G,{axis:Number(j)})},840656:(G,j)=>{h.jb("GatherElements",G,{axis:Number(j)})},840735:(G,j)=>{h.jb("GatherND",G,{batch_dims:Number(j)})},840814:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut)=>{h.jb("Resize",G,{antialias:j,axes:q?Array.from(xe().subarray(Number(q)>>>0,Number(ne)>>>0)):[],coordinateTransformMode:Jt(fe),cubicCoeffA:Se,excludeOutside:Ke,extrapolationValue:fA,keepAspectRatioPolicy:Jt(yA),mode:Jt(VA),nearestMode:Jt(ut)})},841176:(G,j,q,ne,fe,Se,Ke)=>{h.jb("Slice",G,{starts:j?Array.from(xe().subarray(Number(j)>>>0,Number(q)>>>0)):[],ends:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[],axes:Se?Array.from(xe().subarray(Number(Se)>>>0,Number(Ke)>>>0)):[]})},841440:G=>{h.jb("Tile",G,void 0)},841492:(G,j,q)=>{h.jb("InstanceNormalization",G,{epsilon:j,format:q?"NHWC":"NCHW"})},841606:(G,j,q)=>{h.jb("InstanceNormalization",G,{epsilon:j,format:q?"NHWC":"NCHW"})},841720:G=>{h.jb("Range",G,void 0)},841773:(G,j)=>{h.jb("Einsum",G,{equation:Jt(j)})},841854:(G,j,q,ne,fe)=>{h.jb("Pad",G,{mode:j,value:q,pads:ne?Array.from(xe().subarray(Number(ne)>>>0,Number(fe)>>>0)):[]})},841997:(G,j,q,ne,fe,Se)=>{h.jb("BatchNormalization",G,{epsilon:j,momentum:q,spatial:!!fe,trainingMode:!!ne,format:Se?"NHWC":"NCHW"})},842166:(G,j,q,ne,fe,Se)=>{h.jb("BatchNormalization",G,{epsilon:j,momentum:q,spatial:!!fe,trainingMode:!!ne,format:Se?"NHWC":"NCHW"})},842335:(G,j,q)=>{h.jb("CumSum",G,{exclusive:Number(j),reverse:Number(q)})},842432:(G,j,q)=>{h.jb("DequantizeLinear",G,{axis:j,blockSize:q})},842522:(G,j,q,ne,fe)=>{h.jb("GridSample",G,{align_corners:j,mode:Jt(q),padding_mode:Jt(ne),format:fe?"NHWC":"NCHW"})},842692:(G,j,q,ne,fe)=>{h.jb("GridSample",G,{align_corners:j,mode:Jt(q),padding_mode:Jt(ne),format:fe?"NHWC":"NCHW"})},842862:(G,j)=>{h.jb("ScatterND",G,{reduction:Jt(j)})},842947:(G,j,q,ne,fe,Se,Ke,fA,yA)=>{h.jb("Attention",G,{numHeads:j,isUnidirectional:q,maskFilterValue:ne,scale:fe,doRotary:Se,qkvHiddenSizes:Ke?Array.from(xe().subarray(Number(fA)>>>0,Number(fA)+Ke>>>0)):[],pastPresentShareBuffer:!!yA})},843219:G=>{h.jb("BiasAdd",G,void 0)},843274:G=>{h.jb("BiasSplitGelu",G,void 0)},843335:G=>{h.jb("FastGelu",G,void 0)},843391:(G,j,q,ne,fe,Se,Ke,fA,yA,VA,ut,bt,Nt,Tt,la,mn)=>{h.jb("Conv",G,{format:bt?"NHWC":"NCHW",auto_pad:j,dilations:q?Array.from(xe().subarray(Number(q)>>>0,Number(ne)>>>0)):[],group:fe,kernel_shape:Se?Array.from(xe().subarray(Number(Se)>>>0,Number(Ke)>>>0)):[],pads:fA?Array.from(xe().subarray(Number(fA)>>>0,Number(yA)>>>0)):[],strides:VA?Array.from(xe().subarray(Number(VA)>>>0,Number(ut)>>>0)):[],w_is_const:()=>!!me()[Number(Nt)>>>0],activation:Jt(Tt),activation_params:la?Array.from(uA().subarray(Number(la)>>>0,Number(mn)>>>0)):[]})},843975:G=>{h.jb("Gelu",G,void 0)},844027:(G,j,q,ne,fe,Se,Ke,fA,yA)=>{h.jb("GroupQueryAttention",G,{numHeads:j,kvNumHeads:q,scale:ne,softcap:fe,doRotary:Se,rotaryInterleaved:Ke,smoothSoftmax:fA,localWindowSize:yA})},844244:(G,j,q,ne)=>{h.jb("LayerNormalization",G,{axis:j,epsilon:q,simplified:!!ne})},844355:(G,j,q,ne)=>{h.jb("LayerNormalization",G,{axis:j,epsilon:q,simplified:!!ne})},844466:(G,j,q,ne,fe,Se)=>{h.jb("MatMulNBits",G,{k:j,n:q,accuracyLevel:ne,bits:fe,blockSize:Se})},844593:(G,j,q,ne,fe,Se)=>{h.jb("MultiHeadAttention",G,{numHeads:j,isUnidirectional:q,maskFilterValue:ne,scale:fe,doRotary:Se})},844752:(G,j)=>{h.jb("QuickGelu",G,{alpha:j})},844816:(G,j,q,ne,fe)=>{h.jb("RotaryEmbedding",G,{interleaved:!!j,numHeads:q,rotaryEmbeddingDim:ne,scale:fe})},844955:(G,j,q)=>{h.jb("SkipLayerNormalization",G,{epsilon:j,simplified:!!q})},845057:(G,j,q)=>{h.jb("SkipLayerNormalization",G,{epsilon:j,simplified:!!q})},845159:(G,j,q,ne)=>{h.jb("GatherBlockQuantized",G,{gatherAxis:j,quantizeAxis:q,blockSize:ne})},845280:G=>{h.Zb(G)},845314:(G,j)=>h.ac(Number(G),Number(j),h.Fb.dc,h.Fb.errors)};function ce(G,j,q){return vr(async()=>{await h.Xb(Number(G),Number(j),Number(q))})}function MA(){return typeof wasmOffsetConverter<"u"}class nA{constructor(j){Ee(this,"name","ExitStatus");this.message=`Program terminated with exit(${j})`,this.status=j}}var DA=G=>{G.terminate(),G.onmessage=()=>{}},IA=[],ot=G=>{RA.length==0&&(Aa(),ea(RA[0]));var j=RA.pop();if(!j)return 6;ZA.push(j),Sr[G.Ab]=j,j.Ab=G.Ab;var q={Bb:"run",fc:G.ec,Hb:G.Hb,Ab:G.Ab};return j.postMessage(q,G.Mb),0},BA=0,tA=(G,j,...q)=>{for(var ne=2*q.length,fe=Ta(),Se=rn(8*ne),Ke=Se>>>3,fA=0;fA<q.length;fA++){var yA=q[fA];typeof yA=="bigint"?(Be[Ke+2*fA]=1n,Be[Ke+2*fA+1]=yA):(Be[Ke+2*fA]=0n,hA()[Ke+2*fA+1>>>0]=yA)}return G=gn(G,0,ne,Se,j),Bs(fe),G};function lA(G){if(E)return tA(0,1,G);if(y=G,!(0<BA)){for(var j of ZA)DA(j);for(j of RA)DA(j);RA=[],ZA=[],Sr={},Le=!0}X(0,new nA(G))}function KA(G){if(E)return tA(1,0,G);JA(G)}var JA=G=>{if(y=G,E)throw KA(G),"unwind";lA(G)},RA=[],ZA=[],Zt=[],Sr={},ft=G=>{var j=G.Ab;delete Sr[j],RA.push(G),ZA.splice(ZA.indexOf(G),1),G.Ab=0,Ns(j)};function ds(){Zt.forEach(G=>G())}var ea=G=>new Promise(j=>{G.onmessage=fe=>{var Se=(fe=fe.data).Bb;if(fe.Gb&&fe.Gb!=wr()){var Ke=Sr[fe.Gb];Ke?Ke.postMessage(fe,fe.Mb):w(`Internal error! Worker sent a message "${Se}" to target pthread ${fe.Gb}, but that thread no longer exists!`)}else Se==="checkMailbox"?$e():Se==="spawnThread"?ot(fe):Se==="cleanupThread"?ft(Sr[fe.hc]):Se==="loaded"?(G.loaded=!0,j(G)):Se==="alert"?alert(`Thread ${fe.ic}: ${fe.text}`):fe.target==="setimmediate"?G.postMessage(fe):Se==="callHandler"?h[fe.Qb](...fe.args):Se&&w(`worker sent an unknown command ${Se}`)},G.onerror=fe=>{throw w(`worker sent an error! ${fe.filename}:${fe.lineno}: ${fe.message}`),fe};var q,ne=[];for(q of[])h.propertyIsEnumerable(q)&&ne.push(q);G.postMessage({Bb:"load",Rb:ne,kc:e,lc:u})});function Aa(){var G=new Worker((()=>{let j=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new j("ort.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});RA.push(G)}var Ts=G=>{Ae();var j=sA()[G+52>>>2>>>0];G=sA()[G+56>>>2>>>0],Or(j,j-G),Bs(j)},Er=(G,j)=>{BA=0,G=jn(G,j),0<BA?y=G:tn(G)};class $r{constructor(j){this.Ib=j-24}}function Ss(G,j,q){var ne=new $r(G>>>=0);throw j>>>=0,q>>>=0,sA()[ne.Ib+16>>>2>>>0]=0,sA()[ne.Ib+4>>>2>>>0]=j,sA()[ne.Ib+8>>>2>>>0]=q,G}function xt(G,j,q,ne){return E?tA(2,1,G,j,q,ne):UA(G,j,q,ne)}function UA(G,j,q,ne){if(G>>>=0,q>>>=0,ne>>>=0,D===void 0)return 6;var fe=[];return E&&fe.length===0?xt(G,j>>>=0,q,ne):(G={ec:q,Ab:G,Hb:ne,Mb:fe},E?(G.Bb="spawnThread",postMessage(G,fe),0):ot(G))}var ta=typeof TextDecoder<"u"?new TextDecoder:void 0,Os=(G,j=0,q=NaN)=>{var ne=(j>>>=0)+q;for(q=j;G[q]&&!(q>=ne);)++q;if(16<q-j&&G.buffer&&ta)return ta.decode(G.buffer instanceof ArrayBuffer?G.subarray(j,q):G.slice(j,q));for(ne="";j<q;){var fe=G[j++];if(128&fe){var Se=63&G[j++];if((224&fe)==192)ne+=String.fromCharCode((31&fe)<<6|Se);else{var Ke=63&G[j++];65536>(fe=(240&fe)==224?(15&fe)<<12|Se<<6|Ke:(7&fe)<<18|Se<<12|Ke<<6|63&G[j++])?ne+=String.fromCharCode(fe):(fe-=65536,ne+=String.fromCharCode(55296|fe>>10,56320|1023&fe))}}else ne+=String.fromCharCode(fe)}return ne},Jt=(G,j)=>(G>>>=0)?Os(ie(),G,j):"";function bs(G,j,q){return E?tA(3,1,G,j,q):0}function mt(G,j){if(E)return tA(4,1,G,j)}var Ws=G=>{for(var j=0,q=0;q<G.length;++q){var ne=G.charCodeAt(q);127>=ne?j++:2047>=ne?j+=2:55296<=ne&&57343>=ne?(j+=4,++q):j+=3}return j},H=(G,j,q)=>{var ne=ie();if(j>>>=0,0<q){var fe=j;q=j+q-1;for(var Se=0;Se<G.length;++Se){var Ke=G.charCodeAt(Se);if(55296<=Ke&&57343>=Ke&&(Ke=65536+((1023&Ke)<<10)|1023&G.charCodeAt(++Se)),127>=Ke){if(j>=q)break;ne[j++>>>0]=Ke}else{if(2047>=Ke){if(j+1>=q)break;ne[j++>>>0]=192|Ke>>6}else{if(65535>=Ke){if(j+2>=q)break;ne[j++>>>0]=224|Ke>>12}else{if(j+3>=q)break;ne[j++>>>0]=240|Ke>>18,ne[j++>>>0]=128|Ke>>12&63}ne[j++>>>0]=128|Ke>>6&63}ne[j++>>>0]=128|63&Ke}}ne[j>>>0]=0,G=j-fe}else G=0;return G};function ue(G,j){if(E)return tA(5,1,G,j)}function ae(G,j,q){if(E)return tA(6,1,G,j,q)}function pe(G,j,q){return E?tA(7,1,G,j,q):0}function ke(G,j){if(E)return tA(8,1,G,j)}function _e(G,j,q){if(E)return tA(9,1,G,j,q)}function eA(G,j,q,ne){if(E)return tA(10,1,G,j,q,ne)}
6function FA(G,j,q,ne){if(E)return tA(11,1,G,j,q,ne)}function NA(G,j,q,ne){if(E)return tA(12,1,G,j,q,ne)}function SA(G){if(E)return tA(13,1,G)}function gt(G,j){if(E)return tA(14,1,G,j)}function YA(G,j,q){if(E)return tA(15,1,G,j,q)}var vt,OA,Bt=()=>Y(""),zt=G=>{for(var j="";ie()[G>>>0];)j+=vt[ie()[G++>>>0]];return j},es={},Cr={};function Kr(G,j,q={}){return function(ne,fe,Se={}){var Ke=fe.name;if(!ne)throw new OA(`type "${Ke}" must have a positive integer typeid pointer`);if(Cr.hasOwnProperty(ne)){if(Se.Sb)return;throw new OA(`Cannot register type '${Ke}' twice`)}Cr[ne]=fe,es.hasOwnProperty(ne)&&(fe=es[ne],delete es[ne],fe.forEach(fA=>fA()))}(G,j,q)}var ur=(G,j,q)=>{switch(j){case 1:return q?ne=>me()[ne>>>0]:ne=>ie()[ne>>>0];case 2:return q?ne=>Ie()[ne>>>1>>>0]:ne=>Fe()[ne>>>1>>>0];case 4:return q?ne=>xe()[ne>>>2>>>0]:ne=>sA()[ne>>>2>>>0];case 8:return q?ne=>Be[ne>>>3]:ne=>ve[ne>>>3];default:throw new TypeError(`invalid integer width (${j}): ${G}`)}};function Vs(G,j,q){q>>>=0,Kr(G>>>=0,{name:j=zt(j>>>0),fromWireType:ne=>ne,toWireType:function(ne,fe){if(typeof fe!="bigint"&&typeof fe!="number")throw fe=fe===null?"null":(ne=typeof fe)=="object"||ne==="array"||ne==="function"?fe.toString():""+fe,new TypeError(`Cannot convert "${fe}" to ${this.name}`);return typeof fe=="number"&&(fe=BigInt(fe)),fe},Cb:Tr,readValueFromPointer:ur(j,q,j.indexOf("u")==-1),Db:null})}var Tr=8;function ha(G,j,q,ne){Kr(G>>>=0,{name:j=zt(j>>>0),fromWireType:function(fe){return!!fe},toWireType:function(fe,Se){return Se?q:ne},Cb:Tr,readValueFromPointer:function(fe){return this.fromWireType(ie()[fe>>>0])},Db:null})}var ks=[],ss=[];function as(G){9<(G>>>=0)&&--ss[G+1]==0&&(ss[G]=void 0,ks.push(G))}var fr=G=>{if(!G)throw new OA("Cannot use deleted val. handle = "+G);return ss[G]},LA=G=>{switch(G){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let j=ks.pop()||ss.length;return ss[j]=G,ss[j+1]=1,j}};function Vr(G){return this.fromWireType(sA()[G>>>2>>>0])}var fs={name:"emscripten::val",fromWireType:G=>{var j=fr(G);return as(G),j},toWireType:(G,j)=>LA(j),Cb:Tr,readValueFromPointer:Vr,Db:null};function ra(G){return Kr(G>>>0,fs)}var Ys=(G,j)=>{switch(j){case 4:return function(q){return this.fromWireType(uA()[q>>>2>>>0])};case 8:return function(q){return this.fromWireType(hA()[q>>>3>>>0])};default:throw new TypeError(`invalid float width (${j}): ${G}`)}};function _s(G,j,q){q>>>=0,Kr(G>>>=0,{name:j=zt(j>>>0),fromWireType:ne=>ne,toWireType:(ne,fe)=>fe,Cb:Tr,readValueFromPointer:Ys(j,q),Db:null})}function _r(G,j,q,ne,fe){if(G>>>=0,q>>>=0,j=zt(j>>>0),fe===-1&&(fe=4294967295),fe=fA=>fA,ne===0){var Se=32-8*q;fe=fA=>fA<<Se>>>Se}var Ke=j.includes("unsigned")?function(fA,yA){return yA>>>0}:function(fA,yA){return yA};Kr(G,{name:j,fromWireType:fe,toWireType:Ke,Cb:Tr,readValueFromPointer:ur(j,q,ne!==0),Db:null})}function pA(G,j,q){function ne(Se){var Ke=sA()[Se>>>2>>>0];return Se=sA()[Se+4>>>2>>>0],new fe(me().buffer,Se,Ke)}var fe=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][j];Kr(G>>>=0,{name:q=zt(q>>>0),fromWireType:ne,Cb:Tr,readValueFromPointer:ne},{Sb:!0})}function CA(G,j){Kr(G>>>=0,{name:j=zt(j>>>0),fromWireType:function(q){for(var ne,fe=sA()[q>>>2>>>0],Se=q+4,Ke=Se,fA=0;fA<=fe;++fA){var yA=Se+fA;fA!=fe&&ie()[yA>>>0]!=0||(Ke=Jt(Ke,yA-Ke),ne===void 0?ne=Ke:(ne+="\0",ne+=Ke),Ke=yA+1)}return xs(q),ne},toWireType:function(q,ne){ne instanceof ArrayBuffer&&(ne=new Uint8Array(ne));var fe=typeof ne=="string";if(!(fe||ne instanceof Uint8Array||ne instanceof Uint8ClampedArray||ne instanceof Int8Array))throw new OA("Cannot pass non-string to std::string");var Se=fe?Ws(ne):ne.length,Ke=An(4+Se+1),fA=Ke+4;if(sA()[Ke>>>2>>>0]=Se,fe)H(ne,fA,Se+1);else if(fe)for(fe=0;fe<Se;++fe){var yA=ne.charCodeAt(fe);if(255<yA)throw xs(Ke),new OA("String has UTF-16 code units that do not fit in 8 bits");ie()[fA+fe>>>0]=yA}else for(fe=0;fe<Se;++fe)ie()[fA+fe>>>0]=ne[fe];return q!==null&&q.push(xs,Ke),Ke},Cb:Tr,readValueFromPointer:Vr,Db(q){xs(q)}})}var _A=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Rt=(G,j)=>{for(var q=G>>1,ne=q+j/2;!(q>=ne)&&Fe()[q>>>0];)++q;if(32<(q<<=1)-G&&_A)return _A.decode(ie().slice(G,q));for(q="",ne=0;!(ne>=j/2);++ne){var fe=Ie()[G+2*ne>>>1>>>0];if(fe==0)break;q+=String.fromCharCode(fe)}return q},Ca=(G,j,q)=>{if(q??(q=2147483647),2>q)return 0;var ne=j;q=(q-=2)<2*G.length?q/2:G.length;for(var fe=0;fe<q;++fe){var Se=G.charCodeAt(fe);Ie()[j>>>1>>>0]=Se,j+=2}return Ie()[j>>>1>>>0]=0,j-ne},sa=G=>2*G.length,Hs=(G,j)=>{for(var q=0,ne="";!(q>=j/4);){var fe=xe()[G+4*q>>>2>>>0];if(fe==0)break;++q,65536<=fe?(fe-=65536,ne+=String.fromCharCode(55296|fe>>10,56320|1023&fe)):ne+=String.fromCharCode(fe)}return ne},Wa=(G,j,q)=>{if(j>>>=0,q??(q=2147483647),4>q)return 0;var ne=j;q=ne+q-4;for(var fe=0;fe<G.length;++fe){var Se=G.charCodeAt(fe);if(55296<=Se&&57343>=Se&&(Se=65536+((1023&Se)<<10)|1023&G.charCodeAt(++fe)),xe()[j>>>2>>>0]=Se,(j+=4)+4>q)break}return xe()[j>>>2>>>0]=0,j-ne},Ne=G=>{for(var j=0,q=0;q<G.length;++q){var ne=G.charCodeAt(q);55296<=ne&&57343>=ne&&++q,j+=4}return j};function J(G,j,q){if(G>>>=0,j>>>=0,q=zt(q>>>=0),j===2)var ne=Rt,fe=Ca,Se=sa,Ke=fA=>Fe()[fA>>>1>>>0];else j===4&&(ne=Hs,fe=Wa,Se=Ne,Ke=fA=>sA()[fA>>>2>>>0]);Kr(G,{name:q,fromWireType:fA=>{for(var yA,VA=sA()[fA>>>2>>>0],ut=fA+4,bt=0;bt<=VA;++bt){var Nt=fA+4+bt*j;bt!=VA&&Ke(Nt)!=0||(ut=ne(ut,Nt-ut),yA===void 0?yA=ut:(yA+="\0",yA+=ut),ut=Nt+j)}return xs(fA),yA},toWireType:(fA,yA)=>{if(typeof yA!="string")throw new OA(`Cannot pass non-string to C++ string type ${q}`);var VA=Se(yA),ut=An(4+VA+j);return sA()[ut>>>2>>>0]=VA/j,fe(yA,ut+4,VA+j),fA!==null&&fA.push(xs,ut),ut},Cb:Tr,readValueFromPointer:Vr,Db(fA){xs(fA)}})}function de(G,j){Kr(G>>>=0,{Tb:!0,name:j=zt(j>>>0),Cb:0,fromWireType:()=>{},toWireType:()=>{}})}function he(G){at(G>>>0,!M,1,!k,131072,!1),ds()}var Ge=G=>{if(!Le)try{if(G(),!(0<BA))try{E?tn(y):JA(y)}catch(j){j instanceof nA||j=="unwind"||X(0,j)}}catch(j){j instanceof nA||j=="unwind"||X(0,j)}};function ze(G){G>>>
vendor: 8,349 bytes, lines 6-13
6=0,typeof Atomics.jc=="function"&&(Atomics.jc(xe(),G>>>2,G).value.then($e),G+=128,Atomics.store(xe(),G>>>2,1))}var $e=()=>{var G=wr();G&&(ze(G),Ge(Zs))};function wA(G,j){(G>>>=0)==j>>>0?setTimeout($e):E?postMessage({Gb:G,Bb:"checkMailbox"}):(G=Sr[G])&&G.postMessage({Bb:"checkMailbox"})}var xA=[];function Xe(G,j,q,ne,fe){for(j>>>=0,ne/=2,xA.length=ne,q=fe>>>0>>>3,fe=0;fe<ne;fe++)xA[fe]=Be[q+2*fe]?Be[q+2*fe+1]:hA()[q+2*fe+1>>>0];return(j?He[j]:en[G])(...xA)}var QA=()=>{BA=0};function it(G){G>>>=0,E?postMessage({Bb:"cleanupThread",hc:G}):ft(Sr[G])}function St(G){}var Ft=(G,j)=>{var q=Cr[G];if(q===void 0)throw G=Ln(G),q=zt(G),xs(G),new OA(`${j} has unknown type ${q}`);return q},gr=(G,j,q)=>{var ne=[];return G=G.toWireType(ne,q),ne.length&&(sA()[j>>>2>>>0]=LA(ne)),G};function Ht(G,j,q){return j>>>=0,q>>>=0,G=fr(G>>>0),j=Ft(j,"emval::as"),gr(j,q,G)}function er(G,j){return j>>>=0,G=fr(G>>>0),(j=Ft(j,"emval::as")).toWireType(null,G)}var pr=G=>{try{G()}catch(j){Y(j)}},Ar=0,Pr=null,sr=0,Ms=[],tr={},br={},Qt=0,mr=null,Us=[];function vr(G){return function(j){if(!Le){if(Ar===0){var q=!1,ne=!1;j((fe=0)=>{if(!Le&&(sr=fe,q=!0,ne)){Ar=2,pr(()=>Pa(Pr)),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.resume(),fe=!1;try{var Se=function(){var yA=xe()[Pr+8>>>2>>>0];return yA=et[br[yA]],--BA,yA()}()}catch(yA){Se=yA,fe=!0}var Ke=!1;if(!Pr){var fA=mr;fA&&(mr=null,(fe?fA.reject:fA.resolve)(Se),Ke=!0)}if(fe&&!Ke)throw Se}}),ne=!0,q||(Ar=1,Pr=function(){var fe=An(65548),Se=fe+12;sA()[fe>>>2>>>0]=Se,sA()[fe+4>>>2>>>0]=Se+65536,Se=Ms[0];var Ke=tr[Se];return Ke===void 0&&(Ke=Qt++,tr[Se]=Ke,br[Ke]=Se),Se=Ke,xe()[fe+8>>>2>>>0]=Se,fe}(),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.pause(),pr(()=>pn(Pr)))}else Ar===2?(Ar=0,pr(Wn),xs(Pr),Pr=null,Us.forEach(Ge)):Y(`invalid state: ${Ar}`);return sr}}(j=>{G().then(j)})}function Es(G){return G>>>=0,vr(async()=>{var j=await fr(G);return LA(j)})}var hr=[];function Ir(G,j,q,ne){return q>>>=0,ne>>>=0,(G=hr[G>>>0])(null,j=fr(j>>>0),q,ne)}var WA={},Mt=G=>{var j=WA[G];return j===void 0?zt(G):j};function zr(G,j,q,ne,fe){return q>>>=0,ne>>>=0,fe>>>=0,(G=hr[G>>>0])(j=fr(j>>>0),j[q=Mt(q)],ne,fe)}var ba=()=>typeof globalThis=="object"?globalThis:Function("return this")();function aa(G){return(G>>>=0)==0?LA(ba()):(G=Mt(G),LA(ba()[G]))}var si=G=>{var j=hr.length;return hr.push(G),j},ai=(G,j)=>{for(var q=Array(G),ne=0;ne<G;++ne)q[ne]=Ft(sA()[j+4*ne>>>2>>>0],"parameter "+ne);return q},Ia=(G,j)=>Object.defineProperty(j,"name",{value:G});function Pn(G,j,q){var ne=(j=ai(G,j>>>0)).shift();G--;var fe=`return function (obj, func, destructorsRef, args) { 7`,Se=0,Ke=[];q===0&&Ke.push("obj");for(var fA=["retType"],yA=[ne],VA=0;VA<G;++VA)Ke.push("arg"+VA),fA.push("argType"+VA),yA.push(j[VA]),fe+=` var arg${VA} = argType${VA}.readValueFromPointer(args${Se?"+"+Se:""}); 8`,Se+=j[VA].Cb;return fe+=` var rv = ${q===1?"new func":"func.call"}(${Ke.join(", ")}); 9`,ne.Tb||(fA.push("emval_returnValue"),yA.push(gr),fe+=` return emval_returnValue(retType, destructorsRef, rv); 10`),fA.push(fe+`}; 11`),G=function(ut){var bt=Function;if(!(bt instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof bt} which is not a function`);var Nt=Ia(bt.name||"unknownFunctionName",function(){});return Nt.prototype=bt.prototype,Nt=new Nt,(ut=bt.apply(Nt,ut))instanceof Object?ut:Nt}(fA)(...yA),q=`methodCaller<(${j.map(ut=>ut.name).join(", ")}) => ${ne.name}>`,si(Ia(q,G))}function ni(G){return G=Mt(G>>>0),LA(h[G])}function na(G,j){return j>>>=0,G=fr(G>>>0),j=fr(j),LA(G[j])}function Va(G){9<(G>>>=0)&&(ss[G+1]+=1)}function Nr(){return LA([])}function PA(G){G=fr(G>>>0);for(var j=Array(G.length),q=0;q<G.length;q++)j[q]=G[q];return LA(j)}function gs(G){return LA(Mt(G>>>0))}function Gn(){return LA({})}function ia(G){for(var j=fr(G>>>=0);j.length;){var q=j.pop();j.pop()(q)}as(G)}function ii(G,j,q){j>>>=0,q>>>=0,G=fr(G>>>0),j=fr(j),q=fr(q),G[j]=q}function oi(G,j){return j>>>=0,G=(G=Ft(G>>>0,"_emval_take_value")).readValueFromPointer(j),LA(G)}function li(G,j){G=-9007199254740992>G||9007199254740992<G?NaN:Number(G),j>>>=0,G=new Date(1e3*G),xe()[j>>>2>>>0]=G.getUTCSeconds(),xe()[j+4>>>2>>>0]=G.getUTCMinutes(),xe()[j+8>>>2>>>0]=G.getUTCHours(),xe()[j+12>>>2>>>0]=G.getUTCDate(),xe()[j+16>>>2>>>0]=G.getUTCMonth(),xe()[j+20>>>2>>>0]=G.getUTCFullYear()-1900,xe()[j+24>>>2>>>0]=G.getUTCDay(),G=(G.getTime()-Date.UTC(G.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,xe()[j+28>>>2>>>0]=G}var Qn=G=>G%4==0&&(G%100!=0||G%400==0),Fn=[0,31,60,91,121,152,182,213,244,274,305,335],wa=[0,31,59,90,120,151,181,212,243,273,304,334];function jt(G,j){G=-9007199254740992>G||9007199254740992<G?NaN:Number(G),j>>>=0,G=new Date(1e3*G),xe()[j>>>2>>>0]=G.getSeconds(),xe()[j+4>>>2>>>0]=G.getMinutes(),xe()[j+8>>>2>>>0]=G.getHours(),xe()[j+12>>>2>>>0]=G.getDate(),xe()[j+16>>>2>>>0]=G.getMonth(),xe()[j+20>>>2>>>0]=G.getFullYear()-1900,xe()[j+24>>>2>>>0]=G.getDay();var q=(Qn(G.getFullYear())?Fn:wa)[G.getMonth()]+G.getDate()-1|0;xe()[j+28>>>2>>>0]=q,xe()[j+36>>>2>>>0]=-60*G.getTimezoneOffset(),q=new Date(G.getFullYear(),6,1).getTimezoneOffset();var ne=new Date(G.getFullYear(),0,1).getTimezoneOffset();G=0|(q!=ne&&G.getTimezoneOffset()==Math.min(ne,q)),xe()[j+32>>>2>>>0]=G}function Sn(G){G>>>=0;var j=new Date(xe()[G+20>>>2>>>0]+1900,xe()[G+16>>>2>>>0],xe()[G+12>>>2>>>0],xe()[G+8>>>2>>>0],xe()[G+4>>>2>>>0],xe()[G>>>2>>>0],0),q=xe()[G+32>>>2>>>0],ne=j.getTimezoneOffset(),fe=new Date(j.getFullYear(),6,1).getTimezoneOffset(),Se=new Date(j.getFullYear(),0,1).getTimezoneOffset(),Ke=Math.min(Se,fe);return 0>q?xe()[G+32>>>2>>>0]=+(fe!=Se&&Ke==ne):0<q!=(Ke==ne)&&(fe=Math.max(Se,fe),j.setTime(j.getTime()+6e4*((0<q?Ke:fe)-ne))),xe()[G+24>>>2>>>0]=j.getDay(),q=(Qn(j.getFullYear())?Fn:wa)[j.getMonth()]+j.getDate()-1|0,xe()[G+28>>>2>>>0]=q,xe()[G>>>2>>>0]=j.getSeconds(),xe()[G+4>>>2>>>0]=j.getMinutes(),xe()[G+8>>>2>>>0]=j.getHours(),xe()[G+12>>>2>>>0]=j.getDate(),xe()[G+16>>>2>>>0]=j.getMonth(),xe()[G+20>>>2>>>0]=j.getYear(),G=j.getTime(),BigInt(isNaN(G)?-1:G/1e3)}function ln(G,j,q,ne,fe,Se,Ke){return E?tA(16,1,G,j,q,ne,fe,Se,Ke):-52}function oa(G,j,q,ne,fe,Se){if(E)return tA(17,1,G,j,q,ne,fe,Se)}var vs={},zs=()=>performance.timeOrigin+performance.now();function Ya(G,j){if(E)return tA(18,1,G,j);if(vs[G]&&(clearTimeout(vs[G].id),delete vs[G]),!j)return 0;var q=setTimeout(()=>{delete vs[G],Ge(()=>Lr(G,performance.timeOrigin+performance.now()))},j);return vs[G]={id:q,qc:j},0}function ci(G,j,q,ne){G>>>=0,j>>>=0,q>>>=0,ne>>>=0;var fe=new Date().getFullYear(),Se=new Date(fe,0,1).getTimezoneOffset();fe=new Date(fe,6,1).getTimezoneOffset();var Ke=Math.max(Se,fe);sA()[G>>>2>>>0]=60*Ke,xe()[j>>>2>>>0]=+(Se!=fe),G=(j=fA=>{var yA=Math.abs(fA);return`UTC${0<=fA?"-":"+"}${String(Math.floor(yA/60)).padStart(2,"0")}${String(yA%60).padStart(2,"0")}`})(Se),j=j(fe),fe<Se?(H(G,q,17),H(j,ne,17)):(H(G,ne,17),H(j,q,17))}var ka=()=>Date.now();function cn(G,j,q){return 0<=G&&3>=G?(G===0?G=Date.now():G=performance.timeOrigin+performance.now(),Be[q>>>0>>>3]=BigInt(Math.round(1e6*G)),0):28}var Ha=[],Da=(G,j)=>{Ha.length=0;for(var q;q=ie()[G++>>>0];){var ne=q!=105;j+=(ne&=q!=112)&&j%8?4:0,Ha.push(q==112?sA()[j>>>2>>>0]:q==106?Be[j>>>3]:q==105?xe()[j>>>2>>>0]:hA()[j>>>3>>>0]),j+=ne?8:4}return Ha};function dA(G,j,q){return G>>>=0,j=Da(j>>>0,q>>>0),He[G](...j)}function ui(G,j,q){return G>>>=0,j=Da(j>>>0,q>>>0),He[G](...j)}var GA=()=>{};function un(G,j){return w(Jt(G>>>0,j>>>0))}var dn=()=>{throw BA+=1,"unwind"};function Xr(){return 4294901760}var ns=()=>navigator.hardwareConcurrency;function Ua(){return Y("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function Ka(G){G>>>=0;var j=ie().length;if(G<=j||4294901760<G)return!1;for(var q=1;4>=q;q*=2){var ne=j*(1+.2/q);ne=Math.min(ne,G+100663296);e:{ne=(Math.min(4294901760,65536*Math.ceil(Math.max(G,ne)/65536))-e.buffer.byteLength+65535)/65536|0;try{e.grow(ne),Ae();var fe=1;break e}catch{}fe=void 0}if(fe)return!0}return!1}var Ma=()=>(Y("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),ar={},Xa=G=>{G.forEach(j=>{Ma()})};function On(){var G=Error().stack.toString().split(` 12`);return G[0]=="Error"&&G.shift(),Xa(G),ar.Lb=Ma(),ar.cc=G,ar.Lb}function Za(G,j,q){if(G>>>=0,j>>>=0,ar.Lb==G)var ne=ar.cc;else(ne=Error().stack.toString().split(` 13`))[0]=="Error"&&ne.shift(),Xa(ne);for(var fe=3;ne[fe]&&Ma()!=G;)++fe;
13for(G=0;G<q&&ne[G+fe];++G)xe()[j+4*G>>>2>>>0]=Ma();return G}var Ks,Xs={},fn=()=>{if(!Ks){var G,j={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(G in Xs)Xs[G]===void 0?delete j[G]:j[G]=Xs[G];var q=[];for(G in j)q.push(`${G}=${j[G]}`);Ks=q}return Ks};function Ja(G,j){if(E)return tA(19,1,G,j);G>>>=0,j>>>=0;var q=0;return fn().forEach((ne,fe)=>{var Se=j+q;for(fe=sA()[G+4*fe>>>2>>>0]=Se,Se=0;Se<ne.length;++Se)me()[fe++>>>0]=ne.charCodeAt(Se);me()[fe>>>0]=0,q+=ne.length+1}),0}function EA(G,j){if(E)return tA(20,1,G,j);G>>>=0,j>>>=0;var q=fn();sA()[G>>>2>>>0]=q.length;var ne=0;return q.forEach(fe=>ne+=fe.length+1),sA()[j>>>2>>>0]=ne,0}function Ps(G){return E?tA(21,1,G):52}function _n(G,j,q,ne){return E?tA(22,1,G,j,q,ne):52}function zn(G,j,q,ne){return E?tA(23,1,G,j,q,ne):70}var qa=[null,[],[]];function Ea(G,j,q,ne){if(E)return tA(24,1,G,j,q,ne);j>>>=0,q>>>=0,ne>>>=0;for(var fe=0,Se=0;Se<q;Se++){var Ke=sA()[j>>>2>>>0],fA=sA()[j+4>>>2>>>0];j+=8;for(var yA=0;yA<fA;yA++){var VA=ie()[Ke+yA>>>0],ut=qa[G];VA===0||VA===10?((G===1?d:w)(Os(ut)),ut.length=0):ut.push(VA)}fe+=fA}return sA()[ne>>>2>>>0]=fe,0}E||function(){for(var G=h.numThreads-1;G--;)Aa();IA.unshift(()=>{Ue++,function(j){E?j():Promise.all(RA.map(ea)).then(j)}(()=>aA())})}();for(var Nn=Array(256),$a=0;256>$a;++$a)Nn[$a]=String.fromCharCode($a);vt=Nn,OA=h.BindingError=class extends Error{constructor(G){super(G),this.name="BindingError"}},h.InternalError=class extends Error{constructor(G){super(G),this.name="InternalError"}},ss.push(0,1,void 0,1,null,1,!0,1,!1,1),h.count_emval_handles=()=>ss.length/2-5-ks.length;var et,en=[lA,KA,xt,bs,mt,ue,ae,pe,ke,_e,eA,FA,NA,SA,gt,YA,ln,oa,Ya,Ja,EA,Ps,_n,zn,Ea];(async function(){function G(ne,fe){return et=ne.exports,et=function(){var Se=et,Ke={};for(let[fA,yA]of Object.entries(Se))Ke[fA]=typeof yA=="function"?(...VA)=>{Ms.push(fA);try{return yA(...VA)}finally{Le||(Ms.pop(),Pr&&Ar===1&&Ms.length===0&&(Ar=0,BA+=1,pr(nr),typeof Fibers<"u"&&Fibers.rc()))}}:yA;return Ke}(),et=function(){var Se=et,Ke=yA=>VA=>yA(VA)>>>0,fA=yA=>()=>yA()>>>0;return(Se=Object.assign({},Se)).Da=Ke(Se.Da),Se.fb=fA(Se.fb),Se.hb=Ke(Se.hb),Se.tb=Ke(Se.tb),Se.ub=fA(Se.ub),Se.__cxa_get_exception_ptr=Ke(Se.__cxa_get_exception_ptr),Se}(),Zt.push(et.ib),u=fe,aA(),et}Ue++;var j=cA();if(h.instantiateWasm)return new Promise(ne=>{h.instantiateWasm(j,(fe,Se)=>{G(fe,Se),ne(fe.exports)})});if(E)return new Promise(ne=>{iA=fe=>{var Se=new WebAssembly.Instance(fe,cA());ne(G(Se,fe))}});qe??(qe=h.locateFile?h.locateFile?h.locateFile("ort-wasm-simd-threaded.jsep.wasm",z):z+"ort-wasm-simd-threaded.jsep.wasm":new URL(""+new URL("../assets/ort-wasm-simd-threaded.jsep.B0T3yYHD.wasm",import.meta.url).href,import.meta.url).href);try{var q=await async function(ne){var fe=qe;if(!je&&typeof WebAssembly.instantiateStreaming=="function"&&!Pe(fe))try{var Se=fetch(fe,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(Se,ne)}catch(Ke){w(`wasm streaming compile failed: ${Ke}`),w("falling back to ArrayBuffer instantiation")}return async function(Ke,fA){try{var yA=await async function(VA){if(!je)try{var ut=await S(VA);return new Uint8Array(ut)}catch{}if(VA==qe&&je)VA=new Uint8Array(je);else{if(!F)throw"both async and sync fetching of the wasm failed";VA=F(VA)}return VA}(Ke);return await WebAssembly.instantiate(yA,fA)}catch(VA){w(`failed to asynchronously prepare wasm: ${VA}`),Y(VA)}}(fe,ne)}(j);return G(q.instance,q.module)}catch(ne){return p(ne),Promise.reject(ne)}})();var Ln=G=>(Ln=et.Da)(G),Rn=()=>(Rn=et.Ea)();h._OrtInit=(G,j)=>(h._OrtInit=et.Fa)(G,j),h._OrtGetLastError=(G,j)=>(h._OrtGetLastError=et.Ga)(G,j),h._OrtCreateSessionOptions=(G,j,q,ne,fe,Se,Ke,fA,yA,VA)=>(h._OrtCreateSessionOptions=et.Ha)(G,j,q,ne,fe,Se,Ke,fA,yA,VA),h._OrtAppendExecutionProvider=(G,j,q,ne,fe)=>(h._OrtAppendExecutionProvider=et.Ia)(G,j,q,ne,fe),h._OrtAddFreeDimensionOverride=(G,j,q)=>(h._OrtAddFreeDimensionOverride=et.Ja)(G,j,q),h._OrtAddSessionConfigEntry=(G,j,q)=>(h._OrtAddSessionConfigEntry=et.Ka)(G,j,q),h._OrtReleaseSessionOptions=G=>(h._OrtReleaseSessionOptions=et.La)(G),h._OrtCreateSession=(G,j,q)=>(h._OrtCreateSession=et.Ma)(G,j,q),h._OrtReleaseSession=G=>(h._OrtReleaseSession=et.Na)(G),h._OrtGetInputOutputCount=(G,j,q)=>(h._OrtGetInputOutputCount=et.Oa)(G,j,q),h._OrtGetInputOutputMetadata=(G,j,q,ne)=>
vendor: 1,962 bytes, line 13
13(h._OrtGetInputOutputMetadata=et.Pa)(G,j,q,ne),h._OrtFree=G=>(h._OrtFree=et.Qa)(G),h._OrtCreateTensor=(G,j,q,ne,fe,Se)=>(h._OrtCreateTensor=et.Ra)(G,j,q,ne,fe,Se),h._OrtGetTensorData=(G,j,q,ne,fe)=>(h._OrtGetTensorData=et.Sa)(G,j,q,ne,fe),h._OrtReleaseTensor=G=>(h._OrtReleaseTensor=et.Ta)(G),h._OrtCreateRunOptions=(G,j,q,ne)=>(h._OrtCreateRunOptions=et.Ua)(G,j,q,ne),h._OrtAddRunConfigEntry=(G,j,q)=>(h._OrtAddRunConfigEntry=et.Va)(G,j,q),h._OrtReleaseRunOptions=G=>(h._OrtReleaseRunOptions=et.Wa)(G),h._OrtCreateBinding=G=>(h._OrtCreateBinding=et.Xa)(G),h._OrtBindInput=(G,j,q)=>(h._OrtBindInput=et.Ya)(G,j,q),h._OrtBindOutput=(G,j,q,ne)=>(h._OrtBindOutput=et.Za)(G,j,q,ne),h._OrtClearBoundOutputs=G=>(h._OrtClearBoundOutputs=et._a)(G),h._OrtReleaseBinding=G=>(h._OrtReleaseBinding=et.$a)(G),h._OrtRunWithBinding=(G,j,q,ne,fe)=>(h._OrtRunWithBinding=et.ab)(G,j,q,ne,fe),h._OrtRun=(G,j,q,ne,fe,Se,Ke,fA)=>(h._OrtRun=et.bb)(G,j,q,ne,fe,Se,Ke,fA),h._OrtEndProfiling=G=>(h._OrtEndProfiling=et.cb)(G),h._JsepOutput=(G,j,q)=>(h._JsepOutput=et.db)(G,j,q),h._JsepGetNodeName=G=>(h._JsepGetNodeName=et.eb)(G);var wr=()=>(wr=et.fb)(),xs=h._free=G=>(xs=h._free=et.gb)(G),An=h._malloc=G=>(An=h._malloc=et.hb)(G),at=(G,j,q,ne,fe,Se)=>(at=et.kb)(G,j,q,ne,fe,Se),Gs=()=>(Gs=et.lb)(),gn=(G,j,q,ne,fe)=>(gn=et.mb)(G,j,q,ne,fe),Ns=G=>(Ns=et.nb)(G),tn=G=>(tn=et.ob)(G),Lr=(G,j)=>(Lr=et.pb)(G,j),Zs=()=>(Zs=et.qb)(),Or=(G,j)=>(Or=et.rb)(G,j),Bs=G=>(Bs=et.sb)(G),rn=G=>(rn=et.tb)(G),Ta=()=>(Ta=et.ub)(),jn=h.dynCall_ii=(G,j)=>(jn=h.dynCall_ii=et.vb)(G,j),pn=G=>(pn=et.wb)(G),nr=()=>(nr=et.xb)(),Pa=G=>(Pa=et.yb)(G),Wn=()=>(Wn=et.zb)();return h.stackSave=()=>Ta(),h.stackRestore=G=>Bs(G),h.stackAlloc=G=>rn(G),h.setValue=function(G,j,q="i8"){switch(q.endsWith("*")&&(q="*"),q){case"i1":case"i8":me()[G>>>0]=j;break;case"i16":Ie()[G>>>1>>>0]=j;break;case"i32":xe()[G>>>2>>>0]=j;break;case"i64":Be[G>>>3]=BigInt(j);break;case"float":uA()[G>>>2>>>0]=j;break;case"double":hA()[G>>>3>>>
130]=j;break;case"*":sA()[G>>>2>>>0]=j;break;default:Y(`invalid type for setValue: ${q}`)}},h.getValue=function(G,j="i8"){switch(j.endsWith("*")&&(j="*"),j){case"i1":case"i8":return me()[G>>>0];case"i16":return Ie()[G>>>1>>>0];case"i32":return xe()[G>>>2>>>0];case"i64":return Be[G>>>3];case"float":return uA()[G>>>2>>>0];case"double":return hA()[G>>>3>>>0];case"*":return sA()[G>>>2>>>0];default:Y(`invalid type for getValue: ${j}`)}},h.UTF8ToString=Jt,h.stringToUTF8=H,h.lengthBytesUTF8=Ws,function G(){if(0<Ue)rA=G;else if(E)g(h),Re();else{for(;0<IA.length;)IA.shift()(h);0<Ue?rA=G:(h.calledRun=!0,Le||(Re(),g(h)))}}(),h.PTR_SIZE=4,C}),Th=e2,hg=(i=(a=globalThis.self)==null?void 0:a.name)==null?void 0:i.startsWith("em-pthread"),hg&&e2()}),A2,tc,Cg,ga,Ph,M0,bg,Ig,t2,wg,r2,Gh,s2,Qh,kc=kA(()=>{wc(),A2=typeof location>"u"?void 0:location.origin,tc=import.meta.url>"file:"&&import.meta.url<"file;",Cg=()=>{{if(tc){let a=URL;return new URL(new a("ort.bundle.min.mjs",import.meta.url).href,A2).href}return import.meta.url}},ga=Cg(),Ph=()=>{if(ga&&!ga.startsWith("blob:"))return ga.substring(0,ga.lastIndexOf("/")+1)},M0=(a,i)=>{try{let n=i??ga;return(n?new URL(a,n):new URL(a)).origin===A2}catch{return!1}},bg=(a,i)=>{let n=i??ga;try{return(n?new URL(a,n):new URL(a)).href}catch{return}},Ig=(a,i)=>`${i??"./"}${a}`,t2=async a=>{let i=await(await fetch(a,{credentials:"same-origin"})).blob();return URL.createObjectURL(i)},wg=async a=>(await import(a)).default,r2=(l6(),Zo(Bh)).default,Gh=async()=>{if(!ga)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(M0(ga))return[void 0,r2()];let a=await t2(ga);return[a,r2(a)]},s2=(c6(),Zo(Dh)).default,Qh=async(a,i,n)=>{if(!a&&!i&&s2&&ga&&M0(ga))return[void 0,s2];{let g="ort-wasm-simd-threaded.jsep.mjs",p=a??bg(g,i),h=n&&p&&!M0(p,i),C=h?await t2(p):p??Ig(g,i);return[h?C:void 0,await wg(C)]}}}),a2,E0,Qo,n2,kg,Mg,Eg,Mc,Mr,Oi=kA(()=>{kc(),E0=!1,Qo=!1,n2=!1,kg=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},Mg=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},Eg=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},Mc=async a=>{if(E0)return Promise.resolve();if(Qo)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(n2)throw new Error("previous call to 'initializeWebAssembly()' failed.");Qo=!0;let i=a.initTimeout,n=a.numThreads;if(a.simd!==!1){if(a.simd==="relaxed"){if(!Eg())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!Mg())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let g=kg();n>1&&!g&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+n+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),a.numThreads=n=1);let p=a.wasmPaths,h=typeof p=="string"?p:void 0,C=p==null?void 0:p.mjs,k=(C==null?void 0:C.href)??C,M=p==null?void 0:p.wasm,E=(M==null?void 0:M.href)??M,D=a.wasmBinary,[B,v]=await Qh(k,h,n>1),S=!1,F=[];if(i>0&&F.push(new Promise(R=>{setTimeout(()=>{S=!0,R()},i)})),F.push(new Promise((R,X)=>{let z={numThreads:n};if(D)z.wasmBinary=D;else if(E||h)z.locateFile=L=>E??h+L;else if(k&&k.indexOf("blob:")!==0)z.locateFile=L=>new URL(L,k).href;else if(B){let L=Ph();L&&(z.locateFile=K=>L+K)}v(z).then(L=>{Qo=!1,E0=!0,a2=L,R(),B&&URL.revokeObjectURL(B)},L=>{Qo=!1,n2=!0,X(L)})})),await Promise.race(F),S)throw new Error(`WebAssembly backend initializing failed due to timeout: ${i}ms`)},Mr=()=>{if(E0&&a2)return a2;throw new Error("WebAssembly is not initialized yet.")}}),za,R0,lr,Ec=kA(()=>{Oi(),za=(a,i)=>{let n=Mr(),g=n.lengthBytesUTF8(a)+1,p=n._malloc(g);return n.stringToUTF8(a,p,g),i.push(p),p},R0=(a,i,n,g)=>{if(typeof a=="object"&&a!==null){if(n.has(a))throw new Error("Circular reference in options");n.add(a)}
13Object.entries(a).forEach(([p,h])=>{let C=i?i+p:p;if(typeof h=="object")R0(h,C+".",n,g);else if(typeof h=="string"||typeof h=="number")g(C,h.toString());else if(typeof h=="boolean")g(C,h?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof h}`)})},lr=a=>{let i=Mr(),n=i.stackSave();try{let g=i.PTR_SIZE,p=i.stackAlloc(2*g);i._OrtGetLastError(p,p+g);let h=Number(i.getValue(p,g===4?"i32":"i64")),C=i.getValue(p+g,"*"),k=C?i.UTF8ToString(C):"";throw new Error(`${a} ERROR_CODE: ${h}, ERROR_MESSAGE: ${k}`)}finally{i.stackRestore(n)}}}),Fh,u6=kA(()=>{Oi(),Ec(),Fh=a=>{let i=Mr(),n=0,g=[],p=a||{};try{if((a==null?void 0:a.logSeverityLevel)===void 0)p.logSeverityLevel=2;else if(typeof a.logSeverityLevel!="number"||!Number.isInteger(a.logSeverityLevel)||a.logSeverityLevel<0||a.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${a.logSeverityLevel}`);if((a==null?void 0:a.logVerbosityLevel)===void 0)p.logVerbosityLevel=0;else if(typeof a.logVerbosityLevel!="number"||!Number.isInteger(a.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${a.logVerbosityLevel}`);(a==null?void 0:a.terminate)===void 0&&(p.terminate=!1);let h=0;return(a==null?void 0:a.tag)!==void 0&&(h=za(a.tag,g)),n=i._OrtCreateRunOptions(p.logSeverityLevel,p.logVerbosityLevel,!!p.terminate,h),n===0&&lr("Can't create run options."),(a==null?void 0:a.extra)!==void 0&&R0(a.extra,"",new WeakSet,(C,k)=>{let M=za(C,g),E=za(k,g);i._OrtAddRunConfigEntry(n,M,E)!==0&&lr(`Can't set a run config entry: ${C} - ${k}.`)}),[n,g]}catch(h){throw n!==0&&i._OrtReleaseRunOptions(n),g.forEach(C=>i._free(C)),h}}}),vg,xg,Bg,Fo,yg,Sh,d6=kA(()=>{Oi(),Ec(),vg=a=>{switch(a){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${a}`)}},xg=a=>{switch(a){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${a}`)}},Bg=a=>{a.extra||(a.extra={}),a.extra.session||(a.extra.session={});let i=a.extra.session;i.use_ort_model_bytes_directly||(i.use_ort_model_bytes_directly="1"),a.executionProviders&&a.executionProviders.some(n=>(typeof n=="string"?n:n.name)==="webgpu")&&(a.enableMemPattern=!1)},Fo=(a,i,n,g)=>{let p=za(i,g),h=za(n,g);Mr()._OrtAddSessionConfigEntry(a,p,h)!==0&&lr(`Can't set a session config entry: ${i} - ${n}.`)},yg=async(a,i,n)=>{for(let g of i){let p=typeof g=="string"?g:g.name,h=[];switch(p){case"webnn":if(p="WEBNN",typeof g!="string"){let D=g==null?void 0:g.deviceType;D&&Fo(a,"deviceType",D,n)}break;case"webgpu":if(p="JS",typeof g!="string"){let D=g;if(D!=null&&D.preferredLayout){if(D.preferredLayout!=="NCHW"&&D.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${D.preferredLayout}`);Fo(a,"preferredLayout",D.preferredLayout,n)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${p}`)}let C=za(p,n),k=h.length,M=0,E=0;if(k>0){M=Mr()._malloc(k*Mr().PTR_SIZE),n.push(M),E=Mr()._malloc(k*Mr().PTR_SIZE),n.push(E);for(let D=0;D<k;D++)Mr().setValue(M+D*Mr().PTR_SIZE,h[D][0],"*"),Mr().setValue(E+D*Mr().PTR_SIZE,h[D][1],"*")}await Mr()._OrtAppendExecutionProvider(a,C,M,E,k)!==0&&lr(`Can't append execution provider: ${p}.`)}},Sh=async a=>{let i=Mr(),n=0,g=[],p=a||{};Bg(p);try{let h=vg(p.graphOptimizationLevel??"all"),C=xg(p.executionMode??"sequential"),k=typeof p.logId=="string"?za(p.logId,g):0,M=p.logSeverityLevel??2;if(!Number.isInteger(M)||M<0||M>4)throw new Error(`log serverity level is not valid: ${M}`);let E=p.logVerbosityLevel??0;if(!Number.isInteger(E)||E<0||E>4)throw new Error(`log verbosity level is not valid: ${E}`);let D=typeof p.optimizedModelFilePath=="string"?za(p.optimizedModelFilePath,g):0;if(n=i._OrtCreateSessionOptions(h,!!p.enableCpuMemArena,!!p.enableMemPattern,C,!!p.enableProfiling,0,k,M,E,D),n===0&&lr("Can't create session options."),p.executionProviders&&await yg(n,p.executionProviders,g),p.enableGraphCapture!==void 0){if(typeof p.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${p.enableGraphCapture}`);Fo(n,"enableGraphCapture",p.enableGraphCapture.toString(),g)}if(p.freeDimensionOverrides)for(let[B,v]of Object.entries(p.freeDimensionOverrides)){if(typeof B!="string")throw new Error(`free dimension override name must be a string: ${B}`);if(typeof v!="number"||!Number.isInteger(v)||v<0)throw new Error(`free dimension override value must be a non-negative integer: ${v}`);let S=za(B,g);i._OrtAddFreeDimensionOverride(n,S,v)!==0&&lr(`Can't set a free dimension override: ${B} - ${v}.`)}return p.extra!==void 0&&R0(p.extra,"",new WeakSet,(B,v)=>{Fo(n,B,v,g)}),[n,g]}catch(h){throw n!==0&&i._OrtReleaseSessionOptions(n)!==0&&lr("Can't release session options."),g.forEach(C=>i._free(C)),h}}}),ro,yn,Di,vc,j0,xc,Bc,rc,ct=kA(()=>{ro=a=>{switch(a){case"int8":return 3;case"uint8":return 2;case"bool":return 9;
vendor: 4,697 bytes, line 13
13case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${a}`)}},yn=a=>{switch(a){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${a}`)}},Di=(a,i)=>{let n=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][a],g=typeof i=="number"?i:i.reduce((p,h)=>p*h,1);return n>0?Math.ceil(g*n):void 0},vc=a=>{switch(a){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${a}`)}},j0=a=>{switch(a){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${a}`)}},xc=a=>a==="float32"||a==="float16"||a==="int32"||a==="int64"||a==="uint32"||a==="uint8"||a==="bool"||a==="uint4"||a==="int4",Bc=a=>a==="float32"||a==="float16"||a==="int32"||a==="int64"||a==="uint32"||a==="uint64"||a==="int8"||a==="uint8"||a==="bool"||a==="uint4"||a==="int4",rc=a=>{switch(a){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${a}`)}}}),yc,Oh=kA(()=>{wc(),yc=async a=>{if(typeof a=="string"){let i=await fetch(a);if(!i.ok)throw new Error(`failed to load external data file: ${a}`);let n=i.headers.get("Content-Length"),g=n?parseInt(n,10):0;if(g<1073741824)return new Uint8Array(await i.arrayBuffer());{if(!i.body)throw new Error(`failed to load external data file: ${a}, no response body.`);let p=i.body.getReader(),h;try{h=new ArrayBuffer(g)}catch(k){if(k instanceof RangeError){let M=Math.ceil(g/65536);h=new WebAssembly.Memory({initial:M,maximum:M}).buffer}else throw k}let C=0;for(;;){let{done:k,value:M}=await p.read();if(k)break;let E=M.byteLength;new Uint8Array(h,C,E).set(M),C+=E}return new Uint8Array(h,0,g)}}else return a instanceof Blob?new Uint8Array(await a.arrayBuffer()):a instanceof Uint8Array?a:new Uint8Array(a)}}),Dg,Tg,Pg,Gg,Dc,Qg,Lt,Tn=kA(()=>{ct(),Dg=["V","I","W","E","F"],Tg=(a,i)=>{`${Dg[a]}${new Date().toISOString()}${i}`},Dc=(a,i)=>{Pg=a,Gg=i},Qg=(a,i)=>{let n=j0(a),g=j0(Pg);n>=g&&Tg(n,typeof i=="function"?i():i)},Lt=(...a)=>{Gg&&Qg(...a)}}),Fg,co,Je,W0,_h,zh,Nh,It=kA(()=>{Fg=class{static calcMatMulShape(a,i){return a[1]!==i[0]?void 0:[a[0],i[1]]}},co=class{static calcShape(a,i,n=!1){let g=a.length,p=i.length;if(g===0)return i;if(p===0)return a;let h=Math.max(a.length,i.length),C=new Array(h);if(n){if(g<2||p<2)return;let k=Fg.calcMatMulShape([a[g-2],a[g-1]],[i[p-2],i[p-1]]);if(k===void 0)return;[C[h-2],C[h-1]]=k}for(let k=n?3:1;k<=h;k++){let M=g-k<0?1:a[g-k],E=p-k<0?1:i[p-k];if(M!==E&&M>1&&E>1)return;let D=Math.max(M,E);if(M&&E)C[h-k]=Math.max(M,E);else{if(D>1)return;C[h-k]=0}}return C}static isValidBroadcast(a,i){let n=a.length,g=i.length;if(n>g)return!1;for(let p=1;p<=n;p++)if(a[n-p]!==1&&a[n-p]!==i[g-p])return!1;return!0}},Je=class z0{static size(i){return z0.getSizeFromDimensionRange(i,0,i.length)}static convertShape(i,n=4){let g=i.length;if(g===0)return[];let p=new Array(g),h=g-1;for(;h>=0;){if(i[h]%n===0){p[h]=i[h]/n;break}if(n%i[h]!==0)throw new Error("cannot convert shape");p[h]=1,n/=i[h],h--}for(h--;h>=0;h--)p[h]=i[h];return p}static sizeFromDimension(i,n){if(n<0||n>i.length)throw new Error(`invalid dimension of ${n} for sizeFromDimension as Tensor has ${i.length} dimensions.`);return z0.getSizeFromDimensionRange(i,n,i.length)}static sizeToDimension(i,n){if(n<0||n>i.length)throw new Error(`invalid dimension of ${n} for sizeToDimension as Tensor has ${i.length} dimensions.`);return z0.getSizeFromDimensionRange(i,0,n)}static getSizeFromDimensionRange(i,n,g){let p=1;for(let h=n;h<g;h++){if(i[h]<0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains
13negative values in them.");p*=Number(i[h])}return p}static computeStrides(i){let n=i.length;if(n===0)return[];if(n===1)return[1];let g=new Array(n);g[n-1]=1,g[n-2]=i[n-1];for(let p=n-3;p>=0;--p)g[p]=g[p+1]*i[p+1];return g}static normalizeAxis(i,n){if(i<-n&&i>=n)throw new Error("unsupported axis for this operation.");return i<0?i+n:i}static normalizeAxes(i,n){return i.map(g=>this.normalizeAxis(g,n??i.length))}static sortBasedOnPerm(i,n){return n?n.map(g=>i[g]):i.slice().reverse()}static padShape(i,n){let g=i.length;return i.map((p,h)=>p+n[h]+n[h+g])}static areEqual(i,n){return i.length!==n.length?!1:i.every((g,p)=>g===n[p])}},W0=class Vo{static adjustPoolAttributes(i,n,g,p,h,C){if(!i&&g.length!==n.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(i)for(let k=0;k<n.length-2;k++)k>=g.length?g.push(n[k+2]):g[k]=n[k+2];for(let k=0;k<g.length;k++)if(k<p.length){if(p[k]<0)throw new Error("strides should be greater than or equal to 1")}else p.push(1);for(let k=0;k<g.length;k++)if(k<h.length){if(h[k]<0)throw new Error("dilations should be greater than or equal to 1")}else h.push(1);for(let k=0;k<g.length*2;k++)if(k<C.length){if(C[k]<0)throw new Error("pad should be greater than or equal to 1")}else C.push(0);for(let k=0;k<g.length;k++){if(g[k]<=0)throw new Error("kernel shapes need to be greater than 0");if(C[k]>=g[k]||C[k+g.length]>=g[k])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(i,n,g,p,h,C,k){if(k){if(h.length!==2*(i.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(n.length!==i.length-2)throw new Error("length of strides should be the length of data dimensions");if(p.length!==i.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let M=0;M<i.length-2;M++)Vo.adjustPadAndReturnShape(i[M+(C?1:2)],n[M],g[M],p[M],h,M,M+i.length-2,k)}}static computePoolOutputShape(i,n,g,p,h,C,k){if(n.length<=0)throw new Error("input shape must be of size greater than 0");let M=[n[0],n[1]];return Vo.computeShapeHelper(i,n,M,g,p,h,C,k),M}static computeConvOutputShape(i,n,g,p,h,C,k){if(i.length<=0||n.length<=0)throw new Error("invalid input tensor dims or invalid filter tensor dims");let M=[i[0],n[0]];return Vo.computeShapeHelper(!1,i,M,g,p,h,C,k),M}static computeShapeHelper(i,n,g,p,h,C,k,M){if(i)for(let E=0;E<n.length-2;E++)g.push(1);else for(let E=0;E<n.length-2;E++)g.push(Vo.adjustPadAndReturnShape(n[E+2],p[E],h[E],C[E],k,E,E+n.length-2,M))}static adjustPadAndReturnShape(i,n,g,p,h,C,k,M){let E=g*(p-1)+1;if(M&&M!=="NOTSET")switch(M){case"VALID":return h[C]=0,h[k]=0,Math.floor((i-E)/n+1);case"SAME_LOWER":case"SAME_UPPER":if(g!==1)throw new Error("Dilation not supported for SAME_UPPER or SAME_LOWER");{let D=((i+n-1)/n-1)*n+p-i;return h[C]=Math.floor(M==="SAME_LOWER"?(D+1)/2:D/2),h[k]=D-h[C],Math.floor((i+D-p)/n+1)}default:throw new Error("Unsupported AutoPad type")}else return Math.floor((i+h[C]+h[k]-E)/n+1)}},_h=class{static getShapeOfGemmResult(a,i,n,g,p){if(a.length!==2||n.length!==2)throw new Error("shape need to be of size 2");let h,C,k;i?(h=a[1],C=a[0]):(h=a[0],C=a[1]);let M=-1;if(g?(k=n[0],M=1):(k=n[1],M=0),n[M]!==C)throw new Error("dimension mismatch");if(h<=0||k<=0||C<=0)throw new Error("invalid shape specified");if(p&&!co.isValidBroadcast(p,[h,k]))throw new Error("gemm: invalid bias shape for broadcast");return[h,k,C]}},zh=-34028234663852886e22,Nh=34028234663852886e22}),Tc,Lh=kA(()=>{ct(),Tc=(a,i)=>new(vc(i))(a)}),sc,i2,Sg,o2,Og,l2,c2,u2,_g,Rh,f6=kA(()=>{Tn(),sc=(a,i=!0)=>
13{if(a.byteLength%8!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 8 (BigInt).");let n=a.byteLength/8,g=new BigInt64Array(a.buffer,a.byteOffset,n),p=new Int32Array(n);for(let h=0;h<n;h++){let C=g[h];if(C>2147483647n||C<-2147483648n)throw new Error(`Overflow occurred when converting BigInt to Int32 at index ${h}: ${C}`);p[h]=Number(C)}return i?new Uint8Array(p.buffer):p},i2=(a,i=!0)=>{if(a.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (Int32).");let n=a.byteLength/4,g=new Int32Array(a.buffer,a.byteOffset,n),p=BigInt64Array.from(g,BigInt);return i?new Uint8Array(p.buffer):p},Sg=1,o2=()=>Sg++,Og=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),l2=(a,i)=>{let n=Og.get(a);if(!n)throw new Error("Unsupported data type.");return i.length>0?Math.ceil(i.reduce((g,p)=>g*p)*n/8):0},c2=class{constructor(a){this.shouldConvertInt64toInt32=!1,this.isInt64ToInt32Converted=!1;let{sessionId:i,context:n,tensor:g,dataType:p,shape:h,shouldConvertInt64toInt32:C=!1}=a;this.sessionId=i,this.mlContext=n,this.mlTensor=g,this.dataType=p,this.tensorShape=h,this.shouldConvertInt64toInt32=C}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return l2(this.dataType,this.tensorShape)}destroy(){Lt("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(a){this.mlContext.writeTensor(this.mlTensor,a)}async read(a,i){if(a){let n=await this.mlContext.readTensor(this.mlTensor),g=i2(new Uint8Array(n));if(i){(i instanceof ArrayBuffer?new Uint8Array(i):new Uint8Array(i.buffer,i.byteOffset,i.byteLength)).set(g);return}else return g.buffer}else return i?this.mlContext.readTensor(this.mlTensor,i):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(a,i,n){return this.mlContext===a&&this.dataType===i&&this.tensorShape.length===n.length&&this.tensorShape.every((g,p)=>g===n[p])}setIsInt64ToInt32Converted(a){this.isInt64ToInt32Converted=a}},u2=class{constructor(a,i){this.tensorManager=a,this.wrapper=i}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(a,i,n,g){let p=i,h=this.tensorManager.getMLContext(a),C=p==="int64"&&!h.opSupportLimits().input.dataTypes.includes("int64");if(C&&(p="int32",Lt("verbose",()=>"[WebNN] TensorIdTracker.ensureTensor: convert dataType from int64 to int32")),this.wrapper){if(this.wrapper.canReuseTensor(h,p,n))return this.wrapper.tensor;if(g){if(this.wrapper.byteLength!==l2(p,n))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let k=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(a,p,n,k,!0,!0,C),g&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(a){let i=a;if(this.wrapper)if(this.wrapper.shouldConvertInt64toInt32&&(i=sc(a,!0),this.wrapper.setIsInt64ToInt32Converted(!0)),i.byteLength===this.wrapper.byteLength){this.wrapper.write(i);return}else Lt("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor();this.activeUpload?this.activeUpload.set(i):this.activeUpload=new Uint8Array(i)}async download(a){var i,n,g;if(this.activeUpload){let p=(i=this.wrapper)!=null&&i.isInt64ToInt32Converted?i2(this.activeUpload):this.activeUpload;if(a){a instanceof ArrayBuffer?new Uint8Array(a).set(p):new Uint8Array(a.buffer,a.byteOffset,a.byteLength).set(p);return}else return p.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return a?this.wrapper.read((n=this.wrapper)==null?void 0:n.shouldConvertInt64toInt32,a):this.wrapper.read((g=this.wrapper)==null?void 0:g.shouldConvertInt64toInt32)}},_g=class{constructor(a){this.backend=a,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(a){let i=this.backend.getMLContext(a);if(!i)throw new Error("MLContext not found for session.");return i}reserveTensorId(){let a=o2();return this.tensorTrackersById.set(a,new u2(this)),a}releaseTensorId(a){let i=this.tensorTrackersById.get(a);i&&(this.tensorTrackersById.delete(a),i.tensorWrapper&&this.releaseTensor(i.tensorWrapper))}async ensureTensor(a,i,n,g,p){Lt("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${i}, dataType: ${n}, shape: ${g}, copyOld: ${p}}`);let h=this.tensorTrackersById.get(i);if(!h)throw new Error("Tensor not found.");return h.ensureTensor(a,n,g,p)}upload(a,i){let n=this.tensorTrackersById.get(a);if(!n)throw new Error("Tensor not found.");n.upload(i)}async download(a,i){Lt("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${a}, dstBuffer: ${i==null?void 0:i.byteLength}}`);let n=this.tensorTrackersById.get(a);if(!n)throw new Error("Tensor not found.");return n.download(i)}releaseTensorsForSession(a){for(let i of this.freeTensors)i.sessionId===a&&i.destroy();this.freeTensors=this.freeTensors.filter(i=>i.sessionId!==a)}registerTensor(a,i,n,g){let p=this.getMLContext(a),h=o2(),C=new c2({sessionId:a,context:p,tensor:i,dataType:n,shape:g});return this.tensorTrackersById.set(h,new u2(this,C)),this.externalTensors.add(C),h}async getCachedTensor(a,i,n,g,p,h,C=!1){let k=this.getMLContext(a);for(let[E,D]of this.freeTensors.entries())if(D.canReuseTensor(k,i,n)){Lt("verbose",()=>`[WebNN] Reusing tensor {dataType: ${i}, shape: ${n}}`);let B=this.freeTensors.splice(E,1)[0];return B.sessionId=a,B}Lt("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${i}, shape: ${n}}`);let M=await k.createTensor({dataType:i,shape:n,dimensions:n,usage:g,writable:p,readable:h});return new c2({sessionId:a,context:k,tensor:M,dataType:i,shape:n,shouldConvertInt64toInt32:C})}releaseTensor(a){this.externalTensors.has(a)&&this.externalTensors.delete(a),this.freeTensors.push(a)}},Rh=(...a)=>new _g(...a)}),v0,zg,jh,g6=kA(()=>{ct(),Oi(),Lh(),f6(),Tn(),v0=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),zg=(a,i)=>{if(a===i)return!0;
13if(a===void 0||i===void 0)return!1;let n=Object.keys(a).sort(),g=Object.keys(i).sort();return n.length===g.length&&n.every((p,h)=>p===g[h]&&a[p]===i[p])},jh=class{constructor(a){this.tensorManager=Rh(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.temporaryGraphInputs=[],this.temporarySessionTensorIds=new Map,Dc(a.logLevel,!!a.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(a){Lt("verbose",()=>`[WebNN] onRunStart {sessionId: ${a}}`),this.activeSessionId=a}onRunEnd(a){Lt("verbose",()=>`[WebNN] onRunEnd {sessionId: ${a}}`);let i=this.temporarySessionTensorIds.get(a);if(i){for(let n of i)Lt("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${n}}`),this.tensorManager.releaseTensorId(n);this.temporarySessionTensorIds.delete(a),this.activeSessionId=void 0}}async createMLContext(a){if(a instanceof GPUDevice){let n=this.mlContextCache.findIndex(g=>g.gpuDevice===a);if(n!==-1)return this.mlContextCache[n].mlContext;{let g=await navigator.ml.createContext(a);return this.mlContextCache.push({gpuDevice:a,mlContext:g}),g}}else if(a===void 0){let n=this.mlContextCache.findIndex(g=>g.options===void 0&&g.gpuDevice===void 0);if(n!==-1)return this.mlContextCache[n].mlContext;{let g=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:g}),g}}let i=this.mlContextCache.findIndex(n=>zg(n.options,a));if(i!==-1)return this.mlContextCache[i].mlContext;{let n=await navigator.ml.createContext(a);return this.mlContextCache.push({options:a,mlContext:n}),n}}registerMLContext(a,i){this.mlContextBySessionId.set(a,i);let n=this.sessionIdsByMLContext.get(i);n||(n=new Set,this.sessionIdsByMLContext.set(i,n)),n.add(a),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(a,this.temporaryGraphInputs),this.temporaryGraphInputs=[])}onReleaseSession(a){this.sessionGraphInputs.delete(a);let i=this.mlContextBySessionId.get(a);if(!i)return;this.tensorManager.releaseTensorsForSession(a),this.mlContextBySessionId.delete(a);let n=this.sessionIdsByMLContext.get(i);if(n.delete(a),n.size===0){this.sessionIdsByMLContext.delete(i);let g=this.mlContextCache.findIndex(p=>p.mlContext===i);g!==-1&&this.mlContextCache.splice(g,1)}}getMLContext(a){return this.mlContextBySessionId.get(a)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(a){Lt("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${a}}`),this.tensorManager.releaseTensorId(a)}async ensureTensor(a,i,n,g,p){let h=v0.get(n);if(!h)throw new Error(`Unsupported ONNX data type: ${n}`);return this.tensorManager.ensureTensor(a??this.currentSessionId,i,h,g,p)}async createTemporaryTensor(a,i,n){Lt("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${i}, shape: ${n}}`);let g=v0.get(i);if(!g)throw new Error(`Unsupported ONNX data type: ${i}`);let p=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(a,p,g,n,!1);let h=this.temporarySessionTensorIds.get(a);return h?h.push(p):this.temporarySessionTensorIds.set(a,[p]),p}uploadTensor(a,i){if(!Mr().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Lt("verbose",()=>`[WebNN] uploadTensor {tensorId: ${a}, data: ${i.byteLength}}`),this.tensorManager.upload(a,i)}async downloadTensor(a,i){return this.tensorManager.download(a,i)}createMLTensorDownloader(a,i){return async()=>{let n=await this.tensorManager.download(a);return Tc(n,i)}}registerMLTensor(a,i,n,g){let p=v0.get(n);if(!p)throw new Error(`Unsupported ONNX data type: ${n}`);let h=this.tensorManager.registerTensor(a,i,p,g);return Lt("verbose",()=>`[WebNN] registerMLTensor {tensor: ${i}, dataType: ${p}, dimensions: ${g}} -> {tensorId: ${h}}`),h}registerMLConstant(a,i,n,g,p,h,C=!1){if(!h)throw new Error("External mounted files are not available.");let k=a;a.startsWith("./")&&(k=a.substring(2));let M=h.get(k);if(!M)throw new Error(`File with name ${k} not found in preloaded files.`);if(i+n>M.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let E=M.slice(i,i+n).buffer,D;switch(p.dataType){case"float32":D=new Float32Array(E);break;case"float16":D=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(E):new Uint16Array(E);break;case"int32":D=new Int32Array(E);break;case"uint32":D=new Uint32Array(E);break;case"int64":C?(D=sc(new Uint8Array(E),!1),p.dataType="int32"):D=new BigInt64Array(E);break;case"uint64":D=new BigUint64Array(E);break;case"int8":D=new Int8Array(E);break;case"int4":case"uint4":case"uint8":D=new Uint8Array(E);break;default:throw new Error(`Unsupported data type: ${p.dataType} in creating WebNN Constant from external data.`)}return Lt("verbose",()=>`[WebNN] registerMLConstant {dataType: ${p.dataType}, shape: ${p.shape}}} ${C?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),g.constant(p,D)}registerGraphInput(a){this.temporaryGraphInputs.push(a)}isGraphInput(a,i){let n=this.sessionGraphInputs.get(a);return n?n.includes(i):!1}isInt64Supported(a){var i;return!!((i=this.mlContextBySessionId.get(a))!=null&&i.opSupportLimits().input.dataTypes.includes("int64"))}flush(){}}}),Pc=kA(()=>{}),d2,x0,B0,Ng,Lg,f2,ac,Rg,Wh,p6=kA(()=>{Tn(),Pc(),d2=new Map([[64,250],[128,200],[256,200],[512,200],[2048,230],[4096,200
13],[8192,50],[16384,50],[32768,50],[65536,50],[131072,50],[262144,50],[524288,50],[1048576,50],[2097152,30],[4194304,20],[8388608,10],[12582912,10],[16777216,10],[26214400,15],[33554432,22],[44236800,2],[58982400,6],[67108864,6],[134217728,6],[167772160,6]]),x0=[],B0=a=>Math.ceil(Number(a)/16)*16,Ng=a=>{for(let i=0;i<x0.length;i++){let n=x0[i];if(a<=n)return n}return Math.ceil(a/16)*16},Lg=1,f2=()=>Lg++,ac=async(a,i,n,g)=>{let p=B0(n),h=a.device.createBuffer({size:p,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let C=a.getCommandEncoder();a.endComputePass(),C.copyBufferToBuffer(i,0,h,0,p),a.flush(),await h.mapAsync(GPUMapMode.READ);let k=h.getMappedRange();if(g){let M=g();return M.set(new Uint8Array(k,0,n)),M}else return new Uint8Array(k.slice(0,n))}finally{h.destroy()}},Rg=class{constructor(a){this.backend=a,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[i]of d2)x0.push(i),this.freeBuffers.set(i,[]),this.freeUniformBuffers.set(i,[]);this.sessionCount=0}upload(a,i){let n=i.buffer,g=i.byteOffset,p=i.byteLength,h=B0(p),C=this.storageCache.get(a);if(!C)throw new Error("gpu data for uploading does not exist");if(Number(C.originalSize)!==p)throw new Error(`inconsistent data size. gpu data size=${C.originalSize}, data size=${p}`);let k=this.backend.device.createBuffer({mappedAtCreation:!0,size:h,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),M=k.getMappedRange();new Uint8Array(M).set(new Uint8Array(n,g,p)),k.unmap();let E=this.backend.device.createCommandEncoder();E.copyBufferToBuffer(k,0,C.gpuData.buffer,0,h),this.backend.device.queue.submit([E.finish()]),k.destroy(),Lt("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${a})`)}memcpy(a,i){let n=this.storageCache.get(a);if(!n)throw new Error("source gpu data for memcpy does not exist");let g=this.storageCache.get(i);if(!g)throw new Error("destination gpu data for memcpy does not exist");if(n.originalSize!==g.originalSize)throw new Error("inconsistent source and destination gpu data size");let p=B0(n.originalSize),h=this.backend.getCommandEncoder();this.backend.endComputePass(),h.copyBufferToBuffer(n.gpuData.buffer,0,g.gpuData.buffer,0,p)}registerExternalBuffer(a,i,n){let g;if(n){if(g=n[0],a===n[1])return Lt("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${i}) => id=${g}, buffer is the same, skip.`),g;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet. 14 Please use the previous external buffer!`)}else g=f2();return this.storageCache.set(g,{gpuData:{id:g,type:0,buffer:a},originalSize:i}),Lt("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${i}) => id=${g}, registered.`),g}unregisterExternalBuffer(a){a!==void 0&&(this.storageCache.delete(a),Lt("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${a}`))}create(a,i=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let n=Ng(a),g,p=(i&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,h=(i&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(p||h){let k=(p?this.freeBuffers:this.freeUniformBuffers).get(n);k?k.length>0?g=k.pop():g=this.backend.device.createBuffer({size:n,usage:i}):g=this.backend.device.createBuffer({size:n,usage:i})}else g=this.backend.device.createBuffer({size:n,usage:i});let C={id:f2(),type:0,buffer:g};return this.storageCache.set(C.id,{gpuData:C,originalSize:Number(a)}),Lt("verbose",()=>`[WebGPU] GpuDataManager.create(size=${a}) => id=${C.id}`),C}get(a){var i;return(i=this.storageCache.get(a))==null?void 0:i.gpuData}release(a){let i=typeof a=="bigint"?Number(a):a,n=this.storageCache.get(i);if(!n){if(this.storageCache.size===0)return 0;throw new Error("releasing data does not exist")}return Lt("verbose",()=>`[WebGPU] GpuDataManager.release(id=${i}), gpuDataId=${n.gpuData.id}`),this.storageCache.delete(i),this.buffersPending.push(n.gpuData.buffer),n.originalSize}async download(a,i){let n=this.storageCache.get(Number(a));if(!n)throw new Error("data does not exist");await ac(this.backend,n.gpuData.buffer,n.originalSize,i)}refreshPendingBuffers(){if(this.buffersPending.length!==0)if(this.backend.sessionStatus==="default"){for(let a of this.buffersPending){let i=d2.get(a.size);if((a.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let n=this.freeBuffers.get(a.size)||[];i===void 0||n.length>=i?a.destroy():n.push(a)}
vendor: 43,505 bytes, lines 14-347
14else if((a.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let n=this.freeUniformBuffers.get(a.size)||[];i===void 0||n.length>=i?a.destroy():n.push(a)}else a.destroy()}this.buffersPending=[]}else{let a=this.capturedPendingBuffers.get(this.backend.currentSessionId);a||(a=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,a));for(let i of this.buffersPending)a.push(i);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(a=>{a.forEach(i=>{i.destroy()})}),this.freeUniformBuffers.forEach(a=>{a.forEach(i=>{i.destroy()})}),this.storageCache.forEach(a=>{a.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(a=>{a.forEach(i=>{i.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(a){let i=this.capturedPendingBuffers.get(a);i&&(i.forEach(n=>{n.destroy()}),this.capturedPendingBuffers.delete(a)),this.sessionCount-=1,this.sessionCount===0&&(Lt("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(n=>{n.gpuData.buffer.destroy()}),this.storageCache=new Map)}},Wh=(...a)=>new Rg(...a)}),jg,$t,Ur=kA(()=>{jg=class{constructor(a){Object.assign(this,a)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(a=>`${this[a]}`).join(";")),this.key}},$t=a=>new jg(a)}),uo,y0,Cs,Qs,tt,Wr,nc,ao,ti,$A,So,oA,XA,Vh,Gc,Wg,Yh,kt=kA(()=>{ct(),It(),uo=64,y0=(a,i)=>{if(i===3)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(Number(a)){case 10:return i>1?`vec${i}<f16>`:"f16";case 1:return i>1?`vec${i}<f32>`:"f32";case 6:return i>1?`vec${i}<i32>`:"i32";case 12:return i>1?`vec${i}<u32>`:"u32";case 7:if(i>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","i32"];case 13:if(i>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","u32"];case 9:if(i!==4)throw new Error("bool must be vec4");return["u32","vec4<bool>"];case 22:return"i32";case 21:return"u32";default:throw new Error(`Unknown data type: ${a}`)}},Cs=(a,i=1)=>{let n=y0(a,i);return typeof n=="string"?n:n[0]},Qs=(a,i=1)=>{let n=y0(a,i);return typeof n=="string"?n:n[1]},tt=(...a)=>{let i=[];return a.forEach(n=>{n.length!==0&&i.push({type:12,data:n},{type:12,data:Je.computeStrides(n)})}),i},Wr=a=>a%4===0?4:a%2===0?2:1,nc=(a="f32",i,n="0")=>!i||i===1?`${a}(${n})`:`vec${i}<${a}>(${n})`,ao=(a,i,n)=>a==="f32"?n:i===1?`f32(${n})`:`vec${i}<f32>(${n})`,ti=(a,i)=>i===4?`(${a}.x + ${a}.y + ${a}.z + ${a}.w)`:i===2?`(${a}.x + ${a}.y)`:i===3?`(${a}.x + ${a}.y + ${a}.z)`:a,$A=(a,i,n,g)=>a.startsWith("uniforms.")&&n>4?typeof i=="string"?g==="f16"?`${a}[(${i}) / 8][(${i}) % 8 / 4][(${i}) % 8 % 4]`:`${a}[(${i}) / 4][(${i}) % 4]`:g==="f16"?`${a}[${Math.floor(i/8)}][${Math.floor(i%8/4)}][${i%8%4}]`:`${a}[${Math.floor(i/4)}][${i%4}]`:n>1?`${a}[${i}]`:a,So=(a,i,n,g,p)=>{let h=typeof n=="number",C=h?n:n.length,k=[...new Array(C).keys()],M=C<2?"u32":C<=4?`vec${C}<u32>`:`array<u32, ${C}>`,E=y0(i,p),D=typeof E=="string"?E:E[1],B=typeof E=="string"?E:E[0],v={indices:M,value:D,storage:B,tensor:i},S=Pe=>typeof Pe=="string"?Pe:`${Pe}u`,F={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},R=h?"uniforms.":"",X=`${R}${a}_shape`,z=`${R}${a}_strides`,L="";for(let Pe=0;Pe<C-1;Pe++)L+=` 15 let dim${Pe} = current / ${$A(z,Pe,C)}; 16 let rest${Pe} = current % ${$A(z,Pe,C)}; 17 indices[${Pe}] = dim${Pe}; 18 current = rest${Pe}; 19 `;L+=`indices[${C-1}] = current;`;let K=C<2?"":` 20 fn o2i_${a}(offset: u32) -> ${v.indices} { 21 var indices: ${v.indices}; 22 var current = offset; 23 ${L} 24 return indices; 25 }`,d=Pe=>(F.offsetToIndices=!0,C<2?Pe:`o2i_${a}(${Pe})`),w=[];if(C>=2)for(let Pe=C-1;Pe>=0;Pe--)w.push(`${$A(z,Pe,C)} * (indices[${Pe}])`);let e=C<2?"":` 26 fn i2o_${a}(indices: ${v.indices}) -> u32 { 27 return ${w.join("+")}; 28 }`,u=Pe=>(F.indicesToOffset=!0,C<2?Pe:`i2o_${a}(${Pe})`),y=(...Pe)=>C===0?"0u":`${v.indices}(${Pe.map(S).join(",")})`,ee=(Pe,me)=>C<2?`${Pe}`:`${$A(Pe,me,C)}`,T=(Pe,me,ie)=>C<2?`${Pe}=${ie};`:`${$A(Pe,me,C)}=${ie};`,O={},ge=(Pe,me)=>{F.broadcastedIndicesToOffset=!0;let ie=`${me.name}broadcastedIndicesTo${a}Offset`;if(ie in O)return`${ie}(${Pe})`;let Ie=[];for(let Fe=C-1;Fe>=0;Fe--){let xe=me.indicesGet("outputIndices",Fe+me.rank-C);Ie.push(`${ee(z,Fe)} * (${xe} % ${ee(X,Fe)})`)}return O[ie]=`fn ${ie}(outputIndices: ${me.type.indices}) -> u32 { 29 return ${Ie.length>0?Ie.join("+"):"0u"}; 30 }`,`${ie}(${Pe})`},se=(Pe,me)=>(()=>{if(v.storage===v.value)return`${a}[${Pe}]=${me};`;if(v.storage==="vec2<u32>"&&v.value==="i32")return`${a}[${Pe}]=vec2<u32>(u32(${me}), select(0u, 0xFFFFFFFFu, ${me} < 0));`;if(v.storage==="vec2<u32>"&&v.value==="u32")return`${a}[${Pe}]=vec2<u32>(u32(${me}), 0u);`;if(v.storage==="u32"&&v.value==="vec4<bool>")return`${a}[${Pe}]=dot(vec4<u32>(0x1, 0x100, 0x10000, 0x1000000), vec4<u32>(${me}));`;throw new Error(`not supported combination of storage type ${v.storage} and value type ${v.value} yet`)})(),we=Pe=>(()=>{if(v.storage===v.value)return`${a}[${Pe}]`;if(v.storage==="vec2<u32>"&&v.value==="i32")return`i32(${a}[${Pe}].x)`;if(v.storage==="vec2<u32>"&&v.value==="u32")return`u32(${a}[${Pe}].x)`;if(v.storage==="u32"&&v.value==="vec4<bool>")return`vec4<bool>(bool(${a}[${Pe}] & 0xFFu), bool(${a}[${Pe}] & 0xFF00u), bool(${a}[${Pe}] & 0xFF0000u), bool(${a}[${Pe}] & 0xFF000000u))`;throw new Error(`not supported combination of storage type ${v.storage} and value type ${v.value} yet`)})(),be=C<2?"":` 31 fn get_${a}ByIndices(indices: ${v.indices}) -> ${D} { 32 return ${we(`i2o_${a}(indices)`)}; 33 }`,Be=C<2?"":(()=>{let Pe=k.map(ie=>`d${ie}: u32`).join(", "),me=k.map(ie=>`d${ie}`).join(", ");return` 34 fn get_${a}(${Pe}) -> ${D} { 35 return get_${a}ByIndices(${y(me)}); 36 }`})(),ve=(...Pe)=>{if(Pe.length!==C)throw new Error(`indices length must be ${C}`);let me=Pe.map(S).join(",");return C===0?we("0u"):C===1?we(me[0]):(F.get=!0,F.getByIndices=!0,F.indicesToOffset=!0,`get_${a}(${me})`)},De=Pe=>C<2?we(Pe):(F.getByIndices=!0,F.indicesToOffset=!0,`get_${a}ByIndices(${Pe})`),je=C<2?"":` 37 fn set_${a}ByIndices(indices: ${v.indices}, value: ${D}) { 38 ${se(`i2o_${a}(indices)`,"value")} 39 }`,Le=C<2?"":(()=>{let Pe=k.map(ie=>`d${ie}: u32`).join(", "),me=k.map(ie=>`d${ie}`).join(", ");return` 40 fn set_${a}(${Pe}, value: ${D}) { 41 set_${a}ByIndices(${y(me)}, value); 42 }`})();return{impl:()=>{let Pe=[],me=!1;return F.offsetToIndices&&(Pe.push(K),me=!0),F.indicesToOffset&&(Pe.push(e),me=!0),F.broadcastedIndicesToOffset&&(Object.values(O).forEach(ie=>Pe.push(ie)),me=!0),F.set&&(Pe.push(Le),me=!0),F.setByIndices&&(Pe.push(je),me=!0),F.get&&(Pe.push(Be),me=!0),F.getByIndices&&(Pe.push(be),me=!0),!h&&me&&Pe.unshift(`const ${X} = ${v.indices}(${n.join(",")});`,`const ${z} = ${v.indices}(${Je.computeStrides(n).join(",")});`),Pe.join(` 43`)},type:v,offsetToIndices:d,indicesToOffset:u,broadcastedIndicesToOffset:ge,indices:y,indicesGet:ee,indicesSet:T,set:(...Pe)=>{if(Pe.length!==C+1)throw new Error(`indices length must be ${C}`);let me=Pe[C];if(typeof me!="string")throw new Error("value must be string");let ie=Pe.slice(0,C).map(S).join(",");return C===0?se("0u",me):C===1?se(ie[0],me):(F.set=!0,F.setByIndices=!0,F.indicesToOffset=!0,`set_${a}(${ie}, ${me})`)},setByOffset:se,setByIndices:(Pe,me)=>C<2?se(Pe,me):(F.setByIndices=!0,F.indicesToOffset=!0,`set_${a}ByIndices(${Pe}, ${me});`),get:ve,getByOffset:we,getByIndices:De,usage:g,name:a,strides:z,shape:X,rank:C}},oA=(a,i,n,g=1)=>So(a,i,n,"input",g),XA=(a,i,n,g=1)=>So(a,i,n,"output",g),Vh=(a,i,n)=>So(a,i,n,"atomicOutput",1),Gc=(a,i,n,g=1)=>So(a,i,n,"internal",g),Wg=class{constructor(a,i){this.normalizedDispatchGroup=a,this.limits=i,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(a){return`if (global_idx >= ${typeof a=="number"?`${a}u`:a}) { return; }`}mainStart(a=uo){let i=typeof a=="number"?a:a[0],n=typeof a=="number"?1:a[1],g=typeof a=="number"?1:a[2];if(i>this.limits.maxComputeWorkgroupSizeX||n>this.limits.maxComputeWorkgroupSizeY||g>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${i}, ${n}, ${g}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(i*n*g>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${i}, ${n}, ${g}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let p=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1,h=p?`@builtin(global_invocation_id) global_id : vec3<u32>, 44 @builtin(workgroup_id) workgroup_id : vec3<u32>, 45 @builtin(local_invocation_index) local_idx : u32, 46 @builtin(local_invocation_id) local_id : vec3<u32>`:`@builtin(global_invocation_id) global_id : vec3<u32>, 47 @builtin(local_invocation_id) local_id : vec3<u32>, 48 @builtin(local_invocation_index) local_idx : u32, 49 @builtin(workgroup_id) workgroup_id : vec3<u32>, 50 @builtin(num_workgroups) num_workgroups : vec3<u32>`,C=p?`let global_idx = global_id.x; 51 let workgroup_index = workgroup_id.x;`:`let workgroup_index = workgroup_id.z * num_workgroups[0] * num_workgroups[1] + 52 workgroup_id.y * num_workgroups[0] + workgroup_id.x; 53 let global_idx = workgroup_index * ${i*n*g}u + local_idx;`;return`@compute @workgroup_size(${i}, ${n}, ${g}) 54 fn main(${h}) { 55 ${C} 56 `}appendVariableUniforms(a){a.rank!==0&&(a.shape.startsWith("uniforms.")&&this.uniforms.push({name:a.shape.replace("uniforms.",""),type:"u32",length:a.rank}),a.strides.startsWith("uniforms.")&&this.uniforms.push({name:a.strides.replace("uniforms.",""),type:"u32",length:a.rank}))}declareVariable(a,i){if(a.usage==="internal")throw new Error("cannot use internal variable with declareVariable(). use registerInternalVariables() instead.");this.variables.push(a),this.appendVariableUniforms(a);let n=a.usage==="input"?"read":"read_write",g=a.usage==="atomicOutput"?"atomic<i32>":a.type.storage;return`@group(0) @binding(${i}) var<storage, ${n}> ${a.name}: array<${g}>;`}declareVariables(...a){return a.map(i=>this.declareVariable(i,this.variableIndex++)).join(` 57`)}registerInternalVariable(a){if(a.usage!=="internal")throw new Error("cannot use input or output variable with registerInternalVariable(). use declareVariables() instead.");this.internalVariables.push(a),this.appendVariableUniforms(a)}registerInternalVariables(...a){return a.forEach(i=>this.registerInternalVariable(i)),this}registerUniform(a,i,n=1){return this.uniforms.push({name:a,type:i,length:n}),this}registerUniforms(a){return this.uniforms=this.uniforms.concat(a),this}uniformDeclaration(){if(this.uniforms.length===0)return"";let a=[];for(let{name:i,type:n,length:g}of this.uniforms)if(g&&g>4)n==="f16"?a.push(`@align(16) ${i}:array<mat2x4<${n}>, ${Math.ceil(g/8)}>`):a.push(`${i}:array<vec4<${n}>, ${Math.ceil(g/4)}>`);else{let p=g==null||g===1?n:`vec${g}<${n}>`;a.push(`${i}:${p}`)}return` 58 struct Uniforms { ${a.join(", ")} }; 59 @group(0) @binding(${this.variableIndex}) var<uniform> uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map(a=>a.impl()).join(` 60`)+this.internalVariables.map(a=>a.impl()).join(` 61`)}get variablesInfo(){if(this.uniforms.length===0)return;let a=i=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(i)];return this.uniforms.map(i=>[a(i.type),i.length??1])}},Yh=(a,i)=>new Wg(a,i)}),Vg,g2,Yg,Hg,Ug,Kg,ma,Hh,Uh,ri=kA(()=>{ct(),It(),Ur(),kt(),Vg=(a,i)=>{if(!a||a.length!==1)throw new Error("Transpose requires 1 input.");if(i.length!==0&&i.length!==a[0].dims.length)throw new Error(`perm size ${i.length} does not match input rank ${a[0].dims.length}`)},g2=(a,i)=>i.length!==0?i:[...new Array(a).keys()].reverse(),Yg=(a,i)=>Je.sortBasedOnPerm(a,g2(a.length,i)),Hg=(a,i,n,g)=>{let p=`fn perm(i: ${g.type.indices}) -> ${n.type.indices} { 62 var a: ${n.type.indices};`;for(let h=0;h<i;++h)p+=`a[${a[h]}]=i[${h}];`;return p+="return a;}"},Ug=(a,i)=>{let n=[],g=[];for(let p=0;p<a.length;++p)a[p]!==1&&n.push(a[p]),a[i[p]]!==1&&g.push(i[p]);return{newShape:n,newPerm:g}},Kg=(a,i)=>{let n=0;for(let g=0;g<a.length;++g)if(i[a[g]]!==1){if(a[g]<n)return!1;n=a[g]}return!0},ma=(a,i)=>{let n=a.dataType,g=a.dims.length,p=g2(g,i),h=Yg(a.dims,p),C=a.dims,k=h,M=g<2||Kg(p,a.dims),E;if(M)return E=F=>{let R=oA("input",n,C,4),X=XA("output",n,k,4);return` 63 ${F.registerUniform("output_size","u32").declareVariables(R,X)} 64 ${F.mainStart()} 65 ${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 66 output[global_idx] = input[global_idx]; 67 }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let F=Je.size(h);return{outputs:[{dims:h,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(F/64/4)},programUniforms:[{type:12,data:Math.ceil(F/4)}]}},getShaderSource:E};let{newShape:D,newPerm:B}=Ug(a.dims,p),v=Je.areEqual(B,[2,3,1]),S=Je.areEqual(B,[3,1,2]);if(D.length===2||v||S){C=v?[D[0],D[1]*D[2]]:S?[D[0]*D[1],D[2]]:D,k=[C[1],C[0]];let F=16;return E=R=>{let X=oA("a",n,C.length),z=XA("output",n,k.length);return` 68 ${R.registerUniform("output_size","u32").declareVariables(X,z)} 69 var<workgroup> tile : array<array<${z.type.value}, ${F+1}>, ${F}>; 70 ${R.mainStart([F,F,1])} 71 let stride = (uniforms.output_shape[1] - 1) / ${F} + 1; 72 let workgroup_id_x = workgroup_index % stride; 73 let workgroup_id_y = workgroup_index / stride; 74 let input_col = workgroup_id_y * ${F}u + local_id.x; 75 let input_row = workgroup_id_x * ${F}u + local_id.y; 76 if (input_row < uniforms.a_shape[0] && input_col < uniforms.a_shape[1]) { 77 tile[local_id.y][local_id.x] = ${X.getByIndices(`${X.type.indices}(input_row, input_col)`)}; 78 } 79 workgroupBarrier(); 80 81 let output_col = workgroup_id_x * ${F}u + local_id.x; 82 let output_row = workgroup_id_y * ${F}u + local_id.y; 83 if (output_row < uniforms.output_shape[0] && output_col < uniforms.output_shape[1]) { 84 ${z.setByIndices(`${z.type.indices}(output_row, output_col)`,"tile[local_id.x][local_id.y]")} 85 } 86 }`},{name:"TransposeShared",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let R=Je.size(h);return{outputs:[{dims:h,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(k[1]/F),y:Math.ceil(k[0]/F)},programUniforms:[{type:12,data:R},...tt(C,k)]}},getShaderSource:E}}return E=F=>{let R=oA("a",n,C.length),X=XA("output",n,k.length);return` 87 ${F.registerUniform("output_size","u32").declareVariables(R,X)} 88 89 ${Hg(p,g,R,X)} 90 91 ${F.mainStart()} 92 ${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 93 94 let indices = ${X.offsetToIndices("global_idx")}; 95 let aIndices = perm(indices); 96 97 ${X.setByOffset("global_idx",R.getByIndices("aIndices"))} 98 }`},{name:"Transpose",shaderCache:{hint:`${i}`,inputDependencies:["rank"]},getRunData:()=>{let F=Je.size(h);return{outputs:[{dims:h,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(F/64)},programUniforms:[{type:12,data:F},...tt(C,k)]}},getShaderSource:E}},Hh=(a,i)=>{Vg(a.inputs,i.perm),a.compute(ma(a.inputs[0],i.perm))},Uh=a=>$t({perm:a.perm})}),Xg,Zg,Jg,qg,$g,e4,A4,t4,r4,s4,Qa,Kh,Xh,Zh,Jh,qh,$h,e3,A3,t3,r3,m6=kA(()=>{ct(),It(),kt(),Qc(),ri(),Xg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate * candidate",logSumExp:"bestValue + exp(candidate)",l1:"bestValue + abs(candidate)",l2:"bestValue + candidate * candidate",logSum:"bestValue + candidate"},Zg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate",logSumExp:"bestValue + candidate",l1:"bestValue + candidate",l2:"bestValue + candidate",logSum:"bestValue + candidate"},Jg={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},qg={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},$g=(a,i)=>{let n=[];for(let g=i-a;g<i;++g)n.push(g);return n},e4=(a,i)=>{let n=[],g=a.length;for(let h=0;h<g;h++)i.indexOf(h)===-1&&n.push(a[h]);let p=i.map(h=>a[h]);return[n,p]},A4=(a,i)=>{let n=a.length+i.length,g=[],p=0;for(let h=0;h<n;h++)i.indexOf(h)===-1?g.push(a[p++]):g.push(1);return g},t4=(a,i)=>{for(let n=0;n<a.length;++n)if(a[a.length-n-1]!==i-1-n)return!1;return!0},r4=(a,i)=>{let n=[];if(!t4(a,i)){for(let g=0;g<i;++g)a.indexOf(g)===-1&&n.push(g);a.forEach(g=>n.push(g))}return n},s4=(a,i,n,g,p,h,C)=>{let k=n[0].dims,M=Je.size(h),E=Je.size(C),D=oA("_A",n[0].dataType,k),B=XA("output",p,h),v=64;M===1&&(v=256);let S=` 99 var<workgroup> aBestValues : array<f32, ${v}>; 100 `,F=R=>` 101 ${R.registerUniform("reduceSize","u32").declareVariables(D,B)} 102 ${S} 103 fn DIV_CEIL(a : u32, b : u32) -> u32 { 104 return ((a - 1u) / b + 1u); 105 } 106 ${R.mainStart(v)} 107 108 let outputIndex = global_idx / ${v}; 109 let offset = outputIndex * uniforms.reduceSize; 110 111 var bestValue = f32(${Jg[g]}); 112 let Length = uniforms.reduceSize; 113 for (var k = local_idx; k < Length; k = k + ${v}) { 114 let candidate = f32(${D.getByOffset("offset + k")}); 115 bestValue = ${Xg[g]}; 116 } 117 aBestValues[local_idx] = bestValue; 118 workgroupBarrier(); 119 120 var reduceSize = min(Length, ${v}u); 121 for (var currentSize = reduceSize / 2u; reduceSize > 1u; 122 currentSize = reduceSize / 2u) { 123 let interval = DIV_CEIL(reduceSize, 2u); 124 if (local_idx < currentSize) { 125 let candidate = aBestValues[local_idx + interval]; 126 bestValue = ${Zg[g]}; 127 aBestValues[local_idx] = bestValue; 128 } 129 reduceSize = interval; 130 workgroupBarrier(); 131 } 132 133 if (local_idx == 0u) { 134 ${B.setByOffset("outputIndex",`${g==="mean"?`${B.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${B.type.storage}(${qg[g]})`}`)}; 135 } 136 }`;return{name:a,shaderCache:{hint:`${i};${v}`,inputDependencies:["type"]},getShaderSource:F,getRunData:()=>({outputs:[{dims:h,dataType:p}],dispatchGroup:{x:M},programUniforms:[{type:12,data:E}]})}},Qa=(a,i,n,g)=>{let p=a.inputs.length===1?n:ic(a.inputs,n),h=p.axes;h.length===0&&!p.noopWithEmptyAxes&&(h=a.inputs[0].dims.map((S,F)=>F));let C=Je.normalizeAxes(h,a.inputs[0].dims.length),k=C,M=a.inputs[0],E=r4(k,a.inputs[0].dims.length);E.length>0&&(M=a.compute(ma(a.inputs[0],E),{inputs:[0],outputs:[-1]})[0],k=$g(k.length,M.dims.length));let[D,B]=e4(M.dims,k),v=D;p.keepDims&&(v=A4(D,C)),a.compute(s4(i,p.cacheKey,[M],g,a.inputs[0].dataType,v,B),{inputs:[M]})},Kh=(a,i)=>{Qa(a,"ReduceMeanShared",i,"mean")},Xh=(a,i)=>{Qa(a,"ReduceL1Shared",i,"l1")},Zh=(a,i)=>{Qa(a,"ReduceL2Shared",i,"l2")},Jh=(a,i)=>{Qa(a,"ReduceLogSumExpShared",i,"logSumExp")},qh=(a,i)=>{Qa(a,"ReduceMaxShared",i,"max")},$h=(a,i)=>{Qa(a,"ReduceMinShared",i,"min")},e3=(a,i)=>{Qa(a,"ReduceProdShared",i,"prod")},A3=(a,i)=>{Qa(a,"ReduceSumShared",i,"sum")},t3=(a,i)=>{Qa(a,"ReduceSumSquareShared",i,"sumSquare")},r3=(a,i)=>{Qa(a,"ReduceLogSumShared",i,"logSum")}}),Fa,a4,V0,ic,Sa,n4,i4,o4,l4,c4,u4,d4,f4,g4,p4,Oa,s3,a3,n3,i3,o3,l3,c3,u3,d3,f3,Qc=kA(()=>{ct(),It(),Ur(),kt(),m6(),Fa=a=>{if(!a||a.length===0||a.length>2)throw new Error("Reduce op requires 1 or 2 inputs.");if(a.length===2&&a[1].dims.length!==1)throw new Error("Invalid axes input dims.")},a4=a=>["","",`var value = ${a.getByIndices("input_indices")};`,""],V0=(a,i,n,g,p,h,C=!1,k=!1)=>{let M=[],E=n[0].dims,D=E.length,B=Je.normalizeAxes(p,D),v=!k&&B.length===0;E.forEach((R,X)=>{v||B.indexOf(X)>=0?C&&M.push(1):M.push(R)});let S=M.length,F=Je.size(M);return{name:a,shaderCache:i,getShaderSource:R=>{let X=[],z=oA("_A",n[0].dataType,D),L=XA("output",h,S),K=g(z,L,B),d=K[2];for(let w=0,e=0;w<D;w++)v||B.indexOf(w)>=0?(C&&e++,d=`for(var j${w}: u32 = 0; j${w} < ${E[w]}; j${w}++) { 137 ${K[2].includes("last_index")?`let last_index = j${w};`:""} 138 ${z.indicesSet("input_indices",w,`j${w}`)} 139 ${d} 140 }`):(X.push(`${z.indicesSet("input_indices",w,L.indicesGet("output_indices",e))};`),e++);return` 141 142 ${R.registerUniform("output_size","u32").declareVariables(z,L)} 143 144 ${R.mainStart()} 145 ${R.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 146 var input_indices: ${z.type.indices}; 147 let output_indices = ${L.offsetToIndices("global_idx")}; 148 149 ${X.join(` 150`)} 151 ${K[0]} // init ops for reduce max/min 152 ${K[1]} 153 ${d} 154 ${K[3]} 155 ${K.length===4?L.setByOffset("global_idx","value"):K.slice(4).join(` 156`)} 157 }`},getRunData:()=>({outputs:[{dims:M,dataType:h}],dispatchGroup:{x:Math.ceil(F/64)},programUniforms:[{type:12,data:F},...tt(E,M)]})}},ic=(a,i)=>{let n=[];return a[1].dims[0]>0&&a[1].getBigInt64Array().forEach(g=>n.push(Number(g))),$t({axes:n,keepDims:i.keepDims,noopWithEmptyAxes:i.noopWithEmptyAxes})},Sa=(a,i,n,g)=>{let p=a.inputs,h=p.length===1?n:ic(p,n);a.compute(V0(i,{hint:h.cacheKey,inputDependencies:["rank"]},[p[0]],h.noopWithEmptyAxes&&h.axes.length===0?a4:g,h.axes,p[0].dataType,h.keepDims,h.noopWithEmptyAxes),{inputs:[0]})},n4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceLogSum",i,(n,g)=>[`var value = ${g.type.storage}(0);`,"",`value += ${n.getByIndices("input_indices")};`,"value = log(value);"])},i4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceL1",i,(n,g)=>[`var value = ${g.type.storage}(0);`,"",`value += abs(${n.getByIndices("input_indices")});`,""])},o4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceL2",i,(n,g)=>[`var t = ${g.type.value}(0); var value = ${g.type.value}(0);`,"",`t = ${n.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"])},l4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceLogSumExp",i,(n,g)=>[`var value = ${g.type.storage}(0);`,"",`value += exp(${n.getByIndices("input_indices")});`,"value = log(value);"])},c4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceMax",i,(n,g,p)=>{let h=[];for(let C=0;C<n.rank;C++)(p.indexOf(C)>=0||p.length===0)&&h.push(n.indicesSet("input_indices",C,0));return[`${h.join(` 158`)}`,`var value = ${n.getByIndices("input_indices")};`,`value = max(value, ${n.getByIndices("input_indices")});`,""]})},u4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceMean",i,(n,g,p)=>{let h=1;for(let C=0;C<n.rank;C++)(p.indexOf(C)>=0||p.length===0)&&(h*=a.inputs[0].dims[C]);return["var sum = f32(0);","",`sum += f32(${n.getByIndices("input_indices")});`,`let value = ${g.type.value}(sum / ${h});`]})},d4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceMin",i,(n,g,p)=>{let h=[];for(let C=0;C<n.rank;C++)(p.indexOf(C)>=0||p.length===0)&&h.push(`input_indices[${C}] = 0;`);return[`${h.join(` 159`)}`,`var value = ${n.getByIndices("input_indices")};`,`value = min(value, ${n.getByIndices("input_indices")});`,""]})},f4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceProd",i,(n,g)=>[`var value = ${g.type.storage}(1);`,"",`value *= ${n.getByIndices("input_indices")};`,""])},g4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceSum",i,(n,g)=>[`var value = ${g.type.storage}(0);`,"",`value += ${n.getByIndices("input_indices")};`,""])},p4=(a,i)=>{Fa(a.inputs),Sa(a,"ReduceSumSquare",i,(n,g)=>[`var t = ${g.type.value}(0); var value = ${g.type.value}(0);`,"",`t = ${n.getByIndices("input_indices")}; value += t * t;`,""])},Oa=(a,i,n)=>{if(i.length===0)return n;let g=1,p=1;for(let h=0;h<i.length;h++)i.indexOf(h)===-1?g*=a[h]:p*=a[h];return p<32&&g>1024},s3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?u4(a,i):Kh(a,i)},a3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?i4(a,i):Xh(a,i)},n3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?o4(a,i):Zh(a,i)},i3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?l4(a,i):Jh(a,i)},o3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?c4(a,i):qh(a,i)},l3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?d4(a,i):$h(a,i)},c3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?f4(a,i):e3(a,i)},u3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?g4(a,i):A3(a,i)},d3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?p4(a,i):t3(a,i)},f3=(a,i)=>{Oa(a.inputs[0].dims,i.axes,i.noopWithEmptyAxes)?n4(a,i):r3(a,i)}}),p2,g3,p3,oc,h6=kA(()=>{ct(),Ur(),Qc(),p2=a=>{if(!a||a.length===0||a.length>2)throw new Error("ArgMinMaxOp op requires 1 or 2 inputs.");if(a[0].dataType!==1)throw new Error("Invalid input type.")},g3=(a,i)=>{p2(a.inputs);let n=(g,p,h)=>{let C=[];for(let k=0;k<g.rank;k++)(h.indexOf(k)>=0||h.length===0)&&C.push(`input_indices[${k}] = 0;`);return[`${C.join(` 160`)}`,`var value = ${g.getByIndices("input_indices")}; 161var best_index : i32 = 0;`,`if (${g.getByIndices("input_indices")} ${i.selectLastIndex>0?"<=":"<"} value) { 162 value = ${g.getByIndices("input_indices")}; 163 best_index = i32(last_index); 164 }`,"",p.setByOffset("global_idx","best_index")]};a.compute(V0("ArgMin",{hint:i.cacheKey,inputDependencies:["rank"]},[a.inputs[0]],n,[i.axis],7,i.keepDims),{inputs:[0]})},p3=(a,i)=>{p2(a.inputs);let n=(g,p,h)=>{let C=[];for(let k=0;k<g.rank;k++)(h.indexOf(k)>=0||h.length===0)&&C.push(`input_indices[${k}] = 0;`);return[`${C.join(` 165`)}`,`var value = ${g.getByIndices("input_indices")}; 166var best_index : i32 = 0;`,`if (${g.getByIndices("input_indices")} ${i.selectLastIndex>0?">=":">"} value) { 167 value = ${g.getByIndices("input_indices")}; 168 best_index = i32(last_index); 169 }`,"",p.setByOffset("global_idx","best_index")]};a.compute(V0("argMax",{hint:i.cacheKey,inputDependencies:["rank"]},[a.inputs[0]],n,[i.axis],7,i.keepDims),{inputs:[0]})},oc=a=>$t(a)}),m4,D0,h4,C4,b4,qo,I4,m3,Fc=kA(()=>{ct(),It(),Pc(),kt(),m4=(a,i)=>{let n=a[0],g=a[1],p=a[2],h=a[3],C=a[4],k=a[5];if(C&&k)throw new Error("Attention cannot have both past and attention_bias");if(n.dims.length!==3)throw new Error('Input "input" must have 3 dimensions');let M=n.dims[0],E=n.dims[1],D=n.dims[2];if(p.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimensions');if(g.dims.length!==2)throw new Error('Input "weights" is expected to have 2 dimensions');if(g.dims[0]!==D)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(p.dims[0]!==g.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let B=p.dims[0]/3,v=B,S=v;if(i.qkvHiddenSizes.length>0){if(i.qkvHiddenSizes.length!==3)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let K of i.qkvHiddenSizes)if(K%i.numHeads!==0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");B=i.qkvHiddenSizes[0],v=i.qkvHiddenSizes[1],S=i.qkvHiddenSizes[2]}let F=E;if(B!==v)throw new Error("qkv_hidden_sizes first element should be same as the second");if(p.dims[0]!==B+v+S)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let R=0;if(C){if(v!==S)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(C.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(C.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(C.dims[1]!==M)throw new Error('Input "past" second dimension must be batch_size');if(C.dims[2]!==i.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(C.dims[4]!==v/i.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');i.pastPresentShareBuffer||(R=C.dims[3])}let X=F+R,z=-1,L=0;if(h)throw new Error("Mask not supported");if(C)throw new Error("past is not supported");if(k){if(k.dims.length!==4)throw new Error('Input "attention_bias" must have 4 dimensions');if(k.dims[0]!==M||k.dims[1]!==i.numHeads||k.dims[2]!==E||k.dims[3]!==X)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:M,sequenceLength:E,pastSequenceLength:R,kvSequenceLength:F,totalSequenceLength:X,maxSequenceLength:z,inputHiddenSize:D,hiddenSize:B,vHiddenSize:S,headSize:Math.floor(B/i.numHeads),vHeadSize:Math.floor(S/i.numHeads),numHeads:i.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:i.maskFilterValue,maskType:L,scale:i.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},D0=(a,i,n)=>i&&a?` 170 let total_sequence_length_input = u32(${i.getByOffset("0")}); 171 let present_sequence_length = max(total_sequence_length_input, uniforms.past_sequence_length); 172 let is_subsequent_prompt: bool = sequence_length > 1 && sequence_length != total_sequence_length_input; 173 let is_first_prompt: bool = is_subsequent_prompt == false && sequence_length == total_sequence_length_input; 174 total_sequence_length = u32(${a==null?void 0:a.getByOffset("batchIdx")}) + 1; 175 var past_sequence_length: u32 = 0; 176 if (is_first_prompt == false) { 177 past_sequence_length = total_sequence_length - sequence_length; 178 } 179 `:` 180 ${n?"let past_sequence_length = uniforms.past_sequence_length":""}; 181 let present_sequence_length = total_sequence_length; 182 `,h4=(a,i,n,g,p,h,C,k)=>{let M=Wr(C?1:h),E=64,D=h/M;D<E&&(E=32);let B=Math.ceil(h/M/E),v=[{type:12,data:i},{type:12,data:n},{type:12,data:g},{type:12,data:p},{type:12,data:D},{type:12,data:B}],S=Cs(a.dataType,M),F=Qs(1,M),R=["type"];C&&R.push("type"),k&&R.push("type");let X=z=>{let L=XA("x",a.dataType,a.dims,M),K=[L],d=C?oA("seq_lens",C.dataType,C.dims):void 0;d&&K.push(d);let w=k?oA("total_sequence_length_input",k.dataType,k.dims):void 0;w&&K.push(w);let e=Qs(a.dataType),u=[{name:"batch_size",type:"u32"},{name:"num_heads",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"sequence_length",type:"u32"},{name:"total_sequence_length",type:"u32"},{name:"elements_per_thread",type:"u32"}];return` 183 var<workgroup> thread_max: array<f32, ${E}>; 184 var<workgroup> thread_sum: array<f32, ${E}>; 185 ${z.registerUniforms(u).declareVariables(...K)} 186 ${z.mainStart([E,1,1])} 187 let batchIdx = workgroup_id.z / uniforms.num_heads; 188 let headIdx = workgroup_id.z % uniforms.num_heads; 189 let sequence_length = uniforms.sequence_length; 190 var total_sequence_length = uniforms.total_sequence_length; 191 ${D0(d,w,!1)} 192 let local_offset = local_idx * uniforms.elements_per_thread; 193 let offset = (global_idx / ${E}) * uniforms.total_sequence_length + local_offset; 194 let seq_causal_length = ${C?"u32(past_sequence_length + workgroup_id.y + 1)":"total_sequence_length"}; 195 var thread_max_vector = ${F}(-3.402823e+38f); 196 for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { 197 thread_max_vector = max(${F}(x[offset + i]), thread_max_vector); 198 } 199 thread_max[local_idx] = ${(()=>{switch(M){case 1:return"thread_max_vector";case 2:return"max(thread_max_vector.x, thread_max_vector.y)";case 4:return"max(max(thread_max_vector.x, thread_max_vector.y), max(thread_max_vector.z, thread_max_vector.w))";default:throw new Error(`Unsupported components: ${M}`)}})()}; 200 workgroupBarrier(); 201 202 var max_value = f32(-3.402823e+38f); 203 for (var i = 0u; i < ${E}; i++) { 204 max_value = max(thread_max[i], max_value); 205 } 206 207 var sum_vector = ${F}(0); 208 for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { 209 sum_vector += exp(${F}(x[offset + i]) - max_value); 210 } 211 thread_sum[local_idx] = ${(()=>{switch(M){case 1:return"sum_vector";case 2:return"sum_vector.x + sum_vector.y";case 4:return"sum_vector.x + sum_vector.y + sum_vector.z + sum_vector.w";default:throw new Error(`Unsupported components: ${M}`)}})()}; 212 workgroupBarrier(); 213 214 var sum: f32 = 0; 215 for (var i = 0u; i < ${E}; i++) { 216 sum += thread_sum[i]; 217 } 218 219 if (sum == 0) { 220 for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { 221 x[offset + i] = ${L.type.value}(${e}(1.0) / ${e}(seq_causal_length)); 222 } 223 } else { 224 for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { 225 var f32input = ${F}(x[offset + i]); 226 x[offset + i] = ${L.type.value}(exp(f32input - max_value) / sum); 227 } 228 } 229 ${C?` 230 for (var total_seq_id: u32 = seq_causal_length; total_seq_id + local_offset < uniforms.total_sequence_length; total_seq_id++) { 231 x[offset + total_seq_id] = ${L.type.value}(${e}(0)); 232 }`:""}; 233 }`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${E};${S};${M}`,inputDependencies:R},getShaderSource:X,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:p,z:i*n},programUniforms:v})}},C4=(a,i,n,g,p,h,C,k,M)=>{let E=C+h.kvSequenceLength,D=[h.batchSize,h.numHeads,h.sequenceLength,E],B=a>1&&g,v=h.kvNumHeads?h.kvNumHeads:h.numHeads,S=B?[h.batchSize,v,E,h.headSize]:void 0,F=h.nReps?h.nReps:1,R=h.scale===0?1/Math.sqrt(h.headSize):h.scale,X=Wr(h.headSize),z=h.headSize/X,L=12,K={x:Math.ceil(E/L),y:Math.ceil(h.sequenceLength/L),z:h.batchSize*h.numHeads},d=[{type:12,data:h.sequenceLength},{type:12,data:z},{type:12,data:E},{type:12,data:h.numHeads},{type:12,data:h.headSize},{type:1,data:R},{type:12,data:C},{type:12,data:h.kvSequenceLength},{type:12,data:F}],w=B&&g&&Je.size(g.dims)>0,e=["type","type"];w&&e.push("type"),p&&e.push("type"),k&&e.push("type"),M&&e.push("type");let u=[{dims:D,dataType:i.dataType,gpuDataType:0}];B&&u.push({dims:S,dataType:i.dataType,gpuDataType:0});let y=ee=>{let T=oA("q",i.dataType,i.dims,X),O=oA("key",n.dataType,n.dims,X),ge=[T,O];if(w){let je=oA("past_key",g.dataType,g.dims,X);ge.push(je)}p&&ge.push(oA("attention_bias",p.dataType,p.dims));let se=k?oA("seq_lens",k.dataType,k.dims):void 0;se&&ge.push(se);let we=M?oA("total_sequence_length_input",M.dataType,M.dims):void 0;we&&ge.push(we);let be=XA("output",i.dataType,D),Be=[be];B&&Be.push(XA("present_key",i.dataType,S,X));let ve=Qs(1,X),De=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"alpha",type:"f32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return` 234 const TILE_SIZE = ${L}u; 235 236 var<workgroup> tileQ: array<${T.type.storage}, ${L*L}>; 237 var<workgroup> tileK: array<${T.type.storage}, ${L*L}>; 238 ${ee.registerUniforms(De).declareVariables(...ge,...Be)} 239 ${ee.mainStart([L,L,1])} 240 // x holds the N and y holds the M 241 let headIdx = workgroup_id.z % uniforms.num_heads; 242 let kvHeadIdx = ${F===1?"headIdx":"headIdx / uniforms.n_reps"}; 243 let kv_num_heads = ${F===1?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"}; 244 let batchIdx = workgroup_id.z / uniforms.num_heads; 245 let m = workgroup_id.y * TILE_SIZE; 246 let n = workgroup_id.x * TILE_SIZE; 247 let sequence_length = uniforms.M; 248 var total_sequence_length = uniforms.N; 249 ${D0(se,we,!0)} 250 let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; 251 let qOffset = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K; 252 ${w&&B?"let pastKeyOffset = absKvHeadIdx * uniforms.past_sequence_length * uniforms.K;":""}; 253 let kOffset = absKvHeadIdx * uniforms.kv_sequence_length * uniforms.K; 254 ${B?"let presentKeyOffset = absKvHeadIdx * uniforms.N * uniforms.K;":""} 255 var value = ${ve}(0); 256 for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { 257 if (global_id.y < uniforms.M && w + local_id.x < uniforms.K) { 258 tileQ[TILE_SIZE * local_id.y + local_id.x] = q[qOffset + local_id.y * uniforms.K + w + local_id.x]; 259 } 260 if (n + local_id.y < uniforms.N && w + local_id.x < uniforms.K) { 261 var idx = TILE_SIZE * local_id.y + local_id.x; 262 ${w&&B?` 263 if (n + local_id.y < past_sequence_length) { 264 tileK[idx] = past_key[pastKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x]; 265 } else if (n + local_id.y - past_sequence_length < uniforms.kv_sequence_length) { 266 tileK[idx] = key[kOffset + (n + local_id.y - past_sequence_length) * uniforms.K + w + local_id.x]; 267 }`:` 268 if (n + local_id.y < uniforms.kv_sequence_length) { 269 tileK[idx] = key[kOffset + (n + local_id.y) * uniforms.K + w + local_id.x]; 270 }`} 271 ${B?`if (n + local_id.y < present_sequence_length) { 272 present_key[presentKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x] = tileK[idx]; 273 }`:""} 274 } 275 workgroupBarrier(); 276 277 for (var k: u32 = 0u; k < TILE_SIZE && w+k < uniforms.K; k++) { 278 value += ${ve}(tileQ[TILE_SIZE * local_id.y + k] * tileK[TILE_SIZE * local_id.x + k]); 279 } 280 281 workgroupBarrier(); 282 } 283 284 if (global_id.y < uniforms.M && global_id.x < total_sequence_length) { 285 let headOffset = workgroup_id.z * uniforms.M * uniforms.N; 286 let outputIdx = headOffset + global_id.y * uniforms.N + global_id.x; 287 var sum: f32 = ${(()=>{switch(X){case 1:return"value";case 2:return"value.x + value.y";case 4:return"value.x + value.y + value.z + value.w";default:throw new Error(`Unsupported components: ${X}`)}})()}; 288 output[outputIdx] = ${be.type.value} (sum * uniforms.alpha) + ${p?"attention_bias[outputIdx]":"0.0"}; 289 } 290 }`};return{name:"AttentionProbs",shaderCache:{hint:`${X};${p!==void 0};${g!==void 0};${a}`,inputDependencies:e},getRunData:()=>({outputs:u,dispatchGroup:K,programUniforms:d}),getShaderSource:y}},b4=(a,i,n,g,p,h,C=void 0,k=void 0)=>{let M=h+p.kvSequenceLength,E=p.nReps?p.nReps:1,D=p.vHiddenSize*E,B=a>1&&g,v=p.kvNumHeads?p.kvNumHeads:p.numHeads,S=B?[p.batchSize,v,M,p.headSize]:void 0,F=[p.batchSize,p.sequenceLength,D],R=12,X={x:Math.ceil(p.vHeadSize/R),y:Math.ceil(p.sequenceLength/R),z:p.batchSize*p.numHeads},z=[{type:12,data:p.sequenceLength},{type:12,data:M},{type:12,data:p.vHeadSize},{type:12,data:p.numHeads},{type:12,data:p.headSize},{type:12,data:D},{type:12,data:h},{type:12,data:p.kvSequenceLength},{type:12,data:E}],L=B&&g&&Je.size(g.dims)>0,K=["type","type"];L&&K.push("type"),C&&K.push("type"),k&&K.push("type");let d=[{dims:F,dataType:i.dataType,gpuDataType:0}];B&&d.push({dims:S,dataType:i.dataType,gpuDataType:0});let w=e=>{let u=oA("probs",i.dataType,i.dims),y=oA("v",n.dataType,n.dims),ee=[u,y];L&&ee.push(oA("past_value",g.dataType,g.dims));let T=C?oA("seq_lens",C.dataType,C.dims):void 0;C&&ee.push(T);let O=k?oA("total_sequence_length_input",k.dataType,k.dims):void 0;k&&ee.push(O);let ge=[XA("output",i.dataType,F)];B&&ge.push(XA("present_value",i.dataType,S));let se=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"v_hidden_size",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return` 291 const TILE_SIZE = ${R}u; 292 var<workgroup> tileQ: array<${u.type.value}, ${R*R}>; 293 var<workgroup> tileV: array<${u.type.value}, ${R*R}>; 294 ${e.registerUniforms(se).declareVariables(...ee,...ge)} 295 ${e.mainStart([R,R,1])} 296 let headIdx = workgroup_id.z % uniforms.num_heads; 297 let batchIdx = workgroup_id.z / uniforms.num_heads; 298 let kvHeadIdx = ${E===1?"headIdx":"headIdx / uniforms.n_reps"}; 299 let kv_num_heads = ${E===1?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"}; 300 let m = global_id.y; 301 let n = global_id.x; 302 let sequence_length = uniforms.M; 303 var total_sequence_length = uniforms.K; 304 ${D0(T,O,!0)} 305 let offsetA = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K; 306 let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; // kvHeadIdx is relative to the batch 307 ${L&&B?"let pastValueOffset = absKvHeadIdx * uniforms.N * uniforms.past_sequence_length + n;":""}; 308 let vOffset = absKvHeadIdx * uniforms.N * uniforms.kv_sequence_length + n; 309 ${B?"let presentValueOffset = absKvHeadIdx * uniforms.N * uniforms.K + n;":""} 310 var value = ${u.type.storage}(0); 311 for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { 312 if (m < uniforms.M && w + local_id.x < uniforms.K) { 313 tileQ[TILE_SIZE * local_id.y + local_id.x] = probs[offsetA + w + local_id.x]; 314 } 315 if (n < uniforms.N && w + local_id.y < uniforms.K) { 316 var idx = TILE_SIZE * local_id.y + local_id.x; 317 ${L&&B?` 318 if (w + local_id.y < past_sequence_length) { 319 tileV[idx] = past_value[pastValueOffset + (w + local_id.y) * uniforms.N]; 320 } else if (w + local_id.y - past_sequence_length < uniforms.kv_sequence_length) { 321 tileV[idx] = v[vOffset + (w + local_id.y - past_sequence_length) * uniforms.N]; 322 } 323 `:` 324 if (w + local_id.y < uniforms.kv_sequence_length) { 325 tileV[idx] = v[vOffset + (w + local_id.y) * uniforms.N]; 326 }`} 327 ${B?` 328 if (w + local_id.y < present_sequence_length) { 329 present_value[presentValueOffset + (w + local_id.y) * uniforms.N] = tileV[idx]; 330 }`:""} 331 } 332 workgroupBarrier(); 333 for (var k: u32 = 0u; k < TILE_SIZE && w+k < total_sequence_length; k++) { 334 value += tileQ[TILE_SIZE * local_id.y + k] * tileV[TILE_SIZE * k + local_id.x]; 335 } 336 workgroupBarrier(); 337 } 338 339 // we need to transpose output from BNSH_v to BSND_v 340 if (m < uniforms.M && n < uniforms.N) { 341 let outputIdx = batchIdx * uniforms.M * uniforms.v_hidden_size + m * uniforms.v_hidden_size 342 + headIdx * uniforms.N + n; 343 output[outputIdx] = value; 344 } 345 }`};return{name:"AttentionScore",shaderCache:{hint:`${g!==void 0};${a}`,inputDependencies:K},getRunData:()=>({outputs:d,dispatchGroup:X,programUniforms:z}),getShaderSource:w}},qo=(a,i,n,g,p,h,C,k,M,E,D=void 0,B=void 0)=>{let v=Math.min(a.outputCount,1+(C?1:0)+(k?1:0)),S=v>1?E.pastSequenceLength:0,F=S+E.kvSequenceLength,R=M&&Je.size(M.dims)>0?M:void 0,X=[i,n];v>1&&C&&Je.size(C.dims)>0&&X.push(C),R&&X.push(R),D&&X.push(D),B&&X.push(B);let z=a.compute(C4(v,i,n,C,R,E,S,D,B),{inputs:X,outputs:v>1?[-1,1]:[-1]})[0];a.compute(h4(z,E.batchSize,E.numHeads,S,E.sequenceLength,F,D,B),{inputs:D&&B?[z,D,B]:[z],outputs:[]});let L=[z,g];v>1&&k&&Je.size(k.dims)>0&&L.push(k),D&&L.push(D),B&&L.push(B),a.compute(b4(v,z,g,k,E,S,D,B),{inputs:L,outputs:v>1?[0,2]:[0]})},I4=(a,i)=>{let n=[i.batchSize,i.numHeads,i.sequenceLength,i.headSize],g=i.sequenceLength,p=i.inputHiddenSize,h=i.headSize,C=12,k={x:Math.ceil(i.headSize/C),y:Math.ceil(i.sequenceLength/C),z:i.batchSize*i.numHeads},M=[a.inputs[0],a.inputs[1],a.inputs[2]],E=[{type:12,data:g},{type:12,data:p},{type:12,data:h},{type:12,data:i.numHeads},{type:12,data:i.headSize},{type:12,data:i.hiddenSize},{type:12,data:i.hiddenSize+i.hiddenSize+i.vHiddenSize}],D=B=>{let v=XA("output_q",M[0].dataType,n),S=XA("output_k",M[0].dataType,n),F=XA("output_v",M[0].dataType,n),R=oA("input",M[0].dataType,M[0].dims),X=oA("weight",M[1].dataType,M[1].dims),z=oA("bias",M[2].dataType,M[2].dims),L=R.type.storage,K=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"hidden_size",type:"u32"},{name:"ldb",type:"u32"}];return` 346 const TILE_SIZE = ${C}u; 347 var<workgroup> tileInput: array<${L}, ${C*C}>;
348 var<workgroup> tileWeightQ: array<${L}, ${C*C}>; 349 var<workgroup> tileWeightK: array<${L}, ${C*C}>; 350 var<workgroup> tileWeightV: array<${L}, ${C*C}>; 351 ${B.registerUniforms(K).declareVariables(R,X,z,v,S,F)} 352 ${B.mainStart([C,C,1])} 353 let batchIndex = workgroup_id.z / uniforms.num_heads; 354 let headNumber = workgroup_id.z % uniforms.num_heads; 355 let m = global_id.y; 356 let n = global_id.x; 357 358 let inputOffset = batchIndex * (uniforms.M * uniforms.K) + m * uniforms.K; 359 let biasOffsetQ = headNumber * uniforms.head_size; 360 let biasOffsetK = uniforms.hidden_size + biasOffsetQ; 361 let biasOffsetV = uniforms.hidden_size + biasOffsetK; 362 363 var valueQ = ${L}(0); 364 var valueK = ${L}(0); 365 var valueV = ${L}(0); 366 for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { 367 if (m < uniforms.M && w + local_id.x < uniforms.K) { 368 tileInput[TILE_SIZE * local_id.y + local_id.x] = input[inputOffset + w + local_id.x]; 369 } 370 if (n < uniforms.N && w + local_id.y < uniforms.K) { 371 let offset = n + (w + local_id.y) * uniforms.ldb; 372 tileWeightQ[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetQ + offset]; 373 tileWeightK[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetK + offset]; 374 tileWeightV[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetV + offset]; 375 } 376 workgroupBarrier(); 377 for (var k: u32 = 0u; k<TILE_SIZE && w+k < uniforms.K; k++) { 378 let inputTileOffset = TILE_SIZE * local_id.y + k; 379 let weightTileOffset = TILE_SIZE * k + local_id.x; 380 valueQ += tileInput[inputTileOffset] * tileWeightQ[weightTileOffset]; 381 valueK += tileInput[inputTileOffset] * tileWeightK[weightTileOffset]; 382 valueV += tileInput[inputTileOffset] * tileWeightV[weightTileOffset]; 383 } 384 385 workgroupBarrier(); 386 } 387 388 let headOffset = (m * uniforms.N + n) % uniforms.head_size; 389 valueQ += bias[headOffset + biasOffsetQ]; 390 valueK += bias[headOffset + biasOffsetK]; 391 valueV += bias[headOffset + biasOffsetV]; 392 393 let offset = workgroup_id.z * uniforms.M * uniforms.N; 394 if (m < uniforms.M && n < uniforms.N) { 395 let outputIdx = offset + m * uniforms.N + n; 396 output_q[outputIdx] = valueQ; 397 output_k[outputIdx] = valueK; 398 output_v[outputIdx] = valueV; 399 } 400 }`};return a.compute({name:"AttentionPrepare",shaderCache:{inputDependencies:["type","type","type"]},getRunData:()=>({outputs:[{dims:n,dataType:a.inputs[0].dataType,gpuDataType:0},{dims:n,dataType:a.inputs[0].dataType,gpuDataType:0},{dims:n,dataType:a.inputs[0].dataType,gpuDataType:0}],dispatchGroup:k,programUniforms:E}),getShaderSource:D},{inputs:M,outputs:[-1,-1,-1]})},m3=(a,i)=>{let n=m4(a.inputs,i),[g,p,h]=I4(a,n);return qo(a,g,p,h,a.inputs[4],void 0,void 0,void 0,a.inputs[5],n)}}),w4,k4,M4,h3,C6=kA(()=>{ja(),ct(),It(),Ur(),kt(),w4=(a,i)=>{if(!a||a.length!==5)throw new Error("BatchNormalization requires 5 inputs");let n=(g,p,h)=>{let C=p.length;if(C!==g.length)throw new Error(`${h}: num dimensions != ${C}`);p.forEach((k,M)=>{if(k!==g[M])throw new Error(`${h}: dim[${M}] do not match`)})};if(a[0].dims.length>1){let g=i.format==="NHWC"?i.spatial?a[0].dims.slice(-1):a[0].dims.slice(-1).concat(a[0].dims.slice(1,a[0].dims.length-1)):a[0].dims.slice(1,i.spatial?2:void 0);n(a[1].dims,g,"Invalid input scale"),n(a[2].dims,g,"Invalid input B"),n(a[3].dims,g,"Invalid input mean"),n(a[4].dims,g,"Invalid input var")}else n(a[1].dims,[1],"Invalid input scale"),n(a[2].dims,[1],"Invalid input B"),n(a[3].dims,[1],"Invalid input mean"),n(a[4].dims,[1],"Invalid input var")},k4=(a,i)=>{let{epsilon:n,spatial:g,format:p}=i,h=a[0].dims,C=g?Wr(h[h.length-1]):1,k=p==="NHWC"&&h.length>1?C:1,M=Je.size(h)/C,E=g,D=E?h.length:h,B=oA("x",a[0].dataType,a[0].dims,C),v=oA("scale",a[1].dataType,a[1].dims,k),S=oA("bias",a[2].dataType,a[2].dims,k),F=oA("inputMean",a[3].dataType,a[3].dims,k),R=oA("inputVar",a[4].dataType,a[4].dims,k),X=XA("y",a[0].dataType,D,C),z=()=>{let K="";if(g)K=`let cOffset = ${h.length===1?"0u":p==="NHWC"?`outputIndices[${h.length-1}] / ${C}`:"outputIndices[1]"};`;else if(p==="NCHW")K=` 401 ${X.indicesSet("outputIndices","0","0")} 402 let cOffset = ${X.indicesToOffset("outputIndices")};`;else{K=`var cIndices = ${v.type.indices}(0);
403 cIndices[0] = outputIndices[${h.length-1}];`;for(let d=1;d<v.rank;d++)K+=`cIndices[${d}] = outputIndices[${d}];`;K+=`let cOffset = ${v.indicesToOffset("cIndices")};`}return K},L=K=>` 404 const epsilon = ${n}; 405 ${K.registerUniform("outputSize","u32").declareVariables(B,v,S,F,R,X)} 406 ${K.mainStart()} 407 ${K.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 408 var outputIndices = ${X.offsetToIndices(`global_idx * ${C}`)}; 409 ${z()} 410 let scale = ${v.getByOffset("cOffset")}; 411 let bias = ${S.getByOffset("cOffset")}; 412 let inputMean = ${F.getByOffset("cOffset")}; 413 let inputVar = ${R.getByOffset("cOffset")}; 414 let x = ${B.getByOffset("global_idx")}; 415 let value = (x - inputMean) * inverseSqrt(inputVar + epsilon) * scale + bias; 416 ${X.setByOffset("global_idx","value")} 417 }`;return{name:"BatchNormalization",shaderCache:{hint:`${i.epsilon}_${i.format}_${g}_${C}`,inputDependencies:E?["rank","type","type","type","type"]:void 0},getShaderSource:L,getRunData:()=>({outputs:[{dims:a[0].dims,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(M/64)},programUniforms:E?[{type:12,data:M},...tt(h)]:[{type:12,data:M}]})}},M4=a=>$t(a),h3=(a,i)=>{let{inputs:n,outputCount:g}=a,p=M4({...i,outputCount:g});if(Dr.webgpu.validateInputContent&&w4(n,p),i.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");a.compute(k4(n,p))}}),E4,v4,C3,b6=kA(()=>{It(),kt(),E4=a=>{if(a[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![320,640,1280].includes(a[0].dims[2]))throw new Error("number of channels should be 320, 640 or 1280");if(a[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(a[0].dims[2]!==a[1].dims[0])throw new Error("last dimension of input and bias are not the same")},v4=a=>{let i=a[0].dims,n=a[0].dims[2],g=Je.size(i)/4,p=a[0].dataType,h=oA("input",p,i,4),C=oA("bias",p,[n],4),k=oA("residual",p,i,4),M=XA("output",p,i,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:i,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(g/64)}}),getShaderSource:E=>` 418 const channels = ${n}u / 4; 419 ${E.declareVariables(h,C,k,M)} 420 421 ${E.mainStart()} 422 ${E.guardAgainstOutOfBoundsWorkgroupSizes(g)} 423 let value = ${h.getByOffset("global_idx")} 424 + ${C.getByOffset("global_idx % channels")} + ${k.getByOffset("global_idx")}; 425 ${M.setByOffset("global_idx","value")} 426 }`}},C3=a=>{E4(a.inputs),a.compute(v4(a.inputs))}}),x4,Kt,b3,I3,w3,k3,M3,E3,v3,x3,B3,B4,y3,D3,T3,P3,Yo,G3,N0,Q3,F3,S3,O3,_3,z3,N3,L3,R3,j3,W3,V3,Y3,H3,U3,K3,m2,X3,lc,cc,Z3,J3,q3,y4,D4,$3,Sc=kA(()=>{ct(),It(),Ur(),kt(),x4=(a,i,n,g,p,h,C)=>{let k=Math.ceil(i/4),M="";typeof p=="string"?M=`${p}(a)`:M=p("a");let E=oA("inputData",n,[k],4),D=XA("outputData",g,[k],4),B=[{name:"vec_size",type:"u32"}];return C&&B.push(...C),` 427 ${a.registerUniforms(B).declareVariables(E,D)} 428 429 ${h??""} 430 431 ${a.mainStart()} 432 ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} 433 434 let a = ${E.getByOffset("global_idx")}; 435 ${D.setByOffset("global_idx",M)} 436 }`},Kt=(a,i,n,g,p,h=a.dataType,C,k)=>{let M=[{type:12,data:Math.ceil(Je.size(a.dims)/4)}];return C&&M.push(...C),{name:i,shaderCache:{hint:p,inputDependencies:["type"]},getShaderSource:E=>x4(E,Je.size(a.dims),a.dataType,h,n,g,k),getRunData:E=>({outputs:[{dims:a.dims,dataType:h}],dispatchGroup:{x:Math.ceil(Je.size(E[0].dims)/64/4)},programUniforms:M})}},b3=a=>{a.compute(Kt(a.inputs[0],"Abs","abs"))},I3=a=>{a.compute(Kt(a.inputs[0],"Acos","acos"))},w3=a=>{a.compute(Kt(a.inputs[0],"Acosh","acosh"))},k3=a=>{a.compute(Kt(a.inputs[0],"Asin","asin"))},M3=a=>{a.compute(Kt(a.inputs[0],"Asinh","asinh"))},E3=a=>{a.compute(Kt(a.inputs[0],"Atan","atan"))},v3=a=>{a.compute(Kt(a.inputs[0],"Atanh","atanh"))},x3=a=>$t(a),B3=(a,i)=>{let n;switch(i.to){case 10:n="vec4<f16>";break;case 1:n="vec4<f32>";break;case 12:n="vec4<u32>";break;case 6:n="vec4<i32>";break;case 9:n="vec4<bool>";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${i.to}`)}a.compute(Kt(a.inputs[0],"Cast",n,void 0,i.cacheKey,i.to))},B4=a=>{let i,n,g=a.length>=2&&a[1].data!==0,p=a.length>=3&&a[2].data!==0;switch(a[0].dataType){case 1:i=g?a[1].getFloat32Array()[0]:-34028234663852886e22,n=p?a[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:i=g?a[1].getUint16Array()[0]:64511,n=p?a[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return $t({min:i,max:n})},y3=(a,i)=>{let n=i||B4(a.inputs),g=Qs(a.inputs[0].dataType);a.compute(Kt(a.inputs[0],"Clip",p=>`clamp(${p}, vec4<${g}>(uniforms.min), vec4<${g}>(uniforms.max))`,void 0,n.cacheKey,void 0,[{type:a.inputs[0].dataType,data:n.min},{type:a.inputs[0].dataType,data:n.max}],[{name:"min",type:g},{name:"max",type:g}]),{inputs:[0]})},D3=a=>{a.compute(Kt(a.inputs[0],"Ceil","ceil"))},T3=a=>{a.compute(Kt(a.inputs[0],"Cos","cos"))},P3=a=>{a.compute(Kt(a.inputs[0],"Cosh","cosh"))},Yo=a=>$t(a),G3=(a,i)=>{let n=Qs(a.inputs[0].dataType);a.compute(Kt(a.inputs[0],"Elu",g=>`elu_vf32(${g})`,`
437 const elu_alpha_ = ${n}(${i.alpha}); 438 439 fn elu_f32(a: ${n}) -> ${n} { 440 return select((exp(a) - 1.0) * elu_alpha_, a, a >= 0.0); 441 } 442 443 fn elu_vf32(v: vec4<${n}>) -> vec4<${n}> { 444 return vec4(elu_f32(v.x), elu_f32(v.y), elu_f32(v.z), elu_f32(v.w)); 445 }`,i.cacheKey))},N0=(a="f32")=>` 446const r0: ${a} = 0.3275911; 447const r1: ${a} = 0.254829592; 448const r2: ${a} = -0.284496736; 449const r3: ${a} = 1.421413741; 450const r4: ${a} = -1.453152027; 451const r5: ${a} = 1.061405429; 452 453fn erf_vf32(v: vec4<${a}>) -> vec4<${a}> { 454 let absv = abs(v); 455 let x = 1.0 / (1.0 + r0 * absv); 456 return sign(v) * (1.0 - ((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x * exp(-absv * absv)); 457}`,Q3=a=>{let i=Qs(a.inputs[0].dataType);a.compute(Kt(a.inputs[0],"Erf",n=>`erf_vf32(${n})`,N0(i)))},F3=a=>{a.compute(Kt(a.inputs[0],"Exp","exp"))},S3=a=>{a.compute(Kt(a.inputs[0],"Floor","floor"))},O3=a=>{let i=Qs(a.inputs[0].dataType);a.compute(Kt(a.inputs[0],"Gelu",n=>`0.5 * ${n} * (1.0 + erf_vf32(${n} * 0.7071067811865475))`,N0(i)))},_3=(a,i)=>{let n=Qs(a.inputs[0].dataType);a.compute(Kt(a.inputs[0],"LeakyRelu",g=>`select(leaky_relu_alpha_ * ${g}, ${g}, ${g} >= vec4<${n}>(0.0))`,`const leaky_relu_alpha_ = ${n}(${i.alpha});`,i.cacheKey))},z3=a=>{a.compute(Kt(a.inputs[0],"Not",i=>`!${i}`))},N3=a=>{a.compute(Kt(a.inputs[0],"Neg",i=>`-${i}`))},L3=a=>{a.compute(Kt(a.inputs[0],"Reciprocal",i=>`1.0/${i}`))},R3=a=>{let i=Qs(a.inputs[0].dataType);a.compute(Kt(a.inputs[0],"Relu",n=>`select(vec4<${i}>(0.0), ${n}, ${n} > vec4<${i}>(0.0))`))},j3=a=>{a.compute(Kt(a.inputs[0],"Sigmoid",i=>`(1.0 / (1.0 + exp(-${i})))`))},W3=a=>$t(a),V3=(a,i)=>{let n=Qs(a.inputs[0].dataType);a.compute(Kt(a.inputs[0],"HardSigmoid",g=>`max(vec4<${n}>(0.0), min(vec4<${n}>(1.0), ${i.alpha} * ${g} + vec4<${n}>(${i.beta})))`,void 0,i.cacheKey))},Y3=a=>{a.compute(Kt(a.inputs[0],"Sin","sin"))},H3=a=>{a.compute(Kt(a.inputs[0],"Sinh","sinh"))},U3=a=>{a.compute(Kt(a.inputs[0],"Sqrt","sqrt"))},K3=a=>{a.compute(Kt(a.inputs[0],"Tan","tan"))},m2=a=>`sign(${a}) * (1 - exp(-2 * abs(${a}))) / (1 + exp(-2 * abs(${a})))`,X3=a=>{a.compute(Kt(a.inputs[0],"Tanh",m2))},lc=(a="f32")=>` 458const fast_gelu_a: ${a} = 0.5; 459const fast_gelu_b: ${a} = 0.7978845608028654; 460const fast_gelu_c: ${a} = 0.035677408136300125; 461 462fn tanh_v(v: vec4<${a}>) -> vec4<${a}> { 463 return ${m2("v")}; 464} 465`,cc=a=>`(fast_gelu_a + fast_gelu_a * tanh_v(${a} * (fast_gelu_c * ${a} * ${a} + fast_gelu_b))) * ${a}`,Z3=a=>{let i=Qs(a.inputs[0].dataType);a.compute(Kt(a.inputs[0],"FastGelu",cc,lc(i),void 0,a.inputs[0].dataType))},J3=(a,i)=>{let n=Qs(a.inputs[0].dataType);return a.compute(Kt(a.inputs[0],"ThresholdedRelu",g=>`select(vec4<${n}>(0.0), ${g}, ${g} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${n}>(${i.alpha});`,i.cacheKey)),0},q3=a=>{a.compute(Kt(a.inputs[0],"Log","log"))},y4=(a,i)=>` 466const alpha = vec4<${a}>(${i}); 467const one = ${a}(1.0); 468const zero = ${a}(0.0); 469 470fn quick_gelu_impl(x: vec4<${a}>) -> vec4<${a}> { 471 let v = x *alpha; 472 var x1 : vec4<${a}>; 473 for (var i = 0; i < 4; i = i + 1) { 474 if (v[i] >= zero) { 475 x1[i] = one / (one + exp(-v[i])); 476 } else { 477 x1[i] = one - one / (one + exp(v[i])); 478 } 479 } 480 return x * x1; 481} 482`,D4=a=>`quick_gelu_impl(${a})`,$3=(a,i)=>{let n=Qs(a.inputs[0].dataType);a.compute(Kt(a.inputs[0],"QuickGelu",D4,y4(n,i.alpha),i.cacheKey,a.inputs[0].dataType))}}),T4,P4,eC,I6=kA(()=>{It(),kt(),Sc(),T4=a=>{if(a[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![2560,5120,10240].includes(a[0].dims[2]))throw new Error("hidden state should be 2560, 5120 or 10240");if(a[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(a[0].dims[2]!==a[1].dims[0])throw new Error("last dimension of input and bias are not the same")},P4=a=>{let i=a[0].dims.slice();i[2]=i[2]/2;let n=oA("input",a[0].dataType,a[0].dims,4),g=oA("bias",a[0].dataType,[a[0].dims[2]],4),p=XA("output",a[0].dataType,i,4),h=Je.size(i)/4,C=Cs(a[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:i,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(h/64)}}),getShaderSource:k=>` 483 const M_SQRT2 = sqrt(2.0); 484 const halfChannels = ${a[0].dims[2]/4/2}u; 485 486 ${k.declareVariables(n,g,p)} 487 488 ${N0(C)} 489 490 ${k.mainStart()} 491 ${k.guardAgainstOutOfBoundsWorkgroupSizes(h)} 492 let biasIdx = global_idx % halfChannels; 493 let batchIndex = global_idx / halfChannels; 494 let inputOffset = biasIdx + batchIndex * halfChannels * 2;
495 let valueLeft = input[inputOffset] + bias[biasIdx]; 496 let valueRight = input[inputOffset + halfChannels] + bias[biasIdx + halfChannels]; 497 let geluRight = valueRight * 0.5 * (erf_vf32(valueRight / M_SQRT2) + 1); 498 499 ${p.setByOffset("global_idx","valueLeft * geluRight")} 500 }`}},eC=a=>{T4(a.inputs),a.compute(P4(a.inputs))}}),G4,Q4,_a,AC,tC,rC,sC,aC,nC,iC,oC,lC,cC,w6=kA(()=>{ct(),It(),kt(),G4=(a,i,n,g,p,h,C,k,M,E,D,B)=>{let v,S;typeof k=="string"?v=S=(L,K)=>`${k}((${L}),(${K}))`:typeof k=="function"?v=S=k:(v=k.scalar,S=k.vector);let F=XA("outputData",D,g.length,4),R=oA("aData",M,i.length,4),X=oA("bData",E,n.length,4),z;if(p)if(h){let L=Je.size(i)===1,K=Je.size(n)===1,d=i.length>0&&i[i.length-1]%4===0,w=n.length>0&&n[n.length-1]%4===0;L||K?z=F.setByOffset("global_idx",S(L?`${R.type.value}(${R.getByOffset("0")}.x)`:R.getByOffset("global_idx"),K?`${X.type.value}(${X.getByOffset("0")}.x)`:X.getByOffset("global_idx"))):z=` 501 let outputIndices = ${F.offsetToIndices("global_idx * 4u")}; 502 let offsetA = ${R.broadcastedIndicesToOffset("outputIndices",F)}; 503 let offsetB = ${X.broadcastedIndicesToOffset("outputIndices",F)}; 504 ${F.setByOffset("global_idx",S(C||d?R.getByOffset("offsetA / 4u"):`${R.type.value}(${R.getByOffset("offsetA / 4u")}[offsetA % 4u])`,C||w?X.getByOffset("offsetB / 4u"):`${X.type.value}(${X.getByOffset("offsetB / 4u")}[offsetB % 4u])`))} 505 `}else z=F.setByOffset("global_idx",S(R.getByOffset("global_idx"),X.getByOffset("global_idx")));else{if(!h)throw new Error("no necessary to use scalar implementation for element-wise binary op implementation.");let L=(K,d,w="")=>{let e=`aData[indexA${d}][componentA${d}]`,u=`bData[indexB${d}][componentB${d}]`;return` 506 let outputIndices${d} = ${F.offsetToIndices(`global_idx * 4u + ${d}u`)}; 507 let offsetA${d} = ${R.broadcastedIndicesToOffset(`outputIndices${d}`,F)}; 508 let offsetB${d} = ${X.broadcastedIndicesToOffset(`outputIndices${d}`,F)}; 509 let indexA${d} = offsetA${d} / 4u; 510 let indexB${d} = offsetB${d} / 4u; 511 let componentA${d} = offsetA${d} % 4u; 512 let componentB${d} = offsetB${d} % 4u; 513 ${K}[${d}] = ${w}(${v(e,u)}); 514 `};D===9?z=` 515 var data = vec4<u32>(0); 516 ${L("data",0,"u32")} 517 ${L("data",1,"u32")} 518 ${L("data",2,"u32")} 519 ${L("data",3,"u32")} 520 outputData[global_idx] = dot(vec4<u32>(0x1, 0x100, 0x10000, 0x1000000), vec4<u32>(data));`:z=` 521 ${L("outputData[global_idx]",0)} 522 ${L("outputData[global_idx]",1)} 523 ${L("outputData[global_idx]",2)} 524 ${L("outputData[global_idx]",3)} 525 `}return` 526 ${a.registerUniform("vec_size","u32").declareVariables(R,X,F)} 527 528 ${B??""} 529 530 ${a.mainStart()} 531 ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} 532 ${z} 533 }`},Q4=(a,i,n,g,p,h,C=n.dataType)=>{let k=n.dims.map(R=>Number(R)??1),M=g.dims.map(R=>Number(R)??1),E=!Je.areEqual(k,M),D=k,B=Je.size(k),v=!1,S=!1,F=[E];if(E){let R=co.calcShape(k,M,!1);if(!R)throw new Error("Can't perform binary op on the given tensors");D=R.slice(),B=Je.size(D);let X=Je.size(k)===1,z=Je.size(M)===1,L=k.length>0&&k[k.length-1]%4===0,K=M.length>0&&M[M.length-1]%4===0;F.push(X),F.push(z),F.push(L),F.push(K);let d=1;for(let w=1;w<D.length;w++){let e=k[k.length-w],u=M[M.length-w];if(e===u)d*=e;else break}d%4===0?(S=!0,v=!0):(X||z||L||K)&&(v=!0)}else v=!0;return F.push(v),{name:a,shaderCache:{hint:i+F.map(R=>R.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:R=>G4(R,k,M,D,v,E,S,p,n.dataType,g.dataType,C,h),getRunData:()=>({outputs:[{dims:D,dataType:C}],dispatchGroup:{x:Math.ceil(B/64/4)},programUniforms:[{type:12,data:Math.ceil(Je.size(D)/4)},...tt(k,M,D)]})}},_a=(a,i,n,g,p,h)=>{a.compute(Q4(i,p??"",a.inputs[0],a.inputs[1],n,g,h))},AC=a=>{_a(a,"Add",(i,n)=>`${i}+${n}`)},tC=a=>{_a(a,"Div",(i,n)=>`${i}/${n}`)},rC=a=>{_a(a,"Equal",{scalar:(i,n)=>`u32(${i}==${n})`,vector:(i,n)=>`vec4<u32>(${i}==${n})`},void 0,void 0,9)},sC=a=>{_a(a,"Mul",(i,n)=>`${i}*${n}`)},aC=a=>{let i=oA("input",a.inputs[0].dataType,a.inputs[0].dims).type.value;_a(a,"Pow",{scalar:(n,g)=>`pow_custom(${n},${g})`,vector:(n,g)=>`pow_vector_custom(${n},${g})`},` 534 fn pow_custom(a : ${i}, b : ${i}) -> ${i} { 535 if (b == ${i}(0.0)) { 536 return ${i}(1.0); 537 } else if (a < ${i}(0.0) && f32(b) != floor(f32(b))) { 538 return ${i}(pow(f32(a), f32(b))); // NaN 539 } 540 return select(sign(a), ${i}(1.0), round(f32(abs(b) % ${i}(2.0))) != 1.0) * ${i}(${i==="i32"?"round":""}(pow(f32(abs(a)), f32(b)))); 541 } 542 fn pow_vector_custom(a : vec4<${i}>, b : vec4<${i}>) -> vec4<${i}> { 543 // TODO: implement vectorized pow 544 return vec4<${i}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w)); 545 } 546 `)},nC=a=>{_a(a,"Sub",(i,n)=>`${i}-${n}`)},iC=a=>{_a(a,"Greater",{scalar:(i,n)=>`u32(${i}>${n})`,vector:(i,n)=>`vec4<u32>(${i}>${n})`},void 0,void 0,9)},oC=a=>{_a(a,"Less",{scalar:(i,n)=>`u32(${i}<${n})`,vector:(i,n)=>`vec4<u32>(${i}<${n})`},void 0,void 0,9)},lC=a=>{_a(a,"GreaterOrEqual",{scalar:(i,n)=>`u32(${i}>=${n})`,vector:(i,n)=>`vec4<u32>(${i}>=${n})`},void 0,void 0,9)},cC=a=>{_a(a,"LessOrEqual",{scalar:(i,n)=>`u32(${i}<=${n})`,vector:(i,n)=>`vec4<u32>(${i}<=${n})`},void 0,void 0,9)}}),F4,S4,O4,_4,uC,dC,k6=kA(()=>{ct(),It(),Ur(),kt(),F4=(a,i)=>{if(!a||a.length<1)throw new Error("too few inputs");let n=0,g=a[n],p=g.dataType,h=g.dims.length;a.forEach((C,k)=>{if(k!==n){if(C.dataType!==p)throw new Error("input tensors should be one type");if(C.dims.length!==h)throw new Error("input tensors should have the same shape");
546C.dims.forEach((M,E)=>{if(E!==i&&M!==g.dims[E])throw new Error("non concat dimensions must match")})}})},S4=(a,i)=>` 547 fn calculateInputIndex(index: u32) -> u32 { 548 let sizeInConcatAxis = array<u32, ${a}u>(${i}); 549 for (var i: u32 = 0u; i < ${a}; i += 1u ) { 550 if (index < sizeInConcatAxis[i]) { 551 return i; 552 } 553 } 554 return ${a}u; 555 }`,O4=(a,i)=>{let n=a.length,g=[];for(let p=0;p<n;++p){let h=i.setByOffset("global_idx",a[p].getByIndices("indices"));n===1?g.push(h):p===0?g.push(`if (inputIndex == ${p}u) { ${h} }`):p===n-1?g.push(`else { ${h} }`):g.push(`else if (inputIndex == ${p}) { ${h} }`)}return g.join(` 556`)},_4=(a,i,n,g)=>{let p=Je.size(n),h=new Array(a.length),C=new Array(a.length),k=0,M=[],E=[],D=[{type:12,data:p}];for(let R=0;R<a.length;++R)k+=a[R].dims[i],h[R]=k,E.push(a[R].dims.length),C[R]=oA(`input${R}`,g,E[R]),M.push("rank"),D.push({type:12,data:h[R]});for(let R=0;R<a.length;++R)D.push(...tt(a[R].dims));D.push(...tt(n));let B=XA("output",g,n.length),v=B.indicesGet("indices",i),S=Array.from(Array(h.length).keys()).map(R=>`uniforms.sizeInConcatAxis${R}`).join(","),F=R=>` 557 558 ${(()=>{R.registerUniform("outputSize","u32");for(let X=0;X<a.length;X++)R.registerUniform(`sizeInConcatAxis${X}`,"u32");return R.declareVariables(...C,B)})()} 559 560 ${S4(h.length,S)} 561 562 ${R.mainStart()} 563 ${R.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 564 565 var indices = ${B.offsetToIndices("global_idx")}; 566 567 let inputIndex = calculateInputIndex(${v}); 568 if (inputIndex != 0u) { 569 let sizeInConcatAxis = array<u32, ${h.length}u>(${S}); 570 ${v} -= sizeInConcatAxis[inputIndex - 1u]; 571 } 572 573 ${O4(C,B)} 574 }`;return{name:"Concat",shaderCache:{hint:`${i}`,inputDependencies:M},getRunData:()=>({outputs:[{dims:n,dataType:g}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:D}),getShaderSource:F}},uC=(a,i)=>{let n=a.inputs,g=n[0].dims,p=Je.normalizeAxis(i.axis,g.length);F4(n,p);let h=g.slice();h[p]=n.reduce((k,M)=>k+(M.dims.length>p?M.dims[p]:0),0);let C=n.filter(k=>Je.size(k.dims)>0);a.compute(_4(C,p,h,n[0].dataType),{inputs:C})},dC=a=>$t({axis:a.axis})}),Qi,Fi,Si,Oc,_i=kA(()=>{ct(),It(),Qi=(a,i,n="f32")=>{switch(a.activation){case"Relu":return`value = max(value, ${i}(0.0));`;case"Sigmoid":return`value = (${i}(1.0) / (${i}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${i}(${n}(uniforms.clip_min)), ${i}(${n}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${i}(0.0), min(${i}(1.0), ${n}(uniforms.alpha) * value + ${n}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${n}(uniforms.alpha) * value, value, value >= ${i}(0.0));`;case"Tanh":return`let e2x = exp(-2.0 * abs(value)); 575 value = sign(value) * (1.0 - e2x) / (1.0 + e2x); 576 `;case"":return"";default:throw new Error(`Unsupported activation ${a.activation}`)}},Fi=(a,i)=>{a.activation==="Clip"?i.push({type:1,data:a.clipMax},{type:1,data:a.clipMin}):a.activation==="HardSigmoid"?i.push({type:1,data:a.alpha},{type:1,data:a.beta}):a.activation==="LeakyRelu"&&i.push({type:1,data:a.alpha})},Si=(a,i)=>{a.activation==="Clip"?i.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):a.activation==="HardSigmoid"?i.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):a.activation==="LeakyRelu"&&i.push({name:"alpha",type:"f32"})},Oc=a=>{let i=(a==null?void 0:a.activation)||"";if(i==="HardSigmoid"){let[n,g]=(a==null?void 0:a.activation_params)||[.2,.5];return{activation:i,alpha:n,beta:g}}else if(i==="Clip"){let[n,g]=(a==null?void 0:a.activation_params)||[zh,Nh];return{activation:i,clipMax:g,clipMin:n}}else if(i==="LeakyRelu"){let[n]=(a==null?void 0:a.activation_params)||[.01];return{activation:i,alpha:n}}return{activation:i}}}),ws,fC,_c=kA(()=>{ws=(a,i)=>{switch(a){case 1:return i;case 2:return`vec2<${i}>`;case 3:return`vec3<${i}>`;case 4:return`vec4<${i}>`;default:throw new Error(`${a}-component is not supported.`)}},fC=a=>` 577 ${a?"value = value + getBiasByOutputCoords(coords);":""} 578 `}),gC,M6=kA(()=>{gC=a=>` 579fn getIndexFromCoords4D(coords : vec4<i32>, shape : vec4<i32>) -> i32 { 580 return dot(coords, vec4<i32>( 581 shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1)); 582} 583fn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 { 584 return dot(coords, vec4<i32>( 585 i32(${a}.x), i32(${a}.y), i32(${a}.z), 1)); 586} 587`}),Uo,zc,Nc=kA(()=>{ct(),It(),kt(),_i(),Uo=(a,i,n,g,p)=>{let h=g-n;return` 588 ${Array.from({length:n}).map((C,k)=>` 589 if (${$A(i.shape,k,i.rank)} != 1) { 590 ${i.indicesSet(a,k,$A(p,k+h,g))} 591 } else { 592 ${i.indicesSet(a,k,0)} 593 }`).join("")} 594`},zc=(a,i,n,g,p=!1,h)=>{let C=a[0].dims,k=a[1].dims,M=C[C.length-2],E=k[k.length-1],D=C[C.length-1],B=Wr(E),v=Wr(D),S=Wr(M),F=Je.size(n)/B/S,R=a.length>2,X=g?g.slice(0,-2):n.slice(0,-2),z=[Je.size(X),M,E],L=[{type:12,data:F},{type:12,data:M},{type:12,data:E},{type:12,data:D}];Fi(i,L),L.push(...tt(X,C,k)),R&&L.push(...tt(a[2].dims)),L.push(...tt(z));let K=d=>{let w=Gc("batch_dims",a[0].dataType,X.length),e=oA("a",a[0].dataType,C.length,v),u=oA("b",a[1].dataType,k.length,B),y=XA("output",a[0].dataType,z.length,B),ee=Cs(y.t
vendor: 11,549 bytes, lines 594-838
594ype.tensor),T=Qi(i,y.type.value,ee),O=[e,u],ge="";if(R){let be=p?B:1;O.push(oA("bias",a[2].dataType,a[2].dims.length,be)),ge=`${p?`value += bias[col / ${be}];`:`value += ${y.type.value}(bias[row + i]);`}`}let se=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];Si(i,se);let we=()=>{let be=`var a_data: ${e.type.value};`;for(let Be=0;Be<v;Be++)be+=` 595 let b_data${Be} = b[(b_offset + (k + ${Be}) * uniforms.N + col) / ${B}];`;for(let Be=0;Be<S;Be++){be+=`a_data = a[(a_offset + (row + ${Be}) * uniforms.K + k) / ${v}];`;for(let ve=0;ve<v;ve++)be+=` 596 values[${Be}] = fma(${u.type.value}(a_data${v===1?"":`[${ve}]`}), b_data${ve}, values[${Be}]); 597`}return be};return` 598 ${d.registerUniforms(se).registerInternalVariables(w).declareVariables(...O,y)} 599 ${d.mainStart()} 600 ${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 601 let col = (global_idx % (uniforms.N / ${B})) * ${B}; 602 var index1 = global_idx / (uniforms.N / ${B}); 603 let stride1 = uniforms.M / ${S}; 604 let row = (index1 % stride1) * ${S}; 605 let batch = index1 / stride1; 606 607 ${n.length===2?"":`let batch_indices = ${w.offsetToIndices("batch")};`} 608 609 var a_indices: ${e.type.indices}; 610 ${Uo("a_indices",e,e.rank-2,w.rank,"batch_indices")} 611 ${e.indicesSet("a_indices",e.rank-2,0)} 612 ${e.indicesSet("a_indices",e.rank-1,0)} 613 let a_offset = ${e.indicesToOffset("a_indices")}; 614 615 var b_indices: ${u.type.indices}; 616 ${Uo("b_indices",u,u.rank-2,w.rank,"batch_indices")} 617 ${u.indicesSet("b_indices",u.rank-2,0)} 618 ${u.indicesSet("b_indices",u.rank-1,0)} 619 let b_offset = ${u.indicesToOffset("b_indices")}; 620 var values: array<${y.type.value}, ${S}>; 621 for (var k: u32 = 0u; k < uniforms.K; k = k + ${v}) { 622 ${we()} 623 } 624 for (var i = 0u; i < ${S}u; i++) { 625 var value = values[i]; 626 ${ge} 627 ${T} 628 let cur_indices = ${y.type.indices}(batch, row + i, col); 629 let offset = ${y.indicesToOffset("cur_indices")}; 630 ${y.setByOffset(`offset / ${B}`,"value")}; 631 } 632 } 633 `};return{name:"MatMulNaive",shaderCache:{hint:`${i.activation};${B};${v};${S};${p}`,inputDependencies:R?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:h?h(n):n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(F/64)},programUniforms:L}),getShaderSource:K}}}),z4,N4,uc,h2,L4,dc,R4,Y0,Lc=kA(()=>{ct(),It(),kt(),_i(),Nc(),_c(),z4=(a,i)=>a?` 634 mm_Asub[inputRow][inputCol] = mm_readA(batch, 635 kStart + inputRow, 636 globalRowStart / innerElementSize + inputCol${i?", batchIndices":""}); 637 `:` 638 mm_Asub[inputRow][inputCol] = mm_readA(batch, 639 globalRow + innerRow, 640 kStart / innerElementSize + inputCol${i?", batchIndices":""}); 641 `,N4=(a,i)=>a?` 642 let ACached0 = mm_Asub[k * innerElementSize][localRow]; 643 let ACached1 = mm_Asub[k * innerElementSize + 1][localRow]; 644 let ACached2 = mm_Asub[k * innerElementSize + 2][localRow]; 645 ${i===3?"":"let ACached3 = mm_Asub[k * innerElementSize + 3][localRow];"} 646 for (var i = 0; i < rowPerThread; i = i + 1) { 647 acc[i] = BCached0 * ACached0[i] + acc[i]; 648 acc[i] = BCached1 * ACached1[i] + acc[i]; 649 acc[i] = BCached2 * ACached2[i] + acc[i]; 650 ${i===3?"":"acc[i] = BCached3 * ACached3[i] + acc[i];"} 651 }`:` 652 for (var i = 0; i < rowPerThread; i = i + 1) { 653 let ACached = mm_Asub[tileRow + i][k]; 654 acc[i] = BCached0 * ACached.x + acc[i]; 655 acc[i] = BCached1 * ACached.y + acc[i]; 656 acc[i] = BCached2 * ACached.z + acc[i]; 657 ${i===3?"":"acc[i] = BCached3 * ACached.w + acc[i];"} 658 }`,uc=(a,i,n="f32",g,p=!1,h=32,C=!1,k=32)=>{let M=i[1]*a[1],E=i[0]*a[0],D=p?M:h,B=p?h:M,v=D/i[0],S=h/i[1];if(!((p&&v===4&&a[1]===4||!p&&(v===3||v===4))&&D%i[0]===0&&h%i[1]===0&&a[0]===4))throw new Error(`If transposeA ${p} is true, innerElementSize ${v} and workPerThread[1] ${a[1]} must be 4. 659 Otherwise, innerElementSize ${v} must be 3 or 4. 660 tileAWidth ${D} must be divisible by workgroupSize[0]${i[0]}. tileInner ${h} must be divisible by workgroupSize[1] ${i[1]}. colPerThread ${a[0]} must be 4.`);return` 661var<workgroup> mm_Asub: array<array<vec${v}<${n}>, ${D/v}>, ${B}>; 662var<workgroup> mm_Bsub: array<array<vec4<${n}>, ${E/a[0]}>, ${h}>; 663 664const rowPerThread = ${a[1]}; 665const colPerThread = ${a[0]}; 666const innerElementSize = ${v}; 667const tileInner = ${h}; 668 669@compute @workgroup_size(${i[0]}, ${i[1]}, ${i[2]}) 670fn main(@builtin(local_invocation_id) localId : vec3<u32>, 671 @builtin(global_invocation_id) globalId : vec3<u32>, 672 @builtin(workgroup_id) workgroupId : vec3<u32>) { 673 let localRow = i32(localId.y); 674 let tileRow = localRow * rowPerThread; 675 let tileCol = i32(localId.x); 676 677 let globalRow =i32(globalId.y) * rowPerThread; 678 let globalCol = i32(globalId.x); 679 let batch = ${C?"0":"i32(globalId.z)"}; 680 ${g?`let batchIndices = ${g.offsetToIndices("u32(batch)")};`:""} 681 let globalRowStart = i32(workgroupId.y) * ${M}; 682 683 let num_tiles = ${C?`${Math.ceil(k/h)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; 684 var kStart = ${C?`i32(globalId.z) * ${k}`:"0"}; 685 686 var acc: array<vec4<${n}>, rowPerThread>; 687 688 // Loop over shared dimension. 689 let tileRowB = localRow * ${S}; 690 for (var t = 0; t < num_tiles; t = t + 1) { 691 // Load one tile of A into local memory. 692 for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { 693 let inputRow = tileRow + innerRow; 694 let inputCol = tileCol; 695 ${z4(p,g)} 696 } 697 698 // Load one tile of B into local memory. 699 for (var innerRow = 0; innerRow < ${S}; innerRow = innerRow + 1) { 700 let inputRow = tileRowB + innerRow; 701 let inputCol = tileCol; 702 mm_Bsub[inputRow][inputCol] = mm_readB(batch, kStart + inputRow, globalCol${g?", batchIndices":""}); 703 } 704 kStart = kStart + tileInner; 705 workgroupBarrier(); 706 707 // Compute acc values for a single thread. 708 for (var k = 0; k < tileInner / innerElementSize; k = k + 1) { 709 let BCached0 = mm_Bsub[k * innerElementSize][tileCol]; 710 let BCached1 = mm_Bsub[k * innerElementSize + 1][tileCol]; 711 let BCached2 = mm_Bsub[k * innerElementSize + 2][tileCol]; 712 ${v===3?"":"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];"} 713 714 ${N4(p,v)} 715 } 716 717 workgroupBarrier(); 718 } 719 720 for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { 721 mm_write(batch, globalRow + innerRow, globalCol, acc[innerRow]); 722 } 723}`},h2=(a,i)=>a?` 724 mm_Asub[inputRow][inputCol] = mm_readA(batch, 725 kStart + inputRow, 726 globalRowStart + inputCol${i?", batchIndices":""}); 727 `:` 728 mm_Asub[inputRow][inputCol] = mm_readA(batch, 729 globalRowStart + inputRow, 730 kStart + inputCol${i?", batchIndices":""}); 731 `,L4=a=>a?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",dc=(a,i,n="f32",g,p=!1,h=32,C=!1,k=32,M=!1)=>{let E=a[1]*i[1],D=a[0]*i[0],B=p?E:h,v=p?h:E;if(!(v%i[1]===0&&B%i[0]===0&&h%i[1]===0))throw new Error(`tileAHight ${v} must be divisible by workgroupSize[1]${i[1]}, tileAWidth ${B} must be divisible by workgroupSize[0]${i[0]}, tileInner ${h} must be divisible by workgroupSize[1]${i[1]}`);let S=v/i[1],F=B/i[0],R=h/i[1],X=M?` 732 let localRow = i32(localId.y); 733 let localCol = i32(localId.x); 734 let globalRowStart = i32(workgroupId.y) * ${E}; 735 let globalColStart = i32(workgroupId.x) * ${D}; 736 737 // Loop over shared dimension. 738 for (var t = 0; t < num_tiles; t = t + 1) { 739 // Load one tile of A into local memory. 740 for (var inputRow = localRow; inputRow < ${v}; inputRow = inputRow + ${i[1]}) { 741 for (var inputCol = localCol; inputCol < ${B}; inputCol = inputCol + ${i[0]}) { 742 ${h2(p,g)} 743 } 744 } 745 // Load one tile of B into local memory. 746 for (var inputRow = localRow; inputRow < ${h}; inputRow = inputRow + ${i[1]}) { 747 for (var inputCol = localCol; inputCol < ${D}; inputCol = inputCol + ${i[0]}) { 748 mm_Bsub[inputRow][inputCol] = mm_readB(batch, 749 kStart + inputRow, 750 globalColStart + inputCol${g?", batchIndices":""}); 751 } 752 } 753 kStart = kStart + tileInner; 754 workgroupBarrier(); 755 756 // Compute acc values for a single thread. 757 var BCached : array<${n}, colPerThread>; 758 for (var k = 0; k < tileInner; k = k + 1) { 759 for (var inner = 0; inner < colPerThread; inner = inner + 1) { 760 BCached[inner] = mm_Bsub[k][localCol + inner * ${i[0]}]; 761 } 762 for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { 763 let ACached = ${p?`mm_Asub[k][localRow + innerRow * ${i[1]}];`:`mm_Asub[localRow + innerRow * ${i[1]}][k];`} 764 for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { 765 acc[innerRow][innerCol] = acc[innerRow][innerCol] + 766 ACached * BCached[innerCol]; 767 } 768 } 769 } 770 workgroupBarrier(); 771 } 772 for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { 773 let gRow = globalRowStart + localRow + innerRow * ${i[1]}; 774 for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { 775 let gCol = globalColStart + localCol + innerCol * ${i[0]}; 776 mm_write(batch, gRow, gCol, acc[innerRow][innerCol]); 777 } 778 } 779 `:` 780let tileRow = i32(localId.y) * rowPerThread; 781let tileCol = i32(localId.x) * colPerThread; 782 783let globalRow = i32(globalId.y) * rowPerThread; 784let globalCol = i32(globalId.x) * colPerThread; 785let globalRowStart = i32(workgroupId.y) * ${E}; 786 787let tileRowA = i32(localId.y) * ${S}; 788let tileColA = i32(localId.x) * ${F}; 789let tileRowB = i32(localId.y) * ${R}; 790// Loop over shared dimension. 791for (var t = 0; t < num_tiles; t = t + 1) { 792 // Load one tile of A into local memory. 793 for (var innerRow = 0; innerRow < ${S}; innerRow = innerRow + 1) { 794 for (var innerCol = 0; innerCol < ${F}; innerCol = innerCol + 1) { 795 let inputRow = tileRowA + innerRow; 796 let inputCol = tileColA + innerCol; 797 ${h2(p,g)} 798 } 799 } 800 801 // Load one tile of B into local memory. 802 for (var innerRow = 0; innerRow < ${R}; innerRow = innerRow + 1) { 803 for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { 804 let inputRow = tileRowB + innerRow; 805 let inputCol = tileCol + innerCol; 806 mm_Bsub[inputRow][inputCol] = mm_readB(batch, 807 kStart + inputRow, 808 globalCol + innerCol${g?", batchIndices":""}); 809 } 810 } 811 kStart = kStart + tileInner; 812 workgroupBarrier(); 813 814 // Compute acc values for a single thread. 815 var BCached : array<${n}, colPerThread>; 816 for (var k = 0; k < tileInner; k = k + 1) { 817 for (var inner = 0; inner < colPerThread; inner = inner + 1) { 818 BCached[inner] = mm_Bsub[k][tileCol + inner]; 819 } 820 821 for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { 822 ${L4(p)} 823 for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { 824 acc[innerRow][innerCol] = acc[innerRow][innerCol] + ACached * BCached[innerCol]; 825 } 826 } 827 } 828 829 workgroupBarrier(); 830} 831 832for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { 833 for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { 834 mm_write(batch, globalRow + innerRow, globalCol + innerCol, 835 acc[innerRow][innerCol]); 836 } 837} 838`;return`
839 var<workgroup> mm_Asub : array<array<${n}, ${B}>, ${v}>; 840 var<workgroup> mm_Bsub : array<array<${n}, ${D}>, ${h}>; 841 const rowPerThread = ${a[1]}; 842 const colPerThread = ${a[0]}; 843 const tileInner = ${h}; 844 845@compute @workgroup_size(${i[0]}, ${i[1]}, ${i[2]}) 846fn main(@builtin(local_invocation_id) localId : vec3<u32>, 847 @builtin(global_invocation_id) globalId : vec3<u32>, 848 @builtin(workgroup_id) workgroupId : vec3<u32>) { 849 let batch = ${C?"0":"i32(globalId.z)"}; 850 ${g?`let batchIndices = ${g.offsetToIndices("u32(batch)")};`:""} 851 let num_tiles = ${C?`${Math.ceil(k/h)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; 852 var kStart = ${C?`i32(globalId.z) * ${k}`:"0"}; 853 854 var acc : array<array<${n}, colPerThread>, rowPerThread>; 855 ${X} 856 } 857`},R4=(a,i,n,g,p=!1)=>{let[h,C,k,M]=g,E=Cs(g[0].type.tensor);return` 858 fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${h.type.indices}) -> ${ws(a,E)} { 859 var value = ${ws(a,E)}(0.0); 860 let col = colIn * ${a}; 861 if(row < uniforms.dim_a_outer && col < uniforms.dim_inner) 862 { 863 var aIndices: ${C.type.indices}; 864 ${Uo("aIndices",C,C.rank-2,h.rank,"batchIndices")} 865 ${C.indicesSet("aIndices",C.rank-2,"u32(row)")} 866 ${C.indicesSet("aIndices",C.rank-1,"u32(colIn)")} 867 value = ${C.getByIndices("aIndices")}; 868 } 869 return value; 870 } 871 872 fn mm_readB(batch: i32, row: i32, colIn: i32, batchIndices: ${h.type.indices}) -> ${ws(a,E)} { 873 var value = ${ws(a,E)}(0.0); 874 let col = colIn * ${a}; 875 if(row < uniforms.dim_inner && col < uniforms.dim_b_outer) 876 { 877 var bIndices: ${k.type.indices}; 878 ${Uo("bIndices",k,k.rank-2,h.rank,"batchIndices")} 879 ${k.indicesSet("bIndices",k.rank-2,"u32(row)")} 880 ${k.indicesSet("bIndices",k.rank-1,"u32(colIn)")} 881 value = ${k.getByIndices("bIndices")}; 882 } 883 return value; 884 } 885 886 fn mm_write(batch: i32, row: i32, colIn: i32, valueIn: ${ws(a,E)}) { 887 let col = colIn * ${a}; 888 if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) { 889 var value = valueIn; 890 let coords = vec3<i32>(batch, row, colIn); 891 ${i?`value = value + ${p?"bias[colIn]":`${ws(a,E)}(bias[row])`};`:""} 892 ${n} 893 ${M.setByIndices("vec3<u32>(coords)","value")} 894 } 895 } 896 `},Y0=(a,i,n,g,p=!1,h)=>{let C=a[0].dims,k=a[1].dims,M=C.slice(0,-2),E=k.slice(0,-2),D=g?g.slice(0,-2):n.slice(0,-2),B=Je.size(D),v=C[C.length-2],S=C[C.length-1],F=k[k.length-1],R=S%4===0&&F%4===0,X=v<=8?[4,1,1]:[4,4,1],z=[8,8,1],L=[Math.ceil(F/z[0]/X[0]),Math.ceil(v/z[1]/X[1]),Math.ceil(B/z[2]/X[2])],K=R?4:1,d=[...M,v,S/K],w=d.length,e=[...E,S,F/K],u=e.length,y=[B,v,F/K],ee=[{type:6,data:v},{type:6,data:F},{type:6,data:S}];Fi(i,ee),ee.push(...tt(D,d,e));let T=["rank","rank"],O=a.length>2;O&&(ee.push(...tt(a[2].dims)),T.push("rank")),ee.push(...tt(y));let ge=se=>{let we=D.length,be=Gc("batchDims",a[0].dataType,we,1),Be=Cs(a[0].dataType),ve=oA("a",a[0].dataType,w,K),De=oA("b",a[1].dataType,u,K),je=XA("result",a[0].dataType,y.length,K),Le=[ve,De];if(O){let Fe=p?K:1;Le.push(oA("bias",a[2].dataType,a[2].dims.length,Fe))}let Pe=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];Si(i,Pe);let me=Cs(je.type.tensor),ie=Qi(i,je.type.value,me),Ie=R4(K,O,ie,[be,ve,De,je],p);return` 897 ${se.registerUniforms(Pe).registerInternalVariables(be).declareVariables(...Le,je)} 898 ${Ie} 899 ${R?uc(X,z,Be,be):dc(X,z,Be,be)} 900 `};return{name:"MatMul",shaderCache:{hint:`${X};${i.activation};${R};${p}`,inputDependencies:T},getRunData:()=>({outputs:[{dims:h?h(n):n,dataType:a[0].dataType}],dispatchGroup:{x:L[0],y:L[1],z:L[2]},programUniforms:ee}),getShaderSource:ge}}}),j4,pC,E6=kA(()=>{ct(),Tn(),kt(),_i(),_c(),M6(),Lc(),j4=(a,i,n,g,p=!1,h,C=4,k=4,M=4,E="f32")=>{let D=ee=>{switch(ee){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${E}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${ee} is not supported.`)}},B=ee=>{switch(ee){case 1:return"return w[row * i32(uniforms.w_shape[3]) + colIn];";case 4:return"return w[row * i32(uniforms.w_shape[3]) / 4 + colIn];";default:throw new Error(`innerElementSize ${ee} is not supported.`)}},v=a?`
901 let coord = vec4<i32>(batch, xRow, xCol, xCh); 902 `:` 903 let coord = vec4<i32>(batch, xCh, xRow, xCol); 904 `,S=a?` 905 let coords = vec4<i32>( 906 batch, 907 row / outWidth, 908 row % outWidth, 909 col); 910 `:` 911 let coords = vec4<i32>( 912 batch, 913 row, 914 col / outWidth, 915 col % outWidth); 916 `,F=a?"i32(uniforms.x_shape[1])":"i32(uniforms.x_shape[2])",R=a?"i32(uniforms.x_shape[2])":"i32(uniforms.x_shape[3])",X=a?"row":"col",z=a?"col":"row",L=` 917 let inChannels = i32(uniforms.w_shape[2]); 918 let outWidth = ${a?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; 919 let outRow = ${X} / outWidth; 920 let outCol = ${X} % outWidth; 921 922 let WRow = ${z} / (i32(uniforms.w_shape[1]) * inChannels); 923 let WCol = ${z} / inChannels % i32(uniforms.w_shape[1]); 924 let xRow = outRow * uniforms.stride[0] + uniforms.dilation[0] * WRow - uniforms.pad[0]; 925 let xCol = outCol * uniforms.stride[1] + uniforms.dilation[1] * WCol - uniforms.pad[1]; 926 let xCh = ${z} % inChannels; 927 var resData = ${ws(C,E)}(0.0); 928 // The bounds checking is always needed since we use it to pad zero for 929 // the 'same' padding type. 930 if (xRow >= 0 && xRow < ${F} && xCol >= 0 && xCol < ${R}) { 931 ${v} 932 let xIndex = getIndexFromCoords4D(coord, vec4<i32>(uniforms.x_shape)); 933 ${D(C)} 934 } 935 return resData;`,K=a?i&&g?`
936 let col = colIn * ${C}; 937 ${L}`:` 938 let col = colIn * ${C}; 939 if (row < uniforms.dim_a_outer && col < uniforms.dim_inner) { 940 ${L} 941 } 942 return ${ws(C,E)}(0.0);`:g&&n?` 943 let col = colIn * ${C}; 944 ${L}`:` 945 let col = colIn * ${C}; 946 if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { 947 ${L} 948 } 949 return ${ws(C,E)}(0.0);`,d=a?g&&n?B(k):` 950 let col = colIn * ${k}; 951 if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { 952 ${B(k)} 953 } 954 return ${ws(k,E)}(0.0);`:` 955 let col = colIn * ${k}; 956 if (row < uniforms.dim_inner && col < uniforms.dim_a_outer) { 957 ${B(k)} 958 } 959 return ${ws(k,E)}(0.0);`,w=ws(M,E),e=ws(a?C:k,E),u=ws(a?k:C,E),y=Qi(h,w,E);return` 960 fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${e} { 961 ${a?K:d} 962 } 963 964 fn mm_readB(batch: i32, row : i32, colIn : i32) -> ${u} { 965 ${a?d:K} 966 } 967 968 fn mm_write(batch: i32, row : i32, colIn : i32, valueIn : ${w}) { 969 let col = colIn * ${M}; 970 if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) 971 { 972 var value = valueIn; 973 let outWidth = ${a?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; 974 ${S} 975 ${fC(p)} 976 ${y} 977 setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value); 978 } 979 }`},pC=(a,i,n,g,p,h,C,k,M)=>{let E=i.format==="NHWC",D=E?a[0].dims[3]:a[0].dims[1],B=n[0],v=E?n[2]:n[3],S=E?n[1]:n[2],F=E?n[3]:n[1],R=E&&(D%4===0||D%3===0)&&F%4===0,X=E?F:v*S,z=E?v*S:F,L=[8,8,1],K=g<=8?[4,1,1]:[4,4,1],d=[Math.ceil(X/L[0]/K[0]),Math.ceil(z/L[1]/K[1]),Math.ceil(B/L[2]/K[2])];Lt("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${d}`);let w=R?E&&D%4!==0?3:4:1,e=L[1]*K[1],u=L[0]*K[0],y=Math.max(L[0]*w,L[1]),ee=g%e===0,T=p%u===0,O=h%y===0,ge=R?[w,4,4]:[1,1,1],se=[{type:6,data:g},{type:6,data:p},{type:6,data:h},{type:6,data:[i.pads[0],i.pads[1]]},{type:6,data:i.strides},{type:6,data:i.dilations}];Fi(i,se),se.push(...tt(a[0].dims,a[1].dims));let we=["rank","rank"];C&&(se.push(...tt(a[2].dims)),we.push("rank")),se.push(...tt(n));let be=Be=>{let ve=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"},{name:"pad",type:"i32",length:2},{name:"stride",type:"i32",length:2},{name:"dilation",type:"i32",length:2}];Si(i,ve);let De=R?4:1,je=Cs(a[0].dataType),Le=` 980 fn setOutputAtIndex(flatIndex : i32, value : ${R?`vec4<${je}>`:je}) { 981 result[flatIndex] = ${R?`vec4<${je}>`:je}(value); 982 } 983 fn setOutputAtCoords(d0 : i32, d1 : i32, d2 : i32, d3 : i32, value : ${R?`vec4<${je}>`:je}) { 984 let flatIndex = getOutputIndexFromCoords(vec4<i32>(d0, d1, d2, d3)); 985 setOutputAtIndex(flatIndex ${R?"/ 4":""}, value); 986 }`,Pe=oA("x",a[0].dataType,a[0].dims.length,w===3?1:w),me=oA("w",a[1].dataType,a[1].dims.length,De),ie=[Pe,me],Ie=XA("result",a[0].dataType,n.length,De);if(C){let Fe=oA("bias",a[2].dataType,a[2].dims.length,De);ie.push(Fe),Le+=` 987 fn getBiasByOutputCoords(coords : vec4<i32>) -> ${R?`vec4<${je}>`:je} { 988 return bias[coords.${E?"w":"y"}${R?"/ 4":""}]; 989 }`}return` 990 ${gC("uniforms.result_strides")} 991 //struct Uniforms { xShape : vec4<i32>, wShape : vec4<i32>, outShape : vec4<i32>, 992 // outShapeStrides: vec3<i32>, filterDims : vec2<i32>, pad : vec2<i32>, stride : vec2<i32>, 993 // dilation : vec2<i32>, dimAOuter : i32, dimBOuter : i32, dimInner : i32 }; 994 ${Be.registerUniforms(ve).declareVariables(...ie,Ie)} 995 ${Le} 996 ${j4(E,ee,T,O,C,i,ge[0],ge[1],ge[2],je)} 997 ${R?uc(K,L,je,void 0,!E,y):dc(K,L,je,void 0,!E,y,!1,void 0,k)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${i.cacheKey};${w};${R};${ee};${T};${O};${e};${u};${y}`,inputDependencies:we},getRunData:()=>({outputs:[{dims:M?M(n):n,dataType:a[0].dataType}],dispatchGroup:{x:d[0],y:d[1],z:d[2]},programUniforms:se}),getShaderSource:be}}}),W4,C2,Oo,V4,b2,Y4,mC,hC,v6=kA(()=>{ct(),Tn(),It(),kt(),_i(),_c(),W4=a=>{let i=1;for(let n=0;n<a.length;n++)i*=a[n];return i},C2=a=>typeof a=="number"?[a,a,a]:a,Oo=(a,i)=>i<=1?a:a+(a-1)*(i-1),V4=(a,i,n,g=1)=>{let p=Oo(i,g);return Math.floor((a[0]*(n-1)-n+p)/2)},b2=(a,i,n,g,p)=>{p==null&&(p=V4(a,i[0],g[0]));let h=[0,0,0,n];for(let C=0;C<3;C++)a[C]+2*p>=i[C]&&(h[C]=Math.trunc((a[C]-i[C]+2*p)/g[C]+1));return h},Y4=(a,i,n,g,p,h,C,k,M,E)=>{let D,B,v,S;if(a==="VALID"&&(a=0),typeof a=="number"){D={top:a,bottom:a,left
vendor: 4,206 bytes, lines 997-1025
997:a,right:a,front:a,back:a};let F=b2([i,n,g,1],[k,M,E],1,[p,h,C],a);B=F[0],v=F[1],S=F[2]}else if(Array.isArray(a)){if(!a.every((R,X,z)=>R===z[0]))throw Error(`Unsupported padding parameter: ${a}`);D={top:a[0],bottom:a[1],left:a[2],right:a[3],front:a[4],back:a[5]};let F=b2([i,n,g,1],[k,M,E],1,[p,h,C],a[0]);B=F[0],v=F[1],S=F[2]}else if(a==="SAME_UPPER"){B=Math.ceil(i/p),v=Math.ceil(n/h),S=Math.ceil(g/C);let F=(B-1)*p+k-i,R=(v-1)*h+M-n,X=(S-1)*C+E-g,z=Math.floor(F/2),L=F-z,K=Math.floor(R/2),d=R-K,w=Math.floor(X/2),e=X-w;D={top:K,bottom:d,left:w,right:e,front:z,back:L}}else throw Error(`Unknown padding parameter: ${a}`);return{padInfo:D,outDepth:B,outHeight:v,outWidth:S}},mC=(a,i,n,g,p,h=!1,C="channelsLast")=>{let k,M,E,D,B;if(C==="channelsLast")[k,M,E,D,B]=a;else if(C==="channelsFirst")[k,B,M,E,D]=a;else throw new Error(`Unknown dataFormat ${C}`);let[v,,S,F,R]=i,[X,z,L]=C2(n),[K,d,w]=C2(g),e=Oo(S,K),u=Oo(F,d),y=Oo(R,w),{padInfo:ee,outDepth:T,outHeight:O,outWidth:ge}=Y4(p,M,E,D,X,z,L,e,u,y),se=h?v*B:v,we=[0,0,0,0,0];return C==="channelsFirst"?we=[k,se,T,O,ge]:C==="channelsLast"&&(we=[k,T,O,ge,se]),{batchSize:k,dataFormat:C,inDepth:M,inHeight:E,inWidth:D,inChannels:B,outDepth:T,outHeight:O,outWidth:ge,outChannels:se,padInfo:ee,strideDepth:X,strideHeight:z,strideWidth:L,filterDepth:S,filterHeight:F,filterWidth:R,effectiveFilterDepth:e,effectiveFilterHeight:u,effectiveFilterWidth:y,dilationDepth:K,dilationHeight:d,dilationWidth:w,inShape:a,outShape:we,filterShape:i}},hC=(a,i,n,g,p,h)=>{let C=h==="channelsLast";C?a[0].dims[3]:a[0].dims[1];let k=[64,1,1],M={x:n.map((X,z)=>z)},E=[Math.ceil(W4(M.x.map(X=>n[X]))/k[0]),1,1];Lt("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${E}`);let D=1,B=Je.size(n),v=[{type:12,data:B},{type:12,data:g},{type:12,data:p},{type:12,data:i.strides},{type:12,data:i.dilations}];Fi(i,v),v.push(...tt(a[0].dims,a[1].dims));let S=["rank","rank"],F=a.length===3;F&&(v.push(...tt(a[2].dims)),S.push("rank")),v.push(...tt(n));let R=X=>{let z=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:g.length},{name:"pads",type:"u32",length:p.length},{name:"strides",type:"u32",length:i.strides.length},{name:"dilations",type:"u32",length:i.dilations.length}];Si(i,z);let L=1,K=Cs(a[0].dataType),d=oA("x",a[0].dataType,a[0].dims.length,D),w=oA("W",a[1].dataType,a[1].dims.length,L),e=[d,w],u=XA("result",a[0].dataType,n.length,L),y="";if(F){let O=oA("bias",a[2].dataType,a[2].dims.length,L);e.push(O),y+=` 998 fn getBiasByOutputCoords(coords : array<u32, 5>) -> ${K} { 999 return bias[${C?$A("coords",4,5):$A("coords",1,5)}]; 1000 }`}let ee=ws(D,K),T=Qi(i,ee,K);return` 1001 ${y} 1002 fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { 1003 let aIndices = array<u32, 5>(d0, d1, d2, d3, d4); 1004 return ${d.getByIndices("aIndices")}; 1005 } 1006 fn getW(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { 1007 let aIndices = array<u32, 5>(d0, d1, d2, d3, d4); 1008 return ${w.getByIndices("aIndices")}; 1009 } 1010 ${X.registerUniforms(z).declareVariables(...e,u)} 1011 ${X.mainStart()} 1012 ${X.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1013 let coords = ${u.offsetToIndices("global_idx")}; 1014 let batch = ${$A("coords",0,d.rank)}; 1015 let d2 = ${C?$A("coords",d.rank-1,d.rank):$A("coords",1,d.rank)}; 1016 let xFRCCorner = vec3<u32>(${C?$A("coords",1,d.rank):$A("coords",2,d.rank)}, 1017 ${C?$A("coords",2,d.rank):$A("coords",3,d.rank)}, 1018 ${C?$A("coords",3,d.rank):$A("coords",4,d.rank)}) * uniforms.strides - uniforms.pads; 1019 let xFCorner = xFRCCorner.x; 1020 let xRCorner = xFRCCorner.y; 1021 let xCCorner = xFRCCorner.z; 1022 let xShapeY = ${C?$A("uniforms.x_shape",1,d.rank):$A("uniforms.x_shape",2,d.rank)}; 1023 let xShapeZ = ${C?$A("uniforms.x_shape",2,d.rank):$A("uniforms.x_shape",3,d.rank)}; 1024 let xShapeW = ${C?$A("uniforms.x_shape",3,d.rank):$A("uniforms.x_shape",4,d.rank)}; 1025 let xShapeU = ${C?$A("uniforms.x_shape",4,d.rank):$A("uniforms.x_shape",1,d.rank)};
1026 let inputDepthNearestVec4 = (xShapeU / 4) * 4; 1027 let inputDepthVec4Remainder = xShapeU % 4; 1028 1029 var value = 0.0; 1030 for (var wF = 0u; wF < uniforms.filter_dims[0]; wF++) { 1031 let xF = xFCorner + wF * uniforms.dilations[0]; 1032 if (xF < 0 || xF >= xShapeY) { 1033 continue; 1034 } 1035 1036 for (var wR = 0u; wR < uniforms.filter_dims[1]; wR++) { 1037 let xR = xRCorner + wR * uniforms.dilations[1]; 1038 if (xR < 0 || xR >= xShapeZ) { 1039 continue; 1040 } 1041 1042 for (var wC = 0u; wC < uniforms.filter_dims[2]; wC++) { 1043 let xC = xCCorner + wC * uniforms.dilations[2]; 1044 if (xC < 0 || xC >= xShapeW) { 1045 continue; 1046 } 1047 1048 for (var d1 = 0u; d1 < inputDepthNearestVec4; d1 += 4) { 1049 ${C?`let xValues = vec4<f32>( 1050 getX(batch, xF, xR, xC, d1), 1051 getX(batch, xF, xR, xC, d1 + 1), 1052 getX(batch, xF, xR, xC, d1 + 2), 1053 getX(batch, xF, xR, xC, d1 + 3)); 1054 `:`let xValues = vec4<f32>( 1055 getX(batch, d1, xF, xR, xC), 1056 getX(batch, d1 + 1, xF, xR, xC), 1057 getX(batch, d1 + 2, xF, xR, xC), 1058 getX(batch, d1 + 3, xF, xR, xC)); 1059 `} 1060 let wValues = vec4<f32>( 1061 getW(d2, d1, wF, wR, wC), 1062 getW(d2, d1 + 1, wF, wR, wC), 1063 getW(d2, d1 + 2, wF, wR, wC), 1064 getW(d2, d1 + 3, wF, wR, wC)); 1065 value += dot(xValues, wValues); 1066 } 1067 if (inputDepthVec4Remainder == 1) { 1068 ${C?`value += getX(batch, xF, xR, xC, inputDepthNearestVec4) 1069 * getW(d2, inputDepthNearestVec4, wF, wR, wC);`:`value += getX(batch, inputDepthNearestVec4, xF, xR, xC) 1070 * getW(d2, inputDepthNearestVec4, wF, wR, wC);`} 1071 } else if (inputDepthVec4Remainder == 2) { 1072 ${C?`let xValues = vec2<f32>( 1073 getX(batch, xF, xR, xC, inputDepthNearestVec4), 1074 getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1)); 1075 `:`let xValues = vec2<f32>( 1076 getX(batch, inputDepthNearestVec4, xF, xR, xC), 1077 getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC)); 1078 `} 1079 let wValues = vec2<f32>( 1080 getW(d2, inputDepthNearestVec4, wF, wR, wC), 1081 getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC)); 1082 value += dot(xValues, wValues); 1083 } else if (inputDepthVec4Remainder == 3) { 1084 ${C?`let xValues = vec3<f32>( 1085 getX(batch, xF, xR, xC, inputDepthNearestVec4), 1086 getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1), 1087 getX(batch, xF, xR, xC, inputDepthNearestVec4 + 2)); 1088 `:`let xValues = vec3<f32>( 1089 getX(batch, inputDepthNearestVec4, xF, xR, xC), 1090 getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC), 1091 getX(batch, inputDepthNearestVec4 + 2, xF, xR, xC)); 1092 `} 1093 let wValues = vec3<f32>( 1094 getW(d2, inputDepthNearestVec4, wF, wR, wC), 1095 getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC), 1096 getW(d2, inputDepthNearestVec4 + 2, wF, wR, wC)); 1097 value += dot(xValues, wValues); 1098 } 1099 } 1100 } 1101 } 1102 ${F?"value = value + getBiasByOutputCoords(coords)":""}; 1103 ${T} 1104 result[global_idx] = f32(value); 1105 }`};return{name:"Conv3DNaive",shaderCache:{hint:`${i.cacheKey};${C};${D};${F}`,inputDependencies:S},getRunData:()=>({outputs:[{dims:n,dataType:a[0].dataType}],dispatchGroup:{x:E[0],y:E[1],z:E[2]},programUniforms:v}),getShaderSource:R}}}),CC,bC,x6=kA(()=>{ct(),It(),kt(),_i(),CC=(a,i,n,g)=>{let p=a.length>2,h=p?"value += b[output_channel];":"",C=a[0].dims,k=a[1].dims,M=i.format==="NHWC",E=M?n[3]:n[1],D=E/i.group,B=M&&D>=4?Wr(E):1,v=Je.size(n)/B,S=[{type:12,data:v},{type:12,data:i.dilations},{type:12,data:[i.strides[0],i.strides[1]]},{type:12,data:[i.pads[0],i.pads[1]]},{type:12,data:D}];Fi(i,S),S.push(...tt(C,[k[0],k[1],k[2],k[3]/B]));let F=p?["rank","rank","rank"]:["rank","rank"];S.push(...tt([n[0],n[1],n[2],n[3]/B]));let R=X=>{let z=XA("output",a[0].dataType,n.length,B),L=Cs(z.type.tensor),K=Qi(i,z.type.value,L),d=oA("x",a[0].dataType,C.length),w=oA("w",a[1].dataType,k.length,B),e=[d,w];p&&e.push(oA("b",a[2].dataType,a[2].dims,B));let u=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:i.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];Si(i,u);let y=M?` 1106 for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[0]; wHeight++) { 1107 let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; 1108 1109 if (xHeight < 0u || xHeight >= uniforms.x_shape[1]) { 1110 continue; 1111 } 1112 1113 for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[1]; wWidth++) { 1114 let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; 1115 if (xWidth < 0u || xWidth >= uniforms.x_shape[2]) { 1116 continue; 1117 } 1118 1119 for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[2]; wInChannel++) { 1120 let input_channel = in_channel_offset + wInChannel; 1121 let xVal = ${d.get("batch","xHeight","xWidth","input_channel")}; 1122 let wVal = ${w.get("wHeight","wWidth","wInChannel","output_channel")}; 1123 value += xVal * wVal; 1124 } 1125 } 1126 } 1127 `:` 1128 for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[1]; wInChannel++) { 1129 let input_channel = in_channel_offset + wInChannel; 1130 for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[2]; wHeight++) { 1131 let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; 1132 1133 if (xHeight < 0u || xHeight >= uniforms.x_shape[2]) { 1134 continue; 1135 } 1136 1137 for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[3]; wWidth++) { 1138 let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; 1139 if (xWidth < 0u || xWidth >= uniforms.x_shape[3]) { 1140 continue; 1141 } 1142 1143 let xVal = ${d.get("batch","input_channel","xHeight","xWidth")}; 1144 let wVal = ${w.get("output_channel","wInChannel","wHeight","wWidth")}; 1145 value += xVal * wVal; 1146 } 1147 } 1148 } 1149 `;return` 1150 ${X.registerUniforms(u).declareVariables(...e,z)} 1151 1152 ${X.mainStart()} 1153 ${X.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1154 1155 let outputIndices = ${z.offsetToIndices("global_idx")}; 1156 let batch: u32 = outputIndices[0]; 1157 let output_channel: u32 = outputIndices[${M?3:1}]; 1158 let xRCCorner: vec2<u32> = vec2<u32>(outputIndices[${M?1:2}], outputIndices[${M?2:3}]) * uniforms.strides - uniforms.pads; 1159 let group_id: u32 = output_channel * ${B} / uniforms.output_channels_per_group; 1160 var in_channel_offset = group_id * uniforms.w_shape[${M?2:1}]; 1161 1162 var value: ${z.type.value} = ${z.type.value}(0); 1163 ${y} 1164 ${h} 1165 ${K} 1166 ${z.setByOffset("global_idx","value")} 1167 }`};return{name:"GroupedConv",shaderCache:{hint:`${i.cacheKey}_${B}`,inputDependencies:F},getRunData:()=>({outputs:[{dims:g?g(n):n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:S}),getShaderSource:R}},bC=(a,i,n,g)=>{let p=a.length>2,h=Wr(n[3]),C=Wr(n[2]),k=Je.size(n)/h/C,M=[a[0].dims[0],a[0].dims[1],a[0].dims[2],a[0].dims[3]/h],E=[a[1].dims[0],a[1].dims[1],a[1].dims[2],a[1].dims[3]/h],D=[n[0],n[1],n[2],n[3]/h],B=[{type:12,data:k},{type:6,data:[i.strides[0],i.strides[1]]},{type:6,data:[i.pads[0],i.pads[1]]}];Fi(i,B),B.push(...tt(M,E,D));let v=(C-1)*i.strides[1]+E[1],S=F=>{let R=XA("output",a[0].dataType,D.length,h),X=Cs(R.type.tensor),z=Qi(i,R.type.value,X),L=oA("x",a[0].dataType,M.length,h),K=oA("w",a[1].dataType,E.length,h),d=[L,K];p&&d.push(oA("b",a[2].dataType,a[2].dims,h));let w=p?"value += b[output_channel];":"",e=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return Si(i,e),` 1168 ${F.registerUniforms(e).declareVariables(...d,R)} 1169 ${F.mainStart()} 1170 ${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1171 let width0 = uniforms.output_shape[3]; 1172 let output_channel = global_idx % width0; 1173 var index1 = global_idx / width0; 1174 let width1 = uniforms.output_shape[2] / ${C}u;
1175 let col = (index1 % width1) * ${C}u; 1176 index1 = index1 / width1; 1177 let row = index1 % uniforms.output_shape[1]; 1178 let batch = index1 / uniforms.output_shape[1]; 1179 1180 let x_corner = vec2<i32>(i32(row), i32(col)) * uniforms.strides - uniforms.pads; 1181 1182 var x_vals: array<${L.type.value}, ${v}>; 1183 var values: array<${R.type.value}, ${C}>; 1184 let input_channel = output_channel; 1185 // Use constant instead of uniform can give better performance for w's height/width. 1186 for (var w_height: u32 = 0u; w_height < ${E[0]}; w_height++) { 1187 let x_height = x_corner.x + i32(w_height); 1188 if (x_height >= 0 && u32(x_height) < uniforms.x_shape[1]) { 1189 for (var i = 0; i < ${v}; i++) { 1190 let x_width = x_corner.y + i; 1191 if (x_width >= 0 && u32(x_width) < uniforms.x_shape[2]) { 1192 x_vals[i] = ${L.get("batch","u32(x_height)","u32(x_width)","input_channel")}; 1193 } else { 1194 x_vals[i] = ${L.type.value}(0); 1195 } 1196 } 1197 for (var w_width: u32 = 0u; w_width < ${E[1]}; w_width++) { 1198 let w_val = ${K.get("w_height","w_width","0","output_channel")}; 1199 for (var i = 0u; i < ${C}u; i++) { 1200 values[i] = fma(x_vals[i * u32(uniforms.strides[1]) + w_width], w_val, values[i]); 1201 } 1202 } 1203 } 1204 } 1205 1206 for (var i = 0u; i < ${C}u; i++) { 1207 var value = values[i]; 1208 ${w} 1209 ${z} 1210 ${R.set("batch","row","col + i","output_channel","value")}; 1211 } 1212 }`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${i.cacheKey};${h};${C};${v};${E[0]};${E[1]}`,inputDependencies:p?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:g?g(n):n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(k/64)},programUniforms:B}),getShaderSource:S}}}),H4,T0,U4,P0,fc,I2,K4,X4,gc,B6=kA(()=>{It(),E6(),v6(),Lc(),x6(),_i(),Nc(),ri(),H4=(a,i,n,g,p,h)=>{let C=a[0],k=a.slice(h?1:2,h?3:4),M=k.length,E=i[0],D=i.slice(2).map((v,S)=>v+(v-1)*(n[S]-1)),B=k.map((v,S)=>v+g[S]+g[S+M]).map((v,S)=>Math.floor((v-D[S]+p[S])/p[S]));return B.splice(0,0,C),B.splice(h?3:1,0,E),B},T0=[2,3,1,0],U4=(a,i)=>{if(!a||a.length!==2&&a.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(a[0].dims.length>5)throw new Error("greater than 5D is not supported");if(a[0].dims.length!==a[1].dims.length)throw new Error("filter does not have same dimension as input");let n=a[0].dims[i.format==="NHWC"?a[0].dims.length-1:1],g=a[1].dims[1]*i.group;if(n!==g)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(a.length===3&&(a[2].dims.length!==1||a[1].dims[0]!==a[2].dims[0]))throw new Error("invalid bias");let p=a[0].dims.length-2;if(i.dilations.length!==p)throw new Error(`dilations should be ${p}D`);if(i.strides.length!==p)throw new Error(`strides should be ${p}D`);if(i.pads.length!==p*2)throw new Error(`pads should be ${p*2}D`);if(i.kernelShape.length!==0&&i.kernelShape.length!==a[1].dims.length-2)throw new Error("invalid kernel shape")},P0=(a,i)=>{let n=a.kernelShape.slice();n.length<i[1].dims.length-2&&n.push(...Array(i[1].dims.length-2-n.length).fill(0));for(let h=2;h<i[1].dims.length;++h)n[h-2]===0&&(n[h-2]=i[1].dims[h]);let g=a.pads.slice();W0.adjustPadsBasedOnAutoPad(i[0].dims,a.strides,a.dilations,n,g,a.format==="NHWC",a.autoPad);let p=Object.assign({},a);return Object.assign(p,{kernelShape:n,pads:g}),p},fc=a=>{let i=Oc(a),n=a.format,g=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][a.auto_pad],p=a.dilations,h=a.group,C=a.kernel_shape,k=a.pads,M=a.strides,E=a.w_is_const();return{autoPad:g,format:n,dilations:p,group:h,kernelShape:C,pads:k,strides:M,wIsConst:E,...i,cacheKey:`${a.format};${i.activation};`}},I2=(a,i,n,g)=>{let p=n.format==="NHWC",h=H4(i[0].dims,i[1].dims,n.dilations,n.pads,n.strides,p);if(n.group!==1){let e=[i[0]];if(p){let u=a.kernelCustomData.wT??a.compute(ma(i[1],T0),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];n.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=u),e.push(u)}else e.push(i[1]);i.length===3&&e.push(i[2]),!a.adapterInfo.isArchitecture("ampere")&&p&&i[1].dims[0]===n.group&&i[1].dims[1]===1&&n.dilations[0]===1&&n.dilations[1]===1?a.compute(bC(e,n,h,g),{inputs:e}):a.compute(CC(e,n,h,g),{inputs:e});return}let C=i.length===3,k=i[0].dims[p?1:2],M=i[0].dims[p?2:3],E=i[0].dims[p?3:1],D=i[1].dims[2],B=i[1].dims[3],v=h[p?1:2],S=h[p?2:3],F=h[p?3:1],R=p&&D===k&&B===M&&n.pads[0]===0&&n.pads[1]===0;if(R||D===1&&B===1&&n.dilations[0]===1&&n.dilations[1]===1&&n.strides[0]===1&&n.strides[1]===1&&n.pads[0]===0&&n.pads[1]===0){let e=h[0],u,y,ee,T=[];if(p){let se=a.kernelCustomData.wT??a.compute(ma(i[1],T0),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];if(n.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=se),R){let we=k*M*E;u=i[0].reshape([1,e,we]),y=se.reshape([1,we,F]),ee=[1,e,F]}else u=i[0].reshape([e,k*M,E]),y=se.reshape([1,E,F]),ee=[e,v*S,F];T.push(u),T.push(y)}else u=i[0].reshape([e,E,k*M]),y=i[1].reshape([1,F,E]),ee=[e,F,v*S],T.push(y),T.push(u);C&&T.push(i[2]);let O=ee[2],ge=T[0].dims[T[0].dims.length-1];O<8&&ge<8?a.compute(zc(T,n,h,ee,p,g),{inputs:T}):a.compute(Y0(T,n,h,ee,p,g),{inputs:T});return}
vendor: 23,478 bytes, lines 1212-1363
1212let X=!0,z=a.kernelCustomData.wT??a.compute(ma(i[1],T0),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];n.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=z);let L=[i[0],z];C&&L.push(i[2]);let K=p?v*S:F,d=p?F:v*S,w=D*B*E;a.compute(pC(L,n,h,K,d,w,C,X,g),{inputs:L})},K4=(a,i)=>{let n=i.format==="NHWC",g=[a.inputs[0].reshape(n?[a.inputs[0].dims[0],1,a.inputs[0].dims[1],a.inputs[0].dims[2]]:[a.inputs[0].dims[0],a.inputs[0].dims[1],1,a.inputs[0].dims[2]]),a.inputs[1].reshape([a.inputs[1].dims[0],a.inputs[1].dims[1],1,a.inputs[1].dims[2]])];a.inputs.length===3&&g.push(a.inputs[2]);let p=[0,i.pads[0],0,i.pads[1]],h=[1].concat(i.strides),C=[1].concat(i.dilations),k=[1].concat(i.kernelShape),M=P0({...i,pads:p,strides:h,dilations:C,kernelShape:k},g);I2(a,g,M,E=>n?[E[0],E[2],E[3]]:[E[0],E[1],E[3]])},X4=(a,i,n)=>{let g=n.format==="NHWC"?"channelsLast":"channelsFirst",p=P0(n,i),h=n.autoPad==="NOTSET"?n.pads:n.autoPad,C=mC(i[0].dims,i[1].dims,n.strides,n.dilations,h,!1,g);a.compute(hC(i,p,C.outShape,[C.filterDepth,C.filterHeight,C.filterWidth],[C.padInfo.front,C.padInfo.top,C.padInfo.left],g))},gc=(a,i)=>{if(U4(a.inputs,i),a.inputs[0].dims.length===3)K4(a,i);else if(a.inputs[0].dims.length===5)X4(a,a.inputs,i);else{let n=P0(i,a.inputs);I2(a,a.inputs,n)}}}),IC,y6=kA(()=>{ct(),Tn(),It(),kt(),IC=(a,i,n)=>{let g=a.length>2,p=i.outputShape,h=i.format==="NHWC",C=i.group,k=a[1].dims,M=k[2]/C,E=k[3],D=h?Wr(M):1,B=h&&E===1&&M>=4,v=B?Math.floor(M/4)*4:Math.floor(M/D)*D,S=M-v,F=h?Wr(E):1,R=h?E===1?D:F:1,X=Je.size(p)/F,z=[Math.ceil(X/64),1,1];Lt("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${z}`);let L=["rank","rank"],K=[i.strides[0],i.strides[1]],d=[i.kernelShape[h?1:2],i.kernelShape[h?2:3]],w=[i.dilations[0],i.dilations[1]],e=[d[0]+(i.dilations[0]<=1?0:(i.kernelShape[h?1:2]-1)*(i.dilations[0]-1)),d[1]+(i.dilations[1]<=1?0:(i.kernelShape[h?2:3]-1)*(i.dilations[1]-1))],u=[e[0]-1-Math.floor((i.pads[0]+i.pads[2])/2),e[1]-1-Math.floor((i.pads[1]+i.pads[3])/2)],y=[{type:12,data:X},{type:12,data:K},{type:12,data:d},{type:12,data:w},{type:12,data:e},{type:6,data:u},{type:12,data:v},{type:12,data:M},{type:12,data:E},...tt(a[0].dims,a[1].dims)];g&&(y.push(...tt(a[2].dims)),L.push("rank")),y.push(...tt(p));let ee=T=>{let O=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:K.length},{name:"filter_dims",type:"u32",length:d.length},{name:"dilations",type:"u32",length:d.length},{name:"effective_filter_dims",type:"u32",length:e.length},{name:"pads",type:"i32",length:u.length},{name:"input_channels_per_group_int",type:"u32"},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],ge=Cs(a[0].dataType),se=h?1:2,we=h?2:3,be=h?3:1,Be=oA("W",a[1].dataType,a[1].dims.length,R),ve=oA("Dy",a[0].dataType,a[0].dims.length,D),De=[ve,Be];g&&De.push(oA("bias",a[2].dataType,[p[be]].length,F));let je=XA("result",a[0].dataType,p.length,F),Le=()=>{let ie="";if(B)D===4?ie+=` 1213 let xValue = ${ve.getByOffset("x_offset")}; 1214 let wValue = ${Be.getByOffset("w_offset")}; 1215 dotProd = dotProd + dot(xValue, wValue); 1216 x_offset += 1u; 1217 w_offset += 1u;`:D===2?ie+=` 1218 dotProd = dotProd + dot(vec4<${ge}>(${ve.getByOffset("x_offset")}, ${ve.getByOffset("x_offset + 1u")}), vec4<${ge}>(${Be.getByOffset("w_offset")}, ${Be.getByOffset("w_offset + 1u")})); 1219 x_offset += 2u; 1220 w_offset += 2u;`:D===1&&(ie+=` 1221 dotProd = dotProd + dot(vec4<${ge}>(${ve.getByOffset("x_offset")}, ${ve.getByOffset("x_offset + 1u")}, ${ve.getByOffset("x_offset + 2u")}, ${ve.getByOffset("x_offset + 3u")}), vec4<${ge}>(${Be.getByOffset("w_offset")}, ${Be.getByOffset("w_offset + 1u")}, ${Be.getByOffset("w_offset + 2u")}, ${Be.getByOffset("w_offset + 3u")})); 1222 x_offset += 4u; 1223 w_offset += 4u;`);else if(ie+=` 1224 let xValue = ${h?ve.getByOffset(`${ve.indicesToOffset(`${ve.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${D}`):ve.get("batch","inputChannel","idyR","idyC")}; 1225 `,D===1)ie+=` 1226 let w_offset = ${Be.indicesToOffset(`${Be.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel, wOutChannel)`)}; 1227 let wValue = ${Be.getByOffset(`w_offset / ${R}`)}; 1228 dotProd = dotProd + xValue * wValue;`;else for(let Ie=0;Ie<D;Ie++)ie+=` 1229 let wValue${Ie} = ${Be.getByOffset(`${Be.indicesToOffset(`${Be.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel + ${Ie}, wOutChannel)`)} / ${R}`)}; 1230 dotProd = dotProd + xValue[${Ie}] * wValue${Ie};`;return ie},Pe=()=>{if(S===0)return"";if(!B)throw new Error(`packInputAs4 ${B} is not true.`);let ie="";if(D===1){ie+="dotProd = dotProd";for(let Ie=0;Ie<S;Ie++)ie+=` 1231 + ${ve.getByOffset(`x_offset + ${Ie}`)} * ${Be.getByOffset(`w_offset + ${Ie}`)}`;ie+=";"}else if(D===2){if(S!==2)throw new Error(`Invalid inputChannelsRemainder ${S}.`);ie+=` 1232 let xValue = ${ve.getByOffset("x_offset")}; 1233 let wValue = ${Be.getByOffset("w_offset")}; 1234 dotProd = dotProd + dot(xValue, wValue);`}return ie},me=` 1235 let outputIndices = ${je.offsetToIndices(`global_idx * ${F}`)}; 1236 let batch = ${je.indicesGet("outputIndices",0)}; 1237 let d1 = ${je.indicesGet("outputIndices",be)}; 1238 let r = ${je.indicesGet("outputIndices",se)}; 1239 let c = ${je.indicesGet("outputIndices",we)}; 1240 let dyCorner = vec2<i32>(i32(r), i32(c)) - uniforms.pads; 1241 let dyRCorner = dyCorner.x; 1242 let dyCCorner = dyCorner.y; 1243 let groupId = d1 / uniforms.output_channels_per_group; 1244 let wOutChannel = d1 - groupId * uniforms.output_channels_per_group; 1245 // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). 1246 // ? = to be determined. : = across all values in that axis. 1247 var dotProd = ${je.type.value}(0.0); 1248 var wR: u32 = 0; 1249 if (uniforms.dilations.x == 1) { 1250 // Minimum wR >= 0 that satisfies (dyRCorner + wR) % (uniforms.strides.x) == 0 1251 wR = u32(((dyRCorner + i32(uniforms.strides.x) - 1) / i32(uniforms.strides.x)) * i32(uniforms.strides.x) - dyRCorner); 1252 } 1253 for (; wR < uniforms.effective_filter_dims.x; wR = wR + 1) { 1254 if (wR % uniforms.dilations.x != 0) { 1255 continue; 1256 } 1257 let dyR = (${ge}(dyRCorner) + ${ge}(wR)) / ${ge}(uniforms.strides[0]); 1258 let wRPerm = uniforms.filter_dims.x - 1 - wR / uniforms.dilations.x; 1259 if (dyR < 0.0 || dyR >= ${ge}(uniforms.Dy_shape[${se}]) || fract(dyR) > 0.0 || 1260 wRPerm < 0) { 1261 continue; 1262 } 1263 let idyR: u32 = u32(dyR); 1264 var wC: u32 = 0; 1265 if (uniforms.dilations.y == 1) { 1266 // Minimum wC >= 0 that satisfies (dyCCorner + wC) % (uniforms.strides.y) == 0 1267 wC = u32(((dyCCorner + i32(uniforms.strides.y) - 1) / i32(uniforms.strides.y)) * i32(uniforms.strides.y) - dyCCorner); 1268 } 1269 for (; wC < uniforms.effective_filter_dims.y; wC = wC + 1) { 1270 if (wC % uniforms.dilations.y != 0) { 1271 continue; 1272 } 1273 let dyC = (${ge}(dyCCorner) + ${ge}(wC)) / ${ge}(uniforms.strides.y); 1274 let wCPerm = uniforms.filter_dims.y - 1 - wC / uniforms.dilations.y; 1275 if (dyC < 0.0 || dyC >= ${ge}(uniforms.Dy_shape[${we}]) || 1276 fract(dyC) > 0.0 || wCPerm < 0) { 1277 continue; 1278 } 1279 let idyC: u32 = u32(dyC); 1280 var inputChannel = groupId * uniforms.input_channels_per_group; 1281 ${B?` 1282 var x_offset = ${ve.indicesToOffset(`${ve.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${D}; 1283 var w_offset = ${Be.indicesToOffset(`${Be.type.indices}(wRPerm, wCPerm, inputChannel, wOutChannel)`)} / ${R}; 1284 `:""} 1285 for (var d2: u32 = 0; d2 < uniforms.input_channels_per_group_int; d2 = d2 + ${B?4:D}) { 1286 ${Le()} 1287 inputChannel = inputChannel + ${B?4:D}; 1288 } 1289 ${Pe()} 1290 wC = wC + uniforms.strides.y - 1; 1291 } 1292 wR = wR + uniforms.strides[0] - 1; 1293 } 1294 let value = dotProd${g?` + bias[d1 / ${F}]`:""}; 1295 ${je.setByOffset("global_idx","value")}; 1296 `;return` 1297 ${T.registerUniforms(O).declareVariables(...De,je)} 1298 ${T.mainStart()} 1299 ${T.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}; 1300 ${me}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${i.cacheKey};${D}${R}${F}${B}${S}`,inputDependencies:L},getRunData:()=>({dispatchGroup:{x:z[0],y:z[1],z:z[2]},outputs:[{dims:n?n(p):p,dataType:a[0].dataType}],programUniforms:y}),getShaderSource:ee}}}),Z4,J4,q4,w2,wC,$4,k2,ep,kC,D6=kA(()=>{y6(),_i(),ri(),Z4=(a,i,n,g,p,h)=>(a-1)*i+n+(g-1)*p+1-h,J4=(a,i,n,g,p)=>{let h=Math.floor(a/2);i==="SAME_UPPER"?(n[g]=h,n[p]=a-h):i==="SAME_LOWER"&&(n[g]=a-h,n[p]=h)},q4=(a,i,n,g,p,h,C,k,M,E)=>{let D=a.length-2,B=E.length===0;M.length<D&&M.push(...Array(D-M.length).fill(0));let v=a[0],S=i[k?3:1]*p;for(let F=0,R=a.length-D-(k?1:0);F<D;++F,++R){let X=a[R],z=B?X*C[F]:E[F],L=Z4(X,C[F],h[F],i[R],n[F],z);J4(L,g,h,F,F+D),B&&E.push(C[F]*(X-1)+M[F]+(i[R]-1)*n[F]+1-h[F]-h[F+D])}E.splice(0,0,v),E.splice(k?3:1,0,S)},w2=(a,i)=>{let n=a.kernelShape.slice();if(a.kernelShape.length===0||a.kernelShape.reduce((B,v)=>B*v,1)===0){n.length=0;for(let B=2;B<i[1].dims.length;++B)n.push(i[1].dims[B])}let g=a.format==="NHWC";n.splice(0,0,i[1].dims[0]),n.splice(g?3:1,0,i[1].dims[1]);let p=a.pads.slice(),h=a.outputShape.slice(),C=a.outputPadding.slice(),k=i[0].dims,M=a.dilations.slice();if(M.reduce((B,v)=>B+v,0)===0){let B=i[0].dims.length-2;M=new Array(B).fill(1)}let E=a.strides.slice();if(E.reduce((B,v)=>B+v,0)===0){let B=i[0].dims.length-2;E=new Array(B).fill(1)}q4(k,n,M,a.autoPad,a.group,p,E,g,C,h);let D=Object.assign({},a);return Object.assign(D,{kernelShape:n,pads:p,outputPadding:C,outputShape:h,dilations:M,strides:E}),D},wC=a=>{let i=Oc(a),n=a.format,g=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof a.autoPad>"u"?0:a.autoPad],p=a.dilations,h=a.group,C=a.kernelShape,k=a.pads,M=a.strides,E=a.wIsConst(),D=a.outputPadding,B=a.outputShape;return{autoPad:g,format:n,dilations:p,group:h,kernelShape:C,outputPadding:D,outputShape:B,pads:k,strides:M,wIsConst:E,...i,cacheKey:`${a.format};${i.activation};`}},$4=(a,i)=>{if(!a||a.length!==2&&a.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(a[0].dims.length!==4&&a[0].dims.length!==3)throw new Error("currently only support 2-dimensional conv");if(a[0].dims.length!==a[1].dims.length)throw new Error("filter does not have same dimension as input");let n=a[0].dims[i.format==="NHWC"?a[0].dims.length-1:1],g=a[1].dims[0];if(n!==g)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let p=a[1].dims[1]*i.group;if(a.length===3&&(a[2].dims.length!==1||a[2].dims[0]!==p))throw new Error("invalid bias");let h=a[0].dims.length-2;if(i.dilations.reduce((C,k)=>C+k,0)>0&&i.dilations.length!==h)throw new Error(`dilations should be ${h}D`);if(i.strides.reduce((C,k)=>C+k,0)>0&&i.strides.length!==h)throw new Error(`strides should be ${h}D`);if(i.pads.reduce((C,k)=>C+k,0)>0&&i.pads.length!==h*2)throw new Error(`pads should be ${h*2}D`);if(i.outputPadding.length!==h&&i.outputPadding.length!==0)throw new Error(`output_padding should be ${h}D`);if(i.kernelShape.reduce((C,k)=>C+k,0)>0&&i.kernelShape.length!==0&&i.kernelShape.length!==a[1].dims.length-2)throw new Error("invalid kernel shape");if(i.outputShape.length!==0&&i.outputShape.length!==a[0].dims.length-2)throw new Error("invalid output shape")},k2=(a,i,n,g)=>{let p=a.kernelCustomData.wT??a.compute(ma(i[1],[2,3,0,1]),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];n.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=p);let h=[i[0],p];i.length===3&&h.push(i[2]),a.compute(IC(h,n,g),{inputs:h})},ep=(a,i)=>{let n=i.format==="NHWC",g=[a.inputs[0].reshape(n?[a.inputs[0].dims[0],1,a.inputs[0].dims[1],a.inputs[0].dims[2]]:[a.inputs[0].dims[0],a.inputs[0].dims[1],1,a.inputs[0].dims[2]]),a.inputs[1].reshape([a.inputs[1].dims[0],a.inputs[1].dims[1],1,a.inputs[1].dims[2]])];a.inputs.length===3&&g.push(a.inputs[2]);let p=i.kernelShape;(p.length===0||p[0]===0)&&(p=[a.inputs[1].dims[2]]);let h=i.dilations;(h.length===0||h[0]===0)&&(h=[1]);let C=i.strides;(C.length===0||C[0]===0)&&(C=[1]);let k=i.pads;k.length===0&&(k=[0,0]),k=[0,k[0],0,k[1]],C=[1].concat(C),h=[1].concat(h),p=[1].concat(p);let M=i.outputPadding;M=[0].concat(M);let E=w2({...i,pads:k,strides:C,dilations:h,kernelShape:p,outputPadding:M},g);k2(a,g,E,D=>n?[D[0],D[2],D[3]]:[D[0],D[1],D[3]])},kC=(a,i)=>{if($4(a.inputs,i),a.inputs[0].dims.length===3)ep(a,i);else{let n=w2(i,a.inputs);k2(a,a.inputs,n)}}}),Ap,MC,EC,T6=kA(()=>{ct(),It(),Ur(),kt(),Ap=(a,i,n,g)=>{let p=Je.size(i),h=i.length,C=oA("input",a,h),k=XA("output",a,h),M=n.dataType===6?n.getInt32Array()[0]:Number(n.getBigInt64Array()[0]),E=Je.normalizeAxis(M,h),D=B=>{let v=` i32(${C.indicesGet("inputIndices","uniforms.axis")}) `,S=$A("uniforms.input_shape","uniforms.axis",h),F=g.reverse?v+(g.exclusive?" + 1":""):"0",R=g.reverse?S:v+(g.exclusive?"":" + 1");return` 1301 ${B.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(C,k)} 1302 ${B.mainStart()} 1303 ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 1304 var inputIndices = ${k.offsetToIndices("global_idx")}; 1305 var sum = ${k.type.value}(0); 1306 let first : i32 = ${F}; 1307 let last : i32 = ${R}; 1308 for (var i : i32 = first; i < last; i++) { 1309 ${C.indicesSet("inputIndices","uniforms.axis","u32(i)")}; 1310 sum = sum + ${C.getByIndices("inputIndices")}; 1311 } 1312 ${k.setByOffset("global_idx","sum")}; 1313 }`};return{name:"CumSum",shaderCache:{hint:g.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:i,dataType:a}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:[{type:12,data:p},{type:12,data:E},...tt(i,i)]}),getShaderSource:D}},MC=(a,i)=>{let n=a.inputs[0].dims,g=a.inputs[0].dataType,p=a.inputs[1];a.compute(Ap(g,n,p,i),{inputs:[0]})},EC=a=>{let i=a.exclusive===1,n=a.reverse===1;return $t({exclusive:i,reverse:n})}}),tp,rp,sp,vC,xC,P6=kA(()=>{ct(),It(),Ur(),kt(),tp=a=>{if(!a||a.length!==1)throw new Error("DepthToSpace requires 1 input.");if(a[0].dims.length!==4)throw new Error("DepthToSpace requires 4D input.")},rp=(a,i,n,g)=>{let p=[];p.push(`fn perm(i: ${g.type.indices}) -> ${n.type.indices} { 1314 var a: ${n.type.indices};`);for(let h=0;h<i;++h)p.push(n.indicesSet("a",a[h],`i[${h}]`));return p.push("return a;}"),p.join(` 1315`)},sp=(a,i)=>{let n,g,p,h,C,k,M=i.format==="NHWC",E=i.blocksize,D=i.mode==="DCR";M?([n,g,p,h]=a.dims,C=D?[n,g,p,E,E,h/E**2]:[n,g,p,h/E**2,E,E],k=D?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([n,g,p,h]=[a.dims[0],a.dims[2],a.dims[3],a.dims[1]],C=D?[n,E,E,h/E**2,g,p]:[n,h/E**2,E,E,g,p],k=D?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let B=a.reshape(C),v=B.dims.length,S=a.dataType,F=oA("a",S,v),R=XA("output",S,v),X=z=>` 1316 ${z.registerUniform("output_size","u32").declareVariables(F,R)} 1317 1318 ${rp(k,v,F,R)} 1319 1320 ${z.mainStart()} 1321 ${z.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1322 1323 let indices = ${R.offsetToIndices("global_idx")}; 1324 let aIndices = perm(indices); 1325 1326 ${R.setByOffset("global_idx",F.getByIndices("aIndices"))} 1327 }`;return{name:"DepthToSpace",shaderCache:{hint:`${a.dims};${i.blocksize};${i.mode}`,inputDependencies:["rank"]},getRunData:z=>{let L=M?[n,g*E,p*E,h/E**2]:[n,h/E**2,g*E,p*E],K=Je.size(L),d=B.dims,w=Je.sortBasedOnPerm(d,k);return{outputs:[{dims:L,dataType:z[0].dataType}],dispatchGroup:{x:Math.ceil(K/64)},programUniforms:[{type:12,data:K},...tt(d,w)]}},getShaderSource:X}},vC=(a,i)=>{tp(a.inputs),a.compute(sp(a.inputs[0],i))},xC=a=>$t({blocksize:a.blocksize,mode:a.mode,format:a.format})}),G0,_o,M2,ap,np,ip,op,E2,lp,BC,yC,G6=kA(()=>{ct(),It(),Ur(),kt(),G0="[a-zA-Z]|\\.\\.\\.",_o="("+G0+")+",M2="^"+_o+"$",ap="("+_o+",)*"+_o,np="^"+ap+"$",ip=class{constructor(a=-1){this.symbolToIndices=new Map,this.inputIndex=a}addSymbol(a,i){let n=this.symbolToIndices.get(a);n===void 0?n=[i]:n.push(i),this.symbolToIndices.set(a,n)}},op=class{constructor(a,i){var p;this.equation=i,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[n,g]=i.includes("->")?i.split("->",2):[i,""];if(!n.match(RegExp(np)))throw new Error("Invalid LHS term");if(n.split(",").forEach((h,C)=>{let k=a[C].dims.slice();if(!h.match(RegExp(M2)))throw new Error("Invalid LHS term");let M=this.processTerm(h,!0,k,C);this.lhs.push(M)}),g==="")g+=[...this.symbolToInfo.entries()].filter(([h,C])=>C.count===1||h==="...").map(([h])=>h).join("");else if(!g.match(RegExp(_o)))throw new Error("Invalid RHS");(p=g.match(RegExp(G0,"g")))==null||p.forEach(h=>{if(h==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let C=this.symbolToInfo.get(h);if(C===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(C.dimValue)}}),this.rhs=this.processTerm(g,!1,this.outputDims)}addSymbol(a,i,n){let g=this.symbolToInfo.get(a);if(g!==void 0){if(g.dimValue!==i&&g.count!==1)throw new Error("Dimension mismatch");g.count++,g.inputIndices.push(n)}else g={count:1,dimValue:i,inputIndices:[n]};this.symbolToInfo.set(a,g)}processTerm(a,i,n,g=-1){let p=n.length,h=!1,C=[],k=0;if(!a.match(RegExp(M2))&&!i&&a!=="")throw new Error("Invalid LHS term");let M=a.match(RegExp(G0,"g")),E=new ip(g);return M==null||M.forEach((D,B)=>{if(D==="..."){if(h)throw new Error("Only one ellipsis is allowed per input term");h=!0;let v=p-M.length+1;if(v<0)throw new Error("Ellipsis out of bounds");if(C=n.slice(k,k+v),this.hasEllipsis){if(this.ellipsisDims.length!==C.length||this.ellipsisDims.toString()!==C.toString())throw new Error("Ellipsis dimensions mismatch")}else if(i)this.hasEllipsis=!0,this.ellipsisDims=C;else throw new Error("Ellipsis must be specified in the LHS");for(let S=0;S<C.length;S++){let F=String.fromCharCode(48+S);E.addSymbol(F,B+S),this.addSymbol(F,n[k++],g)}}else E.addSymbol(D,B+(this.hasEllipsis?this.ellipsisDims.length-1:0)),this.addSymbol(D,n[k++],g)}),E}},E2=a=>a+"_max",lp=(a,i,n,g)=>{let p=a.map(E=>E.length).map((E,D)=>oA(`input${D}`,i,E)),h=Je.size(g),C=XA("output",i,g.length),k=[...n.symbolToInfo.keys()].filter(E=>!n.rhs.symbolToIndices.has(E)),M=E=>{let D=[],B="var prod = 1.0;",v="var sum = 0.0;",S="sum += prod;",F=[],R=[],X=[],z=[],L=n.symbolToInfo.size===n.rhs.symbolToIndices.size;n.symbolToInfo.forEach((d,w)=>{var e;if(n.rhs.symbolToIndices.has(w)){let u=(e=n.rhs.symbolToIndices.get(w))==null?void 0:e[0];u!==void 0&&n.lhs.forEach((y,ee)=>{if(d.inputIndices.includes(ee)){let T=y.symbolToIndices.get(w);if(T===void 0)throw new Error("Invalid symbol error");T.forEach(O=>{D.push(`${p[ee].indicesSet(`input${ee}Indices`,O,C.indicesGet("outputIndices",u))}`)})}})}else n.lhs.forEach((u,y)=>{if(d.inputIndices.includes(y)){let ee=u.symbolToIndices.get(w);if(ee===void 0)throw new Error("Invalid symbol error");ee.forEach(T=>{F.push(`${p[y].indicesSet(`input${y}Indices`,T,`${w}`)}`)}),z.push(`prod *= ${p[y].getByIndices(`input${y}Indices`)};`)}}),R.push(`for(var ${w}: u32 = 0; ${w} < uniforms.${E2(w)}; ${w}++) {`),X.push("}")});let K=L?[...D,`let sum = ${p.map((d,w)=>d.getByIndices(`input${w}Indices`)).join(" * ")};`]:[...D,v,...R,...F,B,...z,S,...X];return` 1328 ${E.registerUniforms(k.map(d=>({name:`${E2(d)}`,type:"u32"}))).registerUniform("outputSize","u32").declareVariables(...p,C)} 1329 1330 ${E.mainStart()} 1331 ${E.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 1332 var outputIndices = ${C.offsetToIndices("global_idx")}; 1333 ${p.map((d,w)=>`var input${w}Indices: ${p[w].type.indices};`).join(` 1334`)} 1335 ${K.join(` 1336`)}; 1337 ${C.setByOffset("global_idx","sum")}; 1338 }`};return{name:"Einsum",shaderCache:{hint:n.equation,inputDependencies:a.map(()=>"rank")},getRunData:()=>{let E=k.filter(B=>n.symbolToInfo.has(B)).map(B=>{var v;return{type:12,data:((v=n.symbolToInfo.get(B))==null?void 0:v.dimValue)||0}});E.push({type:12,data:h});let D=a.map((B,v)=>[...tt(B)]).reduce((B,v)=>B.concat(v),E);return D.push(...tt(g)),{outputs:[{dims:g,dataType:i}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:D}},getShaderSource:M}},BC=(a,i)=>{let n=new op(a.inputs,i.equation),g=n.outputDims,p=a.inputs.map((h,C)=>h.dims);a.compute(lp(p,a.inputs[0].dataType,n,g))},yC=a=>{let i=a.equation.replace(/\s+/g,"");return $t({equation:i})}}),cp,v2,up,dp,DC,Q6=kA(()=>{ct(),It(),kt(),cp=a=>{if(!a||a.length!==2)throw new Error("Expand requires 2 input.");let i=a[0].dims,n=Array.from(a[1].getBigInt64Array(),Number),g=n.length<i.length?0:n.length-i.length,p=i.length<n.length?0:i.length-n.length;for(;g<n.length&&p<i.length;++g,++p)if(n[g]!==i[p]&&n[g]!==1&&i[p]!==1)throw new Error("Expand requires shape to be broadcastable to input")},v2=(a,i)=>{let n=a.length-i.length,g=[];for(let p=0;p<n;++p)g.push(a[p]);for(let p=0;p<i.length;++p)g.push(i[p]===1?a[p+n]:i[p]);return g},up=(a,i)=>a.length>i.length?v2(a,i):v2(i,a),dp=a=>{let i=a[0].dims,n=Array.from(a[1].getBigInt64Array(),Number),g=up(i,n),p=a[0].dataType,h=p===9||Je.size(i)===1,C=p===9||i.length>0&&i[i.length-1]%4===0?4:1,k=h||g.length>0&&g[g.length-1]%4===0?4:1,M=Math.ceil(Je.size(g)/k),E=B=>{let v=oA("input",p,i.length,C),S=XA("output",p,g.length,k),F;if(p===9){let R=(X,z,L="")=>` 1339 let outputIndices${z} = ${S.offsetToIndices(`outputOffset + ${z}u`)}; 1340 let offset${z} = ${v.broadcastedIndicesToOffset(`outputIndices${z}`,S)}; 1341 let index${z} = offset${z} / 4u; 1342 let component${z} = offset${z} % 4u; 1343 ${X}[${z}] = ${L}(${v.getByOffset(`index${z}`)}[component${z}]); 1344 `;F=` 1345 let outputOffset = global_idx * ${k}; 1346 var data = vec4<u32>(0); 1347 ${R("data",0,"u32")} 1348 ${R("data",1,"u32")} 1349 ${R("data",2,"u32")} 1350 ${R("data",3,"u32")} 1351 ${S.setByOffset("global_idx","data")} 1352 }`}else F=` 1353 let outputIndices = ${S.offsetToIndices(`global_idx * ${k}`)}; 1354 let inputOffset = ${v.broadcastedIndicesToOffset("outputIndices",S)}; 1355 let data = ${S.type.value}(${v.getByOffset(`inputOffset / ${C}`)}); 1356 ${S.setByOffset("global_idx","data")} 1357 }`;return` 1358 ${B.registerUniform("vec_size","u32").declareVariables(v,S)} 1359 ${B.mainStart()} 1360 ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} 1361 ${F}`},D=[{type:12,data:M},...tt(i,g)];return{name:"Expand",shaderCache:{hint:`${g.length};${C}${k}`,inputDependencies:["rank"]},getShaderSource:E,getRunData:()=>({outputs:[{dims:g,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(M/64)},programUniforms:D})}},DC=a=>{cp(a.inputs),a.compute(dp(a.inputs),{inputs:[0]})}}),fp,TC,F6=kA(()=>{ct(),It(),kt(),Sc(),fp=a=>{let i=a[0].dataType,n=Je.size(a[0].dims),g=Je.size(a[1].dims),p=g%4===0,h=C=>{let k=oA("x",i,[1],4),M=oA("bias",i,[1],4),E=XA("y",i,[1],4),D=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],B=S=>` 1362 let bias${S}_offset: u32 = (global_idx * 4 + ${S}) % uniforms.bias_size; 1363 let bias${S} = ${M.getByOffset(`bias${S}_offset / 4`)}[bias${S}_offset % 4];`,v=p?`
1364 let bias = ${M.getByOffset("global_idx % (uniforms.bias_size / 4)")};`:`${B(0)}${B(1)}${B(2)}${B(3)} 1365 let bias = ${k.type.value}(bias0, bias1, bias2, bias3);`;return`${C.registerUniforms(D).declareVariables(k,M,E)} 1366 1367 ${lc(Qs(i))} 1368 1369 ${C.mainStart(uo)} 1370 ${C.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_vec_size")} 1371 1372 let x = ${k.getByOffset("global_idx")}; 1373 ${v} 1374 let x_in = x + bias; 1375 ${E.setByOffset("global_idx",cc("x_in"))} 1376 }`};return{name:"FastGeluWithBias",shaderCache:{hint:`${p}`,inputDependencies:["type","type"]},getShaderSource:h,getRunData:C=>({outputs:[{dims:C[0].dims,dataType:C[0].dataType}],programUniforms:[{type:12,data:Math.ceil(n/4)},{type:12,data:g}],dispatchGroup:{x:Math.ceil(n/uo/4)}})}},TC=a=>{a.inputs.length<2||Je.size(a.inputs[1].dims)===0?Z3(a):a.compute(fp(a.inputs))}}),gp,pp,PC,GC,S6=kA(()=>{ct(),It(),Ur(),kt(),gp=a=>{if(!a||a.length!==2)throw new Error("Gather requires 2 inputs.")},pp=(a,i)=>{let n=a[0].dims,g=a[1].dims,p=n.length,h=Je.normalizeAxis(i.axis,p),C=n.slice(0);C.splice(h,1,...g);let k=n[h],M=a[0].dataType===9?4:1,E=Math.ceil(Je.size(C)/M),D=[{type:12,data:E},{type:6,data:k},{type:12,data:h},...tt(a[0].dims,a[1].dims,C)],B=v=>{let S=oA("data",a[0].dataType,a[0].dims.length,M),F=oA("inputIndices",a[1].dataType,a[1].dims.length),R=XA("output",a[0].dataType,C.length,M),X=L=>{let K=g.length,d=`var indicesIndices${L} = ${F.type.indices}(0);`;for(let w=0;w<K;w++)d+=`${K>1?`indicesIndices${L}[${w}]`:`indicesIndices${L}`} = ${C.length>1?`outputIndices${L}[uniforms.axis + ${w}]`:`outputIndices${L}`};`;d+=` 1377 var idx${L} = ${F.getByIndices(`indicesIndices${L}`)}; 1378 if (idx${L} < 0) { 1379 idx${L} = idx${L} + uniforms.axisDimLimit; 1380 } 1381 var dataIndices${L} : ${S.type.indices}; 1382 `;for(let w=0,e=0;w<p;w++)w===h?(d+=`${p>1?`dataIndices${L}[${w}]`:`dataIndices${L}`} = u32(idx${L});`,e+=K):(d+=`${p>1?`dataIndices${L}[${w}]`:`dataIndices${L}`} = ${C.length>1?`outputIndices${L}[${e}]`:`outputIndices${L}`};`,e++);return d},z;if(a[0].dataType===9){let L=(K,d,w="")=>` 1383 let outputIndices${d} = ${R.offsetToIndices(`outputOffset + ${d}u`)}; 1384 ${X(d)}; 1385 let offset${d} = ${S.indicesToOffset(`dataIndices${d}`)}; 1386 let index${d} = offset${d} / 4u; 1387 let component${d} = offset${d} % 4u; 1388 ${K}[${d}] = ${w}(${S.getByOffset(`index${d}`)}[component${d}]); 1389 `;z=` 1390 let outputOffset = global_idx * ${M}; 1391 var value = vec4<u32>(0); 1392 ${L("value",0,"u32")} 1393 ${L("value",1,"u32")} 1394 ${L("value",2,"u32")} 1395 ${L("value",3,"u32")} 1396 ${R.setByOffset("global_idx","value")} 1397 `}else z=` 1398 let outputIndices = ${R.offsetToIndices("global_idx")}; 1399 ${X("")}; 1400 let value = ${S.getByIndices("dataIndices")}; 1401 ${R.setByOffset("global_idx","value")}; 1402 `;return` 1403 ${v.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(S,F,R)} 1404 ${v.mainStart()} 1405 ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 1406 ${z} 1407 }`};return{name:"Gather",shaderCache:{hint:i.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:C,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:D}),getShaderSource:B}},PC=a=>$t({axis:a.axis}),GC=(a,i)=>{let n=a.inputs;gp(n),a.compute(pp(a.inputs,i))}}),mp,QC,FC,O6=kA(()=>{ct(),It(),kt(),mp=(a,i,n,g,p,h,C,k,M)=>{let E=[{type:12,data:h},{type:12,data:g},{type:12,data:p},{type:12,data:n},{type:12,data:C},{type:12,data:k},{type:12,data:M}],D=[h];E.push(...tt(i.dims,D));let B=v=>{let S=oA("indices_data",i.dataType,i.dims.length),F=XA("input_slice_offsets_data",12,1,1),R=[S,F],X=[{name:"output_size",type:"u32"},{name:"batch_dims",type:"u32"},{name:"input_dims",type:"u32",length:p.length},{name:"sizes_from_slice_dims_data",type:"u32",length:n.length},{name:"num_slices_per_batch",type:"u32"},{name:"input_batch_stride",type:"u32"},{name:"num_slice_dims",type:"u32"}];return` 1408 ${v.registerUniforms(X).declareVariables(...R)} 1409 ${v.mainStart()} 1410 ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1411 let batch_idx = global_idx / uniforms.num_slices_per_batch; 1412 let base_offset = batch_idx * uniforms.input_batch_stride; 1413 1414 let slice_indices_base_offset = global_idx * uniforms.num_slice_dims; 1415 var relative_slice_offset = 0; 1416 for (var dim_idx = 0u; dim_idx < uniforms.num_slice_dims; dim_idx ++) { 1417 var index = i32(indices_data[dim_idx + slice_indices_base_offset].x); 1418 let input_dim_idx = uniforms.batch_dims + dim_idx; 1419 if (index < 0) { 1420 ${p.length===1?"index += i32(uniforms.input_dims);":"index += i32(uniforms.input_dims[input_dim_idx]);"} 1421 } 1422 ${n.length===1?"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data);":"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data[dim_idx]);"} 1423 } 1424 1425 input_slice_offsets_data[global_idx] = base_offset + u32(relative_slice_offset); 1426 }`};return a.compute({name:"computeSliceOffsets",shaderCache:{hint:`${p.length}_${n.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:D,dataType:a.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:E}),getShaderSource:B},{inputs:[i],outputs:[-1]})[0]},QC=(a,i)=>{let n=a.inputs,g=n[0].dims,p=n[0].dataType,h=n[1].dims,C=h[h.length-1],k=Je.sizeToDimension(h,h.length-1),M=Je.sizeFromDimension(g,i.batchDims+C),E=Je.sizeToDimension(g,i.batchDims),D=Je.sizeFromDimension(g,i.batchDims),B=k/E,v=new Array(C),S=M;for(let d=0;d<C;++d)v[C-1-d]=S,S*=g[i.batchDims+C-1-d];let F=mp(a,n[1],v,i.batchDims,g,k,B,D,C),R=i.batchDims+C;if(R>g.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let X=h.slice(0,-1).concat(g.slice(R)),z=Je.size(X),L=[{type:12,data:z},{type:12,data:M},...tt(n[0].dims,F.dims,X)],K=d=>{let w=oA("data",n[0].dataType,n[0].dims.length),e=oA("slice_offsets",12,F.dims.length),u=XA("output",n[0].dataType,X.length);return` 1427 ${d.registerUniform("output_size","u32").registerUniform("slice_size","u32").declareVariables(w,e,u)} 1428 ${d.mainStart()} 1429 ${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1430 let slice_offset = slice_offsets[global_idx / uniforms.slice_size];
1431 output[global_idx] = data[u32(slice_offset) + global_idx % uniforms.slice_size]; 1432 }`};a.compute({name:"GatherND",shaderCache:{hint:i.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:X,dataType:p}],dispatchGroup:{x:Math.ceil(z/64)},programUniforms:L}),getShaderSource:K},{inputs:[n[0],F]})},FC=a=>({batchDims:a.batch_dims,cacheKey:""})}),hp,Cp,SC,OC,_6=kA(()=>{ct(),It(),Ur(),kt(),hp=(a,i)=>{if(a.length<3||a.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let n=Je.normalizeAxis(i.quantizeAxis,a[0].dims.length),g=i.blockSize,p=a[0],h=a[2],C=a.length===4?a[3]:void 0;if(h.dims.length!==p.dims.length||!p.dims.map((k,M)=>M===n?Math.ceil(k/g)===h.dims[M]:k===h.dims[M]).reduce((k,M)=>k&&M,!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(C){if(C.dataType!==p.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(C.dims.length!==h.dims.length||!C.dims.map((k,M)=>k===h.dims[M]).reduce((k,M)=>k&&M,!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},Cp=(a,i)=>{let n=a[0].dims,g=a[1].dims,p=n.length,h=Je.normalizeAxis(i.gatherAxis,p),C=Je.normalizeAxis(i.quantizeAxis,p),k=n.slice(0);k.splice(h,1,...g);let M=Je.size(k),E=a[2].dataType,D=a[0].dataType===22,B=[{type:12,data:M},{type:12,data:C},{type:12,data:h},{type:12,data:i.blockSize},...tt(...a.map((S,F)=>S.dims),k)],v=S=>{let F=oA("data",a[0].dataType,a[0].dims.length),R=oA("inputIndices",a[1].dataType,a[1].dims.length),X=oA("scales",a[2].dataType,a[2].dims.length),z=a.length>3?oA("zeroPoint",a[3].dataType,a[3].dims.length):void 0,L=XA("output",E,k.length),K=[F,R,X];z&&K.push(z);let d=[{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}];return` 1433 ${S.registerUniforms(d).declareVariables(...K,L)} 1434 ${S.mainStart()} 1435 let output_indices = ${L.offsetToIndices("global_idx")}; 1436 var indices_indices = ${R.type.indices}(0); 1437 ${g.length>1?` 1438 for (var i: u32 = 0; i < ${g.length}; i++) { 1439 let index = ${L.indicesGet("output_indices","uniforms.gather_axis + i")}; 1440 ${R.indicesSet("indices_indices","i","index")}; 1441 }`:`indices_indices = ${L.indicesGet("output_indices","uniforms.gather_axis")};`}; 1442 var data_indices = ${F.type.indices}(0); 1443 for (var i: u32 = 0; i < uniforms.gather_axis; i++) { 1444 let index = ${L.indicesGet("output_indices","i")}; 1445 ${F.indicesSet("data_indices","i","index")}; 1446 } 1447 var index_from_indices = ${R.getByIndices("indices_indices")}; 1448 if (index_from_indices < 0) { 1449 index_from_indices += ${n[h]}; 1450 } 1451 ${F.indicesSet("data_indices","uniforms.gather_axis","u32(index_from_indices)")}; 1452 for (var i = uniforms.gather_axis + 1; i < ${k.length}; i++) { 1453 let index = ${L.indicesGet("output_indices",`i + ${g.length} - 1`)}; 1454 ${F.indicesSet("data_indices","i","index")}; 1455 } 1456 let data_offset = ${F.indicesToOffset("data_indices")}; 1457 let data_index = data_offset % 8; 1458 // Convert 4-bit packed data to 8-bit packed data. 1459 let packed_4bit_quantized_data = ${F.getByOffset("data_offset / 8")}; 1460 let packed_8bit_quantized_data = (packed_4bit_quantized_data >> (4 * (data_index % 2))) & 0x0f0f0f0f; 1461 let quantized_data_vec = ${D?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_quantized_data)); 1462 let quantized_data = quantized_data_vec[data_index / 2]; 1463 var scale_indices = data_indices; 1464 let quantize_axis_index = ${X.indicesGet("data_indices","uniforms.quantize_axis")} / uniforms.block_size; 1465 ${X.indicesSet("scale_indices","uniforms.quantize_axis","quantize_axis_index")}; 1466 var scale = ${X.getByIndices("scale_indices")}; 1467 ${z?` 1468 let zero_point_indices = scale_indices; 1469 let zero_point_offset = ${z.indicesToOffset("zero_point_indices")}; 1470 let zero_point_index = zero_point_offset % 8; 1471 let packed_4bit_zero_points = ${z.getByOffset("zero_point_offset / 8")}; 1472 let packed_8bit_zero_points = (packed_4bit_zero_points >> (4 * (zero_point_index % 2))) & 0x0f0f0f0f; 1473 let zero_point_vec = ${D?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_zero_points)); 1474 let zero_point = zero_point_vec[zero_point_index / 2];`:"var zero_point = 0"}; 1475 let dequantized_data = ${Qs(E)}(quantized_data - zero_point) * scale; 1476 ${L.setByOffset("global_idx","dequantized_data")}; 1477 }`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${i.cacheKey};${a.filter((S,F)=>F!==1).map(S=>S.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:a.length},(S,F)=>"rank")},getRunData:()=>({outputs:[{dims:k,dataType:E}],dispatchGroup:{x:Math.ceil(M/64)},programUniforms:B}),getShaderSource:v}},SC=(a,i)=>{let n=a.inputs;hp(n,i),a.compute(Cp(a.inputs,i))},OC=a=>$t({blockSize:a.blockSize,gatherAxis:a.gatherAxis,quantizeAxis:a.quantizeAxis})}),bp,Ip,_C,zC,z6=kA(()=>{ct(),It(),Ur(),kt(),bp=a=>{if(!a||a.length!==2)throw new Error("GatherElements requires 2 inputs.");if(a[0].dims.length<1)throw new Error("GatherElements requires that the data input be rank >= 1.");if(a[0].dims.length!==a[1].dims.length)throw new Error(`GatherElements requires that the data input and 1478 indices input tensors be of same rank.`)},Ip=(a,i)=>{let n=a[0].dims,g=a[0].dataType,p=n.length,h=a[1].dims,C=a[1].dataType,k=Je.
vendor: 6,455 bytes, lines 1478-1577
1478normalizeAxis(i.axis,p),M=n[k],E=h.slice(0),D=Je.size(E),B=oA("input",g,p),v=oA("indicesInput",C,h.length),S=XA("output",g,E.length),F=[{type:12,data:D},{type:6,data:M},{type:12,data:k}];return F.push(...tt(n,h,E)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:E,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(D/64)},programUniforms:F}),getShaderSource:R=>` 1479 ${R.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(B,v,S)} 1480 ${R.mainStart()} 1481 ${R.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 1482 1483 let outputIndices = ${S.offsetToIndices("global_idx")}; 1484 1485 var idx = ${v.getByOffset("global_idx")}; 1486 if (idx < 0) { 1487 idx = idx + uniforms.axisDimLimit; 1488 } 1489 var inputIndices = ${B.type.indices}(outputIndices); 1490 ${B.indicesSet("inputIndices","uniforms.axis","u32(idx)")}; 1491 let value = ${B.getByIndices("inputIndices")}; 1492 1493 ${S.setByOffset("global_idx","value")}; 1494 }`}},_C=a=>$t({axis:a.axis}),zC=(a,i)=>{let n=a.inputs;bp(n),a.compute(Ip(a.inputs,i))}}),wp,kp,NC,LC,N6=kA(()=>{ct(),It(),kt(),wp=a=>{if(!a)throw new Error("Input is missing");if(a.length<2||a.length>3)throw new Error("Invaid input number.");if(a.length===3&&a[2].dims.length>2)throw new Error("Invalid input shape of C");if(a[0].dataType!==a[1].dataType||a.length===3&&a[0].dataType!==a[2].dataType)throw new Error("Input types are mismatched")},kp=(a,i)=>{let n=a[0].dims.slice(),g=a[1].dims.slice(),[p,h,C]=_h.getShapeOfGemmResult(n,i.transA,g,i.transB,a.length===3?a[2].dims:void 0),k=[p,h];if(!k)throw new Error("Can't use gemm on the given tensors");let M=16,E=Math.ceil(h/M),D=Math.ceil(p/M),B=!0,v=Je.size(k),S=[{type:12,data:B?E:v},{type:12,data:p},{type:12,data:h},{type:12,data:C},{type:1,data:i.alpha},{type:1,data:i.beta}],F=["type","type"];a.length===3&&(S.push(...tt(a[2].dims)),F.push("rank")),S.push(...tt(k));let R=z=>{let L="";i.transA&&i.transB?L="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":i.transA&&!i.transB?L="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!i.transA&&i.transB?L="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!i.transA&&!i.transB&&(L="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let K=i.alpha===1?"":"value *= uniforms.alpha;",d=oA("a",a[0].dataType,a[0].dims),w=oA("b",a[1].dataType,a[1].dims),e=d.type.value,u=null,y=[d,w];a.length===3&&(u=oA("c",a[2].dataType,a[2].dims.length),y.push(u));let ee=XA("output",a[0].dataType,k.length);y.push(ee);let T=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}];return` 1495 ${z.registerUniforms(T).declareVariables(...y)} 1496 1497 ${z.mainStart()} 1498 ${z.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1499 1500 let m = global_idx / uniforms.N; 1501 let n = global_idx % uniforms.N; 1502 1503 var value = ${e}(0); 1504 for (var k: u32 = 0u; k < uniforms.K; k++) { 1505 ${L} 1506 } 1507 1508 ${K} 1509 ${u!=null?`let cOffset = ${u.broadcastedIndicesToOffset("vec2(m, n)",ee)}; value += ${e}(uniforms.beta) * ${u.getByOffset("cOffset")};`:""} 1510 output[global_idx] = value; 1511 }`},X=z=>{let L=oA("a",a[0].dataType,a[0].dims),K=oA("b",a[1].dataType,a[1].dims),d=null,w=[L,K];a.length===3&&(d=oA("c",a[2].dataType,a[2].dims.length),w.push(d));let e=XA("output",a[0].dataType,k.length);w.push(e);let u=[{name:"num_tile_n",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}],y="",ee="";i.transA&&i.transB?(ee=` 1512 var col = tile_row_start + local_id.x; 1513 var row = k_start + local_id.y; 1514 if (col < uniforms.M && row < uniforms.K) { 1515 tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col]; 1516 } else { 1517 tile_a[local_id.y][local_id.x] = ${L.type.value}(0); 1518 } 1519 1520 col = k_start + local_id.x; 1521 row = tile_col_start + local_id.y; 1522 if (col < uniforms.K && row < uniforms.N) { 1523 tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col]; 1524 } else { 1525 tile_b[local_id.y][local_id.x] = ${K.type.value}(0); 1526 } 1527 `,y="value += tile_a[k][local_id.y] * tile_b[local_id.x][k];"):i.transA&&!i.transB?(ee=` 1528 var col = tile_row_start + local_id.x; 1529 var row = k_start + local_id.y; 1530 if (col < uniforms.M && row < uniforms.K) { 1531 tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col]; 1532 } else { 1533 tile_a[local_id.y][local_id.x] = ${L.type.value}(0); 1534 } 1535 1536 col = tile_col_start + local_id.x; 1537 row = k_start + local_id.y; 1538 if (col < uniforms.N && row < uniforms.K) { 1539 tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col]; 1540 } else { 1541 tile_b[local_id.y][local_id.x] = ${K.type.value}(0); 1542 } 1543 `,y="value += tile_a[k][local_id.y] * tile_b[k][local_id.x];"):!i.transA&&i.transB?(ee=` 1544 var col = k_start + local_id.x; 1545 var row = tile_row_start + local_id.y; 1546 if (col < uniforms.K && row < uniforms.M) { 1547 tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col]; 1548 } else { 1549 tile_a[local_id.y][local_id.x] = ${L.type.value}(0); 1550 } 1551 1552 col = k_start + local_id.x; 1553 row = tile_col_start + local_id.y; 1554 if (col < uniforms.K && row < uniforms.N) { 1555 tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col]; 1556 } else { 1557 tile_b[local_id.y][local_id.x] = ${K.type.value}(0); 1558 } 1559 `,y="value += tile_a[local_id.y][k] * tile_b[local_id.x][k];"):!i.transA&&!i.transB&&(ee=` 1560 var col = k_start + local_id.x; 1561 var row = tile_row_start + local_id.y; 1562 if (col < uniforms.K && row < uniforms.M) { 1563 tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col]; 1564 } else { 1565 tile_a[local_id.y][local_id.x] = ${L.type.value}(0); 1566 } 1567 1568 col = tile_col_start + local_id.x; 1569 row = k_start + local_id.y; 1570 if (col < uniforms.N && row < uniforms.K) { 1571 tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col]; 1572 } else { 1573 tile_b[local_id.y][local_id.x] = ${K.type.value}(0); 1574 } 1575 `,y="value += tile_a[local_id.y][k] * tile_b[k][local_id.x];");let T=i.alpha===1?"":"value *= uniforms.alpha;";return` 1576 ${z.registerUniforms(u).declareVariables(...w)} 1577 var<workgroup> tile_a: array<array<${L.type.storage}, ${M}>, ${M}>;
1578 var<workgroup> tile_b: array<array<${K.type.storage}, ${M}>, ${M}>; 1579 ${z.mainStart([M,M,1])} 1580 let tile_col_start = (workgroup_index % uniforms.num_tile_n) * ${M}; 1581 let tile_row_start = (workgroup_index / uniforms.num_tile_n) * ${M}; 1582 let num_tiles = (uniforms.K - 1) / ${M} + 1; 1583 var k_start = 0u; 1584 var value = ${e.type.value}(0); 1585 for (var t: u32 = 0u; t < num_tiles; t++) { 1586 ${ee} 1587 k_start = k_start + ${M}; 1588 workgroupBarrier(); 1589 1590 for (var k: u32 = 0u; k < ${M}; k++) { 1591 ${y} 1592 } 1593 workgroupBarrier(); 1594 } 1595 1596 ${T} 1597 let m = tile_row_start + local_id.y; 1598 let n = tile_col_start + local_id.x; 1599 ${d!=null?`let cOffset = ${d.broadcastedIndicesToOffset("vec2(m, n)",e)}; value += ${e.type.value}(uniforms.beta) * ${d.getByOffset("cOffset")};`:""} 1600 if (m < uniforms.M && n < uniforms.N) { 1601 output[m * uniforms.N + n] = value; 1602 } 1603 }`};return B?{name:"GemmShared",shaderCache:{hint:`${i.cacheKey}`,inputDependencies:F},getRunData:()=>({outputs:[{dims:k,dataType:a[0].dataType}],dispatchGroup:{x:E*D},programUniforms:S}),getShaderSource:X}:{name:"Gemm",shaderCache:{hint:`${i.cacheKey}`,inputDependencies:F},getRunData:()=>({outputs:[{dims:k,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:S}),getShaderSource:R}},NC=a=>{let i=a.transA,n=a.transB,g=a.alpha,p=a.beta;return{transA:i,transB:n,alpha:g,beta:p,cacheKey:`${a.transA};${a.transB};${a.alpha===1}`}},LC=(a,i)=>{wp(a.inputs),a.compute(kp(a.inputs,i))}}),on,En,ki,Mi,Mp,Ep,vp,xp,Bp,yp,Dp,Tp,RC,jC,L6=kA(()=>{ct(),It(),Ur(),kt(),[on,En,ki,Mi]=[0,1,2,3],Mp=a=>
vendor: 4,596 bytes, lines 1603-1706
1603{if(a[0].dims.length!==4)throw new Error("only 4-D tensor is supported.");if(a[0].dims.length!==a[1].dims.length)throw new Error("input dimensions must be equal to grid dimensions");if(a[0].dims.length-2!==a[1].dims[a[1].dims.length-1])throw new Error(`last dimension of grid must be equal to ${a[0].dims.length-2}`);if(a[0].dims[0]!==a[1].dims[0])throw new Error("grid batch size must match input batch size")},Ep=` 1604 fn gs_get_cubic_coeffs(x: f32) -> vec4<f32> { 1605 let cubic_alpha = -0.75f; 1606 let x_abs = abs(x); 1607 var coeffs: vec4<f32>; 1608 coeffs[0] = (((cubic_alpha * (x_abs + 1) - 5 * cubic_alpha) * (x_abs + 1) + 8 * cubic_alpha) * (x_abs + 1) - 4 * cubic_alpha); 1609 coeffs[1] = (((cubic_alpha + 2) * x_abs - (cubic_alpha + 3)) * x_abs * x_abs + 1); 1610 coeffs[2] = (((cubic_alpha + 2) * (1 - x_abs) - (cubic_alpha + 3)) * (1 - x_abs) * (1 - x_abs) + 1); 1611 coeffs[3] = (((cubic_alpha * (2 - x_abs) - 5 * cubic_alpha) * (2 - x_abs) + 8 * cubic_alpha) * (2 - x_abs) - 4 * cubic_alpha); 1612 return coeffs; 1613 } 1614`,vp=a=>` 1615 fn gs_bicubic_interpolate(p: mat4x4<${a}>, x: f32, y: f32) -> ${a} { 1616 var v: vec4<f32>; 1617 var coeffs = gs_get_cubic_coeffs(x); 1618 for (var i = 0; i < 4; i++) { 1619 v[i] = coeffs[0] * p[i][0] + coeffs[1] * p[i][1] + coeffs[2] * p[i][2] + coeffs[3] * p[i][3]; 1620 } 1621 coeffs = gs_get_cubic_coeffs(y); 1622 let pixel = ${a}(coeffs[0] * v[0] + coeffs[1] * v[1] + coeffs[2] * v[2] + coeffs[3] * v[3]); 1623 return pixel; 1624 } 1625`,xp=a=>` 1626 fn gs_denormalize(n: f32, length: i32) -> f32 { 1627 ${a.alignCorners===0?` 1628 // alignCorners: false => [-1, 1] to [-0.5, length - 0.5] 1629 return ((n + 1.0) * f32(length) - 1.0) / 2.0; 1630 `:` 1631 // alignCorners: true => [-1, 1] to [0, length - 1] 1632 return (n + 1.0) / 2.0 * (f32(length - 1)); 1633 `} 1634 } 1635`,Bp=a=>` 1636 ${a.paddingMode==="reflection"?` 1637 fn gs_reflect(x: i32, x_min: f32, x_max: f32) -> u32 { 1638 var dx = 0.0; 1639 var fx = f32(x); 1640 let range = x_max - x_min; 1641 if (fx < x_min) { 1642 dx = x_min - fx; 1643 let n = u32(dx / range); 1644 let r = dx - f32(n) * range; 1645 if (n % 2 == 0) { 1646 fx = x_min + r; 1647 } else { 1648 fx = x_max - r; 1649 } 1650 } else if (fx > x_max) { 1651 dx = fx - x_max; 1652 let n = u32(dx / range); 1653 let r = dx - f32(n) * range; 1654 if (n % 2 == 0) { 1655 fx = x_max - r; 1656 } else { 1657 fx = x_min + r; 1658 } 1659 } 1660 return u32(fx); 1661 }`:""} 1662`,yp=(a,i,n)=>` 1663 fn pixel_at_grid(r: i32, c: i32, H: i32, W: i32, batch: u32, channel: u32, border: vec4<f32>) -> ${i} { 1664 var pixel = ${i}(0); 1665 var indices = vec4<u32>(0); 1666 indices[${on}] = batch; 1667 indices[${En}] = channel;`+(()=>{switch(n.paddingMode){case"zeros":return` 1668 if (r >= 0 && r < H && c >=0 && c < W) { 1669 indices[${ki}] = u32(r); 1670 indices[${Mi}] = u32(c); 1671 } else { 1672 return ${i}(0); 1673 } 1674 `;case"border":return` 1675 indices[${ki}] = u32(clamp(r, 0, H - 1)); 1676 indices[${Mi}] = u32(clamp(c, 0, W - 1)); 1677 `;case"reflection":return` 1678 indices[${ki}] = gs_reflect(r, border[1], border[3]); 1679 indices[${Mi}] = gs_reflect(c, border[0], border[2]); 1680 `;default:throw new Error(`padding mode ${n.paddingMode} is not supported`)}})()+` 1681 return ${a.getByIndices("indices")}; 1682 } 1683`,Dp=(a,i,n)=>(()=>{switch(n.mode){case"nearest":return` 1684 let result = pixel_at_grid(i32(round(y)), i32(round(x)), H_in, W_in, indices[${on}], indices[${En}], border); 1685 `;case"bilinear":return` 1686 let x1 = i32(floor(x)); 1687 let y1 = i32(floor(y)); 1688 let x2 = x1 + 1; 1689 let y2 = y1 + 1; 1690 1691 let p11 = pixel_at_grid(y1, x1, H_in, W_in, indices[${on}], indices[${En}], border); 1692 let p12 = pixel_at_grid(y1, x2, H_in, W_in, indices[${on}], indices[${En}], border); 1693 let p21 = pixel_at_grid(y2, x1, H_in, W_in, indices[${on}], indices[${En}], border); 1694 let p22 = pixel_at_grid(y2, x2, H_in, W_in, indices[${on}], indices[${En}], border); 1695 1696 let dx2 = ${i}(f32(x2) - x); 1697 let dx1 = ${i}(x - f32(x1)); 1698 let dy2 = ${i}(f32(y2) - y); 1699 let dy1 = ${i}(y - f32(y1)); 1700 let result = dy2 * (dx2 * p11 + dx1 * p12) + dy1 * (dx2 * p21 + dx1 * p22); 1701 `;case"bicubic":return` 1702 let x0 = i32(floor(x)) - 1; 1703 let y0 = i32(floor(y)) - 1; 1704 var p: mat4x4<${i}>; 1705 for (var h = 0; h < 4; h++) { 1706 for (var w = 0; w < 4; w++) {
1707 p[h][w] = pixel_at_grid(h + y0, w + x0, H_in, W_in, indices[${on}], indices[${En}], border); 1708 } 1709 } 1710 1711 let dx = x - f32(x0 + 1); 1712 let dy = y - f32(y0 + 1); 1713 let result = gs_bicubic_interpolate(p, dx, dy); 1714 `;default:throw new Error(`mode ${n.mode} is not supported`)}})()+`${a.setByOffset("global_idx","result")}`,Tp=(a,i)=>{let n=oA("x",a[0].dataType,a[0].dims.length),g=[a[1].dims[0],a[1].dims[1],a[1].dims[2]],p=oA("grid",a[1].dataType,g.length,2),h=[a[0].dims[0],a[0].dims[1],a[1].dims[1],a[1].dims[2]];i.format==="NHWC"&&(h=[a[0].dims[0],a[1].dims[1],a[1].dims[2],a[0].dims[3]],[on,En,ki,Mi]=[0,3,1,2]);let C=XA("output",a[0].dataType,h.length),k=n.type.value,M=Je.size(h),E=[{type:12,data:M},...tt(a[0].dims,g,h)],D=B=>` 1715 ${B.registerUniform("output_size","u32").declareVariables(n,p,C)} 1716 ${Ep} 1717 ${vp(k)} 1718 ${xp(i)} 1719 ${Bp(i)} 1720 ${yp(n,k,i)} 1721 1722 ${B.mainStart()} 1723 ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1724 let H_in = i32(uniforms.x_shape[${ki}]); 1725 let W_in = i32(uniforms.x_shape[${Mi}]); 1726 1727 ${i.alignCorners===0?` 1728 let x_min = -0.5; 1729 let x_max = f32(W_in) - 0.5; 1730 let y_min = -0.5; 1731 let y_max = f32(H_in) - 0.5; 1732 `:` 1733 let x_min = 0.0; 1734 let x_max = f32(W_in) - 1.0; 1735 let y_min = 0.0; 1736 let y_max = f32(H_in) - 1.0; 1737 `}; 1738 let border = vec4<f32>(x_min, y_min, x_max, y_max); 1739 1740 let indices = ${C.offsetToIndices("global_idx")}; 1741 var grid_indices = vec3<u32>(indices[${on}], indices[${ki}], indices[${Mi}]); 1742 let nxy = ${p.getByIndices("grid_indices")}; 1743 var x = gs_denormalize(f32(nxy[0]), W_in); 1744 var y = gs_denormalize(f32(nxy[1]), H_in); 1745 1746 ${Dp(C,k,i)} 1747 }`;return{name:"GridSample",shaderCache:{hint:`${i.cacheKey}`,inputDependencies:["type","type"]},getRunData:B=>{let v=Je.size(h);return{outputs:[{dims:h,dataType:B[0].dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:E}},getShaderSource:D}},RC=(a,i)=>{Mp(a.inputs),a.compute(Tp(a.inputs,i))},jC=a=>$t({alignCorners:a.align_corners,mode:a.mode,paddingMode:a.padding_mode,format:a.format})}),js,Pp,WC,x2,Gp,Ho,VC,YC=kA(()=>{ct(),It(),Ur(),Pc(),Fc(),kt(),ri(),js=(a,i)=>a.length>i&&a[i].dims.length>0?a[i]:void 0,Pp=(a,i)=>{let n=a[0],g=js(a,1),p=js(a,2),h=js(a,3),C=js(a,4),k=js(a,5),M=js(a,6),E=js(a,7);if(n.dims.length!==3&&n.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let D=n.dims[0],B=n.dims[1],v=n.dims.length===3?n.dims[2]:i.numHeads*n.dims[4],S=B,F=0,R=0,X=Math.floor(v/i.numHeads);if(M&&E&&Je.size(M.dims)&&Je.size(E.dims)){if(M.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(M.dims[0]!==D||M.dims[1]!==i.numHeads||M.dims[3]!==X)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');
vendor: 4,117 bytes, lines 1747-1751
1747if(E.dims[0]!==D||E.dims[1]!==i.numHeads||E.dims[3]!==X)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(M.dims[2]!==E.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(E.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');F=M.dims[2],R=M.dims[2]}else if(M&&Je.size(M.dims)||E&&Je.size(E.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let z;if(g&&Je.size(g.dims)>0){if(n.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(g.dims.length<3||g.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(n.dims[0]!==g.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(g.dims.length===3){if(g.dims[2]!==n.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');z=2,S=g.dims[1]}else if(g.dims.length===5){if(g.dims[2]!==i.numHeads||g.dims[3]!==2||g.dims[4]!==X)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(p)throw new Error('Expect "value" be none when "key" has packed kv format.');z=5,S=g.dims[1]}else{if(g.dims[1]!==i.numHeads||g.dims[3]!==X)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');z=0,S=g.dims[2]}}else{if(n.dims.length!==5)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(n.dims[2]!==i.numHeads||n.dims[3]!==3)throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');z=3}if(h&&Je.size(h.dims)>0){if(h.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimension');if(g&&g.dims.length===5&&g.dims[3]===2)throw new Error("bias is not allowed for packed kv.")}let L=F+S,K=0;if(C&&Je.size(C.dims)>0){K=8;let u=C.dims;throw u.length===1?u[0]===D?K=1:u[0]===3*D+2&&(K=3):u.length===2&&u[0]===D&&u[1]===L&&(K=5),K===8?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let d=!1,w=v;if(p&&Je.size(p.dims)>0){if(p.dims.length!==3&&p.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(n.dims[0]!==p.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(p.dims.length===3){if(S!==p.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');w=p.dims[2]}else{if(S!==p.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');w=p.dims[1]*p.dims[3],d=!0}}let e=!1;if(C&&Je.size(C.dims)>0)throw new Error("Key padding mask is not supported");if(k&&Je.size(k.dims)>0){if(k.dims.length!==4)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(k.dims[0]!==D||k.dims[1]!==i.numHeads||k.dims[2]!==B||k.dims[3]!==L)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:D,sequenceLength:B,pastSequenceLength:F,kvSequenceLength:S,totalSequenceLength:L,maxSequenceLength:R,inputHiddenSize:0,hiddenSize:v,vHiddenSize:w,headSize:X,vHeadSize:Math.floor(w/i.numHeads),numHeads:i.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:i.maskFilterValue,maskType:K,scale:i.scale,broadcastResPosBias:e,passPastInKv:d,qkvFormat:z}},WC=a=>$t({...a}),x2=$t({perm:[0,2,1,3]}),Gp=(a,i,n,g,p,h,C)=>{let k=[g,p,h],M=Je.size(k),E=[{type:12,data:M},{type:12,data:C},{type:12,data:h}],D=B=>{let v=XA("qkv_with_bias",i.dataType,k),S=oA("qkv",i.dataType,k),F=oA("bias",n.dataType,k),R=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return` 1748 ${B.registerUniforms(R).declareVariables(S,F,v)} 1749 ${B.mainStart()} 1750 ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1751 let bias_offset_idx = (global_idx % uniforms.hidden_size) + uniforms.bi
1751as_offset; 1752 1753 qkv_with_bias[global_idx] = qkv[global_idx] + bias[bias_offset_idx]; 1754 }`};return a.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:k,dataType:i.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(M/64)},programUniforms:E}),getShaderSource:D},{inputs:[i,n],outputs:[-1]})[0]},Ho=(a,i,n,g,p,h,C,k)=>{let M=h;if(C&&Je.size(C.dims)>0){if(g===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return M=Gp(a,h,C,i,g,n*p,k),M=M.reshape([i,g,n,p]),n===1||g===1?M:a.compute(ma(M,x2.perm),{inputs:[M],outputs:[-1]})[0]}else return h.dims.length===3&&(M=h.reshape([i,g,n,p])),n===1||g===1?M:a.compute(ma(M,x2.perm),{inputs:[M],outputs:[-1]})[0]},VC=(a,i)=>{let n=Pp(a.inputs,i),g=a.inputs[0],p=js(a.inputs,1),h=js(a.inputs,2),C=js(a.inputs,3),k=js(a.inputs,4),M=js(a.inputs,5),E=js(a.inputs,6),D=js(a.inputs,7);if(g.dims.length===5)throw new Error("Packed QKV is not implemented");if((p==null?void 0:p.dims.length)===5)throw new Error("Packed KV is not implemented");let B=p&&h&&p.dims.length===4&&h.dims.length===4,v=Ho(a,n.batchSize,n.numHeads,n.sequenceLength,n.headSize,g,C,0);if(B)return qo(a,v,p,h,k,void 0,E,D,M,n);if(!p||!h)throw new Error("key and value must be provided");let S=Ho(a,n.batchSize,n.numHeads,n.kvSequenceLength,n.headSize,p,C,n.hiddenSize),F=Ho(a,n.batchSize,n.numHeads,n.kvSequenceLength,n.vHeadSize,h,C,2*n.hiddenSize);qo(a,v,S,F,k,void 0,E,D,M,n)}}),Qp,Fp,Sp,Op,pc,HC,UC,KC=kA(()=>{ct(),It(),Ur(),kt(),Qp=a=>{if(!a||a.length<1)throw new Error("too few inputs")},Fp=(a,i)=>{let n=[],g=i.numOutputs;return a[1].dims[0]>0&&(a[1].getBigInt64Array().forEach(p=>n.push(Number(p))),g=n.length),$t({numOutputs:g,axis:i.axis,splitSizes:n})},Sp=a=>` 1755fn calculateOutputIndex(index: u32) -> u32 { 1756 for (var i: u32 = 0u; i < ${a}u; i += 1u ) { 1757 if (index < ${$A("uniforms.size_in_split_axis","i",a)}) { 1758 return i; 1759 } 1760 } 1761 return ${a}u; 1762}`,Op=a=>{let i=a.length,n=[];for(let g=0;g<i;++g){let p=a[g].setByIndices("indices","input[global_idx]");i===1?n.push(p):g===0?n.push(`if (output_number == ${g}u) { ${p} }`):g===i-1?n.push(`else { ${p} }`):n.push(`else if (output_number == ${g}) { ${p} }`)}return` 1763 fn writeBufferData(output_number: u32, indices: ${a[0].type.indices}, global_idx: u32) { 1764 ${n.join(` 1765`)} 1766 }`},pc=(a,i)=>{let n=a[0].dims,g=Je.size(n),p=a[0].dataType,h=Je.normalizeAxis(i.axis,n.length),C=new Array(i.numOutputs),k=oA("input",p,n.length),M=new Array(i.numOutputs),E=[],D=[],B=0,v=[{type:12,data:g}];for(let F=0;F<i.numOutputs;F++){B+=i.splitSizes[F],M[F]=B;let R=n.slice();R[h]=i.splitSizes[F],D.push(R),C[F]=XA(`output${F}`,p,R.length),E.push({dims:D[F],dataType:a[0].dataType})}v.push({type:12,data:M},...tt(n,...D));let S=F=>` 1767 ${F.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",M.length).declareVariables(k,...C)} 1768 ${Sp(M.length)} 1769 ${Op(C)} 1770 1771 ${F.mainStart()} 1772 ${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")} 1773 1774 var indices = ${k.offsetToIndices("global_idx")}; 1775 var index = ${k.indicesGet("indices",h)}; 1776 let output_number = calculateOutputIndex(index); 1777 if (output_number != 0) { 1778 index -= ${$A("uniforms.size_in_split_axis","output_number - 1u",M.length)}; 1779 ${k.indicesSet("indices",h,"index")}; 1780 } 1781 writeBufferData(output_number, indices, global_idx); 1782 }`;return{name:"Split",shaderCache:{hint:i.cacheKey,inputDependencies:["rank"]},getShaderSource:S,getRunData:()=>({outputs:E,dispatchGroup:{x:Math.ceil(g/64)},programUniforms:v})}},HC=(a,i)=>{Qp(a.inputs);let n=a.inputs.length===1?i:Fp(a.inputs,i);a.compute(pc(a.inputs,n),{inputs:[0]})},UC=a=>{let i=a.axis,n=a.splitSizes,g=a.numOutputs<0?n.length:a.numOutputs;if(g!==n.length)throw new Error("numOutputs and splitSizes lengh must be equal");return $t({axis:i,numOutputs:g,splitSizes:n})}}),_p,H0,XC,ZC=kA(()=>{ct(),It(),Ur(),kt(),_p=(a,i)=>{let[n,g,p,h]=a,{numHeads:C,rotaryEmbeddingDim:k}=i;if(n.dims.length!==3&&n.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${n.dims.length}`);if(!Je.areEqual(g.dims,[])&&!Je.areEqual(g.dims,[1])&&g.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${g.dims.length}`);if(p.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${p.dims.length}`);if(h.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${h.dims.length}`);if(!Je.areEqual(p.dims,h.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(k>0&&C===0)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let M=n.dims[0],E=n.dims[n.dims.length-2],D=p.dims[0],B=Je.sizeFromDimension(n.dims,1)/E,v=k===0?p.dims[1]*2:B/C;if(k>v)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(g.dims.length===2){if(M!==g.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${g.dims[0]}`);if(E!==g.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${g.dims[1]}`)}if(v/2!==p.dims[1]&&k/2!==p.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${p.dims[1]}`);if(E>D)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},H0=(a,i)=>{let{interleaved:n,numHeads:g,rotaryEmbeddingDim:p,scale:h}=i,C=a[0].dims[0],k=Je.sizeFromDimension(a[0].dims,1),M=a[0].dims[a[0].dims.length-2],E=k/M,D=a[2].dims[1],B=p===0?D*2:E/g,v=ne
vendor: 16,927 bytes, lines 1782-1923
1782w Array(C,M,E/B,B-D),S=Je.computeStrides(v),F=[{type:1,data:h},{type:12,data:v},{type:12,data:S},...a[0].dims.length===3?new Array({type:12,data:[k,E,B,1]}):[],...a[0].dims.length===4?new Array({type:12,data:[k,B,M*B,1]}):[],...tt(a[0].dims,a[1].dims,a[2].dims,a[3].dims,a[0].dims)],R=X=>{let z=oA("input",a[0].dataType,a[0].dims.length),L=oA("position_ids",a[1].dataType,a[1].dims.length),K=oA("cos_cache",a[2].dataType,a[2].dims.length),d=oA("sin_cache",a[3].dataType,a[3].dims.length),w=XA("output",a[0].dataType,a[0].dims.length);return X.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:v.length},{name:"global_strides",type:"u32",length:S.length},{name:"input_output_strides",type:"u32",length:S.length}]),` 1783 ${X.declareVariables(z,L,K,d,w)} 1784 1785 ${X.mainStart(uo)} 1786 let half_rotary_emb_dim = uniforms.${K.name}_shape[1]; 1787 let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape; 1788 let size = uniforms.global_shape[0] * uniforms.global_strides[0]; 1789 ${X.guardAgainstOutOfBoundsWorkgroupSizes("size")} 1790 1791 if (bsnh[3] < half_rotary_emb_dim) { 1792 let position_ids_idx = 1793 ${L.broadcastedIndicesToOffset("bsnh.xy",XA("",L.type.tensor,2))}; 1794 let position_id = 1795 u32(${L.getByOffset("position_ids_idx")}) + select(0, bsnh[1], position_ids_idx == 0); 1796 let i = dot(bsnh, uniforms.input_output_strides) + select(0, bsnh[3], ${n}); 1797 let j = i + select(half_rotary_emb_dim, 1, ${n}); 1798 let re = ${z.getByOffset("i")} * ${K.get("position_id","bsnh[3]")} - 1799 ${z.getByOffset("j")} * ${d.get("position_id","bsnh[3]")}; 1800 ${w.setByOffset("i","re")} 1801 let im = ${z.getByOffset("i")} * ${d.get("position_id","bsnh[3]")} + 1802 ${z.getByOffset("j")} * ${K.get("position_id","bsnh[3]")}; 1803 ${w.setByOffset("j","im")} 1804 } else { 1805 let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim; 1806 ${w.setByOffset("k",z.getByOffset("k"))} 1807 } 1808 }`};return{name:"RotaryEmbedding",shaderCache:{hint:$t({interleaved:n}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:R,getRunData:()=>({outputs:[{dims:a[0].dims,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(Je.size(v)/uo)},programUniforms:F})}},XC=(a,i)=>{_p(a.inputs,i),a.compute(H0(a.inputs,i))}}),zp,Np,B2,Lp,JC,R6=kA(()=>{Ur(),ct(),Fc(),YC(),KC(),ri(),ZC(),kt(),zp=(a,i)=>{if(i.doRotary&&a.length<=7)throw new Error("cos_cache and sin_cache inputs are required if do_rotary is specified");let n=a[0],g=a[1],p=a[2],h=a[3],C=a[4];if(i.doRotary!==0&&a.length<=7)throw new Error("cos_cast and sin_cache are expected if do_rotary attribute is non-zero");if(i.localWindowSize!==-1)throw new Error("Local attention is not supported");if(i.softcap!==0)throw new Error("Softcap is not supported");if(i.rotaryInterleaved!==0)throw new Error("Rotary interleaved is not supported");if(i.smoothSoftmax)throw new Error("Smooth softmax is not supported");if(n.dims.length!==3&&n.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let k=!1,M=n.dims[0],E=n.dims[1],D=n.dims.length===3?k?n.dims[2]/3:n.dims[2]:i.numHeads*n.dims[4],B=E,v=0,S=!g||g.dims.length===0,F=Math.floor(S?D/(i.numHeads+2*i.kvNumHeads):D/i.numHeads);S&&(D=F*i.numHeads);let R=h&&h.dims.length!==0,X=C&&C.dims.length!==0;if(R&&h.dims.length===4&&h.dims[0]===M&&h.dims[1]!==i.kvNumHeads&&h.dims[2]===i.kvNumHeads&&h.dims[3]===F)throw new Error("BSNH pastKey/pastValue is not supported");if(R&&X){if(h.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(C.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');v=h.dims[2]}else if(R||X)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let z=1;if(g&&g.dims.length>0){if(n.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(g.dims.length<3||g.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(n.dims[0]!==g.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(g.dims.length===3){if(n.dims[2]%g.dims[2]!==0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');B=g.dims[1]}else if(g.dims.length===5){if(g.dims[2]!==i.numHeads||g.dims[3]!==2||g.dims[4]!==F)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(p)throw new Error('Expect "value" be none when "key" has packed kv format.');B=g.dims[1]}else{if(g.dims[1]!==i.numHeads||g.dims[3]!==F)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');B=g.dims[2]}}else{if(n.dims.length!==3&&n.dims.length!==5)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(n.dims.length===5&&(n.dims[2]!==i.numHeads||n.dims[3]!==3))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');z=3}let L=0,K=!1,d=i.kvNumHeads?F*i.kvNumHeads:D;if(p&&p.dims.length>0){if(p.dims.length!==3&&p.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(n.dims[0]!==p.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(p.dims.length===3){if(B!==p.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');d=p.dims[2]}else{if(B!==p.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');d=p.dims[1]*p.dims[3],K=!0}}let w=a.length>4?a[5]:void 0;if(w&&w.dims.length!==1&&w.dims[0]!==M)throw new Error('Input "seqlens" is expected to have 1 dimension and the same dim 0 as batch_size');return{batchSize:M,sequenceLength:E,pastSequenceLength:v,kvSequenceLength:B,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:D,vHiddenSize:d,headSize:F,vHeadSize:Math.floor(d/i.kvNumHeads),numHeads:i.numHeads,kvNumHeads:i.kvNumHeads,nReps:i.numHeads/i.kvNumHeads,pastPresentShareBuffer:!1,maskType:L,scale:i.scale,broadcastResPosBias:!1,passPastInKv:K,qkvFormat:z}},Np=$t({perm:[0,2,1,3]}),B2=(a,i,n)=>{let g=i,p=n.kvNumHeads;return i.dims.length===3&&n.kvSequenceLength!==0&&(g=i.reshape([n.batchSize,n.kvSequenceLength,p,n.headSize]),g=a.compute(ma(g,Np.perm),{inputs:[g],outputs:[-1]})[0]),g},Lp=(a,i,n,g)=>{let p=7,h=["type","type"],C=[a*i],k=a*i,M=[{type:12,data:k},{type:12,data:i},{type:12,data:a}],E=D=>{let B=oA("seq_lens",n.dataType,n.dims),v=oA("total_seq_lens",g.dataType,g.dims),S=XA("pos_ids",p,C),F=[{name:"output_size",type:"u32"},{name:"sequence_length",type:"u32"},{name:"batch_size",type:"u32"}];return` 1809 ${D.registerUniforms(F).declareVariables(B,v,S)} 1810 ${D.mainStart()} 1811 ${D.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1812 let total_sequence_length = u32(${v.getByOffset("0")}); 1813 let is_subsequent_prompt = uniforms.sequence_length > 1 && uniforms.sequence_length != total_sequence_length; 1814 let is_first_prompt = !is_subsequent_prompt && uniforms.sequence_length == total_sequence_length; 1815 let batch_idx = global_idx / uniforms.sequence_length; 1816 let sequence_idx = i32(global_idx % uniforms.sequence_length); 1817 var pos_id: i32 = 0; 1818 let seqlen = ${B.getByOffset("batch_idx")}; 1819 let total_seqlen = seqlen + 1; 1820 if (is_first_prompt) { 1821 if (sequence_idx < total_seqlen) { 1822 pos_id = sequence_idx; 1823 } else { 1824 pos_id = 1; 1825 } 1826 ${S.setByOffset("global_idx","pos_id")} 1827 } else if (is_subsequent_prompt) { 1828 let past_seqlen = total_seqlen - i32(uniforms.sequence_length); 1829 if (past_seqlen + sequence_idx < total_seqlen) { 1830 pos_id = past_seqlen + sequence_idx; 1831 } else { 1832 pos_id = 1; 1833 } 1834 ${S.setByOffset("global_idx","pos_id")} 1835 } else if (global_idx < uniforms.batch_size) { 1836 ${S.setByOffset("global_idx","seqlen")} 1837 }; 1838 } 1839 `};return{name:"GeneratePositionIds",shaderCache:{hint:`${a};${i}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:C,dataType:p}],dispatchGroup:{x:Math.ceil(k/64)},programUniforms:M}),getShaderSource:E}},JC=(a,i)=>{var d;let n=zp(a.inputs,i);if(a.inputs[0].dims.length===5)throw new Error("Packed QKV is not implemented");if(((d=a.inputs[1])==null?void 0:d.dims.length)===5)throw new Error("Packed KV is not implemented");let g=a.inputs[0],p=a.inputs[1]&&a.inputs[1].dims.length>0?a.inputs[1]:void 0,h=a.inputs[2]&&a.inputs[2].dims.length>0?a.inputs[2]:void 0,C=a.inputs[3]&&a.inputs[3].dims.length!==0?a.inputs[3]:void 0,k=a.inputs[4]&&a.inputs[4].dims.length!==0?a.inputs[4]:void 0,M=a.inputs.length>4?a.inputs[5]:void 0,E=a.inputs.length>5?a.inputs[6]:void 0,D=n.kvNumHeads?n.kvNumHeads:n.numHeads,B=$t({axis:2,numOutputs:3,splitSizes:[n.numHeads*n.headSize,D*n.headSize,D*n.headSize]}),[v,S,F]=!p&&!h?a.compute(pc([g],B),{inputs:[g],outputs:[-1,-1,-1]}):[g,p,h],R,X;if(i.doRotary){let w=a.compute(Lp(n.batchSize,n.sequenceLength,M,E),{inputs:[M,E],outputs:[-1]})[0],e=a.inputs[7],u=a.inputs[8],y=$t({interleaved:i.rotaryInterleaved!==0,numHeads:n.numHeads,rotaryEmbeddingDim:0,scale:i.scale}),ee=[v,w,e,u],T=[-1];R=a.compute(H0(ee,y),{inputs:ee,outputs:T})[0],ee.splice(0,1,S);let O=$t({interleaved:i.rotaryInterleaved!==0,numHeads:n.kvNumHeads,rotaryEmbeddingDim:0,scale:i.scale});X=a.compute(H0(ee,O),{inputs:ee,outputs:T})[0]}let z=Ho(a,n.batchSize,n.numHeads,n.sequenceLength,n.headSize,i.doRotary?R:v,void 0,0),L=B2(a,i.doRotary?X:S,n),K=B2(a,F,n);qo(a,z,L,K,void 0,void 0,C,k,void 0,n,M,E)}}),y2,Rp,jp,qC,j6=kA(()=>{ct(),It(),ri(),kt(),y2=(a,i,n,g,p,h,C,k)=>{let M=Wr(h),E=M===1?"f32":`vec${M}f`,D=M===1?"vec2f":`mat2x${M}f`,B=p*C,v=64;B===1&&(v=256);let S=[p,C,h/M],F=[p,C,2],R=["rank","type","type"],X=[];X.push(...tt(S,F));let z=L=>{let K=oA("x",i.dataType,3,M),d=oA("scale",n.dataType,n.dims),w=oA("bias",g.dataType,g.dims),e=XA("output",1,3,2),u=[K,d,w,e];return` 1840 var<workgroup> workgroup_shared : array<${D}, ${v}>; 1841 const workgroup_size = ${v}u; 1842 ${L.declareVariables(...u)} 1843 ${L.mainStart(v)} 1844 let batch = workgroup_index / uniforms.x_shape[1]; 1845 let channel = workgroup_index % uniforms.x_shape[1]; 1846 let hight = uniforms.x_shape[2]; 1847 // initialize workgroup memory 1848 var sum = ${E}(0); 1849 var squared_sum = ${E}(0); 1850 for (var h = local_idx; h < hight; h += workgroup_size) { 1851 let value = ${E}(${K.get("batch","channel","h")}); 1852 sum += value; 1853 squared_sum += value * value; 1854 } 1855 workgroup_shared[local_idx] = ${D}(sum, squared_sum); 1856 workgroupBarrier(); 1857 1858 for (var currSize = workgroup_size >> 1; currSize > 0; currSize = currSize >> 1) { 1859 if (local_idx < currSize) { 1860 workgroup_shared[local_idx] = workgroup_shared[local_idx] + workgroup_shared[local_idx + currSize]; 1861 } 1862 workgroupBarrier(); 1863 } 1864 if (local_idx == 0) { 1865 let sum_final = ${ti("workgroup_shared[0][0]",M)} / f32(hight * ${M}); 1866 let squared_sum_final = ${ti("workgroup_shared[0][1]",M)} / f32(hight * ${M}); 1867 1868 let inv_std_dev = inverseSqrt(squared_sum_final - sum_final * sum_final + f32(${k})); 1869 let channel_scale = inv_std_dev * f32(scale[channel]); 1870 let channel_shift = f32(bias[channel]) - sum_final * channel_scale; 1871 output[workgroup_index] = vec2f(channel_scale, channel_shift); 1872 } 1873 }`};return a.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${M};${k};${v}`,inputDependencies:R},getRunData:()=>({outputs:[{dims:F,dataType:1}],dispatchGroup:{x:B},programUniforms:X}),getShaderSource:z},{inputs:[i,n,g],outputs:[-1]})[0]},Rp=(a,i,n)=>{let g=i[0].dims,p=g,h=2,C=g[0],k=g[1],M=Je.sizeFromDimension(g,h),E=Wr(M),D=Je.size(p)/E,B=y2(a,i[0],i[1],i[2],C,M,k,n.epsilon),v=[C,k,M/E],S=[C,k],F=["type","none"],R=X=>{let z=oA("x",i[0].dataType,v.length,E),L=oA("scale_shift",1,S.length,2),K=XA("output",i[0].dataType,v.length,E),d=[z,L,K];return` 1874 ${X.registerUniform("output_size","u32").declareVariables(...d)} 1875 ${X.mainStart()} 1876 ${X.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 1877 let outputIndices = ${K.offsetToIndices("global_idx")}; 1878 let batch = outputIndices[0]; 1879 let channel = outputIndices[1]; 1880 let scale_shift = ${L.getByIndices("vec2<u32>(batch, channel)")}; 1881 let value = ${z.getByOffset("global_idx")} * ${K.type.value}(scale_shift.x) + ${K.type.value}(scale_shift.y); 1882 ${K.setByOffset("global_idx","value")}; 1883 }`};a.compute({name:"InstanceNormalization",shaderCache:{hint:`${E}`,inputDependencies:F},getRunData:()=>({outputs:[{dims:p,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(D/64)},programUniforms:[{type:12,data:D},...tt(v,S,v)]}),getShaderSource:R},{inputs:[i[0],B]})},jp=(a,i,n)=>{let g=i[0].dims,p=g,h=g[0],C=g[g.length-1],k=Je.sizeFromDimension(g,1)/C,M=Wr(C),E=Je.size(p)/M,D=[{type:12,data:k},{type:12,data:Math.floor(C/M)}],B=["type","type"],v=!1,S=[0,g.length-1];for(let z=0;z<g.length-2;z++)v=v||g[z+1]!==1,S.push(z+1);v=v&&g[g.length-1]!==1;let F=v?a.compute(ma(a.inputs[0],S),{inputs:[a.inputs[0]],outputs:[-1]})[0]:a.inputs[0].reshape(Array.from({length:g.length},(z,L)=>g[S[L]])),R=y2(a,F,i[1],i[2],h,k,C,n.epsilon),X=z=>{let L=Cs(i[0].dataType),K=M===1?"vec2f":`mat${M}x2f`,d=u=>{let y=u===0?"x":"y",ee=M===1?"f32":`vec${M}f`;switch(M){case 1:return`${L}(${ee}(scale.${y}))`;case 2:return`vec2<${L}>(${ee}(scale[0].${y}, scale[1].${y}))`;case 4:return`vec4<${L}>(${ee}(scale[0].${y}, scale[1].${y}, scale[2].${y}, scale[3].${y}))`;default:throw new Error(`Not supported compoents ${M}`)}},w=oA("input",i[0].dataType,i[0].dims,M),e=XA("output",i[0].dataType,p,M);return` 1884 @group(0) @binding(0) var<storage, read> input : array<${w.type.storage}>; 1885 @group(0) @binding(1) var<storage, read> scale_input : array<${K}>; 1886 @group(0) @binding(2) var<storage, read_write> output : array<${e.type.storage}>; 1887 struct Uniforms {H: u32, C : u32}; 1888 @group(0) @binding(3) var<uniform> uniforms: Uniforms; 1889 1890 ${z.mainStart()} 1891 let current_image_number = global_idx / (uniforms.C * uniforms.H); 1892 let current_channel_number = global_idx % uniforms.C; 1893 1894 let scale_offset = current_image_number * uniforms.C + current_channel_number; 1895 let scale = scale_input[scale_offset]; 1896 output[global_idx] = fma(input[global_idx], ${d(0)}, ${d(1)}); 1897 }`};a.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${M}`,inputDependencies:B},getRunData:()=>({outputs:[{dims:p,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:D}),getShaderSource:X},{inputs:[i[0],R]})},qC=(a,i)=>{i.format==="NHWC"?jp(a,a.inputs,i):Rp(a,a.inputs,i)}}),Wp,Vp,$C,W6=kA(()=>{ct(),It(),kt(),Wp=a=>{if(!a||a.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Vp=(a,i,n)=>{let g=i.simplified,p=a[0].dims,h=a[1],C=!g&&a[2],k=p,M=Je.normalizeAxis(i.axis,p.length),E=Je.sizeToDimension(p,M),D=Je.sizeFromDimension(p,M),B=Je.size(h.dims),v=C?Je.size(C.dims):0;if(B!==D||C&&v!==D)throw new Error(`Size of X.shape()[axis:] == ${D}. 1898 Size of scale and bias (if provided) must match this. 1899 Got scale size of ${B} and bias size of ${v}`);let S=[];for(let w=0;w<p.length;++w)w<M?S.push(p[w]):S.push(1);let F=Wr(D),R=["type","type"],X=[{type:12,data:E},{type:1,data:D},{type:12,data:Math.floor(D/F)},{type:1,data:i.epsilon}];C&&R.push("type");let z=n>1,L=n>2,K=w=>{let e=Cs(a[0].dataType),u=[oA("x",a[0].dataType,a[0].dims,F),oA("scale",h.dataType,h.dims,F)];C&&u.push(oA("bias",C.dataType,C.dims,F)),u.push(XA("output",a[0].dataType,k,F)),z&&u.push(XA("mean_data_output",1,S)),L&&u.push(XA("inv_std_output",1,S));let y=[{name:"norm_count",type:"u32"},{name:"norm_size",type:"f32"},{name:"norm_size_vectorized",type:"u32"},{name:"epsilon",type:"f32"}];return` 1900 ${w.registerUniforms(y).declareVariables(...u)} 1901 ${w.mainStart()} 1902 ${w.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.norm_count")} 1903 let offset = global_idx * uniforms.norm_size_vectorized; 1904 var mean_vector = ${nc("f32",F)}; 1905 var mean_square_vector = ${nc("f32",F)}; 1906 1907 for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) { 1908 let value = ${ao(e,F,"x[h + offset]")}; 1909 mean_vector += value; 1910 mean_square_vector += value * value; 1911 } 1912 let mean = ${ti("mean_vector",F)} / uniforms.norm_size; 1913 let inv_std_dev = inverseSqrt(${ti("mean_square_vector",F)} / uniforms.norm_size ${g?"":"- mean * mean"} + uniforms.epsilon); 1914 1915 for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) { 1916 let f32input = ${ao(e,F,"x[j + offset]")}; 1917 let f32scale = ${ao(e,F,"scale[j]")}; 1918 output[j + offset] = ${u[0].type.value}((f32input ${g?"":"- mean"}) * inv_std_dev * f32scale 1919 ${C?`+ ${ao(e,F,"bias[j]")}`:""} 1920 ); 1921 } 1922 1923 ${z?"mean_data_output[global_idx] = mean":""};
1924 ${L?"inv_std_output[global_idx] = inv_std_dev":""}; 1925 }`},d=[{dims:k,dataType:a[0].dataType}];return z&&d.push({dims:S,dataType:1}),L&&d.push({dims:S,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${F};${n};${g}`,inputDependencies:R},getRunData:()=>({outputs:d,dispatchGroup:{x:Math.ceil(E/64)},programUniforms:X}),getShaderSource:K}},$C=(a,i)=>{Wp(a.inputs),a.compute(Vp(a.inputs,i,a.outputCount))}}),Yp,eb,V6=kA(()=>{It(),Nc(),Lc(),Yp=a=>{if(!a||a.length!==2)throw new Error("MatMul requires 2 inputs.");if(a[0].dims[a[0].dims.length-1]!==a[1].dims[a[1].dims.length-2])throw new Error("shared dimension does not match.")},eb=a=>{Yp(a.inputs);let i=co.calcShape(a.inputs[0].dims,a.inputs[1].dims,!0);if(!i)throw new Error("Can't use matmul on the given tensors");let n=i[i.length-1],g=a.inputs[0].dims[a.inputs[0].dims.length-1];if(n<8&&g<8)a.compute(zc(a.inputs,{activation:""},i));else{let p=i[i.length-2],h=Je.size(a.inputs[0].dims.slice(0,-2)),C=Je.size(a.inputs[1].dims.slice(0,-2));if(h!==1&&p===1&&C===1){let k=a.inputs[0].reshape([1,h,g]),M=a.inputs[1].reshape([1,g,n]),E=[1,h,n],D=[k,M];a.compute(Y0(D,{activation:""},i,E),{inputs:D})}else a.compute(Y0(a.inputs,{activation:""},i))}}}),Hp,Up,Kp,Ab,tb,Y6=kA(()=>{ct(),It(),Ur(),kt(),Hp=(a,i)=>{if(a.length<3||a.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let n=a[0],g=n.dims.length;if(n.dims[g-1]!==i.k)throw new Error("The last dim of input shape does not match the k value");let p=Math.floor((i.k+i.blockSize-1)/i.blockSize),h=i.blockSize/8*i.bits,C=a[1];if(!Je.areEqual(C.dims,[i.n,p,h]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let k=a[2].dims;if(Je.size(k)!==i.n*p)throw new Error("scales input size error.");if(a.length===4){let M=a[3].dims,E=i.bits>4?i.n*p:i.n*Math.floor((p+1)/2);if(Je.size(M)!==E)throw new Error("zeroPoints input size error.")}},Up=(a,i)=>{let n=a[0].dims,g=n.length,p=n[g-2],h=i.k,C=i.n,k=n.slice(0,g-2),M=Je.size(k),E=a[1].dims[2]/4,D=a[0].dataType,B=Wr(i.k),v=Wr(E),S=Wr(C),F=k.concat([p,C]),R=p>1&&C/S%2===0?2:1,X=Je.size(F)/S/R,z=64,L=[],K=[M,p,h/B],d=Je.convertShape(a[1].dims).slice();d.splice(-1,1,E/v),L.push(...tt(K)),L.push(...tt(d)),L.push(...tt(a[2].dims)),a.length===4&&L.push(...tt(Je.convertShape(a[3].dims)));let w=[M,p,C/S];L.push(...tt(w));let e=u=>{let y=K.length,ee=oA("a",a[0].dataType,y,B),T=oA("b",12,d.length,v),O=oA("scales",a[2].dataType,a[2].dims.length),ge=[ee,T,O],se=a.length===4?oA("zero_points",12,a[3].dims.length):void 0;se&&ge.push(se);let we=w.length,be=XA("output",a[0].dataType,we,S),Be=Cs(a[0].dataType),ve=(()=>{switch(B){case 1:return`array<${Be}, 8>`;case 2:return`mat4x2<${Be}>`;case 4:return`mat2x4<${Be}>`;default:throw new Error(`${B}-component is not supported.`)}})(),De=()=>{let Pe=` 1926 // reuse a data 1927 var input_offset = ${ee.indicesToOffset(`${ee.type.indices}(batch, row, word_offset)`)}; 1928 var a_data: ${ve}; 1929 for (var j: u32 = 0; j < ${8/B}; j++) { 1930 a_data[j] = ${ee.getByOffset("input_offset")}; 1931 input_offset++; 1932 } 1933 `;for(let me=0;me<S*R;me++)Pe+=` 1934 b_value = ${v===1?`b${me}_data`:`b${me}_data[i]`}; 1935 b_value_lower = unpack4xU8(b_value & b_mask); 1936 b_value_upper = unpack4xU8((b_value >> 4) & b_mask); 1937 b_quantized_values = ${ve}(${Array.from({length:4},(ie,Ie)=>`${Be}(b_value_lower[${Ie}]), ${Be}(b_value_upper[${Ie}])`).join(", ")}); 1938 b_dequantized_values = ${B===1?`${ve}(${Array.from({length:8},(ie,Ie)=>`(b_quantized_values[${Ie}] - ${se?`zero_point${me}`:"zero_point"}) * scale${me}`).join(", ")});`:`(b_quantized_values - ${ve}(${Array(8).fill(`${se?`zero_point${me}`:"zero_point"}`).join(",")})) * scale${me};`}; 1939 workgroup_shared[local_id.x * ${R} + ${Math.floor(me/S)}]${S>1?`[${me%S}]`:""} += ${Array.from({length:8/B},(ie,Ie)=>`${B===1?`a_data[${Ie}] * b_dequantized_values[${Ie}]`:`dot(a_data[${Ie}], b_dequantized_values[${Ie}])`}`).join(" + ")}; 1940 `;return Pe},je=()=>{let Pe=` 1941 var col_index = col * ${S}; 1942 ${se?` 1943 let zero_point_bytes_per_col = (nBlocksPerCol + 1) / 2; 1944 var zero_point_byte_count: u32; 1945 var zero_point_word_index: u32;
1946 var zero_point_byte_offset: u32; 1947 let zero_point_nibble_offset: u32 = block & 0x1u; 1948 var zero_point_bits_offset: u32; 1949 var zero_point_word: u32;`:` 1950 // The default zero point is 8 for unsigned 4-bit quantization. 1951 let zero_point = ${Be}(8);`} 1952 `;for(let me=0;me<S*R;me++)Pe+=` 1953 let scale${me} = ${O.getByOffset("col_index * nBlocksPerCol + block")}; 1954 ${se?` 1955 zero_point_byte_count = col_index * zero_point_bytes_per_col + (block >> 0x1u); 1956 zero_point_word_index = zero_point_byte_count >> 0x2u; 1957 zero_point_byte_offset = zero_point_byte_count & 0x3u; 1958 zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); 1959 zero_point_word = ${se.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; 1960 let zero_point${me} = ${Be}((zero_point_word) & 0xFu);`:""} 1961 col_index += 1;`;return Pe},Le=()=>{let Pe=`col_index = col * ${S};`;for(let me=0;me<S*R;me++)Pe+=` 1962 let b${me}_data = ${T.getByIndices(`${T.type.indices}(col_index, block, word)`)}; 1963 col_index += 1;`;return Pe+=` 1964 var b_value: u32; 1965 let b_mask: u32 = 0x0F0F0F0Fu; 1966 var b_value_lower: vec4<u32>; 1967 var b_value_upper: vec4<u32>; 1968 var b_quantized_values: ${ve}; 1969 var b_dequantized_values: ${ve};`,Pe};return` 1970 var<workgroup> workgroup_shared: array<${be.type.value}, ${R*z}>; 1971 ${u.declareVariables(...ge,be)} 1972 ${u.mainStart([z,1,1])} 1973 let output_indices = ${be.offsetToIndices(`(global_idx / ${z}) * ${R}`)}; 1974 let col = output_indices[2]; 1975 let row = output_indices[1]; 1976 let batch = output_indices[0]; 1977 let nBlocksPerCol = uniforms.b_shape[1]; 1978 1979 for (var block = local_id.x; block < nBlocksPerCol; block += ${z}) { 1980 //process one block 1981 var word_offset: u32 = block * ${i.blockSize/B}; 1982 ${je()} 1983 for (var word: u32 = 0; word < ${E}; word += ${v}) { 1984 ${Le()} 1985 for (var i: u32 = 0; i < ${v}; i++) { 1986 ${De()} 1987 word_offset += ${8/B}; 1988 } 1989 } 1990 } 1991 workgroupBarrier(); 1992 1993 if (local_id.x < ${R}) { 1994 var output_value: ${be.type.value} = ${be.type.value}(0); 1995 var workgroup_shared_offset: u32 = local_id.x; 1996 for (var b: u32 = 0u; b < ${z}u; b++) { 1997 output_value += workgroup_shared[workgroup_shared_offset]; 1998 workgroup_shared_offset += ${R}; 1999 } 2000 ${be.setByIndices(`${be.type.indices}(batch, row, col + local_id.x)`,"output_value")}; 2001 } 2002 }`};return{name:"MatMulNBits",shaderCache:{hint:`${i.blockSize};${i.bits};${B};${v};${S};${R};${z}`,inputDependencies:Array(a.length).fill("rank")},getRunData:()=>({outputs:[{dims:F,dataType:D}],dispatchGroup:{x:X},programUniforms:L}),getShaderSource:e}},Kp=(a,i)=>{let n=a[0].dims,g=n.length,p=n[g-2],h=i.k,C=i.n,k=n.slice(0,g-2),M=Je.size(k),E=a[1].dims[2]/4,D=a[0].dataType,B=Wr(i.k),v=Wr(E),S=k.concat([p,C]),F=128,R=C%8===0?8:C%4===0?4:1,X=F/R,z=X*v*8,L=z/B,K=z/i.blockSize,d=Je.size(S)/R,w=[],e=[M,p,h/B],u=Je.convertShape(a[1].dims).slice();u.splice(-1,1,E/v),w.push(...tt(e)),w.push(...tt(u)),w.push(...tt(a[2].dims)),a.length===4&&w.push(...tt(Je.convertShape(a[3].dims)));let y=[M,p,C];w.push(...tt(y));let ee=T=>{let O=e.length,ge=oA("a",a[0].dataType,O,B),se=oA("b",12,u.length,v),we=oA("scales",a[2].dataType,a[2].dims.length),be=[ge,se,we],Be=a.length===4?oA("zero_points",12,a[3].dims.length):void 0;Be&&be.push(Be);let ve=y.length,De=XA("output",a[0].dataType,ve),je=Cs(a[0].dataType),Le=()=>{switch(B){case 1:return` 2003 let a_data0 = vec4<${je}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]); 2004 let a_data1 = vec4<${je}>(sub_a[word_offset + 4], sub_a[word_offset + 5], sub_a[word_offset + 6], sub_a[word_offset + 7]);`;case 2:return` 2005 let a_data0 = vec4<${je}>(sub_a[word_offset], sub_a[word_offset + 1]); 2006 let a_data1 = vec4<${je}>(sub_a[word_offset + 2], sub_a[word_offset + 3]);`;case 4:return` 2007 let a_data0 = sub_a[word_offset]; 2008 let a_data1 = sub_a[word_offset + 1];`;default:throw new Error(`${B}-component is not supported.`)}};return` 2009 var<workgroup> sub_a: array<${ge.type.value}, ${L}>; 2010 var<workgroup> inter_results: array<array<${De.type.value}, ${X}>, ${R}>; 2011 ${T.declareVariables(...be,De)}
2012 ${T.mainStart([X,R,1])} 2013 let output_indices = ${De.offsetToIndices(`workgroup_index * ${R}`)}; 2014 let col = output_indices[2]; 2015 let row = output_indices[1]; 2016 let batch = output_indices[0]; 2017 let n_blocks_per_col = uniforms.b_shape[1]; 2018 let num_tiles = (n_blocks_per_col - 1) / ${K} + 1; 2019 2020 // Loop over shared dimension. 2021 for (var tile: u32 = 0; tile < num_tiles; tile += 1) { 2022 let a_col_start = tile * ${L}; 2023 // load one tile A data into shared memory. 2024 for (var a_offset = local_idx; a_offset < ${L}; a_offset += ${F}) 2025 { 2026 let a_col = a_col_start + a_offset; 2027 if (a_col < uniforms.a_shape[2]) 2028 { 2029 sub_a[a_offset] = ${ge.getByIndices(`${ge.type.indices}(batch, row, a_col)`)}; 2030 } else { 2031 sub_a[a_offset] = ${ge.type.value}(0); 2032 } 2033 } 2034 workgroupBarrier(); 2035 2036 // each thread process one block 2037 let b_row = col + local_id.y; 2038 let block = tile * ${K} + local_id.x; 2039 ${Be?` 2040 let zero_point_bytes_per_col = (n_blocks_per_col + 1) / 2; 2041 let zero_point_byte_count = b_row * zero_point_bytes_per_col + (block >> 0x1u); 2042 let zero_point_word_index = zero_point_byte_count >> 0x2u; 2043 let zero_point_byte_offset = zero_point_byte_count & 0x3u; 2044 let zero_point_nibble_offset: u32 = block & 0x1u; 2045 let zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); 2046 let zero_point_word = ${Be.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; 2047 let zero_point = ${je}((zero_point_word) & 0xFu);`:` 2048 // The default zero point is 8 for unsigned 4-bit quantization. 2049 let zero_point = ${je}(8);`} 2050 let scale = ${we.getByOffset("b_row * n_blocks_per_col + block")}; 2051 let b_data = ${se.getByIndices(`${se.type.indices}(b_row, block, 0)`)}; 2052 var word_offset = local_id.x * ${i.blockSize/B}; 2053 for (var i: u32 = 0; i < ${v}; i++) { 2054 ${Le()} 2055 let b_value = ${v===1?"b_data":"b_data[i]"}; 2056 let b_value_lower = unpack4xU8(b_value & 0x0F0F0F0Fu); 2057 let b_value_upper = unpack4xU8((b_value >> 4) & 0x0F0F0F0Fu); 2058 let b_quantized_values = mat2x4<${je}>(${Array.from({length:4},(Pe,me)=>`${je}(b_value_lower[${me}]), ${je}(b_value_upper[${me}])`).join(", ")}); 2059 let b_dequantized_values = (b_quantized_values - mat2x4<${je}>(${Array(8).fill("zero_point").join(",")})) * scale; 2060 inter_results[local_id.y][local_id.x] += ${Array.from({length:2},(Pe,me)=>`${`dot(a_data${me}, b_dequantized_values[${me}])`}`).join(" + ")}; 2061 word_offset += ${8/B}; 2062 } 2063 workgroupBarrier(); 2064 } 2065 2066 if (local_idx < ${R}) { 2067 var output_value: ${De.type.value} = ${De.type.value}(0); 2068 for (var b = 0u; b < ${X}; b++) { 2069 output_value += inter_results[local_idx][b]; 2070 } 2071 if (col + local_idx < uniforms.output_shape[2]) 2072 { 2073 ${De.setByIndices(`${De.type.indices}(batch, row, col + local_idx)`,"output_value")} 2074 } 2075 } 2076 }`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${i.blockSize};${B};${v};${X};${R}`,inputDependencies:Array(a.length).fill("rank")},getRunData:()=>({outputs:[{dims:S,dataType:D}],dispatchGroup:{x:d},programUniforms:w}),getShaderSource:ee}},Ab=(a,i)=>{Hp(a.inputs,i),i.blockSize===32&&a.adapterInfo.isVendor("intel")&&a.adapterInfo.isArchitecture("gen-12lp")?a.compute(Kp(a.inputs,i)):a.compute(Up(a.inputs,i))},tb=a=>$t(a)}),Xp,Zp,Jp,qp,$p,em,Am,tm,rb,H6=kA(()=>{ct(),It(),kt(),Xp=a=>{if(!a||a.length<1)throw new Error("Too few inputs");if(a[0].dataType!==1&&a[0].dataType!==10)throw new Error("Input type must be float or float16.");if(a.length>=2){let i=a[0].dims.length*2===a[1].dims[0];if(a.length===4&&(i=a[3].dims[0]*2===a[1].dims[0]),!i)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},Zp=(a,i,n)=>{let g="";for(let p=i-1;p>=0;--p)g+=` 2077 k = i32(${a.indicesGet("indices",p)}) - ${$A("uniforms.pads",p,n)}; 2078 if (k < 0) { 2079 break; 2080 } 2081 if (k >
2081= i32(${$A("uniforms.x_shape",p,i)})) { 2082 break; 2083 } 2084 offset += k * i32(${$A("uniforms.x_strides",p,i)}); 2085 `;return` 2086 value = ${a.type.value}(uniforms.constant_value); 2087 for (var i = 0; i < 1; i++) { 2088 var offset = 0; 2089 var k = 0; 2090 ${g} 2091 value = x[offset]; 2092 } 2093 `},Jp=(a,i,n)=>{let g="";for(let p=i-1;p>=0;--p)g+=` 2094 k = i32(${a.indicesGet("indices",p)}) - ${$A("uniforms.pads",p,n)}; 2095 if (k < 0) { 2096 k = -k; 2097 } 2098 { 2099 let _2n_1 = 2 * (i32(${$A("uniforms.x_shape",p,i)}) - 1); 2100 k = k % _2n_1; 2101 if(k >= i32(${$A("uniforms.x_shape",p,i)})) { 2102 k = _2n_1 - k; 2103 } 2104 } 2105 offset += k * i32(${$A("uniforms.x_strides",p,i)}); 2106 `;return` 2107 var offset = 0; 2108 var k = 0; 2109 ${g} 2110 value = x[offset]; 2111 `},qp=(a,i,n)=>{let g="";for(let p=i-1;p>=0;--p)g+=` 2112 k = i32(${a.indicesGet("indices",p)}) - ${$A("uniforms.pads",p,n)}; 2113 if (k < 0) { 2114 k = 0; 2115 } 2116 if (k >= i32(${$A("uniforms.x_shape",p,i)})) { 2117 k = i32(${$A("uniforms.x_shape",p,i)}) - 1; 2118 } 2119 offset += k * i32(${$A("uniforms.x_strides",p,i)}); 2120 `;return` 2121 var offset = 0; 2122 var k = 0; 2123 ${g} 2124 value = x[offset]; 2125 `},$p=(a,i,n)=>{let g="";for(let p=i-1;p>=0;--p)g+=` 2126 k = i32(${a.indicesGet("indices",p)}) - ${$A("uniforms.pads",p,n)}; 2127 if (k < 0) { 2128 k += i32(${$A("uniforms.x_shape",p,i)}]); 2129 } 2130 if (k >= i32(${$A("uniforms.x_shape",p,i)})) { 2131 k -= i32(${$A("uniforms.x_shape",p,i)}); 2132 } 2133 offset += k * i32(${$A("uniforms.x_strides",p,i)}); 2134 `;return` 2135 var offset = 0; 2136 var k = 0; 2137 ${g} 2138 value = x[offset]; 2139 `},em=(a,i,n)=>{switch(n.mode){case 0:return Zp(a,i,n.pads.length);case 1:return Jp(a,i,n.pads.length);case 2:return qp(a,i,n.pads.length);case 3:return $p(a,i,n.pads.length);default:throw new Error("Invalid mode")}},Am=(a,i)=>{let n=Je.padShape(a[0].dims.slice(),i.pads),g=a[0].dims,p=Je.size(n),h=[{type:12,data:p},{type:6,data:i.pads}],C=a.length>=3&&a[2].data;i.mode===0&&h.push({type:C?a[2].dataType:1,data:i.value}),h.push(...tt(a[0].dims,n));let k=["rank"],M=E=>{let D=XA("output",a[0].dataType,n.length),B=oA("x",a[0].dataType,g.length),v=B.type.value,S=em(D,g.length,i),F=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:i.pads.length}];return i.mode===0&&F.push({name:"constant_value",type:C?v:"f32"}),` 2140 ${E.registerUniforms(F).declareVariables(B,D)} 2141 ${E.mainStart()} 2142 ${E.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 2143 2144 let indices = ${D.offsetToIndices("global_idx")}; 2145 2146 var value = ${v}(0); 2147 ${S} 2148 output[global_idx] = value; 2149 }`};return{name:"Pad",shaderCache:{hint:`${i.mode}${C}`,inputDependencies:k},getRunData:()=>({outputs:[{dims:n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(Je.size(n)/64)},programUniforms:h}),getShaderSource:M}},tm=(a,i)=>{if(a.length>1){let n=a[1].getBigInt64Array(),g=a.length>=3&&a[2].data?a[2].dataType===10?a[2].getUint16Array()[0]:a[2].getFloat32Array()[0]:0,p=a[0].dims.length,h=new Int32Array(2*p).fill(0);if(a.length>=4){let k=a[3].getBigInt64Array();for(let M=0;M<k.length;M++)h[Number(k[M])]=Number(n[M]),h[Number(k[M])+p]=Number(n[M+k.length])}else n.forEach((k,M)=>h[Number(M)]=Number(k));let C=[];return h.forEach(k=>C.push(k)),{mode:i.mode,value:g,pads:C}}else return i},rb=(a,i)=>{Xp(a.inputs);let n=tm(a.inputs,i);a.compute(Am(a.inputs,n),{inputs:[0]})}}),zo,D2,T2,P2,G2,rm,sm,Q2,F2,sb,ab,S2,nb,ib,O2,ob,lb,cb,ub,U6=kA(()=>{ja(),ct(),It(),kt(),zo=a=>{if(Dr.webgpu.validateInputContent&&(!a||a.length!==1))throw new Error("Pool ops requires 1 input.")},D2=(a,i,n)=>{let g=i.format==="NHWC",p=a.dims.slice();g&&p.splice(1,0,p.pop());let h=Object.hasOwnProperty.call(i,"dilations"),C=i.kernelShape.slice(),k=i.strides.slice(),M=h?i.dilations.slice():[],E=i.pads.slice();W0.adjustPoolAttributes(n,p,C,k,M,E);let D=W0.computePoolOutputShape(n,p,k,M,C,E,i.autoPad),B=Object.assign({},i);h?Object.assign(B,{kernelShape:C,strides:k,pads:E,dilations:M,cacheKey:i.cacheKey}):Object.assign(B,{kernelShape:C,strides:k,pads:E,cacheKey:i.cacheKey});let v=D.slice();return v.push(v.splice(1,1)[0]),[B,g?v:D]},T2=(a,i)=>
vendor: 4,332 bytes, lines 2149-2219
2149{let n=i.format==="NHWC",g=Je.size(a),p=Je.size(i.kernelShape),h=[{type:12,data:g},{type:12,data:p}],C=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(i.kernelShape.length<=2){let k=i.kernelShape[i.kernelShape.length-1],M=i.strides[i.strides.length-1],E=i.pads[i.pads.length/2-1],D=i.pads[i.pads.length-1],B=!!(E+D);h.push({type:12,data:k},{type:12,data:M},{type:12,data:E},{type:12,data:D}),C.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let v=!1;if(i.kernelShape.length===2){let S=i.kernelShape[i.kernelShape.length-2],F=i.strides[i.strides.length-2],R=i.pads[i.pads.length/2-2],X=i.pads[i.pads.length-2];v=!!(R+X),h.push({type:12,data:S},{type:12,data:F},{type:12,data:R},{type:12,data:X}),C.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[h,C,!0,B,v]}else{if(n)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let k=Je.computeStrides(i.kernelShape);h.push({type:12,data:k},{type:12,data:i.pads},{type:12,data:i.strides}),C.push({name:"kernelStrides",type:"u32",length:k.length},{name:"pads",type:"u32",length:i.pads.length},{name:"strides",type:"u32",length:i.strides.length});let M=i.pads.reduce((E,D)=>E+D);return[h,C,!!M,!1,!1]}},P2=(a,i,n,g,p,h,C,k,M,E,D,B)=>{let v=p.format==="NHWC",S=i.type.value,F=XA("output",i.type.tensor,g);if(p.kernelShape.length<=2){let R="",X="",z="",L=n-(v?2:1);if(D?R=` 2150 for (var i: u32 = 0u; i < uniforms.kw; i++) { 2151 xIndices[${L}] = indices[${L}] * uniforms.sw - uniforms.pwStart + i; 2152 if (xIndices[${L}] < 0 || xIndices[${L}] 2153 >= uniforms.x_shape[${L}]) { 2154 pad++; 2155 continue; 2156 } 2157 let x_val = x[${i.indicesToOffset("xIndices")}]; 2158 ${h} 2159 }`:R=` 2160 for (var i: u32 = 0u; i < uniforms.kw; i++) { 2161 xIndices[${L}] = indices[${L}] * uniforms.sw - uniforms.pwStart + i; 2162 let x_val = x[${i.indicesToOffset("xIndices")}]; 2163 ${h} 2164 }`,p.kernelShape.length===2){let K=n-(v?3:2);B?X=` 2165 for (var j: u32 = 0u; j < uniforms.kh; j++) { 2166 xIndices[${K}] = indices[${K}] * uniforms.sh - uniforms.phStart + j; 2167 if (xIndices[${K}] < 0 || xIndices[${K}] >= uniforms.x_shape[${K}]) { 2168 pad += i32(uniforms.kw); 2169 continue; 2170 } 2171 `:X=` 2172 for (var j: u32 = 0u; j < uniforms.kh; j++) { 2173 xIndices[${K}] = indices[${K}] * uniforms.sh - uniforms.phStart + j; 2174 `,z=` 2175 } 2176 `}return` 2177 ${a.registerUniforms(M).declareVariables(i,F)} 2178 2179 ${a.mainStart()} 2180 ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 2181 2182 let indices = ${F.offsetToIndices("global_idx")}; 2183 var xIndices = ${F.offsetToIndices("global_idx")}; 2184 2185 var value = ${S}(${k}); 2186 var pad = 0; 2187 ${X} 2188 ${R} 2189 ${z} 2190 ${C} 2191 2192 output[global_idx] = value; 2193 }`}else{if(v)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let R=p.kernelShape.length,X=p.pads.length,z="";return E?z=` 2194 if (xIndices[j] >= uniforms.x_shape[j]) { 2195 pad++; 2196 isPad = true; 2197 break; 2198 } 2199 } 2200 if (!isPad) { 2201 let x_val = x[${i.indicesToOffset("xIndices")}]; 2202 ${h} 2203 }`:z=` 2204 } 2205 let x_val = x[${i.indicesToOffset("xIndices")}]; 2206 ${h} 2207 `,` 2208 ${a.registerUniforms(M).declareVariables(i,F)} 2209 2210 ${a.mainStart()} 2211 ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 2212 let indices = ${F.offsetToIndices("global_idx")}; 2213 var xIndices = ${F.offsetToIndices("global_idx")}; 2214 2215 var offsets: array<u32, ${R}>; 2216 2217 var value = ${S}(${k}); 2218 var pad = 0; 2219 var isPad = false;
2220 2221 for (var i: u32 = 0u; i < uniforms.kernelSize; i++) { 2222 var offset = i; 2223 for (var j = 0u; j < ${R-1}u; j++) { 2224 offsets[j] = offset / ${$A("uniforms.kernelStrides","j",R)}; 2225 offset -= offsets[j] * ${$A("uniforms.kernelStrides","j",R)}; 2226 } 2227 offsets[${R-1}] = offset; 2228 2229 isPad = false; 2230 for (var j = ${n-R}u; j < ${n}u; j++) { 2231 xIndices[j] = indices[j] * ${$A("uniforms.strides",`j - ${n-R}u`,R)} 2232 + offsets[j - ${n-R}u] - ${$A("uniforms.pads","j - 2u",X)}; 2233 ${z} 2234 } 2235 ${C} 2236 2237 output[global_idx] = value; 2238 }`}},G2=a=>`${a.format};${a.ceilMode};${a.autoPad};${a.kernelShape.length}`,rm=a=>`${G2(a)};${a.countIncludePad}`,sm=a=>`${G2(a)};${a.storageOrder};${a.dilations}`,Q2=a=>({format:a.format,autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][a.auto_pad],ceilMode:a.ceil_mode,kernelShape:a.kernel_shape,strides:a.strides,pads:a.pads}),F2=(a,i,n,g)=>{let[p,h]=D2(i,g,n),C=oA("x",i.dataType,i.dims.length),k=C.type.value,M="value += x_val;",E="";p.countIncludePad?E+=`value /= ${k}(uniforms.kernelSize);`:E+=`value /= ${k}(i32(uniforms.kernelSize) - pad);`;let[D,B,v,S,F]=T2(h,p);D.push(...tt(i.dims,h));let R=["rank"];return{name:a,shaderCache:{hint:`${g.cacheKey};${v};${S};${F}`,inputDependencies:R},getRunData:()=>({outputs:[{dims:h,dataType:i.dataType}],dispatchGroup:{x:Math.ceil(Je.size(h)/64)},programUniforms:D}),getShaderSource:X=>P2(X,C,i.dims.length,h.length,p,M,E,0,B,v,S,F)}},sb=a=>{let i=a.count_include_pad!==0,n=Q2(a);if(n.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let g={countIncludePad:i,...n,cacheKey:""};return{...g,cacheKey:rm(g)}},ab=(a,i)=>{zo(a.inputs),a.compute(F2("AveragePool",a.inputs[0],!1,i))},S2={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},nb=a=>{let i=a.format;return{format:i,...S2,cacheKey:i}},ib=(a,i)=>{zo(a.inputs),a.compute(F2("GlobalAveragePool",a.inputs[0],!0,i))},O2=(a,i,n,g)=>{let[p,h]=D2(i,g,n),C=` 2239 value = max(x_val, value); 2240 `,k="",M=oA("x",i.dataType,i.dims.length),E=["rank"],[D,B,v,S,F]=T2(h,p);return D.push(...tt(i.dims,h)),{name:a,shaderCache:{hint:`${g.cacheKey};${v};${S};${F}`,inputDependencies:E},getRunData:()=>({outputs:[{dims:h,dataType:i.dataType}],dispatchGroup:{x:Math.ceil(Je.size(h)/64)},programUniforms:D}),getShaderSource:R=>P2(R,M,i.dims.length,h.length,p,C,k,i.dataType===10?-65504:-1e5,B,v,S,F)}},ob=(a,i)=>{zo(a.inputs),a.compute(O2("MaxPool",a.inputs[0],!1,i))},lb=a=>{let i=a.storage_order,n=a.dilations,g=Q2(a);if(i!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(g.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let p={storageOrder:i,dilations:n,...g,cacheKey:""};return{...p,cacheKey:sm(p)}},cb=a=>{let i=a.format;return{format:i,...S2,cacheKey:i}},ub=(a,i)=>{zo(a.inputs),a.compute(O2("GlobalMaxPool",a.inputs[0],!0,i))}}),am,nm,db,fb,K6=kA(()=>{ct(),It(),Ur(),kt(),am=(a,i)=>{if(a.length<2||a.length>3)throw new Error("DequantizeLinear requires 2 or 3 inputs.");if(a.length===3&&a[1].dims===a[2].dims)throw new Error("x-scale and x-zero-point must have the same shape.");if(a.length===3&&a[0].dataType!==a[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(a[0].dataType===6&&a.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");if(a[1].dims.length!==0&&a[1].dims.length!==1&&a[1].dims.length!==a[0].dims.length)throw new Error("scale input must be a scalar, a 1D tensor, or have the same rank as the input tensor.");if(a.length>2){if(a[0].dataType!==a[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(a[1].dims.length!==a[2].dims.length)throw new Error("scale and zero-point inputs must have the same rank.");if(!a[1].dims.map((n,g)=>n===a[2].dims[g]).reduce((n,g)=>n&&g,!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(i.blockSize>0){if(a[1].dims.length===0||a[1].dims.length===1&&a[1].dims[0]===1)throw new Error("blockSize must be set only for block quantization.");
vendor: 4,772 bytes, lines 2240-2282
2240if(!a[1].dims.map((p,h)=>h===i.axis||p===a[0].dims[h]).reduce((p,h)=>p&&h,!0))throw new Error("For block qunatization, scale input shape to match the input shape except for the axis");if(a[1].dims.length!==a[0].dims.length)throw new Error("For block qunatization the scale input rank must be the same as the x rank.");let n=a[0].dims[i.axis],g=a[1].dims[i.axis];if(i.blockSize<Math.ceil(n/g)||i.blockSize>Math.ceil(n/(g-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},nm=(a,i)=>{let n=Je.normalizeAxis(i.axis,a[0].dims.length),g=a[0].dataType,p=g===3,h=a[0].dims,C=a[1].dataType,k=Je.size(h),M=g===3||g===2,E=M?[Math.ceil(Je.size(a[0].dims)/4)]:a[0].dims,D=a[1].dims,B=a.length>2?a[2]:void 0,v=B?M?[Math.ceil(Je.size(B.dims)/4)]:B.dims:void 0,S=D.length===0||D.length===1&&D[0]===1,F=S===!1&&D.length===1,R=Wr(k),X=S&&(!M||R===4),z=X?R:1,L=X&&!M?R:1,K=oA("input",M?12:g,E.length,L),d=oA("scale",C,D.length),w=B?oA("zero_point",M?12:g,v.length):void 0,e=XA("output",C,h.length,z),u=[K,d];w&&u.push(w);let y=[E,D];B&&y.push(v);let ee=[{type:12,data:k/z},{type:12,data:n},{type:12,data:i.blockSize},...tt(...y,h)],T=O=>{let ge=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return` 2241 ${O.registerUniforms(ge).declareVariables(...u,e)} 2242 ${O.mainStart()} 2243 ${O.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 2244 let output_indices = ${e.offsetToIndices("global_idx")}; 2245 2246 // Set input x 2247 ${M?` 2248 let input = ${K.getByOffset("global_idx / 4")}; 2249 let x_vec = ${p?"unpack4xI8(input)":"unpack4xU8(input)"}; 2250 let x_value = ${z===1?"x_vec[global_idx % 4]":"x_vec"};`:`let x_value = ${K.getByOffset("global_idx")};`}; 2251 2252 // Set scale input 2253 ${S?`let scale_value= ${d.getByOffset("0")}`:F?` 2254 let scale_index = ${e.indicesGet("output_indices","uniforms.axis")}; 2255 let scale_value= ${d.getByOffset("scale_index")};`:` 2256 var scale_indices: ${d.type.indices} = output_indices; 2257 let index = ${d.indicesGet("scale_indices","uniforms.axis")} / uniforms.block_size; 2258 ${d.indicesSet("scale_indices","uniforms.axis","index")}; 2259 let scale_value= ${d.getByIndices("scale_indices")};`}; 2260 2261 // Set zero-point input 2262 ${w?S?M?` 2263 let zero_point_input = ${w.getByOffset("0")}; 2264 let zero_point_vec = ${p?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; 2265 let zero_point_value= zero_point_vec[0]`:`let zero_point_value = ${w.getByOffset("0")}`:F?M?` 2266 let zero_point_index = ${e.indicesGet("output_indices","uniforms.axis")}; 2267 let zero_point_input = ${w.getByOffset("zero_point_index / 4")}; 2268 let zero_point_vec = ${p?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; 2269 let zero_point_value = zero_point_vec[zero_point_index % 4]`:` 2270 let zero_point_index = ${e.indicesGet("output_indices","uniforms.axis")}; 2271 let zero_point_value = ${w.getByOffset("zero_point_index")};`:M?` 2272 let zero_point_offset = ${d.indicesToOffset("scale_indices")}; 2273 let zero_point_input = ${w.getByOffset("zero_point_offset / 4")}; 2274 let zero_point_vec = ${p?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; 2275 let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${w.getByIndices("scale_indices")};`:`let zero_point_value = ${M?p?"i32":"u32":K.type.value}(0);`}; 2276 // Compute and write output 2277 ${e.setByOffset("global_idx",`${e.type.value}(x_value - zero_point_value) * scale_value`)}; 2278 }`};return{name:"DequantizeLinear",shaderCache:{hint:i.cacheKey,inputDependencies:w?["rank","rank","rank"]:["rank","rank"]},getShaderSource:T,getRunData:()=>({outputs:[{dims:h,dataType:C}],dispatchGroup:{x:Math.ceil(k/z/64),y:1,z:1},programUniforms:ee})}},db=(a,i)=>{am(a.inputs,i),a.compute(nm(a.inputs,i))},fb=a=>$t({axis:a.axis,blockSize:a.blockSize})}),im,om,gb,X6=kA(()=>{ja(),ct(),kt(),im=(a,i,n)=>{let g=a===i,p=a<i&&n<0,h=a>i&&n>0;if(g||p||h)throw new Error("Range these inputs' contents are invalid.")},om=(a,i,n,g)=>{let p=Math.abs(Math.ceil((i-a)/n)),h=[p],C=p,k=[{type:12,data:C},{type:g,data:a},{type:g,data:n},...tt(h)],M=E=>{let D=XA("output",g,h.length),B=D.type.value,v=[{name:"outputSize",type:"u32"},{name:"start",type:B},{name:"delta",type:B}];return` 2279 ${E.registerUniforms(v).declareVariables(D)} 2280 ${E.mainStart()} 2281 ${E.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 2282 output[global_idx] = uniforms.start + ${B}
2282(global_idx) * uniforms.delta; 2283 }`};return{name:"Range",shaderCache:{hint:`${g}`},getShaderSource:M,getRunData:()=>({outputs:[{dims:h,dataType:g}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:k})}},gb=a=>{let i=0,n=0,g=0;a.inputs[0].dataType===6?(i=a.inputs[0].getInt32Array()[0],n=a.inputs[1].getInt32Array()[0],g=a.inputs[2].getInt32Array()[0]):a.inputs[0].dataType===1&&(i=a.inputs[0].getFloat32Array()[0],n=a.inputs[1].getFloat32Array()[0],g=a.inputs[2].getFloat32Array()[0]),Dr.webgpu.validateInputContent&&im(i,n,g),a.compute(om(i,n,g,a.inputs[0].dataType),{inputs:[]})}}),lm,_2,z2,cm,pb,mb,Z6=kA(()=>{ct(),It(),Ur(),kt(),lm=(a,i,n,g)=>{if(a!=="none"&&g!=="i32"&&g!=="u32"&&g!=="f32")throw new Error(`Input ${g} is not supported with reduction ${a}.`);let p=`{ 2284 var oldValue = 0; 2285 loop { 2286 let newValueF32 =`,h=`; 2287 let newValue = bitcast<i32>(newValueF32); 2288 let res = atomicCompareExchangeWeak(&${i}, oldValue, newValue); 2289 if res.exchanged { 2290 break; 2291 } 2292 oldValue = res.old_value; 2293 } 2294 }`;switch(a){case"none":return`${i}=${n};`;case"add":return g==="i32"||g==="u32"?`atomicAdd(&${i}, bitcast<${g}>(${n}));`:` 2295 ${p}bitcast<${g}>(oldValue) + (${n})${h}`;case"max":return g==="i32"||g==="u32"?`atomicMax(&${i}, bitcast<${g}>(${n}));`:` 2296 ${p}max(bitcast<f32>(oldValue), (${n}))${h}`;case"min":return g==="i32"||g==="u32"?`atomicMin(&${i}, bitcast<${g}>(${n}));`:`${p}min(bitcast<${g}>(oldValue), (${n}))${h}`;case"mul":return`${p}(bitcast<${g}>(oldValue) * (${n}))${h}`;default:throw new Error(`Reduction ${a} is not supported.`)}},_2=(a,i)=>`${a===1?` 2297 let element_count_dim = uniforms.output_strides; 2298 let dim_value = uniforms.output_shape;`:` 2299 let element_count_dim = uniforms.output_strides[${i?"i - indices_start":"i"}]; 2300 let dim_value = uniforms.output_shape[${i?"i - indices_start":"i"} + uniforms.last_index_dimension];`} 2301 2302 if (index >= 0) { 2303 if (index >= i32(dim_value)) { 2304 index = i32(dim_value - 1); 2305 } 2306 } else { 2307 if (index < -i32(dim_value)) { 2308 index = 0; 2309 } else { 2310 index += i32(dim_value); 2311 } 2312 } 2313 data_offset += u32((u32(index) * element_count_dim));`,z2=(a,i,n)=>`for (var i = 0u; i < uniforms.num_updates_elements; i++) { 2314 let value = updates[uniforms.num_updates_elements * ${n?"global_idx":"idx"} + i]; 2315 ${lm(a.reduction,"output[data_offset + i]","value",i)} 2316 }`,cm=(a,i)=>{let n=a[0].dims,g=a[1].dims,p=n,h=1,C=Math.ceil(Je.size(g)/h),k=g[g.length-1],M=Je.sizeFromDimension(n,k),E=Je.sizeFromDimension(g,0)/k,D=[{type:12,data:C},{type:12,data:k},{type:12,data:M},...tt(a[1].dims,a[2].dims,p)],B=v=>{let S=oA("indices",a[1].dataType,a[1].dims.length),F=oA("updates",a[2].dataType,a[2].dims.length,h),R=i.reduction!=="none"&&i.reduction!==""?Vh("output",a[0].dataType,p.length):XA("output",a[0].dataType,p.length,h);return` 2317 ${v.registerUniform("output_size","u32").registerUniform("last_index_dimension","u32").registerUniform("num_updates_elements","u32").declareVariables(S,F,R)} 2318 ${v.mainStart()} 2319 ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 2320 var hasDuplicates = false; 2321 if (${i.reduction==="none"}) { 2322 for (var i = 0; i < ${E}; i = i + 1) { 2323 for (var j = i + 1; j < ${E}; j = j + 1) { 2324 var index_i = i32(indices[i].x); 2325 var index_j = i32(indices[j].x); 2326 if (index_i == index_j) { 2327 hasDuplicates = true; 2328 break; 2329 } 2330 } 2331 if (hasDuplicates) { 2332 break; 2333 } 2334 } 2335 } 2336 2337 if (${i.reduction==="none"} && hasDuplicates) { 2338 if (global_idx != 0u) { 2339 return; 2340 } 2341 // Process each index-update pair individually when duplicates exist 2342 for (var idx = 0u; idx < ${E}u; idx++) { 2343 var data_offset = 0u; 2344 for (var i = 0u; i < uniforms.last_index_dimension; i++) { 2345 var index = i32(indices[idx * uniforms.last_index_dimension + i].x); 2346 ${_2(n.length,!1)} 2347 } 2348 ${z2(i,R.type.value,!1)} 2349 } 2350 return; 2351 } 2352 2353 var data_offset = 0u; 2354 var indices_start = uniforms.last_index_dimension * global_idx; 2355 var indices_end = indices_start + uniforms.last_index_dimension; 2356 for (var i = indices_start; i < indices_end; i++) { 2357 var index = i32(indices[i].x); 2358 ${_2(n.length,!0)} 2359 } 2360 ${z2(i,R.type.value,!0)} 2361 }`};return{name:"ScatterND",shaderCache:{hint:`${i.cacheKey}_${i.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:p,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:D}),getShaderSource:B}},pb=a=>$t({reduction:a.reduction}),mb=(a,i)=>{a.compute(cm(a.inputs,i),{inputs:[a.inputs[1],a.inputs[2]],outputs:[]})}}),um,dm,fm,N2,gm,pm,mm,hm,Cm,bm,Im,wm,L2,km,Mm,Em,vm,xm,hb,Cb,J6=kA(()=>{ct(),It(),Ur(),kt(),um=(a,i)=>{if(a.every(n=>n>0||(()=>{throw new Error("Resize requires scales input values to be positive")})),a.length>0){if(i.mode==="linear"){if(!(a.length===2||a.length===3||a.length===4&&a[0]===1&&a[1]===1||a.length===4&&a[0]===1&&a[3]===1||a.length===5&&a[0]===1&&a[1]===1))throw new Error(`For linear mode, Resize requires scales to be 2D, 3D, 4D with either two outermost or one innermost and 2362 one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(i.mode==="cubic"&&!(a.length===2||a.length===4&&a[0]===1&&a[1]===1||a.length===4&&a[0]===1&&a[3]===1))throw new Error("Resize requires scales input size to be 2 or 4 for cubic mode")}},dm=(a,i,n)=>{i.every(p=>p>=0&&p<n||(()=>{throw new Error("Resize requires axes input values to be positive and less than rank")}));let g=new Array(n).fill(1);
vendor: 29,975 bytes, lines 2362-2744
2362return i.forEach((p,h)=>g[p]=a[h]),g},fm=(a,i,n,g,p,h)=>{let[C,k,M]=n>10?[1,2,3]:[-1,a.length>1?1:-1,-1],E=a[0].dims.length;if(C>0&&a.length>C&&a[C].dims.length>0)a[C].getFloat32Array().forEach(D=>h.push(D));else if(i.coordinateTransformMode==="tf_crop_and_resize")throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(k>0&&a.length>k&&a[k].dims.length===1&&a[k].dims[0]>0){if(a[k].getFloat32Array().forEach(D=>g.push(D)),g.length!==0&&g.length!==E&&n>=18&&g.length!==i.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");um(g,i),i.axes.length>0&&dm(g,i.axes,E).forEach((D,B)=>g[B]=D)}if(M>0&&a.length>M&&a[M].dims.length===1&&a[M].dims[0]>0&&(a[M].getBigInt64Array().forEach(D=>p.push(Number(D))),p.length!==0&&p.length!==E&&n>=18&&p.length!==i.axes.length))throw new Error("Resize requires sizes input size to be same as input rank or axes size for opset 18 and up");if(i.axes.length>0){if(g.length!==0&&g.length!==i.axes.length)throw new Error('Resize requires "scales" input size to be of axes rank when axes attributes is specified');if(p.length!==0&&p.length!==i.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof g<"u"&&typeof p<"u"&&g.length>0&&p.length>E)throw new Error("Resize requires only of scales or sizes to be specified")},N2=(a,i,n,g)=>` 2363 // The whole part and the fractional part are calculated separately due to inaccuracy of floating 2364 // point division. As an example, f32(21) / f32(7) may evaluate to 2.99... instead of 3, causing an 2365 // offset-by-one error later in floor(). 2366 let big = (${a}) * (${i}); 2367 let whole = ${g}(big / (${n})); 2368 let fract = ${g}(big % (${n})) / ${g}(${n}); 2369 return whole + fract; 2370`,gm=(a,i)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32, 2371 lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${i} { `+(()=>{switch(a){case"asymmetric":return` 2372 if (xScale < 1.0 || floor(xScale) != xScale) { 2373 return ${i}(xResized) / ${i}(xScale); 2374 } else { 2375 ${N2("xResized","lengthOriginal","lengthResized",i)} 2376 } 2377 `;case"pytorch_half_pixel":return`if (lengthResized > 1) { 2378 return (${i}(xResized) + 0.5) / ${i}(xScale) - 0.5; 2379 } else { 2380 return 0.0; 2381 }`;case"tf_half_pixel_for_nn":return`return (${i}(xResized) + 0.5) / ${i}(xScale);`;case"align_corners":return`if (lengthResized == 1) { 2382 return 0.0; 2383 } else { 2384 ${N2("xResized","lengthOriginal - 1","lengthResized - 1",i)} 2385 }`;case"tf_crop_and_resize":return`if (lengthResized > 1) { 2386 return ${i}(roiStart) * ${i}(lengthOriginal - 1) + 2387 (${i}(xResized) * ${i}(roiEnd - roiStart) * ${i}(lengthOriginal - 1)) / 2388 ${i}(lengthResized - 1); 2389 } else { 2390 return 0.5 * ${i}(roiStart + roiEnd) * ${i}(lengthOriginal - 1); 2391 }`;case"half_pixel_symmetric":return`const outputWidth = ${i}xScale * ${i}(lengthResized); 2392 const adjustment = ${i}(lengthResized) / outputWidth; 2393 const center = ${i}(lengthOriginal) / 2; 2394 const offset = center * (1 - adjustment); 2395 return offset + ((${i}(xResized) + 0.5) / ${i}(xScale)) - 0.5;`;case"half_pixel":return`return ((${i}(xResized) + 0.5) / ${i}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${a} is not supported`)}})()+"}",pm=(a,i,n)=>`fn getNearestPixelFromOriginal(xOriginal: ${n}, isDownSample: bool) -> ${n} {`+(()=>{switch(a){case"round_prefer_ceil":return"if (fract(xOriginal) == 0.5) { return ceil(xOriginal); } else { return round(xOriginal); }";case"floor":return"return floor(xOriginal);";case"ceil":return"return ceil(xOriginal);";case"round_prefer_floor":return"if (fract(xOriginal) == 0.5) { return floor(xOriginal); } else { return round(xOriginal); }";case"simple":default:if(i<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${a} is not supported`)}})()+"}",mm=(a,i,n)=>{let g=new Array(n).fill(0).concat(new Array(n).fill(1)),p=a.length===0?g:a.slice();return i.length>0?(i.forEach((h,C)=>{g[h]=p[C],g[C+n]=p[i.length+C]}),g):p},hm=(a,i,n,g)=>{let p=[];if(n.length>0)if(g.length>0){if(a.forEach(h=>p.push(h)),Math.max(...g)>a.length)throw new Error("axes is out of bound");g.forEach((h,C)=>p[h]=n[C])}else n.forEach(h=>p.push(h));else{if(i.length===0)throw new Error("Resize requires either scales or sizes.");p=a.map((h,C)=>Math.round(h*i[C]))}return p},Cm=(a,i,n)=>{let g=(()=>{switch(n.keepAspectRatioPolicy){case"not_larger":return n.axes.length>0?Math.min(...n.axes.map(h=>i[h]),Number.MAX_VALUE):Math.min(...i,Number.MAX_VALUE);case"not_smaller":return n.axes.length>0?Math.max(...n.axes.map(h=>i[h]),Number.MIN_VALUE):Math.max(...i,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${n.keepAspectRatioPolicy} is not supported`)}})();i.fill(1,0,i.length);let p=a.slice();return n.axes.length>0?(n.axes.forEach(h=>i[h]=g),n.axes.forEach(h=>p[h]=Math.round(a[h]*i[h]))):(i.fill(g,0,i.length),p.forEach((h,C)=>p[C]=Math.round(h*i[C]))),p},bm=(a,i,n,g,p)=>` 2396 fn calculateOriginalIndicesFromOutputIndices(output_indices: ${a.type.indices}) -> array<${a.type.value}, ${n.length}> { 2397 var original_indices: array<${a.type.value}, ${n.length}>; 2398 for (var i:u32 = 0; i < ${n.length}; i++) { 2399 var output_index = ${a.indicesGet("output_indices","i")}; 2400 var scale = ${$A("uniforms.scales","i",g)}; 2401 var roi_low = ${$A("uniforms.roi","i",p)}; 2402 var roi_hi = ${$A("uniforms.roi",`i + ${i.length}`,p)}; 2403 if (scale == 1.0) { 2404 original_indices[i] = ${a.type.value}(output_index); 2405 } else { 2406 var input_shape_i = ${$A("uniforms.input_shape","i",i.length)}; 2407 var output_shape_i = ${$A("uniforms.output_shape","i",n.length)}; 2408 original_indices[i] = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, 2409 input_shape_i, roi_low, roi_hi); 2410 } 2411 } 2412 return original_indices; 2413 }`,Im=(a,i,n,g,p,h,C)=>` 2414 fn calculateInputIndicesFromOutputIndices(output_indices: ${i.type.indices}) -> ${a.type.indices} { 2415 var input_indices: ${a.type.indices}; 2416 for (var i:u32 = 0; i < ${g.length}; i++) { 2417 var output_index = ${i.indicesGet("output_indices","i")}; 2418 var input_index: u32; 2419 var scale = ${$A("uniforms.scales","i",p)}; 2420 if (scale == 1.0) { 2421 input_index = output_index; 2422 } else { 2423 var roi_low = ${$A("uniforms.roi","i",h)}; 2424 var roi_hi = ${$A("uniforms.roi",`i + ${n.length}`,h)}; 2425 var input_shape_i = ${$A("uniforms.input_shape","i",n.length)}; 2426 var output_shape_i = ${$A("uniforms.output_shape","i",g.length)}; 2427 var original_idx = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, 2428 input_shape_i, roi_low, roi_hi); 2429 if (!${C} || (original_idx >= 0 && original_idx < ${i.type.value}(input_shape_i))) { 2430 if (original_idx < 0) { 2431 input_index = 0; 2432 } else if (original_idx > ${i.type.value}(input_shape_i - 1)) { 2433 input_index = input_shape_i - 1; 2434 } else { 2435 input_index = u32(getNearestPixelFromOriginal(original_idx, scale < 1)); 2436 } 2437 } else { 2438 input_index = u32(original_idx); 2439 } 2440 } 2441 ${a.indicesSet("input_indices","i","input_index")} 2442 } 2443 return input_indices; 2444 }`,wm=(a,i)=>` 2445 fn checkInputIndices(input_indices: ${a.type.indices}) -> bool { 2446 for (var i:u32 = 0; i < ${i.length}; i++) { 2447 var input_index = ${a.indicesGet("input_indices","i")}; 2448 if (input_index < 0 || input_index >= ${$A("uniforms.input_shape","i",i.length)}) { 2449 return false; 2450 } 2451 } 2452 return true; 2453 }`,L2=(a,i,n,g)=>a.rank>g?` 2454 ${a.indicesSet("input_indices",i,"channel")}; 2455 ${a.indicesSet("input_indices",n,"batch")}; 2456`:"",km=(a,i,n,g,p)=>{let[h,C,k,M]=n.length===2?[-1,0,1,-1]:[0,2,3,1],E=a.type.value;return` 2457 fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${E} { 2458 var input_indices: ${a.type.indices}; 2459 ${a.indicesSet("input_indices",C,`max(0, min(row, ${n[C]} - 1))`)}; 2460 ${a.indicesSet("input_indices",k,`max(0, min(col, ${n[k]} - 1))`)}; 2461 ${L2(a,M,h,2)} 2462 return ${a.getByIndices("input_indices")}; 2463 } 2464 2465 fn bilinearInterpolation(output_indices: ${i.type.indices}) -> ${E} { 2466 var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); 2467 var row:${E} = originalIndices[${C}]; 2468 var col:${E} = originalIndices[${k}]; 2469 ${g?`if (row < 0 || row > (${n[C]} - 1) || col < 0 || col > (${n[k]} - 1)) { 2470 return ${p}; 2471 }`:""}; 2472 row = max(0, min(row, ${n[C]} - 1)); 2473 col = max(0, min(col, ${n[k]} - 1)); 2474 var row1: u32 = u32(row); 2475 var col1: u32 = u32(col); 2476 var row2: u32 = u32(row + 1); 2477 var col2: u32 = u32(col + 1); 2478 var channel: u32 = ${n.length>2?`u32(originalIndices[${M}])`:"0"}; 2479 var batch: u32 = ${n.length>2?`u32(originalIndices[${h}])`:"0"}; 2480 var x11: ${E} = getInputValue(batch, channel, row1, col1); 2481 var x12: ${E} = getInputValue(batch, channel, row1, col2); 2482 var x21: ${E} = getInputValue(batch, channel, row2, col1); 2483 var x22: ${E} = getInputValue(batch, channel, row2, col2); 2484 var dx1: ${E} = abs(row - ${E}(row1)); 2485 var dx2: ${E} = abs(${E}(row2) - row); 2486 var dy1: ${E} = abs(col - ${E}(col1)); 2487 var dy2: ${E} = abs(${E}(col2) - col); 2488 if (row1 == row2) { 2489 dx1 = 0.5; 2490 dx2 = 0.5; 2491 } 2492 if (col1 == col2) { 2493 dy1 = 0.5; 2494 dy2 = 0.5; 2495 } 2496 return (x11 * dx2 * dy2 + x12 * dx2 * dy1 + x21 * dx1 * dy2 + x22 * dx1 * dy1); 2497 }`},Mm=(a,i,n,g,p,h,C,k,M,E)=>{let D=n.length===2,[B,v]=D?[0,1]:[2,3],S=a.type.value,F=R=>{let X=R===B?"row":"col";return` 2498 fn ${X}CubicInterpolation(input_indices: ${a.type.indices}, output_indices: ${i.type.indices}) -> ${S} { 2499 var output_index = ${i.indicesGet("output_indices",R)}; 2500 var originalIdx: ${S} = getOriginalCoordinateFromResizedCoordinate(output_index, ${p[R]}, 2501 ${g[R]}, ${n[R]}, ${h[R]}, ${h[R]} + ${n.length}); 2502 var fractOriginalIdx: ${S} = originalIdx - floor(originalIdx); 2503 var coefs = getCubicInterpolationCoefs(fractOriginalIdx); 2504 2505 if (${k} && (originalIdx < 0 || originalIdx > (${n[R]} - 1))) { 2506 return ${M}; 2507 } 2508 var data: array<${S}, 4> = array<${S}, 4>(0.0, 0.0, 0.0, 0.0); 2509 for (var i: i32 = -1; i < 3; i++) { 2510 var ${X}: ${S} = originalIdx + ${S}(i); 2511 if (${X} < 0 || ${X} >= ${n[R]}) { 2512 ${E?`coefs[i + 1] = 0.0; 2513 continue;`:k?`return ${M};`:`${X} = max(0, min(${X}, ${n[R]} - 1));`}; 2514 } 2515 var input_indices_copy: ${a.type.indices} = input_indices; 2516 ${a.indicesSet("input_indices_copy",R,`u32(${X})`)}; 2517 data[i + 1] = ${R===B?a.getByIndices("input_indices_copy"):"rowCubicInterpolation(input_indices_copy, output_indices)"}; 2518 } 2519 return cubicInterpolation1D(data, coefs); 2520 }`};return` 2521 ${F(B)}; 2522 ${F(v)}; 2523 fn getCubicInterpolationCoefs(s: ${S}) -> array<${S}, 4> { 2524 var absS = abs(s); 2525 var coeffs: array<${S}, 4> = array<${S}, 4>(0.0, 0.0, 0.0, 0.0); 2526 var oneMinusAbsS: ${S} = 1.0 - absS; 2527 var twoMinusAbsS: ${S} = 2.0 - absS; 2528 var onePlusAbsS: ${S} = 1.0 + absS; 2529 coeffs[0] = ((${C} * onePlusAbsS - 5 * ${C}) * onePlusAbsS + 8 * ${C}) * onePlusAbsS - 4 * ${C}; 2530 coeffs[1] = ((${C} + 2) * absS - (${C} + 3)) * absS * absS + 1; 2531 coeffs[2] = ((${C} + 2) * oneMinusAbsS - (${C} + 3)) * oneMinusAbsS * oneMinusAbsS + 1; 2532 coeffs[3] = ((${C} * twoMinusAbsS - 5 * ${C}) * twoMinusAbsS + 8 * ${C}) * twoMinusAbsS - 4 * ${C}; 2533 return coeffs; 2534 } 2535 2536 fn cubicInterpolation1D(x: array<${S}, 4>, coefs: array<${S}, 4>) -> ${S} { 2537 var coefsSum: ${S} = coefs[0] + coefs[1] + coefs[2] + coefs[3]; 2538 return (x[0] * coefs[0] + x[1] * coefs[1]+ x[2] * coefs[2]+ x[3] * coefs[3]) / coefsSum; 2539 } 2540 2541 fn bicubicInterpolation(output_indices: ${i.type.indices}) -> ${S} { 2542 var input_indices: ${a.type.indices} = output_indices; 2543 return colCubicInterpolation(input_indices, output_indices); 2544 } 2545 `},Em=(a,i,n,g,p)=>{let[h,C,k,M,E]=n.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],D=a.type.value;return` 2546 fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${D} { 2547 var input_indices: ${a.type.indices}; 2548 ${a.indicesSet("input_indices",C,`max(0, min(depth, ${n[C]} - 1))`)}; 2549 ${a.indicesSet("input_indices",k,`max(0, min(height, ${n[k]} - 1))`)}; 2550 ${a.indicesSet("input_indices",M,`max(0, min(width, ${n[M]} - 1))`)}; 2551 ${L2(a,E,h,3)} 2552 return ${a.getByIndices("input_indices")}; 2553 } 2554 2555 fn trilinearInterpolation(output_indices: ${i.type.indices}) -> ${D} { 2556 var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); 2557 var depth:${D} = originalIndices[${C}]; 2558 var height:${D} = originalIndices[${k}]; 2559 var width:${D} = originalIndices[${M}]; 2560 ${g?`if (depth < 0 || depth > (${n[C]} - 1) || height < 0 || height > (${n[k]} - 1) || width < 0 || (width > ${n[M]} - 1)) { 2561 return ${p}; 2562 }`:""}; 2563 2564 depth = max(0, min(depth, ${n[C]} - 1)); 2565 height = max(0, min(height, ${n[k]} - 1)); 2566 width = max(0, min(width, ${n[M]} - 1)); 2567 var depth1: u32 = u32(depth); 2568 var height1: u32 = u32(height); 2569 var width1: u32 = u32(width); 2570 var depth2: u32 = u32(depth + 1); 2571 var height2: u32 = u32(height + 1); 2572 var width2: u32 = u32(width + 1); 2573 var channel: u32 = ${n.length>3?`u32(originalIndices[${E}])`:"0"}; 2574 var batch: u32 = ${n.length>3?`u32(originalIndices[${h}])`:"0"}; 2575 2576 var x111: ${D} = getInputValue(batch, channel, depth1, height1, width1); 2577 var x112: ${D} = getInputValue(batch, channel, depth1, height1, width2); 2578 var x121: ${D} = getInputValue(batch, channel, depth1, height2, width1); 2579 var x122: ${D} = getInputValue(batch, channel, depth1, height2, width2); 2580 var x211: ${D} = getInputValue(batch, channel, depth2, height1, width1); 2581 var x212: ${D} = getInputValue(batch, channel, depth2, height1, width2); 2582 var x221: ${D} = getInputValue(batch, channel, depth2, height2, width1); 2583 var x222: ${D} = getInputValue(batch, channel, depth2, height2, width2); 2584 var dx1: ${D} = abs(depth - ${D}(depth1)); 2585 var dx2: ${D} = abs(${D}(depth2) - depth); 2586 var dy1: ${D} = abs(height - ${D}(height1)); 2587 var dy2: ${D} = abs(${D}(height2) - height); 2588 var dz1: ${D} = abs(width - ${D}(width1)); 2589 var dz2: ${D} = abs(${D}(width2) - width); 2590 if (depth1 == depth2) { 2591 dx1 = 0.5; 2592 dx2 = 0.5; 2593 } 2594 if (height1 == height2) { 2595 dy1 = 0.5; 2596 dy2 = 0.5; 2597 } 2598 if (width1 == width2) { 2599 dz1 = 0.5; 2600 dz2 = 0.5; 2601 } 2602 return (x111 * dx2 * dy2 * dz2 + x112 * dx2 * dy2 * dz1 + x121 * dx2 * dy1 *dz2 + x122 * dx2 * dy1 * dz1 + 2603 x211 * dx1 * dy2 * dz2 + x212 * dx1 * dy2 * dz1 + x221 * dx1 * dy1 *dz2 + x222 * dx1 * dy1 * dz1); 2604 }`},vm=(a,i,n,g,p,h)=>{let C=a.dims,k=mm(h,i.axes,C.length),M=hm(C,g,p,i.axes),E=g.slice();g.length===0&&(E=C.map((L,K)=>L===0?1:M[K]/L),i.keepAspectRatioPolicy!=="stretch"&&(M=Cm(C,E,i)));let D=XA("output",a.dataType,M.length),B=oA("input",a.dataType,C.length),v=Je.size(M),S=C.length===M.length&&C.every((L,K)=>L===M[K]),F=i.coordinateTransformMode==="tf_crop_and_resize",R=i.extrapolationValue,X=B.type.value,z=L=>` 2605 ${S?"":` 2606 ${gm(i.coordinateTransformMode,X)}; 2607 ${(()=>{switch(i.mode){case"nearest":return` 2608 ${wm(B,C)}; 2609 ${pm(i.nearestMode,n,X)}; 2610 ${Im(B,D,C,M,E.length,k.length,F)}; 2611 `;case"linear":return` 2612 ${bm(D,C,M,E.length,k.length)}; 2613 ${(()=>{if(C.length===2||C.length===4)return`${km(B,D,C,F,R)}`;if(C.length===3||C.length===5)return`${Em(B,D,C,F,R)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()}; 2614 `;case"cubic":return` 2615 ${(()=>{if(C.length===2||C.length===4)return`${Mm(B,D,C,M,E,k,i.cubicCoeffA,F,i.extrapolationValue,i.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()}; 2616 `;default:throw Error("Invalid resize mode")}})()}; 2617 `} 2618 ${L.registerUniform("output_size","u32").registerUniform("scales","f32",E.length).registerUniform("roi","f32",k.length).declareVariables(B,D)} 2619 ${L.mainStart()} 2620 ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 2621 ${S?"output[global_idx] = input[global_idx];":` 2622 let output_indices = ${D.offsetToIndices("global_idx")}; 2623 var input_indices: ${B.type.indices}; 2624 ${(()=>{switch(i.mode){case"nearest":return`input_indices = calculateInputIndicesFromOutputIndices(output_indices); 2625 if (checkInputIndices(input_indices)) { 2626 output[global_idx] = ${B.getByIndices("input_indices")}; 2627 } else { 2628 output[global_idx] = ${i.extrapolationValue}; 2629 }`;case"linear":return`output[global_idx] = ${C.length===2||C.length===4?"bilinearInterpolation":"trilinearInterpolation"}(output_indices);`;case"cubic":return"output[global_idx] = bicubicInterpolation(output_indices);";default:throw Error(`Unsupported resize mode: ${i.mode}`)}})()}; 2630`} 2631 }`;return{name:"Resize",shaderCache:{hint:`${i.cacheKey}|${n}|${E.length>0?i.mode==="cubic"?E:E.length:""}|${p.length>0?p:""}|${k.length>0?k:""}|${S}|${i.mode==="nearest"?C.length:C}`,inputDependencies:["rank"]},getShaderSource:z,getRunData:()=>({outputs:[{dims:M,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:[{type:12,data:v},{type:1,data:E},{type:1,data:k},...tt(C,M)]})}},xm=a=>{let i=a.customDataBuffer;return new Uint32Array(i,i.byteOffset,1)[0]},hb=(a,i)=>{let n=[],g=[],p=[],h=xm(a);if(i.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");fm(a.inputs,i,h,n,g,p),a.compute(vm(a.inputs[0],i,h,n,g,p),{inputs:[0]})},Cb=a=>{let i=a.antialias,n=a.axes,g=a.coordinateTransformMode,p=a.cubicCoeffA,h=a.excludeOutside!==0,C=a.extrapolationValue,k=a.keepAspectRatioPolicy,M=a.mode,E=a.nearestMode===""?"simple":a.nearestMode;return $t({antialias:i,axes:n,coordinateTransformMode:g,cubicCoeffA:p,excludeOutside:h,extrapolationValue:C,keepAspectRatioPolicy:k,mode:M,nearestMode:E})}}),Bm,ym,bb,q6=kA(()=>{ct(),It(),kt(),Bm=a=>{if(!a||a.length<3)throw new Error("layerNorm requires at least 3 inputs.");let i=a[0],n=a[1],g=a[2];if(i.dataType!==n.dataType||i.dataType!==g.dataType)throw new Error("All inputs must have the same data type");if(i.dims.length!==3&&i.dims.length!==2)throw new Error("Input must be 2D or 3D");if(n.dims.length!==3&&n.dims.length!==2)throw new Error("Skip must be 2D or 3D");let p=i.dims[i.dims.length-1],h=i.dims[i.dims.length-2];if(n.dims[n.dims.length-1]!==p)throw new Error("Skip must have the same hidden size as input");if(n.dims[n.dims.length-2]!==h)throw new Error("Skip must have the same sequence length as input");if(g.dims.length!==1)throw new Error("Gamma must be 1D");if(g.dims[g.dims.length-1]!==p)throw new Error("Gamma must have the same hidden size as input");if(a.length>3){let C=a[3];if(C.dims.length!==1)throw new Error("Beta must be 1D");if(C.dims[C.dims.length-1]!==p)throw new Error("Beta must have the same hidden size as input")}if(a.length>4){let C=a[4];if(C.dims.length!==1)throw new Error("Bias must be 1D");if(C.dims[C.dims.length-1]!==p)throw new Error("Bias must have the same hidden size as input")}},ym=(a,i,n,g)=>{let p=i.simplified,h=a[0].dims,C=Je.size(h),k=h,M=C,E=h.slice(-1)[0],D=g?h.slice(0,-1).concat(1):[],B=!p&&a.length>3,v=a.length>4,S=g&&n>1,F=g&&n>2,R=n>3,X=64,z=Wr(E),L=[{type:12,data:M},{type:12,data:z},{type:12,data:E},{type:1,data:i.epsilon}],K=w=>{let e=[{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}],u=[oA("x",a[0].dataType,a[0].dims,z),oA("skip",a[1].dataType,a[1].dims,z),oA("gamma",a[2].dataType,a[2].dims,z)];B&&u.push(oA("beta",a[3].dataType,a[3].dims,z)),v&&u.push(oA("bias",a[4].dataType,a[4].dims,z)),u.push(XA("output",a[0].dataType,k,z)),S&&u.push(XA("mean_output",1,D)),F&&u.push(XA("inv_std_output",1,D)),R&&u.push(XA("input_skip_bias_sum",a[0].dataType,k,z));let y=Cs(a[0].dataType),ee=Cs(1,z);return` 2632 2633 ${w.registerUniforms(e).declareVariables(...u)} 2634 var<workgroup> sum_shared : array<${ee}, ${X}>; 2635 var<workgroup> sum_squared_shared : array<${ee}, ${X}>; 2636 2637 ${w.mainStart([X,1,1])} 2638 let ix = local_id.x; 2639 let iy = global_id.x / ${X}; 2640 2641 let hidden_size_vectorized: u32 = uniforms.hidden_size / uniforms.components; 2642 var stride = hidden_size_vectorized / ${X}; 2643 let offset = ix * stride + iy * hidden_size_vectorized; 2644 let offset1d = stride * ix; 2645 if (ix == ${X-1}) { 2646 stride = hidden_size_vectorized - stride * ix; 2647 } 2648 for (var i: u32 = 0; i < stride; i++) { 2649 let skip_value = skip[offset + i]; 2650 let bias_value = ${v?"bias[offset1d + i]":y+"(0.0)"}; 2651 let input_value = x[offset + i]; 2652 let value = input_value + skip_value + bias_value; 2653 ${R?"input_skip_bias_sum[offset + i] = value;":""} 2654 output[offset + i] = value; 2655 let f32_value = ${ao(y,z,"value")}; 2656 sum_shared[ix] += f32_value; 2657 sum_squared_shared[ix] += f32_value * f32_value; 2658 } 2659 workgroupBarrier(); 2660 2661 var reduce_size : u32 = ${X}; 2662 for (var curr_size = reduce_size >> 1; curr_size > 0; curr_size = reduce_size >> 1) { 2663 reduce_size = curr_size + (reduce_size & 1); 2664 if (ix < curr_size) { 2665 sum_shared[ix] += sum_shared[ix + reduce_size]; 2666 sum_squared_shared[ix] += sum_squared_shared[ix + reduce_size]; 2667 } 2668 workgroupBarrier(); 2669 } 2670 2671 let sum = sum_shared[0]; 2672 let square_sum = sum_squared_shared[0]; 2673 let mean = ${ti("sum",z)} / f32(uniforms.hidden_size); 2674 let inv_std_dev = inverseSqrt(${ti("square_sum",z)} / f32(uniforms.hidden_size) ${p?"":"- mean * mean"} + uniforms.epsilon); 2675 ${S?"mean_output[global_idx] = mean;":""} 2676 ${F?"inv_std_output[global_idx] = inv_std_dev;":""} 2677 2678 for (var i: u32 = 0; i < stride; i++) { 2679 output[offset + i] = (output[offset + i] ${p?"":`- ${y}(mean)`}) * 2680 ${y}(inv_std_dev) * gamma[offset1d + i] 2681 ${B?"+ beta[offset1d + i]":""}; 2682 } 2683 }`},d=[{dims:k,dataType:a[0].dataType}];return n>1&&d.push({dims:D,dataType:1}),n>2&&d.push({dims:D,dataType:1}),n>3&&d.push({dims:h,dataType:a[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${z};${S};${F};${R}`,inputDependencies:a.map((w,e)=>"type")},getShaderSource:K,getRunData:()=>({outputs:d,dispatchGroup:{x:Math.ceil(M/E)},programUniforms:L})}},bb=(a,i)=>{Bm(a.inputs);let n=[0];a.outputCount>1&&n.push(-3),a.outputCount>2&&n.push(-3),a.outputCount>3&&n.push(3),a.compute(ym(a.inputs,i,a.outputCount,!1),{outputs:n})}}),Dm,No,Tm,R2,Pm,Gm,Ib,wb,$6=kA(()=>{ct(),It(),Ur(),kt(),Dm=(a,i)=>{if(!a||a.length<1)throw new Error("too few inputs");if(i.axes.length!==0){if(i.axes.length!==i.starts.length||i.axes.length!==i.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(i.starts.length!==i.ends.length)throw new Error("starts and ends must have the same length");a.slice(1).forEach((n,g)=>{if(a[g+1].dataType!==6&&a[g+1].dataType!==7)throw new Error(`Input ${g} must be an array of int32 or int64`)})},No=(a,i)=>{let n=[];if(a.length>i)if(a[i].dataType===7)a[i].getBigInt64Array().forEach(g=>n.push(Number(g)));else if(a[i].dataType===6)a[i].getInt32Array().forEach(g=>n.push(Number(g)));else throw new Error(`Input ${i} must be an array of int32 or int64`);return n},Tm=(a,i)=>{if(a.length>1){let n=No(a,1),g=No(a,2),p=No(a,3);return p.length===0&&(p=[...Array(a[0].dims.length).keys()]),$t({starts:n,ends:g,axes:p})}else return i},R2=(a,i,n,g,p)=>{let h=a;return a<0&&(h+=n[g[i]]),p[i]<0?Math.max(0,Math.min(h,n[g[i]]-1)):Math.max(0,Math.min(h,n[g[i]]))},Pm=(a,i,n)=>`fn calculateInputIndices(output_indices: ${i.type.indices}) -> ${a.type.indices} { 2684 var input_indices: ${a.type.indices}; 2685 var carry = 0u; 2686 for (var i = ${n.length}; i >= 0; i--) { 2687 let input_shape_i = ${$A("uniforms.input_shape","i",n.length)}; 2688 let steps_i = ${$A("uniforms.steps","i",n.length)}; 2689 let signs_i = ${$A("uniforms.signs","i",n.length)}; 2690 let starts_i = ${$A("uniforms.starts","i",n.length)}; 2691 var output_index = ${i.indicesGet("output_indices","i")}; 2692 var input_index = output_index * steps_i + starts_i + carry; 2693 carry = input_index / input_shape_i; 2694 input_index = input_index % input_shape_i; 2695 if (signs_i < 0) { 2696 input_index = input_shape_i - input_index - 1u + starts_i; 2697 } 2698 ${a.indicesSet("input_indices","i","input_index")}; 2699 } 2700 return input_indices; 2701 }`,Gm=(a,i)=>{let n=a[0].dims,g=Je.size(n),p=i.axes.length>0?Je.normalizeAxes(i.axes,n.length):[...Array(n.length).keys()],h=No(a,4);h.forEach(z=>z!==0||(()=>{throw new Error("step cannot be 0")})),h.length===0&&(h=Array(p.length).fill(1));let C=i.starts.map((z,L)=>R2(z,L,n,p,h)),k=i.ends.map((z,L)=>R2(z,L,n,p,h));if(p.length!==C.length||p.length!==k.length)throw new Error("start, ends and axes should have the same number of elements");if(p.length!==n.length)for(let z=0;z<n.length;++z)p.includes(z)||(C.splice(z,0,0),k.splice(z,0,n[z]),h.splice(z,0,1));let M=h.map(z=>Math.sign(z));h.forEach((z,L,K)=>{if(z<0){let d=(k[L]-C[L])/z,w=C[L],e=w+d*h[L];C[L]=e,k[L]=w,K[L]=-z}});let E=n.slice(0);p.forEach((z,L)=>{E[z]=Math.ceil((k[z]-C[z])/h[z])});let D={dims:E,dataType:a[0].dataType},B=XA("output",a[0].dataType,E.length),v=oA("input",a[0].dataType,a[0].dims.length),S=Je.size(E),F=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:C.length},{name:"signs",type:"i32",length:M.length},{name:"steps",type:"u32",length:h.length}],R=[{type:12,data:S},{type:12,data:C},{type:6,data:M},{type:12,data:h},...tt(a[0].dims,E)],X=z=>` 2702 ${z.registerUniforms(F).declareVariables(v,B)} 2703 ${Pm(v,B,n)} 2704 ${z.mainStart()} 2705 ${z.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} 2706 let output_indices = ${B.offsetToIndices("global_idx")}; 2707 let input_indices = calculateInputIndices(output_indices); 2708 ${B.setByOffset("global_idx",v.getByIndices("input_indices"))} 2709 }`;return{name:"Slice",shaderCache:{hint:`${M.length}_${C.length}_${h.length}`,inputDependencies:["rank"]},getShaderSource:X,getRunData:()=>({outputs:[D],dispatchGroup:{x:Math.ceil(g/64)},programUniforms:R})}},Ib=(a,i)=>{Dm(a.inputs,i);let n=Tm(a.inputs,i);a.compute(Gm(a.inputs,n),{inputs:[0]})},wb=a=>{let i=a.starts,n=a.ends,g=a.axes;return $t({starts:i,ends:n,axes:g})}}),Qm,Fm,kb,Mb,e5=kA(()=>{ct(),It(),Ur(),ri(),kt(),Qm=a=>{if(!a||a.length!==1)throw new Error("Softmax op requires 1 input.")},Fm=(a,i)=>{let n=a.inputs[0],g=n.dims,p=Je.size(g),h=g.length,C=Je.normalizeAxis(i.axis,h),k=C<g.length-1,M,E=[];k?(E=Array.from({length:h},(u,y)=>y),E[C]=h-1,E[h-1]=C,M=a.compute(ma(n,E),{inputs:[n],outputs:[-1]})[0]):M=n;let D=M.dims,B=D[h-1],v=p/B,S=Wr(B),F=B/S,R=64;v===1&&(R=256);let X=(u,y)=>y===4?`max(max(${u}.x, ${u}.y), max(${u}.z, ${u}.w))`:y===2?`max(${u}.x, ${u}.y)`:y===3?`max(max(${u}.x, ${u}.y), ${u}.z)`:u,z=oA("x",M.dataType,M.dims,S),L=XA("result",M.dataType,M.dims,S),K=z.type.value,d=Cs(M.dataType)==="f32"?`var threadMax = ${K}(-3.402823e+38f);`:`var threadMax = ${K}(-65504.0h);`,w=u=>` 2710 var<workgroup> rowMaxShared : ${K}; 2711 var<workgroup> rowSumShared : ${K}; 2712 var<workgroup> threadShared : array<${K}, ${R}>; 2713 2714 fn getValue(row: i32, col: i32, row_stride: i32) -> ${K} { 2715 let index = row * row_stride + col; 2716 return x[index]; 2717 } 2718 2719 fn setValue(row: i32, col: i32, row_stride: i32, value: ${K}) { 2720 let index = row * row_stride + col; 2721 result[index] = value; 2722 } 2723 ${u.registerUniform("packedCols","i32").declareVariables(z,L)} 2724 ${u.mainStart(R)} 2725 let gindex = i32(global_idx); 2726 let lindex = i32(local_idx); 2727 const wg = ${R}; 2728 let row = gindex / wg; 2729 let cols = uniforms.packedCols; 2730 let row_stride : i32 = uniforms.packedCols; 2731 2732 // find the rows max 2733 ${d} 2734 for (var col = lindex; col < cols; col += wg) { 2735 let value = getValue(row, col, row_stride); 2736 threadMax = max(threadMax, value); 2737 } 2738 if (lindex < cols) { 2739 threadShared[lindex] = threadMax; 2740 } 2741 workgroupBarrier(); 2742 2743 var reduceSize = min(cols, wg); 2744 for (var currSize = reduceSize >> 1; currSize > 0; currSize = reduceSize >> 1) {
2745 reduceSize = currSize + (reduceSize & 1); 2746 if (lindex < currSize) { 2747 threadShared[lindex] = max(threadShared[lindex], threadShared[lindex + reduceSize]); 2748 } 2749 workgroupBarrier(); 2750 } 2751 if (lindex == 0) { 2752 rowMaxShared = ${K}(${X("threadShared[0]",S)}); 2753 } 2754 workgroupBarrier(); 2755 2756 // find the rows sum 2757 var threadSum = ${K}(0.0); 2758 for (var col = lindex; col < cols; col += wg) { 2759 let subExp = exp(getValue(row, col, row_stride) - rowMaxShared); 2760 threadSum += subExp; 2761 } 2762 threadShared[lindex] = threadSum; 2763 workgroupBarrier(); 2764 2765 for (var currSize = wg >> 1; currSize > 0; currSize = currSize >> 1) { 2766 if (lindex < currSize) { 2767 threadShared[lindex] = threadShared[lindex] + threadShared[lindex + currSize]; 2768 } 2769 workgroupBarrier(); 2770 } 2771 if (lindex == 0) { 2772 rowSumShared = ${K}(${ti("threadShared[0]",S)}); 2773 } 2774 workgroupBarrier(); 2775 2776 // calculate final value for each element in the row 2777 for (var col = lindex; col < cols; col += wg) { 2778 let value = exp(getValue(row, col, row_stride) - rowMaxShared) / rowSumShared; 2779 setValue(row, col, row_stride, value); 2780 } 2781 }`,e=a.compute({name:"Softmax",shaderCache:{hint:`${S};${R}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:D,dataType:M.dataType}],dispatchGroup:{x:v},programUniforms:[{type:6,data:F}]}),getShaderSource:w},{inputs:[M],outputs:[k?-1:0]})[0];k&&a.compute(ma(e,E),{inputs:[e]})},kb=(a,i)=>{Qm(a.inputs),Fm(a,i)},Mb=a=>$t({axis:a.axis})}),j2,Sm,Om,_m,Eb,A5=kA(()=>{ct(),It(),kt(),j2=a=>Array.from(a.getBigInt64Array(),Number),Sm=a=>{if(!a||a.length!==2)throw new Error("Tile requires 2 inputs.");if(a[0].dataType!==1&&a[0].dataType!==10&&a[0].dataType!==6&&a[0].dataType!==12)throw new Error("Tile only support float, float16, int32, and uint32 data types");if(a[1].dataType!==7)throw new Error("Tile `repeats` input should be of int64 data type");if(a[1].dims.length!==1)throw new Error("Tile `repeats` input should be 1-D");if(j2(a[1]).length!==a[0].dims.length)throw new Error("Tile `repeats` input should have same number of elements as rank of input data tensor")},Om=(a,i)=>{let n=[];for(let g=0;g<a.length;++g)n.push(a[g]*i[g]);return n},_m=(a,i)=>{let n=a[0].dims,g=i??j2(a[1]),p=Om(n,g),h=Je.size(p),C=a[0].dataType,k=oA("input",C,n.length),M=XA("output",C,p.length),E=D=>` 2782 const inputShape = ${k.indices(...n)}; 2783 ${D.registerUniform("output_size","u32").declareVariables(k,M)} 2784 ${D.mainStart()} 2785 ${D.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} 2786 let output_indices = ${M.offsetToIndices("global_idx")}; 2787 var input_indices: ${k.type.indices}; 2788 for (var i = 0; i < ${n.length}; i++) { 2789 let input_dim_i = ${k.indicesGet("uniforms.input_shape","i")}; 2790 let input_dim_value = ${M.indicesGet("output_indices","i")} % input_dim_i; 2791 2792 ${k.indicesSet("input_indices","i","input_dim_value")} 2793 } 2794 ${M.setByOffset("global_idx",k.getByIndices("input_indices"))} 2795 }`;return{name:"Tile",shaderCache:{hint:`${g}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:p,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...tt(a[0].dims,p)]}),getShaderSource:E}},Eb=a=>{Sm(a.inputs),a.compute(_m(a.inputs),{inputs:[0]})}}),zm,Nm,vb,t5=kA(()=>{ct(),It(),kt(),zm=(a,i,n,g,p)=>{let h=XA("output_data",p,n.length,4),C=oA("a_data",i[1].dataType,i[1].dims.length,4),k=oA("b_data",i[2].dataType,i[2].dims.length,4),M=oA("c_data",i[0].dataType,i[0].dims.length,4),E,D=(B,v,S)=>`select(${v}, ${B}, ${S})`;if(!g)E=h.setByOffset("global_idx",D(C.getByOffset("global_idx"),k.getByOffset("global_idx"),M.getByOffset("global_idx")));else{let B=(v,S,F="")=>{let R=`a_data[index_a${S}][component_a${S}]`,X=`b_data[index_b${S}][component_b${S}]`,z=`bool(c_data[index_c${S}] & (0xffu << (component_c${S} * 8)))`;return` 2796 let output_indices${S} = ${h.offsetToIndices(`global_idx * 4u + ${S}u`)}; 2797 let offset_a${S} = ${C.broadcastedIndicesToOffset(`output_indices${S}`,h)}; 2798 let offset_b${S} = ${k.broadcastedIndicesToOffset(`output_indices${S}`,h)}; 2799 let offset_c${S} = ${M.broadcastedIndicesToOffset(`output_indices${S}`,h)}; 2800 let index_a${S} = offset_a${S} / 4u; 2801 let index_b${S} = offset_b${S} / 4u; 2802 let index_c${S} = offset_c${S} / 4u; 2803 let component_a${S} = offset_a${S} % 4u; 2804 let component_b${S} = offset_b${S} % 4u; 2805 let component_c${S} = offset_c${S} % 4u; 2806 ${v}[${S}] = ${F}(${D(R,X,z)}); 2807 `};p===9?E=` 2808 var data = vec4<u32>(0); 2809 ${B("data",0,"u32")} 2810 ${B("data",1,"u32")} 2811 ${B("data",2,"u32")} 2812 ${B("data",3,"u32")}
2813 output_data[global_idx] = dot(vec4<u32>(0x1, 0x100, 0x10000, 0x1000000), vec4<u32>(data));`:E=` 2814 ${B("output_data[global_idx]",0)} 2815 ${B("output_data[global_idx]",1)} 2816 ${B("output_data[global_idx]",2)} 2817 ${B("output_data[global_idx]",3)} 2818 `}return` 2819 ${a.registerUniform("vec_size","u32").declareVariables(M,C,k,h)} 2820 ${a.mainStart()} 2821 ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} 2822 ${E} 2823 }`},Nm=a=>{let i=a[1].dims,n=a[2].dims,g=a[0].dims,p=a[1].dataType,h=!(Je.areEqual(i,n)&&Je.areEqual(n,g)),C=i,k=Je.size(i);if(h){let E=co.calcShape(co.calcShape(i,n,!1),g,!1);if(!E)throw new Error("Can't perform where op on the given tensors");C=E,k=Je.size(C)}let M=Math.ceil(k/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:E=>zm(E,a,C,h,p),getRunData:()=>({outputs:[{dims:C,dataType:p}],dispatchGroup:{x:Math.ceil(k/64/4)},programUniforms:[{type:12,data:M},...tt(g,i,n,C)]})}},vb=a=>{a.compute(Nm(a.inputs))}}),xb,r5=kA(()=>{h6(),Fc(),C6(),b6(),I6(),w6(),k6(),B6(),D6(),T6(),P6(),G6(),Q6(),F6(),S6(),O6(),_6(),z6(),N6(),L6(),R6(),j6(),W6(),V6(),Y6(),YC(),H6(),U6(),K6(),X6(),Z6(),Qc(),J6(),ZC(),q6(),$6(),e5(),KC(),A5(),ri(),Sc(),t5(),xb=new Map([["Abs",[b3]],["Acos",[I3]],["Acosh",[w3]],["Add",[AC]],["ArgMax",[p3,oc]],["ArgMin",[g3,oc]],["Asin",[k3]],["Asinh",[M3]],["Atan",[E3]],["Atanh",[v3]],["Attention",[m3]],["AveragePool",[ab,sb]],["BatchNormalization",[h3]],["BiasAdd",[C3]],["BiasSplitGelu",[eC]],["Cast",[B3,x3]],["Ceil",[D3]],["Clip",[y3]],["Concat",[uC,dC]],["Conv",[gc,fc]],["ConvTranspose",[kC,wC]],["Cos",[T3]],["Cosh",[P3]],["CumSum",[MC,EC]],["DepthToSpace",[vC,xC]],["DequantizeLinear",[db,fb]],["Div",[tC]],["Einsum",[BC,yC]],["Elu",[G3,Yo]],["Equal",[rC]],["Erf",[Q3]],["Exp",[F3]],["Expand",[DC]],["FastGelu",[TC]],["Floor",[S3]],["FusedConv",[gc,fc]],["Gather",[GC,PC]],["GatherElements",[zC,_C]],["GatherBlockQuantized",[SC,OC]],["GatherND",[QC,FC]],["Gelu",[O3]],["Gemm",[LC,NC]],["GlobalAveragePool",[ib,nb]],["GlobalMaxPool",[ub,cb]],["Greater",[iC]],["GreaterOrEqual",[lC]],["GridSample",[RC,jC]],["GroupQueryAttention",[JC]],["HardSigmoid",[V3,W3]],["InstanceNormalization",[qC]],["LayerNormalization",[$C]],["LeakyRelu",[_3,Yo]],["Less",[oC]],["LessOrEqual",[cC]],["Log",[q3]],["MatMul",[eb]],["MatMulNBits",[Ab,tb]],["MaxPool",[ob,lb]],["Mul",[sC]],["MultiHeadAttention",[VC,WC]],["Neg",[N3]],["Not",[z3]],["Pad",[rb]],["Pow",[aC]],["QuickGelu",[$3,Yo]],["Range",[gb]],["Reciprocal",[L3]],["ReduceMin",[l3]],["ReduceMean",[s3]],["ReduceMax",[o3]],["ReduceSum",[u3]],["ReduceProd",[c3]],["ReduceL1",[a3]],["ReduceL2",[n3]],["ReduceLogSum",[f3]],["ReduceLogSumExp",[i3]],["ReduceSumSquare",[d3]],["Relu",[R3]],["Resize",[hb,Cb]],["RotaryEmbedding",[XC]],["ScatterND",[mb,pb]],["Sigmoid",[j3]],["Sin",[Y3]],["Sinh",[H3]],["Slice",[Ib,wb]],["SkipLayerNormalization",[bb]],["Split",[HC,UC]],["Sqrt",[U3]],["Softmax",[kb,Mb]],["Sub",[nC]],["Tan",[K3]],["Tanh",[X3]],["ThresholdedRelu",[J3,Yo]],["Tile",[Eb]],["Transpose",[Hh,Uh]],["Where",[vb]]])}),Bb,s5=kA(()=>{ja(),Tn(),kt(),Bb=class{constructor(a){this.backend=a,this.repo=new Map,this.attributesBound=!1}getArtifact(a){return this.repo.get(a)}setArtifact(a,i){this.repo.set(a,i)}run(a,i,n,g,p){Ra(a.programInfo.name);let h=this.backend.device,C=this.backend.getComputePassEncoder();this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2);let k=[];for(let E of i)k.push({binding:k.length,resource:{buffer:E.buffer}});for(let E of n)k.push({binding:k.length,resource:{buffer:E.buffer}});p&&k.push({binding:k.length,resource:p});let M=h.createBindGroup({layout:a.computePipeline.getBindGroupLayout(0),entries:k,label:a.programInfo.name});if(this.backend.sessionStatus==="capturing"){let E={kernelId:this.backend.currentKernelId,computePipeline:a.computePipeline,bindGroup:M,dispatchGroup:g};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(E)}C.setPipeline(a.computePipeline),C.setBindGroup(0,M),C.dispatchWorkgroups(...g),this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2+1),this.backend.pendingDispatchNumber++,(this.backend.pendingDispatchNumber>
2823=this.backend.maxDispatchNumber||this.backend.queryType==="at-passes")&&this.backend.endComputePass(),this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber&&this.backend.flush(),ya(a.programInfo.name)}dispose(){}build(a,i){Ra(a.name);let n=this.backend.device,g=[];[{feature:"shader-f16",extension:"f16"},{feature:"subgroups",extension:"subgroups"}].forEach(E=>{n.features.has(E.feature)&&g.push(`enable ${E.extension};`)});let p=Yh(i,this.backend.device.limits),h=a.getShaderSource(p),C=`${g.join(` 2824`)} 2825${p.additionalImplementations} 2826${h}`,k=n.createShaderModule({code:C,label:a.name});Lt("verbose",()=>`[WebGPU] ${a.name} shader code: ${C}`);let M=n.createComputePipeline({compute:{module:k,entryPoint:"main"},layout:"auto",label:a.name});return ya(a.name),{programInfo:a,computePipeline:M,uniformVariablesInfo:p.variablesInfo}}normalizeDispatchGroupSize(a){let i=typeof a=="number"?a:a.x,n=typeof a=="number"?1:a.y||1,g=typeof a=="number"?1:a.z||1,p=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(i<=p&&n<=p&&g<=p)return[i,n,g];let h=i*n*g,C=Math.ceil(Math.sqrt(h));if(C>p){if(C=Math.ceil(Math.cbrt(h)),C>p)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[C,C,C]}else return[C,C,1]}}}),yb={};po(yb,{WebGpuBackend:()=>Db});var Lm,Rm,jm,Db,a5=kA(()=>{ja(),ct(),Tn(),Lh(),p6(),r5(),s5(),Lm=(a,i)=>{if(i.length!==a.length)throw new Error(`inputDependencies length ${i.length} is not equal to inputTensors length ${a.length}.`);let n=[];for(let g=0;g<a.length;++g){let p=a[g].dataType;switch(i[g]){case"none":{n.push("");break}case"type":{n.push(`${p}`);break}case"rank":{let h=a[g].dims.length;n.push(`${p};${h}`);break}case"dims":{let h=a[g].dims.join(",");n.push(`${p};${h}`);break}default:throw new Error(`unsupported input dependency: ${i[g]}`)}}return n.join("|")},Rm=(a,i,n)=>{var p,h;let g=a.name;return(p=a.shaderCache)!=null&&p.hint&&(g+="["+a.shaderCache.hint+"]"),g+=":"+n+`:${Lm(i,((h=a.shaderCache)==null?void 0:h.inputDependencies)??new Array(i.length).fill("dims"))}`,g},jm=class{constructor(a){a&&(this.architecture=a.architecture,this.vendor=a.vendor)}isArchitecture(a){return this.architecture===a}isVendor(a){return this.vendor===a}},Db=class{constructor(){this.currentSessionId=null,this.currentKernelId=null,this.commandEncoder=null,this.computePassEncoder=null,this.maxDispatchNumber=16,this.pendingDispatchNumber=0,this.pendingKernels=[],this.pendingQueries=new Map,this.sessionStatus="default",this.capturedCommandList=new Map,this.capturedPendingKernels=new Map,this.sessionExternalDataMapping=new Map}get currentKernelCustomData(){if(this.currentKernelId===null)throw new Error("currentKernelCustomData(): currentKernelId is null. (should not happen)");let a=this.kernelCustomData.get(this.currentKernelId);return a||(a={},this.kernelCustomData.set(this.currentKernelId,a)),a}async initialize(a,i){this.env=a;let n=[],g={requiredLimits:{maxComputeWorkgroupStorageSize:i.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:i.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:i.limits.maxStorageBufferBindingSize,maxBufferSize:i.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:i.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:i.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:i.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:i.limits.maxComputeWorkgroupSizeZ},requiredFeatures:n},p=h=>i.features.has(h)&&n.push(h)&&!0;p("chromium-experimental-timestamp-query-inside-passes")||p("timestamp-query"),p("shader-f16"),p("subgroups"),this.device=await i.requestDevice(g),this.adapterInfo=new jm(i.info||await i.requestAdapterInfo()),this.gpuDataManager=Wh(this),this.programManager=new Bb(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,Dc(a.logLevel,!!a.debug),this.device.onuncapturederror=h=>{h.error instanceof GPUValidationError&&`${h.error.message}`},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:i,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<"u"&&this.querySet.destroy(),this.gpuDataManager.dispose()}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}
2826getComputePassEncoder(){if(!this.computePassEncoder){let a=this.getCommandEncoder(),i={};this.queryType==="at-passes"&&(i.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=a.beginComputePass(i)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;Ra(),this.endComputePass();let a;this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),a=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(a,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,a,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&a.mapAsync(GPUMapMode.READ).then(()=>{var g;let i=new BigUint64Array(a.getMappedRange()),n=this.pendingQueries.get(a);for(let p=0;p<i.length/2;p++){let h=n[p],C=h.kernelId,k=this.kernels.get(C),M=k.kernelType,E=k.kernelName,D=h.programName,B=h.inputTensorViews,v=h.outputTensorViews,S=i[p*2],F=i[p*2+1];typeof this.queryTimeBase>"u"&&(this.queryTimeBase=S);let R=Number(S-this.queryTimeBase),X=Number(F-this.queryTimeBase);if(!Number.isSafeInteger(R)||!Number.isSafeInteger(X))throw new RangeError("incorrect timestamp range");if((g=this.env.webgpu.profiling)!=null&&g.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:B.map(z=>({dims:z.dims,dataType:yn(z.dataType)})),outputsMetadata:v.map(z=>({dims:z.dims,dataType:yn(z.dataType)})),kernelId:C,kernelType:M,kernelName:E,programName:D,startTime:R,endTime:X});else{let z="";B.forEach((K,d)=>{z+=`input[${d}]: [${K.dims}] | ${yn(K.dataType)}, `});let L="";v.forEach((K,d)=>{L+=`output[${d}]: [${K.dims}] | ${yn(K.dataType)}, `}),`${C}${M}${E}${D}${z}${L}`,X-R}Jo("GPU",`${D}::${S}::${F}`)}a.unmap(),this.pendingQueries.delete(a)}),ya()}run(a,i,n,g,p,h){Ra(a.name);let C=[];for(let L=0;L<i.length;++L){let K=i[L].data;if(K===0)continue;let d=this.gpuDataManager.get(K);
vendor: 4,331 bytes, line 2826
2826if(!d)throw new Error(`no GPU data for input: ${K}`);C.push(d)}let{outputs:k,dispatchGroup:M,programUniforms:E}=a.getRunData(i),D=n.length===0?k.map((L,K)=>K):n;if(D.length!==k.length)throw new Error(`Output size ${D.length} must be equal to ${k.length}.`);let B=[],v=[];for(let L=0;L<k.length;++L){if(!Number.isInteger(D[L])||D[L]<-3||D[L]>=h)throw new Error(`Invalid output index: ${D[L]}`);if(D[L]===-3)continue;let K=D[L]===-1,d=D[L]===-2,w=K||d?p(k[L].dataType,k[L].dims):g(D[L],k[L].dataType,k[L].dims);if(B.push(w),w.data===0)continue;let e=this.gpuDataManager.get(w.data);if(!e)throw new Error(`no GPU data for output: ${w.data}`);if(K&&this.temporaryData.push(e),d){let u=this.kernelPersistentData.get(this.currentKernelId);u||(u=[],this.kernelPersistentData.set(this.currentKernelId,u)),u.push(e)}v.push(e)}if(C.length!==i.length||v.length!==B.length){if(v.length===0)return ya(a.name),B;throw new Error(`Program ${a.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let S;if(E){let L=0,K=[];E.forEach(u=>{let y=typeof u.data=="number"?[u.data]:u.data;if(y.length===0)return;let ee=u.type===10?2:4,T,O;u.type===10?(O=y.length>4?16:y.length>2?8:y.length*ee,T=y.length>4?16:ee*y.length):(O=y.length<=2?y.length*ee:16,T=16),L=Math.ceil(L/O)*O,K.push(L);let ge=u.type===10?8:4;L+=y.length>4?Math.ceil(y.length/ge)*T:y.length*ee});let d=16;L=Math.ceil(L/d)*d;let w=new ArrayBuffer(L);E.forEach((u,y)=>{let ee=K[y],T=typeof u.data=="number"?[u.data]:u.data;if(u.type===6)new Int32Array(w,ee,T.length).set(T);else if(u.type===12)new Uint32Array(w,ee,T.length).set(T);else if(u.type===10)new Uint16Array(w,ee,T.length).set(T);else if(u.type===1)new Float32Array(w,ee,T.length).set(T);else throw new Error(`Unsupported uniform type: ${yn(u.type)}`)});let e=this.gpuDataManager.create(L,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(e.buffer,0,w,0,L),this.gpuDataManager.release(e.id),S={offset:0,size:L,buffer:e.buffer}}let F=this.programManager.normalizeDispatchGroupSize(M),R=F[1]===1&&F[2]===1,X=Rm(a,i,R),z=this.programManager.getArtifact(X);if(z||(z=this.programManager.build(a,F),this.programManager.setArtifact(X,z),Lt("info",()=>`[artifact] key: ${X}, programName: ${a.name}`)),E&&z.uniformVariablesInfo){if(E.length!==z.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${z.uniformVariablesInfo.length}, got ${E.length} in program "${z.programInfo.name}".`);for(let L=0;L<E.length;L++){let K=E[L],d=K.type,w=typeof K.data=="number"?1:K.data.length,[e,u]=z.uniformVariablesInfo[L];if(d!==e||w!==u)throw new Error(`Uniform variable ${L} mismatch: expect type ${e} with size ${u}, got type ${d} with size ${w} in program "${z.programInfo.name}".`)}}if(Lt("info",()=>`[ProgramManager] run "${a.name}" (key=${X}) with ${F[0]}x${F[1]}x${F[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let L={kernelId:this.currentKernelId,programName:z.programInfo.name,inputTensorViews:i,outputTensorViews:B};this.pendingKernels.push(L),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(L)}return this.programManager.run(z,C,v,F,S),ya(a.name),B}upload(a,i){this.gpuDataManager.upload(a,i)}memcpy(a,i){this.gpuDataManager.memcpy(a,i)}async download(a,i){await this.gpuDataManager.download(a,i)}alloc(a){return this.gpuDataManager.create(a).id}free(a){return this.gpuDataManager.release(a)}createKernel(a,i,n,g){let p=xb.get(a);if(!p)throw new Error(`kernel not implemented: ${a}`);let h={kernelType:a,kernelName:g,kernelEntry:p[0],attributes:[p[1],n]};this.kernels.set(i,h)}releaseKernel(a){let i=this.kernelPersistentData.get(a);if(i){for(let n of i)this.gpuDataManager.release(n.id);this.kernelPersistentData.delete(a)}this.kernelCustomData.delete(a),this.kernels.delete(a)}computeKernel(a,i,n){let g=this.kernels.get(a);if(!g)throw new Error(`kernel not created: ${a}`);let p=g.kernelType,h=g.kernelName,C=g.kernelEntry,k=g.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${p}] ${h}" is not allowed to be called recursively`);this.currentKernelId=a,k[0]&&(k[1]=k[0](k[1]),k[0]=void 0),Lt("info",()=>`[WebGPU] Start to run kernel "[${p}] ${h}"...`);let M=this.env.debug;this.temporaryData=[];try{return M&&this.device.pushErrorScope("validation"),C(i,k[1]),0}
2826catch(E){return n.push(Promise.resolve(`[WebGPU] Kernel "[${p}] ${h}" failed. ${E}`)),1}finally{M&&n.push(this.device.popErrorScope().then(E=>E?`GPU validation error for kernel "[${p}] ${h}": ${E.message}`:null));for(let E of this.temporaryData)this.gpuDataManager.release(E.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(a,i,n,g){let p=this.sessionExternalDataMapping.get(a);p||(p=new Map,this.sessionExternalDataMapping.set(a,p));let h=p.get(i),C=this.gpuDataManager.registerExternalBuffer(n,g,h);return p.set(i,[C,n]),C}unregisterBuffers(a){let i=this.sessionExternalDataMapping.get(a);i&&(i.forEach(n=>this.gpuDataManager.unregisterExternalBuffer(n[0])),this.sessionExternalDataMapping.delete(a))}getBuffer(a){let i=this.gpuDataManager.get(a);if(!i)throw new Error(`no GPU data for buffer: ${a}`);return i.buffer}createDownloader(a,i,n){return async()=>{let g=await ac(this,a,i);return Tc(g.buffer,n)}}writeTimestamp(a){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,a)}setQueryType(){var a;this.queryType="none",(((a=this.env.webgpu.profiling)==null?void 0:a.mode)==="default"||(typeof this.env.trace>"u"?this.env.wasm.trace:this.env.trace))&&(this.device.features.has("chromium-experimental-timestamp-query-inside-passes")?this.queryType="inside-passes":this.device.features.has("timestamp-query")&&(this.queryType="at-passes"),this.queryType!=="none"&&typeof this.querySet>"u"&&(this.querySet=this.device.createQuerySet({type:"timestamp",count:this.maxDispatchNumber*2}),this.queryResolveBuffer=this.device.createBuffer({size:this.maxDispatchNumber*2*8,usage:GPUBufferUsage.COPY_SRC|GPUBufferUsage.QUERY_RESOLVE})))}captureBegin(){Lt("info","captureBegin"),this.capturedCommandList.get(this.currentSessionId)||this.capturedCommandList.set(this.currentSessionId,[]),this.capturedPendingKernels.get(this.currentSessionId)||this.capturedPendingKernels.set(this.currentSessionId,[]),this.flush(),this.sessionStatus="capturing"}captureEnd(){Lt("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Lt("info","replay"),this.sessionStatus="replaying";let a=this.capturedCommandList.get(this.currentSessionId),i=this.capturedPendingKernels.get(this.currentSessionId),n=a.length;this.pendingKernels=[];for(let g=0;g<n;g++){let p=this.getComputePassEncoder(),h=a[g];this.writeTimestamp(this.pendingDispatchNumber*2),p.setPipeline(h.computePipeline),p.setBindGroup(0,h.bindGroup),p.dispatchWorkgroups(...h.dispatchGroup),this.writeTimestamp(this.pendingDispatchNumber*2+1),this.pendingDispatchNumber++,this.queryType!=="none"&&this.pendingKernels.push(i[g]),(this.pendingDispatchNumber>=this.maxDispatchNumber||this.queryType==="at-passes")&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus="default"}onCreateSession(){this.gpuDataManager.onCreateSession()}onReleaseSession(a){this.unregisterBuffers(a),this.capturedCommandList.has(a)&&this.capturedCommandList.delete(a),this.capturedPendingKernels.has(a)&&this.capturedPendingKernels.delete(a),this.gpuDataManager.onReleaseSession(a)}onRunStart(a){this.currentSessionId=a,this.setQueryType()}}}),Tb={};po(Tb,{init:()=>Pb});var Q0,Wm,Pb,n5=kA(()=>{ct(),Tn(),It(),g6(),Q0=class Gb{constructor(i,n,g,p){this.module=i,this.dataType=n,this.data=g,this.dims=p}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let i=Je.size(this.dims);return i===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,i)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let i=Je.size(this.dims);return i===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,i)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let i=Je.size(this.dims);return i===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,i)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let i=Je.size(this.dims);return i===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,i)}
2826reshape(i){if(Je.size(i)!==Je.size(this.dims))throw new Error("Invalid new shape");return new Gb(this.module,this.dataType,this.data,i)}},Wm=class{constructor(a,i,n){this.module=a,this.backend=i,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=i.adapterInfo;let g=a.PTR_SIZE,p=n/a.PTR_SIZE,h=g===4?"i32":"i64";this.opKernelContext=Number(a.getValue(g*p++,h));let C=Number(a.getValue(g*p++,h));this.outputCount=Number(a.getValue(g*p++,h)),this.customDataOffset=Number(a.getValue(g*p++,"*")),this.customDataSize=Number(a.getValue(g*p++,h));let k=[];for(let M=0;M<C;M++){let E=Number(a.getValue(g*p++,h)),D=Number(a.getValue(g*p++,"*")),B=Number(a.getValue(g*p++,h)),v=[];for(let S=0;S<B;S++)v.push(Number(a.getValue(g*p++,h)));k.push(new Q0(a,E,D,v))}this.inputs=k}get kernelCustomData(){return this.backend.currentKernelCustomData}get customDataBuffer(){return this.module.HEAPU8.subarray(this.customDataOffset,this.customDataOffset+this.customDataSize)}compute(a,i){var C;let n=((C=i==null?void 0:i.inputs)==null?void 0:C.map(k=>typeof k=="number"?this.inputs[k]:k))??this.inputs,g=(i==null?void 0:i.outputs)??[],p=(k,M,E)=>new Q0(this.module,M,this.output(k,E),E),h=(k,M)=>{let E=Di(k,M);if(!E)throw new Error(`Unsupported data type: ${k}`);let D=E>0?this.backend.gpuDataManager.create(E).id:0;return new Q0(this.module,k,D,M)};return this.backend.run(a,n,g,p,h,this.outputCount)}output(a,i){let n=this.module.stackSave();try{let g=this.module.PTR_SIZE,p=g===4?"i32":"i64",h=this.module.stackAlloc((1+i.length)*g);this.module.setValue(h,i.length,p);for(let C=0;C<i.length;C++)this.module.setValue(h+g*(C+1),i[C],p);return this.module._JsepOutput(this.opKernelContext,a,h)}catch(g){throw new Error(`Failed to generate kernel's output[${a}] with dims [${i}]. If you are running with pre-allocated output, please make sure the output type/dims are correct. Error: ${g}`)}finally{this.module.stackRestore(n)}}},Pb=async(a,i,n,g)=>{let p=i.jsepInit;if(!p)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(a==="webgpu"){let h=(a5(),Zo(yb)).WebGpuBackend,C=new h;await C.initialize(n,g),p("webgpu",[C,k=>C.alloc(Number(k)),k=>C.free(k),(k,M,E,D=!1)=>{if(D)Lt("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(k)}, dst=${Number(M)}, size=${Number(E)}`),C.memcpy(Number(k),Number(M));else{Lt("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(k)}, gpuDataId=${Number(M)}, size=${Number(E)}`);let B=i.HEAPU8.subarray(Number(k>>>0),Number(k>>>0)+Number(E));C.upload(Number(M),B)}},async(k,M,E)=>{Lt("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${k}, dataOffset=${M}, size=${E}`),await C.download(Number(k),()=>i.HEAPU8.subarray(Number(M)>>>0,Number(M+E)>>>0))},(k,M,E)=>C.createKernel(k,Number(M),E,i.UTF8ToString(i._JsepGetNodeName(Number(M)))),k=>C.releaseKernel(k),(k,M,E,D)=>{Lt("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${E}, kernel=${k}, contextDataOffset=${M}`);let B=new Wm(i,C,Number(M));return C.computeKernel(Number(k),B,D)},()=>C.captureBegin(),()=>C.captureEnd(),()=>C.replay()])}else{let h=new jh(n);p("webnn",[h,()=>h.reserveTensorId(),C=>h.releaseTensorId(C),async(C,k,M,E,D)=>h.ensureTensor(C,k,M,E,D),(C,k)=>{h.uploadTensor(C,k)},async(C,k)=>h.downloadTensor(C,k)])}}}),Vm,Rc,jc,$n,Ym,W2,U0,Wc,Vc,V2,Yc,Hc,Uc,Qb=kA(()=>{u6(),d6(),ct(),Oi(),Ec(),Oh(),Vm=(a,i)=>{Mr()._OrtInit(a,i)!==0&&lr("Can't initialize onnxruntime.")},Rc=async a=>{Vm(a.wasm.numThreads,j0(a.logLevel))},jc=async(a,i)=>{var n,g;(g=(n=Mr()).asyncInit)==null||g.call(n);{let p=(n5(),Zo(Tb)).init;if(i==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let h=a.webgpu.adapter;if(h){if(typeof h.limits!="object"||typeof h.features!="object"||typeof h.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let C=a.webgpu.powerPreference;if(C!==void 0&&C!=="low-power"&&C!=="high-performance")throw new Error(`Invalid powerPreference setting: "${C}"`);let k=a.webgpu.forceFallbackAdapter;if(k!==void 0&&typeof k!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${k}"`);if(h=await navigator.gpu.requestAdapter({powerPreference:C,forceFallbackAdapter:k}),!h)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await p("webgpu",Mr(),a,h)}if(i==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await p("webnn",Mr(),a)}}},$n=new Map,Ym=a=>{let i=Mr(),n=i.stackSave();try{let g=i.PTR_SIZE,p=i.stackAlloc(2*g);i._OrtGetInputOutputCount(a,p,p+g)!==0&&lr("Can't get session input/output count.");let h=g===4?"i32":"i64";return[Number(i.getValue(p,h)),Number(i.getValue(p+g,h))]}finally{i.stackRestore(n)}},W2=(a,i)=>{let n=Mr(),g=n.stackSave(),p=0;
2826try{let h=n.PTR_SIZE,C=n.stackAlloc(2*h);n._OrtGetInputOutputMetadata(a,i,C,C+h)!==0&&lr("Can't get session input/output metadata.");let k=Number(n.getValue(C,"*"));p=Number(n.getValue(C+h,"*"));let M=n.HEAP32[p/4];if(M===0)return[k,0];let E=n.HEAPU32[p/4+1],D=[];for(let B=0;B<E;B++){let v=Number(n.getValue(p+8+B*h,"*"));D.push(v!==0?n.UTF8ToString(v):Number(n.getValue(p+8+(B+E)*h,"*")))}return[k,M,D]}finally{n.stackRestore(g),p!==0&&n._OrtFree(p)}},U0=a=>{let i=Mr(),n=i._malloc(a.byteLength);if(n===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${a.byteLength}.`);return i.HEAPU8.set(a,n),[n,a.byteLength]},Wc=async(a,i)=>{var B,v,S,F;let n,g,p=Mr();Array.isArray(a)?[n,g]=a:a.buffer===p.HEAPU8.buffer?[n,g]=[a.byteOffset,a.byteLength]:[n,g]=U0(a);let h=0,C=0,k=0,M=[],E=[],D=[];try{if([C,M]=await Sh(i),(i==null?void 0:i.externalData)&&p.mountExternalData){let y=[];for(let ee of i.externalData){let T=typeof ee=="string"?ee:ee.path;y.push(yc(typeof ee=="string"?ee:ee.data).then(O=>{p.mountExternalData(T,O)}))}await Promise.all(y)}for(let y of(i==null?void 0:i.executionProviders)??[])if((typeof y=="string"?y:y.name)==="webnn"){if(p.shouldTransferToMLTensor=!1,typeof y!="string"){let ee=y,T=ee==null?void 0:ee.context,O=ee==null?void 0:ee.gpuDevice,ge=ee==null?void 0:ee.deviceType,se=ee==null?void 0:ee.powerPreference;T?p.currentContext=T:O?p.currentContext=await p.webnnCreateMLContext(O):p.currentContext=await p.webnnCreateMLContext({deviceType:ge,powerPreference:se})}else p.currentContext=await p.webnnCreateMLContext();break}h=await p._OrtCreateSession(n,g,C),(B=p.webgpuOnCreateSession)==null||B.call(p,h),h===0&&lr("Can't create a session."),(v=p.jsepOnCreateSession)==null||v.call(p),p.currentContext&&(p.webnnRegisterMLContext(h,p.currentContext),p.currentContext=void 0,p.shouldTransferToMLTensor=!0);let[R,X]=Ym(h),z=!!(i!=null&&i.enableGraphCapture),L=[],K=[],d=[],w=[],e=[];for(let y=0;y<R;y++){let[ee,T,O]=W2(h,y);ee===0&&lr("Can't get an input name."),E.push(ee);let ge=p.UTF8ToString(ee);L.push(ge),d.push(T===0?{name:ge,isTensor:!1}:{name:ge,isTensor:!0,type:yn(T),shape:O})}for(let y=0;y<X;y++){let[ee,T,O]=W2(h,y+R);ee===0&&lr("Can't get an output name."),D.push(ee);let ge=p.UTF8ToString(ee);K.push(ge),w.push(T===0?{name:ge,isTensor:!1}:{name:ge,isTensor:!0,type:yn(T),shape:O});{if(z&&(i==null?void 0:i.preferredOutputLocation)===void 0){e.push("gpu-buffer");continue}let se=typeof(i==null?void 0:i.preferredOutputLocation)=="string"?i.preferredOutputLocation:((S=i==null?void 0:i.preferredOutputLocation)==null?void 0:S[ge])??"cpu";if(se!=="cpu"&&se!=="cpu-pinned"&&se!=="gpu-buffer"&&se!=="ml-tensor")throw new Error(`Not supported preferred output location: ${se}.`);if(z&&se!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${se}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);e.push(se)}}let u=null;return e.some(y=>y==="gpu-buffer"||y==="ml-tensor")&&(k=p._OrtCreateBinding(h),k===0&&lr("Can't create IO binding."),u={handle:k,outputPreferredLocations:e,outputPreferredLocationsEncoded:e.map(y=>rc(y))}),$n.set(h,[h,E,D,u,z,!1]),[h,L,K,d,w]}catch(R){throw E.forEach(X=>p._OrtFree(X)),D.forEach(X=>p._OrtFree(X)),k!==0&&p._OrtReleaseBinding(k)!==0&&lr("Can't release IO binding."),h!==0&&p._OrtReleaseSession(h)!==0&&lr("Can't release session."),R}finally{p._free(n),C!==0&&p._OrtReleaseSessionOptions(C)!==0&&lr("Can't release session options."),M.forEach(R=>p._free(R)),(F=p.unmountExternalData)==null||F.call(p)}},Vc=a=>{var M,E,D;let i=Mr(),n=$n.get(a);if(!n)throw new Error(`cannot release session. invalid session id: ${a}`);let[g,p,h,C,k]=n;C&&(k&&i._OrtClearBoundOutputs(C.handle)!==0&&lr("Can't clear bound outputs."),i._OrtReleaseBinding(C.handle)!==0&&lr("Can't release IO binding.")),(M=i.jsepOnReleaseSession)==null||M.call(i,a),(E=i.webnnOnReleaseSession)==null||E.call(i,a),(D=i.webgpuOnReleaseSession)==null||D.call(i,a),p.forEach(B=>i._OrtFree(B)),h.forEach(B=>i._OrtFree(B)),i._OrtReleaseSession(g)!==0&&lr("Can't release session."),$n.delete(a)},V2=async(a,i,n,g,p,h,C=!1)=>
vendor: 2,571 bytes, line 2826
2826{if(!a){i.push(0);return}let k=Mr(),M=k.PTR_SIZE,E=a[0],D=a[1],B=a[3],v=B,S,F;if(E==="string"&&(B==="gpu-buffer"||B==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(C&&B!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${h} when enableGraphCapture is true.`);if(B==="gpu-buffer"){let z=a[2].gpuBuffer;F=Di(ro(E),D);{let L=k.jsepRegisterBuffer;if(!L)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');S=L(g,h,z,F)}}else if(B==="ml-tensor"){let z=a[2].mlTensor;F=Di(ro(E),D);let L=k.webnnRegisterMLTensor;if(!L)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');S=L(g,z,ro(E),D)}else{let z=a[2];if(Array.isArray(z)){F=M*z.length,S=k._malloc(F),n.push(S);for(let L=0;L<z.length;L++){if(typeof z[L]!="string")throw new TypeError(`tensor data at index ${L} is not a string`);k.setValue(S+L*M,za(z[L],n),"*")}}else{let L=k.webnnIsGraphInput;if(E!=="string"&&L){let K=k.UTF8ToString(p);if(L(g,K)){let d=ro(E);F=Di(d,D),v="ml-tensor";let w=k.webnnCreateTemporaryTensor,e=k.webnnUploadTensor;if(!w||!e)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let u=await w(g,d,D);e(u,new Uint8Array(z.buffer,z.byteOffset,z.byteLength)),S=u}else F=z.byteLength,S=k._malloc(F),n.push(S),k.HEAPU8.set(new Uint8Array(z.buffer,z.byteOffset,F),S)}else F=z.byteLength,S=k._malloc(F),n.push(S),k.HEAPU8.set(new Uint8Array(z.buffer,z.byteOffset,F),S)}}let R=k.stackSave(),X=k.stackAlloc(4*D.length);try{D.forEach((L,K)=>k.setValue(X+K*M,L,M===4?"i32":"i64"));let z=k._OrtCreateTensor(ro(E),S,F,X,D.length,rc(v));z===0&&lr(`Can't create tensor for input/output. session=${g}, index=${h}.`),i.push(z)}finally{k.stackRestore(R)}},Yc=async(a,i,n,g,p,h)=>{var O,ge,se,we;let C=Mr(),k=C.PTR_SIZE,M=$n.get(a);if(!M)throw new Error(`cannot run inference. invalid session id: ${a}`);let E=M[0],D=M[1],B=M[2],v=M[3],S=M[4],F=M[5],R=i.length,X=g.length,z=0,L=[],K=[],d=[],w=[],e=C.stackSave(),u=C.stackAlloc(R*k),y=C.stackAlloc(R*k),ee=C.stackAlloc(X*k),T=C.stackAlloc(X*k);try{[z,L]=Fh(h);for(let ve=0;ve<R;ve++)await V2(n[ve],K,w,a,D[i[ve]],i[ve],S);for(let ve=0;ve<X;ve++)await V2(p[ve],d,w,a,B[g[ve]],R+g[ve],S);for(let ve=0;ve<R;ve++)C.setValue(u+ve*k,K[ve],"*"),C.setValue(y+ve*k,D[i[ve]],"*");for(let ve=0;ve<X;ve++)C.setValue(ee+ve*k,d[ve],"*"),C.setValue(T+ve*k,B[g[ve]],"*");if(v&&!F){let{handle:ve,outputPreferredLocations:De,outputPreferredLocationsEncoded:je}=v;if(D.length!==R)throw new Error(`input count from feeds (${R}
2826) is expected to be always equal to model's input count (${D.length}).`);for(let Le=0;Le<R;Le++){let Pe=i[Le];await C._OrtBindInput(ve,D[Pe],K[Le])!==0&&lr(`Can't bind input[${Le}] for session=${a}.`)}for(let Le=0;Le<X;Le++){let Pe=g[Le];(O=p[Le])!=null&&O[3]?C._OrtBindOutput(ve,B[Pe],d[Le],0)!==0&&lr(`Can't bind pre-allocated output[${Le}] for session=${a}.`):C._OrtBindOutput(ve,B[Pe],0,je[Pe])!==0&&lr(`Can't bind output[${Le}] to ${De[Le]} for session=${a}.`)}$n.set(a,[E,D,B,v,S,!0])}(ge=C.jsepOnRunStart)==null||ge.call(C,E),(se=C.webnnOnRunStart)==null||se.call(C,E);let be;v?be=await C._OrtRunWithBinding(E,v.handle,X,ee,z):be=await C._OrtRun(E,y,u,R,T,X,ee,z),be!==0&&lr("failed to call OrtRun().");let Be=[];for(let ve=0;ve<X;ve++){let De=Number(C.getValue(ee+ve*k,"*"));if(De===d[ve]){Be.push(p[ve]);continue}let je=C.stackSave(),Le=C.stackAlloc(4*k),Pe=!1,me,ie=0;try{C._OrtGetTensorData(De,Le,Le+k,Le+2*k,Le+3*k)!==0&&lr(`Can't access output tensor data on index ${ve}.`);let Ie=k===4?"i32":"i64",Fe=Number(C.getValue(Le,Ie));ie=C.getValue(Le+k,"*");let xe=C.getValue(Le+k*2,"*"),sA=Number(C.getValue(Le+k*3,Ie)),uA=[];for(let ye=0;ye<sA;ye++)uA.push(Number(C.getValue(xe+ye*k,Ie)));C._OrtFree(xe)!==0&&lr("Can't free memory for tensor dims.");let hA=uA.reduce((ye,Ae)=>ye*Ae,1);me=yn(Fe);let iA=v==null?void 0:v.outputPreferredLocations[g[ve]];if(me==="string"){if(iA==="gpu-buffer"||iA==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let ye=[];for(let Ae=0;Ae<hA;Ae++){let Re=C.getValue(ie+Ae*k,"*"),qe=C.getValue(ie+(Ae+1)*k,"*"),Ue=Ae===hA-1?void 0:qe-Re;ye.push(C.UTF8ToString(Re,Ue))}Be.push([me,uA,ye,"cpu"])}else if(iA==="gpu-buffer"&&hA>0){let ye=C.jsepGetBuffer;if(!ye)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let Ae=ye(ie),Re=Di(Fe,hA);if(Re===void 0||!xc(me))throw new Error(`Unsupported data type: ${me}`);Pe=!0,Be.push([me,uA,{gpuBuffer:Ae,download:C.jsepCreateDownloader(Ae,Re,me),dispose:()=>{C._OrtReleaseTensor(De)!==0&&lr("Can't release tensor.")}},"gpu-buffer"])}else if(iA==="ml-tensor"&&hA>0){let ye=C.webnnEnsureTensor,Ae=C.webnnIsInt64Supported;if(!ye||!Ae)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Di(Fe,hA)===void 0||!Bc(me))throw new Error(`Unsupported data type: ${me}`);if(me==="int64"&&!Ae(a))throw new Error('preferredLocation "ml-tensor" for int64 output is not supported by current WebNN Context.');let Re=await ye(a,ie,Fe,uA,!1);Pe=!0,Be.push([me,uA,{mlTensor:Re,download:C.webnnCreateMLTensorDownloader(ie,me),dispose:()=>{C.webnnReleaseTensorId(ie),C._OrtReleaseTensor(De)}},"ml-tensor"])}else{let ye=vc(me),Ae=new ye(hA);new Uint8Array(Ae.buffer,Ae.byteOffset,Ae.byteLength).set(C.HEAPU8.subarray(ie,ie+Ae.byteLength)),Be.push([me,uA,Ae,"cpu"])}}finally{C.stackRestore(je),me==="string"&&ie&&C._free(ie),Pe||C._OrtReleaseTensor(De),(we=C.webnnOnRunEnd)==null||we.call(C,E)}}return v&&!S&&(C._OrtClearBoundOutputs(v.handle)!==0&&lr("Can't clear bound outputs."),$n.set(a,[E,D,B,v,S,!1])),Be}
vendor: 4,304 bytes, line 2826
2826finally{C.stackRestore(e),K.forEach(be=>C._OrtReleaseTensor(be)),d.forEach(be=>C._OrtReleaseTensor(be)),w.forEach(be=>C._free(be)),z!==0&&C._OrtReleaseRunOptions(z),L.forEach(be=>C._free(be))}},Hc=a=>{let i=Mr(),n=$n.get(a);if(!n)throw new Error("invalid session id");let g=n[0],p=i._OrtEndProfiling(g);p===0&&lr("Can't get an profile file name."),i._OrtFree(p)},Uc=a=>{let i=[];for(let n of a){let g=n[2];!Array.isArray(g)&&"buffer"in g&&i.push(g.buffer)}return i}}),ei,qs,Ao,Lo,Ro,F0,Y2,S0,Ei,vi,Hm,Fb,Sb,Ob,_b,zb,Nb,Lb,Rb=kA(()=>{ja(),Qb(),Oi(),kc(),ei=()=>!!Dr.wasm.proxy&&typeof document<"u",Ao=!1,Lo=!1,Ro=!1,S0=new Map,Ei=(a,i)=>{let n=S0.get(a);n?n.push(i):S0.set(a,[i])},vi=()=>{if(Ao||!Lo||Ro||!qs)throw new Error("worker not ready")},Hm=a=>{switch(a.data.type){case"init-wasm":Ao=!1,a.data.err?(Ro=!0,Y2[1](a.data.err)):(Lo=!0,Y2[0]()),F0&&(URL.revokeObjectURL(F0),F0=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let i=S0.get(a.data.type);a.data.err?i.shift()[1](a.data.err):i.shift()[0](a.data.out);break}}},Fb=async()=>{if(!Lo){if(Ao)throw new Error("multiple calls to 'initWasm()' detected.");if(Ro)throw new Error("previous call to 'initWasm()' failed.");if(Ao=!0,ei())return new Promise((a,i)=>{qs==null||qs.terminate(),Gh().then(([n,g])=>{try{qs=g,qs.onerror=h=>i(h),qs.onmessage=Hm,Y2=[a,i];let p={type:"init-wasm",in:Dr};!p.in.wasm.wasmPaths&&(n||tc)&&(p.in.wasm.wasmPaths={wasm:new URL(""+new URL("../assets/ort-wasm-simd-threaded.jsep.B0T3yYHD.wasm",import.meta.url).href,import.meta.url).href}),qs.postMessage(p),F0=n}catch(p){i(p)}},i)});try{await Mc(Dr.wasm),await Rc(Dr),Lo=!0}catch(a){throw Ro=!0,a}finally{Ao=!1}}},Sb=async a=>{if(ei())return vi(),new Promise((i,n)=>{Ei("init-ep",[i,n]);let g={type:"init-ep",in:{epName:a,env:Dr}};qs.postMessage(g)});await jc(Dr,a)},Ob=async a=>ei()?(vi(),new Promise((i,n)=>{Ei("copy-from",[i,n]);let g={type:"copy-from",in:{buffer:a}};qs.postMessage(g,[a.buffer])})):U0(a),_b=async(a,i)=>{if(ei()){if(i!=null&&i.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return vi(),new Promise((n,g)=>{Ei("create",[n,g]);let p={type:"create",in:{model:a,options:{...i}}},h=[];a instanceof Uint8Array&&h.push(a.buffer),qs.postMessage(p,h)})}else return Wc(a,i)},zb=async a=>{if(ei())return vi(),new Promise((i,n)=>{Ei("release",[i,n]);let g={type:"release",in:a};qs.postMessage(g)});Vc(a)},Nb=async(a,i,n,g,p,h)=>{if(ei()){if(n.some(C=>C[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(p.some(C=>C))throw new Error("pre-allocated output tensor is not supported for proxy.");return vi(),new Promise((C,k)=>{Ei("run",[C,k]);let M=n,E={type:"run",in:{sessionId:a,inputIndices:i,inputs:M,outputIndices:g,options:h}};qs.postMessage(E,Uc(M))})}else return Yc(a,i,n,g,p,h)},Lb=async a=>{if(ei())return vi(),new Promise((i,n)=>{Ei("end-profiling",[i,n]);let g={type:"end-profiling",in:a};qs.postMessage(g)});Hc(a)}}),H2,Um,jb,i5=kA(()=>{ja(),Rb(),ct(),wc(),Oh(),H2=(a,i)=>{switch(a.location){case"cpu":return[a.type,a.dims,a.data,"cpu"];case"gpu-buffer":return[a.type,a.dims,{gpuBuffer:a.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[a.type,a.dims,{mlTensor:a.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${a.location} for ${i()}`)}},Um=a=>{switch(a[3]){case"cpu":return new Na(a[0],a[2],a[1]);case"gpu-buffer":{let i=a[0];if(!xc(i))throw new Error(`not supported data type: ${i} for deserializing GPU tensor`);let{gpuBuffer:n,download:g,dispose:p}=a[2];return Na.fromGpuBuffer(n,{dataType:i,dims:a[1],download:g,dispose:p})}case"ml-tensor":{let i=a[0];if(!Bc(i))throw new Error(`not supported data type: ${i} for deserializing MLTensor tensor`);let{mlTensor:n,download:g,dispose:p}=a[2];return Na.fromMLTensor(n,{dataType:i,dims:a[1],download:g,dispose:p})}default:throw new Error(`invalid data location: ${a[3]}`)}},jb=class{async fetchModelAndCopyToWasmMemory(a){return Ob(await yc(a))}async loadModel(a,i){Ra();let n;typeof a=="string"?n=await this.fetchModelAndCopyToWasmMemory(a):n=a,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await _b(n,i),ya()}async dispose(){return zb(this.sessionId)}async run(a,i,n){Ra();let g=[],p=[];
2826Object.entries(a).forEach(B=>{let v=B[0],S=B[1],F=this.inputNames.indexOf(v);if(F===-1)throw new Error(`invalid input '${v}'`);g.push(S),p.push(F)});let h=[],C=[];Object.entries(i).forEach(B=>{let v=B[0],S=B[1],F=this.outputNames.indexOf(v);if(F===-1)throw new Error(`invalid output '${v}'`);h.push(S),C.push(F)});let k=g.map((B,v)=>H2(B,()=>`input "${this.inputNames[p[v]]}"`)),M=h.map((B,v)=>B?H2(B,()=>`output "${this.outputNames[C[v]]}"`):null),E=await Nb(this.sessionId,p,k,C,M,n),D={};for(let B=0;B<E.length;B++)D[this.outputNames[C[B]]]=h[B]??Um(E[B]);return ya(),D}startProfiling(){}endProfiling(){Lb(this.sessionId)}}}),Wb={};po(Wb,{OnnxruntimeWebAssemblyBackend:()=>hc,initializeFlags:()=>mc,wasmBackend:()=>Vb});var mc,hc,Vb,o5=kA(()=>{ja(),Rb(),i5(),mc=()=>{(typeof Dr.wasm.initTimeout!="number"||Dr.wasm.initTimeout<0)&&(Dr.wasm.initTimeout=0);let a=Dr.wasm.simd;if(typeof a!="boolean"&&a!==void 0&&a!=="fixed"&&a!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${a}". Reset it to \`false\` and ignore SIMD feature checking.`),Dr.wasm.simd=!1),typeof Dr.wasm.proxy!="boolean"&&(Dr.wasm.proxy=!1),typeof Dr.wasm.trace!="boolean"&&(Dr.wasm.trace=!1),typeof Dr.wasm.numThreads!="number"||!Number.isInteger(Dr.wasm.numThreads)||Dr.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Dr.wasm.numThreads=1;else{let i=typeof navigator>"u"?KI("node:os").cpus().length:navigator.hardwareConcurrency;Dr.wasm.numThreads=Math.min(4,Math.ceil((i||1)/2))}},hc=class{async init(a){mc(),await Fb(),await Sb(a)}async createInferenceSessionHandler(a,i){let n=new jb;return await n.loadModel(a,i),n}},Vb=new hc});ja();ja();ja();var l5="1.22.0-dev.20250409-89f8206ba4",c5=xh;{let a=(o5(),Zo(Wb)).wasmBackend;Ti("webgpu",a,5),Ti("webnn",a,5),Ti("cpu",a,10),Ti("wasm",a,10)}Object.defineProperty(Dr.versions,"web",{value:l5,enumerable:!0});/** 2827* @license 2828* Copyright 2021 Google LLC. All Rights Reserved. 2829* Licensed under the Apache License, Version 2.0 (the "License"); 2830* you may not use this file except in compliance with the License. 2831* You may obtain a copy of the License at 2832* 2833* http://www.apache.org/licenses/LICENSE-2.0 2834* 2835* Unless required by applicable law or agreed to in writing, software 2836* distributed under the License is distributed on an "AS IS" BASIS, 2837* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2838* See the License for the specific language governing permissions and 2839* limitations under the License. 2840* ============================================================================= 2841*//** 2842 * @license 2843 * Copyright 2020 Google LLC. All Rights Reserved. 2844 * Licensed under the Apache License, Version 2.0 (the "License"); 2845 * you may not use this file except in compliance with the License. 2846 * You may obtain a copy of the License at 2847 * 2848 * http://www.apache.org/licenses/LICENSE-2.0 2849 * 2850 * Unless required by applicable law or agreed to in writing, software 2851 * distributed under the License is distributed on an "AS IS" BASIS, 2852 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2853 * See the License for the specific language governing permissions and 2854 * limitations under the License. 2855 * ============================================================================= 2856 *//** 2857 * @license 2858 * Copyright 2019 Google LLC. All Rights Reserved. 2859 * Licensed under the Apache License, Version 2.0 (the "License"); 2860 * you may not use this file except in compliance with the License. 2861 * You may obtain a copy of the License at 2862 * 2863 * http://www.apache.org/licenses/LICENSE-2.0 2864 * 2865 * Unless required by applicable law or agreed to in writing, software 2866 * distributed under the License is distributed on an "AS IS" BASIS, 2867 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2868 * See the License for the specific language governing permissions and 2869 * limitations under the License. 2870 * ============================================================================= 2871 */const u5=Object.freeze(Object.defineProperty({__proto__:null,get InferenceSession(){return Ic},get TRACE(){return Jo},get TRACE_FUNC_BEGIN(){return Ra},get TRACE_FUNC_END(){return ya},get Tensor(){return Na},default:c5,get env(){return Dr},get registerBackend(){return Ti}},Symbol.toStringTag,{value:"Module"}));var vn={},d5={"onnxruntime-common":a=>{a.exports=VI},"onnxruntime-web":a=>{a.exports=u5},"?2ce3":()=>{},"?7992":()=>{},"?5af5":()=>{},"?2b25":()=>{},"?db59":()=>{},"?383f":()=>{},"?fa4b":()=>{},
vendor: 49,850 bytes, lines 2871-2879
2871"./node_modules/@huggingface/jinja/dist/index.js":(a,i,n)=>{n.r(i),n.d(i,{Environment:()=>KA,Interpreter:()=>Zt,Template:()=>Ws,parse:()=>sA,tokenize:()=>B});var g=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Comment:"Comment"}),p=class{constructor(H,ue){this.value=H,this.type=ue}};function h(H){return/\w/.test(H)}function C(H){return/[0-9]/.test(H)}function k(H){return/\s/.test(H)}var M=[["{%",g.OpenStatement],["%}",g.CloseStatement],["{{",g.OpenExpression],["}}",g.CloseExpression],["(",g.OpenParen],[")",g.CloseParen],["{",g.OpenCurlyBracket],["}",g.CloseCurlyBracket],["[",g.OpenSquareBracket],["]",g.CloseSquareBracket],[",",g.Comma],[".",g.Dot],[":",g.Colon],["|",g.Pipe],["<=",g.ComparisonBinaryOperator],[">=",g.ComparisonBinaryOperator],["==",g.ComparisonBinaryOperator],["!=",g.ComparisonBinaryOperator],["<",g.ComparisonBinaryOperator],[">",g.ComparisonBinaryOperator],["+",g.AdditiveBinaryOperator],["-",g.AdditiveBinaryOperator],["~",g.AdditiveBinaryOperator],["*",g.MultiplicativeBinaryOperator],["/",g.MultiplicativeBinaryOperator],["%",g.MultiplicativeBinaryOperator],["=",g.Equals]],E=new Map([["n",` 2872`],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function D(H,ue={}){return H.endsWith(` 2873`)&&(H=H.slice(0,-1)),ue.lstrip_blocks&&(H=H.replace(/^[ \t]*({[#%-])/gm,"$1")),ue.trim_blocks&&(H=H.replace(/([#%-]})\n/g,"$1")),H.replace(/{%\s*(end)?generation\s*%}/gs,"")}function B(H,ue={}){var SA,gt;const ae=[],pe=D(H,ue);let ke=0,_e=0;const eA=YA=>{let vt="";for(;YA(pe[ke]);){if(pe[ke]==="\\"){if(++ke,ke>=pe.length)throw new SyntaxError("Unexpected end of input");const OA=pe[ke++],Bt=E.get(OA);if(Bt===void 0)throw new SyntaxError(`Unexpected escaped character: ${OA}`);vt+=Bt;continue}if(vt+=pe[ke++],ke>=pe.length)throw new SyntaxError("Unexpected end of input")}return vt},FA=()=>{const YA=ae.at(-1);YA&&YA.type===g.Text&&(YA.value=YA.value.trimEnd(),YA.value===""&&ae.pop())},NA=()=>{for(;ke<pe.length&&k(pe[ke]);)++ke};e:for(;ke<pe.length;){const YA=(SA=ae.at(-1))==null?void 0:SA.type;if(YA===void 0||YA===g.CloseStatement||YA===g.CloseExpression||YA===g.Comment){let OA="";for(;ke<pe.length&&!(pe[ke]==="{"&&(pe[ke+1]==="%"||pe[ke+1]==="{"||pe[ke+1]==="#"));)OA+=pe[ke++];if(OA.length>0){ae.push(new p(OA,g.Text));continue}}if(pe[ke]==="{"&&pe[ke+1]==="#"){ke+=2;const OA=pe[ke]==="-";OA&&++ke;let Bt="";for(;pe[ke]!=="#"||pe[ke+1]!=="}";){if(ke+2>=pe.length)throw new SyntaxError("Missing end of comment tag");Bt+=pe[ke++]}const zt=Bt.endsWith("-");zt&&(Bt=Bt.slice(0,-1)),OA&&FA(),ae.push(new p(Bt,g.Comment)),ke+=2,zt&&NA();continue}if(pe.slice(ke,ke+3)==="{%-"){FA(),ae.push(new p("{%",g.OpenStatement)),ke+=3;continue}if(pe.slice(ke,ke+3)==="{{-"){FA(),ae.push(new p("{{",g.OpenExpression)),_e=0,ke+=3;continue}if(eA(k),pe.slice(ke,ke+3)==="-%}"){ae.push(new p("%}",g.CloseStatement)),ke+=3,NA();continue}if(pe.slice(ke,ke+3)==="-}}"){ae.push(new p("}}",g.CloseExpression)),ke+=3,NA();continue}const vt=pe[ke];if(vt==="-"||vt==="+"){const OA=(gt=ae.at(-1))==null?void 0:gt.type;if(OA===g.Text||OA===void 0)throw new SyntaxError(`Unexpected character: ${vt}`);switch(OA){case g.Identifier:case g.NumericLiteral:case g.StringLiteral:case g.CloseParen:case g.CloseSquareBracket:break;default:{++ke;const Bt=eA(C);ae.push(new p(`${vt}${Bt}`,Bt.length>0?g.NumericLiteral:g.UnaryOperator));continue}}}for(const[OA,Bt]of M){if(OA==="}}"&&_e>0)continue;if(pe.slice(ke,ke+OA.length)===OA){ae.push(new p(OA,Bt)),Bt===g.OpenExpression?_e=0:Bt===g.OpenCurlyBracket?++_e:Bt===g.CloseCurlyBracket&&--_e,ke+=OA.length;continue e}}if(vt==="'"||vt==='"'){++ke;const OA=eA(Bt=>Bt!==vt);ae.push(new p(OA,g.StringLiteral)),++ke;continue}if(C(vt)){let OA=eA(C);if(pe[ke]==="."&&C(pe[ke+1])){++ke;const Bt=eA(C);OA=`${OA}.${Bt}`}ae.push(new p(OA,g.NumericLiteral));continue}if(h(vt)){const OA=eA(h);ae.push(new p(OA,g.Identifier));continue}throw new SyntaxError(`Unexpected character: ${vt}`)}return ae}var v=class{constructor(){Ee(this,"type","Statement")}},S=class extends v{constructor(ue){super();Ee(this,"type","Program");this.body=ue}},F=class extends v{constructor(ue,ae,pe){super();Ee(this,"type","If");this.test=ue,this.body=ae,this.alternate=pe}},R=class extends v{constructor(ue,ae,pe,ke){super();Ee(this,"type","For");this.loopvar=ue,this.iterable=ae,this.body=pe,this.defaultBlock=ke}},X=class extends v{constructor(){super(...arguments);Ee(this,"type","Break")}},z=class extends v{constructor(){super(...arguments);Ee(this,"type","Continue")}},L=class extends v{constructor(ue,ae,pe){super();Ee(this,"type","Set");this.assignee=ue,this.value=ae,this.body=pe}},K=class extends v{constructor(ue,ae,pe){super();Ee(this,"type","Macro");this.name=ue,this.args=ae,this.body=pe}},d=class extends v{constructor(ue){super();Ee(this,"type","Comment");this.value=ue}},w=class extends v{constructor(){super(...arguments);Ee(this,"type","Expression")}},e=class extends w{constructor(ue,ae,pe){super();Ee(this,"type","MemberExpression");this.object=ue,this.property=ae,this.computed=pe}},u=class extends w{constructor(ue,ae){super();Ee(this,"type","CallExpression");this.callee=ue,this.args=ae}},y=class extends w{constructor(ue){super();Ee(this,"type","Identifier");this.value=ue}},ee=class extends w{constructor(ue){super();Ee(this,"type","Literal");this.value=ue}},T=class extends ee{constructor(){super(...arguments);Ee(this,"type","IntegerLiteral")}},O=class extends ee{constructor(){super(...arguments);Ee(this,"type","FloatLiteral")}},ge=class extends ee{constructor(){super(...arguments);Ee(this,"type","StringLiteral")}},se=class extends ee{constructor(){super(...arguments);Ee(this,"type","ArrayLiteral")}},we=class extends ee{constructor(){super(...arguments);Ee(this,"type","TupleLiteral")}},be=class extends ee{constructor(){super(...arguments);Ee(this,"type","ObjectLiteral")}},Be=class extends w{constructor(ue,ae,pe){super();Ee(this,"type","BinaryExpression");this.operator=ue,this.left=ae,this.right=pe}},ve=class extends w{constructor(ue,ae){super();Ee(this,"type","FilterExpression");this.operand=ue,this.filter=ae}},De=class extends v{constructor(ue,ae){super();Ee(this,"type","FilterStatement");this.filter=ue,this.body=ae}},je=class extends w{constructor(ue,ae){super();Ee(this,"type","SelectExpression");this.lhs=ue,this.test=ae}},Le=class extends w{constructor(ue,ae,pe){super();Ee(this,"type","TestExpression");this.operand=ue,this.negate=ae,this.test=pe}},Pe=class extends w{constructor(ue,ae){super();Ee(this,"type","UnaryExpression");this.operator=ue,this.argument=ae}},me=class extends w{constructor(ue=void 0,ae=void 0,pe=void 0){super();Ee(this,"type","SliceExpression");this.start=ue,this.stop=ae,this.step=pe}},ie=class extends w{constructor(ue,ae){super();Ee(this,"type","KeywordArgumentExpression");this.key=ue,this.value=ae}},Ie=class extends w{constructor(ue){super();Ee(this,"type","SpreadExpression");this.argument=ue}},Fe=class extends v{constructor(ue,ae,pe){super();Ee(this,"type","CallStatement");this.call=ue,this.callerArgs=ae,this.body=pe}},xe=class extends w{constructor(ue,ae,pe){super();Ee(this,"type","Ternary");this.condition=ue,this.trueExpr=ae,this.falseExpr=pe}};function sA(H){const ue=new S([]);let ae=0;function pe(pA,CA){const _A=H[ae++];if(!_A||_A.type!==pA)throw new Error(`Parser Error: ${CA}. ${_A.type} !== ${pA}.`);return _A}function ke(pA){if(!NA(pA))throw new SyntaxError(`Expected ${pA}`);++ae}function _e(){switch(H[ae].type){case g.Comment:return new d(H[ae++].value);case g.Text:return SA();case g.OpenStatement:return gt();case g.OpenExpression:return YA();default:throw new SyntaxError(`Unexpected token type: ${H[ae].type}`)}}function eA(...pA){return ae+pA.length<=H.length&&pA.every((CA,_A)=>CA===H[ae+_A].type)}function FA(...pA){var CA,_A,Rt;return((CA=H[ae])==null?void 0:CA.type)===g.OpenStatement&&((_A=H[ae+1])==null?void 0:_A.type)===g.Identifier&&pA.includes((Rt=H[ae+1])==null?void 0:Rt.value)}function NA(...pA){return ae+pA.length<=H.length&&pA.every((CA,_A)=>H[ae+_A].type==="Identifier"&&CA===H[ae+_A].value)}function SA(){return new ge(pe(g.Text,"Expected text token").value)}function gt(){if(pe(g.OpenStatement,"Expected opening statement token"),H[ae].type!==g.Identifier)throw new SyntaxError(`Unknown statement, got ${H[ae].type}`);const pA=H[ae].value;let CA;switch(pA){case"set":++ae,CA=vt();break;case"if":++ae,CA=OA(),pe(g.OpenStatement,"Expected {% token"),ke("endif"),pe(g.CloseStatement,"Expected %} token");break;case"macro":++ae,CA=Bt(),pe(g.OpenStatement,"Expected {% token"),ke("endmacro"),pe(g.CloseStatement,"Expected %} token");break;case"for":++ae,CA=es(),pe(g.OpenStatement,"Expected {% token"),ke("endfor"),pe(g.CloseStatement,"Expected %} token");break;case"call":{++ae;let _A=null;eA(g.OpenParen)&&(_A=fr());const Rt=_r();if(Rt.type!=="Identifier")throw new SyntaxError("Expected identifier following call statement");const Ca=fr();pe(g.CloseStatement,"Expected closing statement token");const sa=[];for(;!FA("endcall");)sa.push(_e());pe(g.OpenStatement,"Expected '{%'"),ke("endcall"),pe(g.CloseStatement,"Expected closing statement token");const Hs=new u(Rt,Ca);CA=new Fe(Hs,_A,sa);break}case"break":++ae,pe(g.CloseStatement,"Expected closing statement token"),CA=new X;break;case"continue":++ae,pe(g.CloseStatement,"Expected closing statement token"),CA=new z;break;case"filter":{++ae;let _A=_r();_A instanceof y&&eA(g.OpenParen)&&(_A=as(_A)),pe(g.CloseStatement,"Expected closing statement token");const Rt=[];for(;!FA("endfilter");)Rt.push(_e());pe(g.OpenStatement,"Expected '{%'"),ke("endfilter"),pe(g.CloseStatement,"Expected '%}'"),CA=new De(_A,Rt);break}default:throw new SyntaxError(`Unknown statement type: ${pA}`)}return CA}function YA(){pe(g.OpenExpression,"Expected opening expression token");const pA=Cr();return pe(g.CloseExpression,"Expected closing expression token"),pA}function vt(){const pA=zt();let CA=null;const _A=[];if(eA(g.Equals))++ae,CA=zt();else{for(pe(g.CloseStatement,"Expected %} token");!FA("endset");)_A.push(_e());pe(g.OpenStatement,"Expected {% token"),ke("endset")}return pe(g.CloseStatement,"Expected closing statement token"),new L(pA,CA,_A)}function OA(){const pA=Cr();pe(g.CloseStatement,"Expected closing statement token");const CA=[],_A=[];for(;!FA("elif","else","endif");)CA.push(_e());if(FA("elif")){++ae,++ae;const Rt=OA();_A.push(Rt)}else if(FA("else"))for(++ae,++ae,pe(g.CloseStatement,"Expected closing statement token");!FA("endif");)_A.push(_e());return new F(pA,CA,_A)}function Bt(){const pA=_r();if(pA.type!=="Identifier")throw new SyntaxError("Expected identifier following macro statement");const CA=fr();pe(g.CloseStatement,"Expected closing statement token");const _A=[];for(;!FA("endmacro");)_A.push(_e());return new K(pA,CA,_A)}function zt(pA=!1){const CA=pA?_r:Cr,_A=[CA()],Rt=eA(g.Comma);for(;Rt&&(++ae,_A.push(CA()),!!eA(g.Comma)););return Rt?new we(_A):_A[0]}function es(){const pA=zt(!0);if(!(pA instanceof y||pA instanceof we))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${pA.type} instead`);if(!NA("in"))throw new SyntaxError("Expected `in` keyword following loop variable");++ae;const CA=Cr();pe(g.CloseStatement,"Expected closing statement token");const _A=[];for(;!FA("endfor","else");)_A.push(_e());const Rt=[];if(FA("else"))for(++ae,++ae,pe(g.CloseStatement,"Expected closing statement token");!FA("endfor");)Rt.push(_e());return new R(pA,CA,_A,Rt)}function Cr(){return Kr()}function Kr(){const pA=ur();if(NA("if")){++ae;const CA=ur();if(NA("else")){++ae;const _A=Kr();return new xe(CA,pA,_A)}else return new je(pA,CA)}return pA}function ur(){let pA=Vs();for(;NA("or");){const CA=H[ae];++ae;const _A=Vs();pA=new Be(CA,pA,_A)}return pA}function Vs(){let pA=Tr();for(;NA("and");){const CA=H[ae];++ae;const _A=Tr();pA=new Be(CA,pA,_A)}return pA}function Tr(){let pA;for(;NA("not");){const CA=H[ae];++ae;const _A=Tr();pA=new Pe(CA,_A)}return pA??ha()}function ha(){let pA=ks();for(;;){let CA;if(NA("not","in"))CA=new p("not in",g.Identifier),ae+=2;else if(NA("in"))CA=H[ae++];else if(eA(g.ComparisonBinaryOperator))CA=H[ae++];else break;const _A=ks();pA=new Be(CA,pA,_A)}return pA}function ks(){let pA=ra();for(;eA(g.AdditiveBinaryOperator);){const CA=H[ae];++ae;const _A=ra();pA=new Be(CA,pA,_A)}return pA}function ss(){const pA=fs(_r());return eA(g.OpenParen)?as(pA):pA}function as(pA){let CA=new u(pA,fr());return CA=fs(CA),eA(g.OpenParen)&&(CA=as(CA)),CA}function fr(){pe(g.OpenParen,"Expected opening parenthesis for arguments list");const pA=LA();return pe(g.CloseParen,"Expected closing parenthesis for arguments list"),pA}function LA(){const pA=[];for(;!eA(g.CloseParen);){let CA;if(H[ae].type===g.MultiplicativeBinaryOperator&&H[ae].value==="*"){++ae;const _A=Cr();CA=new Ie(_A)}else if(CA=Cr(),eA(g.Equals)){if(++ae,!(CA instanceof y))throw new SyntaxError("Expected identifier for keyword argument");const _A=Cr();CA=new ie(CA,_A)}pA.push(CA),eA(g.Comma)&&++ae}return pA}function Vr(){const pA=[];let CA=!1;for(;!eA(g.CloseSquareBracket);)eA(g.Colon)?(pA.push(void 0),++ae,CA=!0):(pA.push(Cr()),eA(g.Colon)&&(++ae,CA=!0));if(pA.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if(CA){if(pA.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new me(...pA)}return pA[0]}function fs(pA){for(;eA(g.Dot)||eA(g.OpenSquareBracket);){const CA=H[ae];++ae;let _A;const Rt=CA.type===g.OpenSquareBracket;if(Rt)_A=Vr(),pe(g.CloseSquareBracket,"Expected closing square bracket");else if(_A=_r(),_A.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");pA=new e(pA,_A,Rt)}return pA}function ra(){let pA=Ys();for(;eA(g.MultiplicativeBinaryOperator);){const CA=H[ae++],_A=Ys();pA=new Be(CA,pA,_A)}return pA}function Ys(){let pA=_s();for(;NA("is");){++ae;const CA=NA("not");CA&&++ae;const _A=_r();if(!(_A instanceof y))throw new SyntaxError("Expected identifier for the test");pA=new Le(pA,CA,_A)}return pA}function _s(){let pA=ss();for(;eA(g.Pipe);){++ae;let CA=_r();if(!(CA instanceof y))throw new SyntaxError("Expected identifier for the filter");eA(g.OpenParen)&&(CA=as(CA)),pA=new ve(pA,CA)}return pA}function _r(){const pA=H[ae++];switch(pA.type){case g.NumericLiteral:{const CA=pA.value;return CA.includes(".")?new O(Number(CA)):new T(Number(CA))}case g.StringLiteral:{let CA=pA.value;for(;eA(g.StringLiteral);)CA+=H[ae++].value;return new ge(CA)}case g.Identifier:return new y(pA.value);case g.OpenParen:{const CA=zt();return pe(g.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),CA}case g.OpenSquareBracket:{const CA=[];for(;!eA(g.CloseSquareBracket);)CA.push(Cr()),eA(g.Comma)&&++ae;return++ae,new se(CA)}case g.OpenCurlyBracket:{const CA=new Map;for(;!eA(g.CloseCurlyBracket);){const _A=Cr();pe(g.Colon,"Expected colon between key and value in object literal");const Rt=Cr();CA.set(_A,Rt),eA(g.Comma)&&++ae}return++ae,new be(CA)}default:throw new SyntaxError(`Unexpected token: ${pA.type}`)}}for(;ae<H.length;)ue.body.push(_e());return ue}function uA(H,ue,ae=1){ue===void 0&&(ue=H,H=0);const pe=[];for(let ke=H;ke<ue;ke+=ae)pe.push(ke);return pe}function hA(H,ue,ae,pe=1){const ke=Math.sign(pe);ke>=0?(ue=(ue??(ue=0))<0?Math.max(H.length+ue,0):Math.min(ue,H.length),ae=(ae??(ae=H.length))<0?Math.max(H.length+ae,0):Math.min(ae,H.length)):(ue=(ue??(ue=H.length-1))<0?Math.max(H.length+ue,-1):Math.min(ue,H.length-1),ae=(ae??(ae=-1))<-1?Math.max(H.length+ae,-1):Math.min(ae,H.length-1));const _e=[];for(let eA=ue;ke*eA<ke*ae;eA+=pe)_e.push(H[eA]);return _e}function iA(H){return H.replace(/\b\w/g,ue=>ue.toUpperCase())}function ye(H){return Ae(new Date,H)}function Ae(H,ue){const ae=new Intl.DateTimeFormat(void 0,{month:"long"}),pe=new Intl.DateTimeFormat(void 0,{month:"short"}),ke=_e=>_e<10?"0"+_e:_e.toString();return ue.replace(/%[YmdbBHM%]/g,_e=>{switch(_e){case"%Y":return H.getFullYear().toString();case"%m":return ke(H.getMonth()+1);case"%d":return ke(H.getDate());case"%b":return pe.format(H);case"%B":return ae.format(H);case"%H":return ke(H.getHours());case"%M":return ke(H.getMinutes());case"%%":return"%";default:return _e}})}function Re(H){return H.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function qe(H,ue,ae,pe){if(pe===0)return H;let ke=pe==null||pe<0?1/0:pe;const _e=ue.length===0?new RegExp("(?=)","gu"):new RegExp(Re(ue),"gu");return H.replaceAll(_e,eA=>ke>0?(--ke,ae):eA)}var Ue=class extends Error{},rA=class extends Error{},aA=class{constructor(H=void 0){Ee(this,"type","RuntimeValue");Ee(this,"value");Ee(this,"builtins",new Map);this.value=H}__bool__(){return new ce(!!this.value)}toString(){return String(this.value)}},Y=class extends aA{constructor(){super(...arguments);Ee(this,"type","IntegerValue")}},cA=class extends aA{constructor(){super(...arguments);Ee(this,"type","FloatValue")}toString(){return this.value%1===0?this.value.toFixed(1):this.value.toString()}},He=class extends aA{constructor(){super(...arguments);Ee(this,"type","StringValue");Ee(this,"builtins",new Map([["upper",new BA(()=>new He(this.value.toUpperCase()))],["lower",new BA(()=>new He(this.value.toLowerCase()))],["strip",new BA(()=>new He(this.value.trim()))],["title",new BA(()=>new He(iA(this.value)))],["capitalize",new BA(()=>new He(this.value.charAt(0).toUpperCase()+this.value.slice(1)))],["length",new Y(this.value.length)],["rstrip",new BA(()=>new He(this.value.trimEnd()))],["lstrip",new BA(()=>new He(this.value.trimStart()))],["startswith",new BA(ue=>{if(ue.length===0)throw new Error("startswith() requires at least one argument");const ae=ue[0];if(ae instanceof He)return new ce(this.value.startsWith(ae.value));if(ae instanceof IA){for(const pe of ae.value){if(!(pe instanceof He))throw new Error("startswith() tuple elements must be strings");if(this.value.startsWith(pe.value))return new ce(!0)}return new ce(!1)}throw new Error("startswith() argument must be a string or tuple of strings")})],["endswith",new BA(ue=>{if(ue.length===0)throw new Error("endswith() requires at least one argument");const ae=ue[0];if(ae instanceof He)return new ce(this.value.endsWith(ae.value));if(ae instanceof IA){for(const pe of ae.value){if(!(pe instanceof He))throw new Error("endswith() tuple elements must be strings");if(this.value.endsWith(pe.value))return new ce(!0)}return new ce(!1)}throw new Error("endswith() argument must be a string or tuple of strings")})],["split",new BA(ue=>{const ae=ue[0]??new tA;if(!(ae instanceof He||ae instanceof tA))throw new Error("sep argument must be a string or null");const pe=ue[1]??new Y(-1);if(!(pe instanceof Y))throw new Error("maxsplit argument must be a number");let ke=[];if(ae instanceof tA){const _e=this.value.trimStart();for(const{0:eA,index:FA}of _e.matchAll(/\S+/g)){if(pe.value!==-1&&ke.length>=pe.value&&FA!==void 0){ke.push(eA+_e.slice(FA+eA.length));break}ke.push(eA)}}else{if(ae.value==="")throw new Error("empty separator");ke=this.value.split(ae.value),pe.value!==-1&&ke.length>pe.value&&ke.push(ke.splice(pe.value).join(ae.value))}return new IA(ke.map(_e=>new He(_e)))})],["replace",new BA(ue=>{if(ue.length<2)throw new Error("replace() requires at least two arguments");const ae=ue[0],pe=ue[1];if(!(ae instanceof He&&pe instanceof He))throw new Error("replace() arguments must be strings");let ke;if(ue.length>2?ue[2].type==="KeywordArgumentsValue"?ke=ue[2].value.get("count")??new tA:ke=ue[2]:ke=new tA,!(ke instanceof Y||ke instanceof tA))throw new Error("replace() count argument must be a number or null");return new He(qe(this.value,ae.value,pe.value,ke.value))})]]))}},ce=class extends aA{constructor(){super(...arguments);Ee(this,"type","BooleanValue")}};function MA(H,ue,ae,pe=!0){const ke=ae??0;switch(H.type){case"NullValue":return"null";case"UndefinedValue":return pe?"null":"undefined";case"IntegerValue":case"FloatValue":case"StringValue":case"BooleanValue":return JSON.stringify(H.value);case"ArrayValue":case"ObjectValue":{const _e=ue?" ".repeat(ue):"",eA=` 2874`+_e.repeat(ke),FA=eA+_e;if(H.type==="ArrayValue"){const NA=H.value.map(SA=>MA(SA,ue,ke+1,pe));return ue?`[${FA}${NA.join(`,${FA}`)}${eA}]`:`[${NA.join(", ")}]`}else{const NA=Array.from(H.value.entries()).map(([SA,gt])=>{const YA=`"${SA}": ${MA(gt,ue,ke+1,pe)}`;return ue?`${FA}${YA}`:YA});return ue?`{${NA.join(",")}${eA}}`:`{${NA.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${H.type}`)}}var nA=class extends aA{constructor(){super(...arguments);Ee(this,"type","ObjectValue");Ee(this,"builtins",new Map([["get",new BA(([ue,ae])=>{if(!(ue instanceof He))throw new Error(`Object key must be a string: got ${ue.type}`);return this.value.get(ue.value)??ae??new tA})],["items",new BA(()=>this.items())],["keys",new BA(()=>this.keys())],["values",new BA(()=>this.values())],["dictsort",new BA(ue=>{let ae=new Map;const pe=ue.filter(NA=>NA instanceof DA?(ae=NA.value,!1):!0),ke=pe.at(0)??ae.get("case_sensitive")??new ce(!1);if(!(ke instanceof ce))throw new Error("case_sensitive must be a boolean");const _e=pe.at(1)??ae.get("by")??new He("key");if(!(_e instanceof He))throw new Error("by must be a string");if(!["key","value"].includes(_e.value))throw new Error("by must be either 'key' or 'value'");const eA=pe.at(2)??ae.get("reverse")??new ce(!1);if(!(eA instanceof ce))throw new Error("reverse must be a boolean");const FA=Array.from(this.value.entries()).map(([NA,SA])=>new IA([new He(NA),SA])).sort((NA,SA)=>{const gt=_e.value==="key"?0:1,YA=NA.value[gt],vt=SA.value[gt],OA=ZA(YA,vt,ke.value);return eA.value?-OA:OA});return new IA(FA)})]]))}__bool__(){return new ce(this.value.size>0)}items(){return new IA(Array.from(this.value.entries()).map(([ue,ae])=>new IA([new He(ue),ae])))}keys(){return new IA(Array.from(this.value.keys()).map(ue=>new He(ue)))}values(){return new IA(Array.from(this.value.values()))}toString(){return MA(this,null,0,!1)}},DA=class extends nA{constructor(){super(...arguments);Ee(this,"type","KeywordArgumentsValue")}},IA=class extends aA{constructor(){super(...arguments);Ee(this,"type","ArrayValue");Ee(this,"builtins",new Map([["length",new Y(this.value.length)]]))}__bool__(){return new ce(this.value.length>0)}toString(){return MA(this,null,0,!1)}},ot=class extends IA{constructor(){super(...arguments);Ee(this,"type","TupleValue")}},BA=class extends aA{constructor(){super(...arguments);Ee(this,"type","FunctionValue")}},tA=class extends aA{constructor(){super(...arguments);Ee(this,"type","NullValue")}},lA=class extends aA{constructor(){super(...arguments);Ee(this,"type","UndefinedValue")}},KA=class{constructor(H){Ee(this,"variables",new Map([["namespace",new BA(H=>{if(H.length===0)return new nA(new Map);if(H.length!==1||!(H[0]instanceof nA))throw new Error("`namespace` expects either zero arguments or a single object argument");return H[0]})]]));Ee(this,"tests",new Map([["boolean",H=>H.type==="BooleanValue"],["callable",H=>H instanceof BA],["odd",H=>{if(!(H instanceof Y))throw new Error(`cannot odd on ${H.type}`);return H.value%2!==0}],["even",H=>{if(!(H instanceof Y))throw new Error(`cannot even on ${H.type}`);return H.value%2===0}],["false",H=>H.type==="BooleanValue"&&!H.value],["true",H=>H.type==="BooleanValue"&&H.value],["none",H=>H.type==="NullValue"],["string",H=>H.type==="StringValue"],["number",H=>H instanceof Y||H instanceof cA],["integer",H=>H instanceof Y],["iterable",H=>H.type==="ArrayValue"||H.type==="StringValue"],["mapping",H=>H.type==="ObjectValue"],["lower",H=>{const ue=H.value;return H.type==="StringValue"&&ue===ue.toLowerCase()}],["upper",H=>{const ue=H.value;return H.type==="StringValue"&&ue===ue.toUpperCase()}],["none",H=>H.type==="NullValue"],["defined",H=>H.type!=="UndefinedValue"],["undefined",H=>H.type==="UndefinedValue"],["equalto",(H,ue)=>H.value===ue.value],["eq",(H,ue)=>H.value===ue.value]]));this.parent=H}set(H,ue){return this.declareVariable(H,Sr(ue))}declareVariable(H,ue){if(this.variables.has(H))throw new SyntaxError(`Variable already declared: ${H}`);return this.variables.set(H,ue),ue}setVariable(H,ue){return this.variables.set(H,ue),ue}resolve(H){if(this.variables.has(H))return this;if(this.parent)return this.parent.resolve(H);throw new Error(`Unknown variable: ${H}`)}lookupVariable(H){try{return this.resolve(H).variables.get(H)??new lA}catch{return new lA}}};function JA(H){H.set("false",!1),H.set("true",!0),H.set("none",null),H.set("raise_exception",ue=>{throw new Error(ue)}),H.set("range",uA),H.set("strftime_now",ye),H.set("True",!0),H.set("False",!1),H.set("None",null)}function RA(H,ue){const ae=ue.split(".");let pe=H;for(const ke of ae)if(pe instanceof nA)pe=pe.value.get(ke)??new lA;else if(pe instanceof IA){const _e=parseInt(ke,10);if(!isNaN(_e)&&_e>=0&&_e<pe.value.length)pe=pe.value[_e];else return new lA}else return new lA;return pe}function ZA(H,ue,ae=!1){if(H instanceof tA&&ue instanceof tA)return 0;if(H instanceof tA||ue instanceof tA)throw new Error(`Cannot compare ${H.type} with ${ue.type}`);if(H instanceof lA&&ue instanceof lA)return 0;if(H instanceof lA||ue instanceof lA)throw new Error(`Cannot compare ${H.type} with ${ue.type}`);const pe=_e=>_e instanceof Y||_e instanceof cA||_e instanceof ce,ke=_e=>_e instanceof ce?_e.value?1:0:_e.value;if(pe(H)&&pe(ue)){const _e=ke(H),eA=ke(ue);return _e<eA?-1:_e>eA?1:0}if(H.type!==ue.type)throw new Error(`Cannot compare different types: ${H.type} and ${ue.type}`);switch(H.type){case"StringValue":{let _e=H.value,eA=ue.value;return ae||(_e=_e.toLowerCase(),eA=eA.toLowerCase()),_e<eA?-1:_e>eA?1:0}default:throw new Error(`Cannot compare type: ${H.type}`)}}var Zt=class{constructor(H){Ee(this,"global");this.global=H??new KA}run(H){return this.evaluate(H,this.global)}evaluateBinaryExpression(H,ue){const ae=this.evaluate(H.left,ue);switch(H.operator.value){case"and":return ae.__bool__().value?this.evaluate(H.right,ue):ae;case"or":return ae.__bool__().value?ae:this.evaluate(H.right,ue)}const pe=this.evaluate(H.right,ue);switch(H.operator.value){case"==":return new ce(ae.value==pe.value);case"!=":return new ce(ae.value!=pe.value)}if(ae instanceof lA||pe instanceof lA){if(pe instanceof lA&&["in","not in"].includes(H.operator.value))return new ce(H.operator.value==="not in");throw new Error(`Cannot perform operation ${H.operator.value} on undefined values`)}else{if(ae instanceof tA||pe instanceof tA)throw new Error("Cannot perform operation on null values");if(H.operator.value==="~")return new He(ae.value.toString()+pe.value.toString());if((ae instanceof Y||ae instanceof cA)&&(pe instanceof Y||pe instanceof cA)){const ke=ae.value,_e=pe.value;switch(H.operator.value){case"+":case"-":case"*":{const eA=H.operator.value==="+"?ke+_e:H.operator.value==="-"?ke-_e:ke*_e;return ae instanceof cA||pe instanceof cA?new cA(eA):new Y(eA)}case"/":return new cA(ke/_e);case"%":{const eA=ke%_e;return ae instanceof cA||pe instanceof cA?new cA(eA):new Y(eA)}case"<":return new ce(ke<_e);case">":return new ce(ke>_e);case">=":return new ce(ke>=_e);case"<=":return new ce(ke<=_e)}}else if(ae instanceof IA&&pe instanceof IA)switch(H.operator.value){case"+":return new IA(ae.value.concat(pe.value))}else if(pe instanceof IA){const ke=pe.value.find(_e=>_e.value===ae.value)!==void 0;switch(H.operator.value){case"in":return new ce(ke);case"not in":return new ce(!ke)}}}if(ae instanceof He||pe instanceof He)switch(H.operator.value){case"+":return new He(ae.value.toString()+pe.value.toString())}if(ae instanceof He&&pe instanceof He)switch(H.operator.value){case"in":return new ce(pe.value.includes(ae.value));case"not in":return new ce(!pe.value.includes(ae.value))}if(ae instanceof He&&pe instanceof nA)switch(H.operator.value){case"in":return new ce(pe.value.has(ae.value));case"not in":return new ce(!pe.value.has(ae.value))}throw new SyntaxError(`Unknown operator "${H.operator.value}" between ${ae.type} and ${pe.type}`)}evaluateArguments(H,ue){const ae=[],pe=new Map;for(const ke of H)if(ke.type==="SpreadExpression"){const _e=ke,eA=this.evaluate(_e.argument,ue);if(!(eA instanceof IA))throw new Error(`Cannot unpack non-iterable type: ${eA.type}`);for(const FA of eA.value)ae.push(FA)}else if(ke.type==="KeywordArgumentExpression"){const _e=ke;pe.set(_e.key.value,this.evaluate(_e.value,ue))}else{if(pe.size>0)throw new Error("Positional arguments must come before keyword arguments");ae.push(this.evaluate(ke,ue))}return[ae,pe]}applyFilter(H,ue,ae){if(ue.type==="Identifier"){const pe=ue;if(pe.value==="tojson")return new He(MA(H));if(H instanceof IA)switch(pe.value){case"list":return H;case"first":return H.value[0];case"last":return H.value[H.value.length-1];case"length":return new Y(H.value.length);case"reverse":return new IA(H.value.slice().reverse());case"sort":return new IA(H.value.slice().sort((ke,_e)=>ZA(ke,_e,!1)));case"join":return new He(H.value.map(ke=>ke.value).join(""));case"string":return new He(MA(H,null,0,!1));case"unique":{const ke=new Set,_e=[];for(const eA of H.value)ke.has(eA.value)||(ke.add(eA.value),_e.push(eA));return new IA(_e)}default:throw new Error(`Unknown ArrayValue filter: ${pe.value}`)}else if(H instanceof He)switch(pe.value){case"length":case"upper":case"lower":case"title":case"capitalize":{const ke=H.builtins.get(pe.value);if(ke instanceof BA)return ke.value([],ae);if(ke instanceof Y)return ke;throw new Error(`Unknown StringValue filter: ${pe.value}`)}case"trim":return new He(H.value.trim());case"indent":return new He(H.value.split(` 2875`).map((ke,_e)=>_e===0||ke.length===0?ke:" "+ke).join(` 2876`));case"join":case"string":return H;case"int":{const ke=parseInt(H.value,10);return new Y(isNaN(ke)?0:ke)}case"float":{const ke=parseFloat(H.value);return new cA(isNaN(ke)?0:ke)}default:throw new Error(`Unknown StringValue filter: ${pe.value}`)}else if(H instanceof Y||H instanceof cA)switch(pe.value){case"abs":return H instanceof Y?new Y(Math.abs(H.value)):new cA(Math.abs(H.value));case"int":return new Y(Math.floor(H.value));case"float":return new cA(H.value);default:throw new Error(`Unknown NumericValue filter: ${pe.value}`)}else if(H instanceof nA)switch(pe.value){case"items":return new IA(Array.from(H.value.entries()).map(([ke,_e])=>new IA([new He(ke),_e])));case"length":return new Y(H.value.size);default:{const ke=H.builtins.get(pe.value);if(ke)return ke instanceof BA?ke.value([],ae):ke;throw new Error(`Unknown ObjectValue filter: ${pe.value}`)}}else if(H instanceof ce)switch(pe.value){case"bool":return new ce(H.value);case"int":return new Y(H.value?1:0);case"float":return new cA(H.value?1:0);case"string":return new He(H.value?"true":"false");default:throw new Error(`Unknown BooleanValue filter: ${pe.value}`)}throw new Error(`Cannot apply filter "${pe.value}" to type: ${H.type}`)}else if(ue.type==="CallExpression"){const pe=ue;if(pe.callee.type!=="Identifier")throw new Error(`Unknown filter: ${pe.callee.type}`);const ke=pe.callee.value;if(ke==="tojson"){const[,_e]=this.evaluateArguments(pe.args,ae),eA=_e.get("indent")??new tA;if(!(eA instanceof Y||eA instanceof tA))throw new Error("If set, indent must be a number");return new He(MA(H,eA.value))}else if(ke==="join"){let _e;if(H instanceof He)_e=Array.from(H.value);else if(H instanceof IA)_e=H.value.map(SA=>SA.value);else throw new Error(`Cannot apply filter "${ke}" to type: ${H.type}`);const[eA,FA]=this.evaluateArguments(pe.args,ae),NA=eA.at(0)??FA.get("separator")??new He("");if(!(NA instanceof He))throw new Error("separator must be a string");return new He(_e.join(NA.value))}else if(ke==="int"||ke==="float"){const[_e,eA]=this.evaluateArguments(pe.args,ae),FA=_e.at(0)??eA.get("default")??(ke==="int"?new Y(0):new cA(0));if(H instanceof He){const NA=ke==="int"?parseInt(H.value,10):parseFloat(H.value);return isNaN(NA)?FA:ke==="int"?new Y(NA):new cA(NA)}else{if(H instanceof Y||H instanceof cA)return H;if(H instanceof ce)return ke==="int"?new Y(H.value?1:0):new cA(H.value?1:0);throw new Error(`Cannot apply filter "${ke}" to type: ${H.type}`)}}else if(ke==="default"){const[_e,eA]=this.evaluateArguments(pe.args,ae),FA=_e[0]??new He(""),NA=_e[1]??eA.get("boolean")??new ce(!1);if(!(NA instanceof ce))throw new Error("`default` filter flag must be a boolean");return H instanceof lA||NA.value&&!H.__bool__().value?FA:H}if(H instanceof IA){switch(ke){case"sort":{const[_e,eA]=this.evaluateArguments(pe.args,ae),FA=_e.at(0)??eA.get("reverse")??new ce(!1);if(!(FA instanceof ce))throw new Error("reverse must be a boolean");const NA=_e.at(1)??eA.get("case_sensitive")??new ce(!1);if(!(NA instanceof ce))throw new Error("case_sensitive must be a boolean");const SA=_e.at(2)??eA.get("attribute")??new tA;if(!(SA instanceof He||SA instanceof Y||SA instanceof tA))throw new Error("attribute must be a string, integer, or null");const gt=YA=>{if(SA instanceof tA)return YA;const vt=SA instanceof Y?String(SA.value):SA.value;return RA(YA,vt)};return new IA(H.value.slice().sort((YA,vt)=>{const OA=gt(YA),Bt=gt(vt),zt=ZA(OA,Bt,NA.value);return FA.value?-zt:zt}))}case"selectattr":case"rejectattr":{const _e=ke==="selectattr";if(H.value.some(YA=>!(YA instanceof nA)))throw new Error(`\`${ke}\` can only be applied to array of objects`);if(pe.args.some(YA=>YA.type!=="StringLiteral"))throw new Error(`arguments of \`${ke}\` must be strings`);const[eA,FA,NA]=pe.args.map(YA=>this.evaluate(YA,ae));let SA;if(FA){const YA=ae.tests.get(FA.value);if(!YA)throw new Error(`Unknown test: ${FA.value}`);SA=YA}else SA=(...YA)=>YA[0].__bool__().value;const gt=H.value.filter(YA=>{const vt=YA.value.get(eA.value),OA=vt?SA(vt,NA):!1;return _e?OA:!OA});return new IA(gt)}case"map":{const[,_e]=this.evaluateArguments(pe.args,ae);if(_e.has("attribute")){const eA=_e.get("attribute");if(!(eA instanceof He))throw new Error("attribute must be a string");const FA=_e.get("default"),NA=H.value.map(SA=>{if(!(SA instanceof nA))throw new Error("items in map must be an object");const gt=RA(SA,eA.value);return gt instanceof lA?FA??new lA:gt});return new IA(NA)}else throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${ke}`)}else if(H instanceof He){switch(ke){case"indent":{const[_e,eA]=this.evaluateArguments(pe.args,ae),FA=_e.at(0)??eA.get("width")??new Y(4);if(!(FA instanceof Y))throw new Error("width must be a number");const NA=_e.at(1)??eA.get("first")??new ce(!1),SA=_e.at(2)??eA.get("blank")??new ce(!1),gt=H.value.split(` 2877`),YA=" ".repeat(FA.value),vt=gt.map((OA,Bt)=>!NA.value&&Bt===0||!SA.value&&OA.length===0?OA:YA+OA);return new He(vt.join(` 2878`))}case"replace":{const _e=H.builtins.get("replace");if(!(_e instanceof BA))throw new Error("replace filter not available");const[eA,FA]=this.evaluateArguments(pe.args,ae);return _e.value([...eA,new DA(FA)],ae)}}throw new Error(`Unknown StringValue filter: ${ke}`)}else if(H instanceof nA){const _e=H.builtins.get(ke);if(_e&&_e instanceof BA){const[eA,FA]=this.evaluateArguments(pe.args,ae);return FA.size>0&&eA.push(new DA(FA)),_e.value(eA,ae)}throw new Error(`Unknown ObjectValue filter: ${ke}`)}else throw new Error(`Cannot apply filter "${ke}" to type: ${H.type}`)}throw new Error(`Unknown filter: ${ue.type}`)}evaluateFilterExpression(H,ue){const ae=this.evaluate(H.operand,ue);return this.applyFilter(ae,H.filter,ue)}evaluateTestExpression(H,ue){const ae=this.evaluate(H.operand,ue),pe=ue.tests.get(H.test.value);if(!pe)throw new Error(`Unknown test: ${H.test.value}`);const ke=pe(ae);return new ce(H.negate?!ke:ke)}evaluateSelectExpression(H,ue){return this.evaluate(H.test,ue).__bool__().value?this.evaluate(H.lhs,ue):new lA}evaluateUnaryExpression(H,ue){const ae=this.evaluate(H.argument,ue);switch(H.operator.value){case"not":return new ce(!ae.value);default:throw new SyntaxError(`Unknown operator: ${H.operator.value}`)}}evaluateTernaryExpression(H,ue){return this.evaluate(H.condition,ue).__bool__().value?this.evaluate(H.trueExpr,ue):this.evaluate(H.falseExpr,ue)}evalProgram(H,ue){return this.evaluateBlock(H.body,ue)}evaluateBlock(H,ue){let ae="";for(const pe of H){const ke=this.evaluate(pe,ue);ke.type!=="NullValue"&&ke.type!=="UndefinedValue"&&(ae+=ke.toString())}return new He(ae)}evaluateIdentifier(H,ue){return ue.lookupVariable(H.value)}evaluateCallExpression(H,ue){const[ae,pe]=this.evaluateArguments(H.args,ue);pe.size>0&&ae.push(new DA(pe));const ke=this.evaluate(H.callee,ue);if(ke.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${ke.type}`);return ke.value(ae,ue)}evaluateSliceExpression(H,ue,ae){if(!(H instanceof IA||H instanceof He))throw new Error("Slice object must be an array or string");const pe=this.evaluate(ue.start,ae),ke=this.evaluate(ue.stop,ae),_e=this.evaluate(ue.step,ae);if(!(pe instanceof Y||pe instanceof lA))throw new Error("Slice start must be numeric or undefined");if(!(ke instanceof Y||ke instanceof lA))throw new Error("Slice stop must be numeric or undefined");if(!(_e instanceof Y||_e instanceof lA))throw new Error("Slice step must be numeric or undefined");return H instanceof IA?new IA(hA(H.value,pe.value,ke.value,_e.value)):new He(hA(Array.from(H.value),pe.value,ke.value,_e.value).join(""))}evaluateMemberExpression(H,ue){const ae=this.evaluate(H.object,ue);let pe;if(H.computed){if(H.property.type==="SliceExpression")return this.evaluateSliceExpression(ae,H.property,ue);pe=this.evaluate(H.property,ue)}else pe=new He(H.property.value);let ke;if(ae instanceof nA){if(!(pe instanceof He))throw new Error(`Cannot access property with non-string: got ${pe.type}`);ke=ae.value.get(pe.value)??ae.builtins.get(pe.value)}else if(ae instanceof IA||ae instanceof He)if(pe instanceof Y)ke=ae.value.at(pe.value),ae instanceof He&&(ke=new He(ae.value.at(pe.value)));else if(pe instanceof He)ke=ae.builtins.get(pe.value);else throw new Error(`Cannot access property with non-string/non-number: got ${pe.type}`);else{if(!(pe instanceof He))throw new Error(`Cannot access property with non-string: got ${pe.type}`);ke=ae.builtins.get(pe.value)}return ke instanceof aA?ke:new lA}evaluateSet(H,ue){const ae=H.value?this.evaluate(H.value,ue):this.evaluateBlock(H.body,ue);if(H.assignee.type==="Identifier"){const pe=H.assignee.value;ue.setVariable(pe,ae)}else if(H.assignee.type==="TupleLiteral"){const pe=H.assignee;if(!(ae instanceof IA))throw new Error(`Cannot unpack non-iterable type in set: ${ae.type}`);const ke=ae.value;if(ke.length!==pe.value.length)throw new Error(`Too ${pe.value.length>ke.length?"few":"many"} items to unpack in set`);for(let _e=0;_e<pe.value.length;++_e){const eA=pe.value[_e];if(eA.type!=="Identifier")throw new Error(`Cannot unpack to non-identifier in set: ${eA.type}`);ue.setVariable(eA.value,ke[_e])}}else if(H.assignee.type==="MemberExpression"){const pe=H.assignee,ke=this.evaluate(pe.object,ue);if(!(ke instanceof nA))throw new Error("Cannot assign to member of non-object");if(pe.property.type!=="Identifier")throw new Error("Cannot assign to member with non-identifier property");ke.value.set(pe.property.value,ae)}else throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(H.assignee)}`);return new tA}evaluateIf(H,ue){const ae=this.evaluate(H.test,ue);return this.evaluateBlock(ae.__bool__().value?H.body:H.alternate,ue)}evaluateFor(H,ue){const ae=new KA(ue);let pe,ke;if(H.iterable.type==="SelectExpression"){const SA=H.iterable;ke=this.evaluate(SA.lhs,ae),pe=SA.test}else ke=this.evaluate(H.iterable,ae);if(!(ke instanceof IA||ke instanceof nA))throw new Error(`Expected iterable or object type in for loop: got ${ke.type}`);ke instanceof nA&&(ke=ke.keys());const _e=[],eA=[];for(let SA=0;SA<ke.value.length;++SA){const gt=new KA(ae),YA=ke.value[SA];let vt;if(H.loopvar.type==="Identifier")vt=OA=>OA.setVariable(H.loopvar.value,YA);else if(H.loopvar.type==="TupleLiteral"){const OA=H.loopvar;if(YA.type!=="ArrayValue")throw new Error(`Cannot unpack non-iterable type: ${YA.type}`);const Bt=YA;if(OA.value.length!==Bt.value.length)throw new Error(`Too ${OA.value.length>Bt.value.length?"few":"many"} items to unpack`);vt=zt=>{for(let es=0;es<OA.value.length;++es){if(OA.value[es].type!=="Identifier")throw new Error(`Cannot unpack non-identifier type: ${OA.value[es].type}`);zt.setVariable(OA.value[es].value,Bt.value[es])}}}else throw new Error(`Invalid loop variable(s): ${H.loopvar.type}`);pe&&(vt(gt),!this.evaluate(pe,gt).__bool__().value)||(_e.push(YA),eA.push(vt))}let FA="",NA=!0;for(let SA=0;SA<_e.length;++SA){const gt=new Map([["index",new Y(SA+1)],["index0",new Y(SA)],["revindex",new Y(_e.length-SA)],["revindex0",new Y(_e.length-SA-1)],["first",new ce(SA===0)],["last",new ce(SA===_e.length-1)],["length",new Y(_e.length)],["previtem",SA>0?_e[SA-1]:new lA],["nextitem",SA<_e.length-1?_e[SA+1]:new lA]]);ae.setVariable("loop",new nA(gt)),eA[SA](ae);try{const YA=this.evaluateBlock(H.body,ae);FA+=YA.value}catch(YA){if(YA instanceof rA)continue;if(YA instanceof Ue)break;throw YA}NA=!1}if(NA){const SA=this.evaluateBlock(H.defaultBlock,ae);FA+=SA.value}return new He(FA)}evaluateMacro(H,ue){return ue.setVariable(H.name.value,new BA((ae,pe)=>{var eA;const ke=new KA(pe);ae=ae.slice();let _e;((eA=ae.at(-1))==null?void 0:eA.type)==="KeywordArgumentsValue"&&(_e=ae.pop());for(let FA=0;FA<H.args.length;++FA){const NA=H.args[FA],SA=ae[FA];if(NA.type==="Identifier"){const gt=NA;if(!SA)throw new Error(`Missing positional argument: ${gt.value}`);ke.setVariable(gt.value,SA)}else if(NA.type==="KeywordArgumentExpression"){const gt=NA,YA=SA??(_e==null?void 0:_e.value.get(gt.key.value))??this.evaluate(gt.value,ke);ke.setVariable(gt.key.value,YA)}else throw new Error(`Unknown argument type: ${NA.type}`)}return this.evaluateBlock(H.body,ke)})),new tA}evaluateCallStatement(H,ue){const ae=new BA((FA,NA)=>{const SA=new KA(NA);if(H.callerArgs)for(let gt=0;gt<H.callerArgs.length;++gt){const YA=H.callerArgs[gt];if(YA.type!=="Identifier")throw new Error(`Caller parameter must be an identifier, got ${YA.type}`);SA.setVariable(YA.value,FA[gt]??new lA)}return this.evaluateBlock(H.body,SA)}),[pe,ke]=this.evaluateArguments(H.call.args,ue);pe.push(new DA(ke));const _e=this.evaluate(H.call.callee,ue);if(_e.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${_e.type}`);const eA=new KA(ue);return eA.setVariable("caller",ae),_e.value(pe,eA)}evaluateFilterStatement(H,ue){const ae=this.evaluateBlock(H.body,ue);return this.applyFilter(ae,H.filter,ue)}evaluate(H,ue){if(!H)return new lA;switch(H.type){case"Program":return this.evalProgram(H,ue);case"Set":return this.evaluateSet(H,ue);case"If":return this.evaluateIf(H,ue);case"For":return this.evaluateFor(H,ue);case"Macro":return this.evaluateMacro(H,ue);case"CallStatement":return this.evaluateCallStatement(H,ue);case"Break":throw new Ue;case"Continue":throw new rA;case"IntegerLiteral":return new Y(H.value);case"FloatLiteral":return new cA(H.value);case"StringLiteral":return new He(H.value);case"ArrayLiteral":return new IA(H.value.map(ae=>this.evaluate(ae,ue)));case"TupleLiteral":return new ot(H.value.map(ae=>this.evaluate(ae,ue)));case"ObjectLiteral":{const ae=new Map;for(const[pe,ke]of H.value){const _e=this.evaluate(pe,ue);if(!(_e instanceof He))throw new Error(`Object keys must be strings: got ${_e.type}`);ae.set(_e.value,this.evaluate(ke,ue))}return new nA(ae)}case"Identifier":return this.evaluateIdentifier(H,ue);case"CallExpression":return this.evaluateCallExpression(H,ue);case"MemberExpression":return this.evaluateMemberExpression(H,ue);case"UnaryExpression":return this.evaluateUnaryExpression(H,ue);case"BinaryExpression":return this.evaluateBinaryExpression(H,ue);case"FilterExpression":return this.evaluateFilterExpression(H,ue);case"FilterStatement":return this.evaluateFilterStatement(H,ue);case"TestExpression":return this.evaluateTestExpression(H,ue);case"SelectExpression":return this.evaluateSelectExpression(H,ue);case"Ternary":return this.evaluateTernaryExpression(H,ue);case"Comment":return new tA;default:throw new SyntaxError(`Unknown node type: ${H.type}`)}}};function Sr(H){switch(typeof H){case"number":return Number.isInteger(H)?new Y(H):new cA(H);case"string":return new He(H);case"boolean":return new ce(H);case"undefined":return new lA;case"object":return H===null?new tA:Array.isArray(H)?new IA(H.map(Sr)):new nA(new Map(Object.entries(H).map(([ue,ae])=>[ue,Sr(ae)])));case"function":return new BA((ue,ae)=>{const pe=H(...ue.map(ke=>ke.value))??null;return Sr(pe)});default:throw new Error(`Cannot convert to runtime value: ${H}`)}}var ft=` 2879`,ds="{%- ",ea=" -%}";function Aa(H){switch(H.operator.type){case"MultiplicativeBinaryOperator":return 4;case"AdditiveBinaryOperator":return 3;case"ComparisonBinaryOperator":return 2;case"Identifier":return H.operator.value==="and"?1:H.operator.value==="in"||H.operator.value==="not in"?2:0}return 0}function Ts(H,ue=" "){const ae=typeof ue=="number"?" ".repeat(ue):ue;return $r(H.body,0,ae).replace(/\n$/,"")}function Er(...H){return ds+H.join(" ")+ea}function $r(H,ue,ae){return H.map(pe=>Ss(pe,ue,ae)).join(ft)}function Ss(H,ue,ae){const pe=ae.repeat(ue);switch(H.type){case"Program":return $r(H.body,ue,ae);case"If":return xt(H,ue,ae);case"For":return UA(H,ue,ae);case"Set":return ta(H,ue,ae);case"Macro":return Os(H,ue,ae);case"Break":return pe+Er("break");case"Continue":return pe+Er("continue");case"CallStatement":return Jt(H,ue,ae);case"FilterStatement":return bs(H,ue,ae);case"Comment":return pe+"{# "+H.value+" #}";default:return pe+"{{- "+mt(H)+" -}}"}}function xt(H,ue,ae){const pe=ae.repeat(ue),ke=[];let _e=H;for(;_e&&(ke.push({test:_e.test,body:_e.body}),_e.alternate.length===1&&_e.alternate[0].type==="If");)_e=_e.alternate[0];let eA=pe+Er("if",mt(ke[0].test))+ft+$r(ke[0].body,ue+1,ae);for(let FA=1;FA<ke.length;++FA)eA+=ft+pe+Er("elif",mt(ke[FA].test))+ft+$r(ke[FA].body,ue+1,ae);return _e&&_e.alternate.length>0&&(eA+=ft+pe+Er("else")+ft+$r(_e.alternate,ue+1,ae)),eA+=ft+pe+Er("endif"),eA}function UA(H,ue,ae){const pe=ae.repeat(ue);let ke="";if(H.iterable.type==="SelectExpression"){const eA=H.iterable;ke=`${mt(eA.lhs)} if ${mt(eA.test)}`}else ke=mt(H.iterable);let _e=pe+Er("for",mt(H.loopvar),"in",ke)+ft+$r(H.body,ue+1,ae);return H.defaultBlock.length>0&&(_e+=ft+pe+Er("else")+ft+$r(H.defaultBlock,ue+1,ae)),_e+=ft+pe+Er("endfor"),_e}function ta(H,ue,ae){const pe=ae.repeat(ue),ke=mt(H.assignee),_e=H.value?mt(H.value):"",eA=pe+Er("set",`${ke}${H.value?" = "+_e:""}`);return H.body.length===0?eA:eA+ft+$r(H.body,ue+1,ae)+ft+pe+Er("endset")}function Os(H,ue,ae){const pe=ae.repeat(ue),ke=H.args.map(mt).join(", ");return pe+Er("macro",`${H.name.value}(${ke})`)+ft+$r(H.body,ue+1,ae)+ft+pe+Er("endmacro")}function Jt(H,ue,ae){const pe=ae.repeat(ue),ke=H.callerArgs&&H.callerArgs.length>0?`(${H.callerArgs.map(mt).join(", ")})`:"",_e=mt(H.call);let eA=pe+Er(`call${ke}`,_e)+ft;return eA+=$r(H.body,ue+1,ae)+ft,eA+=pe+Er("endcall"),eA}function bs(H,ue,ae){const pe=ae.repeat(ue),ke=H.filter.type==="Identifier"?H.filter.value:mt(H.filter);let _e=pe+Er("filter",ke)+ft;return _e+=$r(H.body,ue+1,ae)+ft,_e+=pe+Er("endfilter"),_e}function mt(H,ue=-1){switch(H.type){case"SpreadExpression":return`*${mt(H.argument)}`;case"Identifier":return H.value;case"IntegerLiteral":return`${H.value}`;case"FloatLiteral":return`${H.value}`;case"StringLiteral":return JSON.stringify(H.value);case"BinaryExpression":{const ae=H,pe=Aa(ae),ke=mt(ae.left,pe),_e=mt(ae.right,pe+1),eA=`${ke} ${ae.operator.value} ${_e}`;return pe<ue?`(${eA})`:eA}case"UnaryExpression":{const ae=H;return ae.operator.value+(ae.operator.value==="not"?" ":"")+mt(ae.argument,1/0)}case"CallExpression":{const ae=H,pe=ae.args.map(mt).join(", ");return`${mt(ae.callee)}(${pe})`}case"MemberExpression":{const ae=H;let pe=mt(ae.object);["Identifier","MemberExpression","CallExpression","StringLiteral","IntegerLiteral","FloatLiteral","ArrayLiteral","TupleLiteral","ObjectLiteral"].includes(ae.object.type)||(pe=`(${pe})`);let ke=mt(ae.property);return!ae.computed&&ae.property.type!=="Identifier"&&(ke=`(${ke})`),ae.computed?`${pe}[${ke}]`:`${pe}.${ke}`}case"FilterExpression":{const ae=H,pe=mt(ae.operand,1/0);return ae.filter.type==="CallExpression"?`${pe} | ${mt(ae.filter)}`:`${pe} | ${ae.filter.value}`}case"SelectExpression":{const ae=H;return`${mt(ae.lhs)} if ${mt(ae.test)}`}case"TestExpression":{const ae=H;return`${mt(ae.operand)} is${ae.negate?" not":""} ${ae.test.value}`}case"ArrayLiteral":case"TupleLiteral":{const ae=H.value.map(mt),pe=H.type==="ArrayLiteral"?"[]":"()";return`${pe[0]}${ae.join(", ")}${pe[1]}`}case"ObjectLiteral":return`{${Array.from(H.value.entries()).map(([pe,ke])=>`${mt(pe)}: ${mt(ke)}`).join(", ")}}`;case"SliceExpression":{const ae=H,pe=ae.start?mt(ae.start):"",ke=ae.stop?mt(ae.stop):"",_e=ae.step?`:${mt(ae.step)}`:"";return`${pe}:${ke}${_e}`}case"KeywordArgumentExpression":{const ae=H;return`${ae.key.value}=${mt(ae.value)}`}case"Ternary":{const ae=H,pe=`${mt(ae.trueExpr)} if ${mt(ae.condition,0)} else ${mt(ae.falseExpr)}`;return ue>-1?`(${pe})`:pe}default:throw new Error(`Unknown expression type: ${H.type}`)}}var Ws=class{constructor(H){Ee(this,"parsed");const ue=B(H,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=sA(ue)}render(H){const ue=new KA;if(JA(ue),H)for(const[ke,_e]of Object.entries(H))ue.set(ke,_e);return new Zt(ue).run(this.parsed).value}format(H){return Ts(this.parsed,(H==null?void 0:H.indent)||" ")}}},
2879"./src/backends/onnx.js":(a,i,n)=>{var g;n.r(i),n.d(i,{Tensor:()=>k.Tensor,createInferenceSession:()=>X,deviceToExecutionProviders:()=>F,isONNXProxy:()=>e,isONNXTensor:()=>d,runInferenceSession:()=>K});var p=n("./src/env.js"),h=n("?2ce3"),C=n("onnxruntime-web"),k=n("onnxruntime-common");const M=Object.freeze({auto:null,gpu:null,cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:{name:"webnn",deviceType:"cpu"},"webnn-npu":{name:"webnn",deviceType:"npu"},"webnn-gpu":{name:"webnn",deviceType:"gpu"},"webnn-cpu":{name:"webnn",deviceType:"cpu"}}),E=[];let D,B;const v=Symbol.for("onnxruntime");if(v in globalThis)B=globalThis[v];else if(p.apis.IS_NODE_ENV){switch(B=h??(g||(g=n.t(h,2))),process.platform){case"win32":E.push("dml");break;case"linux":process.arch==="x64"&&E.push("cuda");break}E.push("cpu"),D=["cpu"]}else B=C,p.apis.IS_WEBNN_AVAILABLE&&E.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),p.apis.IS_WEBGPU_AVAILABLE&&E.push("webgpu"),E.push("wasm"),D=["wasm"];const S=B.InferenceSession;function F(u=null){if(!u)return D;switch(u){case"auto":return E;case"gpu":return E.filter(y=>["webgpu","cuda","dml","webnn-gpu"].includes(y))}if(E.includes(u))return[M[u]??u];throw new Error(`Unsupported device: "${u}". Should be one of: ${E.join(", ")}.`)}let R=null;async function X(u,y,ee){R&&await R;const T=S.create(u,y);R??(R=T);const O=await T;return O.config=ee,O}let z=Promise.resolve();const L=p.apis.IS_BROWSER_ENV||p.apis.IS_WEBWORKER_ENV;async function K(u,y){const ee=()=>u.run(y);return await(L?z=z.then(ee):ee())}function d(u){return u instanceof B.Tensor}const w=B==null?void 0:B.env;w!=null&&w.wasm&&(!(typeof ServiceWorkerGlobalScope<"u"&&self instanceof ServiceWorkerGlobalScope)&&!w.wasm.wasmPaths&&(w.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${p.env.version}/dist/`),w.wasm.proxy=!1),w!=null&&w.webgpu&&(w.webgpu.powerPreference="high-performance");function e(){var u;return(u=w==null?void 0:w.wasm)==null?void 0:u.proxy}p.env.backends.onnx=w},
2879"./src/base/feature_extraction_utils.js":(a,i,n)=>{n.r(i),n.d(i,{FeatureExtractor:()=>C,validate_audio_inputs:()=>k});var g=n("./src/utils/constants.js"),p=n("./src/utils/generic.js"),h=n("./src/utils/hub.js");class C extends p.Callable{constructor(E){super(),this.config=E}static async from_pretrained(E,D={}){const B=await(0,h.getModelJSON)(E,g.FEATURE_EXTRACTOR_NAME,!0,D);return new this(B)}}function k(M,E){var D;if(!(M instanceof Float32Array||M instanceof Float64Array))throw new Error(`${E} expects input to be a Float32Array or a Float64Array, but got ${((D=M==null?void 0:M.constructor)==null?void 0:D.name)??typeof M} instead. If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.`)}},
2879"./src/base/image_processors_utils.js":(a,i,n)=>{n.r(i),n.d(i,{ImageProcessor:()=>d,center_to_corners_format:()=>B,post_process_instance_segmentation:()=>K,post_process_object_detection:()=>v,post_process_panoptic_segmentation:()=>L,post_process_semantic_segmentation:()=>S});var g=n("./src/utils/generic.js"),p=n("./src/utils/tensor.js"),h=n("./src/utils/maths.js");n("./src/utils/image.js");var C=n("./src/utils/core.js"),k=n("./src/utils/hub.js"),M=n("./src/utils/constants.js");function E(w,e,u=0,y=null){const ee=w/e;let T=(0,h.bankers_round)(ee)*e;return y!==null&&T>y&&(T=Math.floor(ee)*e),T<u&&(T=Math.ceil(ee)*e),T}function D([w,e],u){return[Math.max(Math.floor(w/u),1)*u,Math.max(Math.floor(e/u),1)*u]}function B([w,e,u,y]){return[w-u/2,e-y/2,w+u/2,e+y/2]}function v(w,e=.5,u=null,y=!1){const ee=w.logits,T=w.pred_boxes,[O,ge,se]=ee.dims;if(u!==null&&u.length!==O)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let we=[];for(let be=0;be<O;++be){let Be=u!==null?u[be]:null,ve={boxes:[],classes:[],scores:[]},De=ee[be],je=T[be];for(let Le=0;Le<ge;++Le){let Pe=De[Le],me=[],ie;if(y){ie=Pe.sigmoid().data;for(let Ie=0;Ie<ie.length;++Ie)ie[Ie]>e&&me.push(Ie)}else{let Ie=(0,h.max)(Pe.data)[1];if(Ie===se-1||(ie=(0,h.softmax)(Pe.data),ie[Ie]<e))continue;me.push(Ie)}for(const Ie of me){let Fe=je[Le].data;Fe=B(Fe),Be!==null&&(Fe=Fe.map((xe,sA)=>xe*Be[(sA+1)%2])),ve.boxes.push(Fe),ve.classes.push(Ie),ve.scores.push(ie[Ie])}}we.push(ve)}return we}function S(w,e=null){const u=w.logits,y=u.dims[0];if(e!==null&&e.length!==y)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const ee=[];for(let T=0;T<y;++T){const O=e!==null?e[T]:null;let ge=u[T];O!==null&&(ge=(0,p.interpolate)(ge,O,"bilinear",!1));const[se,we]=O??ge.dims.slice(-2),be=new p.Tensor("int32",new Int32Array(se*we),[se,we]),Be=ge[0].data,ve=be.data;for(let Le=1;Le<ge.dims[0];++Le){const Pe=ge[Le].data;for(let me=0;me<Pe.length;++me)Pe[me]>Be[me]&&(Be[me]=Pe[me],ve[me]=Le)}const De=new Array(ge.dims[0]);for(let Le=0;Le<ve.length;++Le){const Pe=ve[Le];De[Pe]=Pe}const je=De.filter(Le=>Le!==void 0);ee.push({segmentation:be,labels:je})}return ee}function F(w,e,u,y){const ee=[],T=[],O=[];for(let ge=0;ge<w.dims[0];++ge){const se=w[ge],we=e[ge],be=(0,h.max)(se.data)[1];if(be===y)continue;const ve=(0,h.softmax)(se.data)[be];ve>u&&(ee.push(we),T.push(ve),O.push(be))}return[ee,T,O]}function R(w,e,u,y=.5,ee=.8){const T=[];let O=0,ge=0;const se=e[u].data;for(let be=0;be<w.length;++be)w[be]===u&&(T.push(be),++O),se[be]>=y&&++ge;let we=O>0&&ge>0;return we&&(we=O/ge>ee),[we,T]}function X(w,e,u,y,ee,T=null,O=null){const[ge,se]=O??w[0].dims,we=new p.Tensor("int32",new Int32Array(ge*se),[ge,se]),be=[];if(O!==null)for(let Le=0;Le<w.length;++Le)w[Le]=(0,p.interpolate)(w[Le],O,"bilinear",!1);const Be=new Int32Array(w[0].data.length),ve=new Float32Array(w[0].data.length);for(let Le=0;Le<w.length;++Le){let Pe=e[Le];const me=w[Le].data;for(let ie=0;ie<me.length;++ie)me[ie]*=Pe,me[ie]>ve[ie]&&(Be[ie]=Le,ve[ie]=me[ie])}let De=0;const je=we.data;for(let Le=0;Le<u.length;++Le){const Pe=u[Le],[me,ie]=R(Be,w,Le,y,ee);if(me){++De;for(const Ie of ie)je[Ie]=De;be.push({id:De,label_id:Pe,score:e[Le]})}}return[we,be]}function z(w,e,u=28,y=56*56,ee=14*14*4*1280){if(w<u||e<u)throw new Error(`height:${w} or width:${e} must be larger than factor:${u}`);if(Math.max(w,e)/Math.min(w,e)>200)throw new Error(`absolute aspect ratio must be smaller than 200, got ${Math.max(w,e)/Math.min(w,e)}`);let T=Math.round(w/u)*u,O=Math.round(e/u)*u;if(T*O>ee){const ge=Math.sqrt(w*e/ee);T=Math.floor(w/ge/u)*u,O=Math.floor(e/ge/u)*u}else if(T*O<y){const ge=Math.sqrt(y/(w*e));T=Math.ceil(w*ge/u)*u,O=Math.ceil(e*ge/u)*u}return[T,O]}function L(w,e=.5,u=.5,y=.8,ee=null,T=null){ee===null&&(console.warn("`label_ids_to_fuse` unset. No instance will be fused."),ee=new Set);const O=w.class_queries_logits??w.logits,se=(w.masks_queries_logits??w.pred_masks).sigmoid();let[we,be,Be]=O.dims;if(Be-=1,T!==null&&T.length!==we)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let ve=[];for(let De=0;De<we;
2879++De){let je=T!==null?T[De]:null,Le=O[De],Pe=se[De],[me,ie,Ie]=F(Le,Pe,e,Be);if(Ie.length===0){let[sA,uA]=je??Pe.dims.slice(-2),hA=new p.Tensor("int32",new Int32Array(sA*uA).fill(-1),[sA,uA]);ve.push({segmentation:hA,segments_info:[]});continue}let[Fe,xe]=X(me,ie,Ie,u,y,ee,je);ve.push({segmentation:Fe,segments_info:xe})}return ve}function K(w,e=.5,u=null){throw new Error("`post_process_instance_segmentation` is not yet implemented.")}class d extends g.Callable{constructor(e){super(),this.image_mean=e.image_mean??e.mean,this.image_std=e.image_std??e.std,this.resample=e.resample??2,this.do_rescale=e.do_rescale??!0,this.rescale_factor=e.rescale_factor??1/255,this.do_normalize=e.do_normalize,this.do_thumbnail=e.do_thumbnail,this.size=e.size??e.image_size,this.do_resize=e.do_resize??this.size!==void 0,this.size_divisibility=e.size_divisibility??e.size_divisor,this.do_center_crop=e.do_center_crop,this.crop_size=e.crop_size,this.do_convert_rgb=e.do_convert_rgb??!0,this.do_crop_margin=e.do_crop_margin,this.pad_size=e.pad_size,this.do_pad=e.do_pad,this.min_pixels=e.min_pixels,this.max_pixels=e.max_pixels,this.do_pad&&!this.pad_size&&this.size&&this.size.width!==void 0&&this.size.height!==void 0&&(this.pad_size=this.size),this.do_flip_channel_order=e.do_flip_channel_order??!1,this.config=e}async thumbnail(e,u,y=2){const ee=e.height,T=e.width,O=u.height,ge=u.width;let se=Math.min(ee,O),we=Math.min(T,ge);return se===ee&&we===T?e:(ee>T?we=Math.floor(T*se/ee):T>ee&&(se=Math.floor(ee*we/T)),await e.resize(we,se,{resample:y}))}async crop_margin(e,u=200){const y=e.clone().grayscale(),ee=(0,h.min)(y.data)[0],O=(0,h.max)(y.data)[0]-ee;if(O===0)return e;const ge=u/255;let se=y.width,we=y.height,be=0,Be=0;const ve=y.data;for(let De=0;De<y.height;++De){const je=De*y.width;for(let Le=0;Le<y.width;++Le)(ve[je+Le]-ee)/O<ge&&(se=Math.min(se,Le),we=Math.min(we,De),be=Math.max(be,Le),Be=Math.max(Be,De))}return e=await e.crop([se,we,be,Be]),e}pad_image(e,u,y,{mode:ee="constant",center:T=!1,constant_values:O=0}={}){const[ge,se,we]=u;let be,Be;if(typeof y=="number"?(be=y,Be=y):y==="square"?be=Be=Math.max(ge,se):(be=y.width,Be=y.height),be!==se||Be!==ge){const ve=new Float32Array(be*Be*we);if(Array.isArray(O))for(let Le=0;Le<ve.length;++Le)ve[Le]=O[Le%we];else O!==0&&ve.fill(O);const[De,je]=T?[Math.floor((be-se)/2),Math.floor((Be-ge)/2)]:[0,0];for(let Le=0;Le<ge;++Le){const Pe=(Le+je)*be,me=Le*se;for(let ie=0;ie<se;++ie){const Ie=(Pe+ie+De)*we,Fe=(me+ie)*we;for(let xe=0;xe<we;++xe)ve[Ie+xe]=e[Fe+xe]}}if(ee==="symmetric"){if(T)throw new Error("`center` padding is not supported when `mode` is set to `symmetric`.");const Le=ge-1,Pe=se-1;for(let me=0;me<Be;++me){const ie=me*be,Ie=(0,C.calculateReflectOffset)(me,Le)*se;for(let Fe=0;Fe<be;++Fe){if(me<ge&&Fe<se)continue;const xe=(ie+Fe)*we,sA=(Ie+(0,C.calculateReflectOffset)(Fe,Pe))*we;for(let uA=0;uA<we;++uA)ve[xe+uA]=e[sA+uA]}}}e=ve,u=[Be,be,we]}return[e,u]}rescale(e){for(let u=0;u<e.length;++u)e[u]=this.rescale_factor*e[u]}get_resize_output_image_size(e,u){const[y,ee]=e.size;let T,O;if(this.do_thumbnail){const{height:ge,width:se}=u;T=Math.min(ge,se)}else Number.isInteger(u)?(T=u,O=this.config.max_size??T):u!==void 0&&(T=u.shortest_edge,O=u.longest_edge);if(T!==void 0||O!==void 0){const ge=T===void 0?1:Math.max(T/y,T/ee),se=y*ge,we=ee*ge,be=O===void 0?1:Math.min(O/se,O/we);let Be=Math.floor(Number((se*be).toFixed(2))),ve=Math.floor(Number((we*be).toFixed(2)));return this.size_divisibility!==void 0&&([Be,ve]=D([Be,ve],this.size_divisibility)),[Be,ve]}else if(u!==void 0&&u.width!==void 0&&u.height!==void 0){let ge=u.width,se=u.height;if(this.config.keep_aspect_ratio&&this.config.ensure_multiple_of){let we=se/ee,be=ge/y;Math.abs(1-be)<Math.abs(1-we)?we=be:be=we,se=E(we*ee,this.config.ensure_multiple_of),ge=E(be*y,this.config.ensure_multiple_of)}return[ge,se]}else{if(this.size_divisibility!==void 0)return D([y,ee],this.size_divisibility);if(this.min_pixels!==void 0&&this.max_pixels!==void 0){const ge=this.config.patch_size*this.config.merge_size;return z(ee,y,ge,this.min_pixels,this.max_pixels)}else throw new Error(`Could not resize image due to unsupported \`this.size\` option in config: ${JSON.stringify(u)}`)}}async resize(e){const[u,y]=this.get_resize_output_image_size(e,this.size);return await e.resize(u,y,{resample:this.resample})}async preprocess(e,{do_normalize:u=null,do_pad:y=null,do_convert_rgb:ee=null,do_convert_grayscale:T=null,do_flip_channel_order:O=null}={}){this.do_crop_margin&&(e=await this.crop_margin(e));const[ge,se]=e.size;if(ee??this.do_convert_rgb?e=e.rgb():T&&(e=e.grayscale()),this.do_resize&&(e=await this.resize(e)),this.do_thumbnail&&(e=await this.thumbnail(e,this.size,this.resample)),this.do_center_crop){let De,je;Number.isInteger(this.crop_size)?(De=this.crop_size,je=this.crop_size):(De=this.crop_size.width,je=this.crop_size.height),e=await e.center_crop(De,je)}const we=[e.height,e.width];let be=Float32Array.from(e.data),Be=[e.height,e.width,e.channels];if(this.do_rescale&&this.rescale(be),u??this.do_normalize){let De=this.image_mean;Array.isArray(this.image_mean)||(De=new Array(e.channels).fill(De));let je=this.image_std;if(Array.isArray(this.image_std)||(je=new Array(e.channels).fill(je)),De.length!==e.channels||je.length!==e.channels)throw new Error(`When set to arrays, the length of \`image_mean\` (${De.length}) and \`image_std\` (${je.length}) must match the number of channels in the image (${e.channels}).`);for(let Le=0;Le<be.length;Le+=e.channels)for(let Pe=0;Pe<e.channels;++Pe)be[Le+Pe]=(be[Le+Pe]-De[Pe])/je[Pe]}if(y??this.do_pad){if(this.pad_size)[be,Be]=this.pad_image(be,[e.height,e.width,e.channels],this.pad_size);else if(this.size_divisibility){const[De,je]=D([Be[1],Be[0]],this.size_divisibility);
2879[be,Be]=this.pad_image(be,Be,{width:De,height:je})}}if(O??this.do_flip_channel_order){if(Be[2]!==3)throw new Error("Flipping channel order is only supported for RGB images.");for(let De=0;De<be.length;De+=3){const je=be[De];be[De]=be[De+2],be[De+2]=je}}const ve=new p.Tensor("float32",be,Be).permute(2,0,1);return{original_size:[se,ge],reshaped_input_size:we,pixel_values:ve}}async _call(e,...u){Array.isArray(e)||(e=[e]);const y=await Promise.all(e.map(T=>this.preprocess(T)));return{pixel_values:(0,p.stack)(y.map(T=>T.pixel_values),0),original_sizes:y.map(T=>T.original_size),reshaped_input_sizes:y.map(T=>T.reshaped_input_size)}}static async from_pretrained(e,u={}){const y=await(0,k.getModelJSON)(e,M.IMAGE_PROCESSOR_NAME,!0,u);return new this(y)}}},
2879"./src/base/processing_utils.js":(a,i,n)=>{n.r(i),n.d(i,{Processor:()=>C});var g=n("./src/utils/constants.js"),p=n("./src/utils/generic.js"),h=n("./src/utils/hub.js");class C extends p.Callable{constructor(M,E,D){super(),this.config=M,this.components=E,this.chat_template=D}get image_processor(){return this.components.image_processor}get tokenizer(){return this.components.tokenizer}get feature_extractor(){return this.components.feature_extractor}apply_chat_template(M,E={}){if(!this.tokenizer)throw new Error("Unable to apply chat template without a tokenizer.");return this.tokenizer.apply_chat_template(M,{tokenize:!1,chat_template:this.chat_template??void 0,...E})}batch_decode(...M){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.batch_decode(...M)}decode(...M){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.decode(...M)}async _call(M,...E){for(const D of[this.image_processor,this.feature_extractor,this.tokenizer])if(D)return D(M,...E);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(M,E={}){const[D,B,v]=await Promise.all([this.uses_processor_config?(0,h.getModelJSON)(M,g.PROCESSOR_NAME,!0,E):{},Promise.all(this.classes.filter(S=>S in this).map(async S=>{const F=await this[S].from_pretrained(M,E);return[S.replace(/_class$/,""),F]})).then(Object.fromEntries),this.uses_chat_template_file?(0,h.getModelText)(M,g.CHAT_TEMPLATE_NAME,!0,E):null]);return new this(D,B,v)}}Ee(C,"classes",["image_processor_class","tokenizer_class","feature_extractor_class"]),Ee(C,"uses_processor_config",!1),Ee(C,"uses_chat_template_file",!1)},
2879"./src/configs.js":(a,i,n)=>{n.r(i),n.d(i,{AutoConfig:()=>D,PretrainedConfig:()=>E,getCacheShapes:()=>k});var g=n("./src/utils/core.js"),p=n("./src/utils/hub.js");async function h(B,v){return await(0,p.getModelJSON)(B,"config.json",!0,v)}function C(B){const v={};let S={};switch(B.model_type){case"llava":case"paligemma":case"gemma3":case"florence2":case"llava_onevision":case"idefics3":case"ultravox":case"voxtral":case"smolvlm":case"gemma3n":case"mistral3":S=C(B.text_config);break;case"moondream1":S=C(B.phi_config);break;case"musicgen":S=C(B.decoder);break;case"multi_modality":S=C(B.language_config);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":v.num_heads="n_head",v.num_layers="n_layer",v.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"falcon":case"modernbert-decoder":v.num_heads="num_attention_heads",v.num_layers="num_hidden_layers",v.hidden_size="hidden_size";break;case"llama":case"llama4_text":case"nanochat":case"arcee":case"lfm2":case"smollm3":case"olmo":case"olmo2":case"mobilellm":case"granite":case"granitemoehybrid":case"cohere":case"mistral":case"starcoder2":case"qwen2":case"qwen2_vl":case"phi":case"phi3":case"phi3_v":case"llava_qwen2":v.num_heads="num_key_value_heads",v.num_layers="num_hidden_layers",v.hidden_size="hidden_size",v.num_attention_heads="num_attention_heads",v.dim_kv="head_dim";break;case"qwen3":case"gemma":case"gemma2":case"vaultgemma":case"gemma3_text":case"gemma3n_text":case"glm":case"helium":case"ernie4_5":case"ministral":case"ministral3":v.num_heads="num_key_value_heads",v.num_layers="num_hidden_layers",v.dim_kv="head_dim";break;case"openelm":v.num_heads="num_kv_heads",v.num_layers="num_transformer_layers",v.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":v.num_heads="num_heads",v.num_layers="num_layers",v.hidden_size="hidden_size";break;case"bloom":v.num_heads="n_head",v.num_layers="n_layer",v.hidden_size="hidden_size";break;case"mpt":v.num_heads="n_heads",v.num_layers="n_layers",v.hidden_size="d_model";break;case"exaone":v.num_heads="num_key_value_heads",v.num_layers="num_layers",v.dim_kv="head_dim",v.num_attention_heads="num_attention_heads";break;case"t5":case"mt5":case"longt5":v.num_decoder_layers="num_decoder_layers",v.num_decoder_heads="num_heads",v.decoder_dim_kv="d_kv",v.num_encoder_layers="num_layers",v.num_encoder_heads="num_heads",v.encoder_dim_kv="d_kv";break;case"bart":case"mbart":case"marian":case"whisper":case"lite-whisper":case"m2m_100":case"blenderbot":case"blenderbot-small":case"florence2_language":v.num_decoder_layers="decoder_layers",v.num_decoder_heads="decoder_attention_heads",v.decoder_hidden_size="d_model",v.num_encoder_layers="encoder_layers",v.num_encoder_heads="encoder_attention_heads",v.encoder_hidden_size="d_model";break;case"speecht5":v.num_decoder_layers="decoder_layers",v.num_decoder_heads="decoder_attention_heads",v.decoder_hidden_size="hidden_size",v.num_encoder_layers="encoder_layers",v.num_encoder_heads="encoder_attention_heads",v.encoder_hidden_size="hidden_size";break;case"trocr":v.num_encoder_layers=v.num_decoder_layers="decoder_layers",v.num_encoder_heads=v.num_decoder_heads="decoder_attention_heads",v.encoder_hidden_size=v.decoder_hidden_size="d_model";break;case"musicgen_decoder":v.num_encoder_layers=v.num_decoder_layers="num_hidden_layers",v.num_encoder_heads=v.num_decoder_heads="num_attention_heads",v.encoder_hidden_size=v.decoder_hidden_size="hidden_size";break;case"moonshine":v.num_decoder_layers="decoder_num_hidden_layers",v.num_decoder_heads="decoder_num_key_value_heads",v.num_encoder_layers="encoder_num_hidden_layers",v.num_encoder_heads="encoder_num_key_value_heads",v.encoder_hidden_size=v.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":const R=C(B.decoder),X="num_decoder_layers"in R,z=(0,g.pick)(B,["model_type","is_encoder_decoder"]);return X?(z.num_decoder_layers=R.num_decoder_layers,z.num_decoder_heads=R.num_decoder_heads,z.decoder_hidden_size=R.decoder_hidden_size,z.num_encoder_layers=R.num_encoder_layers,z.num_encoder_heads=R.num_encoder_heads,z.encoder_hidden_size=R.encoder_hidden_size):(z.num_layers=R.num_layers,z.num_heads=R.num_heads,z.hidden_size=R.hidden_size),z}const F={...S,...(0,g.pick)(B,["model_type","multi_query","is_encoder_decoder"])};for(const R in v)F[R]=B[v[R]];return F}function k(B,v){if(B.model_type==="lfm2"){const S=(v==null?void 0:v.prefix)??"past_key_values",F=S==="present"?"present":"past",R={},{layer_types:X,num_attention_heads:z,num_key_value_heads:L,hidden_size:K,conv_L_cache:d}=B,w=K/z,e=(v==null?void 0:v.batch_size)??1;for(let u=0;u<X.length;++u)if(X[u]==="full_attention")for(const y of["key","value"])R[`${S}.${u}.${y}`]=[e,L,0,w];else if(X[u]==="conv")R[`${F}_conv.${u}`]=[e,K,d];else throw new Error(`Unsupported layer type: ${X[u]}`);return R}return M(B,v)}function M(B,{prefix:v="past_key_values",batch_size:S=1}={}){const F={},R=B.normalized_config;if(R.is_encoder_decoder&&"num_encoder_heads"in R&&"num_decoder_heads"in R){const X=R.encoder_dim_kv??R.encoder_hidden_size/R.num_encoder_heads,z=R.decoder_dim_kv??R.decoder_hidden_size/R.num_decoder_heads,L=[S,R.num_encoder_heads,0,X],K=[S,R.num_decoder_heads,0,z];for(let d=0;d<R.num_decoder_layers;++d)F[`${v}.${d}.encoder.key`]=L,F[`${v}.${d}.encoder.value`]=L,F[`${v}.${d}.decoder.key`]=K,F[`${v}.${d}.decoder.value`]=K}else{const X=R.num_heads,z=R.num_layers,L=R.dim_kv??R.hidden_size/(R.num_attention_heads??X);if(R.model_type==="falcon"){const K=[S*X,0,L];for(let d=0;d<z;++d)F[`${v}.${d}.key`]=K,F[`${v}.${d}.value`]=K}else if(R.multi_query){const K=[S*X,0,2*L];for(let d=0;d<z;++d)F[`${v}.${d}.key_value`]=K}else if(R.model_type==="bloom"){const K=[S*X,L,0],d=[S*X,0,L];for(let w=0;w<z;++w)F[`${v}.${w}.key`]=K,F[`${v}.${w}.value`]=d}else if(R.model_type==="openelm")for(let K=0;K<z;
2879++K){const d=[S,X[K],0,L];F[`${v}.${K}.key`]=d,F[`${v}.${K}.value`]=d}else{const K=[S,X,0,L];for(let d=0;d<z;++d)F[`${v}.${d}.key`]=K,F[`${v}.${d}.value`]=K}}return F}class E{constructor(v){Ee(this,"model_type",null);Ee(this,"is_encoder_decoder",!1);Ee(this,"max_position_embeddings");Ee(this,"transformers.js_config");Object.assign(this,v),this.normalized_config=C(this)}static async from_pretrained(v,{progress_callback:S=null,config:F=null,cache_dir:R=null,local_files_only:X=!1,revision:z="main"}={}){F&&!(F instanceof E)&&(F=new E(F));const L=F??await h(v,{progress_callback:S,config:F,cache_dir:R,local_files_only:X,revision:z});return new this(L)}}class D{static async from_pretrained(...v){return E.from_pretrained(...v)}}},
2879"./src/env.js":(a,i,n)=>{var ee,T;n.r(i),n.d(i,{apis:()=>z,env:()=>u});var g=n("?db59"),p=n("?383f"),h=n("?fa4b");const C="3.8.1",k=typeof window<"u"&&typeof window.document<"u",M=typeof self<"u"&&["DedicatedWorkerGlobalScope","ServiceWorkerGlobalScope","SharedWorkerGlobalScope"].includes((ee=self.constructor)==null?void 0:ee.name),E=typeof self<"u"&&"caches"in self,D=typeof navigator<"u"&&"gpu"in navigator,B=typeof navigator<"u"&&"ml"in navigator,v=typeof process<"u",S=v&&((T=process==null?void 0:process.release)==null?void 0:T.name)==="node",F=!y(g),R=!y(p),X=typeof globalThis.Deno<"u",z=Object.freeze({IS_BROWSER_ENV:k,IS_WEBWORKER_ENV:M,IS_WEB_CACHE_AVAILABLE:E,IS_WEBGPU_AVAILABLE:D,IS_WEBNN_AVAILABLE:B,IS_PROCESS_AVAILABLE:v,IS_NODE_ENV:S,IS_FS_AVAILABLE:F,IS_PATH_AVAILABLE:R}),L=F&&R;let K="./";if(L){const O=Object(import.meta).url;O?K=p.dirname(p.dirname(h.fileURLToPath(O))):typeof __dirname<"u"&&(K=p.dirname(__dirname))}const d=L?p.join(K,"/.cache/"):null,w="/models/",e=L?p.join(K,w):w,u={version:C,backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!(k||M),localModelPath:e,useFS:F,useBrowserCache:E&&!X,useFSCache:F,cacheDir:d,useCustomCache:!1,customCache:null};function y(O){return Object.keys(O).length===0}},
2879"./src/generation/configuration_utils.js":(a,i,n)=>{n.r(i),n.d(i,{GenerationConfig:()=>p});var g=n("./src/utils/core.js");class p{constructor(C){Ee(this,"max_length",20);Ee(this,"max_new_tokens",null);Ee(this,"min_length",0);Ee(this,"min_new_tokens",null);Ee(this,"early_stopping",!1);Ee(this,"max_time",null);Ee(this,"do_sample",!1);Ee(this,"num_beams",1);Ee(this,"num_beam_groups",1);Ee(this,"penalty_alpha",null);Ee(this,"use_cache",!0);Ee(this,"temperature",1);Ee(this,"top_k",50);Ee(this,"top_p",1);Ee(this,"typical_p",1);Ee(this,"epsilon_cutoff",0);Ee(this,"eta_cutoff",0);Ee(this,"diversity_penalty",0);Ee(this,"repetition_penalty",1);Ee(this,"encoder_repetition_penalty",1);Ee(this,"length_penalty",1);Ee(this,"no_repeat_ngram_size",0);Ee(this,"bad_words_ids",null);Ee(this,"force_words_ids",null);Ee(this,"renormalize_logits",!1);Ee(this,"constraints",null);Ee(this,"forced_bos_token_id",null);Ee(this,"forced_eos_token_id",null);Ee(this,"remove_invalid_values",!1);Ee(this,"exponential_decay_length_penalty",null);Ee(this,"suppress_tokens",null);Ee(this,"streamer",null);Ee(this,"begin_suppress_tokens",null);Ee(this,"forced_decoder_ids",null);Ee(this,"guidance_scale",null);Ee(this,"num_return_sequences",1);Ee(this,"output_attentions",!1);Ee(this,"output_hidden_states",!1);Ee(this,"output_scores",!1);Ee(this,"return_dict_in_generate",!1);Ee(this,"pad_token_id",null);Ee(this,"bos_token_id",null);Ee(this,"eos_token_id",null);Ee(this,"encoder_no_repeat_ngram_size",0);Ee(this,"decoder_start_token_id",null);Ee(this,"generation_kwargs",{});Object.assign(this,(0,g.pick)(C,Object.getOwnPropertyNames(this)))}}},
vendor: 6,376 bytes, line 2879
2879"./src/generation/logits_process.js":(a,i,n)=>{n.r(i),n.d(i,{ClassifierFreeGuidanceLogitsProcessor:()=>z,ForcedBOSTokenLogitsProcessor:()=>M,ForcedEOSTokenLogitsProcessor:()=>E,LogitsProcessor:()=>h,LogitsProcessorList:()=>k,LogitsWarper:()=>C,MinLengthLogitsProcessor:()=>F,MinNewTokensLengthLogitsProcessor:()=>R,NoBadWordsLogitsProcessor:()=>X,NoRepeatNGramLogitsProcessor:()=>v,RepetitionPenaltyLogitsProcessor:()=>S,SuppressTokensAtBeginLogitsProcessor:()=>D,TemperatureLogitsWarper:()=>L,TopKLogitsWarper:()=>d,TopPLogitsWarper:()=>K,WhisperTimeStampLogitsProcessor:()=>B});var g=n("./src/utils/generic.js");n("./src/utils/tensor.js");var p=n("./src/utils/maths.js");class h extends g.Callable{_call(e,u){throw Error("`_call` should be implemented in a subclass")}}class C extends g.Callable{_call(e,u){throw Error("`_call` should be implemented in a subclass")}}class k extends g.Callable{constructor(){super(),this.processors=[]}push(e){this.processors.push(e)}extend(e){this.processors.push(...e)}_call(e,u){let y=u;for(const ee of this.processors)y=ee(e,y);return y}[Symbol.iterator](){return this.processors.values()}}class M extends h{constructor(e){super(),this.bos_token_id=e}_call(e,u){for(let y=0;y<e.length;++y)if(e[y].length===1){const ee=u[y].data;ee.fill(-1/0),ee[this.bos_token_id]=0}return u}}class E extends h{constructor(e,u){super(),this.max_length=e,this.eos_token_id=Array.isArray(u)?u:[u]}_call(e,u){for(let y=0;y<e.length;++y)if(e[y].length===this.max_length-1){const ee=u[y].data;ee.fill(-1/0);for(const T of this.eos_token_id)ee[T]=0}return u}}class D extends h{constructor(e,u){super(),this.begin_suppress_tokens=e,this.begin_index=u}_call(e,u){for(let y=0;y<e.length;++y)if(e[y].length===this.begin_index){const ee=u[y].data;for(const T of this.begin_suppress_tokens)ee[T]=-1/0}return u}}class B extends h{constructor(e,u){super(),this.eos_token_id=Array.isArray(e.eos_token_id)?e.eos_token_id[0]:e.eos_token_id,this.no_timestamps_token_id=e.no_timestamps_token_id,this.timestamp_begin=this.no_timestamps_token_id+1,this.begin_index=u.length,u.at(-1)===this.no_timestamps_token_id&&(this.begin_index-=1),this.max_initial_timestamp_index=e.max_initial_timestamp_index}_call(e,u){for(let y=0;y<e.length;++y){const ee=u[y].data;if(ee[this.no_timestamps_token_id]=-1/0,e[y].length===this.begin_index-1){ee.fill(-1/0),ee[this.timestamp_begin]=0;continue}const T=e[y].slice(this.begin_index),O=T.length>=1&&T[T.length-1]>=this.timestamp_begin,ge=T.length<2||T[T.length-2]>=this.timestamp_begin;if(O&&(ge?ee.subarray(this.timestamp_begin).fill(-1/0):ee.subarray(0,this.eos_token_id).fill(-1/0)),e[y].length===this.begin_index&&this.max_initial_timestamp_index!==null){const Be=this.timestamp_begin+this.max_initial_timestamp_index;ee.subarray(Be+1).fill(-1/0)}const se=(0,p.log_softmax)(ee),we=Math.log(se.subarray(this.timestamp_begin).map(Math.exp).reduce((Be,ve)=>Be+ve)),be=(0,p.max)(se.subarray(0,this.timestamp_begin))[0];we>be&&ee.subarray(0,this.timestamp_begin).fill(-1/0)}return u}}class v extends h{constructor(e){super(),this.no_repeat_ngram_size=e}getNgrams(e){const u=e.length,y=[];for(let T=0;T<u+1-this.no_repeat_ngram_size;++T){const O=[];for(let ge=0;ge<this.no_repeat_ngram_size;++ge)O.push(e[T+ge]);y.push(O.map(Number))}const ee=new Map;for(const T of y){const O=T.slice(0,T.length-1),ge=JSON.stringify(O),se=ee.get(ge)??[];se.push(T[T.length-1]),ee.set(ge,se)}return ee}getGeneratedNgrams(e,u){const y=u.slice(u.length+1-this.no_repeat_ngram_size,u.length);return e.get(JSON.stringify(y.map(Number)))??[]}calcBannedNgramTokens(e){const u=[];if(e.length+1<this.no_repeat_ngram_size)return u;{const y=this.getNgrams(e);return this.getGeneratedNgrams(y,e)}}_call(e,u){for(let y=0;y<e.length;++y){const ee=u[y].data,T=this.calcBannedNgramTokens(e[y]);for(const O of T)ee[O]=-1/0}return u}}class S extends h{constructor(e){super(),this.penalty=e}_call(e,u){for(let y=0;y<e.length;++y){const ee=u[y].data;for(const T of new Set(e[y])){const O=Number(T);ee[O]<0?ee[O]*=this.penalty:ee[O]/=this.penalty}}return u}}class F extends h{constructor(e,u){super(),this.min_length=e,this.eos_token_id=Array.isArray(u)?u:[u]}_call(e,u){for(let y=0;y<e.length;++y)if(e[y].length<this.min_length){const ee=u[y].data;for(const T of this.eos_token_id)ee[T]=-1/0}return u}}class R extends h{constructor(e,u,y){super(),this.prompt_length_to_skip=e,this.min_new_tokens=u,this.eos_token_id=Array.isArray(y)?y:[y]}_call(e,u){for(let y=0;y<e.length;++y)if(e[y].length-this.prompt_length_to_skip<this.min_new_tokens){const T=u[y].data;for(const O of this.eos_token_id)T[O]=-1/0}return u}}class X extends h{constructor(e,u){super(),this.bad_words_ids=e,this.eos_token_id=Array.isArray(u)?u:[u]}_call(e,u){for(let y=0;y<e.length;++y){const ee=u[y].data,T=e[y];for(const O of this.bad_words_ids){if(T.length<O.length-1)continue;let ge=!0;for(let se=1;se<=O.length-1;++se)if(O.at(-se-1)!=T.at(-se)){ge=!1;break}ge&&(ee[O.at(-1)]=-1/0)}}return u}}class z extends h{constructor(e){if(super(),e<=1)throw new Error(`Require guidance scale >1 to use the classifier free guidance processor, got guidance scale ${e}.`);this.guidance_scale=e}_call(e,u){if(u.dims[0]!==2*e.length)throw new Error(`Logits should have twice the batch size of the input ids, the first half of batches corresponding to the conditional inputs, and the second half of batches corresponding to the unconditional inputs. Got batch size ${u.dims[0]} for the logits and ${e.length} for the input ids.`);const y=e.length,ee=u.slice([0,y],null),T=u.slice([y,u.dims[0]],null);for(let O=0;O<T.data.length;++O)T.data[O]+=(ee.data[O]-T.data[O])*this.guidance_scale;return T}}class L extends C{constructor(e){super(),this.temperature=e}_call(e,u){const y=u.data;for(let ee=0;ee<y.length;++ee)y[ee]/=this.temperature;return u}}class K extends C{constructor(e,{filter_value:u=-1/0,min_tokens_to_keep:y=1}={}){if(super(),e<0||e>1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${e}`);if(!Number.isInteger(y)||y<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${y}`);this.top_p=e,this.filter_value=u,this.min_tokens_to_keep=y}}class d extends C{constructor(e,{filter_value:u=-1/0,min_tokens_to_keep:y=1}={}){if(super(),!Number.isInteger(e)||e<0)throw new Error(`\`top_k\` must be a positive integer, but is ${e}`);this.top_k=Math.max(e,y),this.filter_value=u}}},
2879"./src/generation/logits_sampler.js":(a,i,n)=>{n.r(i),n.d(i,{LogitsSampler:()=>C});var g=n("./src/utils/generic.js"),p=n("./src/utils/tensor.js"),h=n("./src/utils/maths.js");n("./src/generation/configuration_utils.js");class C extends g.Callable{constructor(B){super(),this.generation_config=B}async _call(B){return this.sample(B)}async sample(B){throw Error("sample should be implemented in subclasses.")}getLogits(B,v){let S=B.dims.at(-1),F=B.data;if(v===-1)F=F.slice(-S);else{let R=v*S;F=F.slice(R,R+S)}return F}randomSelect(B){let v=0;for(let F=0;F<B.length;++F)v+=B[F];let S=Math.random()*v;for(let F=0;F<B.length;++F)if(S-=B[F],S<=0)return F;return 0}static getSampler(B){if(B.do_sample)return new M(B);if(B.num_beams>1)return new E(B);if(B.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${B.num_return_sequences}.`);return new k(B)}}class k extends C{async sample(B){const v=(0,h.max)(B.data)[1];return[[BigInt(v),0]]}}class M extends C{async sample(B){let v=B.dims.at(-1);this.generation_config.top_k>0&&(v=Math.min(this.generation_config.top_k,v));const[S,F]=await(0,p.topk)(B,v),R=(0,h.softmax)(S.data);return Array.from({length:this.generation_config.num_beams},()=>{const X=this.randomSelect(R);return[F.data[X],Math.log(R[X])]})}}class E extends C{async sample(B){let v=B.dims.at(-1);this.generation_config.top_k>0&&(v=Math.min(this.generation_config.top_k,v));const[S,F]=await(0,p.topk)(B,v),R=(0,h.softmax)(S.data);return Array.from({length:this.generation_config.num_beams},(X,z)=>[F.data[z],Math.log(R[z])])}}},
2879"./src/generation/stopping_criteria.js":(a,i,n)=>{n.r(i),n.d(i,{EosTokenCriteria:()=>k,InterruptableStoppingCriteria:()=>M,MaxLengthCriteria:()=>C,StoppingCriteria:()=>p,StoppingCriteriaList:()=>h});var g=n("./src/utils/generic.js");class p extends g.Callable{_call(D,B){throw Error("StoppingCriteria needs to be subclassed")}}class h extends g.Callable{constructor(){super(),this.criteria=[]}push(D){this.criteria.push(D)}extend(D){D instanceof h?D=D.criteria:D instanceof p&&(D=[D]),this.criteria.push(...D)}_call(D,B){const v=new Array(D.length).fill(!1);for(const S of this.criteria){const F=S(D,B);for(let R=0;R<v.length;++R)v[R]||(v[R]=F[R])}return v}[Symbol.iterator](){return this.criteria.values()}}class C extends p{constructor(D,B=null){super(),this.max_length=D,this.max_position_embeddings=B}_call(D){return D.map(B=>B.length>=this.max_length)}}class k extends p{constructor(D){super(),Array.isArray(D)||(D=[D]),this.eos_token_id=D}_call(D,B){return D.map(v=>{const S=v.at(-1);return this.eos_token_id.some(F=>S==F)})}}class M extends p{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(D,B){return new Array(D.length).fill(this.interrupted)}}},
2879"./src/generation/streamers.js":(a,i,n)=>{n.r(i),n.d(i,{BaseStreamer:()=>C,TextStreamer:()=>M,WhisperTextStreamer:()=>E});var g=n("./src/utils/core.js"),p=n("./src/tokenizers.js"),h=n("./src/env.js");class C{put(B){throw Error("Not implemented")}end(){throw Error("Not implemented")}}const k=h.apis.IS_PROCESS_AVAILABLE?D=>process.stdout.write(D):D=>console.log(D);class M extends C{constructor(B,{skip_prompt:v=!1,callback_function:S=null,token_callback_function:F=null,skip_special_tokens:R=!0,decode_kwargs:X={},...z}={}){super(),this.tokenizer=B,this.skip_prompt=v,this.callback_function=S??k,this.token_callback_function=F,this.decode_kwargs={skip_special_tokens:R,...X,...z},this.token_cache=[],this.print_len=0,this.next_tokens_are_prompt=!0}put(B){var X;if(B.length>1)throw Error("TextStreamer only supports batch size of 1");const v=this.next_tokens_are_prompt;if(v&&(this.next_tokens_are_prompt=!1,this.skip_prompt))return;const S=B[0];(X=this.token_callback_function)==null||X.call(this,S),this.token_cache=(0,g.mergeArrays)(this.token_cache,S);const F=this.tokenizer.decode(this.token_cache,this.decode_kwargs);let R;v||F.endsWith(` 2880`)?(R=F.slice(this.print_len),this.token_cache=[],this.print_len=0):F.length>0&&(0,p.is_chinese_char)(F.charCodeAt(F.length-1))?(R=F.slice(this.print_len),this.print_len+=R.length):(R=F.slice(this.print_len,F.lastIndexOf(" ")+1),this.print_len+=R.length),this.on_finalized_text(R,!1)}end(){let B;this.token_cache.length>0?(B=this.tokenizer.decode(this.token_cache,this.decode_kwargs).slice(this.print_len),this.token_cache=[],this.print_len=0):B="",this.next_tokens_are_prompt=!0,this.on_finalized_text(B,!0)}on_finalized_text(B,v){var S,F;B.length>0&&((S=this.callback_function)==null||S.call(this,B)),v&&this.callback_function===k&&h.apis.IS_PROCESS_AVAILABLE&&((F=this.callback_function)==null||F.call(this,` 2881`))}}class E extends M{constructor(B,{skip_prompt:v=!1,callback_function:S=null,token_callback_function:F=null,on_chunk_start:R=null,on_chunk_end:X=null,on_finalize:z=null,time_precision:L=.02,skip_special_tokens:K=!0,decode_kwargs:d={}}={}){super(B,{skip_prompt:v,skip_special_tokens:K,callback_function:S,token_callback_function:F,decode_kwargs:d}),this.timestamp_begin=B.timestamp_begin,this.on_chunk_start=R,this.on_chunk_end=X,this.on_finalize=z,this.time_precision=L,this.waiting_for_timestamp=!1}put(B){var S,F,R;if(B.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");const v=B[0];if(v.length===1){const X=Number(v[0])-this.timestamp_begin;if(X>=0){const z=X*this.time_precision;this.waiting_for_timestamp?(S=this.on_chunk_end)==null||S.call(this,z):(F=this.on_chunk_start)==null||F.call(this,z),this.waiting_for_timestamp=!this.waiting_for_timestamp,(R=this.token_callback_function)==null||R.call(this,v);return}}return super.put(B)}end(){var B;super.end(),(B=this.on_finalize)==null||B.call(this)}}},
2881"./src/models.js":(a,i,n)=>{n.r(i),n.d(i,{ASTForAudioClassification:()=>Sn,ASTModel:()=>jt,ASTPreTrainedModel:()=>wa,AlbertForMaskedLM:()=>QA,AlbertForQuestionAnswering:()=>Xe,AlbertForSequenceClassification:()=>xA,AlbertModel:()=>wA,AlbertPreTrainedModel:()=>$e,ArceeForCausalLM:()=>mn,ArceeModel:()=>la,ArceePreTrainedModel:()=>Tt,AutoModel:()=>Ll,AutoModelForAudioClassification:()=>qf,AutoModelForAudioFrameClassification:()=>eg,AutoModelForAudioTextToText:()=>lg,AutoModelForCTC:()=>Jf,AutoModelForCausalLM:()=>Lf,AutoModelForDepthEstimation:()=>sg,AutoModelForDocumentQuestionAnswering:()=>Ag,AutoModelForImageClassification:()=>Vf,AutoModelForImageFeatureExtraction:()=>ig,AutoModelForImageMatting:()=>tg,AutoModelForImageSegmentation:()=>Yf,AutoModelForImageTextToText:()=>og,AutoModelForImageToImage:()=>rg,AutoModelForMaskGeneration:()=>Zf,AutoModelForMaskedLM:()=>Rf,AutoModelForNormalEstimation:()=>ag,AutoModelForObjectDetection:()=>Kf,AutoModelForPoseEstimation:()=>ng,AutoModelForQuestionAnswering:()=>jf,AutoModelForSemanticSegmentation:()=>Hf,AutoModelForSeq2SeqLM:()=>Of,AutoModelForSequenceClassification:()=>Ff,AutoModelForSpeechSeq2Seq:()=>_f,AutoModelForTextToSpectrogram:()=>zf,AutoModelForTextToWaveform:()=>Nf,AutoModelForTokenClassification:()=>Sf,AutoModelForUniversalSegmentation:()=>Uf,AutoModelForVision2Seq:()=>Wf,AutoModelForXVector:()=>$f,AutoModelForZeroShotObjectDetection:()=>Xf,BartForConditionalGeneration:()=>tr,BartForSequenceClassification:()=>br,BartModel:()=>Ms,BartPretrainedModel:()=>sr,BaseModelOutput:()=>qe,BeitForImageClassification:()=>qc,BeitModel:()=>Jc,BeitPreTrainedModel:()=>q0,BertForMaskedLM:()=>aA,BertForQuestionAnswering:()=>He,BertForSequenceClassification:()=>Y,BertForTokenClassification:()=>cA,BertModel:()=>rA,BertPreTrainedModel:()=>Ue,BlenderbotForConditionalGeneration:()=>WA,BlenderbotModel:()=>Ir,BlenderbotPreTrainedModel:()=>hr,BlenderbotSmallForConditionalGeneration:()=>ba,BlenderbotSmallModel:()=>zr,BlenderbotSmallPreTrainedModel:()=>Mt,BloomForCausalLM:()=>W,BloomModel:()=>_,BloomPreTrainedModel:()=>P,CLIPModel:()=>fn,CLIPPreTrainedModel:()=>Xs,CLIPSegForImageSegmentation:()=>at,CLIPSegModel:()=>An,CLIPSegPreTrainedModel:()=>xs,CLIPTextModel:()=>Ja,CLIPTextModelWithProjection:()=>EA,CLIPVisionModel:()=>Ps,CLIPVisionModelWithProjection:()=>_n,CamembertForMaskedLM:()=>_e,CamembertForQuestionAnswering:()=>NA,CamembertForSequenceClassification:()=>eA,CamembertForTokenClassification:()=>FA,CamembertModel:()=>ke,CamembertPreTrainedModel:()=>pe,CausalLMOutput:()=>Zn,CausalLMOutputWithPast:()=>II,ChineseCLIPModel:()=>et,ChineseCLIPPreTrainedModel:()=>$a,ClapAudioModelWithProjection:()=>pd,ClapModel:()=>fd,ClapPreTrainedModel:()=>n0,ClapTextModelWithProjection:()=>gd,CodeGenForCausalLM:()=>fe,CodeGenModel:()=>ne,CodeGenPreTrainedModel:()=>q,CohereForCausalLM:()=>Hn,CohereModel:()=>Vt,CoherePreTrainedModel:()=>Yr,ConvBertForMaskedLM:()=>UA,ConvBertForQuestionAnswering:()=>Jt,ConvBertForSequenceClassification:()=>ta,ConvBertForTokenClassification:()=>Os,ConvBertModel:()=>xt,ConvBertPreTrainedModel:()=>Ss,ConvNextForImageClassification:()=>H1,ConvNextModel:()=>Y1,ConvNextPreTrainedModel:()=>fl,ConvNextV2ForImageClassification:()=>K1,ConvNextV2Model:()=>U1,ConvNextV2PreTrainedModel:()=>gl,DFineForObjectDetection:()=>u1,DFineModel:()=>c1,DFinePreTrainedModel:()=>sl,DINOv3ConvNextModel:()=>tu,DINOv3ConvNextPreTrainedModel:()=>Au,DINOv3ViTModel:()=>eu,DINOv3ViTPreTrainedModel:()=>$1,DPTForDepthEstimation:()=>B1,DPTModel:()=>x1,DPTPreTrainedModel:()=>cl,DacDecoderModel:()=>rf,DacDecoderOutput:()=>ef,DacEncoderModel:()=>tf,DacEncoderOutput:()=>$d,DacModel:()=>Af,DacPreTrainedModel:()=>f0,DebertaForMaskedLM:()=>YA,DebertaForQuestionAnswering:()=>Bt,DebertaForSequenceClassification:()=>vt,DebertaForTokenClassification:()=>OA,DebertaModel:()=>gt,DebertaPreTrainedModel:()=>SA,DebertaV2ForMaskedLM:()=>Cr,DebertaV2ForQuestionAnswering:()=>Vs,DebertaV2ForSequenceClassification:()=>Kr,DebertaV2ForTokenClassification:()=>ur,DebertaV2Model:()=>es,DebertaV2PreTrainedModel:()=>zt,DecisionTransformerModel:()=>Od,DecisionTransformerPreTrainedModel:()=>Sd,DeiTForImageClassification:()=>m1,DeiTModel:()=>p1,DeiTPreTrainedModel:()=>nl,DepthAnythingForDepthEstimation:()=>D1,DepthAnythingPreTrainedModel:()=>y1,DepthProForDepthEstimation:()=>F1,DepthProPreTrainedModel:()=>Q1,DetrForObjectDetection:()=>e1,DetrForSegmentation:()=>$0,DetrModel:()=>$c,DetrObjectDetectionOutput:()=>el,DetrPreTrainedModel:()=>$o,DetrSegmentationOutput:()=>A1,Dinov2ForImageClassification:()=>Z1,Dinov2Model:()=>X1,Dinov2PreTrainedModel:()=>pl,Dinov2WithRegistersForImageClassification:()=>q1,Dinov2WithRegistersModel:()=>J1,Dinov2WithRegistersPreTrainedModel:()=>ml,DistilBertForMaskedLM:()=>fr,DistilBertForQuestionAnswering:()=>as,DistilBertForSequenceClassification:()=>ks,DistilBertForTokenClassification:()=>ss,DistilBertModel:()=>ha,DistilBertPreTrainedModel:()=>Tr,DonutSwinModel:()=>V1,DonutSwinPreTrainedModel:()=>W1,EdgeTamModel:()=>fu,EfficientNetForImageClassification:()=>kd,EfficientNetModel:()=>wd,EfficientNetPreTrainedModel:()=>
2881Tl,ElectraForMaskedLM:()=>Ws,ElectraForQuestionAnswering:()=>ae,ElectraForSequenceClassification:()=>H,ElectraForTokenClassification:()=>ue,ElectraModel:()=>mt,ElectraPreTrainedModel:()=>bs,Ernie4_5ForCausalLM:()=>od,Ernie4_5Model:()=>id,Ernie4_5PreTrainedModel:()=>vl,EsmForMaskedLM:()=>fs,EsmForSequenceClassification:()=>ra,EsmForTokenClassification:()=>Ys,EsmModel:()=>Vr,EsmPreTrainedModel:()=>LA,ExaoneForCausalLM:()=>is,ExaoneModel:()=>Yn,ExaonePreTrainedModel:()=>As,FalconForCausalLM:()=>dd,FalconModel:()=>ud,FalconPreTrainedModel:()=>Bl,FastViTForImageClassification:()=>ps,FastViTModel:()=>os,FastViTPreTrainedModel:()=>Jr,Florence2ForConditionalGeneration:()=>un,Florence2PreTrainedModel:()=>GA,GLPNForDepthEstimation:()=>j1,GLPNModel:()=>R1,GLPNPreTrainedModel:()=>dl,GPT2LMHeadModel:()=>Ns,GPT2Model:()=>gn,GPT2PreTrainedModel:()=>Gs,GPTBigCodeForCausalLM:()=>j,GPTBigCodeModel:()=>G,GPTBigCodePreTrainedModel:()=>Zr,GPTJForCausalLM:()=>Wn,GPTJModel:()=>Pa,GPTJPreTrainedModel:()=>nr,GPTNeoForCausalLM:()=>rn,GPTNeoModel:()=>Bs,GPTNeoPreTrainedModel:()=>Or,GPTNeoXForCausalLM:()=>pn,GPTNeoXModel:()=>jn,GPTNeoXPreTrainedModel:()=>Ta,Gemma2ForCausalLM:()=>Hi,Gemma2Model:()=>Eo,Gemma2PreTrainedModel:()=>Yi,Gemma3ForCausalLM:()=>Xi,Gemma3Model:()=>ts,Gemma3PreTrainedModel:()=>Un,Gemma3nForConditionalGeneration:()=>Ma,Gemma3nPreTrainedModel:()=>Ka,GemmaForCausalLM:()=>Mo,GemmaModel:()=>Vi,GemmaPreTrainedModel:()=>Wi,GlmForCausalLM:()=>Co,GlmModel:()=>ho,GlmPreTrainedModel:()=>Li,GraniteForCausalLM:()=>nn,GraniteModel:()=>ko,GraniteMoeHybridForCausalLM:()=>hi,GraniteMoeHybridModel:()=>ji,GraniteMoeHybridPreTrainedModel:()=>Ls,GranitePreTrainedModel:()=>mi,GroundingDinoForObjectDetection:()=>su,GroundingDinoPreTrainedModel:()=>ru,GroupViTModel:()=>Hr,GroupViTPreTrainedModel:()=>Rr,HeliumForCausalLM:()=>hn,HeliumModel:()=>Ni,HeliumPreTrainedModel:()=>fi,HieraForImageClassification:()=>C1,HieraModel:()=>h1,HieraPreTrainedModel:()=>il,HubertForCTC:()=>Lu,HubertForSequenceClassification:()=>Ru,HubertModel:()=>Nu,HubertPreTrainedModel:()=>nI,IJepaForImageClassification:()=>bA,IJepaModel:()=>gA,IJepaPreTrainedModel:()=>AA,Idefics3ForConditionalGeneration:()=>Xa,Idefics3PreTrainedModel:()=>ar,ImageMattingOutput:()=>ug,JAISLMHeadModel:()=>Zs,JAISModel:()=>Lr,JAISPreTrainedModel:()=>tn,JinaCLIPModel:()=>Ln,JinaCLIPPreTrainedModel:()=>en,JinaCLIPTextModel:()=>Rn,JinaCLIPVisionModel:()=>wr,Lfm2ForCausalLM:()=>di,Lfm2Model:()=>ys,Lfm2PreTrainedModel:()=>Vn,LiteWhisperForConditionalGeneration:()=>zs,Llama4ForCausalLM:()=>VA,Llama4PreTrainedModel:()=>yA,LlamaForCausalLM:()=>fA,LlamaModel:()=>Ke,LlamaPreTrainedModel:()=>Se,LlavaForConditionalGeneration:()=>Da,LlavaOnevisionForConditionalGeneration:()=>dA,LlavaPreTrainedModel:()=>Ha,LlavaQwen2ForCausalLM:()=>ns,LongT5ForConditionalGeneration:()=>er,LongT5Model:()=>Ht,LongT5PreTrainedModel:()=>gr,M2M100ForConditionalGeneration:()=>Cu,M2M100Model:()=>hu,M2M100PreTrainedModel:()=>bl,MBartForCausalLM:()=>Es,MBartForConditionalGeneration:()=>Us,MBartForSequenceClassification:()=>vr,MBartModel:()=>mr,MBartPreTrainedModel:()=>Qt,MPNetForMaskedLM:()=>sa,MPNetForQuestionAnswering:()=>Ne,MPNetForSequenceClassification:()=>Hs,MPNetForTokenClassification:()=>Wa,MPNetModel:()=>Ca,MPNetPreTrainedModel:()=>Rt,MT5ForConditionalGeneration:()=>Pr,MT5Model:()=>Ar,MT5PreTrainedModel:()=>pr,MarianMTModel:()=>mu,MarianModel:()=>pu,MarianPreTrainedModel:()=>Cl,MaskFormerForInstanceSegmentation:()=>L1,MaskFormerModel:()=>N1,MaskFormerPreTrainedModel:()=>ul,MaskedLMOutput:()=>ms,Metric3DForDepthEstimation:()=>O1,Metric3DPreTrainedModel:()=>S1,Metric3Dv2ForDepthEstimation:()=>z1,Metric3Dv2PreTrainedModel:()=>_1,MgpstrForSceneTextRecognition:()=>Rd,MgpstrModelOutput:()=>Nd,MgpstrPreTrainedModel:()=>Ld,MimiDecoderModel:()=>qd,MimiDecoderOutput:()=>Xd,MimiEncoderModel:()=>Jd,MimiEncoderOutput:()=>Kd,MimiModel:()=>Zd,MimiPreTrainedModel:()=>d0,Ministral3ForCausalLM:()=>nd,Ministral3Model:()=>ad,Ministral3PreTrainedModel:()=>El,MinistralForCausalLM:()=>sd,MinistralModel:()=>rd,MinistralPreTrainedModel:()=>Ml,Mistral3ForConditionalGeneration:()=>Ua,MistralForCausalLM:()=>td,MistralModel:()=>Ad,MistralPreTrainedModel:()=>kl,MobileBertForMaskedLM:()=>pA,MobileBertForQuestionAnswering:()=>_A,MobileBertForSequenceClassification:()=>CA,MobileBertModel:()=>_r,MobileBertPreTrainedModel:()=>_s,MobileLLMForCausalLM:()=>bo,MobileLLMModel:()=>pi,MobileLLMPreTrainedModel:()=>gi,MobileNetV1ForImageClassification:()=>Ed,MobileNetV1ForSemanticSegmentation:()=>vd,MobileNetV1Model:()=>Md,MobileNetV1PreTrainedModel:()=>o0,MobileNetV2ForImageClassification:()=>Bd,MobileNetV2ForSemanticSegmentation:()=>yd,MobileNetV2Model:()=>xd,MobileNetV2PreTrainedModel:()=>l0,MobileNetV3ForImageClassification:()=>Td,MobileNetV3ForSemanticSegmentation:()=>Pd,MobileNetV3Model:()=>Dd,MobileNetV3PreTrainedModel:()=>c0,MobileNetV4ForImageClassification:()=>Qd,MobileNetV4ForSemanticSegmentation:()=>Fd,MobileNetV4Model:()=>Gd,MobileNetV4PreTrainedModel:()=>u0,MobileViTForImageClassification:()=>In,MobileViTModel:()=>da,MobileViTPreTrainedModel:()=>Js,MobileViTV2ForImageClassification:()=>Kn,MobileViTV2Model:()=>kn,MobileViTV2PreTrainedModel:()=>wn,ModelOutput:()=>Re,ModernBertDecoderForCausalLM:()=>Zt,ModernBertDecoderModel:()=>ZA,ModernBertDecoderPreTrainedModel:()=>RA,ModernBertForMaskedLM:()=>lA,ModernBertForSequenceClassification:()=>KA,ModernBertForTokenClassification:()=>JA,ModernBertModel:()=>tA,ModernBertPreTrainedModel:()=>BA,Moondream1ForConditionalGeneration:()=>ui,MoonshineForConditionalGeneration:()=>ka,MoonshineModel:()=>ci,MoonshinePreTrainedModel:()=>Ya,MptForCausalLM:()=>re,MptModel:()=>Z,MptPreTrainedModel:()=>U,MultiModalityCausalLM:()=>zd,MultiModalityPreTrainedModel:()=>_d,MusicgenForCausalLM:()=>cI,MusicgenForConditionalGeneration:()=>Gl,MusicgenModel:()=>lI,MusicgenPreTrainedModel:()=>Pl,NanoChatForCausalLM:()=>Nt,NanoChatModel:()=>bt,NanoChatPreTrainedModel:()=>ut,NeoBertForMaskedLM:()=>nA,NeoBertForQuestionAnswering:()=>
2881ot,NeoBertForSequenceClassification:()=>DA,NeoBertForTokenClassification:()=>IA,NeoBertModel:()=>MA,NeoBertPreTrainedModel:()=>ce,NomicBertModel:()=>ft,NomicBertPreTrainedModel:()=>Sr,OPTForCausalLM:()=>Me,OPTModel:()=>Ce,OPTPreTrainedModel:()=>le,Olmo2ForCausalLM:()=>wo,Olmo2Model:()=>Io,Olmo2PreTrainedModel:()=>an,OlmoForCausalLM:()=>sn,OlmoModel:()=>Ri,OlmoPreTrainedModel:()=>rr,OpenELMForCausalLM:()=>xo,OpenELMModel:()=>Cn,OpenELMPreTrainedModel:()=>Zi,OwlViTForObjectDetection:()=>yo,OwlViTModel:()=>Bo,OwlViTPreTrainedModel:()=>Mn,Owlv2ForObjectDetection:()=>Zc,Owlv2Model:()=>Do,Owlv2PreTrainedModel:()=>Ji,PaliGemmaForConditionalGeneration:()=>Xr,PaliGemmaPreTrainedModel:()=>dn,ParakeetForCTC:()=>Eu,ParakeetPreTrainedModel:()=>Mu,PatchTSMixerForPrediction:()=>Yd,PatchTSMixerModel:()=>Vd,PatchTSMixerPreTrainedModel:()=>Fl,PatchTSTForPrediction:()=>Wd,PatchTSTModel:()=>jd,PatchTSTPreTrainedModel:()=>Ql,Phi3ForCausalLM:()=>x,Phi3Model:()=>b,Phi3PreTrainedModel:()=>I,Phi3VForCausalLM:()=>Ks,Phi3VPreTrainedModel:()=>Za,PhiForCausalLM:()=>m,PhiModel:()=>f,PhiPreTrainedModel:()=>c,PreTrainedModel:()=>Ae,PretrainedMixin:()=>Ut,PvtForImageClassification:()=>Ot,PvtModel:()=>Et,PvtPreTrainedModel:()=>rt,PyAnnoteForAudioFrameClassification:()=>xu,PyAnnoteModel:()=>vu,PyAnnotePreTrainedModel:()=>Il,QuestionAnsweringModelOutput:()=>Ds,Qwen2ForCausalLM:()=>A,Qwen2Model:()=>At,Qwen2PreTrainedModel:()=>bn,Qwen2VLForConditionalGeneration:()=>l,Qwen2VLPreTrainedModel:()=>o,Qwen3ForCausalLM:()=>s,Qwen3Model:()=>r,Qwen3PreTrainedModel:()=>t,RFDetrForObjectDetection:()=>o1,RFDetrModel:()=>i1,RFDetrObjectDetectionOutput:()=>l1,RFDetrPreTrainedModel:()=>rl,RTDetrForObjectDetection:()=>r1,RTDetrModel:()=>t1,RTDetrObjectDetectionOutput:()=>To,RTDetrPreTrainedModel:()=>Al,RTDetrV2ForObjectDetection:()=>a1,RTDetrV2Model:()=>s1,RTDetrV2ObjectDetectionOutput:()=>n1,RTDetrV2PreTrainedModel:()=>tl,ResNetForImageClassification:()=>I1,ResNetModel:()=>b1,ResNetPreTrainedModel:()=>ol,RoFormerForMaskedLM:()=>Aa,RoFormerForQuestionAnswering:()=>$r,RoFormerForSequenceClassification:()=>Ts,RoFormerForTokenClassification:()=>Er,RoFormerModel:()=>ea,RoFormerPreTrainedModel:()=>ds,RobertaForMaskedLM:()=>ai,RobertaForQuestionAnswering:()=>ni,RobertaForSequenceClassification:()=>Ia,RobertaForTokenClassification:()=>Pn,RobertaModel:()=>si,RobertaPreTrainedModel:()=>aa,Sam2ImageSegmentationOutput:()=>uu,Sam2Model:()=>t0,Sam2PreTrainedModel:()=>du,Sam3TrackerModel:()=>gu,SamImageSegmentationOutput:()=>cu,SamModel:()=>lu,SamPreTrainedModel:()=>ou,SapiensForDepthEstimation:()=>P1,SapiensForNormalEstimation:()=>G1,SapiensForSemanticSegmentation:()=>T1,SapiensPreTrainedModel:()=>A0,SegformerForImageClassification:()=>hd,SegformerForSemanticSegmentation:()=>Cd,SegformerModel:()=>oI,SegformerPreTrainedModel:()=>i0,Seq2SeqLMOutput:()=>bI,SequenceClassifierOutput:()=>ht,SiglipModel:()=>qa,SiglipPreTrainedModel:()=>zn,SiglipTextModel:()=>Ea,SiglipVisionModel:()=>Nn,SmolLM3ForCausalLM:()=>mo,SmolLM3Model:()=>ca,SmolLM3PreTrainedModel:()=>zi,SmolVLMForConditionalGeneration:()=>On,SnacDecoderModel:()=>nf,SnacEncoderModel:()=>af,SnacModel:()=>sf,SnacPreTrainedModel:()=>g0,SpeechT5ForSpeechToText:()=>Xu,SpeechT5ForTextToSpeech:()=>Zu,SpeechT5HifiGan:()=>Ju,SpeechT5Model:()=>iI,SpeechT5PreTrainedModel:()=>a0,SqueezeBertForMaskedLM:()=>he,SqueezeBertForQuestionAnswering:()=>ze,SqueezeBertForSequenceClassification:()=>Ge,SqueezeBertModel:()=>de,SqueezeBertPreTrainedModel:()=>J,StableLmForCausalLM:()=>Id,StableLmModel:()=>bd,StableLmPreTrainedModel:()=>Dl,Starcoder2ForCausalLM:()=>cd,Starcoder2Model:()=>ld,Starcoder2PreTrainedModel:()=>xl,StyleTextToSpeech2Model:()=>Ku,StyleTextToSpeech2PreTrainedModel:()=>Uu,SupertonicForConditionalGeneration:()=>wl,SupertonicPreTrainedModel:()=>qu,Swin2SRForImageSuperResolution:()=>v1,Swin2SRModel:()=>E1,Swin2SRPreTrainedModel:()=>ll,SwinForImageClassification:()=>k1,SwinForSemanticSegmentation:()=>M1,SwinModel:()=>w1,SwinPreTrainedModel:()=>e0,T5ForConditionalGeneration:()=>Ft,T5Model:()=>St,T5PreTrainedModel:()=>it,TableTransformerForObjectDetection:()=>f1,TableTransformerModel:()=>d1,TableTransformerObjectDetectionOutput:()=>g1,TableTransformerPreTrainedModel:()=>al,TokenClassifierOutput:()=>ls,TrOCRForCausalLM:()=>ed,TrOCRPreTrainedModel:()=>$u,UltravoxModel:()=>Sl,UltravoxPreTrainedModel:()=>Hd,UniSpeechForCTC:()=>Tu,UniSpeechForSequenceClassification:()=>Pu,UniSpeechModel:()=>Du,UniSpeechPreTrainedModel:()=>r0,UniSpeechSatForAudioFrameClassification:()=>Su,UniSpeechSatForCTC:()=>Qu,UniSpeechSatForSequenceClassification:()=>Fu,UniSpeechSatModel:()=>Gu,UniSpeechSatPreTrainedModel:()=>
2881Po,VaultGemmaForCausalLM:()=>Ki,VaultGemmaModel:()=>vo,VaultGemmaPreTrainedModel:()=>Ui,ViTForImageClassification:()=>Ve,ViTMAEModel:()=>ir,ViTMAEPreTrainedModel:()=>Wt,ViTMSNForImageClassification:()=>Br,ViTMSNModel:()=>xr,ViTMSNPreTrainedModel:()=>or,ViTModel:()=>Oe,ViTPreTrainedModel:()=>Qe,VisionEncoderDecoderModel:()=>cn,VitMatteForImageMatting:()=>ua,VitMattePreTrainedModel:()=>Is,VitPoseForPoseEstimation:()=>jA,VitPosePreTrainedModel:()=>zA,VitsModel:()=>yl,VitsModelOutput:()=>dg,VitsPreTrainedModel:()=>md,VoxtralForConditionalGeneration:()=>Ud,Wav2Vec2BertForCTC:()=>_u,Wav2Vec2BertForSequenceClassification:()=>zu,Wav2Vec2BertModel:()=>Ou,Wav2Vec2BertPreTrainedModel:()=>s0,Wav2Vec2ForAudioFrameClassification:()=>ku,Wav2Vec2ForCTC:()=>Iu,Wav2Vec2ForSequenceClassification:()=>wu,Wav2Vec2Model:()=>bu,Wav2Vec2PreTrainedModel:()=>Xn,WavLMForAudioFrameClassification:()=>Hu,WavLMForCTC:()=>Wu,WavLMForSequenceClassification:()=>Vu,WavLMForXVector:()=>Yu,WavLMModel:()=>ju,WavLMPreTrainedModel:()=>qi,WeSpeakerResNetModel:()=>yu,WeSpeakerResNetPreTrainedModel:()=>Bu,WhisperForConditionalGeneration:()=>vs,WhisperModel:()=>oa,WhisperPreTrainedModel:()=>ln,XLMForQuestionAnswering:()=>Gn,XLMForSequenceClassification:()=>PA,XLMForTokenClassification:()=>gs,XLMModel:()=>Va,XLMPreTrainedModel:()=>na,XLMRobertaForMaskedLM:()=>oi,XLMRobertaForQuestionAnswering:()=>Fn,XLMRobertaForSequenceClassification:()=>li,XLMRobertaForTokenClassification:()=>Qn,XLMRobertaModel:()=>ii,XLMRobertaPreTrainedModel:()=>ia,XLMWithLMHeadModel:()=>Nr,XVectorOutput:()=>cg,YolosForObjectDetection:()=>nu,YolosModel:()=>au,YolosObjectDetectionOutput:()=>iu,YolosPreTrainedModel:()=>hl});var g=n("./src/configs.js"),p=n("./src/backends/onnx.js"),h=n("./src/utils/dtypes.js"),C=n("./src/utils/generic.js"),k=n("./src/utils/core.js"),M=n("./src/utils/hub.js"),E=n("./src/utils/constants.js"),D=n("./src/generation/logits_process.js"),B=n("./src/generation/configuration_utils.js"),v=n("./src/utils/tensor.js"),S=n("./src/utils/image.js"),F=n("./src/utils/maths.js"),R=n("./src/generation/stopping_criteria.js"),X=n("./src/generation/logits_sampler.js"),z=n("./src/env.js"),L=n("./src/models/whisper/generation_whisper.js"),K=n("./src/models/whisper/common_whisper.js");const d={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5,ImageTextToText:6,Musicgen:7,MultiModality:8,Phi3V:9,AudioTextToText:10,AutoEncoder:11,ImageAudioTextToText:12,Supertonic:13},w=new Map,e=new Map,u=new Map;async function y(N,V,te){var hs;let Te=((hs=te.config)==null?void 0:hs["transformers.js_config"])??{},Ye=te.device??Te.device;Ye&&typeof Ye!="string"&&(Ye.hasOwnProperty(V)?Ye=Ye[V]:(console.warn(`device not specified for "${V}". Using the default device.`),Ye=null));const We=Ye??(z.apis.IS_NODE_ENV?"cpu":"wasm"),Ze=(0,p.deviceToExecutionProviders)(We),mA=Te.device_config??{};mA.hasOwnProperty(We)&&(Te={...Te,...mA[We]});let vA=te.dtype??Te.dtype;if(typeof vA!="string"&&(vA&&vA.hasOwnProperty(V)?vA=vA[V]:(vA=h.DEFAULT_DEVICE_DTYPE_MAPPING[We]??h.DATA_TYPES.fp32,console.warn(`dtype not specified for "${V}". Using the default dtype (${vA}) for this device (${We}).`))),vA===h.DATA_TYPES.auto){let Dt=Te.dtype;typeof Dt!="string"&&(Dt=Dt==null?void 0:Dt[V]),Dt&&Dt!==h.DATA_TYPES.auto&&h.DATA_TYPES.hasOwnProperty(Dt)?vA=Dt:vA=h.DEFAULT_DEVICE_DTYPE_MAPPING[We]??h.DATA_TYPES.fp32}const TA=vA;if(h.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(TA)){if(TA===h.DATA_TYPES.fp16&&We==="webgpu"&&!await(0,h.isWebGpuFp16Supported)())throw new Error(`The device (${We}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${TA}. Should be one of: ${Object.keys(h.DATA_TYPES).join(", ")}`);const st=Te.kv_cache_dtype,lt=st?typeof st=="string"?st:st[TA]??"float32":void 0;if(lt&&!["float32","float16"].includes(lt))throw new Error(`Invalid kv_cache_dtype: ${lt}. Should be one of: float32, float16`);const dt={dtype:TA,kv_cache_dtype:lt,device:We},Pt=h.DEFAULT_DTYPE_SUFFIX_MAPPING[TA],nt=`${V}${Pt}.onnx`,pt=`${te.subfolder??""}/${nt}`,qA={...te.session_options};qA.executionProviders??(qA.executionProviders=Ze);const yt=Te.free_dimension_overrides;yt?qA.freeDimensionOverrides??(qA.freeDimensionOverrides=yt):We.startsWith("webnn")&&!qA.freeDimensionOverrides&&console.warn(`WebNN does not currently support dynamic shapes and requires 'free_dimension_overrides' to be set in config.json, preferably as a field within config["transformers.js_config"]["device_config"]["${We}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);const Yt=z.apis.IS_NODE_ENV&&z.env.useFSCache,kr=(0,M.getModelFile)(N,pt,!0,te,Yt),yr=te.use_external_data_format??Te.use_external_data_format;let Gr=[];if(yr){let Dt;typeof yr=="object"?yr.hasOwnProperty(nt)?Dt=yr[nt]:yr.hasOwnProperty(V)?Dt=yr[V]:Dt=!1:Dt=yr;const cs=+Dt;if(cs>M.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${cs}) exceeds the maximum allowed value (${M.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let fa=0;fa<cs;++fa){const Ci=`${nt}_data${fa===0?"":"_"+fa}`,Rs=`${te.subfolder??""}/${Ci}`;Gr.push(new Promise(async(va,p0)=>{const bi=await(0,M.getModelFile)(N,Rs,!0,te,Yt);va(bi instanceof Uint8Array?{path:Ci,data:bi}:Ci)}))}}else qA.externalData!==void 0&&(Gr=qA.externalData.map(async Dt=>
2881{if(typeof Dt.data=="string"){const cs=await(0,M.getModelFile)(N,Dt.data,!0,te);return{...Dt,data:cs}}return Dt}));if(Gr.length>0){const Dt=await Promise.all(Gr);z.apis.IS_NODE_ENV||(qA.externalData=Dt)}if(We==="webgpu"){const Dt=(0,g.getCacheShapes)(te.config,{prefix:"present"});if(Object.keys(Dt).length>0&&!(0,p.isONNXProxy)()){const cs={};for(const fa in Dt)cs[fa]="gpu-buffer";qA.preferredOutputLocation=cs}}return{buffer_or_path:await kr,session_options:qA,session_config:dt}}async function ee(N,V,te){return Object.fromEntries(await Promise.all(Object.keys(V).map(async Te=>{const{buffer_or_path:Ye,session_options:We,session_config:Ze}=await y(N,V[Te],te),mA=await(0,p.createInferenceSession)(Ye,We,Ze);return[Te,mA]})))}async function T(N,V,te){return Object.fromEntries(await Promise.all(Object.keys(V).map(async Te=>{const Ye=await(0,M.getModelJSON)(N,V[Te],!1,te);return[Te,Ye]})))}function O(N,V){const te=Object.create(null),Te=[];for(const Ze of N.inputNames){const mA=V[Ze];if(!(mA instanceof v.Tensor)){Te.push(Ze);continue}te[Ze]=(0,p.isONNXProxy)()?mA.clone():mA}if(Te.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${Te.join(", ")}.`);const Ye=Object.keys(V).length,We=N.inputNames.length;if(Ye>We){let Ze=Object.keys(V).filter(mA=>!N.inputNames.includes(mA));console.warn(`WARNING: Too many inputs were provided (${Ye} > ${We}). The following inputs will be ignored: "${Ze.join(", ")}".`)}return te}async function ge(N,V){const te=O(N,V);try{const Te=Object.fromEntries(Object.entries(te).map(([We,Ze])=>[We,Ze.ort_tensor])),Ye=await(0,p.runInferenceSession)(N,Te);return se(Ye)}catch(Te){const Ye=Object.fromEntries(Object.entries(te).map(([We,Ze])=>{const mA={type:Ze.type,dims:Ze.dims,location:Ze.location};return mA.location!=="gpu-buffer"&&(mA.data=Ze.data),[We,mA]}));throw`${Te}`,Te}}function se(N){for(let V in N)(0,p.isONNXTensor)(N[V])?N[V]=new v.Tensor(N[V]):typeof N[V]=="object"&&se(N[V]);return N}function we(N){if(N instanceof v.Tensor)return N;if(N.length===0)throw Error("items must be non-empty");if(Array.isArray(N[0])){if(N.some(V=>V.length!==N[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new v.Tensor("int64",BigInt64Array.from(N.flat().map(V=>BigInt(V))),[N.length,N[0].length])}else return new v.Tensor("int64",BigInt64Array.from(N.map(V=>BigInt(V))),[1,N.length])}function be(N){return new v.Tensor("bool",[N],[1])}async function Be(N,V){let{encoder_outputs:te,input_ids:Te,decoder_input_ids:Ye,...We}=V;if(!te){const mA=(0,k.pick)(V,N.sessions.model.inputNames);te=(await ve(N,mA)).last_hidden_state}return We.input_ids=Ye,We.encoder_hidden_states=te,N.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(We.encoder_attention_mask=V.attention_mask),await je(N,We,!0)}async function ve(N,V){const te=N.sessions.model,Te=(0,k.pick)(V,te.inputNames);if(te.inputNames.includes("inputs_embeds")&&!Te.inputs_embeds){if(!V.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");Te.inputs_embeds=await N.encode_text({input_ids:V.input_ids})}if(te.inputNames.includes("token_type_ids")&&!Te.token_type_ids){if(!Te.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");Te.token_type_ids=(0,v.zeros_like)(Te.input_ids)}if(te.inputNames.includes("pixel_mask")&&!Te.pixel_mask){if(!Te.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");const Ye=Te.pixel_values.dims;Te.pixel_mask=(0,v.ones)([Ye[0],Ye[2],Ye[3]])}return await ge(te,Te)}async function De(N,V){const te=await N.encode(V);return await N.decode(te)}async function je(N,V,te=!1){const Te=N.sessions[te?"decoder_model_merged":"model"],{past_key_values:Ye,...We}=V;if(Te.inputNames.includes("use_cache_branch")&&(We.use_cache_branch=be(!!Ye)),Te.inputNames.includes("position_ids")&&We.attention_mask&&!We.position_ids){const mA=["paligemma","gemma3_text","gemma3"].includes(N.config.model_type)?1:0;We.position_ids=sA(We,Ye,mA)}N.addPastKeyValues(We,Ye);const Ze=(0,k.pick)(We,Te.inputNames);return await ge(Te,Ze)}function Le({modality_token_id:N,inputs_embeds:V,modality_features:te,input_ids:Te,attention_mask:Ye}){const We=Te.tolist().map(TA=>TA.reduce((st,lt,dt)=>(lt==N&&st.push(dt),st),[])),Ze=We.reduce((TA,st)=>TA+st.length,0),mA=te.dims[0];if(Ze!==mA)throw new Error(`Number of tokens and features do not match: tokens: ${Ze}, features ${mA}`);let vA=0;for(let TA=0;TA<We.length;++TA){const st=We[TA],lt=V[TA];for(let dt=0;dt<st.length;++dt)lt[st[dt]].data.set(te[vA++].data)}return{inputs_embeds:V,attention_mask:Ye}}function Pe({image_token_id:N,inputs_embeds:V,image_features:te,input_ids:Te,attention_mask:Ye}){return Le({modality_token_id:N,inputs_embeds:V,modality_features:te,input_ids:Te,attention_mask:Ye})}function me({audio_token_id:N,inputs_embeds:V,audio_features:te,input_ids:Te,attention_mask:Ye}){return Le({modality_token_id:N,inputs_embeds:V,modality_features:te,input_ids:Te,attention_mask:Ye})}async function ie(N,{encode_function:V,merge_function:te,modality_input_name:Te,modality_output_name:Ye,input_ids:We=null,attention_mask:Ze=null,position_ids:mA=null,inputs_embeds:vA=null,past_key_values:TA=null,generation_config:st=null,logits_processor:lt=null,...dt}){const Pt=dt[Te];if(!vA){if(vA=await N.encode_text({input_ids:We,...dt}),Pt&&We.dims[1]!==1){const pt=await V({[Te]:Pt,...dt});({inputs_embeds:vA,attention_mask:Ze}=te({[Ye]:pt,inputs_embeds:vA,input_ids:We,attention_mask:Ze}))}else if(TA&&Pt&&We.dims[1]===1){const pt=We.dims[1],qA=Object.values(TA)[0].dims.at(-2);
2881Ze=(0,v.cat)([(0,v.ones)([We.dims[0],qA]),Ze.slice(null,[Ze.dims[1]-pt,Ze.dims[1]])],1)}}if(!mA&&N.config.model_type==="qwen2_vl"){const{image_grid_thw:pt,video_grid_thw:qA}=dt;[mA]=N.get_rope_index(We,pt,qA,Ze)}return await je(N,{inputs_embeds:vA,past_key_values:TA,attention_mask:Ze,position_ids:mA,generation_config:st,logits_processor:lt},!0)}async function Ie(N,V){return await ie(N,{...V,modality_input_name:"audio_values",modality_output_name:"audio_features",encode_function:N.encode_audio.bind(N),merge_function:N._merge_input_ids_with_audio_features.bind(N)})}async function Fe(N,V){return await ie(N,{...V,modality_input_name:"pixel_values",modality_output_name:"image_features",encode_function:N.encode_image.bind(N),merge_function:N._merge_input_ids_with_image_features.bind(N)})}function xe(N,V=0){const[te,Te]=N.dims,Ye=N.data,We=new BigInt64Array(Ye.length);for(let Ze=0;Ze<te;++Ze){const mA=Ze*Te;let vA=BigInt(V);for(let TA=0;TA<Te;++TA){const st=mA+TA;Ye[st]===0n?We[st]=BigInt(1):(We[st]=vA,vA+=Ye[st])}}return{data:We,dims:N.dims}}function sA(N,V=null,te=0){const{input_ids:Te,inputs_embeds:Ye,attention_mask:We}=N,{data:Ze,dims:mA}=xe(We,te);let vA=new v.Tensor("int64",Ze,mA);if(V){const TA=-(Te??Ye).dims.at(1);vA=vA.slice(null,[TA,null])}return vA}function uA(N,V,te,Te){const Ye=te.past_key_values?Object.values(te.past_key_values)[0].dims.at(-2):0;if(!te.attention_mask){let We;for(const Ze of["input_ids","inputs_embeds","position_ids"])if(te[Ze]){We=te[Ze].dims;break}if(!We)throw new Error("attention_mask is not provided, and unable to infer its shape from model inputs.");te.attention_mask=(0,v.ones)([We[0],Ye+We[1]])}if(te.past_key_values){const{input_ids:We,attention_mask:Ze}=te;Ze&&Ze.dims[1]>We.dims[1]||Ye<We.dims[1]&&(te.input_ids=We.slice(null,[Ye,null]))}return te}function hA(N,V,te,Te){return te.past_key_values&&(V=V.map(Ye=>[Ye.at(-1)])),{...te,decoder_input_ids:we(V)}}function iA(N,...V){return N.config.is_encoder_decoder?hA(N,...V):uA(N,...V)}function ye(N,V,te,Te){const Ye=!!te.past_key_values;return Te.guidance_scale!==null&&Te.guidance_scale>1&&(Ye?te.input_ids=(0,v.cat)([te.input_ids,te.input_ids],0):(te.input_ids=(0,v.cat)([te.input_ids,(0,v.full_like)(te.input_ids,BigInt(Te.pad_token_id))],0),te.attention_mask=(0,v.cat)([te.attention_mask,(0,v.full_like)(te.attention_mask,0n)],0))),(Ye||!te.pixel_values)&&(te.pixel_values=(0,v.full)([0,0,3,384,384],1)),Ye&&(te.images_seq_mask=new v.Tensor("bool",new Array(1).fill(!0).fill(!1,0,1),[1,1]),te.images_emb_mask=new v.Tensor("bool",new Array(0).fill(!1),[1,1,0])),te}class Ae extends C.Callable{constructor(te,Te,Ye){super();Ee(this,"main_input_name","input_ids");Ee(this,"forward_params",["input_ids","attention_mask"]);this.config=te,this.sessions=Te,this.configs=Ye;const We=u.get(this.constructor),Ze=w.get(We);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,Ze){case d.DecoderOnly:this.can_generate=!0,this._forward=je,this._prepare_inputs_for_generation=uA;break;case d.Seq2Seq:case d.Vision2Seq:case d.Musicgen:this.can_generate=!0,this._forward=Be,this._prepare_inputs_for_generation=hA;break;case d.EncoderDecoder:this._forward=Be;break;case d.ImageTextToText:this.can_generate=!0,this._forward=Fe,this._prepare_inputs_for_generation=iA;break;case d.AudioTextToText:this.can_generate=!0,this._forward=Ie,this._prepare_inputs_for_generation=iA;break;case d.Phi3V:case d.ImageAudioTextToText:this.can_generate=!0,this._prepare_inputs_for_generation=iA;break;case d.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=ye;break;case d.AutoEncoder:this._forward=De;break;default:this._forward=ve;break}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){var Te;const te=[];for(const Ye of Object.values(this.sessions))(Te=Ye==null?void 0:Ye.handler)!=null&&Te.dispose&&te.push(Ye.handler.dispose());return await Promise.all(te)}static async from_pretrained(te,{progress_callback:Te=null,config:Ye=null,cache_dir:We=null,local_files_only:Ze=!1,revision:mA="main",model_file_name:vA=null,subfolder:TA="onnx",device:st=null,dtype:lt=null,use_external_data_format:dt=null,session_options:Pt={}}={}){let nt={progress_callback:Te,config:Ye,cache_dir:We,local_files_only:Ze,revision:mA,model_file_name:vA,subfolder:TA,device:st,dtype:lt,use_external_data_format:dt,session_options:Pt};const pt=u.get(this),qA=w.get(pt);Ye=nt.config=await g.AutoConfig.from_pretrained(te,nt);let yt;if(qA===d.DecoderOnly)yt=await Promise.all([ee(te,{model:nt.model_file_name??"model"},nt),T(te,{generation_config:"generation_config.json"},nt)]);else if(qA===d.Seq2Seq||qA===d.Vision2Seq)yt=await Promise.all([ee(te,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},nt),T(te,{generation_config:"generation_config.json"},nt)]);else if(qA===d.MaskGeneration)yt=await Promise.all([ee(te,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},nt)]);else if(qA===d.EncoderDecoder)yt=await Promise.all([ee(te,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},nt)]);else if(qA===d.ImageTextToText){const Yt={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};Ye.is_encoder_decoder&&(Yt.model="encoder_model"),yt=await Promise.all([ee(te,Yt,nt),T(te,{generation_config:"generation_config.json"},nt)])}else if(qA===d.AudioTextToText){const Yt={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};yt=await Promise.all([ee(te,Yt,nt),T(te,{generation_config:"generation_config.json"},nt)])}else if(qA===d.ImageAudioTextToText){const Yt={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};yt=await Promise.all([ee(te,Yt,nt),T(te,{generation_config:"generation_config.json"},nt)])}else if(qA===d.Musicgen)yt=await Promise.all([ee(te,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},nt),T(te,{generation_config:"generation_config.json"},nt)]);else if(qA===d.MultiModality)yt=await Promise.all([ee(te,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"language_model",lm_head:"lm_head",gen_head:"gen_head",gen_img_embeds:"gen_img_embeds",image_decode:"image_decode"},nt),T(te,{generation_config:"generation_config.json"},nt)]);else if(qA===d.Phi3V)yt=await Promise.all([ee(te,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},nt),T(te,{generation_config:"generation_config.json"},nt)]);else if(qA===d.AutoEncoder)yt=await Promise.all([ee(te,{encoder_model:"encoder_model",decoder_model:"decoder_model"},nt)]);else if(qA===d.Supertonic)yt=await Promise.all([ee(te,{text_encoder:"text_encoder",latent_denoiser:"latent_denoiser",voice_decoder:"voice_decoder"},nt)]);else{if(qA!==d.EncoderOnly){const Yt=pt??(Ye==null?void 0:Ye.model_type);Yt!=="custom"&&console.warn(`Model type for '${Yt}' not found, assuming encoder-only architecture. Please report this at ${E.GITHUB_ISSUE_URL}.`)}yt=await Promise.all([ee(te,{model:nt.model_file_name??"model"},nt)])}return new this(Ye,...yt)}async _call(te){return await this.forward(te)}async forward(te){return await this._forward(this,te)}get generation_config(){var te;return((te=this.configs)==null?void 0:te.generation_config)??null}_get_logits_processor(te,Te,Ye=null){const We=new D.LogitsProcessorList;if(te.repetition_penalty!==null&&te.repetition_penalty!==1&&We.push(new D.RepetitionPenaltyLogitsProcessor(te.repetition_penalty)),te.no_repeat_ngram_size!==null&&te.no_repeat_ngram_size>0&&We.push(new D.NoRepeatNGramLogitsProcessor(te.no_repeat_ngram_size)),te.bad_words_ids!==null&&We.push(new D.NoBadWordsLogitsProcessor(te.bad_words_ids,te.eos_token_id)),te.min_length!==null&&te.eos_token_id!==null&&te.min_length>0&&We.push(new D.MinLengthLogitsProcessor(te.min_length,te.eos_token_id)),te.min_new_tokens!==null&&te.eos_token_id!==null&&te.min_new_tokens>0&&We.push(new D.MinNewTokensLengthLogitsProcessor(Te,te.min_new_tokens,te.eos_token_id)),te.forced_bos_token_id!==null&&We.push(new D.ForcedBOSTokenLogitsProcessor(te.forced_bos_token_id)),te.forced_eos_token_id!==null&&We.push(new D.ForcedEOSTokenLogitsProcessor(te.max_length,te.forced_eos_token_id)),te.begin_suppress_tokens!==null){const Ze=Te>1||te.forced_bos_token_id===null?Te:Te+1;We.push(new D.SuppressTokensAtBeginLogitsProcessor(te.begin_suppress_tokens,Ze))}
2881return te.guidance_scale!==null&&te.guidance_scale>1&&We.push(new D.ClassifierFreeGuidanceLogitsProcessor(te.guidance_scale)),te.temperature===0&&te.do_sample&&(console.warn("`do_sample` changed to false because `temperature: 0` implies greedy sampling (always selecting the most likely token), which is incompatible with `do_sample: true`."),te.do_sample=!1),te.do_sample&&te.temperature!==null&&te.temperature!==1&&We.push(new D.TemperatureLogitsWarper(te.temperature)),Ye!==null&&We.extend(Ye),We}_prepare_generation_config(te,Te,Ye=B.GenerationConfig){const We={...this.config};for(const mA of["decoder","generator","text_config"])mA in We&&Object.assign(We,We[mA]);const Ze=new Ye(We);return Object.assign(Ze,this.generation_config??{}),te&&Object.assign(Ze,te),Te&&Object.assign(Ze,(0,k.pick)(Te,Object.getOwnPropertyNames(Ze))),Ze}_get_stopping_criteria(te,Te=null){const Ye=new R.StoppingCriteriaList;return te.max_length!==null&&Ye.push(new R.MaxLengthCriteria(te.max_length,this.config.max_position_embeddings??null)),te.eos_token_id!==null&&Ye.push(new R.EosTokenCriteria(te.eos_token_id)),Te&&Ye.extend(Te),Ye}_validate_model_class(){if(!this.can_generate){const te=[zl,Nl,_l,Ol],Te=u.get(this.constructor),Ye=new Set,We=this.config.model_type;for(const mA of te){const vA=mA.get(We);vA&&Ye.add(vA[0])}let Ze=`The current model class (${Te}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw Ye.size>0&&(Ze+=` Please use the following class instead: ${[...Ye].join(", ")}`),Error(Ze)}}prepare_inputs_for_generation(...te){return this._prepare_inputs_for_generation(this,...te)}_update_model_kwargs_for_generation({generated_input_ids:te,outputs:Te,model_inputs:Ye,is_encoder_decoder:We}){return Ye.past_key_values=this.getPastKeyValues(Te,Ye.past_key_values),Ye.input_ids=new v.Tensor("int64",te.flat(),[te.length,1]),We||(Ye.attention_mask=(0,v.cat)([Ye.attention_mask,(0,v.ones)([Ye.attention_mask.dims[
28810],1])],1)),Ye.position_ids=null,Ye}_prepare_model_inputs({inputs:te,bos_token_id:Te,model_kwargs:Ye}){const We=(0,k.pick)(Ye,this.forward_params),Ze=this.main_input_name;if(Ze in We){if(te)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else We[Ze]=te;return{inputs_tensor:We[Ze],model_inputs:We,model_input_name:Ze}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:te,model_inputs:Te,model_input_name:Ye,generation_config:We}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!Te.inputs_embeds&&"_prepare_inputs_embeds"in this){const{input_ids:mA,pixel_values:vA,attention_mask:TA,...st}=Te,lt=await this._prepare_inputs_embeds(Te);Te={...st,...(0,k.pick)(lt,["inputs_embeds","attention_mask"])}}let{last_hidden_state:Ze}=await ve(this,Te);if(We.guidance_scale!==null&&We.guidance_scale>1)Ze=(0,v.cat)([Ze,(0,v.full_like)(Ze,0)],0),"attention_mask"in Te&&(Te.attention_mask=(0,v.cat)([Te.attention_mask,(0,v.zeros_like)(Te.attention_mask)],0));else if(Te.decoder_input_ids){const mA=we(Te.decoder_input_ids).dims[0];if(mA!==Ze.dims[0]){if(Ze.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${Ze.dims[0]}) than the decoder inputs (${mA}).`);Ze=(0,v.cat)(Array.from({length:mA},()=>Ze),0)}}return Te.encoder_outputs=Ze,Te}_prepare_decoder_input_ids_for_generation({batch_size:te,model_input_name:Te,model_kwargs:Ye,decoder_start_token_id:We,bos_token_id:Ze,generation_config:mA}){let{decoder_input_ids:vA,...TA}=Ye;if(!(vA instanceof v.Tensor)){if(vA)Array.isArray(vA[0])||(vA=Array.from({length:te},()=>vA));else if(We??(We=Ze),this.config.model_type==="musicgen")vA=Array.from({length:te*this.config.decoder.num_codebooks},()=>[We]);else if(Array.isArray(We)){if(We.length!==te)throw new Error(`\`decoder_start_token_id\` expcted to have length ${te} but got ${We.length}`);vA=We}else vA=Array.from({length:te},()=>[We]);vA=we(vA)}return Ye.decoder_attention_mask=(0,v.ones_like)(vA),{input_ids:vA,model_inputs:TA}}async generate({inputs:te=null,generation_config:Te=null,logits_processor:Ye=null,stopping_criteria:We=null,streamer:Ze=null,...mA}){this._validate_model_class(),Te=this._prepare_generation_config(Te,mA);let{inputs_tensor:vA,model_inputs:TA,model_input_name:st}=this._prepare_model_inputs({inputs:te,model_kwargs:mA});const lt=this.config.is_encoder_decoder;lt&&("encoder_outputs"in TA||(TA=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:vA,model_inputs:TA,model_input_name:st,generation_config:Te})));let dt;lt?{input_ids:dt,model_inputs:TA}=this._prepare_decoder_input_ids_for_generation({batch_size:TA[st].dims.at(0),model_input_name:st,model_kwargs:TA,decoder_start_token_id:Te.decoder_start_token_id,bos_token_id:Te.bos_token_id,generation_config:Te}):dt=TA[st];let Pt=dt.dims.at(-1);Te.max_new_tokens!==null&&(Te.max_length=Pt+Te.max_new_tokens);const nt=this._get_logits_processor(Te,Pt,Ye),pt=this._get_stopping_criteria(Te,We),qA=TA[st].dims.at(0),yt=X.LogitsSampler.getSampler(Te),Yt=new Array(qA).fill(0),kr=dt.tolist();Ze&&Ze.put(kr);let yr,Gr={};for(;;){if(TA=this.prepare_inputs_for_generation(kr,TA,Te),yr=await this.forward(TA),Te.output_attentions&&Te.return_dict_in_generate){const Rs=this.getAttentions(yr);for(const va in Rs)va in Gr||(Gr[va]=[]),Gr[va].push(Rs[va])}const Dt=yr.logits.slice(null,-1,null),cs=nt(kr,Dt),fa=[];for(let Rs=0;Rs<cs.dims.at(0);++Rs){const va=cs[Rs],p0=await yt(va);for(const[bi,m0]of p0){const h0=BigInt(bi);Yt[Rs]+=m0,kr[Rs].push(h0),fa.push([h0]);break}}if(Ze&&Ze.put(fa),pt(kr).every(Rs=>Rs))break;TA=this._update_model_kwargs_for_generation({generated_input_ids:fa,outputs:yr,model_inputs:TA,is_encoder_decoder:lt})}Ze&&Ze.end();const rs=this.getPastKeyValues(yr,TA.past_key_values,!0),hs=new v.Tensor("int64",kr.flat(),[kr.length,kr[0].length]);if(Te.return_dict_in_generate)return{sequences:hs,past_key_values:rs,...Gr};for(const Dt of Object.values(yr))Dt.location==="gpu-buffer"&&Dt.dispose();return hs}getPastKeyValues(te,Te,Ye=!1){const We=Object.create(null);for(const Ze in te)if(Ze.startsWith("present")){const mA=Ze.replace("present_conv","past_conv").replace("present","past_key_values"),vA=Ze.includes("encoder");if(vA&&Te?We[mA]=Te[mA]:We[mA]=te[Ze],Te&&(!vA||Ye)){const TA=Te[mA];TA.location==="gpu-buffer"&&TA.dispose()}}return We}getAttentions(te){const Te={};for(const Ye of["cross_attentions","encoder_attentions","decoder_attentions"])for(const We in te)We.startsWith(Ye)&&(Ye in Te||(Te[Ye]=[]),Te[Ye].push(te[We]));return Te}addPastKeyValues(te,Te){var Ye,We,Ze;if(Te)Object.assign(te,Te);else{const mA=this.sessions.decoder_model_merged??this.sessions.model,vA=((We=(Ye=te[this.main_input_name]??te.attention_mask)==null?void 0:Ye.dims)==null?void 0:We[0])??1,TA=((Ze=mA==null?void 0:mA.config)==null?void 0:Ze.kv_cache_dtype)??"float32",st=TA==="float16"?v.DataTypeMap.float16:v.DataTypeMap.float32,lt=(0,g.getCacheShapes)(this.config,{batch_size:vA});for(const dt in lt){const Pt=lt[dt].reduce((nt,pt)=>nt*pt,1);te[dt]=new v.Tensor(TA,new st(Pt),lt[dt])}}}async encode_image({pixel_values:te}){return(await ge(this.sessions.vision_encoder,{pixel_values:te})).image_features}async encode_text({input_ids:te}){return(await ge(this.sessions.embed_tokens,{input_ids:te})).inputs_embeds}async encode_audio({audio_values:te}){return(await ge(this.sessions.audio_encoder,{audio_values:te})).audio_features}}class Re{}class qe extends Re{constructor({last_hidden_state:V,hidden_states:te=null,attentions:Te=null}){super(),this.last_hidden_state=V,this.hidden_states=te,this.attentions=Te}}class Ue extends Ae{}class rA extends Ue{}class aA extends Ue{async _call(V){return new ms(await super._call(V))}}class Y extends Ue{async _call(V){return new ht(await super._call(V))}}class cA extends Ue{async _call(V){return new ls(await super._call(V))}}class He extends Ue{async _call(V){return new Ds(await super._call(V))}}class ce extends Ae{}class MA extends ce{}class nA extends ce{async _call(V){return new ms(await super._call(V))}}class DA extends ce{async _call(V){return new ht(await super._call(V))}}class IA extends ce{async _call(V){return new ls(await super._call(V))}}class ot extends ce{async _call(V){return new Ds(await super._call(V))}}class BA extends Ae{}class tA extends BA{}class lA extends BA{async _call(V){return new ms(await super._call(V))}}class KA extends BA{async _call(V){return new ht(await super._call(V))}}class JA extends BA{async _call(V){return new ls(await super._call(V))}}class RA extends Ae{}class ZA extends RA{}class Zt extends RA{}class Sr extends Ae{}class ft extends Sr{}class ds extends Ae{}class ea extends ds{}class Aa extends ds{async _call(V){return new ms(await super._call(V))}}class Ts extends ds{async _call(V){return new ht(await super._call(V))}}class Er extends ds{async _call(V){return new ls(await super._call(V))}}class $r extends ds{async _call(V){return new Ds(await super._call(V))}}class Ss extends Ae{}class xt extends Ss{}class UA extends Ss{async _call(V){return new ms(await super._call(V))}}class ta extends Ss{async _call(V){return new ht(await super._call(V))}}class Os extends Ss{async _call(V){return new ls(await super._call(V))}}class Jt extends Ss{async _call(V){return new Ds(await super._call(V))}}class bs extends Ae{}class mt extends bs{}class Ws extends bs{async _call(V){return new ms(await super._call(V))}}class H extends bs{async _call(V){return new ht(await super._call(V))}}class ue extends bs{async _call(V){return new ls(await super._call(V))}}class ae extends bs{async _call(V){return new Ds(await super._call(V))}}class pe extends Ae{}class ke extends pe{}class _e extends pe{async _call(V){return new ms(await super._call(V))}}class eA extends pe{async _call(V){return new ht(await super._call(V))}}class FA extends pe{async _call(V){return new ls(await super._call(V))}}class NA extends pe{async _call(V){return new Ds(await super._call(V))}}class SA extends Ae{}class gt extends SA{}class YA extends SA{async _call(V){return new ms(await super._call(V))}}class vt extends SA{async _call(V){return new ht(await super._call(V))}}class OA extends SA{async _call(V){return new ls(await super._call(V))}}class Bt extends SA{async _call(V){return new Ds(await super._call(V))}}class zt extends Ae{}class es extends zt{}class Cr extends zt{async _call(V){return new ms(await super._call(V))}}class Kr extends zt{async _call(V){return new ht(await super._call(V))}}class ur extends zt{async _call(V){return new ls(await super._call(V))}}class Vs extends zt{async _call(V){return new Ds(await super._call(V))}}class Tr extends Ae{}class ha extends Tr{}class ks extends Tr{async _call(V){return new ht(await super._call(V))}}class ss extends Tr{async _call(V){return new ls(await super._call(V))}}class as extends Tr{async _call(V){return new Ds(await super._call(V))}}class fr extends Tr{async _call(V){return new ms(await super._call(V))}}class LA extends Ae{}class Vr extends LA{}class fs extends LA{async _call(V){return new ms(await super._call(V))}}class ra extends LA{async _call(V){return new ht(await super._call(V))}}class Ys extends LA{async _call(V){return new ls(await super._call(V))}}class _s extends Ae{}class _r extends _s{}class pA extends _s{async _call(V){return new ms(await super._call(V))}}class CA extends _s{async _call(V){return new ht(await super._call(V))}}class _A extends _s{async _call(V){return new Ds(await super._call(V))}}class Rt extends Ae{}class Ca extends Rt{}class sa extends Rt{async _call(V){return new ms(await super._call(V))}}class Hs extends Rt{async _call(V){return new ht(await super._call(V))}}class Wa extends Rt{async _call(V){return new ls(await super._call(V))}}class Ne extends Rt{async _call(V){return new Ds(await super._call(V))}}class J extends Ae{}class de extends J{}class he extends J{async _call(V){return new ms(await super._call(V))}}class Ge extends J{async _call(V){return new ht(await super._call(V))}}class ze extends J{async _call(V){return new Ds(await super._call(V))}}class $e extends Ae{}class wA extends $e{}class xA extends $e{async _call(V){return new ht(await super._call(V))}}class Xe extends $e{async _call(V){return new Ds(await super._call(V))}}class QA extends $e{async _call(V){return new ms(await super._call(V))}}class it extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"])}}class St extends it{}class Ft extends it{}class gr extends Ae{}class Ht extends gr{}class er extends gr{}class pr extends Ae{}class Ar extends pr{}class Pr extends pr{}class sr extends Ae{}class Ms extends sr{}class tr extends sr{}class br extends sr{async _call(V){return new ht(await super._call(V))}}class Qt extends Ae{}class mr extends Qt{}class Us extends Qt{}class vr extends Qt{async _call(V){return new ht(await super._call(V))}}class Es extends Qt{}class hr extends Ae{}class Ir extends hr{}class WA extends hr{}class Mt extends Ae{}class zr extends Mt{}class ba extends Mt{}class aa extends Ae{}class si extends aa{}class ai extends aa{async _call(V){return new ms(await super._call(V))}}class Ia extends aa{async _call(V){return new ht(await super._call(V))}}class Pn extends aa{async _call(V){return new ls(await super._call(V))}}class ni extends aa{async _call(V){return new Ds(await super._call(V))}}class na extends Ae{}class Va extends na{}class Nr extends na{async _call(V){return new ms(await super._call(V))}}class PA extends na{async _call(V){return new ht(await super._call(V))}}class gs extends na{async _call(V){return new ls(await super._call(V))}}class Gn extends na{async _call(V){return new Ds(await super._call(V))}}class ia extends Ae{}class ii extends ia{}class oi extends ia{async _call(V){return new ms(await super._call(V))}}class li extends ia{async _call(V){return new ht(await super._call(V))}}class Qn extends ia{async _call(V){return new ls(await super._call(V))}}class Fn extends ia{async _call(V){return new Ds(await super._call(V))}}class wa extends Ae{}class jt extends wa{}class Sn extends wa{}class ln extends Ae{constructor(){super(...arguments);Ee(this,"requires_attention_mask",!1);
2881Ee(this,"main_input_name","input_features");Ee(this,"forward_params",["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"])}}class oa extends ln{}class vs extends ln{_prepare_generation_config(V,te){return super._prepare_generation_config(V,te,L.WhisperGenerationConfig)}_retrieve_init_tokens(V){const te=[V.decoder_start_token_id];let Te=V.language;const Ye=V.task;if(V.is_multilingual){Te||(console.warn("No language specified - defaulting to English (en)."),Te="en");const Ze=`<|${(0,K.whisper_language_to_code)(Te)}|>`;te.push(V.lang_to_id[Ze]),te.push(V.task_to_id[Ye??"transcribe"])}else if(Te||Ye)throw new Error("Cannot specify `task` or `language` for an English-only model. If the model is intended to be multilingual, pass `is_multilingual=true` to generate, or update the generation config.");return!V.return_timestamps&&V.no_timestamps_token_id&&te.at(-1)!==V.no_timestamps_token_id?te.push(V.no_timestamps_token_id):V.return_timestamps&&te.at(-1)===V.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),te.pop()),te.filter(We=>We!=null)}async generate({inputs:V=null,generation_config:te=null,logits_processor:Te=null,stopping_criteria:Ye=null,...We}){te=this._prepare_generation_config(te,We);const Ze=We.decoder_input_ids??this._retrieve_init_tokens(te);if(te.return_timestamps&&(Te??(Te=new D.LogitsProcessorList),Te.push(new D.WhisperTimeStampLogitsProcessor(te,Ze))),te.begin_suppress_tokens&&(Te??(Te=new D.LogitsProcessorList),Te.push(new D.SuppressTokensAtBeginLogitsProcessor(te.begin_suppress_tokens,Ze.length))),te.return_token_timestamps){if(!te.alignment_heads)throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");te.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),te.output_attentions=!0,te.return_dict_in_generate=!0}const mA=await super.generate({inputs:V,generation_config:te,logits_processor:Te,decoder_input_ids:Ze,...We});return te.return_token_timestamps&&(mA.token_timestamps=this._extract_token_timestamps(mA,te.alignment_heads,te.num_frames)),mA}_extract_token_timestamps(V,te,Te=null,Ye=.02){if(!V.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");Te==null&&console.warn("`num_frames` has not been set, meaning the entire audio will be analyzed. This may lead to inaccurate token-level timestamps for short audios (< 30 seconds).");let We=this.config.median_filter_width;We===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),We=7);const Ze=V.cross_attentions,mA=Array.from({length:this.config.decoder_layers},(pt,qA)=>(0,v.cat)(Ze.map(yt=>yt[qA]),2)),vA=(0,v.stack)(te.map(([pt,qA])=>{if(pt>=mA.length)throw new Error(`Layer index ${pt} is out of bounds for cross attentions (length ${mA.length}).`);return Te?mA[pt].slice(null,qA,null,[0,Te]):mA[pt].slice(null,qA)})).transpose(1,0,2,3),[TA,st]=(0,v.std_mean)(vA,-2,0,!0),lt=vA.clone();for(let pt=0;pt<lt.dims[0];++pt){const qA=lt[pt];for(let yt=0;yt<qA.dims[0];++yt){const Yt=qA[yt],kr=TA[pt][yt][0].data,yr=st[pt][yt][0].data;for(let Gr=0;Gr<Yt.dims[0];++Gr){let rs=Yt[Gr].data;for(let hs=0;hs<rs.length;++hs)rs[hs]=(rs[hs]-yr[hs])/kr[hs];rs.set((0,F.medianFilter)(rs,We))}}}const dt=[(0,v.mean)(lt,1)],Pt=V.sequences.dims,nt=new v.Tensor("float32",new Float32Array(Pt[0]*Pt[1]),Pt);for(let pt=0;pt<Pt[0];++pt){const qA=dt[pt].neg().squeeze_(0),[yt,Yt]=(0,F.dynamic_time_warping)(qA.tolist()),kr=Array.from({length:yt.length-1},(rs,hs)=>yt[hs+1]-yt[hs]),yr=(0,k.mergeArrays)([1],kr).map(rs=>!!rs),Gr=[];for(let rs=0;rs<yr.length;++rs)yr[rs]&&Gr.push(Yt[rs]*Ye);nt[pt].data.set(Gr,1)}return nt}}class zs extends vs{}class Ya extends Ae{constructor(){super(...arguments);Ee(this,"requires_attention_mask",!1);
2881Ee(this,"main_input_name","input_values");Ee(this,"forward_params",["input_values","decoder_input_ids","past_key_values"])}}class ci extends Ya{}class ka extends Ya{}class cn extends Ae{constructor(){super(...arguments);Ee(this,"main_input_name","pixel_values");Ee(this,"forward_params",["pixel_values","decoder_input_ids","encoder_hidden_states","past_key_values"])}}class Ha extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","attention_mask","pixel_values","position_ids","past_key_values"])}}class Da extends Ha{_merge_input_ids_with_image_features(V){const te=V.image_features.dims.at(-1),Te=V.image_features.view(-1,te);return Pe({image_token_id:this.config.image_token_index,...V,image_features:Te})}}class dA extends Da{}class ui extends Da{}class GA extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","inputs_embeds","attention_mask","pixel_values","encoder_outputs","decoder_input_ids","decoder_inputs_embeds","decoder_attention_mask","past_key_values"]);Ee(this,"main_input_name","inputs_embeds")}}class un extends GA{_merge_input_ids_with_image_features({inputs_embeds:V,image_features:te,input_ids:Te,attention_mask:Ye}){return{inputs_embeds:(0,v.cat)([te,V],1),attention_mask:(0,v.cat)([(0,v.ones)(te.dims.slice(0,2)),Ye],1)}}async _prepare_inputs_embeds({input_ids:V,pixel_values:te,inputs_embeds:Te,attention_mask:Ye}){if(!V&&!te)throw new Error("Either `input_ids` or `pixel_values` should be provided.");let We,Ze;return V&&(We=await this.encode_text({input_ids:V})),te&&(Ze=await this.encode_image({pixel_values:te})),We&&Ze?{inputs_embeds:Te,attention_mask:Ye}=this._merge_input_ids_with_image_features({inputs_embeds:We,image_features:Ze,input_ids:V,attention_mask:Ye}):Te=We||Ze,{inputs_embeds:Te,attention_mask:Ye}}async forward({input_ids:V,pixel_values:te,attention_mask:Te,decoder_input_ids:Ye,decoder_attention_mask:We,encoder_outputs:Ze,past_key_values:mA,inputs_embeds:vA,decoder_inputs_embeds:TA}){if(vA||({inputs_embeds:vA,attention_mask:Te}=await this._prepare_inputs_embeds({input_ids:V,pixel_values:te,inputs_embeds:vA,attention_mask:Te})),!Ze){let{last_hidden_state:dt}=await ve(this,{inputs_embeds:vA,attention_mask:Te});Ze=dt}if(!TA){if(!Ye)throw new Error("Either `decoder_input_ids` or `decoder_inputs_embeds` should be provided.");TA=await this.encode_text({input_ids:Ye})}return await je(this,{inputs_embeds:TA,attention_mask:We,encoder_attention_mask:Te,encoder_hidden_states:Ze,past_key_values:mA},!0)}}class dn extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","attention_mask","pixel_values","position_ids","past_key_values"])}}class Xr extends dn{_merge_input_ids_with_image_features(V){const te=V.image_features.dims.at(-1),Te=V.image_features.view(-1,te);return Pe({image_token_id:this.config.image_token_index,...V,image_features:Te})}}class ns extends Ha{_merge_input_ids_with_image_features(V){const te=V.image_features.dims.at(-1),Te=V.image_features.view(-1,te);return Pe({image_token_id:this.config.image_token_index,...V,image_features:Te})}}class Ua extends ns{}class Ka extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","attention_mask","inputs_embeds","per_layer_inputs","position_ids","pixel_values","input_features","input_features_mask","past_key_values"])}}class Ma extends Ka{async forward({input_ids:V=null,attention_mask:te=null,pixel_values:Te=null,input_features:Ye=null,input_features_mask:We=null,position_ids:Ze=null,inputs_embeds:mA=null,per_layer_inputs:vA=null,past_key_values:TA=null,generation_config:st=null,logits_processor:lt=null,...dt}){if((!mA||!vA)&&({inputs_embeds:mA,per_layer_inputs:vA}=await ge(this.sessions.embed_tokens,{input_ids:V}),V.dims[1]!==1)){if(Te){const{image_features:nt}=await ge(this.sessions.vision_encoder,{pixel_values:Te});({inputs_embeds:mA,attention_mask:te}=this._merge_input_ids_with_image_features({image_features:nt,inputs_embeds:mA,input_ids:V,attention_mask:te}))}if(Ye){const{audio_features:nt}=await ge(this.sessions.audio_encoder,{input_features:Ye,input_features_mask:We});({inputs_embeds:mA,attention_mask:te}=this._merge_input_ids_with_audio_features({audio_features:nt,inputs_embeds:mA,input_ids:V,attention_mask:te}))}}return await je(this,{inputs_embeds:mA,per_layer_inputs:vA,past_key_values:TA,attention_mask:te,position_ids:Ze,generation_config:st,logits_processor:lt},!0)}_merge_input_ids_with_image_features(V){const te=V.image_features.dims.at(-1),Te=V.image_features.view(-1,te);return Pe({image_token_id:this.config.image_token_id,...V,image_features:Te})}_merge_input_ids_with_audio_features(V){const te=V.audio_features.dims.at(-1),Te=V.audio_features.view(-1,te);return me({audio_token_id:this.config.audio_token_id,...V,audio_features:Te})}}class ar extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","attention_mask","pixel_values","pixel_attention_mask","position_ids","past_key_values"])}}class Xa extends ar{async encode_image({pixel_values:V,pixel_attention_mask:te}){return(await ge(this.sessions.vision_encoder,{pixel_values:V,pixel_attention_mask:te})).image_features}_merge_input_ids_with_image_features(V){const te=V.image_features.dims.at(-1),Te=V.image_features.view(-1,te);return Pe({image_token_id:this.config.image_token_id,...V,image_features:Te})}}class On extends Xa{}class Za extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","inputs_embeds","attention_mask","position_ids","pixel_values","image_sizes","past_key_values"])}}class Ks extends Za{async forward({input_ids:V=null,attention_mask:te=null,pixel_values:Te=null,image_sizes:Ye=null,position_ids:We=null,inputs_embeds:Ze=null,past_key_values:mA=null,generation_config:vA=null,logits_processor:TA=null,...st}){if(!Ze){let dt;if(Te&&V.dims[1]!==1){if(!Ye)throw new Error("`image_sizes` must be provided when `pixel_values` is provided.");({image_features:dt}=await ge(this.sessions.vision_encoder,{pixel_values:Te,image_sizes:Ye}))}else{const Pt=this.config.normalized_config.hidden_size;dt=new v.Tensor("float32",[],[0,Pt])}({inputs_embeds:Ze}=await ge(this.sessions.prepare_inputs_embeds,{input_ids:V,image_features:dt}))}return await je(this,{inputs_embeds:Ze,past_key_values:mA,attention_mask:te,position_ids:We,generation_config:vA,logits_processor:TA},!1)}}class Xs extends Ae{}class fn extends Xs{}class Ja extends Xs{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"text_model"})}}class EA extends Xs{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"text_model"})}}class Ps extends Xs{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"vision_model"})}}class _n extends Xs{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"vision_model"})}}class zn extends Ae{}class qa extends zn{}class Ea extends zn{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"text_model"})}}class Nn extends Xs{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"vision_model"})}}class $a extends Ae{}class et extends $a{}class en extends Ae{}class Ln extends en{async forward(V){const te=!V.input_ids,Te=!V.pixel_values;if(te&&Te)throw new Error("Either `input_ids` or `pixel_values` should be provided.");if(te&&(V.input_ids=(0,v.ones)([V.pixel_values.dims[0],1])),Te){const{image_size:TA}=this.config.vision_config;V.pixel_values=(0,v.full)([0,3,TA,TA],0)}const{text_embeddings:Ye,image_embeddings:We,l2norm_text_embeddings:Ze,l2norm_image_embeddings:mA}=await super.forward(V),vA={};return te||(vA.text_embeddings=Ye,vA.l2norm_text_embeddings=Ze),Te||(vA.image_embeddings=We,vA.l2norm_image_embeddings=mA),vA}}class Rn extends en{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"text_model"})}}class wr extends en{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"vision_model"})}}class xs extends Ae{}class An extends xs{}class at extends xs{}class Gs extends Ae{}class gn extends Gs{}class Ns extends Gs{}class tn extends Ae{}class Lr extends tn{}class Zs extends tn{}class Or extends Ae{}class Bs extends Or{}class rn extends Or{}class Ta extends Ae{}class jn extends Ta{}class pn extends Ta{}class nr extends Ae{}class Pa extends nr{}class Wn extends nr{}class Zr extends Ae{}class G extends Zr{}class j extends Zr{}class q extends Ae{}class ne extends q{}class fe extends q{}class Se extends Ae{}class Ke extends Se{}class fA extends Se{}class yA extends Ae{}class VA extends yA{}class ut extends Ae{}class bt extends ut{}class Nt extends ut{}class Tt extends Ae{}class la extends Tt{}class mn extends Tt{}class Vn extends Ae{}class ys extends Vn{}class di extends Vn{}class zi extends Ae{}class ca extends zi{}class mo extends zi{}class fi extends Ae{}class Ni extends fi{}class hn extends fi{}class Li extends Ae{}class ho extends Li{}class Co extends Li{}class As extends Ae{}class Yn extends As{}class is extends As{}class gi extends Ae{}class pi extends gi{}class bo extends gi{}class rr extends Ae{}class Ri extends rr{}class sn extends rr{}class an extends Ae{}class Io extends an{}class wo extends an{}class mi extends Ae{}class ko extends mi{}class nn extends mi{}class Ls extends Ae{}class ji extends Ls{}class hi extends Ls{}class Yr extends Ae{}class Vt extends Yr{}class Hn extends Yr{}class Wi extends Ae{}class Vi extends Wi{}class Mo extends Wi{}class Yi extends Ae{}class Eo extends Yi{}class Hi extends Yi{}class Ui extends Ae{}class vo extends Ui{}class Ki extends Ui{}class Un extends Ae{}class ts extends Un{}class Xi extends Un{}class Zi extends Ae{}class Cn extends Zi{}class xo extends Zi{}class bn extends Ae{}class At extends bn{}class A extends bn{}class t extends Ae{}class r extends t{}class s extends t{}class o extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","attention_mask","position_ids","past_key_values","pixel_values","image_grid_thw"])}}class l extends o{get_rope_index(V,te,Te,Ye){const{vision_config:We,image_token_id:Ze,video_token_id:mA,vision_start_token_id:vA}=this.config,TA=We.spatial_merge_size??2,st=[];if(te||Te){let lt=V.tolist();Ye||(Ye=(0,v.ones_like)(V));const dt=Ye.tolist(),Pt=Array.from({length:3},Yt=>
2881Array.from({length:V.dims[0]},kr=>Array.from({length:V.dims[1]},yr=>1))),nt=te?te.tolist():[],pt=Te?Te.tolist():[];let qA=0,yt=0;for(let Yt=0;Yt<lt.length;++Yt){const kr=lt[Yt].filter((Qr,us)=>dt[Yt][us]==1),Gr=kr.reduce((Qr,us,Jn)=>(us==vA&&Qr.push(Jn),Qr),[]).map(Qr=>kr[Qr+1]),rs=Gr.filter(Qr=>Qr==Ze).length,hs=Gr.filter(Qr=>Qr==mA).length;let Dt=[],cs=0,fa=rs,Ci=hs;for(let Qr=0;Qr<Gr.length;++Qr){const us=kr.findIndex((wi,Ga)=>Ga>cs&&wi==Ze),Jn=kr.findIndex((wi,Ga)=>Ga>cs&&wi==mA),Ii=fa>0&&us!==-1?us:kr.length+1,eo=Ci>0&&Jn!==-1?Jn:kr.length+1;let C0,Rl,jl,Wl;Ii<eo?([Rl,jl,Wl]=nt[qA],++qA,--fa,C0=Ii):([Rl,jl,Wl]=pt[yt],++yt,--Ci,C0=eo);const[wI,Vl,b0]=[Number(Rl),Math.floor(Number(jl)/TA),Math.floor(Number(Wl)/TA)],Yl=C0-cs,fg=Dt.length>0?(0,F.max)(Dt.at(-1))[0]+1:0;Dt.push(Array.from({length:3*Yl},(wi,Ga)=>fg+Ga%Yl));const Hl=Yl+fg,I0=wI*Vl*b0,kI=Array.from({length:I0},(wi,Ga)=>Hl+Math.floor(Ga/(Vl*b0))),MI=Array.from({length:I0},(wi,Ga)=>Hl+Math.floor(Ga/b0)%Vl),EI=Array.from({length:I0},(wi,Ga)=>Hl+Ga%b0);Dt.push([kI,MI,EI].flat()),cs=C0+I0}if(cs<kr.length){const Qr=Dt.length>0?(0,F.max)(Dt.at(-1))[0]+1:0,us=kr.length-cs;Dt.push(Array.from({length:3*us},(Jn,Ii)=>Qr+Ii%us))}const Rs=Dt.reduce((Qr,us)=>Qr+us.length,0),va=new Array(Rs);let p0=0;for(let Qr=0;Qr<3;++Qr)for(let us=0;us<Dt.length;++us){const Jn=Dt[us],Ii=Jn.length/3;for(let eo=Qr*Ii;eo<(Qr+1)*Ii;++eo)va[p0++]=Jn[eo]}let bi=0;const m0=dt[Yt];for(let Qr=0;Qr<m0.length;++Qr)if(m0[Qr]==1){for(let us=0;us<3;++us)Pt[us][Yt][Qr]=va[us*Rs/3+bi];++bi}const h0=(0,F.max)(va)[0];st.push(h0+1-lt[Yt].length)}return[new v.Tensor("int64",Pt.flat(1/0),[3,V.dims[0],V.dims[1]]),new v.Tensor("int64",st,[st.length,1])]}else if(Ye){const{data:lt,dims:dt}=xe(Ye),Pt=BigInt64Array.from({length:3*lt.length},(pt,qA)=>lt[qA%lt.length]),nt=Array.from({length:dt[0]},(pt,qA)=>(0,F.max)(lt.subarray(dt[1]*qA,dt[1]*(qA+1)))[0]+1n+BigInt(dt[1]));return[new v.Tensor("int64",Pt,[3,...dt]),new v.Tensor("int64",nt,[nt.length,1])]}else{const[lt,dt]=V.dims,Pt=BigInt64Array.from({length:3*lt*dt},(nt,pt)=>BigInt(Math.floor(pt%dt/lt)));return[new v.Tensor("int64",Pt,[3,...V.dims]),(0,v.zeros)([lt,1])]}}async encode_image({pixel_values:V,image_grid_thw:te}){return(await ge(this.sessions.vision_encoder,{pixel_values:V,grid_thw:te})).image_features}_merge_input_ids_with_image_features(V){return Pe({image_token_id:this.config.image_token_id,...V})}prepare_inputs_for_generation(V,te,Te){if(te.attention_mask&&!te.position_ids)if(!te.past_key_values)[te.position_ids,te.rope_deltas]=this.get_rope_index(te.input_ids,te.image_grid_thw,te.video_grid_thw,te.attention_mask);else{te.pixel_values=null;const Ye=BigInt(Object.values(te.past_key_values)[0].dims.at(-2)),We=te.rope_deltas.map(Ze=>Ye+Ze);te.position_ids=(0,v.stack)([We,We,We],0)}return te}}class c extends Ae{}class f extends c{}class m extends c{}class I extends Ae{}class b extends I{}class x extends I{}class P extends Ae{}class _ extends P{}class W extends P{}class U extends Ae{}class Z extends U{}class re extends U{}class le extends Ae{}class Ce extends le{}class Me extends le{}class Qe extends Ae{}class Oe extends Qe{}class Ve extends Qe{async _call(V){return new ht(await super._call(V))}}class AA extends Ae{}class gA extends AA{}class bA extends AA{async _call(V){return new ht(await super._call(V))}}class zA extends Ae{}class jA extends zA{}class rt extends Ae{}class Et extends rt{}class Ot extends rt{async _call(V){return new ht(await super._call(V))}}class Wt extends Ae{}class ir extends Wt{}class or extends Ae{}class xr extends or{}class Br extends or{async _call(V){return new ht(await super._call(V))}}class Rr extends Ae{}class Hr extends Rr{}class Jr extends Ae{}class os extends Jr{}class ps extends Jr{async _call(V){return new ht(await super._call(V))}}class Is extends Ae{}class ua extends Is{async _call(V){return new ug(await super._call(V))}}class Js extends Ae{}class da extends Js{}class In extends Js{async _call(V){return new ht(await super._call(V))}}class wn extends Ae{}class kn extends wn{}class Kn extends wn{async _call(V){return new ht(await super._call(V))}}class Mn extends Ae{}class Bo extends Mn{}class yo extends Mn{}class Ji extends Ae{}class Do extends Ji{}class Zc extends Ji{}class q0 extends Ae{}class Jc extends q0{}class qc extends q0{async _call(V){return new ht(await super._call(V))}}class $o extends Ae{}class $c extends $o{}class e1 extends $o{async _call(V){return new el(await super._call(V))}}class $0 extends $o{async _call(V){return new A1(await super._call(V))}}class el extends Re{constructor({logits:V,pred_boxes:te}){super(),this.logits=V,this.pred_boxes=te}}class A1 extends Re{constructor({logits:V,pred_boxes:te,pred_masks:Te}){super(),this.logits=V,this.pred_boxes=te,this.pred_masks=Te}}class Al extends Ae{}class t1 extends Al{}class r1 extends Al{async _call(V){return new To(await super._call(V))}}class To extends Re{constructor({logits:V,pred_boxes:te}){super(),this.logits=V,this.pred_boxes=te}}class tl extends Ae{}class s1 extends tl{}class a1 extends tl{async _call(V){return new n1(await super._call(V))}}class n1 extends To{}class rl extends Ae{}class i1 extends rl{}class o1 extends rl{async _call(V){return new l1(await super._call(V))}}class l1 extends To{}class sl extends Ae{}class c1 extends sl{}class u1 extends sl{async _call(V){return new To(await super._call(V))}}class al extends Ae{}class d1 extends al{}class f1 extends al{async _call(V){return new g1(await super._call(V))}}class g1 extends el{}class nl extends Ae{}class p1 extends nl{}class m1 extends nl{async _call(V){return new ht(await super._call(V))}}class il extends Ae{}class h1 extends il{}class C1 extends il{async _call(V){return new ht(await super._call(V))}}class ol extends Ae{}class b1 extends ol{}class I1 extends ol{async _call(V){return new ht(await super._call(V))}}class e0 extends Ae{}class w1 extends e0{}class k1 extends e0{async _call(V){return new ht(await super._call(V))}}class M1 extends e0{}class ll extends Ae{}class E1 extends ll{}class v1 extends ll{}class cl extends Ae{}class x1 extends cl{}class B1 extends cl{}class y1 extends Ae{}class D1 extends y1{}class A0 extends Ae{}class T1 extends A0{}class P1 extends A0{}class G1 extends A0{}class Q1 extends Ae{}class F1 extends Q1{}class S1 extends Ae{}class O1 extends S1{}class _1 extends Ae{}class z1 extends _1{}class ul extends Ae{}class N1 extends ul{}class L1 extends ul{}class dl extends Ae{}class R1 extends dl{}class j1 extends dl{}class W1 extends Ae{}class V1 extends W1{}class fl extends Ae{}class Y1 extends fl{}class H1 extends fl{async _call(V){return new ht(await super._call(V))}}class gl extends Ae{}class U1 extends gl{}class K1 extends gl{async _call(V){return new ht(await super._call(V))}}class pl extends Ae{}class X1 extends pl{}class Z1 extends pl{async _call(V){return new ht(await super._call(V))}}class ml extends Ae{}class J1 extends ml{}class q1 extends ml{async _call(V){return new ht(await super._call(V))}}class $1 extends Ae{}class eu extends $1{}class Au extends Ae{}class tu extends Au{}class ru extends Ae{}class su extends ru{}class hl extends Ae{}class au extends hl{}class nu extends hl{async _call(V){return new iu(await super._call(V))}}class iu extends Re{constructor({logits:V,pred_boxes:te}){super(),this.logits=V,this.pred_boxes=te}}class ou extends Ae{}class lu extends ou{async get_image_embeddings({pixel_values:V}){return await ve(this,{pixel_values:V})}
2881async forward(V){!V.image_embeddings||!V.image_positional_embeddings?V={...V,...await this.get_image_embeddings(V)}:V={...V},V.input_labels??(V.input_labels=(0,v.ones)(V.input_points.dims.slice(0,-1)));const te={image_embeddings:V.image_embeddings,image_positional_embeddings:V.image_positional_embeddings};return V.input_points&&(te.input_points=V.input_points),V.input_labels&&(te.input_labels=V.input_labels),V.input_boxes&&(te.input_boxes=V.input_boxes),await ge(this.sessions.prompt_encoder_mask_decoder,te)}async _call(V){return new cu(await super._call(V))}}class cu extends Re{constructor({iou_scores:V,pred_masks:te}){super(),this.iou_scores=V,this.pred_masks=te}}class uu extends Re{constructor({iou_scores:V,pred_masks:te,object_score_logits:Te}){super(),this.iou_scores=V,this.pred_masks=te,this.object_score_logits=Te}}class du extends Ae{}class t0 extends du{async get_image_embeddings({pixel_values:V}){return await ve(this,{pixel_values:V})}async forward(V){const{num_feature_levels:te}=this.config.vision_config;if(Array.from({length:te},(Ze,mA)=>`image_embeddings.${mA}`).some(Ze=>!V[Ze])?V={...V,...await this.get_image_embeddings(V)}:V={...V},V.input_points){if(V.input_boxes&&V.input_boxes.dims[1]!==1)throw new Error("When both `input_points` and `input_boxes` are provided, the number of boxes per image must be 1.");const Ze=V.input_points.dims;V.input_labels??(V.input_labels=(0,v.ones)(Ze.slice(0,-1))),V.input_boxes??(V.input_boxes=(0,v.full)([Ze[0],0,4],0))}else if(V.input_boxes){const Ze=V.input_boxes.dims;V.input_labels=(0,v.full)([Ze[0],Ze[1],0],-1n),V.input_points=(0,v.full)([Ze[0],1,0,2],0)}else throw new Error("At least one of `input_points` or `input_boxes` must be provided.");const Ye=this.sessions.prompt_encoder_mask_decoder,We=(0,k.pick)(V,Ye.inputNames);return await ge(Ye,We)}async _call(V){return new uu(await super._call(V))}}class fu extends t0{}class gu extends t0{}class Cl extends Ae{}class pu extends Cl{}class mu extends Cl{}class bl extends Ae{}class hu extends bl{}class Cu extends bl{}class Xn extends Ae{}class bu extends Xn{}class Iu extends Xn{async _call(V){return new Zn(await super._call(V))}}class wu extends Xn{async _call(V){return new ht(await super._call(V))}}class ku extends Xn{async _call(V){return new ls(await super._call(V))}}class Mu extends Ae{}class Eu extends Mu{async _call(V){return new Zn(await super._call(V))}}class Il extends Ae{}class vu extends Il{}class xu extends Il{async _call(V){return new ls(await super._call(V))}}class Bu extends Ae{}class yu extends Bu{}class r0 extends Ae{}class Du extends r0{}class Tu extends r0{async _call(V){return new Zn(await super._call(V))}}class Pu extends r0{async _call(V){return new ht(await super._call(V))}}class Po extends Ae{}class Gu extends Po{}class Qu extends Po{async _call(V){return new Zn(await super._call(V))}}class Fu extends Po{async _call(V){return new ht(await super._call(V))}}class Su extends Po{async _call(V){return new ls(await super._call(V))}}class s0 extends Ae{}class Ou extends s0{}class _u extends s0{async _call(V){return new Zn(await super._call(V))}}class zu extends s0{async _call(V){return new ht(await super._call(V))}}class nI extends Ae{}class Nu extends Xn{}class Lu extends Xn{async _call(V){return new Zn(await super._call(V))}}class Ru extends Xn{async _call(V){return new ht(await super._call(V))}}class qi extends Ae{}class ju extends qi{}class Wu extends qi{async _call(V){return new Zn(await super._call(V))}}class Vu extends qi{async _call(V){return new ht(await super._call(V))}}class Yu extends qi{async _call(V){return new cg(await super._call(V))}}class Hu extends qi{async _call(V){return new ls(await super._call(V))}}class Uu extends Ae{}class Ku extends Uu{}class a0 extends Ae{}class iI extends a0{}class Xu extends a0{}class Zu extends a0{async generate_speech(V,te,{threshold:Te=.5,minlenratio:Ye=0,maxlenratio:We=20,vocoder:Ze=null}={}){const mA={input_ids:V},{encoder_outputs:vA,encoder_attention_mask:TA}=await ve(this,mA),st=vA.dims[1]/this.config.reduction_factor,lt=Math.floor(st*We),dt=Math.floor(st*Ye),Pt=this.config.num_mel_bins;let nt=[],pt=null,qA=null,yt=0;for(;;){++yt;const yr=be(!!qA);let Gr;qA?Gr=qA.output_sequence_out:Gr=new v.Tensor("float32",new Float32Array(Pt),[1,1,Pt]);let rs={use_cache_branch:yr,output_sequence:Gr,encoder_attention_mask:TA,speaker_embeddings:te,encoder_hidden_states:vA};this.addPastKeyValues(rs,pt),qA=await ge(this.sessions.decoder_model_merged,rs),pt=this.getPastKeyValues(qA,pt);const{prob:hs,spectrum:Dt}=qA;if(nt.push(Dt),yt>=dt&&(Array.from(hs.data).filter(cs=>cs>=Te).length>0||yt>=lt))break}const Yt=(0,v.cat)(nt),{waveform:kr}=await ge(Ze.sessions.model,{spectrogram:Yt});return{spectrogram:Yt,waveform:kr}}}class Ju extends Ae{constructor(){super(...arguments);Ee(this,"main_input_name","spectrogram")}}class qu extends Ae{}class wl extends qu{async generate_speech({input_ids:V,attention_mask:te,style:Te,num_inference_steps:Ye=5,speed:We=1.05}){const{sampling_rate:Ze,chunk_compress_factor:mA,base_chunk_size:vA,latent_dim:TA}=this.config,{last_hidden_state:st,durations:lt}=await ge(this.sessions.text_encoder,{input_ids:V,attention_mask:te,style:Te});lt.div_(We);const dt=lt.max().item()*Ze,Pt=vA*mA,nt=Math.floor((dt+Pt-1)/Pt),pt=V.dims[0],qA=(0,v.ones)([pt,nt]),yt=(0,v.full)([pt],Ye);let Yt=(0,v.randn)([pt,TA*mA,nt]);for(let yr=0;yr<Ye;++yr){const Gr=(0,v.full)([pt],yr);({denoised_latents:Yt}=await ge(this.sessions.latent_denoiser,{style:Te,noisy_latents:Yt,latent_mask:qA,encoder_outputs:st,attention_mask:te,timestep:Gr,num_inference_steps:yt}))}const{waveform:kr}=await ge(this.sessions.voice_decoder,{latents:Yt});return{waveform:kr,durations:lt}}}class $u extends Ae{}class ed extends $u{}class kl extends Ae{}class Ad extends kl{}class td extends kl{}class Ml extends Ae{}class rd extends Ml{}class sd extends Ml{}class El extends Ae{}
2881class ad extends El{}class nd extends El{}class vl extends Ae{}class id extends vl{}class od extends vl{}class xl extends Ae{}class ld extends xl{}class cd extends xl{}class Bl extends Ae{}class ud extends Bl{}class dd extends Bl{}class n0 extends Ae{}class fd extends n0{}class gd extends n0{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"text_model"})}}class pd extends n0{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"audio_model"})}}class md extends Ae{}class yl extends md{async _call(V){return new dg(await super._call(V))}}class i0 extends Ae{}class oI extends i0{}class hd extends i0{}class Cd extends i0{}class Dl extends Ae{}class bd extends Dl{}class Id extends Dl{}class Tl extends Ae{}class wd extends Tl{}class kd extends Tl{async _call(V){return new ht(await super._call(V))}}class Pl extends Ae{}class lI extends Pl{}class cI extends Pl{}class Gl extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"])}_apply_and_filter_by_delay_pattern_mask(te){const[Te,Ye]=te.dims,We=this.config.decoder.num_codebooks,Ze=Ye-We;let mA=0;for(let st=0;st<te.size;++st){if(te.data[st]===this.config.decoder.pad_token_id)continue;const lt=st%Ye,dt=Math.floor(st/Ye)%We,Pt=lt-dt;Pt>0&&Pt<=Ze&&(te.data[mA++]=te.data[st])}const vA=Math.floor(Te/We),TA=mA/(vA*We);return new v.Tensor(te.type,te.data.slice(0,mA),[vA,We,TA])}prepare_inputs_for_generation(te,Te,Ye){let We=structuredClone(te);for(let mA=0;mA<We.length;++mA)for(let vA=0;vA<We[mA].length;++vA)mA%this.config.decoder.num_codebooks>=vA&&(We[mA][vA]=BigInt(this.config.decoder.pad_token_id));return Ye.guidance_scale!==null&&Ye.guidance_scale>1&&(We=We.concat(We)),super.prepare_inputs_for_generation(We,Te,Ye)}async generate(te){const Te=await super.generate(te),Ye=this._apply_and_filter_by_delay_pattern_mask(Te).unsqueeze_(0),{audio_values:We}=await ge(this.sessions.encodec_decode,{audio_codes:Ye});return We}}class o0 extends Ae{}class Md extends o0{}class Ed extends o0{async _call(V){return new ht(await super._call(V))}}class vd extends o0{}class l0 extends Ae{}class xd extends l0{}class Bd extends l0{async _call(V){return new ht(await super._call(V))}}class yd extends l0{}class c0 extends Ae{}class Dd extends c0{}class Td extends c0{async _call(V){return new ht(await super._call(V))}}class Pd extends c0{}class u0 extends Ae{}class Gd extends u0{}class Qd extends u0{async _call(V){return new ht(await super._call(V))}}class Fd extends u0{}class Sd extends Ae{}class Od extends Sd{}class _d extends Ae{}class zd extends _d{constructor(...te){super(...te);Ee(this,"forward_params",["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"]);this._generation_mode="text"}async forward(te){const Te=this._generation_mode??"text";let Ye;if(Te==="text"||!te.past_key_values){const TA=this.sessions.prepare_inputs_embeds,st=(0,k.pick)(te,TA.inputNames);Ye=await ge(TA,st)}else{const TA=this.sessions.gen_img_embeds,st=(0,k.pick)({image_ids:te.input_ids},TA.inputNames);Ye=await ge(TA,st)}const We={...te,...Ye},Ze=await je(this,We),mA=this.sessions[Te==="text"?"lm_head":"gen_head"];if(!mA)throw new Error(`Unable to find "${mA}" generation head`);const vA=await ge(mA,(0,k.pick)(Ze,mA.inputNames));return{...Ye,...Ze,...vA}}async generate(te){return this._generation_mode="text",super.generate(te)}async generate_images(te){this._generation_mode="image";const Te=(te.inputs??te[this.main_input_name]).dims[1],We=(await super.generate(te)).slice(null,[Te,null]),Ze=this.sessions.image_decode,{decoded_image:mA}=await ge(Ze,{generated_tokens:We}),vA=mA.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),TA=[];for(const st of vA){const lt=S.RawImage.fromTensor(st);TA.push(lt)}return TA}}class Nd extends Re{constructor({char_logits:V,bpe_logits:te,wp_logits:Te}){super(),this.char_logits=V,this.bpe_logits=te,this.wp_logits=Te}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class Ld extends Ae{}class Rd extends Ld{async _call(V){return new Nd(await super._call(V))}}class Ql extends Ae{}class jd extends Ql{}class Wd extends Ql{}class Fl extends Ae{}class Vd extends Fl{}class Yd extends Fl{}class Hd extends Ae{constructor(){super(...arguments);Ee(this,"forward_params",["input_ids","attention_mask","position_ids","audio_values","past_key_values"])}}class Sl extends Hd{_merge_input_ids_with_audio_features(V){const te=V.audio_features.dims.at(-1),Te=V.audio_features.view(-1,te);return me({audio_token_id:this.config.ignore_index??this.config.audio_token_id,...V,audio_features:Te})}}class Ud extends Sl{}class d0 extends Ae{constructor(){super(...arguments);
2881Ee(this,"main_input_name","input_values");Ee(this,"forward_params",["input_values"])}}class Kd extends Re{constructor({audio_codes:V}){super(),this.audio_codes=V}}class Xd extends Re{constructor({audio_values:V}){super(),this.audio_values=V}}class Zd extends d0{async encode(V){return new Kd(await ge(this.sessions.encoder_model,V))}async decode(V){return new Xd(await ge(this.sessions.decoder_model,V))}}class Jd extends d0{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"encoder_model"})}}class qd extends d0{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"decoder_model"})}}class f0 extends Ae{constructor(){super(...arguments);Ee(this,"main_input_name","input_values");Ee(this,"forward_params",["input_values"])}}class $d extends Re{constructor({audio_codes:V}){super(),this.audio_codes=V}}class ef extends Re{constructor({audio_values:V}){super(),this.audio_values=V}}class Af extends f0{async encode(V){return new $d(await ge(this.sessions.encoder_model,V))}async decode(V){return new ef(await ge(this.sessions.decoder_model,V))}}class tf extends f0{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"encoder_model"})}}class rf extends f0{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"decoder_model"})}}class g0 extends Ae{constructor(){super(...arguments);Ee(this,"main_input_name","input_values");Ee(this,"forward_params",["input_values"])}}class sf extends g0{async encode(V){return await ge(this.sessions.encoder_model,V)}async decode(V){return await ge(this.sessions.decoder_model,V)}}class af extends g0{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"encoder_model"})}}class nf extends g0{static async from_pretrained(V,te={}){return super.from_pretrained(V,{...te,model_file_name:te.model_file_name??"decoder_model"})}}class Ut{static async from_pretrained(V,{progress_callback:te=null,config:Te=null,cache_dir:Ye=null,local_files_only:We=!1,revision:Ze="main",model_file_name:mA=null,subfolder:vA="onnx",device:TA=null,dtype:st=null,use_external_data_format:lt=null,session_options:dt={}}={}){const Pt={progress_callback:te,config:Te,cache_dir:Ye,local_files_only:We,revision:Ze,model_file_name:mA,subfolder:vA,device:TA,dtype:st,use_external_data_format:lt,session_options:dt};if(Pt.config=await g.AutoConfig.from_pretrained(V,Pt),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);const nt=Pt.config.model_type;for(const pt of this.MODEL_CLASS_MAPPINGS){let qA=pt.get(nt);if(!qA){for(const yt of pt.values())if(yt[0]===nt){qA=yt;break}if(!qA)continue}return await qA[1].from_pretrained(V,Pt)}if(this.BASE_IF_FAIL)return Qf.has(nt)||console.warn(`Unknown model class "${nt}", attempting to construct from base class.`),await Ae.from_pretrained(V,Pt);throw Error(`Unsupported model type: ${nt}`)}}Ee(Ut,"MODEL_CLASS_MAPPINGS",null),Ee(Ut,"BASE_IF_FAIL",!1);const uI=new Map([["bert",["BertModel",rA]],["neobert",["NeoBertModel",MA]],["modernbert",["ModernBertModel",tA]],["nomic_bert",["NomicBertModel",ft]],["roformer",["RoFormerModel",ea]],["electra",["ElectraModel",mt]],["esm",["EsmModel",Vr]],["convbert",["ConvBertModel",xt]],["camembert",["CamembertModel",ke]],["deberta",["DebertaModel",gt]],["deberta-v2",["DebertaV2Model",es]],["mpnet",["MPNetModel",Ca]],["albert",["AlbertModel",wA]],["distilbert",["DistilBertModel",ha]],["roberta",["RobertaModel",si]],["xlm",["XLMModel",Va]],["xlm-roberta",["XLMRobertaModel",ii]],["clap",["ClapModel",fd]],["clip",["CLIPModel",fn]],["clipseg",["CLIPSegModel",An]],["chinese_clip",["ChineseCLIPModel",et]],["siglip",["SiglipModel",qa]],["jina_clip",["JinaCLIPModel",Ln]],["mobilebert",["MobileBertModel",_r]],["squeezebert",["SqueezeBertModel",de]],["wav2vec2",["Wav2Vec2Model",bu]],["wav2vec2-bert",["Wav2Vec2BertModel",Ou]],["unispeech",["UniSpeechModel",Du]],["unispeech-sat",["UniSpeechSatModel",Gu]],["hubert",["HubertModel",Nu]],["wavlm",["WavLMModel",ju]],["audio-spectrogram-transformer",["ASTModel",jt]],["vits",["VitsModel",yl]],["pyannote",["PyAnnoteModel",vu]],["wespeaker-resnet",["WeSpeakerResNetModel",yu]],["detr",["DetrModel",$c]],["rt_detr",["RTDetrModel",t1]],["rt_detr_v2",["RTDetrV2Model",s1]],["rf_detr",["RFDetrModel",i1]],["d_fine",["DFineModel",c1]],["table-transformer",["TableTransformerModel",d1]],["vit",["ViTModel",Oe]],["ijepa",["IJepaModel",gA]],["pvt",["PvtModel",Et]],["vit_msn",["ViTMSNModel",xr]],["vit_mae",["ViTMAEModel",ir]],["groupvit",["GroupViTModel",Hr]],["fastvit",["FastViTModel",os]],["mobilevit",["MobileViTModel",da]],["mobilevitv2",["MobileViTV2Model",kn]],["owlvit",["OwlViTModel",Bo]],["owlv2",["Owlv2Model",Do]],["beit",["BeitModel",Jc]],["deit",["DeiTModel",p1]],["hiera",["HieraModel",h1]],["convnext",["ConvNextModel",Y1]],["convnextv2",["ConvNextV2Model",U1]],["dinov2",["Dinov2Model",X1]],["dinov2_with_registers",["Dinov2WithRegistersModel",J1]],["dinov3_vit",["DINOv3ViTModel",eu]],["dinov3_convnext",["DINOv3ConvNextModel",tu]],["resnet",["ResNetModel",b1]],["swin",["SwinModel",w1]],["swin2sr",["Swin2SRModel",E1]],["donut-swin",["DonutSwinModel",V1]],["yolos",["YolosModel",au]],["dpt",["DPTModel",x1]],["glpn",["GLPN
2881Model",R1]],["hifigan",["SpeechT5HifiGan",Ju]],["efficientnet",["EfficientNetModel",wd]],["decision_transformer",["DecisionTransformerModel",Od]],["patchtst",["PatchTSTForPrediction",jd]],["patchtsmixer",["PatchTSMixerForPrediction",Vd]],["mobilenet_v1",["MobileNetV1Model",Md]],["mobilenet_v2",["MobileNetV2Model",xd]],["mobilenet_v3",["MobileNetV3Model",Dd]],["mobilenet_v4",["MobileNetV4Model",Gd]],["maskformer",["MaskFormerModel",N1]],["mgp-str",["MgpstrForSceneTextRecognition",Rd]],["style_text_to_speech_2",["StyleTextToSpeech2Model",Ku]]]),dI=new Map([["t5",["T5Model",St]],["longt5",["LongT5Model",Ht]],["mt5",["MT5Model",Ar]],["bart",["BartModel",Ms]],["mbart",["MBartModel",mr]],["marian",["MarianModel",pu]],["whisper",["WhisperModel",oa]],["m2m_100",["M2M100Model",hu]],["blenderbot",["BlenderbotModel",Ir]],["blenderbot-small",["BlenderbotSmallModel",zr]]]),fI=new Map([["mimi",["MimiModel",Zd]],["dac",["DacModel",Af]],["snac",["SnacModel",sf]]]),gI=new Map([["bloom",["BloomModel",_]],["jais",["JAISModel",Lr]],["gpt2",["GPT2Model",gn]],["gptj",["GPTJModel",Pa]],["gpt_bigcode",["GPTBigCodeModel",G]],["gpt_neo",["GPTNeoModel",Bs]],["gpt_neox",["GPTNeoXModel",jn]],["codegen",["CodeGenModel",ne]],["llama",["LlamaModel",Ke]],["nanochat",["NanoChatModel",bt]],["arcee",["ArceeModel",la]],["lfm2",["Lfm2Model",ys]],["smollm3",["SmolLM3Model",ca]],["exaone",["ExaoneModel",Yn]],["olmo",["OlmoModel",Ri]],["olmo2",["Olmo2Model",Io]],["mobilellm",["MobileLLMModel",pi]],["granite",["GraniteModel",ko]],["granitemoehybrid",["GraniteMoeHybridModel",ji]],["cohere",["CohereModel",Vt]],["gemma",["GemmaModel",Vi]],["gemma2",["Gemma2Model",Eo]],["vaultgemma",["VaultGemmaModel",vo]],["gemma3_text",["Gemma3Model",ts]],["helium",["HeliumModel",Ni]],["glm",["GlmModel",ho]],["openelm",["OpenELMModel",Cn]],["qwen2",["Qwen2Model",At]],["qwen3",["Qwen3Model",r]],["phi",["PhiModel",f]],["phi3",["Phi3Model",b]],["mpt",["MptModel",Z]],["opt",["OPTModel",Ce]],["mistral",["MistralModel",Ad]],["ministral",["MinistralModel",rd]],["ministral3",["Ministral3Model",ad]],["ernie4_5",["Ernie4_5Model",id]],["starcoder2",["Starcoder2Model",ld]],["falcon",["FalconModel",ud]],["stablelm",["StableLmModel",bd]],["modernbert-decoder",["ModernBertDecoderModel",ZA]]]),Ol=new Map([["speecht5",["SpeechT5ForSpeechToText",Xu]],["whisper",["WhisperForConditionalGeneration",vs]],["lite-whisper",["LiteWhisperForConditionalGeneration",zs]],["moonshine",["MoonshineForConditionalGeneration",ka]]]),of=new Map([["speecht5",["SpeechT5ForTextToSpeech",Zu]]]),lf=new Map([["vits",["VitsModel",yl]],["musicgen",["MusicgenForConditionalGeneration",Gl]],["supertonic",["SupertonicForConditionalGeneration",wl]]]),cf=new Map([["bert",["BertForSequenceClassification",Y]],["neobert",["NeoBertForSequenceClassification",DA]],["modernbert",["ModernBertForSequenceClassification",KA]],["roformer",["RoFormerForSequenceClassification",Ts]],["electra",["ElectraForSequenceClassification",H]],["esm",["EsmForSequenceClassification",ra]],["convbert",["ConvBertForSequenceClassification",ta]],["camembert",["CamembertForSequenceClassification",eA]],["deberta",["DebertaForSequenceClassification",vt]],["deberta-v2",["DebertaV2ForSequenceClassification",Kr]],["mpnet",["MPNetForSequenceClassification",Hs]],["albert",["AlbertForSequenceClassification",xA]],["distilbert",["DistilBertForSequenceClassification",ks]],["roberta",["RobertaForSequenceClassification",Ia]],["xlm",["XLMForSequenceClassification",PA]],["xlm-roberta",["XLMRobertaForSequenceClassification",li]],["bart",["BartForSequenceClassification",br]],["mbart",["MBartForSequenceClassification",vr]],["mobilebert",["MobileBertForSequenceClassification",CA]],["squeezebert",["SqueezeBertForSequenceClassification",Ge]]]),uf=new Map([["bert",["BertForTokenClassification",cA]],["neobert",["NeoBertForTokenClassification",IA]],["modernbert",["ModernBertForTokenClassification",JA]],["roformer",["RoFormerForTokenClassification",Er]],["electra",["ElectraForTokenClassification",ue]],["esm",["EsmForTokenClassification",Ys]],["convbert",["ConvBertForTokenClassification",Os]],["camembert",["CamembertForTokenClassification",FA]],["deberta",["DebertaForTokenClassification",OA]],["deberta-v2",["DebertaV2ForTokenClassification",ur]],["mpnet",["MPNetForTokenClassification",Wa]],["distilbert",["DistilBertForTokenClassification",ss]],["roberta",["RobertaF
2881orTokenClassification",Pn]],["xlm",["XLMForTokenClassification",gs]],["xlm-roberta",["XLMRobertaForTokenClassification",Qn]]]),_l=new Map([["t5",["T5ForConditionalGeneration",Ft]],["longt5",["LongT5ForConditionalGeneration",er]],["mt5",["MT5ForConditionalGeneration",Pr]],["bart",["BartForConditionalGeneration",tr]],["mbart",["MBartForConditionalGeneration",Us]],["marian",["MarianMTModel",mu]],["m2m_100",["M2M100ForConditionalGeneration",Cu]],["blenderbot",["BlenderbotForConditionalGeneration",WA]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",ba]]]),zl=new Map([["bloom",["BloomForCausalLM",W]],["gpt2",["GPT2LMHeadModel",Ns]],["jais",["JAISLMHeadModel",Zs]],["gptj",["GPTJForCausalLM",Wn]],["gpt_bigcode",["GPTBigCodeForCausalLM",j]],["gpt_neo",["GPTNeoForCausalLM",rn]],["gpt_neox",["GPTNeoXForCausalLM",pn]],["codegen",["CodeGenForCausalLM",fe]],["llama",["LlamaForCausalLM",fA]],["nanochat",["NanoChatForCausalLM",Nt]],["llama4_text",["Llama4ForCausalLM",VA]],["arcee",["ArceeForCausalLM",mn]],["lfm2",["Lfm2ForCausalLM",di]],["smollm3",["SmolLM3ForCausalLM",mo]],["exaone",["ExaoneForCausalLM",is]],["olmo",["OlmoForCausalLM",sn]],["olmo2",["Olmo2ForCausalLM",wo]],["mobilellm",["MobileLLMForCausalLM",bo]],["granite",["GraniteForCausalLM",nn]],["granitemoehybrid",["GraniteMoeHybridForCausalLM",hi]],["cohere",["CohereForCausalLM",Hn]],["gemma",["GemmaForCausalLM",Mo]],["gemma2",["Gemma2ForCausalLM",Hi]],["vaultgemma",["VaultGemmaForCausalLM",Ki]],["gemma3_text",["Gemma3ForCausalLM",Xi]],["helium",["HeliumForCausalLM",hn]],["glm",["GlmForCausalLM",Co]],["openelm",["OpenELMForCausalLM",xo]],["qwen2",["Qwen2ForCausalLM",A]],["qwen3",["Qwen3ForCausalLM",s]],["phi",["PhiForCausalLM",m]],["phi3",["Phi3ForCausalLM",x]],["mpt",["MptForCausalLM",re]],["opt",["OPTForCausalLM",Me]],["mbart",["MBartForCausalLM",Es]],["mistral",["MistralForCausalLM",td]],["ministral",["MinistralForCausalLM",sd]],["ministral3",["Ministral3ForCausalLM",nd]],["ernie4_5",["Ernie4_5ForCausalLM",od]],["starcoder2",["Starcoder2ForCausalLM",cd]],["falcon",["FalconForCausalLM",dd]],["trocr",["TrOCRForCausalLM",ed]],["stablelm",["StableLmForCausalLM",Id]],["modernbert-decoder",["ModernBertDecoderForCausalLM",Zt]],["phi3_v",["Phi3VForCausalLM",Ks]]]),pI=new Map([["multi_modality",["MultiModalityCausalLM",zd]]]),df=new Map([["bert",["BertForMaskedLM",aA]],["neobert",["NeoBertForMaskedLM",nA]],["modernbert",["ModernBertForMaskedLM",lA]],["roformer",["RoFormerForMaskedLM",Aa]],["electra",["ElectraForMaskedLM",Ws]],["esm",["EsmForMaskedLM",fs]],["convbert",["ConvBertForMaskedLM",UA]],["camembert",["CamembertForMaskedLM",_e]],["deberta",["DebertaForMaskedLM",YA]],["deberta-v2",["DebertaV2ForMaskedLM",Cr]],["mpnet",["MPNetForMaskedLM",sa]],["albert",["AlbertForMaskedLM",QA]],["distilbert",["DistilBertForMaskedLM",fr]],["roberta",["RobertaForMaskedLM",ai]],["xlm",["XLMWithLMHeadModel",Nr]],["xlm-roberta",["XLMRobertaForMaskedLM",oi]],["mobilebert",["MobileBertForMaskedLM",pA]],["squeezebert",["SqueezeBertForMaskedLM",he]]]),ff=new Map([["bert",["BertForQuestionAnswering",He]],["neobert",["NeoBertForQuestionAnswering",ot]],["roformer",["RoFormerForQuestionAnswering",$r]],["electra",["ElectraForQuestionAnswering",ae]],["convbert",["ConvBertForQuestionAnswering",Jt]],["camembert",["CamembertForQuestionAnswering",NA]],["deberta",["DebertaForQuestionAnswering",Bt]],["deberta-v2",["DebertaV2ForQuestionAnswering",Vs]],["mpnet",["MPNetForQuestionAnswering",Ne]],["albert",["AlbertForQuestionAnswering",Xe]],["distilbert",["DistilBertForQuestionAnswering",as]],["roberta",["RobertaForQuestionAnswering",ni]],["xlm",["XLMForQuestionAnswering",Gn]],["xlm-roberta",["XLMRobertaForQuestionAnswering",Fn]],["mobilebert",["MobileBertForQuestionAnswering",_A]],["squeezebert",["SqueezeBertForQuestionAnswering",ze]]]),Nl=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",cn]],["idefics3",["Idefics3ForConditionalGeneration",Xa]],["smolvlm",["SmolVLMForConditionalGeneration",On]]]),gf=new Map([["llava",["LlavaForConditionalGeneration",Da]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",dA]],["moondream1",["Moondream1ForConditionalGeneration",ui]],["florence2",["Florence2ForConditionalGeneration",un]],["qwen2-vl",["Qwen2VLForConditionalGeneration",l]],["idefics3",["Idefics3ForConditionalGeneration",Xa]],["smolvlm",["SmolVLMForConditionalGeneration",On]],["paligemma",["PaliGemmaForConditionalGeneration",Xr]],["llava_qwen2",["LlavaQwen2ForCausalLM",ns]],["gemma3n",["Gemma3nForConditionalGeneration",Ma]],["mistral3",["Mistral3ForConditionalGeneration",Ua]]]),pf=new Map([["ultravox",["UltravoxModel",Sl]],["voxtral",["VoxtralForConditionalGeneration",Ud]]]),mI=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",cn]]]),mf=new Map([["vit",["ViTForImageClassification",Ve]],["ijepa",["IJepaForImageClassification",bA]],["pvt",["PvtForImageClassification",Ot]],["vit_msn",["ViTMSNForImageClassification",Br]],["fastvit",["FastViTForImageClassification",ps]],["mobilevit",["MobileViTForImageClassification",In]],["mobilevitv2",["MobileViTV2ForImageClassification",Kn]],["beit",["BeitForImageClassification",qc]],["deit",["DeiTForImageClassification",m1]],["hiera",["HieraForImageClassification",C1]],["convnext",["ConvNextForImageClassification",H1]],["convnextv2",["ConvNextV2ForImageClassification",K1]],["dinov2",["Dinov2ForImageClassification",Z1]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",q1]],["resnet",["ResNetForImageClassification",I1]],["swin",["SwinForImageClassification",k1]],["segformer",["SegformerForImageClassification",hd]],["efficie
2881ntnet",["EfficientNetForImageClassification",kd]],["mobilenet_v1",["MobileNetV1ForImageClassification",Ed]],["mobilenet_v2",["MobileNetV2ForImageClassification",Bd]],["mobilenet_v3",["MobileNetV3ForImageClassification",Td]],["mobilenet_v4",["MobileNetV4ForImageClassification",Qd]]]),hf=new Map([["detr",["DetrForObjectDetection",e1]],["rt_detr",["RTDetrForObjectDetection",r1]],["rt_detr_v2",["RTDetrV2ForObjectDetection",a1]],["rf_detr",["RFDetrForObjectDetection",o1]],["d_fine",["DFineForObjectDetection",u1]],["table-transformer",["TableTransformerForObjectDetection",f1]],["yolos",["YolosForObjectDetection",nu]]]),Cf=new Map([["owlvit",["OwlViTForObjectDetection",yo]],["owlv2",["Owlv2ForObjectDetection",Zc]],["grounding-dino",["GroundingDinoForObjectDetection",su]]]),$i=new Map([["detr",["DetrForSegmentation",$0]],["clipseg",["CLIPSegForImageSegmentation",at]]]),bf=new Map([["segformer",["SegformerForSemanticSegmentation",Cd]],["sapiens",["SapiensForSemanticSegmentation",T1]],["swin",["SwinForSemanticSegmentation",M1]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",vd]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",yd]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",Pd]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",Fd]]]),If=new Map([["detr",["DetrForSegmentation",$0]],["maskformer",["MaskFormerForInstanceSegmentation",L1]]]),wf=new Map([["sam",["SamModel",lu]],["sam2",["Sam2Model",t0]],["edgetam",["EdgeTamModel",fu]],["sam3_tracker",["Sam3TrackerModel",gu]]]),kf=new Map([["wav2vec2",["Wav2Vec2ForCTC",Iu]],["wav2vec2-bert",["Wav2Vec2BertForCTC",_u]],["unispeech",["UniSpeechForCTC",Tu]],["unispeech-sat",["UniSpeechSatForCTC",Qu]],["wavlm",["WavLMForCTC",Wu]],["hubert",["HubertForCTC",Lu]],["parakeet_ctc",["ParakeetForCTC",Eu]]]),Mf=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",wu]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",zu]],["unispeech",["UniSpeechForSequenceClassification",Pu]],["unispeech-sat",["UniSpeechSatForSequenceClassification",Fu]],["wavlm",["WavLMForSequenceClassification",Vu]],["hubert",["HubertForSequenceClassification",Ru]],["audio-spectrogram-transformer",["ASTForAudioClassification",Sn]]]),Ef=new Map([["wavlm",["WavLMForXVector",Yu]]]),vf=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",Su]],["wavlm",["WavLMForAudioFrameClassification",Hu]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",ku]],["pyannote",["PyAnnoteForAudioFrameClassification",xu]]]),xf=new Map([["vitmatte",["VitMatteForImageMatting",ua]]]),hI=new Map([["patchtst",["PatchTSTForPrediction",Wd]],["patchtsmixer",["PatchTSMixerForPrediction",Yd]]]),Bf=new Map([["swin2sr",["Swin2SRForImageSuperResolution",v1]]]),yf=new Map([["dpt",["DPTForDepthEstimation",B1]],["depth_anything",["DepthAnythingForDepthEstimation",D1]],["glpn",["GLPNForDepthEstimation",j1]],["sapiens",["SapiensForDepthEstimation",P1]],["depth_pro",["DepthProForDepthEstimation",F1]],["metric3d",["Metric3DForDepthEstimation",O1]],["metric3dv2",["Metric3Dv2ForDepthEstimation",z1]]]),Df=new Map([["sapiens",["SapiensForNormalEstimation",G1]]]),Tf=new Map([["vitpose",["VitPoseForPoseEstimation",jA]]]),Pf=new Map([["clip",["CLIPVisionModelWithProjection",_n]],["siglip",["SiglipVisionModel",Nn]],["jina_clip",["JinaCLIPVisionModel",wr]]]),Gf=[[uI,d.EncoderOnly],[dI,d.EncoderDecoder],[gI,d.DecoderOnly],[fI,d.AutoEncoder],[cf,d.EncoderOnly],[uf,d.EncoderOnly],[_l,d.Seq2Seq],[Ol,d.Seq2Seq],[zl,d.DecoderOnly],[pI,d.MultiModality],[df,d.EncoderOnly],[ff,d.EncoderOnly],[Nl,d.Vision2Seq],[gf,d.ImageTextToText],[pf,d.AudioTextToText],[mf,d.EncoderOnly],[$i,d.EncoderOnly],[If,d.EncoderOnly],[bf,d.EncoderOnly],[xf,d.EncoderOnly],[hI,d.EncoderOnly],[Bf,d.EncoderOnly],[yf,d.EncoderOnly],[Df,d.EncoderOnly],[Tf,d.EncoderOnly],[hf,d.EncoderOnly],[Cf,d.EncoderOnly],[wf,d.MaskGeneration],[kf,d.EncoderOnly],[Mf,d.EncoderOnly],[of,d.Seq2Seq],[lf,d.EncoderOnly],[Ef,d.EncoderOnly],[vf,d.EncoderOnly],[Pf,d.EncoderOnly]];for(const[N,V]of Gf)for(const[te,Te]of N.values())w.set(te,V),u.set(Te,te),e.set(te,Te);const CI=[["MusicgenForConditionalGeneration",Gl,d.Musicgen],["Phi3VForCausalLM",Ks,d.Phi3V],["CLIPTextModelWithProjection",EA,d.EncoderOnly],["SiglipTextModel",Ea,d.EncoderOnly],["JinaCLIPTextModel",Rn,d.EncoderOnly],["ClapTextModelWithProjection",gd,d.EncoderOnly],["ClapAudioModelWithProjection",pd,d.EncoderOnly],["DacEncoderModel",tf,d.EncoderOnly],["DacDecoderModel",rf,d.EncoderOnly],["MimiEncoderModel",Jd,d.EncoderOnly],["MimiDecoderModel",qd,d.EncoderOnly],["SnacEncoderModel",af,d.EncoderOnly],["SnacDecoderModel",nf,d.EncoderOnly],["Gemma3nForConditionalGeneration",Ma,d.ImageAudioTextToText],["SupertonicForConditionalGeneration",wl,d.Supertonic]];for(const[N,V,te]of CI)w.set(N,te),u.set(V,N),e.set(N,V);const Qf=new Map([["modnet",$i],["birefnet",$i],["isnet",$i],["ben",$i]]);for(const[N,V]of Qf.entries())V.set(N,["PreTrainedModel",Ae]),w.set(N,d.EncoderOnly),u.set(Ae,N
2881),e.set(N,Ae);class Ll extends Ut{}Ee(Ll,"MODEL_CLASS_MAPPINGS",Gf.map(V=>V[0])),Ee(Ll,"BASE_IF_FAIL",!0);class Ff extends Ut{}Ee(Ff,"MODEL_CLASS_MAPPINGS",[cf]);class Sf extends Ut{}Ee(Sf,"MODEL_CLASS_MAPPINGS",[uf]);class Of extends Ut{}Ee(Of,"MODEL_CLASS_MAPPINGS",[_l]);class _f extends Ut{}Ee(_f,"MODEL_CLASS_MAPPINGS",[Ol]);class zf extends Ut{}Ee(zf,"MODEL_CLASS_MAPPINGS",[of]);class Nf extends Ut{}Ee(Nf,"MODEL_CLASS_MAPPINGS",[lf]);class Lf extends Ut{}Ee(Lf,"MODEL_CLASS_MAPPINGS",[zl]);class Rf extends Ut{}Ee(Rf,"MODEL_CLASS_MAPPINGS",[df]);class jf extends Ut{}Ee(jf,"MODEL_CLASS_MAPPINGS",[ff]);class Wf extends Ut{}Ee(Wf,"MODEL_CLASS_MAPPINGS",[Nl]);class Vf extends Ut{}Ee(Vf,"MODEL_CLASS_MAPPINGS",[mf]);class Yf extends Ut{}Ee(Yf,"MODEL_CLASS_MAPPINGS",[$i]);class Hf extends Ut{}Ee(Hf,"MODEL_CLASS_MAPPINGS",[bf]);class Uf extends Ut{}Ee(Uf,"MODEL_CLASS_MAPPINGS",[If]);class Kf extends Ut{}Ee(Kf,"MODEL_CLASS_MAPPINGS",[hf]);class Xf extends Ut{}Ee(Xf,"MODEL_CLASS_MAPPINGS",[Cf]);class Zf extends Ut{}Ee(Zf,"MODEL_CLASS_MAPPINGS",[wf]);class Jf extends Ut{}Ee(Jf,"MODEL_CLASS_MAPPINGS",[kf]);class qf extends Ut{}Ee(qf,"MODEL_CLASS_MAPPINGS",[Mf]);class $f extends Ut{}Ee($f,"MODEL_CLASS_MAPPINGS",[Ef]);class eg extends Ut{}Ee(eg,"MODEL_CLASS_MAPPINGS",[vf]);class Ag extends Ut{}Ee(Ag,"MODEL_CLASS_MAPPINGS",[mI]);class tg extends Ut{}Ee(tg,"MODEL_CLASS_MAPPINGS",[xf]);class rg extends Ut{}Ee(rg,"MODEL_CLASS_MAPPINGS",[Bf]);class sg extends Ut{}Ee(sg,"MODEL_CLASS_MAPPINGS",[yf]);class ag extends Ut{}Ee(ag,"MODEL_CLASS_MAPPINGS",[Df]);class ng extends Ut{}Ee(ng,"MODEL_CLASS_MAPPINGS",[Tf]);class ig extends Ut{}Ee(ig,"MODEL_CLASS_MAPPINGS",[Pf]);class og extends Ut{}Ee(og,"MODEL_CLASS_MAPPINGS",[gf]);class lg extends Ut{}Ee(lg,"MODEL_CLASS_MAPPINGS",[pf]);class bI extends Re{constructor({logits:V,past_key_values:te,encoder_outputs:Te,decoder_attentions:Ye=null,cross_attentions:We=null}){super(),this.logits=V,this.past_key_values=te,this.encoder_outputs=Te,this.decoder_attentions=Ye,this.cross_attentions=We}}class ht extends Re{constructor({logits:V,...te}){super(),this.logits=V;const Te=Object.values(te);Te.length>0&&(this.attentions=Te)}}class cg extends Re{constructor({logits:V,embeddings:te}){super(),this.logits=V,this.embeddings=te}}class ls extends Re{constructor({logits:V}){super(),this.logits=V}}class ms extends Re{constructor({logits:V}){super(),this.logits=V}}class Ds extends Re{constructor({start_logits:V,end_logits:te}){super(),this.start_logits=V,this.end_logits=te}}class Zn extends Re{constructor({logits:V}){super(),this.logits=V}}class II extends Re{constructor({logits:V,past_key_values:te}){super(),this.logits=V,this.past_key_values=te}}class ug extends Re{constructor({alphas:V}){super(),this.alphas=V}}class dg extends Re{constructor({waveform:V,spectrogram:te}){super(),this.waveform=V,this.spectrogram=te}}},
vendor: 1,115 bytes, line 2881
2881"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":(a,i,n)=>{n.r(i),n.d(i,{ASTFeatureExtractor:()=>h});var g=n("./src/base/feature_extraction_utils.js");n("./src/utils/tensor.js");var p=n("./src/utils/audio.js");class h extends g.FeatureExtractor{constructor(k){super(k);const M=this.config.sampling_rate,E=(0,p.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(M/2),M,null,"kaldi",!0);this.mel_filters=E,this.window=(0,p.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(k,M){return(0,p.spectrogram)(k,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:M,transpose:!0})}async _call(k){(0,g.validate_audio_inputs)(k,"ASTFeatureExtractor");const M=await this._extract_fbank_features(k,this.config.max_length);if(this.config.do_normalize){const E=this.std*2,D=M.data;for(let B=0;B<D.length;++B)D[B]=(D[B]-this.mean)/E}return{input_values:M.unsqueeze_(0)}}}},
2881"./src/models/auto/feature_extraction_auto.js":(a,i,n)=>{n.r(i),n.d(i,{AutoFeatureExtractor:()=>C});var g=n("./src/utils/constants.js"),p=n("./src/utils/hub.js");n("./src/base/feature_extraction_utils.js");var h=n("./src/models/feature_extractors.js");class C{static async from_pretrained(M,E={}){const D=await(0,p.getModelJSON)(M,g.FEATURE_EXTRACTOR_NAME,!0,E),B=D.feature_extractor_type,v=h[B];if(!v)throw new Error(`Unknown feature_extractor_type: '${B}'. Please report this at ${g.GITHUB_ISSUE_URL}.`);return new v(D)}}},
2881"./src/models/auto/image_processing_auto.js":(a,i,n)=>{n.r(i),n.d(i,{AutoImageProcessor:()=>k});var g=n("./src/utils/constants.js"),p=n("./src/utils/hub.js"),h=n("./src/base/image_processors_utils.js"),C=n("./src/models/image_processors.js");class k{static async from_pretrained(E,D={}){const B=await(0,p.getModelJSON)(E,g.IMAGE_PROCESSOR_NAME,!0,D),v=B.image_processor_type??B.feature_extractor_type;let S=C[v==null?void 0:v.replace(/Fast$/,"")];return S||(v!==void 0&&console.warn(`Image processor type '${v}' not found, assuming base ImageProcessor. Please report this at ${g.GITHUB_ISSUE_URL}.`),S=h.ImageProcessor),new S(B)}}},
2881"./src/models/auto/processing_auto.js":(a,i,n)=>{n.r(i),n.d(i,{AutoProcessor:()=>E});var g=n("./src/utils/constants.js"),p=n("./src/utils/hub.js"),h=n("./src/base/processing_utils.js"),C=n("./src/models/processors.js"),k=n("./src/models/image_processors.js"),M=n("./src/models/feature_extractors.js");class E{static async from_pretrained(B,v={}){const S=await(0,p.getModelJSON)(B,g.IMAGE_PROCESSOR_NAME,!0,v),{image_processor_type:F,feature_extractor_type:R,processor_class:X}=S;if(X&&C[X])return C[X].from_pretrained(B,v);if(!F&&!R)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");const z={};if(F){const K=k[F.replace(/Fast$/,"")];if(!K)throw new Error(`Unknown image_processor_type: '${F}'.`);z.image_processor=new K(S)}if(R){const K=k[R];if(K)z.image_processor=new K(S);else{const d=M[R];if(!d)throw new Error(`Unknown feature_extractor_type: '${R}'.`);z.feature_extractor=new d(S)}}const L={};return new h.Processor(L,z,null)}}},
2881"./src/models/beit/image_processing_beit.js":(a,i,n)=>{n.r(i),n.d(i,{BeitFeatureExtractor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},
2881"./src/models/bit/image_processing_bit.js":(a,i,n)=>{n.r(i),n.d(i,{BitImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},
2881"./src/models/chinese_clip/image_processing_chinese_clip.js":(a,i,n)=>{n.r(i),n.d(i,{ChineseCLIPFeatureExtractor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},
2881"./src/models/clap/feature_extraction_clap.js":(a,i,n)=>{n.r(i),n.d(i,{ClapFeatureExtractor:()=>h});var g=n("./src/base/feature_extraction_utils.js");n("./src/utils/tensor.js");var p=n("./src/utils/audio.js");class h extends g.FeatureExtractor{constructor(k){super(k),this.mel_filters=(0,p.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=(0,p.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=(0,p.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(k,M,E,D){let B;const v=k.length-M;if(v>0)if(E==="rand_trunc"){const S=Math.floor(Math.random()*(v+1));k=k.subarray(S,S+M),B=await this._extract_fbank_features(k,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${E}" not implemented`);else{if(v<0){let S=new Float64Array(M);if(S.set(k),D==="repeat")for(let F=k.length;F<M;F+=k.length)S.set(k.subarray(0,Math.min(k.length,M-F)),F);else if(D==="repeatpad")for(let F=k.length;F<-v;F+=k.length)S.set(k,F);k=S}if(E==="fusion")throw new Error(`Truncation strategy "${E}" not implemented`);B=await this._extract_fbank_features(k,this.mel_filters_slaney,this.config.nb_max_samples)}return B.unsqueeze_(0)}async _extract_fbank_features(k,M,E=null){return(0,p.spectrogram)(k,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:M,log_mel:"dB",max_num_frames:E,do_pad:!1,transpose:!0})}async _call(k,{max_length:M=null}={}){return(0,g.validate_audio_inputs)(k,"ClapFeatureExtractor"),{input_features:(await this._get_input_mel(k,M??this.config.nb_max_samples,this.config.truncation,this.config.padding)).unsqueeze_(0)}}}},
2881"./src/models/clip/image_processing_clip.js":(a,i,n)=>{n.r(i),n.d(i,{CLIPFeatureExtractor:()=>h,CLIPImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},
2881"./src/models/convnext/image_processing_convnext.js":(a,i,n)=>{n.r(i),n.d(i,{ConvNextFeatureExtractor:()=>h,ConvNextImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{constructor(k){super(k),this.crop_pct=this.config.crop_pct??224/256}async resize(k){var E;const M=(E=this.size)==null?void 0:E.shortest_edge;if(M===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(M<384){const D=Math.floor(M/this.crop_pct),[B,v]=this.get_resize_output_image_size(k,{shortest_edge:D});k=await k.resize(B,v,{resample:this.resample}),k=await k.center_crop(M,M)}else k=await k.resize(M,M,{resample:this.resample});return k}}class h extends p{}},
2881"./src/models/dac/feature_extraction_dac.js":(a,i,n)=>{n.r(i),n.d(i,{DacFeatureExtractor:()=>p});var g=n("./src/models/encodec/feature_extraction_encodec.js");class p extends g.EncodecFeatureExtractor{}},
2881"./src/models/deit/image_processing_deit.js":(a,i,n)=>{n.r(i),n.d(i,{DeiTFeatureExtractor:()=>h,DeiTImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},
vendor: 649 bytes, line 2881
2881"./src/models/detr/image_processing_detr.js":(a,i,n)=>{n.r(i),n.d(i,{DetrFeatureExtractor:()=>C,DetrImageProcessor:()=>h});var g=n("./src/base/image_processors_utils.js"),p=n("./src/utils/tensor.js");class h extends g.ImageProcessor{async _call(M){const E=await super._call(M),D=[E.pixel_values.dims[0],64,64],B=(0,p.full)(D,1n);return{...E,pixel_mask:B}}post_process_object_detection(...M){return(0,g.post_process_object_detection)(...M)}post_process_panoptic_segmentation(...M){return(0,g.post_process_panoptic_segmentation)(...M)}post_process_instance_segmentation(...M){return(0,g.post_process_instance_segmentation)(...M)}}class C extends h{}},
2881"./src/models/dinov3_vit/image_processing_dinov3_vit.js":(a,i,n)=>{n.r(i),n.d(i,{DINOv3ViTImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},
2881"./src/models/donut/image_processing_donut.js":(a,i,n)=>{n.r(i),n.d(i,{DonutFeatureExtractor:()=>h,DonutImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{pad_image(k,M,E,D={}){const[B,v,S]=M;let F=this.image_mean;Array.isArray(this.image_mean)||(F=new Array(S).fill(F));let R=this.image_std;Array.isArray(R)||(R=new Array(S).fill(F));const X=F.map((z,L)=>-z/R[L]);return super.pad_image(k,M,E,{center:!0,constant_values:X,...D})}}class h extends p{}},
2881"./src/models/dpt/image_processing_dpt.js":(a,i,n)=>{n.r(i),n.d(i,{DPTFeatureExtractor:()=>h,DPTImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},
2881"./src/models/efficientnet/image_processing_efficientnet.js":(a,i,n)=>{n.r(i),n.d(i,{EfficientNetImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{constructor(C){super(C),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map(k=>k*k))}}},
2881"./src/models/encodec/feature_extraction_encodec.js":(a,i,n)=>{n.r(i),n.d(i,{EncodecFeatureExtractor:()=>h});var g=n("./src/base/feature_extraction_utils.js"),p=n("./src/utils/tensor.js");class h extends g.FeatureExtractor{async _call(k){(0,g.validate_audio_inputs)(k,"EncodecFeatureExtractor"),k instanceof Float64Array&&(k=new Float32Array(k));const M=this.config.feature_size;if(k.length%M!==0)throw new Error(`The length of the audio data must be a multiple of the number of channels (${M}).`);const E=[1,M,k.length/M];return{input_values:new p.Tensor("float32",k,E)}}}},
2881"./src/models/feature_extractors.js":(a,i,n)=>{n.r(i),n.d(i,{ASTFeatureExtractor:()=>g.ASTFeatureExtractor,ClapFeatureExtractor:()=>h.ClapFeatureExtractor,DacFeatureExtractor:()=>C.DacFeatureExtractor,EncodecFeatureExtractor:()=>p.EncodecFeatureExtractor,Gemma3nAudioFeatureExtractor:()=>k.Gemma3nAudioFeatureExtractor,ImageFeatureExtractor:()=>z.ImageProcessor,MoonshineFeatureExtractor:()=>M.MoonshineFeatureExtractor,ParakeetFeatureExtractor:()=>E.ParakeetFeatureExtractor,PyAnnoteFeatureExtractor:()=>D.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>B.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>v.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>S.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>F.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>R.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>X.WhisperFeatureExtractor});var g=n("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),p=n("./src/models/encodec/feature_extraction_encodec.js"),h=n("./src/models/clap/feature_extraction_clap.js"),C=n("./src/models/dac/feature_extraction_dac.js"),k=n("./src/models/gemma3n/feature_extraction_gemma3n.js"),M=n("./src/models/moonshine/feature_extraction_moonshine.js"),E=n("./src/models/parakeet/feature_extraction_parakeet.js"),D=n("./src/models/pyannote/feature_extraction_pyannote.js"),B=n("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),v=n("./src/models/snac/feature_extraction_snac.js"),S=n("./src/models/speecht5/feature_extraction_speecht5.js"),F=n("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),R=n("./src/models/wespeaker/feature_extraction_wespeaker.js"),X=n("./src/models/whisper/feature_extraction_whisper.js"),z=n("./src/base/image_processors_utils.js")},
2881"./src/models/florence2/processing_florence2.js":(a,i,n)=>{n.r(i),n.d(i,{Florence2Processor:()=>C});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js");class C extends g.Processor{constructor(M,E,D){super(M,E,D);const{tasks_answer_post_processing_type:B,task_prompts_without_inputs:v,task_prompts_with_input:S}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(B??{})),this.task_prompts_without_inputs=new Map(Object.entries(v??{})),this.task_prompts_with_input=new Map(Object.entries(S??{})),this.regexes={quad_boxes:/(.+?)<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm,bboxes:/([^<]+)?<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm},this.size_per_bin=1e3}construct_prompts(M){typeof M=="string"&&(M=[M]);const E=[];for(const D of M)if(this.task_prompts_without_inputs.has(D))E.push(this.task_prompts_without_inputs.get(D));else{for(const[B,v]of this.task_prompts_with_input)if(D.includes(B)){E.push(v.replaceAll("{input}",D).replaceAll(B,""));break}E.length!==M.length&&E.push(D)}return E}post_process_generation(M,E,D){const B=this.tasks_answer_post_processing_type.get(E)??"pure_text";M=M.replaceAll("<s>","").replaceAll("</s>","");let v;switch(B){case"pure_text":v=M;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":const S=B==="ocr"?"quad_boxes":"bboxes",F=M.matchAll(this.regexes[S]),R=[],X=[];for(const[z,L,...K]of F)R.push(L?L.trim():R.at(-1)??""),X.push(K.map((d,w)=>(Number(d)+.5)/this.size_per_bin*D[w%2]));v={labels:R,[S]:X};break;default:throw new Error(`Task "${E}" (of type "${B}") not yet implemented.`)}return{[E]:v}}async _call(M,E=null,D={}){if(!M&&!E)throw new Error("Either text or images must be provided");const B=await this.image_processor(M,D),v=E?this.tokenizer(this.construct_prompts(E),D):{};return{...B,...v}}}Ee(C,"tokenizer_class",h.AutoTokenizer),Ee(C,"image_processor_class",p.AutoImageProcessor)},
2881"./src/models/gemma3n/feature_extraction_gemma3n.js":(a,i,n)=>{n.r(i),n.d(i,{Gemma3nAudioFeatureExtractor:()=>C});var g=n("./src/base/feature_extraction_utils.js"),p=n("./src/utils/tensor.js"),h=n("./src/utils/audio.js");class C extends g.FeatureExtractor{constructor(M){super(M);const{fft_length:E,feature_size:D,min_frequency:B,max_frequency:v,sampling_rate:S,frame_length:F}=this.config,R=(0,h.mel_filter_bank)(Math.floor(1+E/2),D,B,v,S,null,"htk",!1);this.mel_filters=R,this.window=(0,h.window_function)(F,"hann")}async _extract_fbank_features(M,E){return(0,h.spectrogram)(M,this.window,this.config.frame_length,this.config.hop_length,{fft_length:this.config.fft_length,center:!1,onesided:!0,preemphasis:this.config.preemphasis,preemphasis_htk_flavor:this.config.preemphasis_htk_flavor,mel_filters:this.mel_filters,log_mel:"log",mel_floor:this.config.mel_floor,remove_dc_offset:!1,transpose:!0})}async _call(M,{max_length:E=48e4,truncation:D=!0,padding:B=!0,pad_to_multiple_of:v=128}={}){if((0,g.validate_audio_inputs)(M,"Gemma3nAudioFeatureExtractor"),D&&M.length>E&&(M=M.slice(0,E)),B&&M.length%v!==0){const R=v-M.length%v,X=new Float64Array(M.length+R);X.set(M),this.config.padding_value!==0&&X.fill(this.config.padding_value,M.length),M=X}const S=await this._extract_fbank_features(M,this.config.max_length),F=(0,p.full)([1,S.dims[0]],!0);return{input_features:S.unsqueeze_(0),input_features_mask:F}}}},
2881"./src/models/gemma3n/processing_gemma3n.js":(a,i,n)=>{n.r(i),n.d(i,{Gemma3nProcessor:()=>k});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/models/auto/feature_extraction_auto.js"),C=n("./src/tokenizers.js");n("./src/utils/image.js"),n("./src/utils/audio.js");class k extends g.Processor{constructor(E,D,B){super(E,D,B),this.audio_seq_length=this.config.audio_seq_length,this.image_seq_length=this.config.image_seq_length;const{audio_token_id:v,boa_token:S,audio_token:F,eoa_token:R,image_token_id:X,boi_token:z,image_token:L,eoi_token:K}=this.tokenizer.config;this.audio_token_id=v,this.boa_token=S,this.audio_token=F;const d=F.repeat(this.audio_seq_length);this.full_audio_sequence=` 2882 2883${S}${d}${R} 2884 2885`,this.image_token_id=X,this.boi_token=z,this.image_token=L;const w=L.repeat(this.image_seq_length);this.full_image_sequence=` 2886 2887${z}${w}${K} 2888 2889`}async _call(E,D=null,B=null,v={}){typeof E=="string"&&(E=[E]);let S;B&&(S=await this.feature_extractor(B,v),E=E.map(X=>X.replaceAll(this.audio_token,this.full_audio_sequence)));let F;return D&&(F=await this.image_processor(D,v),E=E.map(X=>X.replaceAll(this.image_token,this.full_image_sequence))),{...this.tokenizer(E,v),...F,...S}}}Ee(k,"image_processor_class",p.AutoImageProcessor),Ee(k,"feature_extractor_class",h.AutoFeatureExtractor),Ee(k,"tokenizer_class",C.AutoTokenizer),Ee(k,"uses_processor_config",!0),Ee(k,"uses_chat_template_file",!0)},
2889"./src/models/glpn/image_processing_glpn.js":(a,i,n)=>{n.r(i),n.d(i,{GLPNFeatureExtractor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},
2889"./src/models/grounding_dino/image_processing_grounding_dino.js":(a,i,n)=>{n.r(i),n.d(i,{GroundingDinoImageProcessor:()=>h});var g=n("./src/base/image_processors_utils.js"),p=n("./src/utils/tensor.js");class h extends g.ImageProcessor{async _call(k){const M=await super._call(k),E=M.pixel_values.dims,D=(0,p.ones)([E[0],E[2],E[3]]);return{...M,pixel_mask:D}}}},
2889"./src/models/grounding_dino/processing_grounding_dino.js":(a,i,n)=>{n.r(i),n.d(i,{GroundingDinoProcessor:()=>M});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js"),C=n("./src/base/image_processors_utils.js");function k(E,D){const v=E.dims.at(-1)-1,S=E.tolist();S.fill(!1,0,1),S.fill(!1,v);const F=D.tolist();return S.map((R,X)=>R?X:null).filter(R=>R!==null).map(R=>F[R])}class M extends g.Processor{async _call(D,B,v={}){const S=D?await this.image_processor(D,v):{};return{...B?this.tokenizer(B,v):{},...S}}post_process_grounded_object_detection(D,B,{box_threshold:v=.25,text_threshold:S=.25,target_sizes:F=null}={}){const{logits:R,pred_boxes:X}=D,z=R.dims[0];if(F!==null&&F.length!==z)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const L=R.dims.at(1),K=R.sigmoid(),d=K.max(-1).tolist(),w=X.tolist().map(u=>u.map(y=>(0,C.center_to_corners_format)(y))),e=[];for(let u=0;u<z;++u){const y=F!==null?F[u]:null;y!==null&&(w[u]=w[u].map(se=>se.map((we,be)=>we*y[(be+1)%2])));const ee=d[u],T=[],O=[],ge=[];for(let se=0;se<L;++se){const we=ee[se];if(we<=v)continue;const be=w[u][se],Be=K[u][se];T.push(we),ge.push(be);const ve=k(Be.gt(S),B[u]);O.push(ve)}e.push({scores:T,boxes:ge,labels:this.batch_decode(O)})}return e}}Ee(M,"tokenizer_class",h.AutoTokenizer),Ee(M,"image_processor_class",p.AutoImageProcessor)},
2889"./src/models/idefics3/image_processing_idefics3.js":(a,i,n)=>{n.r(i),n.d(i,{Idefics3ImageProcessor:()=>h});var g=n("./src/base/image_processors_utils.js"),p=n("./src/utils/tensor.js");class h extends g.ImageProcessor{constructor(k){super(k),this.do_image_splitting=k.do_image_splitting??!0,this.max_image_size=k.max_image_size}get_resize_for_vision_encoder(k,M){let[E,D]=k.dims.slice(-2);const B=D/E;return D>=E?(D=Math.ceil(D/M)*M,E=Math.floor(D/B),E=Math.ceil(E/M)*M):(E=Math.ceil(E/M)*M,D=Math.floor(E*B),D=Math.ceil(D/M)*M),{height:E,width:D}}async _call(k,{do_image_splitting:M=null,return_row_col_info:E=!1}={}){let D;if(!Array.isArray(k))D=[[k]];else{if(k.length===0||!k[0])throw new Error("No images provided.");Array.isArray(k[0])?D=k:D=[k]}let B=[],v=[],S=[];const F=[],R=[];for(const u of D){let y=await Promise.all(u.map(O=>this.preprocess(O)));F.push(...y.map(O=>O.original_size)),R.push(...y.map(O=>O.reshaped_input_size)),y.forEach(O=>O.pixel_values.unsqueeze_(0));const{longest_edge:ee}=this.max_image_size;let T;if(M??this.do_image_splitting){let O=new Array(y.length),ge=new Array(y.length);T=await Promise.all(y.map(async(se,we)=>{const be=this.get_resize_for_vision_encoder(se.pixel_values,ee),Be=await(0,p.interpolate_4d)(se.pixel_values,{size:[be.height,be.width]}),{frames:ve,num_splits_h:De,num_splits_w:je}=await this.split_image(Be,this.max_image_size);return O[we]=De,ge[we]=je,(0,p.cat)(ve,0)})),v.push(O),S.push(ge)}else{const O=[ee,ee];T=await Promise.all(y.map(ge=>(0,p.interpolate_4d)(ge.pixel_values,{size:O}))),v.push(new Array(y.length).fill(0)),S.push(new Array(y.length).fill(0))}B.push((0,p.cat)(T,0))}const X=B.length,[z,L,K,d]=B[0].dims;let w,e;if(X===1)w=B[0].unsqueeze_(0),e=(0,p.full)([X,z,K,d],!0);else{const u=Math.max(...B.map(T=>T.dims.at(0)));e=(0,p.full)([X,u,K,d],!0);const y=e.data,ee=u*K*d;for(let T=0;T<X;++T){const O=B[T].dims[0];if(O<u){B[T]=(0,p.cat)([B[T],(0,p.full)([u-O,L,K,d],0)],0);const ge=T*ee+O*K*d,se=(T+1)*ee;y.fill(!1,ge,se)}}w=(0,p.stack)(B,0)}return{pixel_values:w,pixel_attention_mask:e,original_sizes:F,reshaped_input_sizes:R,...E?{rows:v,cols:S}:{}}}async split_image(k,{longest_edge:M}){const E=M,D=M,B=[],[v,S]=k.dims.slice(-2);let F=0,R=0;if(v>E||S>D){F=Math.ceil(v/E),R=Math.ceil(S/D);const X=Math.ceil(v/F),z=Math.ceil(S/R);for(let d=0;d<F;++d)for(let w=0;w<R;++w){let e,u,y,ee;d===F-1?(u=v-X,ee=v):(u=d*X,ee=(d+1)*X),w===R-1?(e=S-z,y=S):(e=w*z,y=(w+1)*z);const T=[u,e],O=[ee,y],ge=await(0,p.slice)(k,T,O,[2,3]);B.push(ge)}const L=E,K=D;(v!==L||S!==K)&&(k=await(0,p.interpolate_4d)(k,{size:[L,K]}))}return B.push(k),{frames:B,num_splits_h:F,num_splits_w:R}}}},
2889"./src/models/idefics3/processing_idefics3.js":(a,i,n)=>{n.r(i),n.d(i,{Idefics3Processor:()=>D});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js");n("./src/utils/image.js");var C=n("./src/utils/core.js");function k(B,v,S,F,R,X){let z="";for(let L=0;L<v;++L){for(let K=0;K<S;++K)z+=F+`<row_${L+1}_col_${K+1}>`+R.repeat(B);z+=` 2890`}return z+=` 2891${F}${X}`+R.repeat(B)+`${F}`,z}function M(B,v,S,F){return`${v}${F}`+S.repeat(B)+`${v}`}function E(B,v,S,F,R,X){return B===0&&v===0?M(S,F,R,X):k(S,B,v,F,R,X)}class D extends g.Processor{constructor(){super(...arguments);Ee(this,"fake_image_token","<fake_token_around_image>");Ee(this,"image_token","<image>");Ee(this,"global_img_token","<global-img>")}async _call(S,F=null,R={}){R.return_row_col_info??(R.return_row_col_info=!0);let X;F&&(X=await this.image_processor(F,R)),Array.isArray(S)||(S=[S]);const z=X.rows??[new Array(S.length).fill(0)],L=X.cols??[new Array(S.length).fill(0)],K=this.config.image_seq_len,d=[],w=[];for(let u=0;u<S.length;++u){const y=S[u],ee=z[u],T=L[u];d.push((0,C.count)(y,this.image_token));const O=ee.map((we,be)=>E(we,T[be],K,this.fake_image_token,this.image_token,this.global_img_token)),ge=y.split(this.image_token);if(ge.length===0)throw new Error("The image token should be present in the text.");let se=ge[0];for(let we=0;we<O.length;++we)se+=O[we]+ge[we+1];w.push(se)}return{...this.tokenizer(w),...X}}}Ee(D,"image_processor_class",p.AutoImageProcessor),Ee(D,"tokenizer_class",h.AutoTokenizer),Ee(D,"uses_processor_config",!0)},
2891"./src/models/image_processors.js":(a,i,n)=>{n.r(i),n.d(i,{BeitFeatureExtractor:()=>g.BeitFeatureExtractor,BitImageProcessor:()=>p.BitImageProcessor,CLIPFeatureExtractor:()=>C.CLIPFeatureExtractor,CLIPImageProcessor:()=>C.CLIPImageProcessor,ChineseCLIPFeatureExtractor:()=>h.ChineseCLIPFeatureExtractor,ConvNextFeatureExtractor:()=>k.ConvNextFeatureExtractor,ConvNextImageProcessor:()=>k.ConvNextImageProcessor,DINOv3ViTImageProcessor:()=>D.DINOv3ViTImageProcessor,DPTFeatureExtractor:()=>v.DPTFeatureExtractor,DPTImageProcessor:()=>v.DPTImageProcessor,DeiTFeatureExtractor:()=>M.DeiTFeatureExtractor,DeiTImageProcessor:()=>M.DeiTImageProcessor,DetrFeatureExtractor:()=>E.DetrFeatureExtractor,DetrImageProcessor:()=>E.DetrImageProcessor,DonutFeatureExtractor:()=>B.DonutFeatureExtractor,DonutImageProcessor:()=>B.DonutImageProcessor,EfficientNetImageProcessor:()=>S.EfficientNetImageProcessor,GLPNFeatureExtractor:()=>F.GLPNFeatureExtractor,GroundingDinoImageProcessor:()=>R.GroundingDinoImageProcessor,Idefics3ImageProcessor:()=>X.Idefics3ImageProcessor,JinaCLIPImageProcessor:()=>L.JinaCLIPImageProcessor,LlavaOnevisionImageProcessor:()=>K.LlavaOnevisionImageProcessor,Mask2FormerImageProcessor:()=>d.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>w.MaskFormerFeatureExtractor,MaskFormerImageProcessor:()=>w.MaskFormerImageProcessor,MobileNetV1FeatureExtractor:()=>e.MobileNetV1FeatureExtractor,MobileNetV1ImageProcessor:()=>e.MobileNetV1ImageProcessor,MobileNetV2FeatureExtractor:()=>u.MobileNetV2FeatureExtractor,MobileNetV2ImageProcessor:()=>u.MobileNetV2ImageProcessor,MobileNetV3FeatureExtractor:()=>y.MobileNetV3FeatureExtractor,MobileNetV3ImageProcessor:()=>y.MobileNetV3ImageProcessor,MobileNetV4FeatureExtractor:()=>ee.MobileNetV4FeatureExtractor,MobileNetV4ImageProcessor:()=>ee.MobileNetV4ImageProcessor,MobileViTFeatureExtractor:()=>T.MobileViTFeatureExtractor,MobileViTImageProcessor:()=>T.MobileViTImageProcessor,NougatImageProcessor:()=>O.NougatImageProcessor,OwlViTFeatureExtractor:()=>se.OwlViTFeatureExtractor,OwlViTImageProcessor:()=>se.OwlViTImageProcessor,Owlv2ImageProcessor:()=>ge.Owlv2ImageProcessor,Phi3VImageProcessor:()=>we.Phi3VImageProcessor,PixtralImageProcessor:()=>be.PixtralImageProcessor,PvtImageProcessor:()=>Be.PvtImageProcessor,Qwen2VLImageProcessor:()=>ve.Qwen2VLImageProcessor,RTDetrImageProcessor:()=>De.RTDetrImageProcessor,Sam2ImageProcessor:()=>Le.Sam2ImageProcessor,Sam3ImageProcessor:()=>Pe.Sam3ImageProcessor,SamImageProcessor:()=>je.SamImageProcessor,SegformerFeatureExtractor:()=>me.SegformerFeatureExtractor,SegformerImageProcessor:()=>me.SegformerImageProcessor,SiglipImageProcessor:()=>ie.SiglipImageProcessor,SmolVLMImageProcessor:()=>Ie.SmolVLMImageProcessor,Swin2SRImageProcessor:()=>Fe.Swin2SRImageProcessor,VLMImageProcessor:()=>z.VLMImageProcessor,ViTFeatureExtractor:()=>xe.ViTFeatureExtractor,ViTImageProcessor:()=>xe.ViTImageProcessor,VitMatteImageProcessor:()=>sA.VitMatteImageProcessor,VitPoseImageProcessor:()=>uA.VitPoseImageProcessor,YolosFeatureExtractor:()=>hA.YolosFeatureExtractor,YolosImageProcessor:()=>hA.YolosImageProcessor});var g=n("./src/models/beit/image_processing_beit.js"),p=n("./src/models/bit/image_processing_bit.js"),h=n("./src/models/chinese_clip/image_processing_chinese_clip.js"),C=n("./src/models/clip/image_processing_clip.js"),k=n("./src/models/convnext/image_processing_convnext.js"),M=n("./src/models/deit/image_processing_deit.js"),E=n("./src/models/detr/image_processing_detr.js"),D=n("./src/models/dinov3_vit/image_processing_dinov3_vit.js"),B=n("./src/models/donut/image_processing_donut.js"),v=n("./src/models/dpt/image_processing_dpt.js"),S=n("./src/models/efficientnet/image_processing_efficientnet.js"),F=n("./src/models/glpn/image_processing_glpn.js"),R=n("./src/models/grounding_dino/image_processing_grounding_dino.js"),X=n("./src/models/idefics3/image_processing_idefics3.js"),z=n("./src/models/janus/image_processing_janus.js"),L=n("./src/models/jina_clip/image_processing_jina_clip.js"),K=n("./src/models/llava_onevision/image_processing_llava_onevision.js"),d=n("./src/models/mask2former/image_processing_mask2former.js"),w=n("./src/models/maskformer/image_processing_maskformer.js"),e=n("./src/models/mobilenet_v1/image_processing_mobilenet_v1.js"),u=n("./src/models/mobilenet_v2/image_processing_mobilenet_v2.js"),y=n("./src/models/mobilenet_v3/image_processing_mobilenet_v3.js"),ee=n("./src/models/mobilenet_v4/image_processing_mobilenet_v4.js"),T=n("./src/models/mobilevit/image_processing_mobilevit.js"),O=n("./src/models/nougat/image_processing_nougat.js"),ge=n("./src/models/owlv2/image_processing_owlv2.js"),se=n("./src/models/owlvit/image_processing_owlvit.js"),we=n("./src/models/phi3_v/image_processing_phi3_v.js"),be=n("./src/models/pixtral/image_processing_pixtral.js"),Be=n("./src/models/pvt/image_processing_pvt.js"),ve=n("./src/models/qwen2_vl/image_processing_qwen2_vl.js"),De=n("./src/models/rt_detr/image_processing_rt_detr.js"),je=n("./src/models/sam/image_processing_sam.js"),Le=n("./src/models/sam2/image_processing_sam2.js"),Pe=n("./src/models/sam3/image_processing_sam3.js"),me=n("./src/models/segformer/image_processing_segformer.js"),ie=n("./src/models/siglip/image_processing_siglip.js"),Ie=n("./src/models/smolvlm/image_processing_smolvlm.js"),Fe=n("./src/models/swin2sr/image_processing_swin2sr.js"),xe=n("./src/models/vit/image_processing_vit.js"),sA=n("./src/models/vitmatte/image_processing_vitmatte.js"),uA=n("./src/models/vitpose/image_processing_vitpose.js"),hA=n("./src/models/yolos/image_processing_yolos.js")},
2891"./src/models/janus/image_processing_janus.js":(a,i,n)=>{n.r(i),n.d(i,{VLMImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{constructor(C){super({do_pad:!0,pad_size:{width:C.image_size,height:C.image_size},...C}),this.constant_values=this.config.background_color.map(k=>k*this.rescale_factor)}pad_image(C,k,M,E){return super.pad_image(C,k,M,{constant_values:this.constant_values,center:!0,...E})}}},
2891"./src/models/janus/processing_janus.js":(a,i,n)=>{n.r(i),n.d(i,{VLChatProcessor:()=>E});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js"),C=n("./src/utils/core.js"),k=n("./src/utils/tensor.js"),M=n("./src/utils/image.js");class E extends g.Processor{constructor(B,v,S){super(B,v,S),this.image_tag=this.config.image_tag,this.image_start_tag=this.config.image_start_tag,this.image_end_tag=this.config.image_end_tag,this.num_image_tokens=this.config.num_image_tokens}async _call(B,{images:v=null,chat_template:S="default"}={}){v?Array.isArray(v)||(v=[v]):v=await Promise.all(B.filter(T=>T.images).flatMap(T=>T.images).map(T=>M.RawImage.read(T)));const F=this.tokenizer,R=F.apply_chat_template(B,{tokenize:!1,add_generation_prompt:!0,chat_template:S}),X=T=>F.encode(T,{add_special_tokens:!1}),z=R.split(this.image_tag),L=z.length-1;if(v.length!==L)throw new Error(`Number of images provided (${v.length}) does not match number of "${this.image_tag}" image tags (${L})`);const[K,d,w]=F.model.convert_tokens_to_ids([this.image_tag,this.image_start_tag,this.image_end_tag]);let e=X(z[0]),u=new Array(e.length).fill(!1);for(let T=1;T<z.length;++T){const O=new Array(this.num_image_tokens).fill(K),ge=X(z[T]);e=(0,C.mergeArrays)(e,[d],O,[w],ge);const se=new Array(this.num_image_tokens).fill(!0);u=(0,C.mergeArrays)(u,[!1],se,[!1],new Array(ge.length).fill(!1))}const y=[1,e.length],ee={input_ids:new k.Tensor("int64",e,y),attention_mask:new k.Tensor("int64",new Array(e.length).fill(1),y),images_seq_mask:new k.Tensor("bool",u,y),images_emb_mask:new k.Tensor("bool",new Array(L*this.num_image_tokens).fill(!0),[1,L,this.num_image_tokens])};if(v&&v.length>0){const T=await this.image_processor(v);return T.pixel_values.unsqueeze_(0),{...ee,...T}}return ee}}Ee(E,"image_processor_class",p.AutoImageProcessor),Ee(E,"tokenizer_class",h.AutoTokenizer),Ee(E,"uses_processor_config",!0)},
2891"./src/models/jina_clip/image_processing_jina_clip.js":(a,i,n)=>{n.r(i),n.d(i,{JinaCLIPImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{constructor(C){const{resize_mode:k,fill_color:M,interpolation:E,size:D,...B}=C,v=k==="squash"?{width:D,height:D}:k==="shortest"?{shortest_edge:D}:{longest_edge:D},S=E==="bicubic"?3:2;super({...B,size:v,resample:S,do_center_crop:!0,crop_size:D,do_normalize:!0})}}},
2891"./src/models/jina_clip/processing_jina_clip.js":(a,i,n)=>{n.r(i),n.d(i,{JinaCLIPProcessor:()=>C});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js");class C extends g.Processor{async _call(M=null,E=null,D={}){if(!M&&!E)throw new Error("Either text or images must be provided");const B=M?this.tokenizer(M,D):{},v=E?await this.image_processor(E,D):{};return{...B,...v}}}Ee(C,"tokenizer_class",h.AutoTokenizer),Ee(C,"image_processor_class",p.AutoImageProcessor)},
2891"./src/models/llava/processing_llava.js":(a,i,n)=>{n.r(i),n.d(i,{LlavaProcessor:()=>C});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js");class C extends g.Processor{async _call(M,E=null,D={}){const B=await this.image_processor(M,D);if(E){const[S,F]=B.pixel_values.dims.slice(-2),{image_token:R,patch_size:X,num_additional_image_tokens:z}=this.config,L=Math.floor(S/X)*Math.floor(F/X)+z;E=structuredClone(E),Array.isArray(E)||(E=[E]);for(let K=0;K<E.length;++K)E[K]=E[K].replace(R,R.repeat(L))}const v=E?this.tokenizer(E,D):{};return{...B,...v}}}Ee(C,"tokenizer_class",h.AutoTokenizer),Ee(C,"image_processor_class",p.AutoImageProcessor),Ee(C,"uses_processor_config",!0)},
2891"./src/models/llava_onevision/image_processing_llava_onevision.js":(a,i,n)=>{n.r(i),n.d(i,{LlavaOnevisionImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},
2891"./src/models/mask2former/image_processing_mask2former.js":(a,i,n)=>{n.r(i),n.d(i,{Mask2FormerImageProcessor:()=>p});var g=n("./src/models/maskformer/image_processing_maskformer.js");class p extends g.MaskFormerImageProcessor{}},
2891"./src/models/maskformer/image_processing_maskformer.js":(a,i,n)=>{n.r(i),n.d(i,{MaskFormerFeatureExtractor:()=>h,MaskFormerImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_panoptic_segmentation(...k){return(0,g.post_process_panoptic_segmentation)(...k)}post_process_instance_segmentation(...k){return(0,g.post_process_instance_segmentation)(...k)}}class h extends p{}},
2891"./src/models/mgp_str/processing_mgp_str.js":(a,i,n)=>{n.r(i),n.d(i,{MgpstrProcessor:()=>M});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js"),C=n("./src/utils/maths.js");const k={char:["char_decode",1],bpe:["bpe_decode",2],wp:["wp_decode",102]};class M extends g.Processor{get char_tokenizer(){return this.components.char_tokenizer}get bpe_tokenizer(){return this.components.bpe_tokenizer}get wp_tokenizer(){return this.components.wp_tokenizer}_decode_helper(D,B){if(!k.hasOwnProperty(B))throw new Error(`Format ${B} is not supported.`);const[v,S]=k[B],F=this[v].bind(this),[R,X]=D.dims,z=[],L=[],K=D.tolist();for(let w=0;w<R;++w){const e=K[w],u=[],y=[];for(let T=1;T<X;++T){const[O,ge]=(0,C.max)((0,C.softmax)(e[T]));if(y.push(O),ge==S)break;u.push(ge)}const ee=y.length>0?y.reduce((T,O)=>T*O,1):0;L.push(u),z.push(ee)}return[F(L),z]}char_decode(D){return this.char_tokenizer.batch_decode(D).map(B=>B.replaceAll(" ",""))}bpe_decode(D){return this.bpe_tokenizer.batch_decode(D)}wp_decode(D){return this.wp_tokenizer.batch_decode(D).map(B=>B.replaceAll(" ",""))}batch_decode([D,B,v]){const[S,F]=this._decode_helper(D,"char"),[R,X]=this._decode_helper(B,"bpe"),[z,L]=this._decode_helper(v,"wp"),K=[],d=[];for(let w=0;w<S.length;++w){const[e,u]=(0,C.max)([F[w],X[w],L[w]]);K.push([S[w],R[w],z[w]][u]),d.push(e)}return{generated_text:K,scores:d,char_preds:S,bpe_preds:R,wp_preds:z}}static async from_pretrained(...D){const B=await super.from_pretrained(...D),v=await h.AutoTokenizer.from_pretrained("Xenova/gpt2"),S=await h.AutoTokenizer.from_pretrained("Xenova/bert-base-uncased");return B.components={image_processor:B.image_processor,char_tokenizer:B.tokenizer,bpe_tokenizer:v,wp_tokenizer:S},B}async _call(D,B=null){const v=await this.image_processor(D);return B&&(v.labels=this.tokenizer(B).input_ids),v}}Ee(M,"tokenizer_class",h.AutoTokenizer),Ee(M,"image_processor_class",p.AutoImageProcessor)},
2891"./src/models/mobilenet_v1/image_processing_mobilenet_v1.js":(a,i,n)=>{n.r(i),n.d(i,{MobileNetV1FeatureExtractor:()=>h,MobileNetV1ImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},
2891"./src/models/mobilenet_v2/image_processing_mobilenet_v2.js":(a,i,n)=>{n.r(i),n.d(i,{MobileNetV2FeatureExtractor:()=>h,MobileNetV2ImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},
2891"./src/models/mobilenet_v3/image_processing_mobilenet_v3.js":(a,i,n)=>{n.r(i),n.d(i,{MobileNetV3FeatureExtractor:()=>h,MobileNetV3ImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},
2891"./src/models/mobilenet_v4/image_processing_mobilenet_v4.js":(a,i,n)=>{n.r(i),n.d(i,{MobileNetV4FeatureExtractor:()=>h,MobileNetV4ImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},
2891"./src/models/mobilevit/image_processing_mobilevit.js":(a,i,n)=>{n.r(i),n.d(i,{MobileViTFeatureExtractor:()=>h,MobileViTImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},
2891"./src/models/moonshine/feature_extraction_moonshine.js":(a,i,n)=>{n.r(i),n.d(i,{MoonshineFeatureExtractor:()=>h});var g=n("./src/base/feature_extraction_utils.js"),p=n("./src/utils/tensor.js");class h extends g.FeatureExtractor{async _call(k){(0,g.validate_audio_inputs)(k,"MoonshineFeatureExtractor"),k instanceof Float64Array&&(k=new Float32Array(k));const M=[1,k.length];return{input_values:new p.Tensor("float32",k,M)}}}},
2891"./src/models/moonshine/processing_moonshine.js":(a,i,n)=>{n.r(i),n.d(i,{MoonshineProcessor:()=>C});var g=n("./src/models/auto/feature_extraction_auto.js"),p=n("./src/tokenizers.js"),h=n("./src/base/processing_utils.js");class C extends h.Processor{async _call(M){return await this.feature_extractor(M)}}Ee(C,"tokenizer_class",p.AutoTokenizer),Ee(C,"feature_extractor_class",g.AutoFeatureExtractor)},
2891"./src/models/nougat/image_processing_nougat.js":(a,i,n)=>{n.r(i),n.d(i,{NougatImageProcessor:()=>p});var g=n("./src/models/donut/image_processing_donut.js");class p extends g.DonutImageProcessor{}},
2891"./src/models/owlv2/image_processing_owlv2.js":(a,i,n)=>{n.r(i),n.d(i,{Owlv2ImageProcessor:()=>p});var g=n("./src/models/owlvit/image_processing_owlvit.js");class p extends g.OwlViTImageProcessor{}},
2891"./src/models/owlvit/image_processing_owlvit.js":(a,i,n)=>{n.r(i),n.d(i,{OwlViTFeatureExtractor:()=>h,OwlViTImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_object_detection(...k){return(0,g.post_process_object_detection)(...k)}}class h extends p{}},
2891"./src/models/owlvit/processing_owlvit.js":(a,i,n)=>{n.r(i),n.d(i,{OwlViTProcessor:()=>C});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js");class C extends g.Processor{}Ee(C,"tokenizer_class",h.AutoTokenizer),Ee(C,"image_processor_class",p.AutoImageProcessor)},
2891"./src/models/paligemma/processing_paligemma.js":(a,i,n)=>{n.r(i),n.d(i,{PaliGemmaProcessor:()=>M});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js");const C="<image>";function k(E,D,B,v,S){return`${v.repeat(B*S)}${D}${E} 2892`}class M extends g.Processor{async _call(D,B=null,v={}){B||(console.warn("You are using PaliGemma without a text prefix. It will perform as a picture-captioning model."),B=""),Array.isArray(D)||(D=[D]),Array.isArray(B)||(B=[B]);const S=this.tokenizer.bos_token,F=this.image_processor.config.image_seq_length;let R;B.some(L=>L.includes(C))?R=B.map(L=>{const K=L.replaceAll(C,C.repeat(F)),d=K.lastIndexOf(C),w=d===-1?0:d+C.length;return K.slice(0,w)+S+K.slice(w)+` 2893`}):(console.warn("You are passing both `text` and `images` to `PaliGemmaProcessor`. The processor expects special image tokens in the text, as many tokens as there are images per each text. It is recommended to add `<image>` tokens in the very beginning of your text. For this call, we will infer how many images each text has and add special tokens."),R=B.map(L=>k(L,S,F,C,D.length)));const X=this.tokenizer(R,v);return{...await this.image_processor(D,v),...X}}}Ee(M,"tokenizer_class",h.AutoTokenizer),Ee(M,"image_processor_class",p.AutoImageProcessor),Ee(M,"uses_processor_config",!1)},
2893"./src/models/parakeet/feature_extraction_parakeet.js":(a,i,n)=>{n.r(i),n.d(i,{ParakeetFeatureExtractor:()=>k});var g=n("./src/base/feature_extraction_utils.js"),p=n("./src/utils/tensor.js"),h=n("./src/utils/audio.js");const C=1e-5;class k extends g.FeatureExtractor{constructor(E){var v;super(E),(v=this.config).mel_filters??(v.mel_filters=(0,h.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,this.config.sampling_rate/2,this.config.sampling_rate,"slaney","slaney"));const D=(0,h.window_function)(this.config.win_length,"hann",{periodic:!1});this.window=new Float64Array(this.config.n_fft);const B=Math.floor((this.config.n_fft-this.config.win_length)/2);this.window.set(D,B)}async _extract_fbank_features(E){const D=this.config.preemphasis;E=new Float64Array(E);for(let v=E.length-1;v>=1;--v)E[v]-=D*E[v-1];return await(0,h.spectrogram)(E,this.window,this.window.length,this.config.hop_length,{fft_length:this.config.n_fft,power:2,mel_filters:this.config.mel_filters,log_mel:"log",mel_floor:-1/0,pad_mode:"constant",center:!0,transpose:!0,mel_offset:2**-24})}async _call(E){(0,g.validate_audio_inputs)(E,"ParakeetFeatureExtractor");const D=await this._extract_fbank_features(E),B=Math.floor((E.length+Math.floor(this.config.n_fft/2)*2-this.config.n_fft)/this.config.hop_length),v=D.data;v.fill(0,B*D.dims[1]);const[S,F]=D.dims,R=new Float64Array(F),X=new Float64Array(F);for(let K=0;K<B;++K){const d=K*F;for(let w=0;w<F;++w){const e=v[d+w];R[w]+=e,X[w]+=e*e}}const z=B>1?B-1:1;for(let K=0;K<F;++K){const d=R[K]/B,w=(X[K]-B*d*d)/z,u=1/(Math.sqrt(w)+C);for(let y=0;y<B;++y){const ee=y*F+K;v[ee]=(v[ee]-d)*u}}const L=new BigInt64Array(S);return L.fill(1n,0,B),{input_features:D.unsqueeze_(0),attention_mask:new p.Tensor("int64",L,[1,S])}}}},
2893"./src/models/phi3_v/image_processing_phi3_v.js":(a,i,n)=>{n.r(i),n.d(i,{Phi3VImageProcessor:()=>D});var g=n("./src/base/image_processors_utils.js"),p=n("./src/utils/tensor.js");const h=336,C=[2,3],{ceil:k,floor:M,sqrt:E}=Math;class D extends g.ImageProcessor{constructor(v){super({...v,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=v.num_crops}calc_num_image_tokens_from_image_size(v,S){const{num_img_tokens:F}=this.config;return M((M(S/h)*M(v/h)+1)*F+1+(M(S/h)+1)*E(F))}get_resize_output_image_size(v,S){const F=this._num_crops,[R,X]=v.size;let z=R/X,L=1;for(;L*Math.ceil(L/z)<=F;)L+=1;L-=1;const K=Math.floor(L*336),d=Math.floor(K/z);return[K,d]}pad_image(v,S,F,R={}){const[X,z]=S,L=h*k(X/h),K=h*k(z/h),d=[1,1,1].map((w,e)=>(w-this.image_mean[e])/this.image_std[e]);return super.pad_image(v,S,{width:K,height:L},{center:!0,constant_values:d,...R})}async _call(v,{num_crops:S=null}={}){if(this._num_crops=S??(S=this.config.num_crops),S<4||E(S)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(v)||(v=[v]);const F=v.length,R=await Promise.all(v.map(u=>this.preprocess(u))),X=R.map(u=>u.original_size),z=R.map(u=>u.reshaped_input_size),L=[];for(const{pixel_values:u}of R){u.unsqueeze_(0);const[y,ee]=u.dims.slice(-2),T=await(0,p.interpolate_4d)(u,{size:[h,h],mode:"bicubic"});if(S>0){const O=[],ge=E(S),se=M(ee/ge),we=M(y/ge);for(let Be=0;Be<ge;++Be)for(let ve=0;ve<ge;++ve){let De,je,Le,Pe;Be===ge-1?(je=y-we,Pe=y):(je=Be*we,Pe=(Be+1)*we),ve===ge-1?(De=ee-se,Le=ee):(De=ve*se,Le=(ve+1)*se);const me=[je,De],ie=[Pe,Le],Ie=await(0,p.slice)(u,me,ie,C);O.push(Ie)}const be=await(0,p.interpolate_4d)((0,p.cat)(O,0),{size:[h,h],mode:"bicubic"});L.push((0,p.cat)([T,be],0))}else L.push(T)}const K=(0,p.stack)(L,0),d=z.map(u=>u.map(y=>h*k(y/h))),w=new p.Tensor("int64",d.flat(),[F,2]),e=d.map(([u,y])=>this.calc_num_image_tokens_from_image_size(y,u));return{pixel_values:K,original_sizes:X,reshaped_input_sizes:z,image_sizes:w,num_img_tokens:e}}}},
2893"./src/models/phi3_v/processing_phi3_v.js":(a,i,n)=>{n.r(i),n.d(i,{Phi3VProcessor:()=>M});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js");n("./src/utils/image.js");const C="<|image|>",k=/<\|image_\d+\|>/g;class M extends g.Processor{async _call(D,B=null,{padding:v=!0,truncation:S=!0,num_crops:F=null}={}){Array.isArray(D)||(D=[D]);let R,X;if(B){X=await this.image_processor(B,{num_crops:F});const{num_img_tokens:z}=X,L=D.map((d,w)=>d.split(k).join(C.repeat(z[w])));R=this.tokenizer(L,{padding:v,truncation:S});const K=this.tokenizer.model.convert_tokens_to_ids([C])[0];R.input_ids.map_(d=>d==K?-d:d)}else R=this.tokenizer(D);return{...R,...X}}}Ee(M,"image_processor_class",p.AutoImageProcessor),Ee(M,"tokenizer_class",h.AutoTokenizer)},
2893"./src/models/pixtral/image_processing_pixtral.js":(a,i,n)=>{n.r(i),n.d(i,{PixtralImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{get_resize_output_image_size(C,k){const{longest_edge:M}=k;if(M===void 0)throw new Error("size must contain 'longest_edge'");const[E,D]=C.size,B=Math.max(E,D)/M;let v=E,S=D;B>1&&(v=Math.floor(E/B),S=Math.floor(D/B));const{patch_size:F,spatial_merge_size:R}=this.config;if(!R)throw new Error("config must contain 'spatial_merge_size'");const X=F*R,z=Math.floor((v-1)/X)+1,L=Math.floor((S-1)/X)+1;return[z*X,L*X]}}},
2893"./src/models/pixtral/processing_pixtral.js":(a,i,n)=>{n.r(i),n.d(i,{PixtralProcessor:()=>C});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js");class C extends g.Processor{async _call(M,E=null,D={}){const B=await this.image_processor(M,D);if(E){const[S,F]=B.pixel_values.dims.slice(-2),{image_token:R,image_break_token:X,image_end_token:z,patch_size:L,spatial_merge_size:K}=this.config,d=L*K,w=Math.floor(S/d),e=Math.floor(F/d);E=structuredClone(E),Array.isArray(E)||(E=[E]);for(let u=0;u<E.length;++u){const y=R.repeat(e),ee=y+X,T=y+z,O=ee.repeat(w-1)+T;E[u]=E[u].replace(R,O)}}const v=E?this.tokenizer(E,D):{};return{...B,...v}}}Ee(C,"tokenizer_class",h.AutoTokenizer),Ee(C,"image_processor_class",p.AutoImageProcessor),Ee(C,"uses_processor_config",!0)},
2893"./src/models/processors.js":(a,i,n)=>{n.r(i),n.d(i,{Florence2Processor:()=>g.Florence2Processor,Gemma3nProcessor:()=>p.Gemma3nProcessor,GroundingDinoProcessor:()=>h.GroundingDinoProcessor,Idefics3Processor:()=>C.Idefics3Processor,JinaCLIPProcessor:()=>M.JinaCLIPProcessor,LlavaProcessor:()=>E.LlavaProcessor,MgpstrProcessor:()=>D.MgpstrProcessor,MoonshineProcessor:()=>B.MoonshineProcessor,OwlViTProcessor:()=>v.OwlViTProcessor,PaliGemmaProcessor:()=>S.PaliGemmaProcessor,Phi3VProcessor:()=>F.Phi3VProcessor,PixtralProcessor:()=>R.PixtralProcessor,PyAnnoteProcessor:()=>X.PyAnnoteProcessor,Qwen2VLProcessor:()=>z.Qwen2VLProcessor,Sam2Processor:()=>K.Sam2Processor,Sam2VideoProcessor:()=>K.Sam2VideoProcessor,SamProcessor:()=>L.SamProcessor,SmolVLMProcessor:()=>d.SmolVLMProcessor,SpeechT5Processor:()=>w.SpeechT5Processor,UltravoxProcessor:()=>e.UltravoxProcessor,VLChatProcessor:()=>k.VLChatProcessor,VoxtralProcessor:()=>u.VoxtralProcessor,Wav2Vec2Processor:()=>y.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>ee.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>T.WhisperProcessor});var g=n("./src/models/florence2/processing_florence2.js"),p=n("./src/models/gemma3n/processing_gemma3n.js"),h=n("./src/models/grounding_dino/processing_grounding_dino.js"),C=n("./src/models/idefics3/processing_idefics3.js"),k=n("./src/models/janus/processing_janus.js"),M=n("./src/models/jina_clip/processing_jina_clip.js"),E=n("./src/models/llava/processing_llava.js"),D=n("./src/models/mgp_str/processing_mgp_str.js"),B=n("./src/models/moonshine/processing_moonshine.js"),v=n("./src/models/owlvit/processing_owlvit.js"),S=n("./src/models/paligemma/processing_paligemma.js"),F=n("./src/models/phi3_v/processing_phi3_v.js"),R=n("./src/models/pixtral/processing_pixtral.js"),X=n("./src/models/pyannote/processing_pyannote.js"),z=n("./src/models/qwen2_vl/processing_qwen2_vl.js"),L=n("./src/models/sam/processing_sam.js"),K=n("./src/models/sam2/processing_sam2.js"),d=n("./src/models/smolvlm/processing_smolvlm.js"),w=n("./src/models/speecht5/processing_speecht5.js"),e=n("./src/models/ultravox/processing_ultravox.js"),u=n("./src/models/voxtral/processing_voxtral.js"),y=n("./src/models/wav2vec2/processing_wav2vec2.js"),ee=n("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),T=n("./src/models/whisper/processing_whisper.js")},
2893"./src/models/pvt/image_processing_pvt.js":(a,i,n)=>{n.r(i),n.d(i,{PvtImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},
vendor: 947 bytes, line 2893
2893"./src/models/pyannote/feature_extraction_pyannote.js":(a,i,n)=>{n.r(i),n.d(i,{PyAnnoteFeatureExtractor:()=>C});var g=n("./src/base/feature_extraction_utils.js"),p=n("./src/utils/tensor.js"),h=n("./src/utils/maths.js");class C extends g.FeatureExtractor{async _call(M){(0,g.validate_audio_inputs)(M,"PyAnnoteFeatureExtractor"),M instanceof Float64Array&&(M=new Float32Array(M));const E=[1,1,M.length];return{input_values:new p.Tensor("float32",M,E)}}samples_to_frames(M){return(M-this.config.offset)/this.config.step}post_process_speaker_diarization(M,E){const D=E/this.samples_to_frames(E)/this.config.sampling_rate,B=[];for(const v of M.tolist()){const S=[];let F=-1;for(let R=0;R<v.length;++R){const X=(0,h.softmax)(v[R]),[z,L]=(0,h.max)(X),[K,d]=[R,R+1];L!==F?(F=L,S.push({id:L,start:K,end:d,score:z})):(S.at(-1).end=d,S.at(-1).score+=z)}B.push(S.map(({id:R,start:X,end:z,score:L})=>({id:R,start:X*D,end:z*D,confidence:L/(z-X)})))}return B}}},
2893"./src/models/pyannote/processing_pyannote.js":(a,i,n)=>{n.r(i),n.d(i,{PyAnnoteProcessor:()=>h});var g=n("./src/base/processing_utils.js"),p=n("./src/models/pyannote/feature_extraction_pyannote.js");class h extends g.Processor{async _call(k){return await this.feature_extractor(k)}post_process_speaker_diarization(...k){return this.feature_extractor.post_process_speaker_diarization(...k)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}Ee(h,"feature_extractor_class",p.PyAnnoteFeatureExtractor)},
2893"./src/models/qwen2_vl/image_processing_qwen2_vl.js":(a,i,n)=>{n.r(i),n.d(i,{Qwen2VLImageProcessor:()=>h});var g=n("./src/base/image_processors_utils.js"),p=n("./src/utils/tensor.js");class h extends g.ImageProcessor{async _call(k,...M){const{pixel_values:E,original_sizes:D,reshaped_input_sizes:B}=await super._call(k,...M);let v=E;const{temporal_patch_size:S,merge_size:F,patch_size:R}=this.config;v.dims[0]===1&&(v=(0,p.cat)(Array.from({length:S},()=>v),0));const X=v.dims[0]/S,z=v.dims[1],L=Math.floor(v.dims[2]/R),K=Math.floor(v.dims[3]/R),d=v.view(X,S,z,Math.floor(L/F),F,R,Math.floor(K/F),F,R).permute(0,3,6,4,7,2,1,5,8).view(X*L*K,z*S*R*R),w=new p.Tensor("int64",[X,L,K],[1,3]);return{pixel_values:d,image_grid_thw:w,original_sizes:D,reshaped_input_sizes:B}}}},
2893"./src/models/qwen2_vl/processing_qwen2_vl.js":(a,i,n)=>{n.r(i),n.d(i,{Qwen2VLProcessor:()=>C});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js"),h=n("./src/tokenizers.js");n("./src/utils/image.js");class C extends g.Processor{async _call(M,E=null,...D){Array.isArray(M)||(M=[M]);let B,v;if(E&&(B=await this.image_processor(E),v=B.image_grid_thw),v){let F=this.image_processor.config.merge_size**2,R=0;const X=v.tolist();M=M.map(z=>{for(;z.includes("<|image_pad|>");){const L=Number(X[R++].reduce((K,d)=>K*d,1n));z=z.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(L/F)))}return z.replaceAll("<|placeholder|>","<|image_pad|>")})}return{...this.tokenizer(M),...B}}}Ee(C,"image_processor_class",p.AutoImageProcessor),Ee(C,"tokenizer_class",h.AutoTokenizer)},
2893"./src/models/rt_detr/image_processing_rt_detr.js":(a,i,n)=>{n.r(i),n.d(i,{RTDetrImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_object_detection(...C){return(0,g.post_process_object_detection)(...C)}}},
2893"./src/models/sam/image_processing_sam.js":(a,i,n)=>{n.r(i),n.d(i,{SamImageProcessor:()=>C});var g=n("./src/base/image_processors_utils.js"),p=n("./src/utils/core.js"),h=n("./src/utils/tensor.js");class C extends g.ImageProcessor{reshape_input_points(M,E,D,B=!1){M=structuredClone(M);let v=(0,p.calculateDimensions)(M);if(v.length===3)B||(v=[1,...v]),M=[M];else if(v.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let S=0;S<M.length;++S){const[F,R]=E[S],[X,z]=D[S],L=[z/R,X/F];for(let K=0;K<M[S].length;++K)for(let d=0;d<M[S][K].length;++d)for(let w=0;w<M[S][K][d].length;++w)M[S][K][d][w]*=L[w%2]}return new h.Tensor("float32",Float32Array.from(M.flat(1/0)),v)}add_input_labels(M,E){let D=(0,p.calculateDimensions)(M);if(D.length===2)D=[1,...D],M=[M];else if(D.length!==3)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");if(D.some((B,v)=>B!==E.dims[v]))throw Error(`The first ${D.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new h.Tensor("int64",M.flat(1/0).map(BigInt),D)}async _call(M,{input_points:E=null,input_labels:D=null,input_boxes:B=null}={}){const v=await super._call(M);if(E&&(v.input_points=this.reshape_input_points(E,v.original_sizes,v.reshaped_input_sizes)),D){if(!v.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");v.input_labels=this.add_input_labels(D,v.input_points)}return B&&(v.input_boxes=this.reshape_input_points(B,v.original_sizes,v.reshaped_input_sizes,!0)),v}async post_process_masks(M,E,D,{mask_threshold:B=0,binarize:v=!0,pad_size:S=null}={}){const F=[];S=S??this.pad_size??this.size;const R=[S.height,S.width];for(let X=0;X<E.length;++X){const z=E[X],L=D[X];let K=await(0,h.interpolate_4d)(M[X],{mode:"bilinear",size:R});if(K=K.slice(null,null,[0,L[0]],[0,L[1]]),K=await(0,h.interpolate_4d)(K,{mode:"bilinear",size:z}),v){const d=K.data,w=new Uint8Array(d.length);for(let e=0;e<d.length;++e)d[e]>B&&(w[e]=1);K=new h.Tensor("bool",w,K.dims)}F.push(K)}return F}generate_crop_boxes(M,E,{crop_n_layers:D=0,overlap_ratio:B=512/1500,points_per_crop:v=32,crop_n_points_downscale_factor:S=1}={}){}}},
2893"./src/models/sam/processing_sam.js":(a,i,n)=>{n.r(i),n.d(i,{SamProcessor:()=>h});var g=n("./src/base/processing_utils.js"),p=n("./src/models/auto/image_processing_auto.js");class h extends g.Processor{async _call(...k){return await this.image_processor(...k)}post_process_masks(...k){return this.image_processor.post_process_masks(...k)}reshape_input_points(...k){return this.image_processor.reshape_input_points(...k)}}Ee(h,"image_processor_class",p.AutoImageProcessor)},
2893"./src/models/sam2/image_processing_sam2.js":(a,i,n)=>{n.r(i),n.d(i,{Sam2ImageProcessor:()=>g.SamImageProcessor});var g=n("./src/models/sam/image_processing_sam.js")},
2893"./src/models/sam2/processing_sam2.js":(a,i,n)=>{n.r(i),n.d(i,{Sam2Processor:()=>p,Sam2VideoProcessor:()=>h});var g=n("./src/models/sam/processing_sam.js");class p extends g.SamProcessor{}class h extends p{}},
2893"./src/models/sam3/image_processing_sam3.js":(a,i,n)=>{n.r(i),n.d(i,{Sam3ImageProcessor:()=>g.Sam2ImageProcessor});var g=n("./src/models/sam2/image_processing_sam2.js")},
2893"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":(a,i,n)=>{n.r(i),n.d(i,{SeamlessM4TFeatureExtractor:()=>C});var g=n("./src/base/feature_extraction_utils.js"),p=n("./src/utils/tensor.js"),h=n("./src/utils/audio.js");class C extends g.FeatureExtractor{constructor(M){super(M);const E=this.config.sampling_rate,D=(0,h.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(E/2),E,null,"kaldi",!0);this.mel_filters=D,this.window=(0,h.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(M,E){return M=M.map(D=>D*32768),(0,h.spectrogram)(M,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:E,transpose:!0})}async _call(M,{padding:E=!0,pad_to_multiple_of:D=2,do_normalize_per_mel_bins:B=!0,return_attention_mask:v=!0}={}){(0,g.validate_audio_inputs)(M,"SeamlessM4TFeatureExtractor");let S=await this._extract_fbank_features(M,this.config.max_length);if(B){const[w,e]=S.dims,u=S.data;for(let y=0;y<e;++y){let ee=0;for(let se=0;se<w;++se)ee+=u[se*e+y];const T=ee/w;let O=0;for(let se=0;se<w;++se)O+=(u[se*e+y]-T)**2;O/=w-1;const ge=Math.sqrt(O+1e-7);for(let se=0;se<w;++se){const we=se*e+y;u[we]=(u[we]-T)/ge}}}let F;if(E){const[w,e]=S.dims,u=S.data,y=w%D;if(y>0){const ee=new Float32Array(e*(w+y));ee.set(u),ee.fill(this.config.padding_value,u.length);const T=w+y;S=new p.Tensor(S.type,ee,[T,e]),v&&(F=new p.Tensor("int64",new BigInt64Array(T),[1,T]),F.data.fill(1n,0,w))}}const[R,X]=S.dims,z=this.config.stride;if(R%z!==0)throw new Error(`The number of frames (${R}) must be a multiple of the stride (${z}).`);const K=S.view(1,Math.floor(R/z),X*z),d={input_features:K};if(v){const w=K.dims[1],e=new BigInt64Array(w);if(F){const u=F.data;for(let y=1,ee=0;y<R;y+=z,++ee)e[ee]=u[y]}else e.fill(1n);d.attention_mask=new p.Tensor("int64",e,[1,w])}return d}}},
2893"./src/models/segformer/image_processing_segformer.js":(a,i,n)=>{n.r(i),n.d(i,{SegformerFeatureExtractor:()=>h,SegformerImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_semantic_segmentation(...k){return(0,g.post_process_semantic_segmentation)(...k)}}class h extends p{}},
2893"./src/models/siglip/image_processing_siglip.js":(a,i,n)=>{n.r(i),n.d(i,{SiglipImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},
2893"./src/models/smolvlm/image_processing_smolvlm.js":(a,i,n)=>{n.r(i),n.d(i,{SmolVLMImageProcessor:()=>g.Idefics3ImageProcessor});var g=n("./src/models/idefics3/image_processing_idefics3.js")},
2893"./src/models/smolvlm/processing_smolvlm.js":(a,i,n)=>{n.r(i),n.d(i,{SmolVLMProcessor:()=>g.Idefics3Processor});var g=n("./src/models/idefics3/processing_idefics3.js")},
2893"./src/models/snac/feature_extraction_snac.js":(a,i,n)=>{n.r(i),n.d(i,{SnacFeatureExtractor:()=>p});var g=n("./src/models/dac/feature_extraction_dac.js");class p extends g.DacFeatureExtractor{}},
2893"./src/models/speecht5/feature_extraction_speecht5.js":(a,i,n)=>{n.r(i),n.d(i,{SpeechT5FeatureExtractor:()=>p});var g=n("./src/base/feature_extraction_utils.js");class p extends g.FeatureExtractor{}},
2893"./src/models/speecht5/processing_speecht5.js":(a,i,n)=>{n.r(i),n.d(i,{SpeechT5Processor:()=>C});var g=n("./src/base/processing_utils.js"),p=n("./src/tokenizers.js"),h=n("./src/models/auto/feature_extraction_auto.js");class C extends g.Processor{async _call(M){return await this.feature_extractor(M)}}Ee(C,"tokenizer_class",p.AutoTokenizer),Ee(C,"feature_extractor_class",h.AutoFeatureExtractor)},
vendor: 346 bytes, line 2893
2893"./src/models/swin2sr/image_processing_swin2sr.js":(a,i,n)=>{n.r(i),n.d(i,{Swin2SRImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{pad_image(C,k,M,E={}){const[D,B,v]=k;return super.pad_image(C,k,{width:B+(M-B%M)%M,height:D+(M-D%M)%M},{mode:"symmetric",center:!1,constant_values:-1,...E})}}},
2893"./src/models/ultravox/processing_ultravox.js":(a,i,n)=>{n.r(i),n.d(i,{UltravoxProcessor:()=>C});var g=n("./src/models/auto/feature_extraction_auto.js"),p=n("./src/tokenizers.js"),h=n("./src/base/processing_utils.js");class C extends h.Processor{async _call(M,E=null,D={}){if(Array.isArray(M))throw new Error("Batched inputs are not supported yet.");let B={};if(E){const S=E.length,{input_features:F}=await this.feature_extractor(E,{...D,max_length:S}),R=Math.round(S/this.config.encoder_ds_factor+1e-4),X=1+Math.ceil(R/this.config.stack_factor);B.audio_token_len=[X],B.audio_values=F;const z=this.config.audio_placeholder;if(!M.includes(z))throw new Error(`The input text does not contain the image token ${z}.`);M=M.replaceAll(z,z.repeat(X))}return{...this.tokenizer(M,{add_special_tokens:!1,...D}),...B}}}Ee(C,"tokenizer_class",p.AutoTokenizer),Ee(C,"feature_extractor_class",g.AutoFeatureExtractor),Ee(C,"uses_processor_config",!0)},
2893"./src/models/vit/image_processing_vit.js":(a,i,n)=>{n.r(i),n.d(i,{ViTFeatureExtractor:()=>h,ViTImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},
2893"./src/models/vitmatte/image_processing_vitmatte.js":(a,i,n)=>{n.r(i),n.d(i,{VitMatteImageProcessor:()=>h});var g=n("./src/base/image_processors_utils.js"),p=n("./src/utils/tensor.js");class h extends g.ImageProcessor{async _call(k,M){Array.isArray(k)||(k=[k]),Array.isArray(M)||(M=[M]);const E=await Promise.all(k.map(v=>this.preprocess(v))),D=await Promise.all(M.map(v=>this.preprocess(v,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,p.stack)(E.map((v,S)=>(0,p.cat)([v.pixel_values,D[S].pixel_values],0)),0),original_sizes:E.map(v=>v.original_size),reshaped_input_sizes:E.map(v=>v.reshaped_input_size)}}}},
vendor: 784 bytes, line 2893
2893"./src/models/vitpose/image_processing_vitpose.js":(a,i,n)=>{n.r(i),n.d(i,{VitPoseImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_pose_estimation(C,k,{threshold:M=null}={}){const E=C.tolist(),[D,B,v,S]=C.dims,F=[];for(let R=0;R<D;++R){const X=E[R],z=k[R],L=[];for(let K=0;K<z.length;++K){const d=z[K],w=[],e=[],u=[],y=d.at(-2)/S,ee=d.at(-1)/v;for(let T=0;T<X.length;++T){let[O,ge]=[0,0],se=0,we=-1/0;const be=X[T];for(let ve=0;ve<be.length;++ve){const De=be[ve];for(let je=0;je<De.length;++je){const Le=De[je];se+=Le,we=Math.max(we,Le),O+=(je+.5)*Le,ge+=ve*Le}}if(M!=null&&we<M)continue;const Be=[y*O/se,ee*ge/se];w.push(Be),u.push(T),e.push(we)}L.push({bbox:d,scores:e,labels:u,keypoints:w})}F.push(L)}return F}}},
2893"./src/models/voxtral/processing_voxtral.js":(a,i,n)=>{n.r(i),n.d(i,{VoxtralProcessor:()=>B});var g=n("./src/models/auto/feature_extraction_auto.js"),p=n("./src/tokenizers.js"),h=n("./src/base/processing_utils.js"),C=n("./src/utils/tensor.js");const k="[AUDIO]",M="[BEGIN_AUDIO]",E=375;function D(v,S){const F=[];for(let R=0;R<v.length;R+=S)F.push(v.subarray(R,Math.min(R+S,v.length)));return F}class B extends h.Processor{async _call(S,F=null,R={}){if(Array.isArray(S))throw new Error("Batched inputs are not supported yet.");const X={};if(F){if(!S.includes(k))throw new Error(`The input text does not contain the audio token ${k}.`);Array.isArray(F)||(F=[F]);const L=S.split(k),K=L.length-1;if(K!==F.length)throw new Error(`The number of audio inputs (${F.length}) does not match the number of audio tokens in the text (${K}).`);const d=this.feature_extractor.config.n_samples,w=F.map(T=>D(T,d)),e=w.map(T=>T.length),u=w.flat(),y=(await Promise.all(u.map(T=>this.feature_extractor(T,R)))).map(T=>T.input_features);X.audio_values=y.length>1?(0,C.cat)(y,0):y[0];let ee=L[0];for(let T=0;T<e.length;++T){ee+=M;for(let O=0;O<e[T];++O)ee+=k.repeat(E);ee+=L[T+1]}S=ee}return{...this.tokenizer(S,{add_special_tokens:!1,...R}),...X}}}Ee(B,"tokenizer_class",p.AutoTokenizer),Ee(B,"feature_extractor_class",g.AutoFeatureExtractor),Ee(B,"uses_processor_config",!1)},
2893"./src/models/wav2vec2/feature_extraction_wav2vec2.js":(a,i,n)=>{n.r(i),n.d(i,{Wav2Vec2FeatureExtractor:()=>h});var g=n("./src/base/feature_extraction_utils.js"),p=n("./src/utils/tensor.js");class h extends g.FeatureExtractor{_zero_mean_unit_var_norm(k){const E=k.reduce((B,v)=>B+v,0)/k.length,D=k.reduce((B,v)=>B+(v-E)**2,0)/k.length;return k.map(B=>(B-E)/Math.sqrt(D+1e-7))}async _call(k){(0,g.validate_audio_inputs)(k,"Wav2Vec2FeatureExtractor"),k instanceof Float64Array&&(k=new Float32Array(k));let M=k;this.config.do_normalize&&(M=this._zero_mean_unit_var_norm(M));const E=[1,M.length];return{input_values:new p.Tensor("float32",M,E),attention_mask:new p.Tensor("int64",new BigInt64Array(M.length).fill(1n),E)}}}},
2893"./src/models/wav2vec2/processing_wav2vec2.js":(a,i,n)=>{n.r(i),n.d(i,{Wav2Vec2Processor:()=>C});var g=n("./src/tokenizers.js"),p=n("./src/models/auto/feature_extraction_auto.js"),h=n("./src/base/processing_utils.js");class C extends h.Processor{async _call(M){return await this.feature_extractor(M)}}Ee(C,"tokenizer_class",g.AutoTokenizer),Ee(C,"feature_extractor_class",p.AutoFeatureExtractor)},
2893"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":(a,i,n)=>{n.r(i),n.d(i,{Wav2Vec2ProcessorWithLM:()=>C});var g=n("./src/tokenizers.js"),p=n("./src/models/auto/feature_extraction_auto.js"),h=n("./src/base/processing_utils.js");class C extends h.Processor{async _call(M){return await this.feature_extractor(M)}}Ee(C,"tokenizer_class",g.AutoTokenizer),Ee(C,"feature_extractor_class",p.AutoFeatureExtractor)},
2893"./src/models/wespeaker/feature_extraction_wespeaker.js":(a,i,n)=>{n.r(i),n.d(i,{WeSpeakerFeatureExtractor:()=>h});var g=n("./src/base/feature_extraction_utils.js");n("./src/utils/tensor.js");var p=n("./src/utils/audio.js");class h extends g.FeatureExtractor{constructor(k){super(k);const M=this.config.sampling_rate,E=(0,p.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(M/2),M,null,"kaldi",!0);this.mel_filters=E,this.window=(0,p.window_function)(400,"hamming",{periodic:!1}),this.min_num_frames=this.config.min_num_frames}async _extract_fbank_features(k){return k=k.map(M=>M*32768),(0,p.spectrogram)(k,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(k){(0,g.validate_audio_inputs)(k,"WeSpeakerFeatureExtractor");const M=(await this._extract_fbank_features(k)).unsqueeze_(0);if(this.config.fbank_centering_span===null){const E=M.mean(1).data,D=M.data,[B,v,S]=M.dims;for(let F=0;F<B;
2893++F){const R=F*v*S,X=F*S;for(let z=0;z<v;++z){const L=R+z*S;for(let K=0;K<S;++K)D[L+K]-=E[X+K]}}}return{input_features:M}}}},
2893"./src/models/whisper/common_whisper.js":(a,i,n)=>{n.r(i),n.d(i,{WHISPER_LANGUAGE_MAPPING:()=>p,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>h,whisper_language_to_code:()=>C});const g=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],p=new Map(g),h=new Map([...g.map(([k,M])=>[M,k]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function C(k){k=k.toLowerCase();let M=h.get(k);if(M===void 0){const E=k.match(/^<\|([a-z]{2})\|>$/);if(E&&(k=E[1]),p.has(k))M=k;else{const B=k.length===2?p.keys():p.values();throw new Error(`Language "${k}" is not supported. Must be one of: ${JSON.stringify(Array.from(B))}`)}}return M}},
2893"./src/models/whisper/feature_extraction_whisper.js":(a,i,n)=>{n.r(i),n.d(i,{WhisperFeatureExtractor:()=>C});var g=n("./src/base/feature_extraction_utils.js");n("./src/utils/tensor.js");var p=n("./src/utils/audio.js"),h=n("./src/utils/maths.js");class C extends g.FeatureExtractor{constructor(M){var E;super(M),(E=this.config).mel_filters??(E.mel_filters=(0,p.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney")),this.window=(0,p.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(M){const E=await(0,p.spectrogram)(M,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:Math.min(Math.floor(M.length/this.config.hop_length),this.config.nb_max_frames)}),D=E.data,B=(0,h.max)(D)[0];for(let v=0;v<D.length;++v)D[v]=(Math.max(D[v],B-8)+4)/4;return E}async _call(M,{max_length:E=null}={}){(0,g.validate_audio_inputs)(M,"WhisperFeatureExtractor");let D;const B=E??this.config.n_samples;return M.length>B?(M.length>this.config.n_samples&&console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),D=M.slice(0,B)):(D=new Float32Array(B),D.set(M)),{input_features:(await this._extract_fbank_features(D)).unsqueeze_(0)}}}},
2893"./src/models/whisper/generation_whisper.js":(a,i,n)=>{n.r(i),n.d(i,{WhisperGenerationConfig:()=>p});var g=n("./src/generation/configuration_utils.js");class p extends g.GenerationConfig{constructor(){super(...arguments);Ee(this,"return_timestamps",null);Ee(this,"return_token_timestamps",null);Ee(this,"num_frames",null);Ee(this,"alignment_heads",null);Ee(this,"task",null);Ee(this,"language",null);Ee(this,"no_timestamps_token_id",null);Ee(this,"prompt_ids",null);Ee(this,"is_multilingual",null);Ee(this,"lang_to_id",null);Ee(this,"task_to_id",null);Ee(this,"max_initial_timestamp_index",1)}}},
2893"./src/models/whisper/processing_whisper.js":(a,i,n)=>{n.r(i),n.d(i,{WhisperProcessor:()=>C});var g=n("./src/models/auto/feature_extraction_auto.js"),p=n("./src/tokenizers.js"),h=n("./src/base/processing_utils.js");class C extends h.Processor{async _call(M){return await this.feature_extractor(M)}}Ee(C,"tokenizer_class",p.AutoTokenizer),Ee(C,"feature_extractor_class",g.AutoFeatureExtractor)},
2893"./src/models/yolos/image_processing_yolos.js":(a,i,n)=>{n.r(i),n.d(i,{YolosFeatureExtractor:()=>h,YolosImageProcessor:()=>p});var g=n("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_object_detection(...k){return(0,g.post_process_object_detection)(...k)}}class h extends p{}},
2893"./src/ops/registry.js":(a,i,n)=>{n.r(i),n.d(i,{TensorOpRegistry:()=>C});var g=n("./src/backends/onnx.js"),p=n("./src/utils/tensor.js");const h=async(k,M,E)=>{const D=await(0,g.createInferenceSession)(new Uint8Array(k),M);return async B=>{const v=(0,g.isONNXProxy)(),S=Object.fromEntries(Object.entries(B).map(([R,X])=>[R,(v?X.clone():X).ort_tensor])),F=await(0,g.runInferenceSession)(D,S);return Array.isArray(E)?E.map(R=>new p.Tensor(F[R])):new p.Tensor(F[E])}};class C{static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=h([8,10,18,0,58,129,1,10,41,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,18,10,4,109,111,100,101,34,7,110,101,97,114,101,115,116,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,21],this.session_options,"y")),this._nearest_interpolate_4d}static get bilinear_interpolate_4d(){return this._bilinear_interpolate_4d||(this._bilinear_interpolate_4d=h([8,9,18,0,58,128,1,10,40,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,17,10,4,109,111,100,101,34,6,108,105,110,101,97,114,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bilinear_interpolate_4d}static get bicubic_interpolate_4d(){return this._bicubic_interpolate_4d||(this._bicubic_interpolate_4d=h([8,9,18,0,58,127,10,39,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,16,10,4,109,111,100,101,34,5,99,117,98,105,99,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bicubic_interpolate_4d}static get matmul(){return this._matmul||(this._matmul=h([8,9,18,0,58,55,10,17,10,1,97,10,1,98,18,1,99,34,6,77,97,116,77,117,108,18,1,114,90,9,10,1,97,18,4,10,2,8,1,90,9,10,1,98,18,4,10,2,8,1,98,9,10,1,99,18,4,10,2,8,1,66,2,16,20],this.session_options,"c")),this._matmul}static get stft(){return this._stft||(this._stft=h([8,7,18,0,58,148,1,10,38,10,1,115,10,1,106,10,1,119,10,1,108,18,1,111,34,4,83,84,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,115,90,26,10,1,115,18,21,10,19,8,1,18,15,10,3,18,1,98,10,3,18,1,115,10,3,18,1,99,90,11,10,1,106,18,6,10,4,8,7,18,0,90,16,10,1,119,18,11,10,9,8,1,18,5,10,3,18,1,119,90,11,10,1,108,18,6,10,4,8,7,18,0,98,31,10,1,111,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,102,10,3,18,1,100,10,3,18,1,99,66,2,16,17],this.session_options,"o")),this._stft}static get rfft(){return this._rfft||(this._rfft=h([8,9,18,0,58,97,10,33,10,1,120,10,0,10,1,97,18,1,121,34,3,68,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,100,90,21,10,1,120,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,90,11,10,1,97,18,6,10,4,8,7,18,0,98,21,10,1,121,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,66,2,16,20],this.session_options,"y")),this._rfft}static get top_k(){return this._top_k||(this._top_k=h([8,10,18,0,58,73,10,18,10,1,120,10,1,107,18,1,118,18,1,105,34,4,84,111,112,75,18,1,116,90,9,10,1,120,18,4,10,2,8,1,90,15,10,1,107,18,10,10,8,8,7,18,4,10,2,8,1,98,9,10,1,118,18,4,10,2,8,1,98,9,10,1,105,18,4,10,2,8,7,66,2,16,21],this.session_options,["v","i"])),this._top_k}static get slice(){return this._slice||(this._slice=h([8,7,18,0,58,96,10,25,10,1,120,10,1,115,10,1,101,10,1,97,10,1,116,18,1,121,34,5,83,108,105,99,101,18,1,114,90,9,10,1,120,18,4,10,2,8,1,90,9,10,1,115,18,4,10,2,8,7,90,9,10,1,101,18,4,10,2,8,7,90,9,10,1,97,18,4,10,2,8,7,90,9,10,1,116,18,4,10,2,8,7,98,9,10,1,121,18,4,10,2,8,1,66,2,16,13],this.session_options,"y")),this._slice}}Ee(C,"session_options",{})},
2893"./src/pipelines.js":(a,i,n)=>{n.r(i),n.d(i,{AudioClassificationPipeline:()=>ge,AutomaticSpeechRecognitionPipeline:()=>we,BackgroundRemovalPipeline:()=>De,DepthEstimationPipeline:()=>Fe,DocumentQuestionAnsweringPipeline:()=>me,FeatureExtractionPipeline:()=>T,FillMaskPipeline:()=>K,ImageClassificationPipeline:()=>Be,ImageFeatureExtractionPipeline:()=>O,ImageSegmentationPipeline:()=>ve,ImageToImagePipeline:()=>Ie,ImageToTextPipeline:()=>be,ObjectDetectionPipeline:()=>Le,Pipeline:()=>R,QuestionAnsweringPipeline:()=>L,SummarizationPipeline:()=>w,Text2TextGenerationPipeline:()=>d,TextClassificationPipeline:()=>X,TextGenerationPipeline:()=>y,TextToAudioPipeline:()=>ie,TokenClassificationPipeline:()=>z,TranslationPipeline:()=>e,ZeroShotAudioClassificationPipeline:()=>se,ZeroShotClassificationPipeline:()=>ee,ZeroShotImageClassificationPipeline:()=>je,ZeroShotObjectDetectionPipeline:()=>Pe,pipeline:()=>uA});var g=n("./src/tokenizers.js"),p=n("./src/models.js"),h=n("./src/models/auto/processing_auto.js");n("./src/base/processing_utils.js");var C=n("./src/utils/generic.js"),k=n("./src/utils/core.js"),M=n("./src/utils/maths.js"),E=n("./src/utils/audio.js"),D=n("./src/utils/tensor.js"),B=n("./src/utils/image.js");async function v(iA){return Array.isArray(iA)||(iA=[iA]),await Promise.all(iA.map(ye=>B.RawImage.read(ye)))}async function S(iA,ye){return Array.isArray(iA)||(iA=[iA]),await Promise.all(iA.map(Ae=>typeof Ae=="string"||Ae instanceof URL?(0,E.read_audio)(Ae,ye):Ae instanceof Float64Array?new Float32Array(Ae):Ae))}function F(iA,ye){ye&&(iA=iA.map(rA=>rA|0));const[Ae,Re,qe,Ue]=iA;return{xmin:Ae,ymin:Re,xmax:qe,ymax:Ue}}class R extends C.Callable{constructor({task:ye,model:Ae,tokenizer:Re=null,processor:qe=null}){super(),this.task=ye,this.model=Ae,this.tokenizer=Re,this.processor=qe}async dispose(){await this.model.dispose()}}class X extends R{constructor(ye){super(ye)}async _call(ye,{top_k:Ae=1}={}){const Re=this.tokenizer(ye,{padding:!0,truncation:!0}),qe=await this.model(Re),Ue=this.model.config.problem_type==="multi_label_classification"?Y=>Y.sigmoid():Y=>new D.Tensor("float32",(0,M.softmax)(Y.data),Y.dims),rA=this.model.config.id2label,aA=[];for(const Y of qe.logits){const cA=Ue(Y),He=await(0,D.topk)(cA,Ae),ce=He[0].tolist(),nA=He[1].tolist().map((DA,IA)=>({label:rA?rA[DA]:`LABEL_${DA}`,score:ce[IA]}));Ae===1?aA.push(...nA):aA.push(nA)}return Array.isArray(ye)||Ae===1?aA:aA[0]}}class z extends R{constructor(ye){super(ye)}async _call(ye,{ignore_labels:Ae=["O"]}={}){const Re=Array.isArray(ye),qe=this.tokenizer(Re?ye:[ye],{padding:!0,truncation:!0}),rA=(await this.model(qe)).logits,aA=this.model.config.id2label,Y=[];for(let cA=0;cA<rA.dims[0];++cA){const He=qe.input_ids[cA],ce=rA[cA],MA=[];for(let nA=0;nA<ce.dims[0];++nA){const DA=ce[nA],IA=(0,M.max)(DA.data)[1],ot=aA?aA[IA]:`LABEL_${IA}`;if(Ae.includes(ot))continue;const BA=this.tokenizer.decode([He[nA].item()],{skip_special_tokens:!0});if(BA==="")continue;const tA=(0,M.softmax)(DA.data);MA.push({entity:ot,score:tA[IA],index:nA,word:BA})}Y.push(MA)}return Re?Y:Y[0]}}class L extends R{constructor(ye){super(ye)}async _call(ye,Ae,{top_k:Re=1}={}){const qe=this.tokenizer(ye,{text_pair:Ae,padding:!0,truncation:!0}),{start_logits:Ue,end_logits:rA}=await this.model(qe),aA=qe.input_ids.tolist(),Y=qe.attention_mask.tolist(),cA=this.tokenizer.all_special_ids,He=[];for(let ce=0;ce<Ue.dims[0];++ce){const MA=aA[ce],nA=MA.findIndex(lA=>lA==this.tokenizer.sep_token_id);Y[ce].map((lA,KA)=>lA==1&&(KA===0||KA>nA&&cA.findIndex(JA=>JA==MA[KA])===-1));const DA=Ue[ce].tolist(),IA=rA[ce].tolist();for(let lA=1;lA<DA.length;++lA)(Y[ce]==0||lA<=nA||cA.findIndex(KA=>KA==MA[lA])!==-1)&&(DA[lA]=-1/0,IA[lA]=-1/0);const ot=(0,M.softmax)(DA).map((lA,KA)=>[lA,KA]),BA=(0,M.softmax)(IA).map((lA,KA)=>[lA,KA]);ot[0][0]=0,BA[0][0]=0;const tA=(0,k.product)(ot,BA).filter(lA=>lA[0][1]<=lA[1][1]).map(lA=>[lA[0][1],lA[1][1],lA[0][0]*lA[1][0]]).sort((lA,KA)=>KA[2]-lA[2]);for(let lA=0;lA<Math.min(tA.length,Re);++lA){const[KA,JA,RA]=tA[lA],ZA=MA.slice(KA,JA+1),Zt=this.tokenizer.decode(ZA,{skip_special_tokens:!0});He.push({answer:Zt,score:RA})}}return Re===1?He[0]:He}}class K extends R{constructor(ye){super(ye)}async _call(ye,{top_k:Ae=5}={}){const Re=this.tokenizer(ye,{padding:!0,truncation:!0}
2893),{logits:qe}=await this.model(Re),Ue=[],rA=Re.input_ids.tolist();for(let aA=0;aA<rA.length;++aA){const Y=rA[aA],cA=Y.findIndex(DA=>DA==this.tokenizer.mask_token_id);if(cA===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);const He=qe[aA][cA],ce=await(0,D.topk)(new D.Tensor("float32",(0,M.softmax)(He.data),He.dims),Ae),MA=ce[0].tolist(),nA=ce[1].tolist();Ue.push(nA.map((DA,IA)=>{const ot=Y.slice();return ot[cA]=DA,{score:MA[IA],token:Number(DA),token_str:this.tokenizer.decode([DA]),sequence:this.tokenizer.decode(ot,{skip_special_tokens:!0})}}))}return Array.isArray(ye)?Ue:Ue[0]}}class d extends R{constructor(Ae){super(Ae);Ee(this,"_key","generated_text")}async _call(Ae,Re={}){Array.isArray(Ae)||(Ae=[Ae]),this.model.config.prefix&&(Ae=Ae.map(cA=>this.model.config.prefix+cA));const qe=this.model.config.task_specific_params;qe&&qe[this.task]&&qe[this.task].prefix&&(Ae=Ae.map(cA=>qe[this.task].prefix+cA));const Ue=this.tokenizer,rA={padding:!0,truncation:!0};let aA;this instanceof e&&"_build_translation_inputs"in Ue?aA=Ue._build_translation_inputs(Ae,rA,Re):aA=Ue(Ae,rA);const Y=await this.model.generate({...aA,...Re});return Ue.batch_decode(Y,{skip_special_tokens:!0}).map(cA=>({[this._key]:cA}))}}class w extends d{constructor(Ae){super(Ae);Ee(this,"_key","summary_text")}}class e extends d{constructor(Ae){super(Ae);Ee(this,"_key","translation_text")}}function u(iA){return Array.isArray(iA)&&iA.every(ye=>"role"in ye&&"content"in ye)}class y extends R{constructor(ye){super(ye)}async _call(ye,Ae={}){let Re=!1,qe=!1,Ue=Ae.add_special_tokens??(this.tokenizer.add_bos_token||this.tokenizer.add_eos_token)??!1,rA;if(typeof ye=="string")rA=ye=[ye];else if(Array.isArray(ye)&&ye.every(nA=>typeof nA=="string"))Re=!0,rA=ye;else{if(u(ye))ye=[ye];else if(Array.isArray(ye)&&ye.every(u))Re=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");qe=!0,rA=ye.map(nA=>this.tokenizer.apply_chat_template(nA,{tokenize:!1,add_generation_prompt:!0})),Ue=!1}const aA=qe?!1:Ae.return_full_text??!0;this.tokenizer.padding_side="left";const Y=this.tokenizer(rA,{add_special_tokens:Ue,padding:!0,truncation:!0}),cA=await this.model.generate({...Y,...Ae}),He=this.tokenizer.batch_decode(cA,{skip_special_tokens:!0});let ce;!aA&&Y.input_ids.dims.at(-1)>0&&(ce=this.tokenizer.batch_decode(Y.input_ids,{skip_special_tokens:!0}).map(nA=>nA.length));const MA=Array.from({length:ye.length},nA=>[]);for(let nA=0;nA<He.length;++nA){const DA=Math.floor(nA/cA.dims[0]*ye.length);ce&&(He[nA]=He[nA].slice(ce[DA])),MA[DA].push({generated_text:qe?[...ye[DA],{role:"assistant",content:He[nA]}]:He[nA]})}return!Re&&MA.length===1?MA[0]:MA}}class ee extends R{constructor(ye){super(ye),this.label2id=Object.fromEntries(Object.entries(this.model.config.label2id).map(([Ae,Re])=>[Ae.toLowerCase(),Re])),this.entailment_id=this.label2id.entailment,this.entailment_id===void 0&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=this.label2id.contradiction??this.label2id.not_entailment,this.contradiction_id===void 0&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(ye,Ae,{hypothesis_template:Re="This example is {}.",multi_label:qe=!1}={}){const Ue=Array.isArray(ye);Ue||(ye=[ye]),Array.isArray(Ae)||(Ae=[Ae]);const rA=Ae.map(cA=>Re.replace("{}",cA)),aA=qe||Ae.length===1,Y=[];for(const cA of ye){const He=[];for(const nA of rA){const DA=this.tokenizer(cA,{text_pair:nA,padding:!0,truncation:!0}),IA=await this.model(DA);aA?He.push([IA.logits.data[this.contradiction_id],IA.logits.data[this.entailment_id]]):He.push(IA.logits.data[this.entailment_id])}const MA=(aA?He.map(nA=>(0,M.softmax)(nA)[1]):(0,M.softmax)(He)).map((nA,DA)=>[nA,DA]).sort((nA,DA)=>DA[0]-nA[0]);Y.push({sequence:cA,labels:MA.map(nA=>Ae[nA[1]]),scores:MA.map(nA=>nA[0])})}return Ue?Y:Y[0]}}class T extends R{constructor(ye){super(ye)}async _call(ye,{pooling:Ae="none",normalize:Re=!1,quantize:qe=!1,precision:Ue="binary"}={}){const rA=this.tokenizer(ye,{padding:!0,truncation:!0}
2893),aA=await this.model(rA);let Y=aA.last_hidden_state??aA.logits??aA.token_embeddings;switch(Ae){case"none":break;case"mean":Y=(0,D.mean_pooling)(Y,rA.attention_mask);break;case"first_token":case"cls":Y=Y.slice(null,0);break;case"last_token":case"eos":Y=Y.slice(null,-1);break;default:throw Error(`Pooling method '${Ae}' not supported.`)}return Re&&(Y=Y.normalize(2,-1)),qe&&(Y=(0,D.quantize_embeddings)(Y,Ue)),Y}}class O extends R{constructor(ye){super(ye)}async _call(ye,{pool:Ae=null}={}){const Re=await v(ye),{pixel_values:qe}=await this.processor(Re),Ue=await this.model({pixel_values:qe});let rA;if(Ae){if(!("pooler_output"in Ue))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");rA=Ue.pooler_output}else rA=Ue.last_hidden_state??Ue.logits??Ue.image_embeds;return rA}}class ge extends R{constructor(ye){super(ye)}async _call(ye,{top_k:Ae=5}={}){const Re=this.processor.feature_extractor.config.sampling_rate,qe=await S(ye,Re),Ue=this.model.config.id2label,rA=[];for(const aA of qe){const Y=await this.processor(aA),He=(await this.model(Y)).logits[0],ce=await(0,D.topk)(new D.Tensor("float32",(0,M.softmax)(He.data),He.dims),Ae),MA=ce[0].tolist(),DA=ce[1].tolist().map((IA,ot)=>({label:Ue?Ue[IA]:`LABEL_${IA}`,score:MA[ot]}));rA.push(DA)}return Array.isArray(ye)?rA:rA[0]}}class se extends R{constructor(ye){super(ye)}async _call(ye,Ae,{hypothesis_template:Re="This is a sound of {}."}={}){const qe=!Array.isArray(ye);qe&&(ye=[ye]);const Ue=Ae.map(He=>Re.replace("{}",He)),rA=this.tokenizer(Ue,{padding:!0,truncation:!0}),aA=this.processor.feature_extractor.config.sampling_rate,Y=await S(ye,aA),cA=[];for(const He of Y){const ce=await this.processor(He),MA=await this.model({...rA,...ce}),nA=(0,M.softmax)(MA.logits_per_audio.data);cA.push([...nA].map((DA,IA)=>({score:DA,label:Ae[IA]})))}return qe?cA[0]:cA}}class we extends R{constructor(ye){super(ye)}async _call(ye,Ae={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(ye,Ae);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":case"parakeet_ctc":return this._call_wav2vec2(ye,Ae);case"moonshine":return this._call_moonshine(ye,Ae);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(ye,Ae){Ae.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),Ae.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');const Re=!Array.isArray(ye);Re&&(ye=[ye]);const qe=this.processor.feature_extractor.config.sampling_rate,Ue=await S(ye,qe),rA=[];for(const aA of Ue){const Y=await this.processor(aA),He=(await this.model(Y)).logits[0],ce=[];for(const nA of He)ce.push((0,M.max)(nA.data)[1]);const MA=this.tokenizer.decode(ce,{skip_special_tokens:!0}).trim();rA.push({text:MA})}return Re?rA[0]:rA}async _call_whisper(ye,Ae){const Re=Ae.return_timestamps??!1,qe=Ae.chunk_length_s??0,Ue=Ae.force_full_sequences??!1;let rA=Ae.stride_length_s??null;const aA={...Ae};Re==="word"&&(aA.return_token_timestamps=!0,aA.return_timestamps=!1);const Y=!Array.isArray(ye);Y&&(ye=[ye]);const cA=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,He=this.processor.feature_extractor.config.hop_length,ce=this.processor.feature_extractor.config.sampling_rate,MA=await S(ye,ce),nA=[];for(const DA of MA){let IA=[];if(qe>0){if(rA===null)rA=qe/6;else if(qe<=rA)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");const tA=ce*qe,lA=ce*rA,KA=tA-2*lA;let JA=0;for(;;){const RA=JA+tA,ZA=DA.subarray(JA,RA),Zt=await this.processor(ZA),Sr=JA===0,ft=RA>=DA.length;if(IA.push({stride:[ZA.length,Sr?0:lA,ft?0:lA],input_features:Zt.input_features,is_last:ft}),ft)break;JA+=KA}}else IA=[{stride:[DA.length,0,0],input_features:(await this.processor(DA)).input_features,is_last:!0}];for(const tA of IA){aA.num_frames=Math.floor(tA.stride[0]/He);const lA=await this.model.generate({inputs:tA.input_features,...aA});Re==="word"?(tA.tokens=lA.sequences.tolist()[0],tA.token_timestamps=lA.token_timestamps.tolist()[0].map(KA=>(0,M.round)(KA,2))):tA.tokens=lA[0].tolist(),tA.stride=tA.stride.map(KA=>KA/ce)}const[ot,BA]=this.tokenizer._decode_asr(IA,{time_precision:cA,return_timestamps:Re,force_full_sequences:Ue});nA.push({text:ot,...BA})}return Y?nA[0]:nA}async _call_moonshine(ye,Ae){const Re=!Array.isArray(ye);Re&&(ye=[ye]);const qe=this.processor.feature_extractor.config.sampling_rate,Ue=await S(ye,qe),rA=[];for(const aA of Ue){const Y=await this.processor(aA),cA=Math.floor(aA.length/qe)*6,He=await this.model.generate({max_new_tokens:cA,...Ae,...Y}),ce=this.processor.batch_decode(He,{skip_special_tokens:!0})[0];rA.push({text:ce})}return Re?rA[0]:rA}}class be extends R{constructor(ye){super(ye)}async _call(ye,Ae={}){const Re=Array.isArray(ye),qe=await v(ye),{pixel_values:Ue}=await this.processor(qe),rA=[];for(const aA of Ue){aA.dims=[1,...aA.dims];const Y=await this.model.generate({inputs:aA,...Ae}),cA=this.tokenizer.batch_decode(Y,{skip_special_tokens:!0}).map(He=>({generated_text:He.trim()}));rA.push(cA)}return Re?rA:rA[0]}}class Be extends R{constructor(ye){super(ye)}async _call(ye,{top_k:Ae=5}={}){const Re=await v(ye),{pixel_values:qe}=await this.processor(Re),Ue=await this.model({pixel_values:qe}),rA=this.model.config.id2label,aA=[];for(const Y of Ue.logits){const cA=await(0,D.topk)(new D.Tensor("float32",(0,M.softmax)(Y.data),Y.dims),Ae),He=cA[0].tolist(),MA=cA[1].tolist().map((nA,DA)=>({label:rA?rA[nA]:`LABEL_${nA}`,score:He[DA]}));aA.push(MA)}return Array.isArray(ye)?aA:aA[0]}}class ve extends R{constructor(ye){super(ye),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(ye,{threshold:Ae=.5,mask_threshold:Re=.5,overlap_mask_area_threshold:qe=.8,label_ids_to_fuse:Ue=null,target_sizes:rA=null,subtask:aA=null}={}){if(Array.isArray(ye)&&ye.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");const cA=await v(ye),He=cA.map(tA=>[tA.height,tA.width]),ce=await this.processor(cA),{inputNames:MA,outputN
2893ames:nA}=this.model.sessions.model;if(!MA.includes("pixel_values")){if(MA.length!==1)throw Error(`Expected a single input name, but got ${MA.length} inputs: ${MA}.`);const tA=MA[0];if(tA in ce)throw Error(`Input name ${tA} already exists in the inputs.`);ce[tA]=ce.pixel_values}const DA=await this.model(ce);let IA=null;if(aA!==null)IA=this.subtasks_mapping[aA];else if(this.processor.image_processor){for(const[tA,lA]of Object.entries(this.subtasks_mapping))if(lA in this.processor.image_processor){IA=this.processor.image_processor[lA].bind(this.processor.image_processor),aA=tA;break}}const ot=this.model.config.id2label,BA=[];if(aA)if(aA==="panoptic"||aA==="instance"){const tA=IA(DA,Ae,Re,qe,Ue,rA??He)[0],lA=tA.segmentation;for(const KA of tA.segments_info){const JA=new Uint8ClampedArray(lA.data.length);for(let ZA=0;ZA<lA.data.length;++ZA)lA.data[ZA]===KA.id&&(JA[ZA]=255);const RA=new B.RawImage(JA,lA.dims[1],lA.dims[0],1);BA.push({score:KA.score,label:ot[KA.label_id],mask:RA})}}else if(aA==="semantic"){const{segmentation:tA,labels:lA}=IA(DA,rA??He)[0];for(const KA of lA){const JA=new Uint8ClampedArray(tA.data.length);for(let ZA=0;ZA<tA.data.length;++ZA)tA.data[ZA]===KA&&(JA[ZA]=255);const RA=new B.RawImage(JA,tA.dims[1],tA.dims[0],1);BA.push({score:null,label:ot[KA],mask:RA})}}else throw Error(`Subtask ${aA} not supported.`);else{const lA=DA[nA[0]];for(let KA=0;KA<He.length;++KA){const JA=He[KA],RA=lA[KA];RA.data.some(Zt=>Zt<-1e-5||Zt>1+1e-5)&&RA.sigmoid_();const ZA=await B.RawImage.fromTensor(RA.mul_(255).to("uint8")).resize(JA[1],JA[0]);BA.push({label:null,score:null,mask:ZA})}}return BA}}class De extends ve{constructor(ye){super(ye)}async _call(ye,Ae={}){if(Array.isArray(ye)&&ye.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");const qe=await v(ye),Ue=await super._call(ye,Ae);return qe.map((aA,Y)=>{const cA=aA.clone();return cA.putAlpha(Ue[Y].mask),cA})}}class je extends R{constructor(ye){super(ye)}async _call(ye,Ae,{hypothesis_template:Re="This is a photo of {}"}={}){const qe=Array.isArray(ye),Ue=await v(ye),rA=Ae.map(MA=>Re.replace("{}",MA)),aA=this.tokenizer(rA,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:Y}=await this.processor(Ue),cA=await this.model({...aA,pixel_values:Y}),He=this.model.config.model_type==="siglip"?MA=>MA.sigmoid().data:MA=>(0,M.softmax)(MA.data),ce=[];for(const MA of cA.logits_per_image){const DA=[...He(MA)].map((IA,ot)=>({score:IA,label:Ae[ot]}));DA.sort((IA,ot)=>ot.score-IA.score),ce.push(DA)}return qe?ce:ce[0]}}class Le extends R{constructor(ye){super(ye)}async _call(ye,{threshold:Ae=.9,percentage:Re=!1}={}){const qe=Array.isArray(ye);if(qe&&ye.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");const Ue=await v(ye),rA=Re?null:Ue.map(nA=>[nA.height,nA.width]),{pixel_values:aA,pixel_mask:Y}=await this.processor(Ue),cA=await this.model({pixel_values:aA,pixel_mask:Y}),He=this.processor.image_processor.post_process_object_detection(cA,Ae,rA),ce=this.model.config.id2label,MA=He.map(nA=>nA.boxes.map((DA,IA)=>({score:nA.scores[IA],label:ce[nA.classes[IA]],box:F(DA,!Re)})));return qe?MA:MA[0]}}class Pe extends R{constructor(ye){super(ye)}async _call(ye,Ae,{threshold:Re=.1,top_k:qe=null,percentage:Ue=!1}={}){const rA=Array.isArray(ye),aA=await v(ye),Y=this.tokenizer(Ae,{padding:!0,truncation:!0}),cA=await this.processor(aA),He=[];for(let ce=0;ce<aA.length;++ce){const MA=aA[ce],nA=Ue?null:[[MA.height,MA.width]],DA=cA.pixel_values[ce].unsqueeze_(0),IA=await this.model({...Y,pixel_values:DA});let ot;if("post_process_grounded_object_detection"in this.processor){const BA=this.processor.post_process_grounded_object_detection(IA,Y.input_ids,{box_threshold:Re,text_threshold:Re,target_sizes:nA})[0];ot=BA.boxes.map((tA,lA)=>({score:BA.scores[lA],label:BA.labels[lA],box:F(tA,!Ue)}))}else{const BA=this.processor.image_processor.post_process_object_detection(IA,Re,nA,!0)[0];ot=BA.boxes.map((tA,lA)=>({score:BA.scores[lA],label:Ae[BA.classes[lA]],box:F(tA,!Ue)}))}ot.sort((BA,tA)=>tA.score-BA.score),qe!==null&&(ot=ot.slice(0,qe)),He.push(ot)}return rA?He:He[0]}}class me extends R{constructor(ye){super(ye)}async _call(ye,Ae,Re={}){const qe=(await v(ye))[0],{pixel_values:Ue}=await this.processor(qe),rA=`<s_docvqa><s_question>${Ae}</s_question><s_answer>`,aA=this.tokenizer(rA,{add_special_tokens:!1,padding:!0,truncation:!0}
2893).input_ids,Y=await this.model.generate({inputs:Ue,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:aA,...Re}),He=this.tokenizer.batch_decode(Y)[0].match(/<s_answer>(.*?)<\/s_answer>/);let ce=null;return He&&He.length>=2&&(ce=He[1].trim()),[{answer:ce}]}}class ie extends R{constructor(Ae){super(Ae);Ee(this,"DEFAULT_VOCODER_ID","Xenova/speecht5_hifigan");this.vocoder=Ae.vocoder??null}async _prepare_speaker_embeddings(Ae){if((typeof Ae=="string"||Ae instanceof URL)&&(Ae=new Float32Array(await(await fetch(Ae)).arrayBuffer())),Ae instanceof Float32Array)Ae=new D.Tensor("float32",Ae,[Ae.length]);else if(!(Ae instanceof D.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");return Ae}async _call(Ae,{speaker_embeddings:Re=null,num_inference_steps:qe,speed:Ue}={}){return this.processor?this._call_text_to_spectrogram(Ae,{speaker_embeddings:Re}):this.model.config.model_type==="supertonic"?this._call_supertonic(Ae,{speaker_embeddings:Re,num_inference_steps:qe,speed:Ue}):this._call_text_to_waveform(Ae)}async _call_supertonic(Ae,{speaker_embeddings:Re,num_inference_steps:qe,speed:Ue}){if(!Re)throw new Error("Speaker embeddings must be provided for Supertonic models.");Re=await this._prepare_speaker_embeddings(Re);const{sampling_rate:rA,style_dim:aA}=this.model.config;Re=Re.view(1,-1,aA);const Y=this.tokenizer(Ae,{padding:!0,truncation:!0}),{waveform:cA}=await this.model.generate_speech({...Y,style:Re,num_inference_steps:qe,speed:Ue});return new E.RawAudio(cA.data,rA)}async _call_text_to_waveform(Ae){const Re=this.tokenizer(Ae,{padding:!0,truncation:!0}),{waveform:qe}=await this.model(Re),Ue=this.model.config.sampling_rate;return new E.RawAudio(qe.data,Ue)}async _call_text_to_spectrogram(Ae,{speaker_embeddings:Re}){this.vocoder||(this.vocoder=await p.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"}));const{input_ids:qe}=this.tokenizer(Ae,{padding:!0,truncation:!0});Re=await this._prepare_speaker_embeddings(Re),Re=Re.view(1,-1);const{waveform:Ue}=await this.model.generate_speech(qe,Re,{vocoder:this.vocoder}),rA=this.processor.feature_extractor.config.sampling_rate;return new E.RawAudio(Ue.data,rA)}}class Ie extends R{constructor(ye){super(ye)}async _call(ye){const Ae=await v(ye),Re=await this.processor(Ae),qe=await this.model(Re),Ue=[];for(const rA of qe.reconstruction){const aA=rA.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");Ue.push(B.RawImage.fromTensor(aA))}return Ue.length>1?Ue:Ue[0]}}class Fe extends R{constructor(ye){super(ye)}async _call(ye){const Ae=await v(ye),Re=await this.processor(Ae),{predicted_depth:qe}=await this.model(Re),Ue=[];for(let rA=0;rA<Ae.length;++rA){const aA=qe[rA],[Y,cA]=aA.dims.slice(-2),[He,ce]=Ae[rA].size,MA=(await(0,D.interpolate_4d)(aA.view(1,1,Y,cA),{size:[ce,He],mode:"bilinear"})).view(ce,He),nA=MA.min().item(),DA=MA.max().item(),IA=MA.sub(nA).div_(DA-nA).mul_(255).to("uint8").unsqueeze(0),ot=B.RawImage.fromTensor(IA);Ue.push({predicted_depth:MA,depth:ot})}return Ue.length>1?Ue:Ue[0]}}const xe=Object.freeze({"text-classification":{tokenizer:g.AutoTokenizer,pipeline:X,model:p.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:g.AutoTokenizer,pipeline:z,model:p.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:g.AutoTokenizer,pipeline:L,model:p.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:g.AutoTokenizer,pipeline:K,model:p.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:g.AutoTokenizer,pipeline:w,model:p.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:g.AutoTokenizer,pipeline:e,model:p.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:g.AutoTokenizer,pipeline:d,model:p.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:g.AutoTokenizer,pipeline:y,model:p.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:g.AutoTokenizer,pipeline:ee,model:p.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:ge,model:p.AutoModelForAudioClassification,processor:h.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:g.AutoTokenizer,pipeline:se,model:p.AutoModel,processor:h.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:g.AutoTokenizer,pipeline:we,model:[p.AutoModelForSpeechSeq2Seq,p.AutoModelForCTC],processor:h.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:g.AutoTokenizer,pipeline:ie,model:[p.AutoModelForTextToWaveform,p.AutoModelForTextToSpectrogram],processor:[h.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:g.AutoTokenizer,pipeline:be,model:p.AutoModelForVision2Seq,processor:h.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:Be,model:p.AutoModelForImageClassification,processor:h.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:ve,model:[p.AutoModelForImageSegmentation,p.AutoModelForSemanticSegmentation,p.AutoModelForUniversalSegmentation],processor:h.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:De,model:[p.AutoModelForImageSegmentation,p.AutoModelForSemanticSegmentation,p.AutoModelForUniversalSegmentation],processor:h.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:g.AutoTokenizer,pipeline:je,model:p.AutoModel,processor:h.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:Le,model:p.AutoModelForObjectDetection,processor:h.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:g.AutoTokenizer,pipeline:Pe,model:p.AutoModelForZeroShotObjectDetection,processor:h.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:g.AutoTokenizer,pipeline:me,model:p.AutoModelForDocumentQuestionAnswering,processor:h.AutoProcessor,default:{model:"Xenova/d
2893onut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:Ie,model:p.AutoModelForImageToImage,processor:h.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:Fe,model:p.AutoModelForDepthEstimation,processor:h.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:g.AutoTokenizer,pipeline:T,model:p.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:h.AutoProcessor,pipeline:O,model:[p.AutoModelForImageFeatureExtraction,p.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),sA=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function uA(iA,ye=null,{progress_callback:Ae=null,config:Re=null,cache_dir:qe=null,local_files_only:Ue=!1,revision:rA="main",device:aA=null,dtype:Y=null,subfolder:cA="onnx",use_external_data_format:He=null,model_file_name:ce=null,session_options:MA={}}={}){iA=sA[iA]??iA;const nA=xe[iA.split("_",1)[0]];if(!nA)throw Error(`Unsupported pipeline: ${iA}. Must be one of [${Object.keys(xe)}]`);ye||(ye=nA.default.model,`${ye}`);const DA={progress_callback:Ae,config:Re,cache_dir:qe,local_files_only:Ue,revision:rA,device:aA,dtype:Y,subfolder:cA,use_external_data_format:He,model_file_name:ce,session_options:MA},IA=new Map([["tokenizer",nA.tokenizer],["model",nA.model],["processor",nA.processor]]),ot=await hA(IA,ye,DA);ot.task=iA,(0,k.dispatchCallback)(Ae,{status:"ready",task:iA,model:ye});const BA=nA.pipeline;return new BA(ot)}async function hA(iA,ye,Ae){const Re=Object.create(null),qe=[];for(const[Ue,rA]of iA.entries()){if(!rA)continue;let aA;Array.isArray(rA)?aA=new Promise(async(Y,cA)=>{var ce,MA;let He;for(const nA of rA){if(nA===null){Y(null);return}try{Y(await nA.from_pretrained(ye,Ae));return}catch(DA){if((ce=DA.message)!=null&&ce.includes("Unsupported model type"))He=DA;else if((MA=DA.message)!=null&&MA.includes("Could not locate file"))He=DA;else{cA(DA);return}}}cA(He)}):aA=rA.from_pretrained(ye,Ae),Re[Ue]=aA,qe.push(aA)}await Promise.all(qe);for(const[Ue,rA]of Object.entries(Re))Re[Ue]=await rA;return Re}},
2893"./src/tokenizers.js":(a,i,n)=>{n.r(i),n.d(i,{AlbertTokenizer:()=>Os,AutoTokenizer:()=>Wa,BartTokenizer:()=>SA,BertTokenizer:()=>ta,BlenderbotSmallTokenizer:()=>CA,BlenderbotTokenizer:()=>pA,BloomTokenizer:()=>OA,CLIPTokenizer:()=>ra,CamembertTokenizer:()=>ke,CodeGenTokenizer:()=>fs,CodeLlamaTokenizer:()=>es,CohereTokenizer:()=>sa,ConvBertTokenizer:()=>ue,DebertaTokenizer:()=>mt,DebertaV2Tokenizer:()=>Ws,DistilBertTokenizer:()=>pe,ElectraTokenizer:()=>eA,EsmTokenizer:()=>Tr,FalconTokenizer:()=>ur,GPT2Tokenizer:()=>NA,GPTNeoXTokenizer:()=>Vs,GemmaTokenizer:()=>ks,Grok1Tokenizer:()=>ss,HerbertTokenizer:()=>H,LlamaTokenizer:()=>zt,M2M100Tokenizer:()=>LA,MBart50Tokenizer:()=>YA,MBartTokenizer:()=>gt,MPNetTokenizer:()=>Kr,MarianTokenizer:()=>_s,MgpstrTokenizer:()=>Hs,MobileBertTokenizer:()=>Jt,NllbTokenizer:()=>fr,NougatTokenizer:()=>Rt,PreTrainedTokenizer:()=>UA,Qwen2Tokenizer:()=>ha,RoFormerTokenizer:()=>ae,RobertaTokenizer:()=>vt,SiglipTokenizer:()=>Ys,SpeechT5Tokenizer:()=>_A,SqueezeBertTokenizer:()=>bs,T5Tokenizer:()=>FA,TokenizerModel:()=>O,VitsTokenizer:()=>Ca,Wav2Vec2CTCTokenizer:()=>_r,WhisperTokenizer:()=>Vr,XLMRobertaTokenizer:()=>Cr,XLMTokenizer:()=>_e,is_chinese_char:()=>K});var g=n("./src/utils/generic.js"),p=n("./src/utils/core.js"),h=n("./src/utils/hub.js"),C=n("./src/utils/maths.js"),k=n("./src/utils/tensor.js"),M=n("./src/utils/data-structures.js"),E=n("./node_modules/@huggingface/jinja/dist/index.js"),D=n("./src/models/whisper/common_whisper.js");async function B(Ne,J){const de=await Promise.all([(0,h.getModelJSON)(Ne,"tokenizer.json",!0,J),(0,h.getModelJSON)(Ne,"tokenizer_config.json",!0,J)]);return J.legacy!==null&&(de[1].legacy=J.legacy),de}function v(Ne,J){const de=[];let he=0;for(const Ge of Ne.matchAll(J)){const ze=Ge[0];he<Ge.index&&de.push(Ne.slice(he,Ge.index)),ze.length>0&&de.push(ze),he=Ge.index+ze.length}return he<Ne.length&&de.push(Ne.slice(he)),de}function S(Ne,J=!0){if(Ne.Regex!==void 0){let de=Ne.Regex.replace(/\\([#&~])/g,"$1");for(const[he,Ge]of ee)de=de.replaceAll(he,Ge);return new RegExp(de,"gu")}else if(Ne.String!==void 0){const de=(0,p.escapeRegExp)(Ne.String);return new RegExp(J?de:`(${de})`,"gu")}else return console.warn("Unknown pattern type:",Ne),null}function F(Ne){return new Map(Object.entries(Ne))}function R(Ne){const J=Ne.dims;switch(J.length){case 1:return Ne.tolist();case 2:if(J[0]!==1)throw new Error("Unable to decode tensor with `batch size !== 1`. Use `tokenizer.batch_decode(...)` for batched inputs.");return Ne.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${J.length}.`)}}function X(Ne){return Ne.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n\'t/g,"n't").replace(/ \'m/g,"'m").replace(/ \'s/g,"'s").replace(/ \'ve/g,"'ve").replace(/ \'re/g,"'re")}function z(Ne){return Ne.replace(new RegExp("\\p{M}","gu"),"")}function L(Ne){return z(Ne.toLowerCase())}function K(Ne){return Ne>=19968&&Ne<=40959||Ne>=13312&&Ne<=19903||Ne>=131072&&Ne<=173791||Ne>=173824&&Ne<=177983||Ne>=177984&&Ne<=178207||Ne>=178208&&Ne<=183983||Ne>=63744&&Ne<=64255||Ne>=194560&&Ne<=195103}function d(Ne,J,de){const he=[];let Ge=0;for(;Ge<Ne.length;){if(he.push(Ne[Ge]),(J.get(Ne[Ge])??de)!==de){++Ge;continue}for(;++Ge<Ne.length&&(J.get(Ne[Ge])??de)===de;)J.get(he.at(-1))!==de&&(he[he.length-1]+=Ne[Ge])}return he}function w(Ne){return Ne.match(/\S+/g)||[]}const e="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",u=new RegExp(`^[${e}]+$`,"gu"),y=".,!?â¦ãï¼ãà¥¤ÛØ",ee=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],["(?i:[sdmt]|ll|ve|re)","(?:[sS]|[dD]|[mM]|[tT]|[lL][lL]|[vV][eE]|[rR][eE])"],["[^\\r\\n\\p{L}\\p{N}]?+","[^\\r\\n\\p{L}\\p{N}]?"],["[^\\s\\p{L}\\p{N}]++","[^\\s\\p{L}\\p{N}]+"],[` ?[^(\\s|[${y}])]+`,` ?[^\\s${y}]+`]]);class T{constructor(J){this.content=J.content,this.id=J.id,this.single_word=J.single_word??!1,this.lstrip=J.lstrip??!1,this.rstrip=J.rstrip??!1,this.special=J.special??!1,this.normalized=J.normalized??null}}class O extends g.Callable{constructor(J){super(),this.config=J,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}static fromConfig(J,...de){switch(J.type){case"WordPiece":return new ge(J);case"Unigram":return new se(J,...de);case"BPE":return new Be(J);default:if(J.vocab)return Array.isArray(J.vocab)?new se(J,...de):Object.hasOwn(J,"continuing_subword_prefix")&&Object.hasOwn(J,"unk_token")?Object.hasOwn(J,"merges")?new Be(J):new ge(J):new ve(J,...de);throw new Error(`Unknown TokenizerModel type: ${J.type}`)}}_call(J){return J=this.encode(J),this.fuse_unk&&(J=d(J,this.tokens_to_ids,this.unk_token_id)),J}encode(J){throw Error("encode should be implemented in subclass.")}convert_tokens_to_ids(J){return J.map(de=>this.tokens_to_ids.get(de)??this.unk_token_id)}convert_ids_to_tokens(J){return J.map(de=>this.vocab[de]??this.unk_token)}}class ge extends O{constructor(J){super(J),this.tokens_to_ids=F(J.vocab),this.unk_token_id=this.tokens_to_ids.get(J.unk_token),this.unk_token=J.unk_token,this.max_input_chars_per_word=J.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(const[de,he]of this.tokens_to_ids)this.vocab[he]=de}encode(J){const de=[];for(const he of J){const Ge=[...he];if(Ge.length>this.max_input_chars_per_word){de.push(this.unk_token);continue}let ze=!1,$e=0;const wA=[];for(;$e<Ge.length;){let xA=Ge.length,Xe=null;for(;$e<xA;){let QA=Ge.slice($e,xA).join("");if($e>0&&(QA=this.config.continuing_subword_prefix+QA),this.tokens_to_ids.has(QA)){Xe=QA;break}--xA}if(Xe===null){ze=!0;break}wA.push(Xe),$e=xA}
2893ze?de.push(this.unk_token):de.push(...wA)}return de}}class se extends O{constructor(J,de){super(J);const he=J.vocab.length;this.vocab=new Array(he),this.scores=new Array(he);for(let Ge=0;Ge<he;++Ge)[this.vocab[Ge],this.scores[Ge]]=J.vocab[Ge];this.unk_token_id=J.unk_id,this.unk_token=this.vocab[J.unk_id],this.tokens_to_ids=new Map(this.vocab.map((Ge,ze)=>[Ge,ze])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=de.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.minScore=(0,C.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new M.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(J){const de=J.chars,he=1;let Ge=0;for(;Ge<de.length;){let ze=!1;const $e=de.slice(Ge).join(""),wA=this.trie.commonPrefixSearch($e);for(const xA of wA){const Xe=this.tokens_to_ids.get(xA),QA=this.scores[Xe],it=(0,p.len)(xA);J.insert(Ge,it,QA,Xe),!ze&&it===he&&(ze=!0)}ze||J.insert(Ge,he,this.unk_score,this.unk_token_id),Ge+=he}}tokenize(J){const de=new M.TokenLattice(J,this.bos_token_id,this.eos_token_id);return this.populateNodes(de),de.tokens()}encode(J){const de=[];for(const he of J){const Ge=this.tokenize(he);de.push(...Ge)}return de}}const we=(()=>{const Ne=[...Array.from({length:94},(Ge,ze)=>ze+33),...Array.from({length:12},(Ge,ze)=>ze+161),...Array.from({length:82},(Ge,ze)=>ze+174)],J=Ne.slice();let de=0;for(let Ge=0;Ge<256;++Ge)Ne.includes(Ge)||(Ne.push(Ge),J.push(256+de),de+=1);const he=J.map(Ge=>String.fromCharCode(Ge));return Object.fromEntries(Ne.map((Ge,ze)=>[Ge,he[ze]]))})(),be=(0,p.reverseDictionary)(we);class Be extends O{constructor(J){super(J),this.tokens_to_ids=F(J.vocab),this.unk_token_id=this.tokens_to_ids.get(J.unk_token),this.unk_token=J.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[he,Ge]of this.tokens_to_ids)this.vocab[Ge]=he;const de=Array.isArray(J.merges[0]);this.merges=de?J.merges:J.merges.map(he=>he.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((he,Ge)=>[JSON.stringify(he),Ge])),this.end_of_word_suffix=J.end_of_word_suffix,this.continuing_subword_suffix=J.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new M.LRUCache(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(J){if(J.length===0)return[];const de=this.cache.get(J);if(de!==void 0)return de;const he=Array.from(J);this.end_of_word_suffix&&(he[he.length-1]+=this.end_of_word_suffix);let Ge=[];if(he.length>1){const ze=new M.PriorityQueue((xA,Xe)=>xA.score<Xe.score);let $e={token:he[0],bias:0,prev:null,next:null},wA=$e;for(let xA=1;xA<he.length;++xA){const Xe={bias:xA/he.length,token:he[xA],prev:wA,next:null};wA.next=Xe,this._add_node(ze,wA),wA=Xe}for(;!ze.isEmpty();){const xA=ze.pop();if(xA.deleted||!xA.next||xA.next.deleted)continue;if(xA.deleted=!0,xA.next.deleted=!0,xA.prev){const QA={...xA.prev};xA.prev.deleted=!0,xA.prev=QA,QA.prev?QA.prev.next=QA:$e=QA}const Xe={token:xA.token+xA.next.token,bias:xA.bias,prev:xA.prev,next:xA.next.next};Xe.prev?(Xe.prev.next=Xe,this._add_node(ze,Xe.prev)):$e=Xe,Xe.next&&(Xe.next.prev=Xe,this._add_node(ze,Xe))}for(let xA=$e;xA!==null;xA=xA.next)Ge.push(xA.token)}else Ge=he;if(this.continuing_subword_suffix)for(let ze=0;ze<Ge.length-1;++ze)Ge[ze]+=this.continuing_subword_suffix;return J.length<this.max_length_to_cache&&this.cache.put(J,Ge),Ge}_add_node(J,de){const he=this.bpe_ranks.get(JSON.stringify([de.token,de.next.token]));he!==void 0&&(de.score=he+de.bias,J.push(de))}encode(J){const de=[];for(const he of J){if(this.ignore_merges&&this.tokens_to_ids.has(he)){de.push(he);continue}const Ge=this.bpe(he);for(const ze of Ge)if(this.tokens_to_ids.has(ze))de.push(ze);else if(this.byte_fallback){const $e=Array.from(this.text_encoder.encode(ze)).map(wA=>`<0x${wA.toString(16).toUpperCase().padStart(2,"0")}>`);$e.every(wA=>this.tokens_to_ids.has(wA))?de.push(...$e):de.push(this.unk_token)}else de.push(this.unk_token)}return de}}class ve extends O{constructor(J,de){super(J),this.tokens_to_ids=F(de.target_lang?J.vocab[de.target_lang]:J.vocab),this.bos_token=de.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=de.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=de.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=de.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(const[he,Ge]of this.tokens_to_ids)this.vocab[Ge]=he}encode(J){return J}}class De extends g.Callable{constructor(J){super(),this.config=J}static fromConfig(J){if(J===null)return null;
2893switch(J.type){case"BertNormalizer":return new iA(J);case"Precompiled":return new ft(J);case"Sequence":return new hA(J);case"Replace":return new je(J);case"NFC":return new Pe(J);case"NFD":return new me(J);case"NFKC":return new ie(J);case"NFKD":return new Ie(J);case"Strip":return new Fe(J);case"StripAccents":return new xe(J);case"Lowercase":return new sA(J);case"Prepend":return new uA(J);default:throw new Error(`Unknown Normalizer type: ${J.type}`)}}normalize(J){throw Error("normalize should be implemented in subclass.")}_call(J){return this.normalize(J)}}class je extends De{normalize(J){const de=S(this.config.pattern);return de===null?J:J.replaceAll(de,this.config.content)}}class Le extends De{constructor(){super(...arguments);Ee(this,"form")}normalize(de){return de=de.normalize(this.form),de}}class Pe extends Le{constructor(){super(...arguments);Ee(this,"form","NFC")}}class me extends Le{constructor(){super(...arguments);Ee(this,"form","NFD")}}class ie extends Le{constructor(){super(...arguments);Ee(this,"form","NFKC")}}class Ie extends Le{constructor(){super(...arguments);Ee(this,"form","NFKD")}}class Fe extends De{normalize(J){return this.config.strip_left&&this.config.strip_right?J=J.trim():(this.config.strip_left&&(J=J.trimStart()),this.config.strip_right&&(J=J.trimEnd())),J}}class xe extends De{normalize(J){return J=z(J),J}}class sA extends De{normalize(J){return J=J.toLowerCase(),J}}class uA extends De{normalize(J){return J=this.config.prepend+J,J}}class hA extends De{constructor(J){super(J),this.normalizers=J.normalizers.map(de=>De.fromConfig(de))}normalize(J){return this.normalizers.reduce((de,he)=>he.normalize(de),J)}}class iA extends De{_tokenize_chinese_chars(J){const de=[];for(let he=0;he<J.length;++he){const Ge=J[he],ze=Ge.charCodeAt(0);K(ze)?(de.push(" "),de.push(Ge),de.push(" ")):de.push(Ge)}return de.join("")}stripAccents(J){return J.normalize("NFD").replace(new RegExp("\\p{Mn}","gu"),"")}_is_control(J){switch(J){case" ":case` 2894`:case"\r":return!1;default:return new RegExp("^\\p{Cc}|\\p{Cf}|\\p{Co}|\\p{Cs}$","u").test(J)}}_clean_text(J){const de=[];for(const he of J){const Ge=he.charCodeAt(0);Ge===0||Ge===65533||this._is_control(he)||(/^\s$/.test(he)?de.push(" "):de.push(he))}return de.join("")}normalize(J){return this.config.clean_text&&(J=this._clean_text(J)),this.config.handle_chinese_chars&&(J=this._tokenize_chinese_chars(J)),this.config.lowercase?(J=J.toLowerCase(),this.config.strip_accents!==!1&&(J=this.stripAccents(J))):this.config.strip_accents&&(J=this.stripAccents(J)),J}}class ye extends g.Callable{static fromConfig(J){if(J===null)return null;switch(J.type){case"BertPreTokenizer":return new Ae(J);case"Sequence":return new ds(J);case"Whitespace":return new ea(J);case"WhitespaceSplit":return new Aa(J);case"Metaspace":return new Zt(J);case"ByteLevel":return new Re(J);case"Split":return new qe(J);case"Punctuation":return new Ue(J);case"Digits":return new rA(J);case"Replace":return new Ts(J);
2894case"FixedLength":return new Er(J);default:throw new Error(`Unknown PreTokenizer type: ${J.type}`)}}pre_tokenize_text(J,de){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(J,de){return(Array.isArray(J)?J.map(he=>this.pre_tokenize_text(he,de)):this.pre_tokenize_text(J,de)).flat()}_call(J,de){return this.pre_tokenize(J,de)}}class Ae extends ye{constructor(J){super(),this.pattern=new RegExp(`[^\\s${e}]+|[${e}]`,"gu")}pre_tokenize_text(J,de){return J.trim().match(this.pattern)||[]}}class Re extends ye{constructor(J){super(),this.config=J,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=new RegExp("'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+","gu"),this.byte_encoder=we,this.text_encoder=new TextEncoder}pre_tokenize_text(J,de){return this.add_prefix_space&&!J.startsWith(" ")&&(J=" "+J),(this.use_regex?J.match(this.pattern)||[]:[J]).map(Ge=>Array.from(this.text_encoder.encode(Ge),ze=>this.byte_encoder[ze]).join(""))}}class qe extends ye{constructor(J){super(),this.config=J,this.pattern=S(this.config.pattern,this.config.invert)}pre_tokenize_text(J,de){var he;return this.pattern===null?[]:this.config.invert?J.match(this.pattern)||[]:((he=this.config.behavior)==null?void 0:he.toLowerCase())==="removed"?J.split(this.pattern).filter(Ge=>Ge):v(J,this.pattern)}}class Ue extends ye{constructor(J){super(),this.config=J,this.pattern=new RegExp(`[^${e}]+|[${e}]+`,"gu")}pre_tokenize_text(J,de){return J.match(this.pattern)||[]}}class rA extends ye{constructor(J){super(),this.config=J;const de=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(de,"gu")}pre_tokenize_text(J,de){return J.match(this.pattern)||[]}}class aA extends g.Callable{constructor(J){super(),this.config=J}static fromConfig(J){if(J===null)return null;switch(J.type){case"TemplateProcessing":return new He(J);case"ByteLevel":return new ce(J);case"RobertaProcessing":return new cA(J);case"BertProcessing":return new Y(J);case"Sequence":return new MA(J);default:throw new Error(`Unknown PostProcessor type: ${J.type}`)}}post_process(J,...de){throw Error("post_process should be implemented in subclass.")}_call(J,...de){return this.post_process(J,...de)}}class Y extends aA{constructor(J){super(J),this.cls=J.cls[0],this.sep=J.sep[0]}post_process(J,de=null,{add_special_tokens:he=!0}={}){he&&(J=(0,p.mergeArrays)([this.cls],J,[this.sep]));let Ge=new Array(J.length).fill(0);if(de!==null){const ze=he&&this instanceof cA?[this.sep]:[],$e=he?[this.sep]:[];J=(0,p.mergeArrays)(J,ze,de,$e),Ge=(0,p.mergeArrays)(Ge,new Array(de.length+ze.length+$e.length).fill(1))}return{tokens:J,token_type_ids:Ge}}}class cA extends Y{}class He extends aA{constructor(J){super(J),this.single=J.single,this.pair=J.pair}post_process(J,de=null,{add_special_tokens:he=!0}={}){const Ge=de===null?this.single:this.pair;let ze=[],$e=[];for(const wA of Ge)"SpecialToken"in wA?he&&(ze.push(wA.SpecialToken.id),$e.push(wA.SpecialToken.type_id)):"Sequence"in wA&&(wA.Sequence.id==="A"?(ze=(0,p.mergeArrays)(ze,J),$e=(0,p.mergeArrays)($e,new Array(J.length).fill(wA.Sequence.type_id))):wA.Sequence.id==="B"&&(ze=(0,p.mergeArrays)(ze,de),$e=(0,p.mergeArrays)($e,new Array(de.length).fill(wA.Sequence.type_id))));return{tokens:ze,token_type_ids:$e}}}class ce extends aA{post_process(J,de=null){return de&&(J=(0,p.mergeArrays)(J,de)),{tokens:J}}}class MA extends aA{constructor(J){super(J),this.processors=J.processors.map(de=>aA.fromConfig(de))}post_process(J,de=null,he={}){let Ge;for(const ze of this.processors)if(ze instanceof ce)J=ze.post_process(J).tokens,de&&(de=ze.post_process(de).tokens);else{const $e=ze.post_process(J,de,he);J=$e.tokens,Ge=$e.token_type_ids}return{tokens:J,token_type_ids:Ge}}}class nA extends g.Callable{constructor(J){super(),this.config=J,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=J.trim_offsets}static fromConfig(J){if(J===null)return null;switch(J.type){case"WordPiece":return new tA(J);
2894case"Metaspace":return new Sr(J);case"ByteLevel":return new lA(J);case"Replace":return new DA(J);case"ByteFallback":return new IA(J);case"Fuse":return new ot(J);case"Strip":return new BA(J);case"Sequence":return new JA(J);case"CTC":return new KA(J);case"BPEDecoder":return new RA(J);default:throw new Error(`Unknown Decoder type: ${J.type}`)}}_call(J){return this.decode(J)}decode(J){return this.decode_chain(J).join("")}decode_chain(J){throw Error("`decode_chain` should be implemented in subclass.")}}class DA extends nA{decode_chain(J){const de=S(this.config.pattern);return de===null?J:J.map(he=>he.replaceAll(de,this.config.content))}}class IA extends nA{constructor(J){super(J),this.text_decoder=new TextDecoder}decode_chain(J){const de=[];let he=[];for(const Ge of J){let ze=null;if(Ge.length===6&&Ge.startsWith("<0x")&&Ge.endsWith(">")){const $e=parseInt(Ge.slice(3,5),16);isNaN($e)||(ze=$e)}if(ze!==null)he.push(ze);else{if(he.length>0){const $e=this.text_decoder.decode(Uint8Array.from(he));de.push($e),he=[]}de.push(Ge)}}if(he.length>0){const Ge=this.text_decoder.decode(Uint8Array.from(he));de.push(Ge),he=[]}return de}}class ot extends nA{decode_chain(J){return[J.join("")]}}class BA extends nA{constructor(J){super(J),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(J){return J.map(de=>{let he=0;for(let ze=0;ze<this.start&&de[ze]===this.content;++ze){he=ze+1;continue}let Ge=de.length;for(let ze=0;ze<this.stop;++ze){const $e=de.length-ze-1;if(de[$e]===this.content){Ge=$e;continue}else break}return de.slice(he,Ge)})}}class tA extends nA{constructor(J){super(J),this.cleanup=J.cleanup}decode_chain(J){return J.map((de,he)=>(he!==0&&(de.startsWith(this.config.prefix)?de=de.replace(this.config.prefix,""):de=" "+de),this.cleanup&&(de=X(de)),de))}}class lA extends nA{constructor(J){super(J),this.byte_decoder=be,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(J){const de=J.join(""),he=new Uint8Array([...de].map(ze=>this.byte_decoder[ze]));return this.text_decoder.decode(he)}decode_chain(J){const de=[];let he=[];for(const Ge of J)this.added_tokens.find(ze=>ze.content===Ge)!==void 0?(he.length>0&&(de.push(this.convert_tokens_to_string(he)),he=[]),de.push(Ge)):he.push(Ge);return he.length>0&&de.push(this.convert_tokens_to_string(he)),de}}class KA extends nA{constructor(J){super(J),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(J){if(J.length===0)return"";const de=[J[0]];for(let ze=1;ze<J.length;++ze)J[ze]!==de.at(-1)&&de.push(J[ze]);let Ge=de.filter(ze=>ze!==this.pad_token).join("");return this.cleanup&&(Ge=X(Ge).replaceAll(this.word_delimiter_token," ").trim()),Ge}decode_chain(J){return[this.convert_tokens_to_string(J)]}}class JA extends nA{constructor(J){super(J),this.decoders=J.decoders.map(de=>nA.fromConfig(de))}decode_chain(J){return this.decoders.reduce((de,he)=>he.decode_chain(de),J)}}class RA extends nA{constructor(J){super(J),this.suffix=this.config.suffix}decode_chain(J){return J.map((de,he)=>de.replaceAll(this.suffix,he===J.length-1?"":" "))}}class ZA extends nA{decode_chain(J){let de="";for(let he=1;he<J.length;he+=2)de+=J[he];return[de]}}class Zt extends ye{constructor(J){super(),this.replacement=J.replacement,this.strRep=J.str_rep||this.replacement,this.prepend_scheme=J.prepend_scheme??"always"}pre_tokenize_text(J,{section_index:de=void 0}={}){let he=J.replaceAll(" ",this.strRep);return!he.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&de===0)&&(he=this.strRep+he),[he]}}class Sr extends nA{constructor(J){super(J),this.replacement=J.replacement}decode_chain(J){const de=[];for(let he=0;he<J.length;++he){let Ge=J[he].replaceAll(this.replacement," ");he==0&&Ge.startsWith(" ")&&(Ge=Ge.substring(1)),de.push(Ge)}return de}}class ft extends De{constructor(J){super(J),this.charsmap=J.precompiled_charsmap}normalize(J){return J=J.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,""),J=J.replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," "),J.includes("ï½")?J=J.split("ï½").map(he=>he.normalize("NFKC")).join("ï½"):J=J.normalize("NFKC"),J}}class ds extends ye{constructor(J){super(),this.tokenizers=J.pretokenizers.map(de=>ye.fromConfig(de))}pre_tokenize_text(J,de){return this.tokenizers.reduce((he,Ge)=>Ge.pre_tokenize(he,de),[J])}}class ea extends ye{constructor(J){super()}pre_tokenize_text(J,de){return J.match(/\w+|[^\w\s]+/g)||[]}}class Aa extends ye{constructor(J){super()}pre_tokenize_text(J,de){return w(J)}}class Ts extends ye{constructor(J){super(),this.config=J,this.pattern=S(this.config.pattern),this.content=this.config.content}
2894pre_tokenize_text(J,de){return this.pattern===null?[J]:[J.replaceAll(this.pattern,this.config.content)]}}class Er extends ye{constructor(J){super(),this._length=J.length}pre_tokenize_text(J,de){const he=[];for(let Ge=0;Ge<J.length;Ge+=this._length)he.push(J.slice(Ge,Ge+this._length));return he}}const $r=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function Ss(Ne,J,de,he){for(const Ge of Object.keys(Ne)){const ze=J-Ne[Ge].length,$e=de(Ge),wA=new Array(ze).fill($e);Ne[Ge]=he==="right"?(0,p.mergeArrays)(Ne[Ge],wA):(0,p.mergeArrays)(wA,Ne[Ge])}}function xt(Ne,J){for(const de of Object.keys(Ne))Ne[de].length=J}class UA extends g.Callable{constructor(de,he){super();Ee(this,"return_token_type_ids",!1);Ee(this,"padding_side","right");this.config=he,this.normalizer=De.fromConfig(de.normalizer),this.pre_tokenizer=ye.fromConfig(de.pre_tokenizer),this.model=O.fromConfig(de.model,he),this.post_processor=aA.fromConfig(de.post_processor),this.decoder=nA.fromConfig(de.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(const Ge of de.added_tokens){const ze=new T(Ge);this.added_tokens.push(ze),this.model.tokens_to_ids.set(ze.content,ze.id),this.model.vocab[ze.id]=ze.content,ze.special&&(this.special_tokens.push(ze.content),this.all_special_ids.push(ze.id))}if(this.additional_special_tokens=he.additional_special_tokens??[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_splitter=new M.DictionarySplitter(this.added_tokens.map(Ge=>Ge.content)),this.added_tokens_map=new Map(this.added_tokens.map(Ge=>[Ge.content,Ge])),this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.bos_token=this.getToken("bos_token"),this.bos_token_id=this.model.tokens_to_ids.get(this.bos_token),this.eos_token=this.getToken("eos_token"),this.eos_token_id=this.model.tokens_to_ids.get(this.eos_token),this.model_max_length=he.model_max_length,this.remove_space=he.remove_space,this.clean_up_tokenization_spaces=he.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=he.do_lowercase_and_remove_accent??!1,he.padding_side&&(this.padding_side=he.padding_side),this.add_bos_token=he.add_bos_token,this.add_eos_token=he.add_eos_token,this.legacy=!1,this.chat_template=he.chat_template??null,Array.isArray(this.chat_template)){const Ge=Object.create(null);for(const{name:ze,template:$e}of this.chat_template){if(typeof ze!="string"||typeof $e!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');Ge[ze]=$e}this.chat_template=Ge}this._compiled_template_cache=new Map}getToken(...de){for(const he of de){const Ge=this.config[he];if(Ge)if(typeof Ge=="object"){if(Ge.__type==="AddedToken")return Ge.content;throw Error(`Unknown token: ${Ge}`)}else return Ge}return null}static async from_pretrained(de,{progress_callback:he=null,config:Ge=null,cache_dir:ze=null,local_files_only:$e=!1,revision:wA="main",legacy:xA=null}={}){const Xe=await B(de,{progress_callback:he,config:Ge,cache_dir:ze,local_files_only:$e,revision:wA,legacy:xA});return new this(...Xe)}_call(de,{text_pair:he=null,add_special_tokens:Ge=!0,padding:ze=!1,truncation:$e=null,max_length:wA=null,return_tensor:xA=!0,return_token_type_ids:Xe=null}={}){const QA=Array.isArray(de);let it;if(QA){if(de.length===0)throw Error("text array must be non-empty");if(he!==null){if(Array.isArray(he)){if(de.length!==he.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");it=de.map((Ft,gr)=>this._encode_plus(Ft,{text_pair:he[gr],add_special_tokens:Ge,return_token_type_ids:Xe}))}else it=de.map(Ft=>this._encode_plus(Ft,{add_special_tokens:Ge,return_token_type_ids:Xe}))}else{if(de==null)throw Error("text may not be null or undefined");if(Array.isArray(he))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");it=[this._encode_plus(de,{text_pair:he,add_special_tokens:Ge,return_token_type_ids:Xe})]}if(wA===null?wA=this.model_max_length:$e===null&&(ze===!0?(console.warn("`max_length` is ignored when `padding: true` and there is no truncation strategy. To pad to max length, use `padding: 'max_length'`."),wA=this.model_max_length):ze===!1&&(console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation: true` to explicitly truncate examples to max length."),$e=!0)),ze===!0&&(wA=Math.min((0,C.max)(it.map(Ft=>Ft.input_ids.length))[0],wA??1/0)),wA=Math.min(wA,this.model_max_length??1/0),ze||$e)for(let Ft=0;Ft<it.length;++Ft)it[Ft].input_ids.length!==wA&&(it[Ft].input_ids.length>wA?$e&&xt(it[Ft],wA):ze&&Ss(it[Ft],wA,gr=>gr==="input_ids"?this.pad_token_id:0,this.padding_side));const St={};if(xA){if(!(ze&&$e)&&it.some(gr=>{var Ht;for(const er of Object.keys(gr))if(gr[er].length!==((Ht=it[0][er])==null?void 0:Ht.length))return!0;return!1}))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");const Ft=[it.length,it[0].input_ids.length];for(const gr of Object.keys(it[0]))St[gr]=new k.Tensor("int64",BigInt64Array.from(it.flatMap(Ht=>Ht[gr]).map(BigInt)),Ft)}else{for(const Ft of Object.keys(it[0]))St[Ft]=it.map(gr=>gr[Ft]);if(!QA)for(const Ft of Object.keys(St))St[Ft]=St[Ft][0]}return St}_encode_text(de){if(de===null)return null;const he=this.added_tokens_splitter.split(de);for(let ze=0;ze<he.length;++ze){const $e=this.added_tokens_map.get(he[ze]);$e&&($e.lstrip&&ze>0&&(he[ze-1]=he[ze-1].trimEnd()),$e.rstrip&&ze<he.length-1&&(he[ze+1]=he[ze+1].trimStart()))}return he.flatMap((ze,$e)=>{if(ze.length===0)return[];if(this.added_tokens_map.has(ze))return[ze];
2894if(this.remove_space===!0&&(ze=ze.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(ze=L(ze)),this.normalizer!==null&&(ze=this.normalizer(ze)),ze.length===0)return[];const wA=this.pre_tokenizer!==null?this.pre_tokenizer(ze,{section_index:$e}):[ze];return this.model(wA)})}_encode_plus(de,{text_pair:he=null,add_special_tokens:Ge=!0,return_token_type_ids:ze=null}={}){const{tokens:$e,token_type_ids:wA}=this._tokenize_helper(de,{pair:he,add_special_tokens:Ge}),xA=this.model.convert_tokens_to_ids($e),Xe={input_ids:xA,attention_mask:new Array(xA.length).fill(1)};return(ze??this.return_token_type_ids)&&wA&&(Xe.token_type_ids=wA),Xe}_tokenize_helper(de,{pair:he=null,add_special_tokens:Ge=!1}={}){const ze=this._encode_text(de),$e=this._encode_text(he);return this.post_processor?this.post_processor(ze,$e,{add_special_tokens:Ge}):{tokens:(0,p.mergeArrays)(ze??[],$e??[])}}tokenize(de,{pair:he=null,add_special_tokens:Ge=!1}={}){return this._tokenize_helper(de,{pair:he,add_special_tokens:Ge}).tokens}encode(de,{text_pair:he=null,add_special_tokens:Ge=!0,return_token_type_ids:ze=null}={}){return this._encode_plus(de,{text_pair:he,add_special_tokens:Ge,return_token_type_ids:ze}).input_ids}batch_decode(de,he={}){return de instanceof k.Tensor&&(de=de.tolist()),de.map(Ge=>this.decode(Ge,he))}decode(de,he={}){if(de instanceof k.Tensor&&(de=R(de)),!Array.isArray(de)||de.length===0||!(0,p.isIntegralNumber)(de[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(de,he)}decode_single(de,{skip_special_tokens:he=!1,clean_up_tokenization_spaces:Ge=null}){let ze=this.model.convert_ids_to_tokens(de);he&&(ze=ze.filter(wA=>!this.special_tokens.includes(wA)));let $e=this.decoder?this.decoder(ze):ze.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&($e=$e.replaceAll(this.decoder.end_of_word_suffix," "),he&&($e=$e.trim())),(Ge??this.clean_up_tokenization_spaces)&&($e=X($e)),$e}get_chat_template({chat_template:de=null,tools:he=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){const Ge=this.chat_template;if(de!==null&&Object.hasOwn(Ge,de))de=Ge[de];else if(de===null)if(he!==null&&"tool_use"in Ge)de=Ge.tool_use;else if("default"in Ge)de=Ge.default;else throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(Ge).sort()}.`)}else if(de===null)if(this.chat_template)de=this.chat_template;else throw Error("Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating");return de}apply_chat_template(de,{tools:he=null,documents:Ge=null,chat_template:ze=null,add_generation_prompt:$e=!1,tokenize:wA=!0,padding:xA=!1,truncation:Xe=!1,max_length:QA=null,return_tensor:it=!0,return_dict:St=!1,tokenizer_kwargs:Ft={},...gr}={}){if(ze=this.get_chat_template({chat_template:ze,tools:he}),typeof ze!="string")throw Error(`chat_template must be a string, but got ${typeof ze}`);let Ht=this._compiled_template_cache.get(ze);Ht===void 0&&(Ht=new E.Template(ze),this._compiled_template_cache.set(ze,Ht));const er=Object.create(null);for(const Ar of $r){const Pr=this.getToken(Ar);Pr&&(er[Ar]=Pr)}const pr=Ht.render({messages:de,add_generation_prompt:$e,tools:he,documents:Ge,...er,...gr});if(wA){const Ar=this._call(pr,{add_special_tokens:!1,padding:xA,truncation:Xe,max_length:QA,return_tensor:it,...Ft});return St?Ar:Ar.input_ids}return pr}}class ta extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class Os extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class Jt extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class bs extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class mt extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class Ws extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class H extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class ue extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class ae extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class pe extends UA{}class ke extends UA{}class _e extends UA{constructor(de,he){super(de,he);Ee(this,"return_token_type_ids",!0);console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class eA extends UA{constructor(){super(...arguments);Ee(this,"return_token_type_ids",!0)}}class FA extends UA{}class NA extends UA{}class SA extends UA{}class gt extends UA{constructor(J,de){super(J,de),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(he=>this.languageRegex.test(he)),this.lang_to_token=he=>he}_build_translation_inputs(J,de,he){return as(this,J,de,he)}}class YA extends gt{}class vt extends UA{}class OA extends UA{}const Bt="â";class zt extends UA{constructor(de,he){super(de,he);Ee(this,"padding_side","left");this.legacy=he.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Zt({replacement:Bt,prepend_scheme:"first"}))}_encode_text(de){if(de===null)return null;if(this.legacy||de.length===0)return super._encode_text(de);let he=super._encode_text(Bt+de.replaceAll(Bt," "));return he.length>1&&he[0]===Bt&&this.special_tokens.includes(he[1])&&(he=he.slice(1)),he}}class es extends UA{}class Cr extends UA{}class Kr extends UA{}class ur extends UA{}class Vs extends UA{}class Tr extends UA{}class ha extends UA{}class ks extends UA{}class ss extends UA{}function as(Ne,J,de,he){if(!("language_codes"in Ne)||!Array.isArray(Ne.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");
2894if(!("languageRegex"in Ne)||!(Ne.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in Ne)||typeof Ne.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");const Ge=he.src_lang,ze=he.tgt_lang;if(!Ne.language_codes.includes(ze))throw new Error(`Target language code "${ze}" is not valid. Must be one of: {${Ne.language_codes.join(", ")}}`);if(Ge!==void 0){if(!Ne.language_codes.includes(Ge))throw new Error(`Source language code "${Ge}" is not valid. Must be one of: {${Ne.language_codes.join(", ")}}`);for(const $e of Ne.post_processor.config.single)if("SpecialToken"in $e&&Ne.languageRegex.test($e.SpecialToken.id)){$e.SpecialToken.id=Ne.lang_to_token(Ge);break}}return he.forced_bos_token_id=Ne.model.convert_tokens_to_ids([Ne.lang_to_token(ze)])[0],Ne._call(J,de)}class fr extends UA{constructor(J,de){super(J,de),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(he=>this.languageRegex.test(he)),this.lang_to_token=he=>he}_build_translation_inputs(J,de,he){return as(this,J,de,he)}}class LA extends UA{constructor(J,de){super(J,de),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(he=>this.languageRegex.test(he)).map(he=>he.slice(2,-2)),this.lang_to_token=he=>`__${he}__`}_build_translation_inputs(J,de,he){return as(this,J,de,he)}}class Vr extends UA{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(J,{return_timestamps:de=!1,return_language:he=!1,time_precision:Ge=null,force_full_sequences:ze=!0}={}){if(Ge===null)throw Error("Must specify time_precision");let $e=null;const wA=de==="word";function xA(){return{language:$e,timestamp:[null,null],text:""}}const Xe=[];let QA=xA(),it=0;const St=this.timestamp_begin,gr=St+1500;let Ht=[],er=[],pr=!1,Ar=null;const Pr=new Set(this.all_special_ids);for(const tr of J){const br=tr.tokens,Qt=wA?tr.token_timestamps:null;let mr=null,Us=St;if("stride"in tr){const[hr,Ir,WA]=tr.stride;if(it-=Ir,Ar=hr-WA,Ir&&(Us=Ir/Ge+St),WA)for(let Mt=br.length-1;Mt>=0;--Mt){const zr=Number(br[Mt]);if(zr>=St){if(mr!==null&&(zr-St)*Ge<Ar)break;mr=zr}}}let vr=[],Es=[];for(let hr=0;hr<br.length;++hr){const Ir=Number(br[hr]);if(Pr.has(Ir)){const WA=this.decode([Ir]),Mt=D.WHISPER_LANGUAGE_MAPPING.get(WA.slice(2,-2));if(Mt!==void 0){if($e!==null&&Mt!==$e&&!de){Ht.push(vr);const zr=this.findLongestCommonSequence(Ht)[0],ba=this.decode(zr);QA.text=ba,Xe.push(QA),Ht=[],vr=[],QA=xA()}$e=QA.language=Mt}}else if(Ir>=St&&Ir<=gr){const WA=(Ir-St)*Ge+it,Mt=(0,C.round)(WA,2);if(mr!==null&&Ir>=mr)pr=!0;else if(pr||Ht.length>0&&Ir<Us)pr=!1;else if(QA.timestamp[0]===null)QA.timestamp[0]=Mt;else if(Mt!==QA.timestamp[0]){QA.timestamp[1]=Mt,Ht.push(vr),wA&&er.push(Es);const[zr,ba]=this.findLongestCommonSequence(Ht,er),aa=this.decode(zr);QA.text=aa,wA&&(QA.words=this.collateWordTimestamps(zr,ba,$e)),Xe.push(QA),Ht=[],vr=[],er=[],Es=[],QA=xA()}}else if(vr.push(Ir),wA){let WA=(0,C.round)(Qt[hr]+it,2),Mt;if(hr+1<Qt.length){Mt=(0,C.round)(Qt[hr+1]+it,2);const zr=this.decode([Ir]);u.test(zr)&&(Mt=(0,C.round)(Math.min(WA+Ge,Mt),2))}else Mt=null;Es.push([WA,Mt])}}if("stride"in tr){const[hr,Ir,WA]=tr.stride;it+=hr-WA}vr.length>0?(Ht.push(vr),wA&&er.push(Es)):Ht.every(hr=>hr.length===0)&&(QA=xA(),Ht=[],vr=[],er=[],Es=[])}if(Ht.length>0){if(ze&&de)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");const[tr,br]=this.findLongestCommonSequence(Ht,er),Qt=this.decode(tr);QA.text=Qt,wA&&(QA.words=this.collateWordTimestamps(tr,br,$e)),Xe.push(QA)}let sr=Object.create(null);const Ms=Xe.map(tr=>tr.text).join("");if(de||he){for(let tr=0;tr<Xe.length;++tr){const br=Xe[tr];de||delete br.timestamp,he||delete br.language}if(wA){const tr=[];for(const br of Xe)for(const Qt of br.words)tr.push(Qt);sr={chunks:tr}}else sr={chunks:Xe}}return[Ms,sr]}findLongestCommonSequence(J,de=null){let he=J[0],Ge=he.length,ze=[];const $e=Array.isArray(de)&&de.length>0;let wA=$e?[]:null,xA=$e?de[0]:null;for(let Xe=1;Xe<J.length;++Xe){const QA=J[Xe];let it=0,St=[Ge,Ge,0,0];const Ft=QA.length;for(let sr=1;sr<Ge+Ft;++sr){const Ms=Math.max(0,Ge-sr),tr=Math.min(Ge,Ge+Ft-sr),br=he.slice(Ms,tr),Qt=Math.max(0,sr-Ge),mr=Math.min(Ft,sr),Us=QA.slice(Qt,mr);if(br.length!==Us.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");let vr;$e?vr=br.filter((Ir,WA)=>Ir===Us[WA]&&xA[Ms+WA]<=de[Xe][Qt+WA]).length:vr=br.filter((Ir,WA)=>Ir===Us[WA]).length;const Es=sr/1e4,hr=vr/sr+Es;vr>1&&hr>it&&(it=hr,St=[Ms,tr,Qt,mr])}const[gr,Ht,er,pr]=St,Ar=Math.floor((Ht+gr)/2),Pr=Math.floor((pr+er)/2);ze.push(...he.slice(0,Ar)),he=QA.slice(Pr),Ge=he.length,$e&&(wA.push(...xA.slice(0,Ar)),xA=de[Xe].slice(Pr))}return ze.push(...he),$e?(wA.push(...xA),[ze,wA]):[ze,[]]}collateWordTimestamps(J,de,he){const[Ge,ze,$e]=this.combineTokensIntoWords(J,he),wA=[];for(let xA=0;xA<Ge.length;++xA){const Xe=$e[xA];wA.push({text:Ge[xA],timestamp:[de[Xe.at(0)][0],de[Xe.at(-1)][1]]})}return wA}combineTokensIntoWords(J,de,he=`"'â¡¿([{-`,Ge=`"'.ã,ï¼!ï¼?ï¼:ï¼â)]}ã`){de=de??"english";let ze,$e,wA;return["chinese","japanese","thai","lao","myanmar"].includes(de)?[ze,$e,wA]=this.splitTokensOnUnicode(J):[ze,$e,wA]=this.splitTokensOnSpaces(J),this.mergePunctuations(ze,$e,
2894wA,he,Ge)}decode(J,de){let he;return de!=null&&de.decode_with_timestamps?(J instanceof k.Tensor&&(J=R(J)),he=this.decodeWithTimestamps(J,de)):he=super.decode(J,de),he}decodeWithTimestamps(J,de){const he=(de==null?void 0:de.time_precision)??.02,Ge=Array.from(this.all_special_ids).at(-1)+1;let ze=[[]];for(let $e of J)if($e=Number($e),$e>=Ge){const wA=(($e-Ge)*he).toFixed(2);ze.push(`<|${wA}|>`),ze.push([])}else ze[ze.length-1].push($e);return ze=ze.map($e=>typeof $e=="string"?$e:super.decode($e,de)),ze.join("")}splitTokensOnUnicode(J){const de=this.decode(J,{decode_with_timestamps:!0}),he="�",Ge=[],ze=[],$e=[];let wA=[],xA=[],Xe=0;for(let QA=0;QA<J.length;++QA){const it=J[QA];wA.push(it),xA.push(QA);const St=this.decode(wA,{decode_with_timestamps:!0});(!St.includes(he)||de[Xe+St.indexOf(he)]===he)&&(Ge.push(St),ze.push(wA),$e.push(xA),wA=[],xA=[],Xe+=St.length)}return[Ge,ze,$e]}splitTokensOnSpaces(J){const[de,he,Ge]=this.splitTokensOnUnicode(J),ze=[],$e=[],wA=[],xA=new RegExp(`^[${e}]$`,"gu");for(let Xe=0;Xe<de.length;++Xe){const QA=de[Xe],it=he[Xe],St=Ge[Xe],Ft=it[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),gr=QA.startsWith(" "),Ht=QA.trim(),er=xA.test(Ht);if(Ft||gr||er||ze.length===0)ze.push(QA),$e.push(it),wA.push(St);else{const pr=ze.length-1;ze[pr]+=QA,$e[pr].push(...it),wA[pr].push(...St)}}return[ze,$e,wA]}mergePunctuations(J,de,he,Ge,ze){const $e=structuredClone(J),wA=structuredClone(de),xA=structuredClone(he);let Xe=$e.length-2,QA=$e.length-1;for(;Xe>=0;)$e[Xe].startsWith(" ")&&Ge.includes($e[Xe].trim())?($e[QA]=$e[Xe]+$e[QA],wA[QA]=(0,p.mergeArrays)(wA[Xe],wA[QA]),xA[QA]=(0,p.mergeArrays)(xA[Xe],xA[QA]),$e[Xe]="",wA[Xe]=[],xA[Xe]=[]):QA=Xe,--Xe;for(Xe=0,QA=1;QA<$e.length;)!$e[Xe].endsWith(" ")&&ze.includes($e[QA])?($e[Xe]+=$e[QA],wA[Xe]=(0,p.mergeArrays)(wA[Xe],wA[QA]),xA[Xe]=(0,p.mergeArrays)(xA[Xe],xA[QA]),$e[QA]="",wA[QA]=[],xA[QA]=[]):Xe=QA,++QA;return[$e.filter(it=>it),wA.filter(it=>it.length>0),xA.filter(it=>it.length>0)]}}class fs extends UA{}class ra extends UA{}class Ys extends UA{}class _s extends UA{constructor(J,de){super(J,de),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(he=>this.languageRegex.test(he)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(J){if(J===null)return null;const[de,...he]=J.trim().split(this.languageRegex);if(he.length===0)return super._encode_text(de);if(he.length===2){const[Ge,ze]=he;return this.supported_language_codes.includes(Ge)||console.warn(`Unsupported language code "${Ge}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,p.mergeArrays)([Ge],super._encode_text(ze))}}}class _r extends UA{}class pA extends UA{}class CA extends UA{}class _A extends UA{}class Rt extends UA{}class Ca extends UA{constructor(J,de){super(J,de),this.decoder=new ZA({})}}class sa extends UA{}class Hs extends UA{}class Wa{static async from_pretrained(J,{progress_callback:de=null,config:he=null,cache_dir:Ge=null,local_files_only:ze=!1,revision:$e="main",legacy:wA=null}={}){var St;const[xA,Xe]=await B(J,{progress_callback:de,config:he,cache_dir:Ge,local_files_only:ze,revision:$e,legacy:wA}),QA=((St=Xe.tokenizer_class)==null?void 0:St.replace(/Fast$/,""))??"PreTrainedTokenizer";let it=this.TOKENIZER_CLASS_MAPPING[QA];return it||(console.warn(`Unknown tokenizer class "${QA}", attempting to construct from base class.`),it=UA),new it(xA,Xe)}}Ee(Wa,"TOKENIZER_CLASS_MAPPING",{T5Tokenizer:FA,DistilBertTokenizer:pe,CamembertTokenizer:ke,DebertaTokenizer:mt,DebertaV2Tokenizer:Ws,BertTokenizer:ta,HerbertTokenizer:H,ConvBertTokenizer:ue,RoFormerTokenizer:ae,XLMTokenizer:_e,ElectraTokenizer:eA,MobileBertTokenizer:Jt,SqueezeBertTokenizer:bs,AlbertTokenizer:Os,GPT2Tokenizer:NA,BartTokenizer:SA,MBartTokenizer:gt,MBart50Tokenizer:YA,RobertaTokenizer:vt,WhisperTokenizer:Vr,CodeGenTokenizer:fs,CLIPTokenizer:ra,SiglipTokenizer:Ys,MarianTokenizer:_s,BloomTokenizer:OA,NllbTokenizer:fr,M2M100Tokenizer:LA,LlamaTokenizer:zt,CodeLlamaTokenizer:es,XLMRobertaTokenizer:Cr,MPNetTokenizer:Kr,FalconTokenizer:ur,GPTNeoXTokenizer:Vs,EsmTokenizer:Tr,Wav2Vec2CTCTokenizer:_r,BlenderbotTokenizer:pA,BlenderbotSmallTokenizer:CA,SpeechT5Tokenizer:_A,NougatTokenizer:Rt,VitsTokenizer:Ca,Qwen2Tokenizer:ha,GemmaTokenizer:ks,Grok1Tokenizer:ss,CohereTokenizer:sa,MgpstrTokenizer:Hs,PreTrainedTokenizer:UA})},
2894"./src/utils/audio.js":(a,i,n)=>{n.r(i),n.d(i,{RawAudio:()=>ge,hamming:()=>v,hanning:()=>B,mel_filter_bank:()=>K,read_audio:()=>E,spectrogram:()=>y,window_function:()=>ee});var g=n("./src/utils/hub.js"),p=n("./src/utils/maths.js"),h=n("./src/utils/core.js"),C=n("./src/env.js"),k=n("./src/utils/tensor.js"),M=n("?7992");async function E(se,we){if(typeof AudioContext>"u")throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");const be=await(await(0,g.getFile)(se)).arrayBuffer(),Be=new AudioContext({sampleRate:we});typeof we>"u"&&console.warn(`No sampling rate provided, using default of ${Be.sampleRate}Hz.`);const ve=await Be.decodeAudioData(be);let De;if(ve.numberOfChannels===2){const je=Math.sqrt(2),Le=ve.getChannelData(0),Pe=ve.getChannelData(1);De=new Float32Array(Le.length);for(let me=0;me<ve.length;++me)De[me]=je*(Le[me]+Pe[me])/2}else De=ve.getChannelData(0);return De}function D(se,we){if(se<1)return new Float64Array;if(se===1)return new Float64Array([1]);const be=1-we,Be=2*Math.PI/(se-1),ve=new Float64Array(se);for(let De=0;De<se;++De)ve[De]=we-be*Math.cos(De*Be);return ve}function B(se){return D(se,.5)}function v(se){return D(se,.54)}const S={htk:se=>2595*Math.log10(1+se/700),kaldi:se=>1127*Math.log(1+se/700),slaney:(se,we=1e3,be=15,Be=27/Math.log(6.4))=>se>=we?be+Math.log(se/we)*Be:3*se/200};function F(se,we="htk"){const be=S[we];if(!be)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof se=="number"?be(se):se.map(Be=>be(Be))}const R={htk:se=>700*(10**(se/2595)-1),kaldi:se=>700*(Math.exp(se/1127)-1),slaney:(se,we=1e3,be=15,Be=Math.log(6.4)/27)=>se>=be?we*Math.exp(Be*(se-be)):200*se/3};function X(se,we="htk"){const be=R[we];if(!be)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof se=="number"?be(se):se.map(Be=>be(Be))}function z(se,we){const be=Float64Array.from({length:we.length-1},(je,Le)=>we[Le+1]-we[Le]),Be=Array.from({length:se.length},()=>new Array(we.length));for(let je=0;je<se.length;++je){const Le=Be[je];for(let Pe=0;Pe<we.length;++Pe)Le[Pe]=we[Pe]-se[je]}const ve=we.length-2,De=Array.from({length:ve},()=>new Array(se.length));for(let je=0;je<se.length;++je){const Le=Be[je];for(let Pe=0;Pe<ve;++Pe){const me=-Le[Pe]/be[Pe],ie=Le[Pe+2]/be[Pe+1];De[Pe][je]=Math.max(0,Math.min(me,ie))}}return De}function L(se,we,be){const Be=(we-se)/(be-1);return Float64Array.from({length:be},(ve,De)=>se+Be*De)}function K(se,we,be,Be,ve,De=null,je="htk",Le=!1){if(De!==null&&De!=="slaney")throw new Error('norm must be one of null or "slaney"');if(se<2)throw new Error(`Require num_frequency_bins: ${se} >= 2`);if(be>Be)throw new Error(`Require min_frequency: ${be} <= max_frequency: ${Be}`);const Pe=F(be,je),me=F(Be,je),ie=L(Pe,me,we+2);let Ie=X(ie,je),Fe;if(Le){const sA=ve/((se-1)*2);Fe=F(Float64Array.from({length:se},(uA,hA)=>hA*sA),je),Ie=ie}else Fe=L(0,Math.floor(ve/2),se);const xe=z(Fe,Ie);if(De!==null&&De==="slaney")for(let sA=0;sA<we;++sA){const uA=xe[sA],hA=2/(Ie[sA+2]-Ie[sA]);for(let iA=0;iA<se;++iA)uA[iA]*=hA}return xe}function d(se,we,be){const Be=new se.constructor(se.length+we+be),ve=se.length-1;for(let De=0;De<se.length;++De)Be[we+De]=se[De];for(let De=1;De<=we;++De)Be[we-De]=se[(0,h.calculateReflectOffset)(De,ve)];for(let De=1;De<=be;++De)Be[ve+we+De]=se[(0,h.calculateReflectOffset)(ve-De,ve)];return Be}function w(se,we,be,Be,ve){if(be<=0)throw new Error("reference must be greater than zero");if(Be<=0)throw new Error("min_value must be greater than zero");be=Math.max(Be,be);const De=Math.log10(be);for(let je=0;je<se.length;++je)se[je]=we*Math.log10(Math.max(Be,se[je])-De);if(ve!==null){if(ve<=0)throw new Error("db_range must be greater than zero");const je=(0,p.max)(se)[0]-ve;for(let Le=0;Le<se.length;++Le)se[Le]=Math.max(se[Le],je)}return se}function e(se,we=1,be=1e-5,Be=null){return w(se,20,we,be,Be)}function u(se,we=1,be=1e-10,Be=null){return w(se,10,we,be,Be)}async function y(se,we,be,Be,{fft_length:ve=null,power:De=1,center:je=!0,pad_mode:Le="reflect",onesided:Pe=!0,preemphasis:me=null,preemphasis_htk_flavor:ie=!0,mel_filters:Ie=null,mel_floor:Fe=1e-10,log_mel:xe=null,reference:sA=1,min_value:uA=1e-10,db_range:hA=null,remove_dc_offset:iA=null,min_num_frames:ye=null,max_num_frames:Ae=null,do_pad:Re=!0,transpose:qe=!1,mel_offset:Ue=0}={}){const rA=we.length;if(ve===null&&(ve=be),be>ve)throw Error(`frame_length (${be}) may not be larger than fft_length (${ve})`);if(rA!==be)throw new Error(`Length of the window (${rA}) must equal frame_length (${be})`);if(Be<=0)throw new Error("hop_length must be greater than zero");if(De===null&&Ie!==null)throw new Error("You have provided `mel_filters` but `power` is `None`. Mel spectrogram computation is not yet supported for complex-valued spectrogram. Specify `power` to fix this issue.");if(!ie)throw new Error("`preemphasis_htk_flavor=false` is not currently supported.");
2894if(je)switch(Le){case"reflect":{const tA=Math.floor((ve-1)/2)+1;se=d(se,tA,tA);break}case"constant":{const tA=Math.floor(ve/2),lA=new se.constructor(se.length+2*tA);lA.set(se,tA),se=lA;break}default:throw new Error(`pad_mode="${Le}" not implemented yet.`)}let aA=Math.floor(1+Math.floor((se.length-be)/Be));ye!==null&&aA<ye&&(aA=ye);const Y=Pe?Math.floor(ve/2)+1:ve;let cA=aA,He=aA;Ae!==null&&(Ae>aA?Re&&(He=Ae):He=cA=Ae);const ce=new p.FFT(ve),MA=new Float64Array(ve),nA=new Float64Array(ce.outputBufferSize),DA=new Float32Array(Y*He);for(let tA=0;tA<cA;++tA){const lA=tA*Be,KA=Math.min(se.length-lA,be);KA!==be&&MA.fill(0,0,be);for(let JA=0;JA<KA;++JA)MA[JA]=se[lA+JA];if(iA){let JA=0;for(let ZA=0;ZA<KA;++ZA)JA+=MA[ZA];const RA=JA/KA;for(let ZA=0;ZA<KA;++ZA)MA[ZA]-=RA}if(me!==null){for(let JA=KA-1;JA>=1;--JA)MA[JA]-=me*MA[JA-1];MA[0]*=1-me}for(let JA=0;JA<we.length;++JA)MA[JA]*=we[JA];ce.realTransform(nA,MA);for(let JA=0;JA<Y;++JA){const RA=JA<<1;DA[JA*He+tA]=nA[RA]**2+nA[RA+1]**2}}if(De!==null&&De!==2){const tA=De/2;for(let lA=0;lA<DA.length;++lA)DA[lA]**=tA}const IA=Ie.length;let ot=await(0,k.matmul)(new k.Tensor("float32",Ie.flat(),[IA,Y]),new k.Tensor("float32",DA,[Y,He]));qe&&(ot=ot.transpose(1,0));const BA=ot.data;for(let tA=0;tA<BA.length;++tA)BA[tA]=Ue+Math.max(Fe,BA[tA]);if(De!==null&&xe!==null){const tA=Math.min(BA.length,cA*IA);switch(xe){case"log":for(let lA=0;lA<tA;++lA)BA[lA]=Math.log(BA[lA]);break;case"log10":for(let lA=0;lA<tA;++lA)BA[lA]=Math.log10(BA[lA]);break;case"dB":if(De===1)e(BA,sA,uA,hA);else if(De===2)u(BA,sA,uA,hA);else throw new Error(`Cannot use log_mel option '${xe}' with power ${De}`);break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${xe}'`)}}return ot}function ee(se,we,{periodic:be=!0,frame_length:Be=null,center:ve=!0}={}){const De=be?se+1:se;let je;switch(we){case"boxcar":je=new Float64Array(De).fill(1);break;case"hann":case"hann_window":je=B(De);break;case"hamming":je=v(De);break;case"povey":je=B(De).map(Le=>Math.pow(Le,.85));break;default:throw new Error(`Unknown window type ${we}.`)}if(be&&(je=je.subarray(0,se)),Be===null)return je;if(se>Be)throw new Error(`Length of the window (${se}) may not be larger than frame_length (${Be})`);return je}function T(se,we){let be=44;const Be=new ArrayBuffer(be+se.length*4),ve=new DataView(Be);O(ve,0,"RIFF"),ve.setUint32(4,36+se.length*4,!0),O(ve,8,"WAVE"),O(ve,12,"fmt "),ve.setUint32(16,16,!0),ve.setUint16(20,3,!0),ve.setUint16(22,1,!0),ve.setUint32(24,we,!0),ve.setUint32(28,we*4,!0),ve.setUint16(32,4,!0),ve.setUint16(34,32,!0),O(ve,36,"data"),ve.setUint32(40,se.length*4,!0);for(let De=0;De<se.length;++De,be+=4)ve.setFloat32(be,se[De],!0);return Be}function O(se,we,be){for(let Be=0;Be<be.length;++Be)se.setUint8(we+Be,be.charCodeAt(Be))}class ge{constructor(we,be){this.audio=we,this.sampling_rate=be}toWav(){return T(this.audio,this.sampling_rate)}toBlob(){const we=this.toWav();return new Blob([we],{type:"audio/wav"})}async save(we){let be;if(C.apis.IS_BROWSER_ENV){if(C.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save a file from a Web Worker.");be=h.saveBlob}else if(C.apis.IS_FS_AVAILABLE)be=async(Be,ve)=>{let De=await ve.arrayBuffer();M.writeFileSync(Be,Buffer.from(De))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await be(we,this.toBlob())}}},
2894"./src/utils/constants.js":(a,i,n)=>{n.r(i),n.d(i,{CHAT_TEMPLATE_NAME:()=>M,CONFIG_NAME:()=>p,FEATURE_EXTRACTOR_NAME:()=>h,GENERATION_CONFIG_NAME:()=>E,GITHUB_ISSUE_URL:()=>g,IMAGE_PROCESSOR_NAME:()=>C,PROCESSOR_NAME:()=>k});const g="https://github.com/huggingface/transformers.js/issues/new/choose",p="config.json",h="preprocessor_config.json",C=h,k="processor_config.json",M="chat_template.jinja",E="generation_config.json"},
2894"./src/utils/core.js":(a,i,n)=>{n.r(i),n.d(i,{calculateDimensions:()=>E,calculateReflectOffset:()=>S,count:()=>z,dispatchCallback:()=>g,escapeRegExp:()=>h,isIntegralNumber:()=>k,isNullishDimension:()=>M,isTypedArray:()=>C,len:()=>X,mergeArrays:()=>B,pick:()=>R,pop:()=>D,product:()=>v,reverseDictionary:()=>p,saveBlob:()=>F});function g(L,K){L&&L(K)}function p(L){return Object.fromEntries(Object.entries(L).map(([K,d])=>[d,K]))}function h(L){return L.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function C(L){var K,d,w;return((w=(d=(K=L==null?void 0:L.prototype)==null?void 0:K.__proto__)==null?void 0:d.constructor)==null?void 0:w.name)==="TypedArray"}function k(L){return Number.isInteger(L)||typeof L=="bigint"}function M(L){return L==null||L===-1}function E(L){const K=[];let d=L;for(;Array.isArray(d);)K.push(d.length),d=d[0];return K}function D(L,K,d=void 0){const w=L[K];if(w!==void 0)return delete L[K],w;if(d===void 0)throw Error(`Key ${K} does not exist in object.`);return d}function B(...L){return Array.prototype.concat.apply([],L)}function v(...L){return L.reduce((K,d)=>K.flatMap(w=>d.map(e=>[w,e])))}function S(L,K){return Math.abs((L+K)%(2*K)-K)}function F(L,K){const d=URL.createObjectURL(K),w=document.createElement("a");w.href=d,w.download=L,w.click(),w.remove(),URL.revokeObjectURL(d)}function R(L,K){return Object.assign({},...K.map(d=>{if(L[d]!==void 0)return{[d]:L[d]}}))}function X(L){let K=0;for(const d of L)++K;return K}function z(L,K){let d=0;for(const w of L)w===K&&++d;return d}},
2894"./src/utils/data-structures.js":(a,i,n)=>{n.r(i),n.d(i,{CharTrie:()=>p,DictionarySplitter:()=>M,LRUCache:()=>E,PriorityQueue:()=>g,TokenLattice:()=>C});class g{constructor(B=(S,F)=>S>F,v=1/0){this._heap=[],this._comparator=B,this._maxSize=v}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...B){return this.extend(B)}extend(B){for(const v of B)if(this.size<this._maxSize)this._heap.push(v),this._siftUp();else{const S=this._smallest();this._comparator(v,this._heap[S])&&(this._heap[S]=v,this._siftUpFrom(S))}return this.size}pop(){const B=this.peek(),v=this.size-1;return v>0&&this._swap(0,v),this._heap.pop(),this._siftDown(),B}replace(B){const v=this.peek();return this._heap[0]=B,this._siftDown(),v}_parent(B){return(B+1>>>1)-1}_left(B){return(B<<1)+1}_right(B){return B+1<<1}_greater(B,v){return this._comparator(this._heap[B],this._heap[v])}_swap(B,v){const S=this._heap[B];this._heap[B]=this._heap[v],this._heap[v]=S}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(B){for(;B>0&&this._greater(B,this._parent(B));)this._swap(B,this._parent(B)),B=this._parent(B)}_siftDown(){let B=0;for(;this._left(B)<this.size&&this._greater(this._left(B),B)||this._right(B)<this.size&&this._greater(this._right(B),B);){const v=this._right(B)<this.size&&this._greater(this._right(B),this._left(B))?this._right(B):this._left(B);this._swap(B,v),B=v}}_smallest(){return 2**Math.floor(Math.log2(this.size))-1}}class p{constructor(){this.root=h.default()}extend(B){for(const v of B)this.push(v)}push(B){let v=this.root;for(const S of B){let F=v.children.get(S);F===void 0&&(F=h.default(),v.children.set(S,F)),v=F}v.isLeaf=!0}*commonPrefixSearch(B){let v=this.root;if(v===void 0)return;let S="";for(const F of B){if(S+=F,v=v.children.get(F),v===void 0)return;v.isLeaf&&(yield S)}}}class h{constructor(B,v){this.isLeaf=B,this.children=v}static default(){return new h(!1,new Map)}}class C{constructor(B,v,S){this.chars=Array.from(B),this.len=this.chars.length,this.bosTokenId=v,this.eosTokenId=S,this.nodes=[],this.beginNodes=Array.from({length:this.len+1},()=>[]),this.endNodes=Array.from({length:this.len+1},()=>[]);const F=new k(this.bosTokenId,0,0,0,0),R=new k(this.eosTokenId,1,this.len,0,0);this.nodes.push(F.clone()),this.nodes.push(R.clone()),this.beginNodes[this.len].push(R),this.endNodes[0].push(F)}insert(B,v,S,F){const R=this.nodes.length,X=new k(F,R,B,v,S);this.beginNodes[B].push(X),this.endNodes[B+v].push(X),this.nodes.push(X)}viterbi(){const B=this.len;let v=0;for(;v<=B;){if(this.beginNodes[v].length==0)return[];for(let z of this.beginNodes[v]){z.prev=null;let L=0,K=null;for(let d of this.endNodes[v]){const w=d.backtraceScore+z.score;(K===null||w>L)&&(K=d.clone(),L=w)}if(K!==null)z.prev=K,z.backtraceScore=L;else return[]}++v}const S=[],R=this.beginNodes[B][0].prev;if(R===null)return[];let X=R.clone();for(;X.prev!==null;)S.push(X.clone()),X=X.clone().prev.clone();return S.reverse(),S}piece(B){return this.chars.slice(B.pos,B.pos+B.length).join("")}tokens(){return this.viterbi().map(v=>this.piece(v))}tokenIds(){return this.viterbi().map(v=>v.tokenId)}}class k{constructor(B,v,S,F,R){this.tokenId=B,this.nodeId=v,this.pos=S,this.length=F,this.score=R,this.prev=null,this.backtraceScore=0}clone(){const B=new k(this.tokenId,this.nodeId,this.pos,this.length,this.score);return B.prev=this.prev,B.backtraceScore=this.backtraceScore,B}}class M{constructor(B){this.trie=this._buildTrie(B)}_buildTrie(B){var S;const v=Object.create(null);for(const F of B){let R=v;for(let X=0;X<F.length;++X)R=R[S=F[X]]??(R[S]=Object.create(null));R.end=F}return v}split(B){const v=[],S=B.length;let F=0,R=0;for(;R<S;){let X=this.trie,z=null,L=R;for(;L<S&&(X=X[B[L]]);)X.end&&(z=X.end),++L;z?(R>F&&v.push(B.slice(F,R)),v.push(z),R+=z.length,F=R):++R}return F<S&&v.push(B.slice(F)),v}}class E{constructor(B){this.capacity=B,this.cache=new Map}get(B){if(!this.cache.has(B))return;const v=this.cache.get(B);return this.cache.delete(B),this.cache.set(B,v),v}put(B,v){this.cache.has(B)&&this.cache.delete(B),this.cache.set(B,v),this.cache.size>this.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}}},
2894"./src/utils/devices.js":(a,i,n)=>{n.r(i),n.d(i,{DEVICE_TYPES:()=>g});const g=Object.freeze({auto:"auto",gpu:"gpu",cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:"webnn","webnn-npu":"webnn-npu","webnn-gpu":"webnn-gpu","webnn-cpu":"webnn-cpu"})},
2894"./src/utils/dtypes.js":(a,i,n)=>{n.r(i),n.d(i,{DATA_TYPES:()=>C,DEFAULT_DEVICE_DTYPE_MAPPING:()=>k,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>M,isWebGpuFp16Supported:()=>h});var g=n("./src/env.js"),p=n("./src/utils/devices.js");const h=function(){let E;return async function(){if(E===void 0)if(!g.apis.IS_WEBGPU_AVAILABLE)E=!1;else try{E=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{E=!1}return E}}(),C=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),k=Object.freeze({[p.DEVICE_TYPES.wasm]:C.q8}),M=Object.freeze({[C.fp32]:"",[C.fp16]:"_fp16",[C.int8]:"_int8",[C.uint8]:"_uint8",[C.q8]:"_quantized",[C.q4]:"_q4",[C.q4f16]:"_q4f16",[C.bnb4]:"_bnb4"})},
2894"./src/utils/generic.js":(a,i,n)=>{n.r(i),n.d(i,{Callable:()=>g});const g=class{constructor(){let p=function(...h){return p._call(...h)};return Object.setPrototypeOf(p,new.target.prototype)}_call(...p){throw Error("Must implement _call method in subclass")}}},
2894"./src/utils/hub.js":(a,i,n)=>{n.r(i),n.d(i,{MAX_EXTERNAL_DATA_CHUNKS:()=>k,getFile:()=>S,getModelFile:()=>L,getModelJSON:()=>d,getModelText:()=>K});var g=n("?7992"),p=n("?5af5"),h=n("./src/env.js"),C=n("./src/utils/core.js");const k=100,M={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};class E{constructor(y){if(this.filePath=y,this.headers=new Headers,this.exists=g.existsSync(y),this.exists){this.status=200,this.statusText="OK";let ee=g.statSync(y);this.headers.set("content-length",ee.size.toString()),this.updateContentType();const T=g.createReadStream(y);this.body=new ReadableStream({start(O){T.on("data",ge=>O.enqueue(ge)),T.on("end",()=>O.close()),T.on("error",ge=>O.error(ge))},cancel(){T.destroy()}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){const y=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",M[y]??"application/octet-stream")}clone(){let y=new E(this.filePath);return y.exists=this.exists,y.status=this.status,y.statusText=this.statusText,y.headers=new Headers(this.headers),y}async arrayBuffer(){return(await g.promises.readFile(this.filePath)).buffer}async blob(){const y=await g.promises.readFile(this.filePath);return new Blob([y],{type:this.headers.get("content-type")})}async text(){return await g.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function D(u,y=null,ee=null){let T;try{T=new URL(u)}catch{return!1}return!(y&&!y.includes(T.protocol)||ee&&!ee.includes(T.hostname))}const B=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function v(u){return!(!B.test(u)||u.includes("..")||u.includes("--")||u.endsWith(".git")||u.endsWith(".ipynb"))}async function S(u){var y;if(h.env.useFS&&!D(u,["http:","https:","blob:"]))return new E(u instanceof URL?u.protocol==="file:"?u.pathname:u.toString():u);if(typeof process<"u"&&((y=process==null?void 0:process.release)==null?void 0:y.name)==="node"){const ee=!!(vn!=null&&vn.TESTING_REMOTELY),T=h.env.version,O=new Headers;if(O.set("User-Agent",`transformers.js/${T}; is_ci/${ee};`),D(u,["http:","https:"],["huggingface.co","hf.co"])){const se=(vn==null?void 0:vn.HF_TOKEN)??(vn==null?void 0:vn.HF_ACCESS_TOKEN);se&&O.set("Authorization",`Bearer ${se}`)}return fetch(u,{headers:O})}else return fetch(u)}const F={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};function R(u,y,ee){if(!ee)return null;const T=F[u]??`Error (${u}) occurred while trying to load file`;throw Error(`${T}: "${y}".`)}class X{constructor(y){this.path=y}async match(y){let ee=p.join(this.path,y),T=new E(ee);if(T.exists)return T}async put(y,ee,T=void 0){let O=p.join(this.path,y);try{const ge=ee.headers.get("Content-Length"),se=parseInt(ge??"0");let we=0;await g.promises.mkdir(p.dirname(O),{recursive:!0});const be=g.createWriteStream(O),Be=ee.body.getReader();for(;;){const{done:ve,value:De}=await Be.read();if(ve)break;await new Promise((Le,Pe)=>{be.write(De,me=>{if(me){Pe(me);return}Le()})}),we+=De.length;const je=se?we/se*100:0;T==null||T({progress:je,loaded:we,total:se})}be.close()}catch(ge){try{await g.promises.unlink(O)}catch{}throw ge}}}async function z(u,...y){for(let ee of y)try{let T=await u.match(ee);if(T)return T}catch{continue}}async function L(u,y,ee=!0,T={},O=!1){if(!h.env.allowLocalModels){if(T.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!h.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}(0,C.dispatchCallback)(T.progress_callback,{status:"initiate",name:u,file:y});let ge;if(!ge&&h.env.useCustomCache){if(!h.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!h.env.customCache.match||!h.env.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");ge=h.env.customCache}if(!ge&&h.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{ge=await caches.open("transformers-cache")}catch(Fe){console.warn("An error occurred while opening the browser cache:",Fe)}}if(!ge&&h.env.useFSCache){if(!h.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");ge=new X(T.cache_dir??h.env.cacheDir)}const se=T.revision??"main",we=e(u,y),be=v(u),Be=be?e(h.env.localModelPath,we):we,ve=e(h.env.remoteHost,h.env.remotePathTemplate.replaceAll("{model}",u).replaceAll("{revision}",encodeURIComponent(se)),y);let De;const je=ge instanceof X?se==="main"?we:e(u,se,y):ve;let Le=!1,Pe;ge&&(Pe=await z(ge,Be,je));const me=Pe!==void 0;if(Pe===void 0){if(h.env.allowLocalModels)if(D(we,["http:","https:"])){if(T.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${we}.`);
2894if(!h.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${we}.`)}else try{Pe=await S(Be),De=Be}catch(xe){console.warn(`Unable to load from local path "${Be}": "${xe}"`)}if(Pe===void 0||Pe.status===404){if(T.local_files_only||!h.env.allowRemoteModels){if(ee)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${Be}".`);return null}if(!be)throw Error(`Local file missing at "${Be}" and download aborted due to invalid model ID "${u}".`);if(Pe=await S(ve),Pe.status!==200)return R(Pe.status,ve,ee);De=je}Le=ge&&typeof Response<"u"&&Pe instanceof Response&&Pe.status===200}(0,C.dispatchCallback)(T.progress_callback,{status:"download",name:u,file:y});let ie;if(!(h.apis.IS_NODE_ENV&&O)){let Fe;T.progress_callback?me&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(Fe=new Uint8Array(await Pe.arrayBuffer()),(0,C.dispatchCallback)(T.progress_callback,{status:"progress",name:u,file:y,progress:100,loaded:Fe.length,total:Fe.length})):Fe=await w(Pe,xe=>{(0,C.dispatchCallback)(T.progress_callback,{status:"progress",name:u,file:y,...xe})}):Fe=new Uint8Array(await Pe.arrayBuffer()),ie=Fe}if(Le&&De&&await ge.match(De)===void 0)if(ie)await ge.put(De,new Response(ie,{headers:Pe.headers})).catch(Fe=>{console.warn(`Unable to add response to browser cache: ${Fe}.`)});else{const Fe=T.progress_callback?xe=>(0,C.dispatchCallback)(T.progress_callback,{status:"progress",name:u,file:y,...xe}):void 0;await ge.put(De,Pe,Fe)}if((0,C.dispatchCallback)(T.progress_callback,{status:"done",name:u,file:y}),ie){if(!h.apis.IS_NODE_ENV&&O)throw new Error("Cannot return path in a browser environment.");return ie}if(Pe instanceof E)return Pe.filePath;const Ie=await(ge==null?void 0:ge.match(De));if(Ie instanceof E)return Ie.filePath;if(Ie instanceof Response)return new Uint8Array(await Ie.arrayBuffer());if(typeof Ie=="string")return Ie;throw new Error("Unable to get model file path or buffer.")}async function K(u,y,ee=!0,T={}){const O=await L(u,y,ee,T,!1);return O===null?null:new TextDecoder("utf-8").decode(O)}async function d(u,y,ee=!0,T={}){const O=await K(u,y,ee,T);return O===null?{}:JSON.parse(O)}async function w(u,y){const ee=u.headers.get("Content-Length");ee===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let T=parseInt(ee??"0"),O=new Uint8Array(T),ge=0;const se=u.body.getReader();async function we(){const{done:be,value:Be}=await se.read();if(be)return;const ve=ge+Be.length;if(ve>T){T=ve;const je=new Uint8Array(T);je.set(O),O=je}O.set(Be,ge),ge=ve;const De=ge/T*100;return y({progress:De,loaded:ge,total:T}),we()}return await we(),O}function e(...u){return u=u.map((y,ee)=>(ee&&(y=y.replace(new RegExp("^/"),"")),ee!==u.length-1&&(y=y.replace(new RegExp("/$"),"")),y)),u.join("/")}},
2894"./src/utils/image.js":(a,i,n)=>{n.r(i),n.d(i,{RawImage:()=>F,load_image:()=>R});var g=n("./src/utils/core.js"),p=n("./src/utils/hub.js"),h=n("./src/env.js"),C=n("./src/utils/tensor.js"),k=n("?2b25");let M,E,D;const B=h.apis.IS_BROWSER_ENV||h.apis.IS_WEBWORKER_ENV;if(B)M=(X,z)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(X,z)},D=self.createImageBitmap,E=self.ImageData;else if(k)D=async X=>{const L=(await X.metadata()).channels,{data:K,info:d}=await X.rotate().raw().toBuffer({resolveWithObject:!0}),w=new F(new Uint8ClampedArray(K),d.width,d.height,d.channels);return L!==void 0&&L!==d.channels&&w.convert(L),w};else throw new Error("Unable to load image processing library.");const v={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},S=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class F{constructor(z,L,K,d){this.data=z,this.width=L,this.height=K,this.channels=d}get size(){return[this.width,this.height]}static async read(z){if(z instanceof F)return z;if(typeof z=="string"||z instanceof URL)return await this.fromURL(z);if(z instanceof Blob)return await this.fromBlob(z);if(typeof HTMLCanvasElement<"u"&&z instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&z instanceof OffscreenCanvas)return this.fromCanvas(z);throw new Error(`Unsupported input type: ${typeof z}`)}static fromCanvas(z){if(!B)throw new Error("fromCanvas() is only supported in browser environments.");const K=z.getContext("2d").getImageData(0,0,z.width,z.height).data;return new F(K,z.width,z.height,4)}static async fromURL(z){const L=await(0,p.getFile)(z);if(L.status!==200)throw new Error(`Unable to read image from "${z}" (${L.status} ${L.statusText})`);const K=await L.blob();return this.fromBlob(K)}static async fromBlob(z){if(B){const L=await D(z),K=M(L.width,L.height).getContext("2d");return K.drawImage(L,0,0),new this(K.getImageData(0,0,L.width,L.height).data,L.width,L.height,4)}else{const L=k(await z.arrayBuffer());return await D(L)}}static fromTensor(z,L="CHW"){if(z.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${z.dims.length} dimensions.`);if(L==="CHW")z=z.transpose(1,2,0);else if(L!=="HWC")throw new Error(`Unsupported channel format: ${L}`);if(!(z.data instanceof Uint8ClampedArray||z.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${z.type}`);switch(z.dims[2]){case 1:case 2:case 3:case 4:return new F(z.data,z.dims[1],z.dims[0],z.dims[2]);default:throw new Error(`Unsupported number of channels: ${z.dims[2]}`)}}grayscale(){if(this.channels===1)return this;const z=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let L=0,K=0;L<this.data.length;L+=this.channels){const d=this.data[L],w=this.data[L+1],e=this.data[L+2];z[K++]=Math.round(.2989*d+.587*w+.114*e)}break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(z,this.width,this.height,1)}rgb(){if(this.channels===3)return this;const z=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let L=0,K=0;L<this.data.length;++L)z[K++]=this.data[L],z[K++]=this.data[L],z[K++]=this.data[L];break;case 4:for(let L=0,K=0;L<this.data.length;L+=4)z[K++]=this.data[L],z[K++]=this.data[L+1],z[K++]=this.data[L+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(z,this.width,this.height,3)}rgba(){if(this.channels===4)return this;const z=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let L=0,K=0;L<this.data.length;++L)z[K++]=this.data[L],z[K++]=this.data[L],z[K++]=this.data[L],z[K++]=255;break;case 3:for(let L=0,K=0;L<this.data.length;L+=3)z[K++]=this.data[L],z[K++]=this.data[L+1],z[K++]=this.data[L+2],z[K++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(z,this.width,this.height,4)}putAlpha(z){if(z.width!==this.width||z.height!==this.height)throw new Error(`Expected mask size to be ${this.width}x${this.height}, but got ${z.width}x${z.height}`);if(z.channels!==1)throw new Error(`Expected mask to have 1 channel, but got ${z.channels}`);const L=this.data,K=z.data,d=this.width*this.height;if(this.channels===3){const w=new Uint8ClampedArray(d*4);for(let e=0,u=0,y=0;e<d;++e)w[y++]=L[u++],w[y++]=L[u++],w[y++]=L[u++],w[y++]=K[e];return this._update(w,this.width,this.height,4)}else if(this.channels===4){for(let w=0;w<d;++w)L[4*w+3]=K[w];return this}throw new Error(`Expected image to have 3 or 4 channels, but got ${this.channels}`)}async resize(z,L,{resample:K=2}={}){if(this.width===z&&this.height===L)return this;let d=v[K]??K;const w=(0,g.isNullishDimension)(z),e=(0,g.isNullishDimension)(L);if(w&&e)return this;if(w?z=L/this.height*this.width:e&&(L=z/this.width*this.height),B){const u=this.channels,y=this.toCanvas(),ee=M(z,L).getContext("2d");return ee.drawImage(y,0,0,z,L),new F(ee.getImageData(0,0,z,L).data,z,L,4).convert(u)}else{let u=this.toSharp();switch(d){case"box":case"hamming":(d==="box"||d==="hamming")&&(console.warn(`Resampling method ${d} is not yet supported. Using bilinear instead.`),d="bilinear");case"nearest":case"bilinear":case"bicubic":u=u.affine([z/this.width,0,0,L/this.height],{interpolator:d});break;case"lanczos":u=u.resize({width:z,height:L,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${d} is not supported.`)}return await D(u)}}async pad([z,L,K,d]){if(z=Math.max(z,0),L=Math.max(L,0),K=Math.max(K,0),d=Math.max(d,0),z===0&&L===0&&K===0&&d===0)return this;if(B){const w=this.channels,e=this.toCanvas(),u=this.width+z+L,y=this.height+K+d,ee=M(u,y).getContext("2d");return ee.drawImage(e,0,0,this.width,this.height,z,K,this.width,this.height),new F(ee.getImageData(0,0,u,y).data,u,y,4).convert(w)}else{const w=this.toSharp().extend({left:z,right:L,top:K,bottom:d});return await D(w)}}async crop([z,L,K,d]){if(z=Math.max(z,0),L=Math.max(L,0),K=Math.min(K,this.width-1),d=Math.min(d,this.height-1),z===0&&L===0&&K===this.width-1&&d===this.height-1)return this;const w=K-z+1,e=d-L+1;if(B){const u=this.channels,y=this.toCanvas(),ee=M(w,e).getContext("2d");return ee.drawImage(y,z,L,w,e,0,0,w,e),new F(ee.getImageData(0,0,w,e).data,w,e,4).convert(u)}else{const u=this.toSharp().extract({left:z,top:L,width:w,height:e});return await D(u)}}async center_crop(z,L){if(this.width===z&&this.height===L)return this;const K=(this.width-z)/2,d=(this.height-L)/2;
2894if(B){const w=this.channels,e=this.toCanvas(),u=M(z,L).getContext("2d");let y=0,ee=0,T=0,O=0;return K>=0?y=K:T=-K,d>=0?ee=d:O=-d,u.drawImage(e,y,ee,z,L,T,O,z,L),new F(u.getImageData(0,0,z,L).data,z,L,4).convert(w)}else{let w=this.toSharp();if(K>=0&&d>=0)w=w.extract({left:Math.floor(K),top:Math.floor(d),width:z,height:L});else if(K<=0&&d<=0){const e=Math.floor(-d),u=Math.floor(-K);w=w.extend({top:e,left:u,right:z-this.width-u,bottom:L-this.height-e})}else{let e=[0,0],u=0;d<0?(e[0]=Math.floor(-d),e[1]=L-this.height-e[0]):u=Math.floor(d);let y=[0,0],ee=0;K<0?(y[0]=Math.floor(-K),y[1]=z-this.width-y[0]):ee=Math.floor(K),w=w.extend({top:e[0],bottom:e[1],left:y[0],right:y[1]}).extract({left:ee,top:u,width:z,height:L})}return await D(w)}}async toBlob(z="image/png",L=1){if(!B)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:z,quality:L})}toTensor(z="CHW"){let L=new C.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(z!=="HWC")if(z==="CHW")L=L.permute(2,0,1);else throw new Error(`Unsupported channel format: ${z}`);return L}toCanvas(){if(!B)throw new Error("toCanvas() is only supported in browser environments.");const z=this.clone().rgba(),L=M(z.width,z.height),K=new E(z.data,z.width,z.height);return L.getContext("2d").putImageData(K,0,0),L}split(){const{data:z,width:L,height:K,channels:d}=this,w=z.constructor,e=z.length/d,u=Array.from({length:d},()=>new w(e));for(let y=0;y<e;++y){const ee=d*y;for(let T=0;T<d;++T)u[T][y]=z[ee+T]}return u.map(y=>new F(y,L,K,1))}_update(z,L,K,d=null){return this.data=z,this.width=L,this.height=K,d!==null&&(this.channels=d),this}clone(){return new F(this.data.slice(),this.width,this.height,this.channels)}convert(z){if(this.channels===z)return this;switch(z){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(z){if(B){if(h.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");const L=z.split(".").pop().toLowerCase(),K=S.get(L)??"image/png",d=await this.toBlob(K);(0,g.saveBlob)(z,d)}else{if(h.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(z);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(B)throw new Error("toSharp() is only supported in server-side environments.");return k(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}const R=F.read.bind(F)},
2894"./src/utils/maths.js":(a,i,n)=>{n.r(i),n.d(i,{FFT:()=>R,bankers_round:()=>L,cos_sim:()=>M,dot:()=>k,dynamic_time_warping:()=>K,interpolate_data:()=>g,log_softmax:()=>C,magnitude:()=>E,max:()=>B,medianFilter:()=>X,min:()=>D,permute_data:()=>p,round:()=>z,softmax:()=>h});function g(d,[w,e,u],[y,ee],T="bilinear",O=!1){const ge=ee/u,se=y/e,we=new d.constructor(y*ee*w),be=e*u,Be=y*ee;for(let ve=0;ve<y;++ve)for(let De=0;De<ee;++De){const je=ve*ee+De,Le=(De+.5)/ge-.5,Pe=(ve+.5)/se-.5;let me=Math.floor(Le),ie=Math.floor(Pe);const Ie=Math.min(me+1,u-1),Fe=Math.min(ie+1,e-1);me=Math.max(me,0),ie=Math.max(ie,0);const xe=Le-me,sA=Pe-ie,uA=(1-xe)*(1-sA),hA=xe*(1-sA),iA=(1-xe)*sA,ye=xe*sA,Ae=ie*u,Re=Fe*u,qe=Ae+me,Ue=Ae+Ie,rA=Re+me,aA=Re+Ie;for(let Y=0;Y<w;++Y){const cA=Y*be;we[Y*Be+je]=uA*d[cA+qe]+hA*d[cA+Ue]+iA*d[cA+rA]+ye*d[cA+aA]}}return we}function p(d,w,e){const u=new Array(e.length),y=new Array(e.length);for(let O=e.length-1,ge=1;O>=0;--O)y[O]=ge,u[O]=w[e[O]],ge*=u[O];const ee=e.map((O,ge)=>y[e.indexOf(ge)]),T=new d.constructor(d.length);for(let O=0;O<d.length;++O){let ge=0;for(let se=w.length-1,we=O;se>=0;--se)ge+=we%w[se]*ee[se],we=Math.floor(we/w[se]);T[ge]=d[O]}return[T,u]}function h(d){const w=B(d)[0],e=d.map(ee=>Math.exp(ee-w)),u=e.reduce((ee,T)=>ee+T,0);return e.map(ee=>ee/u)}function C(d){const w=B(d)[0];let e=0;for(let ee=0;ee<d.length;++ee)e+=Math.exp(d[ee]-w);const u=Math.log(e);return d.map(ee=>ee-w-u)}function k(d,w){let e=0;for(let u=0;u<d.length;++u)e+=d[u]*w[u];return e}function M(d,w){const e=k(d,w),u=E(d),y=E(w);return e/(u*y)}function E(d){return Math.sqrt(d.reduce((w,e)=>w+e*e,0))}
vendor: 7,314 bytes, line 2894
2894function D(d){if(d.length===0)throw Error("Array must not be empty");let w=d[0],e=0;for(let u=1;u<d.length;++u)d[u]<w&&(w=d[u],e=u);return[w,e]}function B(d){if(d.length===0)throw Error("Array must not be empty");let w=d[0],e=0;for(let u=1;u<d.length;++u)d[u]>w&&(w=d[u],e=u);return[w,e]}function v(d){return d>0&&(d&d-1)===0}class S{constructor(w){if(this.size=w|0,this.size<=1||!v(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=w<<1,this.table=new Float64Array(this.size*2);for(let u=0;u<this.table.length;u+=2){const y=Math.PI*u/this.size;this.table[u]=Math.cos(y),this.table[u+1]=-Math.sin(y)}let e=0;for(let u=1;this.size>u;u<<=1)++e;this._width=e%2===0?e-1:e,this._bitrev=new Int32Array(1<<this._width);for(let u=0;u<this._bitrev.length;++u){this._bitrev[u]=0;for(let y=0;y<this._width;y+=2){const ee=this._width-y-2;this._bitrev[u]|=(u>>>y&3)<<ee}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(w,e){const u=e||new Array(w.length>>>1);for(let y=0;y<w.length;y+=2)u[y>>>1]=w[y];return u}toComplexArray(w,e){const u=e||this.createComplexArray();for(let y=0;y<u.length;y+=2)u[y]=w[y>>>1],u[y+1]=0;return u}transform(w,e){if(w===e)throw new Error("Input and output buffers must be different");this._transform4(w,e,1)}realTransform(w,e){if(w===e)throw new Error("Input and output buffers must be different");this._realTransform4(w,e,1)}inverseTransform(w,e){if(w===e)throw new Error("Input and output buffers must be different");this._transform4(w,e,-1);for(let u=0;u<w.length;++u)w[u]/=this.size}_transform4(w,e,u){const y=this._csize;let T=1<<this._width,O=y/T<<1,ge,se;const we=this._bitrev;if(O===4)for(ge=0,se=0;ge<y;ge+=O,++se){const Be=we[se];this._singleTransform2(e,w,ge,Be,T)}else for(ge=0,se=0;ge<y;ge+=O,++se){const Be=we[se];this._singleTransform4(e,w,ge,Be,T,u)}const be=this.table;for(T>>=2;T>=2;T>>=2){O=y/T<<1;const Be=O>>>2;for(ge=0;ge<y;ge+=O){const ve=ge+Be-1;for(let De=ge,je=0;De<ve;De+=2,je+=T){const Le=De,Pe=Le+Be,me=Pe+Be,ie=me+Be,Ie=w[Le],Fe=w[Le+1],xe=w[Pe],sA=w[Pe+1],uA=w[me],hA=w[me+1],iA=w[ie],ye=w[ie+1],Ae=be[je],Re=u*be[je+1],qe=xe*Ae-sA*Re,Ue=xe*Re+sA*Ae,rA=be[2*je],aA=u*be[2*je+1],Y=uA*rA-hA*aA,cA=uA*aA+hA*rA,He=be[3*je],ce=u*be[3*je+1],MA=iA*He-ye*ce,nA=iA*ce+ye*He,DA=Ie+Y,IA=Fe+cA,ot=Ie-Y,BA=Fe-cA,tA=qe+MA,lA=Ue+nA,KA=u*(qe-MA),JA=u*(Ue-nA);w[Le]=DA+tA,w[Le+1]=IA+lA,w[Pe]=ot+JA,w[Pe+1]=BA-KA,w[me]=DA-tA,w[me+1]=IA-lA,w[ie]=ot-JA,w[ie+1]=BA+KA}}}}_singleTransform2(w,e,u,y,ee){const T=w[y],O=w[y+1],ge=w[y+ee],se=w[y+ee+1];e[u]=T+ge,e[u+1]=O+se,e[u+2]=T-ge,e[u+3]=O-se}_singleTransform4(w,e,u,y,ee,T){const O=ee*2,ge=ee*3,se=w[y],we=w[y+1],be=w[y+ee],Be=w[y+ee+1],ve=w[y+O],De=w[y+O+1],je=w[y+ge],Le=w[y+ge+1],Pe=se+ve,me=we+De,ie=se-ve,Ie=we-De,Fe=be+je,xe=Be+Le,sA=T*(be-je),uA=T*(Be-Le);e[u]=Pe+Fe,e[u+1]=me+xe,e[u+2]=ie+uA,e[u+3]=Ie-sA,e[u+4]=Pe-Fe,e[u+5]=me-xe,e[u+6]=ie-uA,e[u+7]=Ie+sA}_realTransform4(w,e,u){const y=this._csize;let T=1<<this._width,O=y/T<<1,ge,se;const we=this._bitrev;if(O===4)for(ge=0,se=0;ge<y;ge+=O,++se){const ve=we[se];this._singleRealTransform2(e,w,ge,ve>>>1,T>>>1)}else for(ge=0,se=0;ge<y;ge+=O,++se){const ve=we[se];this._singleRealTransform4(e,w,ge,ve>>>1,T>>>1,u)}const be=this.table;for(T>>=2;T>=2;T>>=2){O=y/T<<1;const ve=O>>>1,De=ve>>>1,je=De>>>1;for(ge=0;ge<y;ge+=O)for(let Le=0,Pe=0;Le<=je;Le+=2,Pe+=T){const me=ge+Le,ie=me+De,Ie=ie+De,Fe=Ie+De,xe=w[me],sA=w[me+1],uA=w[ie],hA=w[ie+1],iA=w[Ie],ye=w[Ie+1],Ae=w[Fe],Re=w[Fe+1],qe=xe,Ue=sA,rA=be[Pe],aA=u*be[Pe+1],Y=uA*rA-hA*aA,cA=uA*aA+hA*rA,He=be[2*Pe],ce=u*be[2*Pe+1],MA=iA*He-ye*ce,nA=iA*ce+ye*He,DA=be[3*Pe],IA=u*be[3*Pe+1],ot=Ae*DA-Re*IA,BA=Ae*IA+Re*DA,tA=qe+MA,lA=Ue+nA,KA=qe-MA,JA=Ue-nA,RA=Y+ot,ZA=cA+BA,Zt=u*(Y-ot),Sr=u*(cA-BA);if(w[me]=tA+RA,w[me+1]=lA+ZA,w[ie]=KA+Sr,w[ie+1]=JA-Zt,Le===0){w[Ie]=tA-RA,w[Ie+1]=lA-ZA;continue}if(Le===je)continue;const ft=ge+De-Le,ds=ge+ve-Le;w[ft]=KA-u*Sr,w[ft+1]=-JA-u*Zt,w[ds]=tA-u*RA,w[ds+1]=-lA+u*ZA}}const Be=y>>>1;for(let ve=2;ve<Be;ve+=2)w[y-ve]=w[ve],w[y-ve+1]=-w[ve+1]}_singleRealTransform2(w,e,u,y,ee){const T=w[y],O=w[y+ee];e[u]=T+O,e[u+1]=0,e[u+2]=T-O,e[u+3]=0}_singleRealTransform4(w,e,u,y,ee,T){const O=ee*2,ge=ee*3,se=w[y],we=w[y+ee],be=w[y+O],Be=w[y+ge],ve=se+be,De=se-be,je=we+Be,Le=T*(we-Be);e[u]=ve+je,e[u+1]=0,e[u+2]=De,e[u+3]=-Le,e[u+4]=ve-je,e[u+5]=0,e[u+6]=De,e[u+7]=Le}}class F{constructor(w){const e=2*(w-1),u=2*(2*w-1),y=2**Math.ceil(Math.log2(u));this.bufferSize=y,this._a=e;const ee=new Float64Array(u),T=new Float64Array(y);this._chirpBuffer=new Float64Array(y),this._buffer1=new Float64Array(y),this._buffer2=new Float64Array(y),this._outBuffer1=new Float64Array(y),this._outBuffer2=new Float64Array(y);const O=-2*Math.PI/w,ge=Math.cos(O),se=Math.sin(O);for(let we=0;we<u>>1;++we){const be=(we+1-w)**2/2,Be=Math.sqrt(ge**2+se**2)**be,ve=be*Math.atan2(se,ge),De=2*we;ee[De]=Be*Math.cos(ve),ee[De+1]=Be*Math.sin(ve),T[De]=ee[De],T[De+1]=-ee[De+1]}this._slicedChirpBuffer=ee.subarray(e,u),this._f=new S(y>>1),this._f.transform(this._chirpBuffer,T)}_transform(w,e,u){const y=this._buffer1,ee=this._buffer2,T=this._outBuffer1,O=this._outBuffer2,ge=this._chirpBuffer,se=this._slicedChirpBuffer,we=this._a;if(u)for(let be=0;be<se.length;be+=2){const Be=be+1,ve=be>>1,De=e[ve];y[be]=De*se[be],y[Be]=De*se[Be]}else for(let be=0;be<se.length;be+=2){const Be=be+1;y[be]=e[be]*se[be]-e[Be]*se[Be],y[Be]=e[be]*se[Be]+e[Be]*se[be]}this._f.transform(T,y);for(let be=0;be<ge.length;be+=2){const Be=be+1;ee[be]=T[be]*ge[be]-T[Be]*ge[Be],ee[Be]=T[be]*ge[Be]+T[Be]*ge[be]}this._f.inverseTransform(O,ee);for(let be=0;be<O.length;be+=2){const Be=O[be+we],ve=O[be+we+1],De=se[be],je=se[be+1];w[be]=Be*De-ve*je,w[be+1]=Be*je+ve*De}}transform(w,e){this._transform(w,e,!1)}realTransform(w,e){this._transform(w,e,!0)}}class R{constructor(w){this.fft_length=w,this.isPowerOfTwo=v(w),this.isPowerOfTwo?(this.fft=new S(w),this.outputBufferSize=2*w):(this.fft=new F(w),this.outputBufferSize=this.fft.bufferSize)}realTransform(w,e){this.fft.realTransform(w,e)}transform(w,e){this.fft.transform(w,e)}}function X(d,w){if(w%2===0||w<=0)throw new Error("Window size must be a positive odd number");const e=new d.constructor(d.length),u=new d.constructor(w),y=Math.floor(w/2);for(let ee=0;ee<d.length;++ee){let T=0;for(let O=-y;O<=y;++O){let ge=ee+O;ge<0?ge=Math.abs(ge):ge>=d.length&&(ge=2*(d.length-1)-ge),u[T++]=d[ge]}u.sort(),e[ee]=u[y]}return e}function z(d,w){const e=Math.pow(10,w);return Math.round(d*e)/e}function L(d){const w=Math.round(d);return Math.abs(d)%1===.5?w%2===0?w:w-1:w}function K(d){const w=d.length,e=d[0].length,u=[w+1,e+1],y=Array.from({length:u[0]},()=>Array(u[1]).fill(1/0));y[0][0]=0;const ee=Array.from({length:u[0]},()=>Array(u[1]).fill(-1));for(let we=1;we<u[1];++we)for(let be=1;be<u[0];++be){const Be=y[be-1][we-1],ve=y[be-1][we],De=y[be][we-1];let je,Le;Be<ve&&Be<De?(je=Be,Le=0):ve<Be&&ve<De?(je=ve,Le=1):(je=De,Le=2),y[be][we]=d[be-1][we-1]+je,ee[be][we]=Le}for(let we=0;we<u[1];++we)ee[0][we]=2;for(let we=0;we<u[0];++we)ee[we][0]=1;let T=w,O=e,ge=[],se=[];for(;T>0||O>0;)switch(ge.push(T-1),se.push(O-1),ee[T][O]){case 0:--T,--O;break;case 1:--T;break;case 2:--O;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${T}, ${O}]. Please file a bug report.`)}return ge.reverse(),se.reverse(),[ge,se]}},
2894"./src/utils/tensor.js":(a,i,n)=>{n.r(i),n.d(i,{DataTypeMap:()=>C,Tensor:()=>k,cat:()=>e,full:()=>se,full_like:()=>we,interpolate:()=>D,interpolate_4d:()=>B,layer_norm:()=>L,matmul:()=>v,mean:()=>T,mean_pooling:()=>z,ones:()=>be,ones_like:()=>Be,permute:()=>E,quantize_embeddings:()=>Pe,rand:()=>je,randn:()=>Le,rfft:()=>S,slice:()=>X,stack:()=>u,std_mean:()=>ee,topk:()=>F,zeros:()=>ve,zeros_like:()=>De});var g=n("./src/utils/maths.js"),p=n("./src/backends/onnx.js"),h=n("./src/ops/registry.js");const C=Object.freeze({float32:Float32Array,float16:typeof Float16Array<"u"?Float16Array:Uint16Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array,uint4:Uint8Array,int4:Int8Array});class k{constructor(...ie){Ee(this,"ort_tensor");return(0,p.isONNXTensor)(ie[0])?this.ort_tensor=ie[0]:this.ort_tensor=new p.Tensor(ie[0],ie[1],ie[2]),new Proxy(this,{get:(Ie,Fe)=>{if(typeof Fe=="string"){let xe=Number(Fe);if(Number.isInteger(xe))return Ie._getitem(xe)}return Ie[Fe]},set:(Ie,Fe,xe)=>Ie[Fe]=xe})}get dims(){return this.ort_tensor.dims}set dims(ie){this.ort_tensor.dims=ie}get type(){return this.ort_tensor.type}get data(){return this.ort_tensor.data}get size(){return this.ort_tensor.size}get location(){return this.ort_tensor.location}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){const[ie,...Ie]=this.dims;if(Ie.length>0){const Fe=Ie.reduce((xe,sA)=>xe*sA);for(let xe=0;xe<ie;++xe)yield this._subarray(xe,Fe,Ie)}else yield*this.data}_getitem(ie){const[Ie,...Fe]=this.dims;if(ie=w(ie,Ie),Fe.length>0){const xe=Fe.reduce((sA,uA)=>sA*uA);return this._subarray(ie,xe,Fe)}else return new k(this.type,[this.data[ie]],Fe)}indexOf(ie){const Ie=this.data;for(let Fe=0;Fe<Ie.length;++Fe)if(Ie[Fe]==ie)return Fe;return-1}_subarray(ie,Ie,Fe){const xe=ie*Ie,sA=(ie+1)*Ie,uA="subarray"in this.data?this.data.subarray(xe,sA):this.data.slice(xe,sA);return new k(this.type,uA,Fe)}item(){const ie=this.data;if(ie.length!==1)throw new Error(`a Tensor with ${ie.length} elements cannot be converted to Scalar`);return ie[0]}tolist(){return M(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){const ie=this.data;for(let Ie=0;Ie<ie.length;++Ie)ie[Ie]=1/(1+Math.exp(-ie[Ie]));return this}map(ie){return this.clone().map_(ie)}map_(ie){const Ie=this.data;for(let Fe=0;Fe<Ie.length;++Fe)Ie[Fe]=ie(Ie[Fe],Fe,Ie);return this}mul(ie){return this.clone().mul_(ie)}mul_(ie){const Ie=this.data;for(let Fe=0;Fe<Ie.length;++Fe)Ie[Fe]*=ie;return this}div(ie){return this.clone().div_(ie)}div_(ie){const Ie=this.data;for(let Fe=0;Fe<Ie.length;++Fe)Ie[Fe]/=ie;return this}add(ie){return this.clone().add_(ie)}add_(ie){const Ie=this.data;for(let Fe=0;Fe<Ie.length;++Fe)Ie[Fe]+=ie;return this}sub(ie){return this.clone().sub_(ie)}sub_(ie){const Ie=this.data;for(let Fe=0;Fe<Ie.length;++Fe)Ie[Fe]-=ie;return this}clone(){return new k(this.type,this.data.slice(),this.dims.slice())}slice(...ie){const Ie=[],Fe=[];for(let Ae=0;Ae<this.dims.length;++Ae){let Re=ie[Ae];if(Re==null)Fe.push([0,this.dims[Ae]]),Ie.push(this.dims[Ae]);else if(typeof Re=="number")Re=w(Re,this.dims[Ae],Ae),Fe.push([Re,Re+1]);else if(Array.isArray(Re)&&Re.length===2){let[qe,Ue]=Re;if(qe=qe===null?0:w(qe,this.dims[Ae],Ae,!1),Ue=Ue===null?this.dims[Ae]:w(Ue,this.dims[Ae],Ae,!1),qe>Ue)throw new Error(`Invalid slice: ${Re}`);const rA=[Math.max(qe,0),Math.min(Ue,this.dims[Ae])];Fe.push(rA),Ie.push(rA[1]-rA[0])}else throw new Error(`Invalid slice: ${Re}`)}const xe=Fe.map(([Ae,Re])=>Re-Ae),sA=xe.reduce((Ae,Re)=>Ae*Re),uA=this.data,hA=new uA.constructor(sA),iA=this.stride();let ye=!0;for(let Ae=1;Ae<xe.length;++Ae)if(Fe[Ae][0]!==0||Fe[Ae][1]!==this.dims[Ae]){ye=!1;break}if(ye){const Ae=Fe[0][0]*iA[0],Re=Fe[0][1]*iA[0];if(ArrayBuffer.isView(uA))hA.set(uA.subarray(Ae,Re));else if(Array.isArray(uA)){const qe=uA.slice(Ae,Re);for(let Ue=0;Ue<qe.length;++Ue)hA[Ue]=qe[Ue]}else throw new Error("Unsupported data type for slicing")}else for(let Ae=0;Ae<sA;++Ae){let Re=0;for(let qe=xe.length-1,Ue=Ae;qe>=0;--qe){const rA=xe[qe];Re+=(Ue%rA+Fe[qe][0])*iA[qe],Ue=Math.floor(Ue/rA)}hA[Ae]=uA[Re]}return new k(this.type,hA,Ie)}permute(...ie){return E(this,ie)}transpose(...ie){return this.permute(...ie)}sum(ie=null,Ie=!1){return this.norm(1,ie,Ie)}norm(ie="fro",Ie=null,Fe=!1){if(ie==="fro")ie=2;else if(typeof ie=="string")throw Error(`Unsupported norm: ${ie}`);const xe=this.data,sA=(ye,Ae)=>ye+Ae**ie;if(Ie===null){const ye=xe.reduce(sA,0)**(1/ie);return new k(this.type,[ye],[])}const[uA,hA,iA]=y(sA,this,Ie,Fe);if(ie!==1)for(let ye=0;ye<hA.length;++ye)hA[ye]=hA[ye]**(1/ie);return new k(uA,hA,iA)}normalize_(ie=2,Ie=1){Ie=w(Ie,this.dims.length);const Fe=this.norm(ie,Ie,!0),xe=this.data,sA=Fe.data;for(let uA=0;uA<xe.length;++uA){let hA=0;for(let iA=this.dims.length-1,ye=uA,Ae=1;iA>=0;--iA){const Re=this.dims[iA];if(iA!==Ie){const qe=ye%Re;hA+=qe*Ae,Ae*=this.dims[iA]}ye=Math.floor(ye/Re)}xe[uA]/=sA[hA]}return this}normalize(ie=2,Ie=1){return this.clone().normalize_(ie,Ie)}stride(){return O(this.dims)}squeeze(ie=null){return new k(this.type,this.data,K(this.dims,ie))}squeeze_(ie=null){return this.dims=K(this.dims,ie),this}unsqueeze(ie=null){return new k(this.type,this.data,d(this.dims,ie))}unsqueeze_(ie=null){return this.dims=d(this.dims,ie),this}flatten_(ie=0,Ie=-1){Ie=(Ie+this.dims.length)%this.dims.length;let Fe=this.dims.slice(0,ie),xe=this.dims.slice(ie,Ie+1),sA=this.dims.slice(Ie+1);return this.dims=[...Fe,xe.reduce((uA,hA)=>uA*hA,1),...sA],this}flatten(ie=0,Ie=-1){return this.clone().flatten_(ie,Ie)}view(...ie){let Ie=-1;for(let xe=0;xe<ie.length;++xe)if(ie[xe]===-1){if(Ie!==-1)throw new Error("Only one dimension can be inferred");Ie=xe}const Fe=this.data;if(Ie!==-1){const xe=ie.reduce((sA,uA,hA)=>hA!==Ie?sA*uA:sA,1);ie[Ie]=Fe.length/xe}return new k(this.type,Fe,ie)}neg_(){const ie=this.data;for(let Ie=0;Ie<ie.length;++Ie)ie[Ie]=-ie[Ie];return this}neg(){return this.clone().neg_()}gt(ie){const Ie=new Uint8Array(this.data.length),Fe=this.data;for(let xe=0;xe<Fe.length;++xe)Ie[xe]=Fe[xe]>ie?1:0;return new k("bool",Ie,this.dims)}lt(ie){const Ie=new Uint8Array(this.data.length),Fe=this.data;for(let xe=0;xe<Fe.length;++xe)Ie[xe]=Fe[xe]<ie?1:0;return new k("bool",Ie,this.dims)}clamp_(ie,Ie){const Fe=this.data;for(let xe=0;xe<Fe.length;++xe)Fe[xe]=Math.min(Math.max(Fe[xe],ie),Ie);return this}clamp(ie,Ie){return this.clone().clamp_(ie,Ie)}
2894round_(){const ie=this.data;for(let Ie=0;Ie<ie.length;++Ie)ie[Ie]=Math.round(ie[Ie]);return this}round(){return this.clone().round_()}mean(ie=null,Ie=!1){return T(this,ie,Ie)}min(ie=null,Ie=!1){if(ie===null){const uA=(0,g.min)(this.data)[0];return new k(this.type,[uA],[])}const[Fe,xe,sA]=y((uA,hA)=>Math.min(uA,hA),this,ie,Ie,1/0);return new k(Fe,xe,sA)}max(ie=null,Ie=!1){if(ie===null){const uA=(0,g.max)(this.data)[0];return new k(this.type,[uA],[])}const[Fe,xe,sA]=y((uA,hA)=>Math.max(uA,hA),this,ie,Ie,-1/0);return new k(Fe,xe,sA)}argmin(ie=null,Ie=!1){if(ie!==null)throw new Error("`dim !== null` not yet implemented.");const Fe=(0,g.min)(this.data)[1];return new k("int64",[BigInt(Fe)],[])}argmax(ie=null,Ie=!1){if(ie!==null)throw new Error("`dim !== null` not yet implemented.");const Fe=(0,g.max)(this.data)[1];return new k("int64",[BigInt(Fe)],[])}to(ie){if(this.type===ie)return this;if(!C.hasOwnProperty(ie))throw new Error(`Unsupported type: ${ie}`);let Ie;const Fe=["int64","uint64"].includes(this.type),xe=["int64","uint64"].includes(ie);return Fe&&!xe?Ie=Number:!Fe&&xe&&(["float16","float32","float64"].includes(this.type)?Ie=sA=>BigInt(Math.floor(sA)):Ie=BigInt),new k(ie,C[ie].from(this.data,Ie),this.dims)}}function M(me,ie){const Ie=me.length,Fe=ie.reduce((sA,uA)=>sA*uA);if(Ie!==Fe)throw Error(`cannot reshape array of size ${Ie} into shape (${ie})`);let xe=me;for(let sA=ie.length-1;sA>=0;sA--)xe=xe.reduce((uA,hA)=>{let iA=uA[uA.length-1];return iA.length<ie[sA]?iA.push(hA):uA.push([hA]),uA},[[]]);return xe[0]}function E(me,ie){const[Ie,Fe]=(0,g.permute_data)(me.data,me.dims,ie);return new k(me.type,Ie,Fe)}function D(me,[ie,Ie],Fe="bilinear",xe=!1){const sA=me.dims.at(-3)??1,uA=me.dims.at(-2),hA=me.dims.at(-1);let iA=(0,g.interpolate_data)(me.data,[sA,uA,hA],[ie,Ie],Fe,xe);return new k(me.type,iA,[sA,ie,Ie])}async function B(me,{size:ie=null,mode:Ie="bilinear"}={}){if(me.dims.length!==4)throw new Error("`interpolate_4d` currently only supports 4D input.");if(!ie)throw new Error("`interpolate_4d` requires a `size` argument.");let Fe;if(ie.length===2)Fe=[...me.dims.slice(0,2),...ie];else if(ie.length===3)Fe=[me.dims[0],...ie];else if(ie.length===4)Fe=ie;else throw new Error("`size` must be of length 2, 3, or 4.");let xe;if(Ie==="nearest")xe=await h.TensorOpRegistry.nearest_interpolate_4d;else if(Ie==="bilinear")xe=await h.TensorOpRegistry.bilinear_interpolate_4d;else if(Ie==="bicubic")xe=await h.TensorOpRegistry.bicubic_interpolate_4d;else throw new Error(`Unsupported mode: ${Ie}`);const sA=new k("int64",new BigInt64Array(Fe.map(BigInt)),[Fe.length]);return await xe({x:me,s:sA})}async function v(me,ie){return await(await h.TensorOpRegistry.matmul)({a:me,b:ie})}async function S(me,ie){return await(await h.TensorOpRegistry.rfft)({x:me,a:ie})}async function F(me,ie){const Ie=await h.TensorOpRegistry.top_k;return ie==null?ie=me.dims.at(-1):ie=Math.min(ie,me.dims.at(-1)),await Ie({x:me,k:new k("int64",[BigInt(ie)],[1])})}const R=me=>new k("int64",me,[me.length]);async function X(me,ie,Ie,Fe,xe){return await(await h.TensorOpRegistry.slice)({x:me,s:R(ie),e:R(Ie),a:R(Fe),t:R(xe??new Array(Fe.length).fill(1))})}function z(me,ie){const Ie=me.data,Fe=ie.data,xe=[me.dims[0],me.dims[2]],sA=new Ie.constructor(xe[0]*xe[1]),[uA,hA,iA]=me.dims;let ye=0;for(let Ae=0;Ae<uA;++Ae){const Re=Ae*iA*hA;for(let qe=0;qe<iA;++qe){let Ue=0,rA=0;const aA=Ae*hA,Y=Re+qe;for(let He=0;He<hA;++He){const ce=Number(Fe[aA+He]);rA+=ce,Ue+=Ie[Y+He*iA]*ce}const cA=Ue/rA;sA[ye++]=cA}}return new k(me.type,sA,xe)}function L(me,ie,{eps:Ie=1e-5}={}){if(me.dims.length!==2)throw new Error("`layer_norm` currently only supports 2D input.");const[Fe,xe]=me.dims;if(ie.length!==1&&ie[0]!==xe)throw new Error("`normalized_shape` must be a 1D array with shape `[input.dims[1]]`.");const[sA,uA]=ee(me,1,0,!0),hA=sA.data,iA=uA.data,ye=me.data,Ae=new ye.constructor(ye.length);for(let Re=0;Re<Fe;++Re){const qe=Re*xe;for(let Ue=0;Ue<xe;++Ue){const rA=qe+Ue;Ae[rA]=(ye[rA]-iA[Re])/(hA[Re]+Ie)}}return new k(me.type,Ae,me.dims)}function K(me,ie){return me=me.slice(),ie===null?me=me.filter(Ie=>Ie!==1):typeof ie=="number"?me[ie]===1&&me.splice(ie,1):Array.isArray(ie)&&(me=me.filter((Ie,Fe)=>Ie!==1||!ie.includes(Fe))),me}function d(me,ie){return ie=w(ie,me.length+1),me=me.slice(),me.splice(ie,0,1),me}function w(me,ie,Ie=null,Fe=!0){if(me<-ie||me>=ie){if(Fe)throw new Error(`IndexError: index ${me} is out of bounds for dimension${Ie===null?"":" "+Ie} with size ${ie}`);return me<-ie?0:ie}return me<0&&(me=(me%ie+ie)%ie),me}function e(me,ie=0){ie=w(ie,me[0].dims.length);const Ie=me[0].dims.slice();Ie[ie]=me.reduce((uA,hA)=>uA+hA.dims[ie],0);const Fe=Ie.reduce((uA,hA)=>uA*hA,1),xe=new me[0].data.constructor(Fe),sA=me[0].type;if(ie===0){let uA=0;for(const hA of me){const iA=hA.data;xe.set(iA,uA),uA+=iA.length}}else{let uA=0;for(let hA=0;hA<me.length;++hA){const{data:iA,dims:ye}=me[hA];for(let Ae=0;Ae<iA.length;++Ae){let Re=0;for(let qe=ye.length-1,Ue=Ae,rA=1;qe>=0;--qe){const aA=ye[qe];let Y=Ue%aA;qe===ie&&(Y+=uA),Re+=Y*rA,rA*=Ie[qe],Ue=Math.floor(Ue/aA)}xe[Re]=iA[Ae]}uA+=ye[ie]}}return new k(sA,xe,Ie)}function u(me,ie=0){return e(me.map(Ie=>Ie.unsqueeze(ie)),ie)}function y(me,ie,Ie=null,Fe=!1,xe=null){const sA=ie.data,uA=ie.dims;Ie=w(Ie,uA.length);const hA=uA.slice();hA[Ie]=1;const iA=new sA.constructor(sA.length/uA[Ie]);xe!==null&&iA.fill(xe);for(let ye=0;ye<sA.length;++ye){let Ae=0;for(let Re=uA.length-1,qe=ye,Ue=1;Re>=0;--Re){const rA=uA[Re];if(Re!==Ie){const aA=qe%rA;Ae+=aA*Ue,Ue*=hA[Re]}qe=Math.floor(qe/rA)}iA[Ae]=me(iA[Ae],sA[ye],ye,Ae)}return Fe||hA.splice(Ie,1),[ie.type,iA,hA]}function ee(me,ie=null,Ie=1,Fe=!1){const xe=me.data,sA=me.dims;if(ie===null){const Ue=xe.reduce((cA,He)=>cA+He,0)/xe.length,rA=Math.sqrt(xe.reduce((cA,He)=>cA+(He-Ue)**2,0)/(xe.length-Ie)),aA=new k(me.type,[Ue],[]);return[new k(me.type,[rA],[]),aA]}ie=w(ie,sA.length);const uA=T(me,ie,Fe),hA=uA.data,[iA,ye,Ae]=y((qe,Ue,rA,aA)=>qe+(Ue-hA[aA])**2,me,ie,Fe);for(let qe=0;qe<ye.length;++qe)ye[qe]=Math.sqrt(ye[qe]/(sA[ie]-Ie));return[new k(iA,ye,Ae),uA]}function T(me,ie=null,Ie=!1){const Fe=me.dims,xe=me.data;if(ie===null){const iA=xe.reduce((ye,Ae)=>ye+Ae,0);return new k(me.type,[iA/xe.length],[])}ie=w(ie,Fe.length);const[sA,uA,hA]=y((iA,ye)=>iA+ye,me,ie,Ie);if(Fe[ie]!==1)for(let iA=0;iA<uA.length;++iA)uA[iA]/=Fe[ie];return new k(sA,uA,hA)}function O(me){const ie=new Array(me.length);for(let Ie=me.length-1,Fe=1;Ie>=0;--Ie)ie[Ie]=Fe,Fe*=me[Ie];return ie}function ge(me,ie,Ie,Fe){const xe=me.reduce((sA,uA)=>sA*uA,1);return new k(Ie,new Fe(xe).fill(ie),me)}function se(me,ie){let Ie,Fe;if(typeof ie=="number")Ie="float32",Fe=Float32Array;else if(typeof ie=="bigint")Ie="int64",Fe=BigInt64Array;else if(typeof ie=="boolean")Ie="bool",Fe=Uint8Array;else throw new Error(`Unsupported data type: ${typeof ie}`);return ge(me,ie,Ie,Fe)}function we(me,ie){return se(me.dims,ie)}function be(me){return ge(me,1n,"int64",BigInt64Array)}function Be(me){return be(me.dims)}function ve(me){return ge(me,0n,"int64",BigInt64Array)}function De(me){return ve(me.dims)}function je(me){const ie=me.reduce((Ie,Fe)=>Ie*Fe,1);return new k("float32",Float32Array.from({length:ie},()=>Math.random()),me)}function Le(me){const ie=me.reduce((Fe,xe)=>Fe*xe,1);function Ie(){const Fe=1-Math.random(),xe=1-Math.random();return Math.sqrt(-2*Math.log(Fe))*Math.cos(2*Math.PI*xe)}return new k("float32",Float32Array.from({length:ie},()=>Ie()),me)}function Pe(me,ie){if(me.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(me.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(ie))throw new Error("The precision must be either 'binary' or 'ubinary'");const Ie=ie==="binary",Fe=Ie?"int8":"uint8",xe=Ie?Int8Array:Uint8Array,sA=me.data,uA=new xe(sA.length/8);for(let hA=0;hA<sA.length;++hA){const iA=sA[hA]>0?1:0,ye=Math.floor(hA/8),Ae=hA%8;uA[ye]|=iA<<7-Ae,Ie&&Ae===0&&(uA[ye]-=128)}return new k(Fe,uA,[me.dims[0],me.dims[1]/8])}},
2894"./src/utils/video.js":(a,i,n)=>{n.r(i),n.d(i,{RawVideo:()=>C,RawVideoFrame:()=>h,load_video:()=>k});var g=n("./src/utils/image.js"),p=n("./src/env.js");class h{constructor(E,D){this.image=E,this.timestamp=D}}class C{constructor(E,D){E.length>0&&E[0]instanceof g.RawImage&&(E=E.map((B,v)=>new h(B,(v+1)/(E.length+1)*D))),this.frames=E,this.duration=D}get width(){return this.frames[0].image.width}get height(){return this.frames[0].image.height}get fps(){return this.frames.length/this.duration}}async function k(M,{num_frames:E=null,fps:D=null}={}){if(!p.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(E==null&&D==null)throw new Error("Either num_frames or fps must be provided.");const B=[],v=document.createElement("video");if(v.crossOrigin="anonymous",v.muted=!0,typeof M=="string")v.src=M;else if(M instanceof Blob)v.src=URL.createObjectURL(M);else if(M instanceof HTMLVideoElement)v.src=M.src;else throw new Error("Invalid URL or video element provided.");if(await new Promise(K=>v.onloadedmetadata=K),v.seekable.start(0)===v.seekable.end(0)){const d=await(await fetch(v.src)).blob();v.src=URL.createObjectURL(d),await new Promise(w=>v.onloadedmetadata=w)}const S=v.duration;let F,R;E!=null?(F=E,R=E===1?0:S/(E-1)):(R=1/D,F=Math.floor(S/R));let X=[];for(let K=0;K<F;++K)X.push(E===1?S/2:K*R);const z=document.createElement("canvas");z.width=v.videoWidth,z.height=v.videoHeight;const L=z.getContext("2d",{willReadFrequently:!0});for(const K of X){v.currentTime=K,await new Promise(u=>{v.onseeked=u}),L.drawImage(v,0,0,z.width,z.height);const d=L.getImageData(0,0,z.width,z.height),w=new g.RawImage(d.data,z.width,z.height,4),e=new h(w,K);B.push(e)}return v.remove(),new C(B,S)}}
2894},Km={};function qt(a){var i=Km[a];if(i!==void 0)return i.exports;var n=Km[a]={exports:{}};return d5[a](n,n.exports,qt),n.exports}(()=>{var a=Object.getPrototypeOf?n=>Object.getPrototypeOf(n):n=>n.__proto__,i;qt.t=function(n,g){if(g&1&&(n=this(n)),g&8||typeof n=="object"&&n&&(g&4&&n.__esModule||g&16&&typeof n.then=="function"))return n;var p=Object.create(null);qt.r(p);var h={};i=i||[null,a({}),a([]),a(a)];for(var C=g&2&&n;typeof C=="object"&&!~i.indexOf(C);C=a(C))Object.getOwnPropertyNames(C).forEach(k=>h[k]=()=>n[k]);return h.default=()=>n,qt.d(p,h),p}})();qt.d=(a,i)=>{for(var n in i)qt.o(i,n)&&!qt.o(a,n)&&Object.defineProperty(a,n,{enumerable:!0,get:i[n]})};qt.o=(a,i)=>Object.prototype.hasOwnProperty.call(a,i);qt.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var Q={};(()=>{/*!*****************************!*\ 2895 !*** ./src/transformers.js ***! 2896 \*****************************/qt.r(Q),qt.d(Q,{ASTFeatureExtractor:()=>B.ASTFeatureExtractor,ASTForAudioClassification:()=>n.ASTForAudioClassification,ASTModel:()=>n.ASTModel,ASTPreTrainedModel:()=>n.ASTPreTrainedModel,AlbertForMaskedLM:()=>n.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>n.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>n.AlbertForSequenceClassification,AlbertModel:()=>n.AlbertModel,AlbertPreTrainedModel:()=>n.AlbertPreTrainedModel,AlbertTokenizer:()=>g.AlbertTokenizer,ArceeForCausalLM:()=>n.ArceeForCausalLM,ArceeModel:()=>n.ArceeModel,ArceePreTrainedModel:()=>n.ArceePreTrainedModel,AudioClassificationPipeline:()=>i.AudioClassificationPipeline,AutoConfig:()=>p.AutoConfig,AutoFeatureExtractor:()=>v.AutoFeatureExtractor,AutoImageProcessor:()=>R.AutoImageProcessor,AutoModel:()=>n.AutoModel,AutoModelForAudioClassification:()=>n.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>n.AutoModelForAudioFrameClassification,AutoModelForAudioTextToText:()=>n.AutoModelForAudioTextToText,AutoModelForCTC:()=>n.AutoModelForCTC,AutoModelForCausalLM:()=>n.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>n.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>n.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>n.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>n.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>n.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>n.AutoModelForImageSegmentation,AutoModelForImageTextToText:()=>n.AutoModelForImageTextToText,AutoModelForImageToImage:()=>n.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>n.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>n.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>n.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>n.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>n.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>n.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>n.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>n.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>n.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>n.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>n.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>n.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>n.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>n.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>n.AutoModelForVision2Seq,AutoModelForXVector:()=>n.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>n.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>L.AutoProcessor,AutoTokenizer:()=>g.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>i.AutomaticSpeechRecognitionPipeline,BackgroundRemovalPipeline:()=>i.BackgroundRemovalPipeline,BartForConditionalGeneration:()=>n.BartForConditionalGeneration,BartForSequenceClassification:()=>n.BartForSequenceClassification,BartModel:()=>n.BartModel,BartPretrainedModel:()=>n.BartPretrainedModel,BartTokenizer:()=>g.BartTokenizer,BaseModelOutput:()=>n.BaseModelOutput,BaseStreamer:()=>K.BaseStreamer,BeitFeatureExtractor:()=>F.BeitFeatureExtractor,BeitForImageClassification:()=>
2896n.BeitForImageClassification,BeitModel:()=>n.BeitModel,BeitPreTrainedModel:()=>n.BeitPreTrainedModel,BertForMaskedLM:()=>n.BertForMaskedLM,BertForQuestionAnswering:()=>n.BertForQuestionAnswering,BertForSequenceClassification:()=>n.BertForSequenceClassification,BertForTokenClassification:()=>n.BertForTokenClassification,BertModel:()=>n.BertModel,BertPreTrainedModel:()=>n.BertPreTrainedModel,BertTokenizer:()=>g.BertTokenizer,BitImageProcessor:()=>F.BitImageProcessor,BlenderbotForConditionalGeneration:()=>n.BlenderbotForConditionalGeneration,BlenderbotModel:()=>n.BlenderbotModel,BlenderbotPreTrainedModel:()=>n.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>n.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>n.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>n.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>g.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>g.BlenderbotTokenizer,BloomForCausalLM:()=>n.BloomForCausalLM,BloomModel:()=>n.BloomModel,BloomPreTrainedModel:()=>n.BloomPreTrainedModel,BloomTokenizer:()=>g.BloomTokenizer,CLIPFeatureExtractor:()=>F.CLIPFeatureExtractor,CLIPImageProcessor:()=>F.CLIPImageProcessor,CLIPModel:()=>n.CLIPModel,CLIPPreTrainedModel:()=>n.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>n.CLIPSegForImageSegmentation,CLIPSegModel:()=>n.CLIPSegModel,CLIPSegPreTrainedModel:()=>n.CLIPSegPreTrainedModel,CLIPTextModel:()=>n.CLIPTextModel,CLIPTextModelWithProjection:()=>n.CLIPTextModelWithProjection,CLIPTokenizer:()=>g.CLIPTokenizer,CLIPVisionModel:()=>n.CLIPVisionModel,CLIPVisionModelWithProjection:()=>n.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>n.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>n.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>n.CamembertForSequenceClassification,CamembertForTokenClassification:()=>n.CamembertForTokenClassification,CamembertModel:()=>n.CamembertModel,CamembertPreTrainedModel:()=>n.CamembertPreTrainedModel,CamembertTokenizer:()=>g.CamembertTokenizer,CausalLMOutput:()=>n.CausalLMOutput,CausalLMOutputWithPast:()=>n.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>F.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>n.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>n.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>n.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>B.ClapFeatureExtractor,ClapModel:()=>n.ClapModel,ClapPreTrainedModel:()=>n.ClapPreTrainedModel,ClapTextModelWithProjection:()=>n.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>w.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>n.CodeGenForCausalLM,CodeGenModel:()=>n.CodeGenModel,CodeGenPreTrainedModel:()=>n.CodeGenPreTrainedModel,CodeGenTokenizer:()=>g.CodeGenTokenizer,CodeLlamaTokenizer:()=>g.CodeLlamaTokenizer,CohereForCausalLM:()=>n.CohereForCausalLM,CohereModel:()=>n.CohereModel,CoherePreTrainedModel:()=>n.CoherePreTrainedModel,CohereTokenizer:()=>g.CohereTokenizer,ConvBertForMaskedLM:()=>n.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>n.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>n.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>n.ConvBertForTokenClassification,ConvBertModel:()=>n.ConvBertModel,ConvBertPreTrainedModel:()=>n.ConvBertPreTrainedModel,ConvBertTokenizer:()=>g.ConvBertTokenizer,ConvNextFeatureExtractor:()=>F.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>n.ConvNextForImageClassification,ConvNextImageProcessor:()=>F.ConvNextImageProcessor,ConvNextModel:()=>n.ConvNextModel,ConvNextPreTrainedModel:()=>n.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>n.ConvNextV2ForImageClassification,ConvNextV2Model:()=>n.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>n.ConvNextV2PreTrainedModel,DFineForObjectDetection:()=>n.DFineForObjectDetection,DFineModel:()=>n.DFineModel,DFinePreTrainedModel:()=>n.DFinePreTrainedModel,DINOv3ConvNextModel:()=>n.DINOv3ConvNextModel,DINOv3ConvNextPreTrainedModel:()=>n.DINOv3ConvNextPreTrainedModel,DINOv3ViTImageProcessor:()=>F.DINOv3ViTImageProcessor,DINOv3ViTModel:()=>n.DINOv3ViTModel,DINOv3ViTPreTrainedModel:()=>n.DINOv3ViTPreTrainedModel,DPTFeatureExtractor:()=>F.DPTFeatureExtractor,DPTForDepthEstimation:()=>n.DPTForDepthEstimation,DPTImageProcessor:()=>F.DPTImageProcessor,DPTModel:()=>n.DPTModel,DPTPreTrainedModel:()=>n.DPTPreTrainedModel,DacDecoderModel:()=>n.DacDecoderModel,DacDecoderOutput:()=>n.DacDecoderOutput,DacEncoderModel:()=>n.DacEncoderModel,DacEncoderOutput:()=>n.DacEncoderOutput,DacFeatureExtractor:()=>B.DacFeatureExtractor,DacModel:()=>n.DacModel,DacPreTrainedModel:()=>n.DacPreTrainedModel,DataTypeMap:()=>M.DataTypeMap,DebertaForMaskedLM:()=>n.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>n.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>n.DebertaForSequenceClassification,DebertaForTokenClassification:()=>n.DebertaForTokenClassification,DebertaModel:()=>n.DebertaModel,DebertaPreTrainedModel:()=>n.DebertaPreTrainedModel,DebertaTokenizer:()=>g.DebertaTokenizer,DebertaV2ForMaskedLM:()=>n.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>n.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>n.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>n.DebertaV2ForTokenClassification,DebertaV2Model:()=>n.DebertaV2Model,DebertaV2PreTrainedModel:()=>n.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>g.DebertaV2Tokenizer,DecisionTransformerModel:()=>n.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>n.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>F.DeiTFeatureExtractor,DeiTForImageClassification:()=>n.DeiTForImageClassification,DeiTImageProcessor:()=>F.DeiTImageProcessor,DeiTModel:()=>n.DeiTModel,DeiTPreTrainedModel:()=>n.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>n.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>n.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>i.DepthEstimationPipeline,DepthProForDepthEstimation:()=>n.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>n.DepthProPreTrainedModel,DetrFeatureExtractor:()=>F.DetrFeatureExtractor,DetrForObjectDetection:()=>n.DetrForObjectDetection,DetrForSegmentation:()=>n.DetrForSegmentation,DetrImageProcessor:()=>F.DetrImageProcessor,DetrModel:()=>n.DetrModel,DetrObjectDetectionOutput:()=>n.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>n.DetrPreTrainedModel,DetrSegmentationOutput:()=>n.DetrSegmentationOutput,Dinov2ForImageClassification:()=>n.Dinov2ForImageClassification,Dinov2Model:()=>n.Dinov2Model,Dinov2PreTrainedModel:()=>n.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>n.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>n.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>n.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>n.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>n.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>n.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>n.DistilBertForTokenClassification,DistilBertModel:()=>n.DistilBertModel,DistilBertPreTrainedModel:()=>n.DistilBertPreTrainedModel,DistilBertTokenizer:()=>g.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>i.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>F.DonutFeatureExtractor,DonutImageProcessor:()=>F.DonutImageProcessor,DonutSwinModel:()=>n.DonutSwinModel,DonutSwinPreTrainedModel:()=>n.DonutSwinPreTrainedModel,EdgeTamModel:()=>n.EdgeTamModel,EfficientNetForImageClassification:()=>n.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>F.EfficientNetImageProcessor,EfficientNetModel:()=>n.EfficientNetModel,EfficientNetPreTrainedModel:()=>
2896n.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>n.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>n.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>n.ElectraForSequenceClassification,ElectraForTokenClassification:()=>n.ElectraForTokenClassification,ElectraModel:()=>n.ElectraModel,ElectraPreTrainedModel:()=>n.ElectraPreTrainedModel,ElectraTokenizer:()=>g.ElectraTokenizer,EncodecFeatureExtractor:()=>B.EncodecFeatureExtractor,EosTokenCriteria:()=>d.EosTokenCriteria,Ernie4_5ForCausalLM:()=>n.Ernie4_5ForCausalLM,Ernie4_5Model:()=>n.Ernie4_5Model,Ernie4_5PreTrainedModel:()=>n.Ernie4_5PreTrainedModel,EsmForMaskedLM:()=>n.EsmForMaskedLM,EsmForSequenceClassification:()=>n.EsmForSequenceClassification,EsmForTokenClassification:()=>n.EsmForTokenClassification,EsmModel:()=>n.EsmModel,EsmPreTrainedModel:()=>n.EsmPreTrainedModel,EsmTokenizer:()=>g.EsmTokenizer,ExaoneForCausalLM:()=>n.ExaoneForCausalLM,ExaoneModel:()=>n.ExaoneModel,ExaonePreTrainedModel:()=>n.ExaonePreTrainedModel,FFT:()=>E.FFT,FalconForCausalLM:()=>n.FalconForCausalLM,FalconModel:()=>n.FalconModel,FalconPreTrainedModel:()=>n.FalconPreTrainedModel,FalconTokenizer:()=>g.FalconTokenizer,FastViTForImageClassification:()=>n.FastViTForImageClassification,FastViTModel:()=>n.FastViTModel,FastViTPreTrainedModel:()=>n.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>i.FeatureExtractionPipeline,FeatureExtractor:()=>D.FeatureExtractor,FillMaskPipeline:()=>i.FillMaskPipeline,Florence2ForConditionalGeneration:()=>n.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>n.Florence2PreTrainedModel,Florence2Processor:()=>z.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>w.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>w.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>F.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>n.GLPNForDepthEstimation,GLPNModel:()=>n.GLPNModel,GLPNPreTrainedModel:()=>n.GLPNPreTrainedModel,GPT2LMHeadModel:()=>n.GPT2LMHeadModel,GPT2Model:()=>n.GPT2Model,GPT2PreTrainedModel:()=>n.GPT2PreTrainedModel,GPT2Tokenizer:()=>g.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>n.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>n.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>n.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>n.GPTJForCausalLM,GPTJModel:()=>n.GPTJModel,GPTJPreTrainedModel:()=>n.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>n.GPTNeoForCausalLM,GPTNeoModel:()=>n.GPTNeoModel,GPTNeoPreTrainedModel:()=>n.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>n.GPTNeoXForCausalLM,GPTNeoXModel:()=>n.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>n.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>g.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>n.Gemma2ForCausalLM,Gemma2Model:()=>n.Gemma2Model,Gemma2PreTrainedModel:()=>n.Gemma2PreTrainedModel,Gemma3ForCausalLM:()=>n.Gemma3ForCausalLM,Gemma3Model:()=>n.Gemma3Model,Gemma3PreTrainedModel:()=>n.Gemma3PreTrainedModel,Gemma3nAudioFeatureExtractor:()=>B.Gemma3nAudioFeatureExtractor,Gemma3nForConditionalGeneration:()=>n.Gemma3nForConditionalGeneration,Gemma3nPreTrainedModel:()=>n.Gemma3nPreTrainedModel,Gemma3nProcessor:()=>z.Gemma3nProcessor,GemmaForCausalLM:()=>n.GemmaForCausalLM,GemmaModel:()=>n.GemmaModel,GemmaPreTrainedModel:()=>n.GemmaPreTrainedModel,GemmaTokenizer:()=>g.GemmaTokenizer,GlmForCausalLM:()=>n.GlmForCausalLM,GlmModel:()=>n.GlmModel,GlmPreTrainedModel:()=>n.GlmPreTrainedModel,GraniteForCausalLM:()=>n.GraniteForCausalLM,GraniteModel:()=>n.GraniteModel,GraniteMoeHybridForCausalLM:()=>n.GraniteMoeHybridForCausalLM,GraniteMoeHybridModel:()=>n.GraniteMoeHybridModel,GraniteMoeHybridPreTrainedModel:()=>n.GraniteMoeHybridPreTrainedModel,GranitePreTrainedModel:()=>n.GranitePreTrainedModel,Grok1Tokenizer:()=>g.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>n.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>F.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>n.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>z.GroundingDinoProcessor,GroupViTModel:()=>n.GroupViTModel,GroupViTPreTrainedModel:()=>n.GroupViTPreTrainedModel,HeliumForCausalLM:()=>n.HeliumForCausalLM,HeliumModel:()=>n.HeliumModel,HeliumPreTrainedModel:()=>n.HeliumPreTrainedModel,HerbertTokenizer:()=>g.HerbertTokenizer,HieraForImageClassification:()=>n.HieraForImageClassification,HieraModel:()=>n.HieraModel,HieraPreTrainedModel:()=>n.HieraPreTrainedModel,HubertForCTC:()=>n.HubertForCTC,HubertForSequenceClassification:()=>n.HubertForSequenceClassification,HubertModel:()=>n.HubertModel,HubertPreTrainedModel:()=>n.HubertPreTrainedModel,IJepaForImageClassification:()=>n.IJepaForImageClassification,IJepaModel:()=>n.IJepaModel,IJepaPreTrainedModel:()=>n.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>n.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>F.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>n.Idefics3PreTrainedModel,Idefics3Processor:()=>z.Idefics3Processor,ImageClassificationPipeline:()=>i.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>i.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>B.ImageFeatureExtractor,ImageMattingOutput:()=>n.ImageMattingOutput,ImageProcessor:()=>S.ImageProcessor,ImageSegmentationPipeline:()=>i.ImageSegmentationPipeline,ImageToImagePipeline:()=>i.ImageToImagePipeline,ImageToTextPipeline:()=>i.ImageToTextPipeline,InterruptableStoppingCriteria:()=>d.InterruptableStoppingCriteria,JAISLMHeadModel:()=>n.JAISLMHeadModel,JAISModel:()=>n.JAISModel,JAISPreTrainedModel:()=>n.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>F.JinaCLIPImageProcessor,JinaCLIPModel:()=>n.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>n.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>z.JinaCLIPProcessor,JinaCLIPTextModel:()=>n.JinaCLIPTextModel,JinaCLIPVisionModel:()=>n.JinaCLIPVisionModel,Lfm2ForCausalLM:()=>n.Lfm2ForCausalLM,Lfm2Model:()=>n.Lfm2Model,Lfm2PreTrainedModel:()=>n.Lfm2PreTrainedModel,LiteWhisperForConditionalGeneration:()=>n.LiteWhisperForConditionalGeneration,Llama4ForCausalLM:()=>n.Llama4ForCausalLM,Llama4PreTrainedModel:()=>n.Llama4PreTrainedModel,LlamaForCausalLM:()=>n.LlamaForCausalLM,LlamaModel:()=>n.LlamaModel,LlamaPreTrainedModel:()=>n.LlamaPreTrainedModel,LlamaTokenizer:()=>g.LlamaTokenizer,LlavaForConditionalGeneration:()=>n.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>n.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>F.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>n.LlavaPreTrainedModel,LlavaProcessor:()=>z.LlavaProcessor,LlavaQwen2ForCausalLM:()=>n.LlavaQwen2ForCausalLM,LogitsProcessor:()=>w.LogitsProcessor,LogitsProcessorList:()=>w.LogitsProcessorList,LogitsWarper:()=>w.LogitsWarper,LongT5ForConditionalGeneration:()=>n.LongT5ForConditionalGeneration,LongT5Model:()=>n.LongT5Model,LongT5PreTrainedModel:()=>n.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>n.M2M100ForConditionalGeneration,M2M100Model:()=>n.M2M100Model,M2M100PreTrainedModel:()=>n.M2M100PreTrainedModel,M2M100Tokenizer:()=>g.M2M100Tokenizer,MBart50Tokenizer:()=>g.MBart50Tokenizer,MBartForCausalLM:()=>n.MBartForCausalLM,MBartForConditionalGeneration:()=>n.MBartForConditionalGeneration,MBartForSequenceClassification:()=>n.MBartForSequenceClassification,MBartModel:()=>n.MBartModel,MBartPreTrainedModel:()=>n.MBartPreTrainedModel,MBartTokenizer:()=>g.MBartTokenizer,MPNetForMaskedLM:()=>n.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>n.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>n.MPNetForSequenceClassification,MPNetForTokenClassification:()=>n.MPNetForTokenClassification,MPNetModel:()=>n.MPNetModel,MPNetPreTrainedModel:()=>n.MPNetPreTrainedModel,MPNetTokenizer:()=>
2896g.MPNetTokenizer,MT5ForConditionalGeneration:()=>n.MT5ForConditionalGeneration,MT5Model:()=>n.MT5Model,MT5PreTrainedModel:()=>n.MT5PreTrainedModel,MarianMTModel:()=>n.MarianMTModel,MarianModel:()=>n.MarianModel,MarianPreTrainedModel:()=>n.MarianPreTrainedModel,MarianTokenizer:()=>g.MarianTokenizer,Mask2FormerImageProcessor:()=>F.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>F.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>n.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>F.MaskFormerImageProcessor,MaskFormerModel:()=>n.MaskFormerModel,MaskFormerPreTrainedModel:()=>n.MaskFormerPreTrainedModel,MaskedLMOutput:()=>n.MaskedLMOutput,MaxLengthCriteria:()=>d.MaxLengthCriteria,Metric3DForDepthEstimation:()=>n.Metric3DForDepthEstimation,Metric3DPreTrainedModel:()=>n.Metric3DPreTrainedModel,Metric3Dv2ForDepthEstimation:()=>n.Metric3Dv2ForDepthEstimation,Metric3Dv2PreTrainedModel:()=>n.Metric3Dv2PreTrainedModel,MgpstrForSceneTextRecognition:()=>n.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>n.MgpstrModelOutput,MgpstrPreTrainedModel:()=>n.MgpstrPreTrainedModel,MgpstrProcessor:()=>z.MgpstrProcessor,MgpstrTokenizer:()=>g.MgpstrTokenizer,MimiDecoderModel:()=>n.MimiDecoderModel,MimiDecoderOutput:()=>n.MimiDecoderOutput,MimiEncoderModel:()=>n.MimiEncoderModel,MimiEncoderOutput:()=>n.MimiEncoderOutput,MimiModel:()=>n.MimiModel,MimiPreTrainedModel:()=>n.MimiPreTrainedModel,MinLengthLogitsProcessor:()=>w.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>w.MinNewTokensLengthLogitsProcessor,Ministral3ForCausalLM:()=>n.Ministral3ForCausalLM,Ministral3Model:()=>n.Ministral3Model,Ministral3PreTrainedModel:()=>n.Ministral3PreTrainedModel,MinistralForCausalLM:()=>n.MinistralForCausalLM,MinistralModel:()=>n.MinistralModel,MinistralPreTrainedModel:()=>n.MinistralPreTrainedModel,Mistral3ForConditionalGeneration:()=>n.Mistral3ForConditionalGeneration,MistralForCausalLM:()=>n.MistralForCausalLM,MistralModel:()=>n.MistralModel,MistralPreTrainedModel:()=>n.MistralPreTrainedModel,MobileBertForMaskedLM:()=>n.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>n.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>n.MobileBertForSequenceClassification,MobileBertModel:()=>n.MobileBertModel,MobileBertPreTrainedModel:()=>n.MobileBertPreTrainedModel,MobileBertTokenizer:()=>g.MobileBertTokenizer,MobileLLMForCausalLM:()=>n.MobileLLMForCausalLM,MobileLLMModel:()=>n.MobileLLMModel,MobileLLMPreTrainedModel:()=>n.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>F.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>n.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>n.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>F.MobileNetV1ImageProcessor,MobileNetV1Model:()=>n.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>n.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>F.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>n.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>n.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>F.MobileNetV2ImageProcessor,MobileNetV2Model:()=>n.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>n.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>F.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>n.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>n.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>F.MobileNetV3ImageProcessor,MobileNetV3Model:()=>n.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>n.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>F.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>n.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>n.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>F.MobileNetV4ImageProcessor,MobileNetV4Model:()=>n.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>n.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>F.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>n.MobileViTForImageClassification,MobileViTImageProcessor:()=>F.MobileViTImageProcessor,MobileViTModel:()=>n.MobileViTModel,MobileViTPreTrainedModel:()=>n.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>n.MobileViTV2ForImageClassification,MobileViTV2Model:()=>n.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>n.MobileViTV2PreTrainedModel,ModelOutput:()=>n.ModelOutput,ModernBertDecoderForCausalLM:()=>n.ModernBertDecoderForCausalLM,ModernBertDecoderModel:()=>n.ModernBertDecoderModel,ModernBertDecoderPreTrainedModel:()=>n.ModernBertDecoderPreTrainedModel,ModernBertForMaskedLM:()=>n.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>n.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>n.ModernBertForTokenClassification,ModernBertModel:()=>n.ModernBertModel,ModernBertPreTrainedModel:()=>n.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>n.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>B.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>n.MoonshineForConditionalGeneration,MoonshineModel:()=>n.MoonshineModel,MoonshinePreTrainedModel:()=>n.MoonshinePreTrainedModel,MoonshineProcessor:()=>z.MoonshineProcessor,MptForCausalLM:()=>n.MptForCausalLM,MptModel:()=>n.MptModel,MptPreTrainedModel:()=>
2896n.MptPreTrainedModel,MultiModalityCausalLM:()=>n.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>n.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>n.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>n.MusicgenForConditionalGeneration,MusicgenModel:()=>n.MusicgenModel,MusicgenPreTrainedModel:()=>n.MusicgenPreTrainedModel,NanoChatForCausalLM:()=>n.NanoChatForCausalLM,NanoChatModel:()=>n.NanoChatModel,NanoChatPreTrainedModel:()=>n.NanoChatPreTrainedModel,NeoBertForMaskedLM:()=>n.NeoBertForMaskedLM,NeoBertForQuestionAnswering:()=>n.NeoBertForQuestionAnswering,NeoBertForSequenceClassification:()=>n.NeoBertForSequenceClassification,NeoBertForTokenClassification:()=>n.NeoBertForTokenClassification,NeoBertModel:()=>n.NeoBertModel,NeoBertPreTrainedModel:()=>n.NeoBertPreTrainedModel,NllbTokenizer:()=>g.NllbTokenizer,NoBadWordsLogitsProcessor:()=>w.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>w.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>n.NomicBertModel,NomicBertPreTrainedModel:()=>n.NomicBertPreTrainedModel,NougatImageProcessor:()=>F.NougatImageProcessor,NougatTokenizer:()=>g.NougatTokenizer,OPTForCausalLM:()=>n.OPTForCausalLM,OPTModel:()=>n.OPTModel,OPTPreTrainedModel:()=>n.OPTPreTrainedModel,ObjectDetectionPipeline:()=>i.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>n.Olmo2ForCausalLM,Olmo2Model:()=>n.Olmo2Model,Olmo2PreTrainedModel:()=>n.Olmo2PreTrainedModel,OlmoForCausalLM:()=>n.OlmoForCausalLM,OlmoModel:()=>n.OlmoModel,OlmoPreTrainedModel:()=>n.OlmoPreTrainedModel,OpenELMForCausalLM:()=>n.OpenELMForCausalLM,OpenELMModel:()=>n.OpenELMModel,OpenELMPreTrainedModel:()=>n.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>F.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>n.OwlViTForObjectDetection,OwlViTImageProcessor:()=>F.OwlViTImageProcessor,OwlViTModel:()=>n.OwlViTModel,OwlViTPreTrainedModel:()=>n.OwlViTPreTrainedModel,OwlViTProcessor:()=>z.OwlViTProcessor,Owlv2ForObjectDetection:()=>n.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>F.Owlv2ImageProcessor,Owlv2Model:()=>n.Owlv2Model,Owlv2PreTrainedModel:()=>n.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>n.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>n.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>z.PaliGemmaProcessor,ParakeetFeatureExtractor:()=>B.ParakeetFeatureExtractor,ParakeetForCTC:()=>n.ParakeetForCTC,ParakeetPreTrainedModel:()=>n.ParakeetPreTrainedModel,PatchTSMixerForPrediction:()=>n.PatchTSMixerForPrediction,PatchTSMixerModel:()=>n.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>n.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>n.PatchTSTForPrediction,PatchTSTModel:()=>n.PatchTSTModel,PatchTSTPreTrainedModel:()=>n.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>n.Phi3ForCausalLM,Phi3Model:()=>n.Phi3Model,Phi3PreTrainedModel:()=>n.Phi3PreTrainedModel,Phi3VForCausalLM:()=>n.Phi3VForCausalLM,Phi3VImageProcessor:()=>F.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>n.Phi3VPreTrainedModel,Phi3VProcessor:()=>z.Phi3VProcessor,PhiForCausalLM:()=>n.PhiForCausalLM,PhiModel:()=>n.PhiModel,PhiPreTrainedModel:()=>n.PhiPreTrainedModel,Pipeline:()=>i.Pipeline,PixtralImageProcessor:()=>F.PixtralImageProcessor,PixtralProcessor:()=>z.PixtralProcessor,PreTrainedModel:()=>n.PreTrainedModel,PreTrainedTokenizer:()=>g.PreTrainedTokenizer,PretrainedConfig:()=>p.PretrainedConfig,PretrainedMixin:()=>n.PretrainedMixin,Processor:()=>X.Processor,PvtForImageClassification:()=>n.PvtForImageClassification,PvtImageProcessor:()=>F.PvtImageProcessor,PvtModel:()=>n.PvtModel,PvtPreTrainedModel:()=>n.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>B.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>n.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>n.PyAnnoteModel,PyAnnotePreTrainedModel:()=>n.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>z.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>n.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>i.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>n.Qwen2ForCausalLM,Qwen2Model:()=>n.Qwen2Model,Qwen2PreTrainedModel:()=>n.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>g.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>n.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>F.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>n.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>z.Qwen2VLProcessor,Qwen3ForCausalLM:()=>n.Qwen3ForCausalLM,Qwen3Model:()=>n.Qwen3Model,Qwen3PreTrainedModel:()=>n.Qwen3PreTrainedModel,RFDetrForObjectDetection:()=>n.RFDetrForObjectDetection,RFDetrModel:()=>n.RFDetrModel,RFDetrObjectDetectionOutput:()=>n.RFDetrObjectDetectionOutput,RFDetrPreTrainedModel:()=>n.RFDetrPreTrainedModel,RTDetrForObjectDetection:()=>n.RTDetrForObjectDetection,RTDetrImageProcessor:()=>F.RTDetrImageProcessor,RTDetrModel:()=>n.RTDetrModel,RTDetrObjectDetectionOutput:()=>n.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>
2896n.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>n.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>n.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>n.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>n.RTDetrV2PreTrainedModel,RawAudio:()=>h.RawAudio,RawImage:()=>C.RawImage,RawVideo:()=>k.RawVideo,RawVideoFrame:()=>k.RawVideoFrame,RepetitionPenaltyLogitsProcessor:()=>w.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>n.ResNetForImageClassification,ResNetModel:()=>n.ResNetModel,ResNetPreTrainedModel:()=>n.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>n.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>n.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>n.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>n.RoFormerForTokenClassification,RoFormerModel:()=>n.RoFormerModel,RoFormerPreTrainedModel:()=>n.RoFormerPreTrainedModel,RoFormerTokenizer:()=>g.RoFormerTokenizer,RobertaForMaskedLM:()=>n.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>n.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>n.RobertaForSequenceClassification,RobertaForTokenClassification:()=>n.RobertaForTokenClassification,RobertaModel:()=>n.RobertaModel,RobertaPreTrainedModel:()=>n.RobertaPreTrainedModel,RobertaTokenizer:()=>g.RobertaTokenizer,Sam2ImageProcessor:()=>F.Sam2ImageProcessor,Sam2ImageSegmentationOutput:()=>n.Sam2ImageSegmentationOutput,Sam2Model:()=>n.Sam2Model,Sam2PreTrainedModel:()=>n.Sam2PreTrainedModel,Sam2Processor:()=>z.Sam2Processor,Sam2VideoProcessor:()=>z.Sam2VideoProcessor,Sam3ImageProcessor:()=>F.Sam3ImageProcessor,Sam3TrackerModel:()=>n.Sam3TrackerModel,SamImageProcessor:()=>F.SamImageProcessor,SamImageSegmentationOutput:()=>n.SamImageSegmentationOutput,SamModel:()=>n.SamModel,SamPreTrainedModel:()=>n.SamPreTrainedModel,SamProcessor:()=>z.SamProcessor,SapiensForDepthEstimation:()=>n.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>n.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>n.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>n.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>B.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>F.SegformerFeatureExtractor,SegformerForImageClassification:()=>n.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>n.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>F.SegformerImageProcessor,SegformerModel:()=>n.SegformerModel,SegformerPreTrainedModel:()=>n.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>n.Seq2SeqLMOutput,SequenceClassifierOutput:()=>n.SequenceClassifierOutput,SiglipImageProcessor:()=>F.SiglipImageProcessor,SiglipModel:()=>n.SiglipModel,SiglipPreTrainedModel:()=>n.SiglipPreTrainedModel,SiglipTextModel:()=>n.SiglipTextModel,SiglipTokenizer:()=>g.SiglipTokenizer,SiglipVisionModel:()=>n.SiglipVisionModel,SmolLM3ForCausalLM:()=>n.SmolLM3ForCausalLM,SmolLM3Model:()=>n.SmolLM3Model,SmolLM3PreTrainedModel:()=>n.SmolLM3PreTrainedModel,SmolVLMForConditionalGeneration:()=>n.SmolVLMForConditionalGeneration,SmolVLMImageProcessor:()=>F.SmolVLMImageProcessor,SmolVLMProcessor:()=>z.SmolVLMProcessor,SnacDecoderModel:()=>n.SnacDecoderModel,SnacEncoderModel:()=>n.SnacEncoderModel,SnacFeatureExtractor:()=>B.SnacFeatureExtractor,SnacModel:()=>n.SnacModel,SnacPreTrainedModel:()=>n.SnacPreTrainedModel,SpeechT5FeatureExtractor:()=>B.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>n.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>n.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>n.SpeechT5HifiGan,SpeechT5Model:()=>n.SpeechT5Model,SpeechT5PreTrainedModel:()=>n.SpeechT5PreTrainedModel,SpeechT5Processor:()=>z.SpeechT5Processor,SpeechT5Tokenizer:()=>g.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>n.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>n.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>n.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>n.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>n.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>g.SqueezeBertTokenizer,StableLmForCausalLM:()=>n.StableLmForCausalLM,StableLmModel:()=>n.StableLmModel,StableLmPreTrainedModel:()=>
2896n.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>n.Starcoder2ForCausalLM,Starcoder2Model:()=>n.Starcoder2Model,Starcoder2PreTrainedModel:()=>n.Starcoder2PreTrainedModel,StoppingCriteria:()=>d.StoppingCriteria,StoppingCriteriaList:()=>d.StoppingCriteriaList,StyleTextToSpeech2Model:()=>n.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>n.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>i.SummarizationPipeline,SupertonicForConditionalGeneration:()=>n.SupertonicForConditionalGeneration,SupertonicPreTrainedModel:()=>n.SupertonicPreTrainedModel,SuppressTokensAtBeginLogitsProcessor:()=>w.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>n.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>F.Swin2SRImageProcessor,Swin2SRModel:()=>n.Swin2SRModel,Swin2SRPreTrainedModel:()=>n.Swin2SRPreTrainedModel,SwinForImageClassification:()=>n.SwinForImageClassification,SwinForSemanticSegmentation:()=>n.SwinForSemanticSegmentation,SwinModel:()=>n.SwinModel,SwinPreTrainedModel:()=>n.SwinPreTrainedModel,T5ForConditionalGeneration:()=>n.T5ForConditionalGeneration,T5Model:()=>n.T5Model,T5PreTrainedModel:()=>n.T5PreTrainedModel,T5Tokenizer:()=>g.T5Tokenizer,TableTransformerForObjectDetection:()=>n.TableTransformerForObjectDetection,TableTransformerModel:()=>n.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>n.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>n.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>w.TemperatureLogitsWarper,Tensor:()=>M.Tensor,Text2TextGenerationPipeline:()=>i.Text2TextGenerationPipeline,TextClassificationPipeline:()=>i.TextClassificationPipeline,TextGenerationPipeline:()=>i.TextGenerationPipeline,TextStreamer:()=>K.TextStreamer,TextToAudioPipeline:()=>i.TextToAudioPipeline,TokenClassificationPipeline:()=>i.TokenClassificationPipeline,TokenClassifierOutput:()=>n.TokenClassifierOutput,TokenizerModel:()=>g.TokenizerModel,TopKLogitsWarper:()=>w.TopKLogitsWarper,TopPLogitsWarper:()=>w.TopPLogitsWarper,TrOCRForCausalLM:()=>n.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>n.TrOCRPreTrainedModel,TranslationPipeline:()=>i.TranslationPipeline,UltravoxModel:()=>n.UltravoxModel,UltravoxPreTrainedModel:()=>n.UltravoxPreTrainedModel,UltravoxProcessor:()=>z.UltravoxProcessor,UniSpeechForCTC:()=>n.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>n.UniSpeechForSequenceClassification,UniSpeechModel:()=>n.UniSpeechModel,UniSpeechPreTrainedModel:()=>n.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>n.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>n.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>n.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>n.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>n.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>z.VLChatProcessor,VLMImageProcessor:()=>F.VLMImageProcessor,VaultGemmaForCausalLM:()=>n.VaultGemmaForCausalLM,VaultGemmaModel:()=>n.VaultGemmaModel,VaultGemmaPreTrainedModel:()=>n.VaultGemmaPreTrainedModel,ViTFeatureExtractor:()=>F.ViTFeatureExtractor,ViTForImageClassification:()=>n.ViTForImageClassification,ViTImageProcessor:()=>F.ViTImageProcessor,ViTMAEModel:()=>n.ViTMAEModel,ViTMAEPreTrainedModel:()=>n.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>n.ViTMSNForImageClassification,ViTMSNModel:()=>n.ViTMSNModel,ViTMSNPreTrainedModel:()=>n.ViTMSNPreTrainedModel,ViTModel:()=>n.ViTModel,ViTPreTrainedModel:()=>n.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>n.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>n.VitMatteForImageMatting,VitMatteImageProcessor:()=>F.VitMatteImageProcessor,VitMattePreTrainedModel:()=>n.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>n.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>F.VitPoseImageProcessor,VitPosePreTrainedModel:()=>n.VitPosePreTrainedModel,VitsModel:()=>n.VitsModel,VitsModelOutput:()=>n.VitsModelOutput,VitsPreTrainedModel:()=>n.VitsPreTrainedModel,VitsTokenizer:()=>g.VitsTokenizer,VoxtralForConditionalGeneration:()=>n.VoxtralForConditionalGeneration,VoxtralProcessor:()=>z.VoxtralProcessor,Wav2Vec2BertForCTC:()=>n.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>n.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>n.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>n.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>g.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>B.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>n.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>n.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>n.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>n.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>n.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>z.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>z.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>n.WavLMForAudioFrameClassification,WavLMForCTC:()=>n.WavLMForCTC,WavLMForSequenceClassification:()=>n.WavLMForSequenceClassification,WavLMForXVector:()=>n.WavLMForXVector,WavLMModel:()=>n.WavLMModel,WavLMPreTrainedModel:()=>n.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>B.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>n.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>n.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>B.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>n.WhisperForConditionalGeneration,WhisperModel:()=>n.WhisperModel,WhisperPreTrainedModel:()=>n.WhisperPreTrainedModel,WhisperProcessor:()=>z.WhisperProcessor,WhisperTextStreamer:()=>K.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>w.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>g.WhisperTokenizer,XLMForQuestionAnswering:()=>n.XLMForQuestionAnswering,XLMForSequenceClassification:()=>n.XLMForSequenceClassification,XLMForTokenClassification:()=>n.XLMForTokenClassification,XLMModel:()=>n.XLMModel,XLMPreTrainedModel:()=>n.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>
2896n.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>n.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>n.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>n.XLMRobertaForTokenClassification,XLMRobertaModel:()=>n.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>n.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>g.XLMRobertaTokenizer,XLMTokenizer:()=>g.XLMTokenizer,XLMWithLMHeadModel:()=>n.XLMWithLMHeadModel,XVectorOutput:()=>n.XVectorOutput,YolosFeatureExtractor:()=>F.YolosFeatureExtractor,YolosForObjectDetection:()=>n.YolosForObjectDetection,YolosImageProcessor:()=>F.YolosImageProcessor,YolosModel:()=>n.YolosModel,YolosObjectDetectionOutput:()=>n.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>n.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>i.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>i.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>i.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>i.ZeroShotObjectDetectionPipeline,bankers_round:()=>E.bankers_round,cat:()=>M.cat,cos_sim:()=>E.cos_sim,dot:()=>E.dot,dynamic_time_warping:()=>E.dynamic_time_warping,env:()=>a.env,full:()=>M.full,full_like:()=>M.full_like,getCacheShapes:()=>p.getCacheShapes,hamming:()=>h.hamming,hanning:()=>h.hanning,interpolate:()=>M.interpolate,interpolate_4d:()=>M.interpolate_4d,interpolate_data:()=>E.interpolate_data,is_chinese_char:()=>g.is_chinese_char,layer_norm:()=>M.layer_norm,load_image:()=>C.load_image,load_video:()=>k.load_video,log_softmax:()=>E.log_softmax,magnitude:()=>E.magnitude,matmul:()=>M.matmul,max:()=>E.max,mean:()=>M.mean,mean_pooling:()=>M.mean_pooling,medianFilter:()=>E.medianFilter,mel_filter_bank:()=>h.mel_filter_bank,min:()=>E.min,ones:()=>M.ones,ones_like:()=>M.ones_like,permute:()=>M.permute,permute_data:()=>E.permute_data,pipeline:()=>i.pipeline,quantize_embeddings:()=>M.quantize_embeddings,rand:()=>M.rand,randn:()=>M.randn,read_audio:()=>h.read_audio,rfft:()=>M.rfft,round:()=>E.round,slice:()=>M.slice,softmax:()=>E.softmax,spectrogram:()=>h.spectrogram,stack:()=>M.stack,std_mean:()=>M.std_mean,topk:()=>M.topk,window_function:()=>h.window_function,zeros:()=>M.zeros,zeros_like:()=>M.zeros_like});var a=qt("./src/env.js"),i=qt("./src/pipelines.js"),n=qt("./src/models.js"),g=qt("./src/tokenizers.js"),p=qt("./src/configs.js"),h=qt("./src/utils/audio.js"),C=qt("./src/utils/image.js"),k=qt("./src/utils/video.js"),M=qt("./src/utils/tensor.js"),E=qt("./src/utils/maths.js"),D=qt("./src/base/feature_extraction_utils.js"),B=qt("./src/models/feature_extractors.js"),v=qt("./src/models/auto/feature_extraction_auto.js"),S=qt("./src/base/image_processors_utils.js"),F=qt("./src/models/image_processors.js"),R=qt("./src/models/auto/image_processing_auto.js"),X=qt("./src/base/processing_utils.js"),z=qt("./src/models/processors.js"),L=qt("./src/models/auto/processing_auto.js"),K=qt("./src/generation/streamers.js"),d=qt("./src/generation/stopping_criteria.js"),w=qt("./src/generation/logits_process.js")})();Q.ASTFeatureExtractor;Q.ASTForAudioClassification;Q.ASTModel;Q.ASTPreTrainedModel;Q.AlbertForMaskedLM;Q.AlbertForQuestionAnswering;Q.AlbertForSequenceClassification;Q.AlbertModel;Q.AlbertPreTrainedModel;Q.AlbertTokenizer;Q.ArceeForCausalLM;Q.ArceeModel;Q.ArceePreTrainedModel;Q.AudioClassificationPipeline;Q.AutoConfig;Q.AutoFeatureExtractor;Q.AutoImageProcessor;Q.AutoModel;Q.AutoModelForAudioClassification;Q.AutoModelForAudioFrameClassification;Q.AutoModelForAudioTextToText;Q.AutoModelForCTC;Q.AutoModelForCausalLM;Q.AutoModelForDepthEstimation;Q.AutoModelForDocumentQuestionAnswering;Q.AutoModelForImageClassification;Q.AutoModelForImageFeatureExtraction;Q.AutoModelForImageMatting;Q.AutoModelForImageSegmentation;Q.AutoModelForImageTextToText;Q.AutoModelForImageToImage;Q.AutoModelForMaskGeneration;Q.AutoModelForMaskedLM;Q.AutoModelForNormalEstimation;Q.AutoModelForObjectDetection;Q.AutoModelForPoseEstimation;Q.AutoModelForQuestionAnswering;Q.AutoModelForSemanticSegmentation;Q.AutoModelForSeq2SeqLM;Q.AutoModelForSequenceClassification;Q.AutoModelForSpeechSeq2Seq;Q.AutoModelForTextToSpectrogram;Q.AutoModelForTextToWaveform;Q.AutoModelForTokenClassification;Q.AutoModelForUniversalSegmentation;Q.AutoModelForVision2Seq;Q.AutoModelForXVector;Q.AutoModelForZeroShotObjectDetection;Q.AutoProcessor;var f5=Q.AutoTokenizer;Q.AutomaticSpeechRecognitionPipeline;
2896Q.BackgroundRemovalPipeline;Q.BartForConditionalGeneration;Q.BartForSequenceClassification;Q.BartModel;Q.BartPretrainedModel;Q.BartTokenizer;Q.BaseModelOutput;Q.BaseStreamer;Q.BeitFeatureExtractor;Q.BeitForImageClassification;Q.BeitModel;Q.BeitPreTrainedModel;Q.BertForMaskedLM;Q.BertForQuestionAnswering;Q.BertForSequenceClassification;Q.BertForTokenClassification;Q.BertModel;Q.BertPreTrainedModel;Q.BertTokenizer;Q.BitImageProcessor;Q.BlenderbotForConditionalGeneration;Q.BlenderbotModel;Q.BlenderbotPreTrainedModel;Q.BlenderbotSmallForConditionalGeneration;Q.BlenderbotSmallModel;Q.BlenderbotSmallPreTrainedModel;Q.BlenderbotSmallTokenizer;Q.BlenderbotTokenizer;Q.BloomForCausalLM;Q.BloomModel;Q.BloomPreTrainedModel;Q.BloomTokenizer;Q.CLIPFeatureExtractor;Q.CLIPImageProcessor;Q.CLIPModel;Q.CLIPPreTrainedModel;Q.CLIPSegForImageSegmentation;Q.CLIPSegModel;Q.CLIPSegPreTrainedModel;Q.CLIPTextModel;Q.CLIPTextModelWithProjection;Q.CLIPTokenizer;Q.CLIPVisionModel;Q.CLIPVisionModelWithProjection;Q.CamembertForMaskedLM;Q.CamembertForQuestionAnswering;Q.CamembertForSequenceClassification;Q.CamembertForTokenClassification;Q.CamembertModel;Q.CamembertPreTrainedModel;Q.CamembertTokenizer;Q.CausalLMOutput;Q.CausalLMOutputWithPast;Q.ChineseCLIPFeatureExtractor;Q.ChineseCLIPModel;Q.ChineseCLIPPreTrainedModel;Q.ClapAudioModelWithProjection;Q.ClapFeatureExtractor;Q.ClapModel;Q.ClapPreTrainedModel;Q.ClapTextModelWithProjection;Q.ClassifierFreeGuidanceLogitsProcessor;Q.CodeGenForCausalLM;Q.CodeGenModel;Q.CodeGenPreTrainedModel;Q.CodeGenTokenizer;Q.CodeLlamaTokenizer;Q.CohereForCausalLM;Q.CohereModel;Q.CoherePreTrainedModel;Q.CohereTokenizer;Q.ConvBertForMaskedLM;Q.ConvBertForQuestionAnswering;Q.ConvBertForSequenceClassification;Q.ConvBertForTokenClassification;Q.ConvBertModel;Q.ConvBertPreTrainedModel;Q.ConvBertTokenizer;Q.ConvNextFeatureExtractor;Q.ConvNextForImageClassification;Q.ConvNextImageProcessor;Q.ConvNextModel;Q.ConvNextPreTrainedModel;Q.ConvNextV2ForImageClassification;Q.ConvNextV2Model;Q.ConvNextV2PreTrainedModel;Q.DFineForObjectDetection;Q.DFineModel;Q.DFinePreTrainedModel;Q.DINOv3ConvNextModel;Q.DINOv3ConvNextPreTrainedModel;Q.DINOv3ViTImageProcessor;Q.DINOv3ViTModel;Q.DINOv3ViTPreTrainedModel;Q.DPTFeatureExtractor;Q.DPTForDepthEstimation;Q.DPTImageProcessor;Q.DPTModel;Q.DPTPreTrainedModel;Q.DacDecoderModel;Q.DacDecoderOutput;Q.DacEncoderModel;Q.DacEncoderOutput;Q.DacFeatureExtractor;Q.DacModel;Q.DacPreTrainedModel;Q.DataTypeMap;Q.DebertaForMaskedLM;Q.DebertaForQuestionAnswering;Q.DebertaForSequenceClassification;Q.DebertaForTokenClassification;Q.DebertaModel;Q.DebertaPreTrainedModel;Q.DebertaTokenizer;Q.DebertaV2ForMaskedLM;Q.DebertaV2ForQuestionAnswering;Q.DebertaV2ForSequenceClassification;Q.DebertaV2ForTokenClassification;Q.DebertaV2Model;Q.DebertaV2PreTrainedModel;Q.DebertaV2Tokenizer;Q.DecisionTransformerModel;Q.DecisionTransformerPreTrainedModel;Q.DeiTFeatureExtractor;Q.DeiTForImageClassification;Q.DeiTImageProcessor;Q.DeiTModel;Q.DeiTPreTrainedModel;Q.DepthAnythingForDepthEstimation;Q.DepthAnythingPreTrainedModel;Q.DepthEstimationPipeline;Q.DepthProForDepthEstimation;Q.DepthProPreTrainedModel;Q.DetrFeatureExtractor;Q.DetrForObjectDetection;Q.DetrForSegmentation;Q.DetrImageProcessor;Q.DetrModel;Q.DetrObjectDetectionOutput;Q.DetrPreTrainedModel;Q.DetrSegmentationOutput;Q.Dinov2ForImageClassification;Q.Dinov2Model;Q.Dinov2PreTrainedModel;Q.Dinov2WithRegistersForImageClassification;Q.Dinov2WithRegistersModel;Q.Dinov2WithRegistersPreTrainedModel;Q.DistilBertForMaskedLM;Q.DistilBertForQuestionAnswering;Q.DistilBertForSequenceClassification;Q.DistilBertForTokenClassification;Q.DistilBertModel;Q.DistilBertPreTrainedModel;Q.DistilBertTokenizer;Q.DocumentQuestionAnsweringPipeline;Q.DonutFeatureExtractor;Q.DonutImageProcessor;Q.DonutSwinModel;Q.DonutSwinPreTrainedModel;Q.EdgeTamModel;Q.EfficientNetForImageClassification;Q.EfficientNetImageProcessor;Q.EfficientNetModel;Q.EfficientNetPreTrainedModel;Q.ElectraForMaskedLM;Q.ElectraForQuestionAnswering;Q.ElectraForSequenceClassification;Q.ElectraForTokenClassification;Q.ElectraModel;Q.ElectraPreTrainedModel;Q.ElectraTokenizer;Q.EncodecFeatureExtractor;Q.EosTokenCriteria;Q.Ernie4_5ForCausalLM;Q.Ernie4_5Model;Q.Ernie4_5PreTrainedModel;Q.EsmForMaskedLM;Q.EsmForSequenceClassification;Q.EsmForTokenClassification;Q.EsmModel;Q.EsmPreTrainedModel;Q.EsmTokenizer;Q.ExaoneForCausalLM;Q.ExaoneModel;Q.ExaonePreTrainedModel;Q.FFT;Q.FalconForCausalLM;Q.FalconModel;Q.FalconPreTrainedModel;Q.FalconTokenizer;Q.FastViTForImageClassification;Q.FastViTModel;Q.FastViTPreTrainedModel;Q.FeatureExtractionPipeline;Q.FeatureExtractor;Q.FillMaskPipeline;Q.Florence2ForConditionalGeneration;Q.Florence2PreTrainedModel;Q.Florence2Processor;Q.ForcedBOSTokenLogitsProcessor;Q.ForcedEOSTokenLogitsProcessor;Q.GLPNFeatureExtractor;Q.GLPNForDepthEstimation;Q.GLPNModel;Q.GLPNPreTrainedModel;Q.GPT2LMHeadModel;Q.GPT2Model;Q.GPT2PreTrainedModel;Q.GPT2Tokenizer;Q.GPTBigCodeForCausalLM;Q.GPTBigCodeModel;Q.GPTBigCodePreTrainedModel;Q.GPTJForCausalLM;Q.GPTJModel;Q.GPTJPreTrainedModel;Q.GPTNeoForCausalLM;Q.GPTNeoModel;Q.GPTNeoPreTrainedModel;
2896Q.GPTNeoXForCausalLM;Q.GPTNeoXModel;Q.GPTNeoXPreTrainedModel;Q.GPTNeoXTokenizer;Q.Gemma2ForCausalLM;Q.Gemma2Model;Q.Gemma2PreTrainedModel;Q.Gemma3ForCausalLM;Q.Gemma3Model;Q.Gemma3PreTrainedModel;Q.Gemma3nAudioFeatureExtractor;Q.Gemma3nForConditionalGeneration;Q.Gemma3nPreTrainedModel;Q.Gemma3nProcessor;Q.GemmaForCausalLM;Q.GemmaModel;Q.GemmaPreTrainedModel;Q.GemmaTokenizer;Q.GlmForCausalLM;Q.GlmModel;Q.GlmPreTrainedModel;Q.GraniteForCausalLM;Q.GraniteModel;Q.GraniteMoeHybridForCausalLM;Q.GraniteMoeHybridModel;Q.GraniteMoeHybridPreTrainedModel;Q.GranitePreTrainedModel;Q.Grok1Tokenizer;Q.GroundingDinoForObjectDetection;Q.GroundingDinoImageProcessor;Q.GroundingDinoPreTrainedModel;Q.GroundingDinoProcessor;Q.GroupViTModel;Q.GroupViTPreTrainedModel;Q.HeliumForCausalLM;Q.HeliumModel;Q.HeliumPreTrainedModel;Q.HerbertTokenizer;Q.HieraForImageClassification;Q.HieraModel;Q.HieraPreTrainedModel;Q.HubertForCTC;Q.HubertForSequenceClassification;Q.HubertModel;Q.HubertPreTrainedModel;Q.IJepaForImageClassification;Q.IJepaModel;Q.IJepaPreTrainedModel;Q.Idefics3ForConditionalGeneration;Q.Idefics3ImageProcessor;Q.Idefics3PreTrainedModel;Q.Idefics3Processor;Q.ImageClassificationPipeline;Q.ImageFeatureExtractionPipeline;Q.ImageFeatureExtractor;Q.ImageMattingOutput;Q.ImageProcessor;Q.ImageSegmentationPipeline;Q.ImageToImagePipeline;Q.ImageToTextPipeline;Q.InterruptableStoppingCriteria;Q.JAISLMHeadModel;Q.JAISModel;Q.JAISPreTrainedModel;Q.JinaCLIPImageProcessor;Q.JinaCLIPModel;Q.JinaCLIPPreTrainedModel;Q.JinaCLIPProcessor;Q.JinaCLIPTextModel;Q.JinaCLIPVisionModel;Q.Lfm2ForCausalLM;Q.Lfm2Model;Q.Lfm2PreTrainedModel;Q.LiteWhisperForConditionalGeneration;Q.Llama4ForCausalLM;Q.Llama4PreTrainedModel;Q.LlamaForCausalLM;Q.LlamaModel;Q.LlamaPreTrainedModel;Q.LlamaTokenizer;Q.LlavaForConditionalGeneration;Q.LlavaOnevisionForConditionalGeneration;Q.LlavaOnevisionImageProcessor;Q.LlavaPreTrainedModel;Q.LlavaProcessor;Q.LlavaQwen2ForCausalLM;Q.LogitsProcessor;Q.LogitsProcessorList;Q.LogitsWarper;Q.LongT5ForConditionalGeneration;Q.LongT5Model;Q.LongT5PreTrainedModel;Q.M2M100ForConditionalGeneration;Q.M2M100Model;Q.M2M100PreTrainedModel;Q.M2M100Tokenizer;Q.MBart50Tokenizer;Q.MBartForCausalLM;Q.MBartForConditionalGeneration;Q.MBartForSequenceClassification;Q.MBartModel;Q.MBartPreTrainedModel;Q.MBartTokenizer;Q.MPNetForMaskedLM;Q.MPNetForQuestionAnswering;Q.MPNetForSequenceClassification;Q.MPNetForTokenClassification;Q.MPNetModel;Q.MPNetPreTrainedModel;Q.MPNetTokenizer;Q.MT5ForConditionalGeneration;Q.MT5Model;Q.MT5PreTrainedModel;Q.MarianMTModel;Q.MarianModel;Q.MarianPreTrainedModel;Q.MarianTokenizer;Q.Mask2FormerImageProcessor;Q.MaskFormerFeatureExtractor;Q.MaskFormerForInstanceSegmentation;Q.MaskFormerImageProcessor;Q.MaskFormerModel;Q.MaskFormerPreTrainedModel;Q.MaskedLMOutput;Q.MaxLengthCriteria;Q.Metric3DForDepthEstimation;Q.Metric3DPreTrainedModel;Q.Metric3Dv2ForDepthEstimation;Q.Metric3Dv2PreTrainedModel;Q.MgpstrForSceneTextRecognition;Q.MgpstrModelOutput;Q.MgpstrPreTrainedModel;Q.MgpstrProcessor;Q.MgpstrTokenizer;Q.MimiDecoderModel;Q.MimiDecoderOutput;Q.MimiEncoderModel;Q.MimiEncoderOutput;Q.MimiModel;Q.MimiPreTrainedModel;Q.MinLengthLogitsProcessor;Q.MinNewTokensLengthLogitsProcessor;Q.Ministral3ForCausalLM;Q.Ministral3Model;Q.Ministral3PreTrainedModel;Q.MinistralForCausalLM;Q.MinistralModel;Q.MinistralPreTrainedModel;Q.Mistral3ForConditionalGeneration;Q.MistralForCausalLM;Q.MistralModel;Q.MistralPreTrainedModel;Q.MobileBertForMaskedLM;Q.MobileBertForQuestionAnswering;Q.MobileBertForSequenceClassification;Q.MobileBertModel;Q.MobileBertPreTrainedModel;Q.MobileBertTokenizer;Q.MobileLLMForCausalLM;Q.MobileLLMModel;Q.MobileLLMPreTrainedModel;Q.MobileNetV1FeatureExtractor;Q.MobileNetV1ForImageClassification;Q.MobileNetV1ForSemanticSegmentation;Q.MobileNetV1ImageProcessor;Q.MobileNetV1Model;Q.MobileNetV1PreTrainedModel;Q.MobileNetV2FeatureExtractor;Q.MobileNetV2ForImageClassification;Q.MobileNetV2ForSemanticSegmentation;Q.MobileNetV2ImageProcessor;Q.MobileNetV2Model;Q.MobileNetV2PreTrainedModel;Q.MobileNetV3FeatureExtractor;Q.MobileNetV3ForImageClassification;Q.MobileNetV3ForSemanticSegmentation;Q.MobileNetV3ImageProcessor;Q.MobileNetV3Model;Q.MobileNetV3PreTrainedModel;Q.MobileNetV4FeatureExtractor;Q.MobileNetV4ForImageClassification;Q.MobileNetV4ForSemanticSegmentation;Q.MobileNetV4ImageProcessor;Q.MobileNetV4Model;Q.MobileNetV4PreTrainedModel;Q.MobileViTFeatureExtractor;Q.MobileViTForImageClassification;Q.MobileViTImageProcessor;Q.MobileViTModel;Q.MobileViTPreTrainedModel;Q.MobileViTV2ForImageClassification;Q.MobileViTV2Model;Q.MobileViTV2PreTrainedModel;Q.ModelOutput;Q.ModernBertDecoderForCausalLM;Q.ModernBertDecoderModel;Q.ModernBertDecoderPreTrainedModel;Q.ModernBertForMaskedLM;Q.ModernBertForSequenceClassification;Q.ModernBertForTokenClassification;Q.ModernBertModel;Q.ModernBertPreTrainedModel;Q.Moondream1ForConditionalGeneration;Q.MoonshineFeatureExtractor;Q.MoonshineForConditionalGeneration;Q.MoonshineModel;Q.MoonshinePreTrainedModel;Q.MoonshineProcessor;Q.MptForCausalLM;Q.MptModel;Q.MptPreTrainedModel;Q.MultiModalityCausalLM;Q.MultiModalityPreTrainedModel;Q.MusicgenForCausalLM;Q.MusicgenForConditionalGeneration;Q.MusicgenModel;Q.MusicgenPreTrainedModel;Q.NanoChatForCausalLM;Q.NanoChatModel;Q.NanoChatPreTrainedModel;Q.NeoBertForMaskedLM;Q.NeoBertForQuestionAnswering;Q.NeoBertForSequenceClassification;Q.NeoBertForTokenClassification;Q.NeoBertModel;Q.NeoBertPreTrainedModel;Q.NllbTokenizer;Q.NoBadWordsLogitsProcessor;Q.NoRepeatNGramLogitsProcessor;Q.NomicBertModel;Q.NomicBertPreTrainedModel;Q.NougatImageProcessor;Q.NougatTokenizer;Q.OPTForCausalLM;Q.OPTModel;Q.OPTPreTrainedModel;Q.ObjectDetectionPipeline;Q.Olmo2ForCausalLM;Q.Olmo2Model;Q.Olmo2PreTrainedModel;Q.OlmoForCausalLM;Q.OlmoModel;Q.OlmoPreTrainedModel;Q.OpenELMForCausalLM;Q.OpenELMModel;Q.OpenELMPreTrainedModel;
2896Q.OwlViTFeatureExtractor;Q.OwlViTForObjectDetection;Q.OwlViTImageProcessor;Q.OwlViTModel;Q.OwlViTPreTrainedModel;Q.OwlViTProcessor;Q.Owlv2ForObjectDetection;Q.Owlv2ImageProcessor;Q.Owlv2Model;Q.Owlv2PreTrainedModel;Q.PaliGemmaForConditionalGeneration;Q.PaliGemmaPreTrainedModel;Q.PaliGemmaProcessor;Q.ParakeetFeatureExtractor;Q.ParakeetForCTC;Q.ParakeetPreTrainedModel;Q.PatchTSMixerForPrediction;Q.PatchTSMixerModel;Q.PatchTSMixerPreTrainedModel;Q.PatchTSTForPrediction;Q.PatchTSTModel;Q.PatchTSTPreTrainedModel;Q.Phi3ForCausalLM;Q.Phi3Model;Q.Phi3PreTrainedModel;Q.Phi3VForCausalLM;Q.Phi3VImageProcessor;Q.Phi3VPreTrainedModel;Q.Phi3VProcessor;Q.PhiForCausalLM;Q.PhiModel;Q.PhiPreTrainedModel;Q.Pipeline;Q.PixtralImageProcessor;Q.PixtralProcessor;Q.PreTrainedModel;Q.PreTrainedTokenizer;Q.PretrainedConfig;Q.PretrainedMixin;Q.Processor;Q.PvtForImageClassification;Q.PvtImageProcessor;Q.PvtModel;Q.PvtPreTrainedModel;Q.PyAnnoteFeatureExtractor;Q.PyAnnoteForAudioFrameClassification;Q.PyAnnoteModel;Q.PyAnnotePreTrainedModel;Q.PyAnnoteProcessor;Q.QuestionAnsweringModelOutput;Q.QuestionAnsweringPipeline;Q.Qwen2ForCausalLM;Q.Qwen2Model;Q.Qwen2PreTrainedModel;Q.Qwen2Tokenizer;Q.Qwen2VLForConditionalGeneration;Q.Qwen2VLImageProcessor;Q.Qwen2VLPreTrainedModel;Q.Qwen2VLProcessor;Q.Qwen3ForCausalLM;Q.Qwen3Model;Q.Qwen3PreTrainedModel;Q.RFDetrForObjectDetection;Q.RFDetrModel;Q.RFDetrObjectDetectionOutput;Q.RFDetrPreTrainedModel;Q.RTDetrForObjectDetection;Q.RTDetrImageProcessor;Q.RTDetrModel;Q.RTDetrObjectDetectionOutput;Q.RTDetrPreTrainedModel;Q.RTDetrV2ForObjectDetection;Q.RTDetrV2Model;Q.RTDetrV2ObjectDetectionOutput;Q.RTDetrV2PreTrainedModel;var g5=Q.RawAudio;Q.RawImage;Q.RawVideo;Q.RawVideoFrame;Q.RepetitionPenaltyLogitsProcessor;Q.ResNetForImageClassification;Q.ResNetModel;Q.ResNetPreTrainedModel;Q.RoFormerForMaskedLM;Q.RoFormerForQuestionAnswering;Q.RoFormerForSequenceClassification;Q.RoFormerForTokenClassification;Q.RoFormerModel;Q.RoFormerPreTrainedModel;Q.RoFormerTokenizer;Q.RobertaForMaskedLM;Q.RobertaForQuestionAnswering;Q.RobertaForSequenceClassification;Q.RobertaForTokenClassification;Q.RobertaModel;Q.RobertaPreTrainedModel;Q.RobertaTokenizer;Q.Sam2ImageProcessor;Q.Sam2ImageSegmentationOutput;Q.Sam2Model;Q.Sam2PreTrainedModel;Q.Sam2Processor;Q.Sam2VideoProcessor;Q.Sam3ImageProcessor;Q.Sam3TrackerModel;Q.SamImageProcessor;Q.SamImageSegmentationOutput;Q.SamModel;Q.SamPreTrainedModel;Q.SamProcessor;Q.SapiensForDepthEstimation;Q.SapiensForNormalEstimation;Q.SapiensForSemanticSegmentation;Q.SapiensPreTrainedModel;Q.SeamlessM4TFeatureExtractor;Q.SegformerFeatureExtractor;Q.SegformerForImageClassification;Q.SegformerForSemanticSegmentation;Q.SegformerImageProcessor;Q.SegformerModel;Q.SegformerPreTrainedModel;Q.Seq2SeqLMOutput;Q.SequenceClassifierOutput;Q.SiglipImageProcessor;Q.SiglipModel;Q.SiglipPreTrainedModel;Q.SiglipTextModel;Q.SiglipTokenizer;Q.SiglipVisionModel;Q.SmolLM3ForCausalLM;Q.SmolLM3Model;Q.SmolLM3PreTrainedModel;Q.SmolVLMForConditionalGeneration;Q.SmolVLMImageProcessor;Q.SmolVLMProcessor;Q.SnacDecoderModel;Q.SnacEncoderModel;Q.SnacFeatureExtractor;Q.SnacModel;Q.SnacPreTrainedModel;Q.SpeechT5FeatureExtractor;Q.SpeechT5ForSpeechToText;Q.SpeechT5ForTextToSpeech;Q.SpeechT5HifiGan;Q.SpeechT5Model;Q.SpeechT5PreTrainedModel;Q.SpeechT5Processor;Q.SpeechT5Tokenizer;Q.SqueezeBertForMaskedLM;Q.SqueezeBertForQuestionAnswering;Q.SqueezeBertForSequenceClassification;Q.SqueezeBertModel;Q.SqueezeBertPreTrainedModel;Q.SqueezeBertTokenizer;Q.StableLmForCausalLM;Q.StableLmModel;Q.StableLmPreTrainedModel;Q.Starcoder2ForCausalLM;Q.Starcoder2Model;Q.Starcoder2PreTrainedModel;Q.StoppingCriteria;Q.StoppingCriteriaList;var p5=Q.StyleTextToSpeech2Model;Q.StyleTextToSpeech2PreTrainedModel;Q.SummarizationPipeline;Q.SupertonicForConditionalGeneration;Q.SupertonicPreTrainedModel;Q.SuppressTokensAtBeginLogitsProcessor;Q.Swin2SRForImageSuperResolution;Q.Swin2SRImageProcessor;Q.Swin2SRModel;Q.Swin2SRPreTrainedModel;Q.SwinForImageClassification;Q.SwinForSemanticSegmentation;Q.SwinModel;Q.SwinPreTrainedModel;Q.T5ForConditionalGeneration;Q.T5Model;Q.T5PreTrainedModel;Q.T5Tokenizer;Q.TableTransformerForObjectDetection;Q.TableTransformerModel;Q.TableTransformerObjectDetectionOutput;Q.TableTransformerPreTrainedModel;Q.TemperatureLogitsWarper;var Xm=Q.Tensor;Q.Text2TextGenerationPipeline;Q.TextClassificationPipeline;Q.TextGenerationPipeline;Q.TextStreamer;Q.TextToAudioPipeline;Q.TokenClassificationPipeline;Q.TokenClassifierOutput;Q.TokenizerModel;Q.TopKLogitsWarper;Q.TopPLogitsWarper;Q.TrOCRForCausalLM;Q.TrOCRPreTrainedModel;Q.TranslationPipeline;Q.UltravoxModel;Q.UltravoxPreTrainedModel;Q.UltravoxProcessor;Q.UniSpeechForCTC;Q.UniSpeechForSequenceClassification;Q.UniSpeechModel;Q.UniSpeechPreTrainedModel;Q.UniSpeechSatForAudioFrameClassification;Q.UniSpeechSatForCTC;Q.UniSpeechSatForSequenceClassification;Q.UniSpeechSatModel;Q.UniSpeechSatPreTrainedModel;Q.VLChatProcessor;Q.VLMImageProcessor;
2896Q.VaultGemmaForCausalLM;Q.VaultGemmaModel;Q.VaultGemmaPreTrainedModel;Q.ViTFeatureExtractor;Q.ViTForImageClassification;Q.ViTImageProcessor;Q.ViTMAEModel;Q.ViTMAEPreTrainedModel;Q.ViTMSNForImageClassification;Q.ViTMSNModel;Q.ViTMSNPreTrainedModel;Q.ViTModel;Q.ViTPreTrainedModel;Q.VisionEncoderDecoderModel;Q.VitMatteForImageMatting;Q.VitMatteImageProcessor;Q.VitMattePreTrainedModel;Q.VitPoseForPoseEstimation;Q.VitPoseImageProcessor;Q.VitPosePreTrainedModel;Q.VitsModel;Q.VitsModelOutput;Q.VitsPreTrainedModel;Q.VitsTokenizer;Q.VoxtralForConditionalGeneration;Q.VoxtralProcessor;Q.Wav2Vec2BertForCTC;Q.Wav2Vec2BertForSequenceClassification;Q.Wav2Vec2BertModel;Q.Wav2Vec2BertPreTrainedModel;Q.Wav2Vec2CTCTokenizer;Q.Wav2Vec2FeatureExtractor;Q.Wav2Vec2ForAudioFrameClassification;Q.Wav2Vec2ForCTC;Q.Wav2Vec2ForSequenceClassification;Q.Wav2Vec2Model;Q.Wav2Vec2PreTrainedModel;Q.Wav2Vec2Processor;Q.Wav2Vec2ProcessorWithLM;Q.WavLMForAudioFrameClassification;Q.WavLMForCTC;Q.WavLMForSequenceClassification;Q.WavLMForXVector;Q.WavLMModel;Q.WavLMPreTrainedModel;Q.WeSpeakerFeatureExtractor;Q.WeSpeakerResNetModel;Q.WeSpeakerResNetPreTrainedModel;Q.WhisperFeatureExtractor;Q.WhisperForConditionalGeneration;Q.WhisperModel;Q.WhisperPreTrainedModel;Q.WhisperProcessor;Q.WhisperTextStreamer;Q.WhisperTimeStampLogitsProcessor;Q.WhisperTokenizer;Q.XLMForQuestionAnswering;Q.XLMForSequenceClassification;Q.XLMForTokenClassification;Q.XLMModel;Q.XLMPreTrainedModel;Q.XLMRobertaForMaskedLM;Q.XLMRobertaForQuestionAnswering;Q.XLMRobertaForSequenceClassification;Q.XLMRobertaForTokenClassification;Q.XLMRobertaModel;Q.XLMRobertaPreTrainedModel;Q.XLMRobertaTokenizer;Q.XLMTokenizer;Q.XLMWithLMHeadModel;Q.XVectorOutput;Q.YolosFeatureExtractor;Q.YolosForObjectDetection;Q.YolosImageProcessor;Q.YolosModel;Q.YolosObjectDetectionOutput;Q.YolosPreTrainedModel;Q.ZeroShotAudioClassificationPipeline;Q.ZeroShotClassificationPipeline;Q.ZeroShotImageClassificationPipeline;Q.ZeroShotObjectDetectionPipeline;Q.bankers_round;Q.cat;Q.cos_sim;Q.dot;Q.dynamic_time_warping;Q.env;Q.full;Q.full_like;Q.getCacheShapes;Q.hamming;Q.hanning;Q.interpolate;Q.interpolate_4d;Q.interpolate_data;Q.is_chinese_char;Q.layer_norm;Q.load_image;Q.load_video;Q.log_softmax;Q.magnitude;Q.matmul;Q.max;Q.mean;Q.mean_pooling;Q.medianFilter;Q.mel_filter_bank;Q.min;Q.ones;Q.ones_like;Q.permute;Q.permute_data;Q.pipeline;Q.quantize_embeddings;Q.rand;Q.randn;Q.read_audio;Q.rfft;Q.round;Q.slice;Q.softmax;Q.spectrogram;Q.stack;Q.std_mean;Q.topk;Q.window_function;Q.zeros;Q.zeros_like;var oe=oe!==void 0?oe:{};oe.expectedDataFileDownloads||(oe.expectedDataFileDownloads=0);var m5=typeof importScripts=="function",U2=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Zm=typeof atob=="function"?atob:function(a){var i,n,g,p,h,C,k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",M="",E=0;a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");do i=k.indexOf(a.charAt(E++))<<2|(p=k.indexOf(a.charAt(E++)))>>4,n=(15&p)<<4|(h=k.indexOf(a.charAt(E++)))>>2,g=(3&h)<<6|(C=k.indexOf(a.charAt(E++))),M+=String.fromCharCode(i),h!==64&&(M+=String.fromCharCode(n)),C!==64&&(M+=String.fromCharCode(g));while(E<a.length);return M};U2&&(process.argv.length>1&&(Kc=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",function(a){if(!(a instanceof h5))throw a}),process.on("unhandledRejection",function(a){throw a}),oe.inspect=function(){return"[Emscripten Module object]"}),oe.expectedDataFileDownloads++,function(){if(oe.ENVIRONMENT_IS_PTHREAD)return;const a="/usr/share/espeak-ng-data",i=a+"/lang",n=a+"/voices";(function(g){var p=null,h=null;function C(){function k(v,S){if(!v)throw S+new Error().stack}function M(v,S,F){this.start=v,this.end=S,this.audio=F}oe.FS_createPath("/","usr",!0,!0),oe.FS_createPath("/usr","share",!0,!0),oe.FS_createPath("/usr/share","espeak-ng-data",!0,!0),oe.FS_createPath(a,"lang",!0,!0),oe.FS_createPath(i,"aav",!0,!0),oe.FS_createPath(i,"art",!0,!0),oe.FS_createPath(i,"azc",!0,!0),oe.FS_createPath(i,"bat",!0,!0),oe.FS_createPath(i,"bnt",!0,!0),oe.FS_createPath(i,"ccs",!0,!0),oe.FS_createPath(i,"cel",!0,!0),oe.FS_createPath(i,"cus",!0,!0),oe.FS_createPath(i,"dra",!0,!0),oe.FS_createPath(i,"esx",!0,!0),oe.FS_createPath(i,"gmq",!0,!0),oe.FS_createPath(i,"gmw",!0,!0),oe.FS_createPath(i,"grk",!0,!0),oe.FS_createPath(i,"inc",!0,!0),oe.FS_createPath(i,"ine",!0,!0),oe.FS_createPath(i,"ira",!0,!0),oe.FS_createPath(i,"iro",!0,!0),oe.FS_createPath(i,"itc",!0,!0),oe.FS_createPath(i,"jpx",!0,!0),oe.FS_createPath(i,"map",!0,!0),oe.FS_createPath(i,"miz",!0,!0),oe.FS_createPath(i,"myn",!0,!0),oe.FS_createPath(i,"poz",!0,!0),oe.FS_createPath(i,"roa",!0,!0),oe.FS_createPath(i,"sai",!0,!0),oe.FS_createPath(i,"sem",!0,!0),oe.FS_createPath(i,"sit",!0,!0),oe.FS_createPath(i,"tai",!0,!0),oe.FS_createPath(i,"trk",!0,!0),oe.FS_createPath(i,"urj",!0,!0),oe.FS_createPath(i,"zle",!0,!0),oe.FS_createPath(i,"zls",!0,!0),oe.FS_createPath(i,"zlw",!0,!0),oe.FS_createPath(a,"voices",!0,!0),oe.FS_createPath(n,"!v",!0,!0),oe.FS_createPath(n,"mb",!0,!0),M.prototype={requests:{},open:function(v,S){this.name=S,this.requests[S]=this,oe.addRunDependency("fp "+this.name)},send:function(){},onload:function(){var v=this.byteArray.subarray(this.start,this.end);this.finish(v)},finish:function(v){oe.FS_createDataFile(this.name,null,v,!0,!0,!0),oe.removeRunDependency("fp "+this.name),this.requests[this.name]=null}};for(var E=g.files,D=0;D<E.length;++D)new M(E[D].start,E[D].end,E[D].audio||0).open("GET",E[D].filename);function B(v){k(v,"Loading data file failed."),k(v.constructor.name===ArrayBuffer.name,"bad input to processPackageData");var S=new Uint8Array(v);M.prototype.byteArray=S;for(var F=g.files,R=0;R<F.length;++R)M.prototype.requests[F[R].filename].onload();oe.removeRunDependency("datafile_js/espeakng.worker.data")}oe.addRunDependency("datafile_js/espeakng.worker.data"),h?(B(h),h=null):p=B}(async()=>{const k=function(B){if(typeof U2=="boolean"&&U2){var v=Buffer.from(B,"base64");return new Uint8Array(v.buffer,v.byteOffset,v.byteLength)}try{for(var S=Zm(B),F=new Uint8Array(S.length),R=0;R<S.length;++R)F[R]=S.charCodeAt(R);return F}catch(X){throw
vendor: 603,093 bytes, line 2896
2896new Error("Converting base64 string to bytes failed.")}}("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LctW1ziJJ6r8E2fgm8BOcAj6PPYk+UV2sHJvdu2OjS1rm30C8eitlZpb3/vqmd4n7AT/Dkn4k+RuNs1vCvdesaOrcW2DjyN+cltlP777h2feBiugvcS91eecTeHQTTu6GqNtYQfxk9sq2+Du2858Pl4BHSb2UNdX+Ai47paWsCfmZYmfVfnLz8B/g7oI/OeCFgs+KeQ0oVVhHxFeUSXPjvxAVFU0Xc1COSW2Ko7jeV4QBMciOZ1Ol8vtdns+lNfr9fp8Pr8/EAguVigUCofD4UhFNacUrai2trY2FovV1dXV1VfUcFKNjY2NTU1NTc3Nzc0tH6i1tbW1ra29vaOjo3ORurq6urt7enp7e5ctW9Z3Sv39/f3Lly8fGBhYUdXKqlatWrV69eo1a9euXbdu/Z+1YcOGDRs3bty06Zxzzjn33HPPPe+88zZv3rxly9atW88/f9u2Cy644IJPVHThhRdedNFFF1988cWXVHXppZdeun37ZZddfvkVV1x55VVXX331NX/Wtddee+0nP/nJHTt2XHfddddXdMMNN9x444033XTzzZ/61C233HLLp0/q1ltv/cxnPvvZz33uc39X1ec+d/LX2277/Be+8MXbb7/9S1/60pduv/3227/4xS9+sfLXl++44++/8pWvLtLXvvb1r+/cufN/nNTOD/Q//seuXd/4xp2n9I2TuvPOO7/5zbvuuuuuu+++u/LfXd+s6tSUk6pOr/75rZP688SPfK2C3nnnN3adVGXOJ2dTmfyNb+z6yILs3Pn1r3/961/72le/+tWvLNLf//0dd3z5y19apMqqfuELn//8bbfd9neL9LnPffazn/nMZ2699dZbq013yy23fOpTN99004033nDD9R/Vddddt2PHJz957bXXXnPN1VdfffVVV1111ZVXXnHF5Zdfdtn27Zdeeuklp+niiy++6KILL/zEJy64YNu2bed/oK1bt27dsmXL5s2bzzvvvPPOPalzKtpU0cZF2rBhw/r169edprVr165Zs2b1h1pzUqtXr171F6rsoys+ssN+MO2DiScnf/Tbf9bpk1ad3NlXL468trrv/xWt/yv68LioHhmn6dzTVWmhynHzV7RlS/VgOqktJxv05OSt1WPsg6aufvzhF88/f+uHU099suU0bf1rOn+RPoy5SB9dslN/ntzAf7GCJ7f1h1v4Q53a1GtPbt8Pt2h1Ww0s0vLly5f39/dXTkvLli1b1tvb09Pd3dXV2dnZ0fHRs1lHR3t7W1tra+sHp7zm5oplR2NDfX1dLBarXaRotKamJhKJhE8pFAoFgwG/3+fzej0ej/sDuVwup9PhEASB53meOymWrWQaUiRJEAR+SpXLQiUhslLg/+TF5VQ5LdM0jUpCqKZpqqoqSiUFspLbXy6XSqVSsapCoZCvJPhmM5l0OpVKJStKJBKJeCWldX5ubnZ2ZmZmZrqqqampycnJiYnx8bGx0dGRkZHh4eGhoaGhwcETJ04cP37s2LGjFR05qcOHDx86dOjgwffff/+99959990DB/bv37dv3zvvvP323r17975V0Ztvvvnmnj173njj9ddff/2111577dWKXnnllZdffvmll3bvfvHFF/9U0R9P6oUXXnj++ef/8Ic//P73v3/uueee+90p/fa3v/3ts88++8wzzzz99NNPPfXUbyp68sknn/z1r3/96yeeeOKJxx9//PHHKnr00UcffeSRRx5++OFfVfXLD/TQQw899OCDDz7wwAMP/KKqn1f1s5/97Gc/reonH+o/TurHH9H9Ff3oRz/64Sn9+w///S/0w7+uH32g+390/49+dP8pVWZ6MswHUU8uxc+qOrlsJ5fzgaoefPDBByur8Mtf/vJXv/rVww8//PAjjzzySGVtK2v9+OOPV1rh17/+9ZNPPllpm6eeeurpp5955plnn332t7/97e9+97vnnnvu97//wx+ef/75F1744x//+Kc//enFF1/cvXv3Sy+9/PLLr7zy6quvvfb666+/8cYbe/bsefPNt956a+/et99+5519+/bvP3DgwLvvvvfee++/f/DgwUOHDh8+cuTo0WPHjh0/fvzEicHBwaGh4eGRkZHR0bGx8fGJiYnJyamp6enpmZmZ2dm5ubn5+YWFhXg8kUgkk8lUKp1OZzKZbDaby+Xy+XyhUCwWS6VSuVwWRVGSpEoqr6KoajWDV9f1Ss6yWck7tqpV5D6sEld9jmgC94A8uIiKsEe57wtTwXUestcZdTpJsKv6PNt10gt4xX92D4ct4jtD61DcQ/pYlkT/H/bePMiy66wTPNs9d31rvtzXqsrKWlRVKlWVVmRtyJJtYWMbG4wxBAMMBAQz42CWP6aHcEQ3EwMRRAxNdJsOlhnPNI3B2G2DbWxhI8vWvpek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"),
vendor: 5,506 bytes, line 2896
2896M=new Blob([k]).stream().pipeThrough(new DecompressionStream("gzip")),E=[];for await(const B of M)E.push(B);const D=await new Blob(E).arrayBuffer();p?(p(D),p=null):h=D})(),oe.calledRun?C():(oe.preRun||(oe.preRun=[]),oe.preRun.push(C))})({files:[{filename:a+"/en_dict",start:0,end:167064},{filename:a+"/intonations",start:167064,end:169104},{filename:i+"/aav/vi",start:169104,end:169215},{filename:i+"/aav/vi-VN-x-central",start:169215,end:169358},{filename:i+"/aav/vi-VN-x-south",start:169358,end:169500},{filename:i+"/art/eo",start:169500,end:169541},{filename:i+"/art/ia",start:169541,end:169570},{filename:i+"/art/io",start:169570,end:169620},{filename:i+"/art/jbo",start:169620,end:169689},{filename:i+"/art/lfn",start:169689,end:169824},{filename:i+"/art/piqd",start:169824,end:169880},{filename:i+"/art/py",start:169880,end:170020},{filename:i+"/art/qdb",start:170020,end:170077},{filename:i+"/art/qya",start:170077,end:170250},{filename:i+"/art/sjn",start:170250,end:170425},{filename:i+"/azc/nci",start:170425,end:170539},{filename:i+"/bat/lt",start:170539,end:170567},{filename:i+"/bat/ltg",start:170567,end:170879},{filename:i+"/bat/lv",start:170879,end:171108},{filename:i+"/bnt/sw",start:171108,end:171149},{filename:i+"/bnt/tn",start:171149,end:171191},{filename:i+"/ccs/ka",start:171191,end:171315},{filename:i+"/cel/cy",start:171315,end:171352},{filename:i+"/cel/ga",start:171352,end:171418},{filename:i+"/cel/gd",start:171418,end:171469},{filename:i+"/cus/om",start:171469,end:171508},{filename:i+"/dra/kn",start:171508,end:171563},{filename:i+"/dra/ml",start:171563,end:171620},{filename:i+"/dra/ta",start:171620,end:171671},{filename:i+"/dra/te",start:171671,end:171741},{filename:i+"/esx/kl",start:171741,end:171771},{filename:i+"/eu",start:171771,end:171825},{filename:i+"/gmq/da",start:171825,end:171868},{filename:i+"/gmq/is",start:171868,end:171895},{filename:i+"/gmq/nb",start:171895,end:171982},{filename:i+"/gmq/sv",start:171982,end:172007},{filename:i+"/gmw/af",start:172007,end:172130},{filename:i+"/gmw/de",start:172130,end:172172},{filename:i+"/gmw/en",start:172172,end:172312},{filename:i+"/gmw/en-029",start:172312,end:172647},{filename:i+"/gmw/en-GB-scotland",start:172647,end:172942},{filename:i+"/gmw/en-GB-x-gbclan",start:172942,end:173180},{filename:i+"/gmw/en-GB-x-gbcwmd",start:173180,end:173368},{filename:i+"/gmw/en-GB-x-rp",start:173368,end:173617},{filename:i+"/gmw/en-US",start:173617,end:173874},{filename:i+"/gmw/en-US-nyc",start:173874,end:174145},{filename:i+"/gmw/lb",start:174145,end:174176},{filename:i+"/gmw/nl",start:174176,end:174199},{filename:i+"/grk/el",start:174199,end:174222},{filename:i+"/grk/grc",start:174222,end:174321},{filename:i+"/inc/as",start:174321,end:174363},{filename:i+"/inc/bn",start:174363,end:174388},{filename:i+"/inc/bpy",start:174388,end:174427},{filename:i+"/inc/gu",start:174427,end:174469},{filename:i+"/inc/hi",start:174469,end:174492},{filename:i+"/inc/kok",start:174492,end:174518},{filename:i+"/inc/mr",start:174518,end:174559},{filename:i+"/inc/ne",start:174559,end:174596},{filename:i+"/inc/or",start:174596,end:174635},{filename:i+"/inc/pa",start:174635,end:174660},{filename:i+"/inc/sd",start:174660,end:174726},{filename:i+"/inc/si",start:174726,end:174781},{filename:i+"/inc/ur",start:174781,end:174875},{filename:i+"/ine/hy",start:174875,end:174936},{filename:i+"/ine/hyw",start:174936,end:175301},{filename:i+"/ine/sq",start:175301,end:175404},{filename:i+"/ira/fa",start:175404,end:175494},{filename:i+"/ira/fa-Latn",start:175494,end:175763},{filename:i+"/ira/ku",start:175763,end:175803},{filename:i+"/iro/chr",start:175803,end:176372},{filename:i+"/itc/la",start:176372,end:176669},{filename:i+"/jpx/ja",start:176669,end:176721},{filename:i+"/ko",start:176721,end:176772},{filename:i+"/map/haw",start:176772,end:176814},{filename:i+"/miz/mto",start:176814,end:176997},{filename:i+"/myn/quc",start:176997,end:177207},{filename:i+"/poz/id",start:177207,end:177341},{filename:i+"/poz/mi",start:177341,end:177708},{filename:i+"/poz/ms",start:177708,end:178138},{filename:i+"/qu",start:178138,end:178226},{filename:i+"/roa/an",start:178226,end:178253},{filename:i+"/roa/ca",start:178253,end:178278},{filename:i+"/roa/es",start:178278,end:178341},{filename:i+"/roa/es-419",start:178341,end:178508},{filename:i+"/roa/fr",start:178508,end:178587},{filename:i+"/roa/fr-BE",start:178587,end:178671},{filename:i+"/roa/fr-CH",start:178671,end:178757},{filename:i+"/roa/ht",start:178757,end:178897},{filename:i+"/roa/it",start:178897,end:179006},{filename:i+"/roa/pap",start:179006,end:179068},{filename:i+"/roa/pt",start:179068,end:179163},{filename:i+"/roa/pt-BR",start:179163,end:179272},{filename:i+"/roa/ro",start:179272,end:179298},{filename:i+"/sai/gn",start:179298,end:179345},{filename:i+"/sem/am",start:179345,end:179386},{filename:i+"/sem/ar",start:179386,end:179436},{filename:i+"/sem/he",start:179436,end:179476},{filename:i+"/sem/mt",start:179476,end:179517},{filename:i+"/sem/ti",start:179517,end:179610},{filename:i+"/sit/cmn",start:179610,end:180296},{filename:i+"/sit/cmn-Latn-pinyin",start:180296,end:180457},{filename:i+"/sit/hak",start:180457,end:180585},{filename:i+"/sit/my",start:180585,end:180641},{filename:i+"/sit/yue",start:180641,end:180835},{filename:i+"/sit/yue-Latn-jyutping",start:180835,end:181048},{filename:i+"/tai/shn",start:181048,end:181140},{filename:i+"/tai/th",start:181140,end:181177},{filename:i+"/trk/az",start:181177,end:181222},{filename:i+"/trk/ba",start:181222,end:181247}
2896,{filename:i+"/trk/cv",start:181247,end:181287},{filename:i+"/trk/kk",start:181287,end:181327},{filename:i+"/trk/ky",start:181327,end:181370},{filename:i+"/trk/nog",start:181370,end:181409},{filename:i+"/trk/tk",start:181409,end:181434},{filename:i+"/trk/tr",start:181434,end:181459},{filename:i+"/trk/tt",start:181459,end:181482},{filename:i+"/trk/ug",start:181482,end:181506},{filename:i+"/trk/uz",start:181506,end:181545},{filename:i+"/urj/et",start:181545,end:181782},{filename:i+"/urj/fi",start:181782,end:182019},{filename:i+"/urj/hu",start:182019,end:182092},{filename:i+"/urj/smj",start:182092,end:182137},{filename:i+"/zle/be",start:182137,end:182189},{filename:i+"/zle/ru",start:182189,end:182246},{filename:i+"/zle/ru-LV",start:182246,end:182526},{filename:i+"/zle/ru-cl",start:182526,end:182617},{filename:i+"/zle/uk",start:182617,end:182714},{filename:i+"/zls/bg",start:182714,end:182825},{filename:i+"/zls/bs",start:182825,end:183055},{filename:i+"/zls/hr",start:183055,end:183317},{filename:i+"/zls/mk",start:183317,end:183345},{filename:i+"/zls/sl",start:183345,end:183388},{filename:i+"/zls/sr",start:183388,end:183638},{filename:i+"/zlw/cs",start:183638,end:183661},{filename:i+"/zlw/pl",start:183661,end:183699},{filename:i+"/zlw/sk",start:183699,end:183723},{filename:a+"/phondata",start:183723,end:734147},{filename:a+"/phonindex",start:734147,end:773403},{filename:a+"/phontab",start:773403,end:829491},{filename:n+"/!v/Alex",start:829491,end:829619},{filename:n+"/!v/Alicia",start:829619,end:830093},{filename:n+"/!v/Andrea",start:830093,end:830450},{filename:n+"/!v/Andy",start:830450,end:830770},{filename:n+"/!v/Annie",start:830770,end:831085},{filename:n+"/!v/AnxiousAndy",start:831085,end:831446},{filename:n+"/!v/Demonic",start:831446,end:835304},{filename:n+"/!v/Denis",start:835304,end:835609},{filename:n+"/!v/Diogo",start:835609,end:835988},{filename:n+"/!v/Gene",start:835988,end:836269},{filename:n+"/!v/Gene2",start:836269,end:836552},{filename:n+"/!v/Henrique",start:836552,end:836933},{filename:n+"/!v/Hugo",start:836933,end:837311},{filename:n+"/!v/Jacky",start:837311,end:837578},{filename:n+"/!v/Lee",start:837578,end:837916},{filename:n+"/!v/Marco",start:837916,end:838383},{filename:n+"/!v/Mario",start:838383,end:838653},{filename:n+"/!v/Michael",start:838653,end:838923},{filename:n+"/!v/Mike",start:838923,end:839035},{filename:n+"/!v/Mr serious",start:839035,end:842228},{filename:n+"/!v/Nguyen",start:842228,end:842508},{filename:n+"/!v/Reed",start:842508,end:842710},{filename:n+"/!v/RicishayMax",start:842710,end:842943},{filename:n+"/!v/RicishayMax2",start:842943,end:843378},{filename:n+"/!v/RicishayMax3",start:843378,end:843813},{filename:n+"/!v/Storm",start:843813,end:844233},{filename:n+"/!v/Tweaky",start:844233,end:847422},{filename:n+"/!v/UniRobot",start:847422,end:847839},{filename:n+"/!v/adam",start:847839,end:847914},{filename:n+"/!v/anika",start:847914,end:848407},{filename:n+"/!v/anikaRobot",start:848407,end:848919},{filename:n+"/!v/announcer",start:848919,end:849219},{filename:n+"/!v/antonio",start:849219,end:849600},{filename:n+"/!v/aunty",start:849600,end:849958},{filename:n+"/!v/belinda",start:849958,end:850298},{filename:n+"/!v/benjamin",start:850298,end:850499},{filename:n+"/!v/boris",start:850499,end:850723},{filename:n+"/!v/caleb",start:850723,end:850780},{filename:n+"/!v/croak",start:850780,end:850873},{filename:n+"/!v/david",start:850873,end:850985},{filename:n+"/!v/ed",start:850985,end:851272},{filename:n+"/!v/edward",start:851272,end:851423},{filename:n+"/!v/edward2",start:851423,end:851575},{filename:n+"/!v/f1",start:851575,end:851899},{filename:n+"/!v/f2",start:851899,end:852256},{filename:n+"/!v/f3",start:852256,end:852631},{filename:n+"/!v/f4",start:852631,end:852981},{filename:n+"/!v/f5",start:852981,end:853413},{filename:n+"/!v/fast",start:853413,end:853562},{filename:n+"/!v/grandma",start:853562,end:853825},{filename:n+"/!v/grandpa",start:853825,end:854081},{filename:n+"/!v/gustave",start:854081,end:854334},{filename:n+"/!v/ian",start:854334,end:857502},{filename:n+"/!v/iven",start:857502,end:857763},{filename:n+"/!v/iven2",start:857763,end:858042},{filename:n+"/!v/iven3",start:858042,end:858304},{filename:n+"/!v/iven4",start:858304,end:858565},{filename:n+"/!v/john",start:858565,end:861751},{filename:n+"/!v/kaukovalta",start:861751,end:862112},{filename:n+"/!v/klatt",start:862112,end:862150},{filename:n+"/!v/klatt2",start:862150,end:862188},{filename:n+"/!v/klatt3",start:862188,end:862227},{filename:n+"/!v/klatt4",start:862227,end:862266},{filename:n+"/!v/klatt5",start:862266,end:862305},{filename:n+"/!v/klatt6",start:862305,end:862344},{filename:n+"/!v/linda",start:862344,end:862694},{filename:n+"/!v/m1",start:862694,end:863029},{filename:n+"/!v/m2",start:863029,end:863293},{filename:n+"/!v/m3",start:863293,end:863593},{filename:n+"/!v/m4",start:863593,end:863883},{filename:n+"/!v/m5",start:863883,end:864145},{filename:n+"/!v/m6",start:864145,end:864333},{filename:n+"/!v/m7",start:864333,end:864587},{filename:n+"/!v/m8",start:864587,end:864871},{filename:n+"/!v/marcelo",start:864871,end:865122},{filename:n+"/!v/max",start:865122,end:865347}
2896,{filename:n+"/!v/michel",start:865347,end:865751},{filename:n+"/!v/miguel",start:865751,end:866133},{filename:n+"/!v/mike2",start:866133,end:866321},{filename:n+"/!v/norbert",start:866321,end:869510},{filename:n+"/!v/pablo",start:869510,end:872652},{filename:n+"/!v/paul",start:872652,end:872936},{filename:n+"/!v/pedro",start:872936,end:873288},{filename:n+"/!v/quincy",start:873288,end:873642},{filename:n+"/!v/rob",start:873642,end:873907},{filename:n+"/!v/robert",start:873907,end:874181},{filename:n+"/!v/robosoft",start:874181,end:874632},{filename:n+"/!v/robosoft2",start:874632,end:875086},{filename:n+"/!v/robosoft3",start:875086,end:875541},{filename:n+"/!v/robosoft4",start:875541,end:875988},{filename:n+"/!v/robosoft5",start:875988,end:876433},{filename:n+"/!v/robosoft6",start:876433,end:876720},{filename:n+"/!v/robosoft7",start:876720,end:877130},{filename:n+"/!v/robosoft8",start:877130,end:877373},{filename:n+"/!v/sandro",start:877373,end:877903},{filename:n+"/!v/shelby",start:877903,end:878183},{filename:n+"/!v/steph",start:878183,end:878547},{filename:n+"/!v/steph2",start:878547,end:878914},{filename:n+"/!v/steph3",start:878914,end:879291},{filename:n+"/!v/travis",start:879291,end:879674},{filename:n+"/!v/victor",start:879674,end:879927},{filename:n+"/!v/whisper",start:879927,end:880113},{filename:n+"/!v/whisperf",start:880113,end:880505},{filename:n+"/!v/zac",start:880505,end:880780},{filename:n+"/mb/mb-af1",start:880780,end:880868},{filename:n+"/mb/mb-af1-en",start:880868,end:880951},{filename:n+"/mb/mb-ar1",start:880951,end:881035},{filename:n+"/mb/mb-ar2",start:881035,end:881119},{filename:n+"/mb/mb-br1",start:881119,end:881251},{filename:n+"/mb/mb-br2",start:881251,end:881387},{filename:n+"/mb/mb-br3",start:881387,end:881519},{filename:n+"/mb/mb-br4",start:881519,end:881655},{filename:n+"/mb/mb-ca1",start:881655,end:881760},{filename:n+"/mb/mb-ca2",start:881760,end:881865},{filename:n+"/mb/mb-cn1",start:881865,end:881957},{filename:n+"/mb/mb-cr1",start:881957,end:882068},{filename:n+"/mb/mb-cz1",start:882068,end:882138},{filename:n+"/mb/mb-cz2",start:882138,end:882220},{filename:n+"/mb/mb-de1",start:882220,end:882364},{filename:n+"/mb/mb-de1-en",start:882364,end:882460},{filename:n+"/mb/mb-de2",start:882460,end:882588},{filename:n+"/mb/mb-de2-en",start:882588,end:882668},{filename:n+"/mb/mb-de3",start:882668,end:882767},{filename:n+"/mb/mb-de3-en",start:882767,end:882863},{filename:n+"/mb/mb-de4",start:882863,end:882992},{filename:n+"/mb/mb-de4-en",start:882992,end:883073},{filename:n+"/mb/mb-de5",start:883073,end:883309},{filename:n+"/mb/mb-de5-en",start:883309,end:883399},{filename:n+"/mb/mb-de6",start:883399,end:883521},{filename:n+"/mb/mb-de6-en",start:883521,end:883595},{filename:n+"/mb/mb-de6-grc",start:883595,end:883678},{filename:n+"/mb/mb-de7",start:883678,end:883828},{filename:n+"/mb/mb-de8",start:883828,end:883899},{filename:n+"/mb/mb-ee1",start:883899,end:883996},{filename:n+"/mb/mb-en1",start:883996,end:884127},{filename:n+"/mb/mb-es1",start:884127,end:884241},{filename:n+"/mb/mb-es2",start:884241,end:884349},{filename:n+"/mb/mb-es3",start:884349,end:884453},{filename:n+"/mb/mb-es4",start:884453,end:884541},{filename:n+"/mb/mb-fr1",start:884541,end:884707},{filename:n+"/mb/mb-fr1-en",start:884707,end:884811},{filename:n+"/mb/mb-fr2",start:884811,end:884914},{filename:n+"/mb/mb-fr3",start:884914,end:885014},{filename:n+"/mb/mb-fr4",start:885014,end:885141},{filename:n+"/mb/mb-fr4-en",start:885141,end:885248},{filename:n+"/mb/mb-fr5",start:885248,end:885348},{filename:n+"/mb/mb-fr6",start:885348,end:885448},{filename:n+"/mb/mb-fr7",start:885448,end:885531},{filename:n+"/mb/mb-gr1",start:885531,end:885625},{filename:n+"/mb/mb-gr2",start:885625,end:885719},{filename:n+"/mb/mb-gr2-en",start:885719,end:885807},{filename:n+"/mb/mb-hb1",start:885807,end:885875},{filename:n+"/mb/mb-hb2",start:885875,end:885958},{filename:n+"/mb/mb-hu1",start:885958,end:886060},{filename:n+"/mb/mb-hu1-en",start:886060,end:886157},{filename:n+"/mb/mb-ic1",start:886157,end:886245},{filename:n+"/mb/mb-id1",start:886245,end:886346}
vendor: 4,404 bytes, line 2896
2896,{filename:n+"/mb/mb-in1",start:886346,end:886415},{filename:n+"/mb/mb-in2",start:886415,end:886500},{filename:n+"/mb/mb-ir1",start:886500,end:887253},{filename:n+"/mb/mb-it1",start:887253,end:887337},{filename:n+"/mb/mb-it2",start:887337,end:887424},{filename:n+"/mb/mb-it3",start:887424,end:887566},{filename:n+"/mb/mb-it4",start:887566,end:887711},{filename:n+"/mb/mb-jp1",start:887711,end:887782},{filename:n+"/mb/mb-jp2",start:887782,end:887883},{filename:n+"/mb/mb-jp3",start:887883,end:887970},{filename:n+"/mb/mb-la1",start:887970,end:888053},{filename:n+"/mb/mb-lt1",start:888053,end:888140},{filename:n+"/mb/mb-lt2",start:888140,end:888227},{filename:n+"/mb/mb-ma1",start:888227,end:888325},{filename:n+"/mb/mb-mx1",start:888325,end:888445},{filename:n+"/mb/mb-mx2",start:888445,end:888565},{filename:n+"/mb/mb-nl1",start:888565,end:888634},{filename:n+"/mb/mb-nl2",start:888634,end:888730},{filename:n+"/mb/mb-nl2-en",start:888730,end:888821},{filename:n+"/mb/mb-nl3",start:888821,end:888906},{filename:n+"/mb/mb-nz1",start:888906,end:888974},{filename:n+"/mb/mb-pl1",start:888974,end:889073},{filename:n+"/mb/mb-pl1-en",start:889073,end:889155},{filename:n+"/mb/mb-pt1",start:889155,end:889286},{filename:n+"/mb/mb-ro1",start:889286,end:889373},{filename:n+"/mb/mb-ro1-en",start:889373,end:889454},{filename:n+"/mb/mb-sw1",start:889454,end:889552},{filename:n+"/mb/mb-sw1-en",start:889552,end:889645},{filename:n+"/mb/mb-sw2",start:889645,end:889747},{filename:n+"/mb/mb-sw2-en",start:889747,end:889846},{filename:n+"/mb/mb-tl1",start:889846,end:889931},{filename:n+"/mb/mb-tr1",start:889931,end:890016},{filename:n+"/mb/mb-tr2",start:890016,end:890130},{filename:n+"/mb/mb-us1",start:890130,end:890300},{filename:n+"/mb/mb-us2",start:890300,end:890478},{filename:n+"/mb/mb-us3",start:890478,end:890658},{filename:n+"/mb/mb-vz1",start:890658,end:890802}]})}();var Jm=Object.assign({},oe),Kc="./this.program",K0=oe.print||console.log.bind(console),fo=oe.printErr||console.warn.bind(console);Object.assign(oe,Jm),Jm=null,oe.arguments&&oe.arguments,oe.thisProgram&&(Kc=oe.thisProgram),oe.quit&&oe.quit,oe.wasmBinary&&oe.wasmBinary,oe.noExitRuntime;var L0,go={Memory:function(a){this.buffer=new ArrayBuffer(65536*a.initial)},Module:function(a){},Instance:function(a,i){this.exports=function(n){for(var g,p=new Uint8Array(123),h=25;h>=0;--h)p[48+h]=52+h,p[65+h]=h,p[97+h]=26+h;function C(z,L,K){for(var d,w,e=0,u=L,y=K.length,ee=L+(3*y>>2)-(K[y-2]=="=")-(K[y-1]=="=");e<y;e+=4)d=p[K.charCodeAt(e+1)],w=p[K.charCodeAt(e+2)],z[u++]=p[K.charCodeAt(e)]<<2|d>>4,u<ee&&(z[u++]=d<<4|w>>2),u<ee&&(z[u++]=w<<6|p[K.charCodeAt(e+3)])}p[43]=62,p[47]=63;var k=new ArrayBuffer(16),M=new Int32Array(k),E=new Float32Array(k),D=new Float64Array(k);function B(z){return M[z]}function v(z,L){M[z]=L}function S(){return D[0]}function F(z){D[0]=z}function R(){throw new Error("abort")}function X(z){E[2]=z}return function(z){var L=z.a,K=L.a.buffer,d=new Int8Array(K),w=new Int16Array(K),e=new Int32Array(K),u=new Uint8Array(K),y=new Uint16Array(K),ee=new Uint32Array(K),T=new Float64Array(K),O=Math.imul,ge=Math.fround,se=Math.abs,we=Math.clz32,be=Math.min,Be=Math.floor,ve=Math.ceil,De=L.b,je=L.c,Le=L.d,Pe=L.e,me=L.f,ie=L.g,Ie=L.h,Fe=L.i,xe=L.j,sA=L.k,uA=L.l,hA=L.m,iA=L.n,ye=L.o,Ae=L.p,Re=L.q,qe=L.r,Ue=L.s,rA=L.t,aA=L.u,Y=294656,cA=0,He=0,ce=0;function MA(A){var t,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0,rt=0,Et=0,Ot=0,Wt=0,ir=0,or=0,xr=0,Br=0,Rr=0,Hr=0,Jr=0,os=0,ps=0,Is=0,ua=0,Js=0,da=0,In=0,wn=0,kn=0,Kn=0,Mn=0,Bo=0,yo=0,Ji=0,Do=0;if(Y=t=Y-16|0,(0|A)!=2)if(A=e[33283],e[A>>2]!=e[A+4>>2]){if(is(e[e[32972]+60>>2]),U=e[47192],ps=t+12|0,In=t+8|0,Y=m=Y-6832|0,e[m+6816>>2]=0,e[m+6808>>2]=32,e[m+6800>>2]=0,U){e[47351]=0,e[47350]=0,e[47352]=0,d[189076]=0,A=e[33284],e[47353]=(0|A)>0?A:0,e[47355]=e[47354]+1,Xe(gA=m+5184|0,0,1600),Hr=m+6800|0,Y=c=Y-2608|0,e[c+2156>>2]=32,e[c+2148>>2]=0,u[134760]&&(d[190280]=0,d[134760]=0),e[U+8216>>2]=0,e[U+8220>>2]=0,e[U+288>>2]=0,e[m+780>>2]=0,d[189360]=0;e:if(A=e[33691])e[c+2152>>2]=A;else{A:{r:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2]){e[c+2152>>2]=0;break e}if(!(r=e[33285]))break r}e[33285]=0;break A}e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A)}e[c+2152>>2]=r}Mn=gA+2|0,Oe=32;e:{for(;;){Qe=Oe;A:{r:{a:{if(r=e[33691],(o=e[33285])?A=0:(o=e[33285],A=e[33283],A=e[A>>2]==e[A+4>>
28962]),r|!A|o||!(e[32524]<0)){if(!Se(e[c+2156>>2])){if((o=(0|(A=e[49828]))>0)&(0|(r=A))<(0|(A=e[33284])))break a;if(!((0|(r=e[49845]))<=0|(0|A)<(0|r))){e[49845]=0,d[134760]=1,e[33285]=e[c+2152>>2],s=16384;break e}}Oe=e[c+2156>>2],e[c+2156>>2]=e[c+2152>>2];n:{o:{c:{u:{l:{if((0|(r=e[32524]))>=0){if(u[r+134736|0])break l;e[32524]=-1}if(r=e[33285])break c;if(A=e[33283],e[A>>2]!=e[A+4>>2])break u;r=32;break n}e[33691]|r||(e[c+2156>>2]=d[134736],r=1),e[32524]=r+1,r=d[r+134736|0];break n}if(!(r=e[33285]))break o}e[33285]=0;break n}e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A)}e[c+2152>>2]=r,e[33691]=0;n:if(!(I|!e[47203])){o:{if((0|(A=e[c+2156>>2]))!=60){if((0|r)!=35&r-97>>>0>25|(0|A)!=38)break n;for(o=e[33285],l=0;;){c:{if(e[c+2156>>2]=r,!o){if(A=e[33283],e[A>>2]==e[A+4>>2])break c;r=e[c+2156>>2]}if(!(!((r=!!(0|Se(r)))|(0|(A=e[c+2156>>2]))==35)|l>>>0>19)){d[(c+112|0)+l|0]=A,l=l+1|0,(r=e[33285])?(e[33285]=0,o=0):(e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A),o=e[33285]);continue}}break}d[(c+112|0)+l|0]=0;c:{u:{if(!(r=e[33285])){if(r=0,A=e[33283],e[A>>2]==e[A+4>>2])break c;if(!(r=e[33285]))break u}e[33285]=0;break c}e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A)}e[c+2152>>2]=r,e[c+100>>2]=e[c+2156>>2],e[c+104>>2]=r,e[c+96>>2]=c+112,dA(134736,84252,c+96|0);c:{if(e[c+2156>>2]==59){l=c+2156|0,W=c+2152|0,Y=o=Y-32|0;u:if(u[0|(r=c+112|0)]!=35)A=-1,(0|(r=bt(130752,r)))!=-1&&(e[l>>2]=r,e[W>>2]||(e[W>>2]=32),A=r);else{if(u[0|(A=r+1|0)]==120){e[o>>2]=l,A=RA(r+2|0,90005,o);break u}e[o+16>>2]=l,A=RA(A,90070,o+16|0)}if(Y=o+32|0,(0|A)>0)break c}e[32524]=0,e[c+2156>>2]=38,e[c+2152>>2]=32;break n}if((0|(A=e[c+2156>>2]))>32)break n;if(!(r=e[33692]-20|0)|(0|r)==16)break o;break n}if((0|r)!=47&&!Ke(r)&&(0|(A=e[c+2152>>2]))!=63&&(0|A)!=33)break n;if((0|(A=e[c+2148>>2]))>780){e[33691]=e[c+2156>>2],d[0|(A=A+189424|0)]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],s=16384;break e}for(W=e[33285],l=0,r=e[c+2152>>2];e[c+2156>>2]=r,o=0,W||(A=e[33283],o=e[A>>2]==e[A+4>>2],r=e[c+2156>>2]),!((0|r)==62|o|l>>>0>499);)e[(c+144|0)+(l<<2)>>2]=r,l=l+1|0,(r=e[33285])?(W=0,e[33285]=0):(e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A),W=e[33285]);e[(o=c+144|0)+(l<<2)>>2]=0,e[c+2152>>2]=32,Ve=c+2148|0,Qe=e[32525],r=0,Y=Me=Y-560|0;c:if(Wn(o,84333,3)&&Wn(o,84477,4)){for(A=(o+(ho(o)<<2)|0)-4|0,(0|(bA=e[A>>2]))==47&&(e[A>>2]=32);;){if(A=e[o+(r<<2)>>2]){if(wr(A))A=r;else if(d[(Me+512|0)+r|0]=Gs(A<<24>>24),A=39,(0|(r=r+1|0))!=39)continue}else A=r;break}if(d[(Me+512|0)+A|0]=0,u[Me+512|0]!=47){if((0|(W=bt(130480,Me+512|0)))!=16&&(r=e[Ve>>2],e[Ve>>2]=r+1,d[r+189424|0]=32),(0|bA)==47&&(r=0,!(502241>>>W&1)))break c}else(0|(r=bt(130480,Me+512|1)))!=16&&(l=e[Ve>>2],e[Ve>>2]=l+1,d[l+189424|0]=32),W=r+32|0;l=o+(A<<2)|0,A=e[33708],I=O(A,76)+133076|0,r=262174;u:{l:{i:{p:switch(W-1|0){case 33:C:if(!((0|A)<=1)){for(;;){if(e[O(r=A-1|0,76)+133152>>2]==2)break C;if(e[33708]=r,o=A>>>0>2,A=r,!o)break}A=1}r=ae(l,34,A);break c;case 32:C:if(!((0|A)<=1)){for(;;){if(e[O(r=A-1|0,76)+133152>>2]==1)break C;if(e[33708]=r,o=A>>>0>2,A=r,!o)break}A=1}r=ae(l,33,A)+524328|0;break c;case 9:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=(I=r<<6)+134912|0)>>2]=10,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,A=Qt(l,88301),o=Qt(l,88390),Nn(A,88479)?Nn(A,88528)||(e[28+(134912+(r<<6)|0)>>2]=oa(o,130224)):e[24+(I+134912|0)>>2]=oa(o,130192),Cr(Ve,e[33709]);break i;case 2:for((0|(A=e[33709]))<=18&&(e[33709]=A+1),e[(A=(wn=A<<6)+134912|0)>>2]=3,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,Wt=1;;){if(o=Qt(l,e[(ir=Wt<<2)+130448>>2])){bA=0,A=e[ir+131072>>2];C:if(W=e[A>>2])for(;;){for(r=0;I=d[r+W|0],(Qe=e[(r<<2)+o>>2])&&(r=r+1|0,(0|I)==(0|Qe)););h:switch(Qe-34|0){case 0:case 5:if(!I)break C;break;default:break h}if(!(W=e[A+((bA=bA+1|0)<<3)>>2]))break}Bo=ir+(wn+134912|0)|0;C:if((0|(A=e[4+(A+(bA<<3)|0)>>2]))>=0)A=(0|O(A,e[4+(ir+134912|0)>>2]))/100|0;else{for(;o=(A=o)+4|0,wr(e[A>>2]););for(kn=e[A>>2]==43,o=((Kn=e[(A=A+(kn<<2)|0)>>2]==45)<<2)+A|0,bA=Me+96|0,Y=W=(Y=I=Y-16|0)-224|0,Xe(W+16|0,0,144),A=W+160|4,e[W+24>>2]=A,e[W+60>>2]=A,e[W+92>>2]=-1,e[W+64>>2]=60,e[W+20>>2]=A,e[W+48>>2]=19,r=o;r=(A=r)+4|0,Qe=(Qe=e[A>>2])?Tt(124960,Qe):0;);e[W+100>>2]=A,Ps(r=W+16|0,0,0),BA(W,r,1,1),r=e[W+8>>2],yo=e[W+12>>2],Qe=e[W>>2],Ji=e[W+4>>2],bA&&(Do=bA,bA=e[W+136>>2]+(e[W+20>>2]-e[W+60>>2]|0)|0,e[Do>>2]=bA?A+(bA<<2)|0:o),e[(A=I)+8>>2]=r,e[A+12>>2]=yo,e[A>>2]=Qe,e[A+4>>2]=Ji,Y=W+224|0,Ce=Ys(e[A>>2],e[A+4>>2],e[A+8>>2],e[A+12>>2]),Y=A+16|0;h:{r=100;b:if((0|(A=o))!=(0|(o=e[Me+96>>2]))){r=Kn?-1:kn;m:{if((0|(A=e[o>>2]))!=115){if((0|A)!=37)break m;if(se(Ce=r?+(0|r)*Ce+100:Ce)<2147483648){r=~~Ce;break b}r=-2147483648;break b}if(e[o+4>>2]==116){F(+(Et=Ce*+(0|r)/12)),A=0|B(1),B(0);x:{if((r=(A=A>>>20&2047)-969|0)>>>0>=63){if(Ce=Et+1,(0|r)<0)break x;
2896if(F(+Et),r=0|B(1),o=0|B(0),!(A>>>0<1033)){if(Ce=0,!o&(0|r)==-1048576||(Ce=Et+1,A>>>0>=2047))break x;if((0|r)>0|(0|r)>=0){T[(A=Y-16|0)+8>>3]=3105036184601418e216,Ce=3105036184601418e216*T[A+8>>3];break x}if(!(r>>>0<3230714880)){T[(A=Y-16|0)+8>>3]=12882297539194267e-247,Ce=12882297539194267e-247*T[A+8>>3];break x}}I=A,A=!(o<<1)&(0|(A=r<<1|o>>>31))==-2129002496|A>>>0<2165964800?I:0}Is=(Et=(Ce=Et-((Jr=(Ce=T[14416])+Et)-Ce))*Ce)*Et*(Ce*T[14421]+T[14420]),Et*=Ce*T[14419]+T[14418],Ce*=T[14417],F(+Jr),B(1),I=0|B(0),Ce=Is+(Et+(Ce+T[(o=I<<4&2032)+115376>>3])),Qe=e[(o=o+115384|0)>>2],W=e[o+4>>2],o=(r=Qe)+(Qe=0)|0,r=(I<<13)+W|0,r=o>>>0<Qe>>>0?r+1|0:r,A?(v(0,0|o),v(1,0|r),Ce=(Et=+S())*Ce+Et):-2147483648&I?(v(0,0|o),v(1,r+1071644672|0),(Ce=(Jr=(Et=+S())*Ce)+Et)<1&&(e[(A=Y-16|0)+8>>2]=0,e[A+12>>2]=1048576,T[A+8>>3]=22250738585072014e-324*T[A+8>>3],Ce=(Ce=(Is=Ce+1)+(Jr+(Et-Ce)+(Ce+(1-Is)))+-1)==0?0:Ce),Ce*=22250738585072014e-324):(v(0,0|o),v(1,r+-1048576|0),Ce=(Et=+S())*Ce+Et,Ce+=Ce)}if(se(Ce*=100)<2147483648){r=~~Ce;break b}r=-2147483648;break b}}if((0|Wt)!=1)break h;if(r)r=(A=se(Ce=Ce*+(0|r)*100)<2147483648?~~Ce:-2147483648)+100|0;else{if(se(Ce*=100)<2147483648){r=~~Ce;break b}r=-2147483648}}A=(0|O(r,e[ir+134848>>2]))/100|0;break C}A=se(Ce)<2147483648?~~Ce:-2147483648,r&&(A=e[ir+134848>>2]+O(A,r)|0)}e[Bo+4>>2]=A}if((0|(Wt=Wt+1|0))==5)break}Cr(Ve,e[33709]);break i;case 11:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=134912+(r<<6)|0)>>2]=12,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,A=(A=Qt(l,88658))?oa(A,130400):3,o=134912+(r<<6)|0,e[e[47192]+148>>2]!=1?(e[52+(134912+(r<<6)|0)>>2]=A,A=u[A+102776|0]):(e[20+(134912+(r<<6)|0)>>2]=u[A+102764|0],A=u[A+102770|0]),e[o+12>>2]=A,Cr(Ve,e[33709]);break i;case 34:case 41:case 43:if(!((0|(A=e[33709]))<=0)){if(l=W-32|0,W=0,o=0,r=0,A>>>0>=4)for(I=-4&A,bA=0;Wt=2|r,ir=1|r,o=(0|l)==e[134912+((Qe=3|r)<<6)>>2]?Qe:(0|l)==e[134912+(Wt<<6)>>2]?Wt:(0|l)==e[134912+(ir<<6)>>2]?ir:(0|l)==e[134912+(r<<6)>>2]?r:o,r=r+4|0,(0|I)!=(0|(bA=bA+4|0)););if(I=3&A)for(;o=(0|l)==e[134912+(r<<6)>>2]?r:o,r=r+1|0,(0|I)!=(0|(W=W+1|0)););(0|o)<=0||(e[33709]=o,A=o)}Cr(Ve,A);break i;case 7:if(A=Qt(l,88741),r=Qt(l,88860),(0|oa(A,130176))!=1)break i;A=e[Ve>>2],e[Ve>>2]=A+1,d[A+189424|0]=91,A=e[Ve>>2],e[Ve>>2]=A+1,d[A+189424|0]=91,A=wa((A=e[Ve>>2])+189424|0,r,800-A|0)+e[Ve>>2]|0,e[Ve>>2]=A+1,d[A+189424|0]=93,A=e[Ve>>2],e[Ve>>2]=A+1,d[A+189424|0]=93;break i;case 35:e[33692]==36&&(d[e[Ve>>2]+189424|0]=0,(o=bt(131104,r=(A=e[33707])+189424|0))&&(e[Ve>>2]=ar(o,r)+A)),A=e[Ve>>2],e[Ve>>2]=A+1,d[A+189424|0]=1,A=e[Ve>>2],e[Ve>>2]=A+1,d[A+189424|0]=89,e[33692]=0;break i;case 8:if(!(A=Qt(l,89299)))break i;d[134824]=1,r=e[Ve>>2],e[Ve>>2]=wa(r+189424|0,A,800-r|0)+e[Ve>>2];break i;case 13:d[134824]=1;break i;case 40:case 45:d[134824]=0;break i;case 4:if(!(A=Qt(l,89360)))break i;if(wa(Me+352|0,A,160),u[Me+352|0]&&!nr(199328,Me+352|0)){d[134760]=1,d[199328]=0,r=16384;break c}if((0|(A=rn(Me+352|0)))<0)break i;e[Me+20>>2]=A,e[Me+16>>2]=1,dA(A=Me+352|0,89460,Me+16|0),PA(e[Ve>>2]+189424|0,A),e[Ve>>2]=e[Ve>>2]+EA(A);break i;case 10:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=134912+(r<<6)|0)>>2]=11,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1;C:if(A=Qt(l,89514)){if(wa(Me+352|0,A,160),e[34441]){if((0|(A=rn(Me+352|0)))<0||0|At[e[34441]](1,A+e[33282]|0,Qe))break C;e[Me+68>>2]=A,e[Me+64>>2]=1,dA(Me+352|0,89658,Me- -64|0)}else{if(!Qe|u[Me+352|0]==47?A=li(Me+352|0):(e[Me+48>>2]=Qe,e[Me+52>>2]=Me+352,dA(A=Me+96|0,89564,Me+48|0),A=li(A)),(0|A)<0)break C;e[Me+36>>2]=A,e[Me+32>>2]=1,dA(Me+352|0,89623,Me+32|0)}A=Me+352|0,PA(e[Ve>>2]+189424|0,A),e[Ve>>2]=e[Ve>>2]+EA(A),e[4+(134912+(r<<6)|0)>>2]=1}if(Cr(Ve,e[33709]),(0|bA)==47){ba(11,Ve),r=16384;break c}d[134772]=1,r=16384;break c;case 42:ba(43,Ve),d[134772]=0,r=16384;break c;case 12:C:{if(A=Qt(l,89714)){if(r=16384,(I=(0|(A=oa(A,130336)))<0?2:A)>>>0<=2&&(A=e[Ve>>2],e[Me+84>>2]=I,e[Me+80>>2]=1,dA(A+189424|0,89770,Me+80|0),e[Ve>>2]=e[Ve>>2]+3,r=0),A=e[102784+(I<<2)>>2],!(o=Qt(l,89907)))break C;break l}if(r=16384,o=Qt(l,89907))break l;A=21;break u}if(I>>>0<3)break i;break u;case 0:(A=Qt(l,89965))&&(wa(r=Me+352|0,A,160),rn(r)),r=ae(l,1,e[33708])?147456:0;break c;case 1:r=ae(l,2,A)?147456:0;break c;case 5:r=0,e[I>>2]==6&&(r=ae(l,38,A),A=e[33708]),r=524358+(ae(l,6,A)|r)|0;break c;case 6:r=0,(0|(o=e[I>>2]))==6&&(r=ae(l,38,A),o=e[I>>2]),(0|o)==7&&(r=ae(l,39,e[33708])|r),r=524358+(r|ae(l,7,e[33708]))|0;break c;case 37:if(r=524328,e[I>>2]!=6)break c;r=ae(l,38,A)+524328|0;break c;case 38:if(r=524358,(-2&e[I>>2])!=6)break c;r=ae(l,39,A)+524358|0;break c;case 14:case 46:break c;case 3:break p;
2896default:break i}A=Qt(l,88893),r=Qt(l,88992),o=Qt(l,89153),l=oa(A,130272),r=oa(r,130320),A=Rn(o,0),e[Me>>2]=1,o=(0|A)<2?193:A- -64|0,r=(0|(A=(0|r)==1?19:l))==64?o:A,e[Me+4>>2]=r,dA(A=Me+352|0,89230,Me),PA(e[Ve>>2]+189424|0,A),A=e[Ve>>2]+EA(A)|0,e[Ve>>2]=A,e[33707]=A,e[33692]=r}r=0;break c}A=Rn(o,1),o=e[33722],ne(1,e[33713]),(0|(A=(0|(o=(0|O(A,o))/100<<8))/(0|O(e[36429],10))|0))<=199&&(A=(0|o)/(0|O(e[36428],10))|0),r=r||16384}o=A>>>5|0,l=A,r=((A=(0|A)>4095)?o>>>0>=4095?4095:o:l)+(A?8388608|r:r)|0}if(Y=Me+560|0,r){if(A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,!(131072&r)){s=r;break e}PA(189360,134784),s=r;break e}e[c+2156>>2]=32;c:{u:{if(!(r=e[33285])){if(I=0,A=e[33283],e[A>>2]==e[A+4>>2])continue;if(!(r=e[33285]))break u}e[33285]=0;break c}e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A)}e[c+2152>>2]=r,I=0;continue}e[c+2156>>2]=A+57344}if(u[134824])continue;if(o=e[c+2156>>2],!((0|(A=e[c+2152>>2]))!=10|e[47268]!=-1)){(0|(s=as(o)))==16384?(A=e[c+2148>>2],w[gA+(A<<1)>>1]=e[33284]-e[47353],e[Hr>>2]=A,s=524328,A=ar(e[c+2156>>2],A+189424|0)+e[c+2148>>2]|0):A=e[c+2148>>2],d[0|(A=A+189424|0)]=32,d[A+1|0]=0;break e}n:if((0|o)==1){if((0|A)!=66){if((0|A)!=86)break n;for(A=e[c+2148>>2],e[c+2148>>2]=A+1,d[A+189424|0]=0;;){o:{c:{u:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])break o;if(!(r=e[33285]))break u}e[33285]=0;break c}e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A)}if(e[c+2156>>2]=r,!(wr(r)||(0|(A=e[c+2148>>2]))>=799)){e[c+2148>>2]=A+1,d[A+189424|0]=e[c+2156>>2];continue}}break}d[e[c+2148>>2]+189424|0]=0,s=147456;break e}r=e[c+2148>>2],d[0|(A=r+189424|0)]=32,d[A+1|0]=32,d[A+2|0]=32,d[A+3|0]=0,e[c+2148>>2]=r+3;o:{c:{u:{l:{i:{p:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])break l;if(!(r=e[33285]))break p}e[33285]=0;break i}e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A)}if(e[c+2152>>2]=r,o=0,(0|r)!=48)break u;break c}r=e[c+2152>>2]}if(e[47208]=0,e[47201]=1,(0|r)==49)break o;for(o=e[33285],l=0;;){u:{if(!o){if(A=e[33283],e[A>>2]==e[A+4>>2])break u;r=e[c+2152>>2]}if(!(wr(r)|l>>>0>58)){e[188832+(l<<2)>>2]=e[c+2152>>2],(r=e[33285])?(e[33285]=0,o=0):(e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A),o=e[33285]),l=l+1|0,e[c+2152>>2]=r,A=e[c+2148>>2],e[c+2148>>2]=A+1,d[A+189424|0]=32;continue}}break}o=2,e[188832+(l<<2)>>2]=0}e[47201]=o}o:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])continue;if(!(r=e[33285]))break o}e[33285]=0,e[c+2152>>2]=r;continue}e[33284]=e[33284]+1,A=e[33283],e[c+2152>>2]=At[e[A+8>>2]](A);continue}xr=xr+1|0,r=0,A=e[U+340>>2];n:if(l=y[A>>1]){for(;;){if((65535&l)!=(0|o)){if(l=y[A+((r=r+2|0)<<1)>>1])continue;break n}break}o:switch(0|(A=y[A+(r<<1|2)>>1])){case 1:continue;case 0:break n;default:break o}e[c+2156>>2]=A,o=A}Se(o)?(re=1,r=e[c+2156>>2]):jA?(e[33285]=e[c+2152>>2],r=1328,e[c+2156>>2]=1328,e[c+2152>>2]=32,jA=0):(0|(r=e[c+2156>>2]))!=3851?(jA=0,(0|r)!=3405|e[c+2152>>2]!=8205||(r=3406,e[c+2156>>2]=3406)):(r=32,e[c+2156>>2]=32,jA=0);n:if(Bs(r)){if(e[U+8216>>2]=e[U+8216>>2]+1,e[33692]|e[47200]!=2||Bs(Oe)||(e[c+2544>>2]=0,e[c+2548>>2]=0,e[c+2304>>2]=84731,!ur(U,c+2304|0,c+2160|0,c+2544|0,0,0))||(Zt(U,A=c+2160|0,c+2544|0,-1,0),Ar(r=A,A=c+2336|0),e[c+80>>2]=A,dA(r=c+2240|0,85451,c+80|0),A=e[c+2148>>2],(0|(r=EA(r)+A|0))>=800))break n;PA(A+189424|0,c+2240|0),e[c+2148>>2]=r}else Ke(e[c+2156>>2])&&(e[U+8220>>2]=e[U+8220>>2]+1);if(r=e[c+2152>>2],A=e[c+2156>>2],e[47204])if((0|I)>0)I=I-1|0;else{if(!((0|A)!=91|(0|r)!=91)){o=0,I=-1;break A}I=(0|A)==93&&(0|r)==93?2:I}if((0|A)==10){for(o=e[33285],l=0;;){n:{if(!o){if(A=e[33283],e[A>>2]==e[A+4>>2])break n;r=e[c+2152>>2]}if(wr(r)){l=(e[c+2152>>2]==10)+l|0,(r=e[33285])?(e[33285]=0,o=0):(e[33284]=e[33284]+1,A=e[33283],r=0|At[e[A+8>>2]](A),o=e[33285]),e[c+2152>>2]=r;continue}}break}if((0|l)>0){s&&Xe(A=Br+189424|0,32,WA(c+2336|0,A)),A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],s=e[47203]?524358:O((0|l)>=3?3:l,30)+524328|0;break e}if(A=e[47268]<(0|xr),xr=0,!A){A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],s=262174;break e}}if(o=0,e[33692]|I)break A;if(A=0,!s)break r;if(wr(e[c+2156>>2])){A=s;break r}if(jt(e[c+2156>>2])&&j(e[c+2156>>2]))break r;e[33691]=e[c+2156>>2],d[0|(A=Br+189424|0)]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2];break e}jA&&(e[c+2148>>2]=ar(1328,e[c+2148>>2]+189424|0)+e[c+2148>>2]),s&&Xe(A=Br+189424|0,32,WA(c+2336|0,A)),A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0}s=589864;break e}if(!((0|(r=e[c+2156>>2]))!=46|e[c+2152>>2]!=46)){r:{a:{n:{if(!(r=e[33285])){if(r=e[33283],e[r>>2]==e[r+4>>2])break r;if(!(r=e[33285]))break n}e[33285]=0;break a}e[33284]=e[33284]+1,r=e[33283],r=0|At[e[r+8>>2]](r)}if(f=r,(0|r)==46)for(e[c+2152>>2]=32,e[c+2156>>2]=8230,f=e[33285];;){a:{n:{if(!f){if(r=e[33283],e[r>>2]==e[r+4>>2]){f=46;break r}if(!(f=e[33285]))break n}e[33285]=0,r=0;break a}e[33284]=e[33284]+1,r=e[33283],f=0|At[e[r+8>>2]](r),r=e[33285]}if((0|f)!=46)break r;e[c+2152>>2]=32,e[c+2156>>2]=8230,f=r}}(0|(r=e[c+2156>>2]))!=8230?e[33285]=f:(e[c+2152>>2]=f,r=8230)}if(bA=0,(0|(W=as(r)))!=16384){r:if(536621&W)for(r=e[33285];;){if(!r&&(r=e[33283],e[r>>2]==e[r+4>>2])||!(536621&as(e[c+2152>>2])))break r;(f=e[33285])?(e[33285]=0,r=0):(e[33284]=e[33284]+1,r=e[33283],f=0|At[e[r+8>>2]](r),r=e[33285]),e[c+2152>>2]=f}if(1048576&W){e[m+780>>2]=W>>>12&15,jA=1,I=0,s=A;continue}(wr(e[c+2152>>2])|32768&W||an(e[c+2152>>2])||(0|(r=e[c+2152>>2]))==63||(l=0,e[33285]||(r=e[33283],l=e[r>>2]==e[r+4>>2],r=e[c+2152>>2]),l||(0|r)==1))&&(bA=1)}if((0|(r=e[c+2156>>2]))==57404&&(e[c+2156>>
28962]=60,r=60),e[47201]){s=0;r:if(!(1<<(l=zr(r))&1879048255&&l>>>0<=30)){if(!((l=zr(r))>>>0>27)){if(116672&(I=1<<l))break r;if(134227968&I){s=!(1024&nA(r,l));break r}}s=1}if(!(u[134772]|!s)&&(e[47201]==1||Tt(188832,e[c+2156>>2]))){e[U+288>>2]=0,o=e[c+2156>>2],d[c+2336|0]=0,I=e[c+2152>>2],r=0;r:{a:if(!((0|(s=e[34064]))<=0))for(;;){if((0|o)==e[136272+(r<<4)>>2]){if(e[136276+(r<<4)>>2])break r;if(YA(0,r))break a;break r}if((0|s)==(0|(r=r+1|0)))break}r=-1}r:if((0|r)>=0)e[c>>2]=r,dA(c+2336|0,86007,c),e[33285]=I;else if((l=!bA)|(0|o)!=46|(0|I)==46||(e[c+2600>>2]=0,e[c+2604>>2]=0,e[c+2540>>2]=86036,!ur(U,c+2540|0,c+2544|0,c+2600|0,0,0))?r=es(c+2240|0,U,o,0):(Zt(U,r=c+2544|0,c+2600|0,-1,0),Ar(s=r,r=c+2160|0),e[c+64>>2]=r,dA(r=c+2304|0,85451,c- -64|0)),s=r,l|!e[c+2148>>2]|2&u[U+76|0]){for(r=e[33285],l=1;;){a:{n:{if(!r){if(r=e[33283],e[r>>2]==e[r+4>>2]|(0|o)==60|(0|o)!=(0|I))break a;if(l=l+1|0,I=e[33285])break n;e[33284]=e[33284]+1,r=e[33283],I=0|At[e[r+8>>2]](r),r=e[33285];continue}if((0|o)==60|(0|o)!=(0|I))break a;I=r,l=l+1|0}r=0,e[33285]=0;continue}break}if(e[c+2152>>2]=I,bA&&(e[33285]=I),(0|l)==1){e[c+16>>2]=s,dA(c+2336|0,86219,c+16|0);break r}if((0|l)<=3){if(d[c+2336|0]=0,(0|(r=e[50786]))<=299&&(e[c+2336>>2]=u[86728]|u[86729]<<8|u[86730]<<16|u[86731]<<24,w[c+2340>>1]=u[86732]|u[86733]<<8),(0|l)>0){for(;e[c+32>>2]=s,dA(r=c+2160|0,86219,c+32|0),I=l>>>0>1,ts(c+2336|0,r),l=l-1|0,I;);r=e[50786]}if((0|r)>299)break r;e[c+2160>>2]=u[86857]|u[86858]<<8|u[86859]<<16|u[86860]<<24,r=u[86860]|u[86861]<<8|u[86862]<<16|u[86863]<<24,d[c+2163|0]=r,d[c+2164|0]=r>>>8,d[c+2165|0]=r>>>16,d[c+2166|0]=r>>>24,ts(c+2336|0,c+2160|0);break r}e[c+56>>2]=s,e[c+52>>2]=l,e[c+48>>2]=s,dA(c+2336|0,86932,c+48|0)}else e[33691]=o,e[33285]=I,w[c+2336>>1]=32;if(l=EA(s=c+2336|0),PA((r=e[c+2148>>2])+189424|0,s),e[c+2148>>2]=r+l,bA){if((0|o)==45){s=16384;break e}if(s=as(o),!(2&u[U+76|0]|(0|r)<=0)){s=(-32769&s)==266270?262148:(28672&s)==4096?266244:262148;break e}if(!(524288&s)){s=(28672&s)==4096?266244:262148;break e}if((0|s)>=0)break e}o=e[c+2156>>2]}}if(o|!(2097152&W)||(r=PA(e[c+2148>>2]+189424|0,es(c+2336|0,U,e[c+2156>>2],1)),u[0|r]?(e[c+2148>>2]=e[c+2148>>2]+EA(r),W&=-28673,o=e[c+2156>>2]):o=0),I=0,bA){r:if(wr(f=e[c+2152>>2]))for(l=e[33285],r=0;;){if(!l&&(s=e[33283],e[s>>2]==e[s+4>>2])||!wr(f))break r;r=((0|f)==10)+r|0,(f=e[33285])?(e[33285]=0,l=0):(e[33284]=e[33284]+1,s=e[33283],f=0|At[e[s+8>>2]](s),l=e[33285])}else r=0;
2896s=(0|(I=e[c+2156>>2]))==46&&(0|r)<2?4194304|W:W;r:{if(!r){l=1,(0|I)!=44|(0|Oe)!=46|e[U+212>>2]!=26741|Qe-48>>>0>=10||f-48>>>0>=10&&!j(f)||(e[c+2156>>2]=1367,l=0),(0|(W=e[c+2156>>2]))!=46|(0|f)!=39||(I=l,W=e[33283],(0|(Me=e[W>>2]))==e[W+4>>2]?l=0:(l=0|At[e[W+8>>2]](W),e[W>>2]=Me),W=e[c+2156>>2],l=(0|l)!=115&I);a:if((0|W)!=46)l&=re;else{n:if(1&d[U+106|0]){if(!(Oe-48>>>0<10)&&((I=Oe-73|0)>>>0>15|!(1<<I&40969)||!(1<<(I=Qe-73|0)&40969&&I>>>0<=15||wr(Qe))))break n;l=Oe-48>>>0>=10?0:!j(f)&(0|f)!=45&l}if(j(f)&&(l=u[U+208|0]!=0&l),re){W=e[c+2156>>2];break a}W=32,e[c+2156>>2]=32,l=0}if(!(!l|(0|W)!=46|!e[47203]|(0|f)!=60)){Br=e[c+2148>>2],A=s;break r}if(!l)break r}if(A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,e[33285]=f,Oe-48>>>0<10&&(s=jt(f)?s:-4194305&s),(0|r)<2)break e;s=(0|s)==536621?536656:(0|s)==532520?532555:524358;break e}(e[33285]||(I=0,r=e[33283],e[r>>2]!=e[r+4>>2]))&&(I=0,wr(e[c+2152>>2])&&(e[33285]=f))}s=A}if(e[33712]!=1){if((0|o)!=(0|(r=e[c+2156>>2])))l=e[c+2148>>2],(0|r)==57404&&(r=60,e[c+2156>>2]=60);else{A:{if(an(o))r=57384;else{if(r=45,e[c+2156>>2]==45)break A;r=32}e[c+2156>>2]=r}l=e[c+2148>>2]}e[c+2148>>2]=ar(r,l+189424|0)+e[c+2148>>2],wr(e[c+2156>>2])||an(e[c+2156>>2])||(A=e[c+2148>>2],w[gA+(A<<1)>>1]=e[33284]-e[47353],(0|A)<=(l+1|0)||Xe(Mn+(l<<1)|0,255,A+~l<<1)),r=e[c+2148>>2],e[Hr>>2]=r;A:{r:{if((0|r)>725){if(!jt(e[c+2156>>2]))break r;r=e[c+2148>>2]}if((0|r)<796)continue;break A}if(r=e[c+2148>>2],!(e[c+2156>>2]-48>>>0>=10)&&(0|r)<796)continue}break}}d[0|(A=r+189424|0)]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],s=16384}Y=c+2608|0,jA=s,ps&&(A=e[m+780>>2],e[ps>>2]=A||jA>>>12&7),A=(m+5184|0)+(e[m+6800>>2]<<1)|0,w[A+6>>1]=0,w[A+2>>1]=0,w[A+4>>1]=32767,W=O(4095&jA,8388608&jA?320:10),s=189424;e:{A:{r:if(A=u[189424]){for(;;){if(!!(255&(A=A<<24>>24))&A>>>0<33){if(A=u[0|(s=s+1|0)])continue;break r}break}if(u[0|s])break A}W=(0|(r=W-(A=e[47566])|0))>0?r:0,e[47566]=W+A,jA=u[190268]?524288|jA:jA,e[U+8240>>2]=jA;break e}e[47566]=W,A=u[190268],e[U+8240>>2]=jA,A&&(rt=1,e[47568]=e[47568]+1,(0|(A=e[47569]))<=0||(A=A-1|0,e[47569]=A,A||(d[190280]=0)))}e[49572]=1,e[47572]=655360,e[47573]=0,e[U+8184>>2]=0,e[U+8188>>2]=0,A=0,e[U+288>>2]=0,e[(r=U- -8192|0)>>2]=0,e[r+4>>2]=0,e[U+8200>>2]=0,e[U+8224>>2]=0,e[U+8228>>2]=0,e[(r=U+8232|0)>>2]=0,e[r+4>>2]=0,d[m+786|0]=32,w[m+784>>1]=8192,e[m+6812>>2]=32,w[m+1588>>1]=3,e[m+1584>>2]=0,s=0;e:if(!((0|(r=e[m+6800>>2]))<=0)){for(;;){if(w[(m+5184|0)+(s<<1)>>1]>0)break e;if((0|r)==(0|(s=s+1|0)))break}s=r}if(r=y[(m+5184|0)+(s<<1)>>1],w[m+1592>>1]=r,r)for(;A=!!(65535&~r)+A|0,r=y[(m+5184|0)+((s=s+1|0)<<1)>>1];);for(d[m+1594|0]=A,l=3,gA=1,s=0;;){Qe=e[m+6808>>2],hr(m+6808|0,(Ve=(m+784|0)+l|0)-1|0),!u[U+170|0]|e[m+6808>>2]-48>>>0>=10||jt(Qe)&&(e[m+6808>>2]=97),le?e[m+6812>>2]=le:x&&hr(m+6812|0,x+189423|0),r=x;e:{A:if(s||(r=WA(m+6816|0,x+189424|0)+x|0,s=e[m+6816>>2])){if(re=WA(m+6804|0,A=r+189424|0),(0|s)==1){if(o=r-1|0,le=32,Oe=0,e[m+6812>>2]!=32){r=o,A=32;break A}x=0,s=r;r:{a:switch(u[0|A]-43|0){case 0:s=r+1|0,x=64;break r;case 2:break a;default:break r}s=r+1|0,x=96}if(d[0|(A=s+189424|0)]-48>>>0>=10)f=s+1|0,re=-1;else{for(re=ka(A);s=(A=s)+1|0,d[A+189424|0]-48>>>0<10;);f=s,s=A}if((0|(le=e[47350]))>247)A=0;else if(A=0,!((0|(s=d[s+189424|0]))<0)&&(s=Ia(84868,255&s,14))){r=(A=s-84868|0)+1|0,(0|re)==-1&&(re=e[105536+(r<<2)>>2],x=0);r:{a:switch(A-8|0){case 0:e[49574]=0,e[49573]=re;break r;case 4:break a;default:break r}(0|re)>=3?d[199304]=1:d[199304]=0}A=1,e[47350]=le+1,e[198304+(le<<2)>>2]=(r+x|0)+(re<<8),r=f}le=e[m+6812>>2],Xe(o+189424|0,32,r-o|0),os=A+os|0,s=0;break e}le=0,(0|s)==32|e[49573]!=36?(Oe=0,A=s):(e[m+6812>>2]!=32|e[m+6804>>2]!=32||(e[49573]=20),Oe=0,A=Yn(s,U))}else e[m+6804>>2]=32,Oe=1,le=0,re=0,A=32;A:if(or){if(or=1,gA=8,s=0,(0|A)!=93|e[m+6804>>2]!=93)break A;r=r+1|0,A=32,or=0}else if((240&(s=e[49573]))!=64)if(or=0,16&s)s=0;else{r:{a:{n:{o:{if(!((0|(f=(0|A)==8242||(0|A)==8217||(0|A)==146||(0|A)==180?39:A))!=8216&(0|f)!=63))if(jt(e[m+6808>>2])){if(f=A,jt(e[m+6804>>2])){f=39;break o}}else f=A;c:{if((0|f)!=1367){if((0|f)==1328){_|=1024,f=32;break o}if((A=f-44032|0)>>>0>11183)break o;if(o=((s=((I=65535&A)>>>0)/28|0)>>>0)%21|0,A=A-O(s,28)&65535,f-50500>>>0>587)break c;s=A?A+4519|0:0,o=o+4449|0;break a}_|=131072,Br=e[m+6804>>2],A=e[m+6812>>2],f=32;break n}s=50500+(A+O(o,28)|0)|0,o=(I>>>0)/588|4352;break a}if(Br=e[m+6804>>2],A=e[m+6812>>2],!((s=f-12592|0)>>>0>51)){o=4352|u[s+103296|0],s=0;break a}}c=r+189424|0;n:if(!((0|(s=e[U+212>>2]))!=28268&(0|s)!=24934|(0|f)!=39)&&!Ke(A)&&(WA(m+6820|0,c+1|0),hn(e[m+6820>>2]))){o=601,s=0;o:switch(Br-110|0){case 6:break a;case 0:break o;default:break n}if(e[U+212>>2]!=24934)break a;d[0|c]=32;break a}if(e[m+6824>>2]=32,(0|(A=e[49897]))>0)e[49897]=A-1,s=0;else{if(!f){s=0,o=0;break r}n:{o:{c:{u:if((bA=e[U+180>>2])&&(I=f,(Me=Bs(f))&&(I=Yn(f,U)),!mi(bA)))for(;;){e[m+16>>2]=0,e[m+624>>2]=I,A=WA(m+16|0,bA)+bA|0;l:if(e[m+624>>2]==e[m+16>>2]){if(u[0|A]){for(o=1,Wt=0,s=c;ir=WA(m+16|0,A),xr=WA(m+624|0,s),Hr=Yn(e[m+624>>2],U),e[m+624>>2]=Hr,s=s+xr|0,Wt=(xr=(0|Hr)==e[m+16>>2])+Wt|0,o&=xr,u[0|(A=A+ir|0)];);if(!o)break l;e[49897]=Wt}if(!(A=A+1|0))break u;if(8&u[188788]&&(e[m>>2]=bA,e[m+4>>2]=A,rr(e[47195],85187,m)),A=WA(m+6828|0,A)+A|0,u[0|A])break c;s=0;break o}for(;s=A,A=A+1|0,u[0|s];);for(;u[0|(s=(A=s)+1|0)];);if(mi(bA=A+2|0))break}s=0,o=f;break n}WA(m+6824|0,A),Me&&Bs(Br)&&(e[m+6824>>2]=gn(e[m+6824>>2])),s=e[m+6824>>2]}o=e[m+6828>>2],_|=2097152,Me&&(o=gn(o))}if((0|o)!=8)break a}o=r;break e}s?e[m+6804>>2]=s:s=0}jt(o)||hn(o)||Tt(e[U+336>>2],o)||!jt(e[m+6808>>2])|!(!u[U+170|0]|o-48>>>0>=10)&e[m+6804>>2]-48>>>0>=10||(o=32,AA=1);r:{a:{n:{o:{c:{if(e[m+6808>>2]-48>>>0<10){if(o-48>>>0<10){A=P;break c}if(1<<(A=o-32|0)&20481&&A>>>0<=14)break o;AA=1}else if(A=0,e[m+6812>>2]!=44||(A=P,(0|o)!=44))break c;o=32;break o}if((0|o)==91&&((0|(f=e[m+6804>>2]))==2||(o=91,(0|f)==91&&e[47204])))break n;P=A}if(jt(o)){o:{c:{u:{if(jt(e[m+6808>>2])){if(!u[U+171|0]||(A=e[m+6808>>2],!((0|o)>12352)&&(0|A)<12353))break u}else A=e[m+6808>>2];if(Rr=Tt(e[U+336>>2],A)?Rr:0,(0|(A=e[m+6808>>2]))!=32&&!Tt(e[U+336>>2],A)){A=32,Z=an(e[m+6808>>2])?Z:256|Z;break c}_=Bs(o)?2|_:_,e[m+6808>>2]!=32|d[Ve-2|0]-48>>>0>=10|e[m+6812>>2]-48>>>0<10||(d[(m+784|0)+l|0]=32,A=1588+(O(zA,12)+m|0)|0,w[A>>1]=y[A>>1]+1,l=l+1|0)}if(A=32,(0|o)==32)break o;if(Rr=Rr+1|0,(0|(f=e[U+600>>2]))<=0){A=o;break o}if(!((0|o)<=591&(0|(I=e[m+6808>>2]))>=(0|f))){if((0|o)<(0|f)){A=o;break o}if((0|Rr)<2){A=o;break o}if(!((0|I)<=591)){A=o;break o}}if(!jt(I)){A=o;break o}_|=16384,Z|=128}AA=1}if(ua=ua+1|0,Bs(A)){if(f=Yn(A,U),e[U- -64>>
28962]){A=Js?f:712,s=Js?s:f,Js=1;break A}if(j(e[m+6812>>2])){if(e[m+6808>>2]==32){A=f;break A}if(A=32,e[U+212>>2]!=26465)break r;for(o=85240,I=(m+784|0)+l|0,re=0;;){if(c=EA(o),u[0|(Qe=I-c|0)]==32&&!Xr(Qe+1|0,o,c=c-1|0)){if((0|(o=d[o+c|0]))==(0|f)){A=f;break A}if((0|o)==65&&On(U,f)){A=f;break A}}if(o=e[131184+((re=re+1|0)<<2)>>2],(0|re)==11)break}break r}if(A=32,(0|f)==32)break A;if(!Bs(e[m+6812>>2])){A=f;break A}if(!j(e[m+6804>>2])){A=f;break A}if(WA(m+16|0,189424+(r+re|0)|0),!(e[U+212>>2]!=28268|(0|Rr)!=2|(0|f)!=106|e[m+6812>>2]!=73)){A=f;break A}if(e[m+6808>>2]==32){A=f;break A}if(!jt(e[m+16>>2])){A=f;break A}Z|=256,le=32,AA=1;break A}if(!gA){gA=0;break A}if((0|Rr)<3){gA=0;break A}if((0|A)!=115){gA=0;break A}if(e[U+212>>2]!=25966){gA=0;break A}if(e[m+6804>>2]!=32){gA=0;break A}if(gA|=4,A=32,u[(o=l+m|0)+783|0]!=39)break A;d[o+783|0]=32;break A}A=32;o:{c:{u:{l:{i:switch(o-39|0){default:if((0|o)==95)break A;case 1:case 2:case 3:case 4:case 5:if(o-48>>>0>=10||u[U+170|0]&&jt(e[m+6808>>2])&&!((f=e[m+6804>>2])-48>>>0<10|f-2406>>>0<10))break o;if((0|(I=e[m+6808>>2]))==32)break c;if(f=e[m+6808>>2],I-48>>>0<10)break u;if((0|(I=f))==(0|(f=e[U+128>>2])))break l;AA=1;break A;case 6:if(!hn(e[m+6812>>2])&&jt(e[m+6804>>2])){if(e[m+6808>>2]!=32){AA=1;break A}if(_|=128,(0|zA)<=0)break A;o=1572+(O(zA,12)+m|0)|0,e[o>>2]=16384|e[o>>2];break A}if(o=e[m+6804>>2],!(e[m+6812>>2]!=32|(0|o)!=32)){Ot=4;break A}if((0|o)==45){r=r+1|0,Ot=4;break A}if(A=45,e[m+6808>>2]!=32||!jt(Qe)||jt(e[m+6812>>2]))break A;d[(m+784|0)+l|0]=32,o=1588+(O(zA,12)+m|0)|0,w[o>>1]=y[o>>1]+1,l=l+1|0;break A;case 7:if(e[m+6808>>2]==46){AA=1;break A}if(A=46,(0|zA)<=0||(o=1572+(O(zA,12)+m|0)|0,1&d[o+1|0])||!jt(e[m+6812>>2]))break A;e[o>>2]=65536|e[o>>2],A=(A=hn(e[m+6804>>2]))||e[m+6804>>2]==45?32:46;break A;case 0:break i}i:{if((0|(f=e[m+6812>>2]))!=46||(o=115,e[m+6804>>2]!=115)){if(!Se(f))break i;o=e[m+6804>>2]}if(jt(o))break a}if(1&(o=e[U+88>>2])){if(jt(e[m+6804>>2]))break a;o=e[U+88>>2]}if(2&o&&jt(e[m+6812>>2]))break a;if(!(!Tt(e[U+332>>2],e[m+6812>>2])|(0|Qe)!=32)){r=(e[m+6804>>2]==32)+r|0;break a}if(f=(0|(o=e[m+6808>>2]))!=115|da,da=0,!(1&f))break A;da=!!(0|hn(o)),Ot=4;break A}if((0|f)==44&P){AA=1;break A}P=1;break o}if((0|f)!=32)break o}jt(Qe)&&(jt(e[m+6812>>2])||(d[(m+784|0)+l|0]=32,A=1588+(O(zA,12)+m|0)|0,w[A>>1]=y[A>>1]+1,l=l+1|0))}A=o;break A}or=1,o=r+1|0,P=A;break e}A=39,da=0;break A}AA=1,le=32}else{if(A-48>>>0<10){s=0,o=(0|(f=e[49574]+1|0))>(15&e[49573]),e[49574]=o?0:f,A=o?32:A,AA|=o,or=0;break A}s=0,e[49574]=0,A=(o=e[m+6808>>2]-48>>>0<10)?32:A,AA|=o,or=0}if(hn(A)){if(e[m+6808>>2]==32){_|=262144,o=r;break e}if(o=e[m+6816>>2]-9>>>0<2,I=1&AA){re=0;A:if(!((0|b)>(0|(A=r-1|0))))for(;;){if(!(f=w[(m+5184|0)+(A<<1)>>1]))break A;if(re=((0|f)>0)+re|0,!((0|b)<=(0|(A=A-1|0))))break}d[1594+(O(zA,12)+m|0)|0]=re}if(Z=o?262144|Z:Z,d[(m+784|0)+l|0]=32,A=l+1|0,!((0|zA)>298||(o=(m+1584|0)+O(zA,12)|0,(0|(f=y[o+4>>1]))>=(0|A)))){if((0|os)<=0?b=e[o>>2]:(b=198300+(e[47350]<<2)|0,e[b>>2]=128|e[b>>2],os=0,b=64|e[o>>2]),c=e[47352],d[o+6|0]=c,e[o>>2]=b|(ua?gA:-2&gA)|(u[199304]?2048:0)|_,(0|c)>0){for(;_=(b=m+784|0)+A|0,b=b+(A=A-1|0)|0,d[0|_]=u[0|b],(0|A)>(0|f););d[0|b]=32,w[o+4>>1]=f+1,A=l+2|0}f=(m+1584|0)+O(zA=zA+1|0,12)|0,e[f>>2]=0,w[f+4>>1]=A,l=r;A:if(!((0|(o=e[m+6800>>2]))<=(0|r))){for(;;){if(w[(m+5184|0)+(l<<1)>>1]>0)break A;if((0|o)==(0|(l=l+1|0)))break}l=o}if(re=y[(m+5184|0)+(l<<1)>>1],w[f+8>>1]=re,ua=0,o=0,re)for(;o=!!(65535&~re)+o|0,re=y[(m+5184|0)+((l=l+1|0)<<1)>>1];);d[f+10|0]=o,e[47352]=0,gA=1,_=Z,Z=0,Js=0}AA=0,s=I?0:s,o=I?x:r}else(0|l)>795?(o=r,r=b,A=l):(A=ar(A,(m+784|0)+l|0)+l|0,o=r,r=b);e[47352]<(0|Ot)&&(e[47352]=Ot),Ot=0,b=r,l=A}if(Oe||(x=o,!((0|l)<799)))break}(0|os)<=0|zA||(A=198300+(e[47350]<<2)|0,e[A>>2]=128|e[A>>2],e[m+1584>>2]=64|e[m+1584>>2],zA=1),A=(m+784|0)+l|0,e[U+8204>>2]=A-1,r=0,d[0|A]=0,d[m+1590|0]=0,d[1590+(O(zA,12)+m|0)|0]=8;e:if((0|zA)<=0)e[m+1584>>2]=512|e[m+1584>>2],l=e[49572];else{A=zA-1|0;A:if((0|zA)!=1)for(s=A;;){if(!an(d[y[1588+(O(s,12)+m|0)>>1]+(m+784|0)|0])){r=s;break A}if(f=(0|s)>1,s=s-1|0,!f)break}if(r=(m+1584|0)+O(r,12)|0,e[r>>2]=16|e[r>>2],4194304&jA&&(A=(m+1584|0)+O(A,12)|0,256&(r=e[A>>2])||(e[A>>2]=65536|r)),e[m+1584>>2]=512|e[m+1584>>2],!((0|zA)<=0|(0|(l=e[49572]))>990))for(f=3|(A=m+624|0),I=2|A,le=m+754|0,Oe=!(4194304&jA),x=0,b=0;;){e[47354]=e[47354]+1;A:{if((0|(A=e[49827]))<=0||(A=A-1|0,e[49827]=A,A)){if(u[190280])break A}else d[190280]=0;A=y[1588+(O(x,12)+m|0)>>1]+(m+784|0)|0;r:if(!(d[0|A]-48>>>0>=10)&&(r=m+624|0,s=A,e[U+112>>2]!=1227133512)){for(;;){a:{if(d[0|s]-48>>>0<10)d[0|r]=u[0|s],r=r+1|0,s=s+1|0;else{if(e[U+124>>2]!=d[0|s]|u[s+1|0]!=32||(l=s+2|0,u[s+3|0]==32|d[0|l]-48>>>0>=10|u[s+4|0]==32))break a;x=x+1|0,s=l}if(r>>>0<le>>>0)continue;break r}break}Xe(A+(r=r-(P=m+624|0)|0)|0,32,(s=(l=s-A|0)-r|0)>>>0<=l>>>0?s:0),LA(A,P,r)}for(r=0;s=r,r=r+1|0,d[A+s|0]-48>>>0<10;);r:if(s-5>>>0<=27){for(d[m+626|0]=32,w[m+624>>1]=8224,u[0|A]!=48&e[U+132>>2]>=(0|s)||(r=(m+1584|0)+O(x,12)|0,e[r>>2]=524288|e[r>>2]),Z=(m+1584|0)+O(x,12)|0,re=0,l=f;r=A,!((A=d[0|A])-48>>>0>=10&(0|A)!=e[U+128>>2])&&(d[0|l]=A,A=l+1|0,P=s,(0|(s=s-1|0))<=0?l=A:e[U+112>>2]>>>s&1?(c=e[Z+4>>2],_=(m+16|0)+O(re,12)|0,e[_>>2]=e[Z>>2],e[_+4>>2]=c,e[_+8>>2]=e[Z+8>>2],re=re+1|0,(0|(_=e[U+124>>2]))!=32&&(d[l+1|0]=_,A=l+2|0),d[0|A]=32,l=A+1|0,8&u[Z+2|0]||((Ot=e[U+112>>2])>>>P-2&1&&(d[A+1|0]=48,d[A+2|0]=48,Ot=e[U+112>>2],l=A+3|0),Ot>>>
vendor: 8,017 bytes, line 2896
2896P-3&1&&(d[0|l]=48,l=l+1|0))):l=A,A=r+1|0,l>>>0<le>>>0););if(s=e[Z+4>>2],A=(m+16|0)+O(re,12)|0,e[A>>2]=e[Z>>2],e[A+4>>2]=s,s=e[Z+20>>2],e[A+16>>2]=e[Z+16>>2],e[A+20>>2]=s,s=e[Z+12>>2],e[A+8>>2]=e[Z+8>>2],e[A+12>>2]=s,s=1,(0|re)>0)for(;A=(m+16|0)+O(s,12)|0,e[A>>2]=-262209&e[A>>2],(0|re)>=(0|(s=s+1|0)););if(A=u[r+4|0]|u[r+5|0]<<8|u[r+6|0]<<16|u[r+7|0]<<24,s=u[0|r]|u[r+1|0]<<8|u[r+2|0]<<16|u[r+3|0]<<24,d[0|l]=s,d[l+1|0]=s>>>8,d[l+2|0]=s>>>16,d[l+3|0]=s>>>24,d[l+4|0]=A,d[l+5|0]=A>>>8,d[l+6|0]=A>>>16,d[l+7|0]=A>>>24,A=u[r+12|0]|u[r+13|0]<<8|u[r+14|0]<<16|u[r+15|0]<<24,r=u[r+8|0]|u[r+9|0]<<8|u[r+10|0]<<16|u[r+11|0]<<24,d[l+8|0]=r,d[l+9|0]=r>>>8,d[l+10|0]=r>>>16,d[l+11|0]=r>>>24,d[l+12|0]=A,d[l+13|0]=A>>>8,d[l+14|0]=A>>>16,d[l+15|0]=A>>>24,d[l+16|0]=0,l>>>0<=f>>>0)break r;for(A=u[Z+6|0],re=0,s=f;;){for(b=ea(U,s,(m+16|0)+O(re,12)|0,255&A);A=u[0|s],s=s+1|0,(0|A)!=32;);if(A=0,d[Z+6|0]=0,re=re+1|0,!(s>>>0<l>>>0))break}}else{if(e[47352]=0,b=ea(U,A,r=(m+1584|0)+O(x,12)|0,u[r+6|0]),(0|(s=e[47352]))>u[r+18|0]&&(d[r+18|0]=s,e[47352]=0),!(!(4096&b)|u[0|A]==32))for(;Xe(m+624|0,0,150),e[m+624>>2]=538976288,e[m+628>>2]=538976288,d[m+632|0]=32,ea(U,LA(I,A,s=WA(m+16|0,A)),r,0),u[0|(A=A+s|0)]!=32;);50331648&b&&(W=(A=Oe|(~e[33264]+zA|0)!=(0|x))?W:10,A|!ps||(e[ps>>2]=4,W=10))}if(128&b&&!((0|(r=e[33264]))<=0)){if(A=0,s=r,l=3&r)for(;P=(m+1584|0)+O(s+x|0,12)|0,e[P>>2]=1048576|e[P>>2],s=s-1|0,(0|l)!=(0|(A=A+1|0)););if(r>>>0>=4)for(;A=(m+1584|0)+O(s+x|0,12)|0,e[A>>2]=1048576|e[A>>2],e[(r=A-12|0)>>2]=1048576|e[r>>2],e[(r=A-24|0)>>2]=1048576|e[r>>2],e[(A=A-36|0)>>2]=1048576|e[A>>2],s=s-4|0;);e[33264]=s}}if(l=e[49572],(0|zA)<=(0|(x=x+1|0)))break e;if(!((0|l)<991))break}}if((0|(s=e[47351]))<(0|(f=e[47350]))){for(le=e[47202],Oe=e[49846],re=e[47352];;){A=(r=e[198304+(s<<2)>>2])>>8;e:{A:switch((31&r)-9|0){case 0:le=A;break e;case 4:Oe=A;break e;case 3:break A;default:break e}re=r>>>0>=256?A+re|0:0}if(!(!(128&r)&(0|f)>(0|(s=s+1|0))))break}e[47352]=re,e[47351]=s,e[49846]=Oe,e[47202]=le}e[49572]=l+2,e[(A=190288+(l<<3)|0)>>2]=589824,w[A+4>>1]=o,e[A+8>>2]=589824,w[A+12>>1]=o,r=zA&&e[47199]?W:10,e[33285]?A=0:(A=e[33283],A=e[A>>2]==e[A+4>>2]),W=A?r:W,x=rt,f=0,zA=0,Y=I=Y-32192|0,e[I+24>>2]=0,e[I+28>>2]=0,e[I+16>>2]=0,e[I+20>>2]=0,e[I+8>>2]=0,e[I+12>>2]=0,e[I>>2]=0,e[I+4>>2]=0,o=e[49572],c=y[190284+(o<<3)>>1];e:{if((0|(s=o-3|0))<0)A=s;else{for(;;){if(f=(0|(r=127&u[(A=190288+(s<<3)|0)+3|0]))<(0|f)?f:r,y[A+4>>1])A=s;else if(A=-1,r=(0|s)>0,s=s-1|0,r)continue;break}if(f>>>0>3)break e}for(;;){if((0|(A=A-1|0))<0)break e;if(64&u[0|(r=190288+(A<<3)|0)]){d[r+3|0]=4;break e}if(!(u[r+3|0]<4))break}}if(A=e[U+292>>2],s=0,(0|o)<=0)f=0;else for(P=-1,f=0;;){r=A,e[U+292>>2]!=(0|A)&&(w[(A=190288+(s<<3)|0)>>1]=32|y[A>>1]),(0|f)>0&&(Z=e[(b=190288+(s<<3)|0)+4>>2],e[(l=(A=s-f<<3)+190288|0)>>2]=e[b>>2],e[l+4>>2]=Z,(0|P)!=-1&&(w[4+(A+190288|0)>>1]=P),P=-1);e:{if(u[2+((l=s<<3)+190288|0)|0]==21){if(A=u[(b=l+190288|0)+7|0],2&u[0|b])break e;A:if((0|A)!=(0|r)){if(b=u[10+(l+190288|0)|0]-9|0){if((0|b)==12)break A;break e}if(u[18+(l+190288|0)|0]!=21)break e}(0|P)==-1&&(P=(A=y[4+(l+190288|0)>>1])||-1),f=f+1|0}A=r}if((0|o)==(0|(s=s+1|0)))break}if(e[49572]=o-f,is(A),(r=e[U+36>>2])&&!((0|(A=(f=e[49572])-1|0))<0))for(le=256&r,_=4&r,Oe=8&r,Z=15&r,AA=16&r,rt=2&r,r=r>>>8&1,s=0;;){if(l=f,o=s,f=A,(0|(A=u[(b=(gA=A<<3)+190288|0)+2|0]))==21){e:{A:{if((0|(s=l-2|0))>=0)for(;;){if(u[2+((A=s<<3)+190288|0)|0]==21)break A;if(A=(0|s)>0,s=s-1|0,!A)break}A=e[U+292>>2];break e}A=u[7+(A+190288|0)|0]}is(A),A=u[b+2|0]}if(s=o,(A=e[144464+((255&A)<<2)>>2])&&(s=r,!(32&u[0|b]))){s=u[A+11|0],P=0,rt&&((0|(l=u[0|A]))!=118&(0|l)!=82||(o=AA?0:o,P=1));e:{A:{r:{a:switch((l=253&s)-4|0){case 1:break r;case 0:break a;default:break A}if(Z&&(s=1,!o)||(0|(s=o))!=2||(s=2,!(A=u[A+13|0])))break e;d[b+2|0]=A;break e}if(Z&&(s=2,!o)||(0|(s=o))!=1||(s=1,!(A=u[A+13|0])))break e;d[b+2|0]=A;break e}s=0,Oe&&(s=l?o:0)}s=A=P?0:s,y[4+(gA+190288|0)>>1]&&(s=A=_?0:A,le&&(s=A||1))}if(!((0|(A=f-1|0))>=0))break}if(is(e[U+292>>2]),e[49572]<=0)AA=-2,s=0;else{for(s=-1,o=0,b=0,Oe=0;;){A=b<<3,(0|s)!=-1&&(w[4+(A+190288|0)>>1]=s),u[(P=A+190288|0)+2|0]==21&&is(u[7+(A+190288|0)|0]),Z=e[49572];e:{if(!(32&u[0|(l=A+190288|0)])){o=(0|(r=Z-1|0))>(0|b)?e[144464+(u[10+(A+190288|0)|0]<<2)>>2]:o,!(y[l+12>>1]|(0|r)==(0|b))&&(re=0,u[o+11|0]|!o)||(re=1),f=u[P+2|0];A:if(!((0|(AA=e[49848]))<=0))for(r=A+190288|0,s=0;;){if(le=O(s,3),u[le+199408|0]==(255&f)&&!((_=u[2+(le+199408|0)|0])&(1^re)|(4&u[r+3|0]?2&_:0)|(y[r+4>>1]?0:4&_))){if(f=u[1+(le+199408|0)|0],d[P+2|0]=f,!(2&u[e[144464+(f<<2)>>2]+4|0])|u[r+3|0]<2)break A;d[r+3|0]=0;break A}if((0|AA)==(0|(s=s+1|0)))break}if(!(255&f)){s=y[4+(A+190288|0)>>1];break e}}s=e[l+4>>2],A=(I+32|0)+(Oe<<5)|0,r=e[l>>2],e[A>>2]=r,e[A+4>>2]=s,r=e[144464+(r>>>14&1020)>>2],e[A+8>>2]=r,d[A+17|0]=u[r+11|0],Oe=Oe+1|0,s=-1}if(!((0|Oe)<1e3&(0|Z)>(0|(b=b+1|0))))break}if(f=0,s=0,!((0|(AA=Oe-2|0))<=0))for(;;){e:if(y[4+((I+32|0)+(f<<5)|0)>>1]){for(r=(0|f)>(0|AA)?f:AA,s=0,A=f;;){if((0|A)!=(0|r)){if(s=(0|s)>(0|(l=u[3+((o=I+32|0)+(A<<5)|0)|0]))?s:l,!y[4+(o+((A=A+1|0)<<5)|0)>>1])continue}else A=r;break}if((0|A)<=(0|f))break e;if(r=~f+A|0,o=0,l=A-f&7)for(;d[6+((I+32|0)+(f<<5)|0)|0]=s,f=f+1|0,(0|l)!=(0|(o=o+1|0)););if(r>>>0<7)break e;for(;d[(r=(I+32|0)+(f<<5)|0)+6|0]=s,d[r+38|0]=s,d[r+70|0]=s,d[r+102|0]=s,d[r+134|0]=s,d[r+166|0]=s,d[r+198|0]=s,d[r+230|0]=s,(0|(f=f+8|0))!=(0|A););}else A=f+1|0;if(f=A,!((0|AA)>(0|A)))break}}for(e[I+40>>2]=e[36125],is(e[U+292>>2]),Qe=(0|s)<4,b=1,le=1,Z=0,r=0,s=0,rt=0;;){e:{A:{r:{a:{if(r){if(o=(A=I+32|0)+((P=s-1|0)<<5)|0,Z=u[2+(A+(s<<5)|0)|0],(0|P)>0){if(A=b-(s=(0|b)>0)|0,P>>>0>=(f=s?b:2)>>>0)for(;l=(s=(I+32|0)+(f<<5)|0)-32|0,b=e[s+12>>2],e[l+8>>2]=e[s+8>>2],e[l+12>>2]=b,b=e[s+4>>2],e[l>>2]=e[s>>2],e[l+4>>2]=b,b=e[s+28>>2],e[l+24>>2]=e[s+24>>2],e[l+28>>2]=b,b=e[s+20>>2],e[l+16>>2]=e[s+16>>2],e[l+20>>2]=b,(0|P)>=(0|(f=f+1|0)););b=A}re=e[144464+(Z<<2)>>2],e[o>>2]=0,e[o+4>>2]=0,e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,d[o+2|0]=r,A=e[144464+(r<<2)>>2],e[o+8>>2]=A,Z=o}else{if((0|s)>=(0|AA)|(0|rt)>=997)break a;l=u[(o=(f=s<<5)+(I+32|0)|0)+2|0],A=e[144464+(l<<2)>>2],e[o+8>>2]=A,P=y[o+4>>1],(0|l)==21&&is(u[7+(f+(I+32|0)|0)|0]),b=P?s:b,re=e[144464+(u[o+34|0]<<2)>>2],e[o+40>>2]=re,P=s}if(!A){r=0,s=P+1|0;continue}if(ft(U,256,o,I+32040|0,I),(0|(s=e[I+32052>>2]))>0&&(f=(I+32|0)+(P<<5)|0,re=e[144464+(s<<2)>>2],e[f+40>>2]=re,d[f+34|0]=s,d[f+49|0]=u[re+11|0]),s=0,r)r=A;else if((0|(f=e[I+32056>>2]))<=0)r=A;else{r=e[144464+(f<<2)>>2],e[o+8>>2]=r,s=u[o+2|0],d[o+2|0]=f,f=y[o>>1];n:if(u[r+11|0]!=2)w[o>>1]=65531&f;else{if(w[o>>1]=4|f,u[A+11|0]==2)break n;d[o+3|0]=0}ft(U,256,o,I+32040|0,I)}if((0|(l=e[I+32048>>2]))<=0)f=r;else{if(f=e[144464+(l<<2)>>2],d[o+2|0]=l,e[o+8>>2]=f,A=u[f+11|0],Oe=1,(0|l)==1){gA=(0|A)==2;break A}l=y[o>>1];n:if((0|A)!=2)w[o>>1]=65531&l;else{if(w[o>>1]=4|l,u[r+11|0]==2)break n;d[o+3|0]=0}ft(U,256,o,I+32040|0,I)}if(gA=0,(0|(A=u[f+11|0]))!=2){Oe=0;break A}if(gA=1,Oe=0,A=2,u[o+3|0]>1){zA=0;break A}l=o+3|0,zA=zA+1|0,r=o;n:{if(8&(_=e[U+12>>2])){for(;;){o:switch(_=r,r=r+32|0,u[_+49|0]){case 0:break A;case 2:break o;default:continue}break}if(u[0|(r=_+35|0)]>1)break A;if(u[o+6|0]<=3&&(d[0|l]=0),u[_+38|0]<4)break n;break A}if(1&zA|(0|zA)<2)break A;if(2&_)break r;if(Qe)r=l;else if(r=l,y[o+36>>1])break r}d[0|r]=0;break A}e[36423]=rt+2,w[(A=145840+(rt<<5)|0)>>1]=0,d[A+2|0]=9,d[A+20|0]=2,e[A+12>>2]=W,w[A+4>>1]=c,d[A+17|0]=0,d[A+18|0]=0,e[A+8>>2]=e[36125],w[A+32>>1]=0,d[A+34|0]=9,d[A+52|0]=0,e[A+44>>2]=0,w[A+36>>1]=0,d[A+49|0]=0,d[A+50|0]=0,e[A+40>>2]=e[36126],is(e[U+292>>2]),Y=I+32192|0;break e}zA=1}if(!(8&(r=y[o+32>>1]))|(0|P)<=0||(l=u[re+11|0])>>>0>15|!(1<<l&457)||(s=u[re+10|0],w[o+32>>1]=8^r),Me=y[o+36>>1]){A:if(r=e[U+4>>2]){r:switch(0|A){default:s=512&r?11:s;break;case 0:break A;case 2:break r}if(u[re+11|0]==2){(l=12&r)&&(s=(0|l)!=12?23:11);r:if(gA){a:switch(3&r){case 2:s=10;break r;case 0:break r;default:break a}s=23}u[o+35|0]<4||(s=256&r?10:s)}}if(!((0|o)==(0|Z)|(0|rt)<=0)){A:{r:{a:switch(0|(r=7&e[U>>2])){case 0:break A;case 1:break a;default:break r}if(s-12>>
2896>0>4294967293)break A}s=u[r+101916|0]}s=e[47205]>0?24:s}}if(e[o+72>>2]=e[144464+(u[o+66|0]<<2)>>2],r=e[I+32060>>2],r=s||r||s,!Oe){d[(l=(_=rt<<5)+145840|0)+17|0]=A,e[l+8>>2]=f,d[l+16|0]=0,w[l>>1]=y[o>>1],d[l+3|0]=15&u[o+3|0],d[l+6|0]=u[o+6|0],s=u[o+7|0],w[l+4>>1]=0,d[l+7|0]=s,Oe=u[f+10|0],d[l+2|0]=Oe;A:if(s=y[o+4>>1]){if(w[l+4>>1]=s,x=1&x?5:1,d[(o=_+145840|0)+20|0]=x,s=le,le=0,!s){x=0;break A}d[o+20|0]=8|x,x=0}else d[20+(_+145840|0)|0]=0;e[(s=_+145840|0)+12>>2]=e[I+32084>>2]<<1,!Me|(0|Oe)!=24||(0|(o=e[47205]))<=0||(e[l+8>>2]=e[36126],e[s+12>>2]=O(o,14)),(1<<A&428?A>>>0<=8:0)|2&u[f+7|0]&&(e[s+12>>2]=128,d[l+16|0]=0),d[(A=_+145840|0)+21|0]=255,d[A+22|0]=255,w[A+18>>1]=5120,rt=rt+1|0}s=P+1|0;continue}break}w[88922]=1,e[44462]=0,os&&(w[145776+(e[36423]<<5)>>1]=2,A=198304+(e[47350]<<2)|0,e[A>>2]=128,e[(A=A-4|0)>>2]=128|e[A>>2]),d[190268]=jA>>>19&1,In&&(e[In>>2]=jA<<14>>31&189360)}Y=m+6832|0,AA=e[47192],gA=e[t+12>>2],r=0,l=0,b=0,_=0,Z=0,Ot=0,W=0,Y=c=Y-6e3|0;e:if(!((0|(o=(rt=e[36423])-1|0))<=0)){for(;d[2+(c+O(r,6)|0)|0]=0,4&u[(A=r<<5)+145840|0]?(s=c+O(_,6)|0,d[s+1|0]=0,A=A+145840|0,d[s+3|0]=u[A+49|0],A=u[A+3|0],d[0|s]=A,_=_+1|0,Ot=(A>>>0>3)+Ot|0):u[e[8+(A+145840|0)>>2]+10|0]!=27|(0|_)<=0||(A=(c+O(_,6)|0)-4|0,d[0|A]=4|u[0|A]),(0|o)!=(0|(r=r+1|0)););if(d[c+O(_,6)|0]=0,_)if(e[AA+148>>2]==1){if(!((0|rt)<=0)){for(A=-2&rt,s=1&rt,r=145840;b=u[r+17|0]==2&&u[r+3|0]>3?l:b,b=u[r+49|0]==2&&u[r+35|0]>3?1|l:b,r=r- -64|0,l=l+2|0,(0|A)!=(0|(Z=Z+2|0)););!s|u[r+17|0]!=2||(b=u[r+3|0]>3?l:b)}if(d[(f=(A=b<<5)+145840|0)+3|0]=7,e[AA+212>>2]==30313&&(u[(A=A+145840|0)+7|0]||(d[A+7|0]=Zr(55),rt=e[36423])),!((0|rt)<=0)){for(Z=0,r=145840,A=145840,l=P=e[36125],o=0,le=1;;){if(u[r+17|0]?x=e[36125]:(x=e[36125],P=(s=u[e[r+8>>2]+14|0]>50)?x:P,le|=s),s=u[r+20|0]?x:l,4&u[0|r]){x=u[r+7|0],l=e[144464+(x<<2)>>2];A:{if((0|(_=e[AA+212>>2]))==6840683){if(e[s>>2]!=49||(_=e[l>>2]-49|0)>>>0>5|!(1<<_&41))break A;d[A+7|0]=Zr(50),_=e[AA+212>>2]}if(!((0|_)!=6516078&(0|_)!=31336)){_=0,x||(o=Zr(1&(_=o|le)?13621:12593),d[r+7|0]=o,l=e[144464+(o<<2)>>2]),(0|b)!=(0|Z)|(1024|e[l>>2])!=13621||(d[f+3|0]=6),e[P>>2]==3420466&&(d[A+7|0]=Zr(e[l>>2]==3420466?13619:12594));r:{if(e[s>>2]==12597){if((0|(x=e[l>>2]))!=12597)break r;d[A+7|0]=Zr(13109)}x=e[l>>2]}o=_,(0|x)==12593&&((0|(x=e[P>>2]))==13621&&(d[r+7|0]=Zr(12850),x=e[P>>2]),(0|x)==13619&&(d[r+7|0]=Zr(13107),x=e[P>>2]),(0|x)==3420466&&(d[r+7|0]=Zr(13364)),d[r+3|0]=0)}}le=0,P=l,A=r}else l=s;if(r=r+32|0,!((0|(Z=Z+1|0))<(0|(s=e[36423]))))break}if(l=0,r=145840,!((0|s)<=0))for(;4&u[0|r]&&((A=u[r+7|0])||(d[r+7|0]=17,A=17),A=e[144464+(A<<2)>>2],d[r+21|0]=u[A+12|0],d[r+22|0]=u[A+13|0]),r=r+32|0,(0|s)!=(0|(l=l+1|0)););}}else{if(A=e[AA+152>>2],A=AA+O(Qe=(0|A)>7?1:A,6)|0,U=u[0|(Qe?A+637:AA+157)],jA=u[0|(Qe?636+(A+gA|0):156+(AA+gA|0))],d[133068]=(0|gA)==4,!((0|_)<=0)){for(Oe=_-1|0,re=gA-1>>>0>1,s=0,o=0;;){m=c+O(o,6)|0,W=((A=u[0|m])<<24>>24>3)+W|0;A:if((0|A)==6){A=o-3|0,r=o;r:{for(;;){if((0|r)<=(0|s)|(0|A)>=(0|r))break r;a:switch(f=c+O(r=r-1|0,6)|0,u[0|f]-4|0){case 2:break r;case 0:break a;default:continue}break}d[0|f]=3}r=o;r:{for(;;){if((0|_)<=(0|(r=r+1|0)))break r;a:switch(u[c+O(r,6)|0]-4|0){case 0:break r;case 2:break a;default:continue}break}d[m+2|0]=2,d[0|m]=5,A=s;break A}if(u[0|m]==6){d[m+2|0]=2,I=0;r:if((0|_)<=(0|(A=o+1|0)))f=o,or=0;else if(or=1,(0|(l=d[c+O(A,6)|0]))>4)f=o;else{for(b=(Ot-W|0)>1,f=o;;){if(r=A,(255&l)==4&&(A=b+1|0,b=1,!((0|A)<=1))){A=r;break r}if(or=(0|_)>(0|(A=r+1|0)),(0|A)==(0|_))break;if(f=r,(0|(l=d[c+O(A,6)|0]))>4)break r}f=Oe,A=_}l=-1,x=0,b=0,le=-1,Z=0,P=-1;r:{if((0|(r=s))<(0|A)){for(;l=(Me=(0|(P=d[c+O(r,6)|0]))>3)&&(0|l)<0?r-s|0:l,I=(Z=(0|b)>(0|P))?I:(0|b)<(0|P)?r:x,le=Me?r:le,x=Z?x:r,Me=(0|r)!=(0|f),b=Z?b:P,r=r+1|0,Me;);if(Z=x,P=le,(0|l)>=0)break r}l=A,x=Z,le=P}e[33269]=f-x,e[33268]=l,e[33270]=x,e[33271]=I;r:if(u[133068])e[33270]=A,e[33271]=A;else if((0|le)>=0){if((0|A)!=(0|_))break r;d[c+O(le,6)|0]=7}else d[c+O(x,6)|0]=7;Aa(c,Qe,s,A,jA),!or&!!(0|gA)||(jA=re?u[AA+156|0]:u[AA+157|0])}else A=s}else A=s;if((0|A)>=(0|o))s=A;else if(4&u[m+2|0]){for(s=o+1|0,l=-1,le=0,x=0,b=0,r=A,I=-1;l=(Z=(0|(f=d[c+O(r,6)|0]))>3)&&(0|l)<0?r-A|0:l,le=(P=(0|f)<(0|b))?le:(0|f)>(0|b)?r:x,I=Z?r:I,x=P?x:r,Z=(0|r)!=(0|o),b=P?b:f,r=r+1|0,Z;);e[33269]=o-x,e[33270]=x,e[33271]=le,e[33268]=(0|l)<0?s:l,u[133068]?(e[33270]=s,e[33271]=s):(0|I)>=0?d[c+O(I,6)|0]=7:d[c+O(x,6)|0]=7,Aa(c,Qe,A,s,U)}else s=A;if((0|_)==(0|(o=o+1|0)))break}if(!((0|s)>=(0|_))){for(l=-1,le=0,x=0,b=0,r=s,I=-1;l=(f=(0|(A=d[c+O(r,6)|0]))>3)&&(0|l)<0?r-s|0:l,le=(o=(0|A)<(0|b))?le:(0|A)>(0|b)?r:x,I=f?r:I,x=o?x:r,b=o?b:A,(0|_)!=(0|(r=r+1|0)););e[33270]=x,e[33271]=le,e[33269]=~x+_,e[33268]=(0|l)<0?_:l,u[133068]?(e[33270]=_,e[33271]=_):(0|I)>=0?d[c+O(I,6)|0]=7:d[c+O(x,6)|0]=7,Aa(c,Qe,s,_,jA)}}if((0|rt)<=0)break e;for(r=0,Z=0;;){if(P=s=(f=r<<5)+145840|0,A=c+O(Z,6)|0,l=u[0|A],d[s+3|0]=l,4&u[0|s]){o=f+145840|0,s=u[A+4|0],d[o+21|0]=s,b=u[A+5|0],d[o+16|0]=0,d[o+22|0]=b;A:{if(1&(x=u[A+2|0]))A=2;else{if(l>>>0<6)break A;A=u[A+1|0]}d[o+16|0]=A}s>>>0<=(255&b)>>>0?(A=b,b=s):(d[o+21|0]=b,d[o+22|0]=s,A=s),(s=u[7+(f+145840|0)|0])&&(A=(255&A)+(255&b)>>>1|0,s=e[144464+(s<<2)>>2],d[o+22|0]=A+u[s+13|0],d[o+21|0]=A+u[s+12|0]),2&x&&(d[P+3|0]=8|l),Z=Z+1|0}if((0|rt)==(0|(r=r+1|0)))break}}}if(Y=c+6e3|0,Z=e[47192],r=0,re=0,I=0,W=0,Y=c=Y-160|0,e[36423]>=2)for(gA=e[30450],l=1;;){if(l=(A=l)+1|0,_=u[(o=(b=A<<5)+145840|0)+3|0],2&(x=y[o>>1])){for(;(31&(f=e[198304+(W<<2)>>2]))==2&&(Vs(127&f,f>>>8|0),e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,x=e[50786],P=e[32972],(0|(s=e[P+84>>2]))>0&&(x=(0|O(s,x))/100|0),le=u[((0|(s=(0|x)>=359?359:x))<=80?80:s)+101856|0],s=(0|(s=(0|x)>=450?450:x))>399?6:(0|s)>379?7:le,e[32526]=(0|O(s,e[P+72>>2]))/256,e[32527]=(0|O(s,e[P+76>>2]))/256,e[32528]=(0|O(s,e[P+80>>2]))/256,s>>>0>7||(P=s-1|0,e[32528]=P,e[32526]=s,e[32527]=P)),W=W+1|0,!(128&f););x=y[o>>1]}P=l<<5,le=A-1|0,s=7&_;e:{A:{r:{a:{n:{o:{c:{u:{l:{i:switch(jA=u[17+(b+145840|0)|0],0|(f=4&x?2:jA)){case 2:break n;case 3:case 8:break o;case 5:break c;case 6:case 7:break u;case 4:break l;case 0:break i;default:break e}r=0;break e}if((0|(A=u[17+(145840+(le<<5)|0)|0]))!=6?(s=(0|A)==4?60:e[34063]>0||s>>>0<4?48:60,d[18+(b+145840|0)|0]=s):(s=25,d[18+(b+145840|0)|0]=25),!(16&u[0|Z])|!u[20+(b+145840|0)|0]||(d[18+(b+145840|0)|0]=60,s=60),64&u[e[8+(b+145840|0)>>2]+6|0]&&(s=s+30|0,d[18+(b+145840|0)|0]=s),r=0,!(8&x))break e;d[18+(b+145840|0)|0]=u[Z+164|0]+s;break e}!(o=u[(A=b+145840|0)+20|0])|1&d[e[A+8>>2]+7|0]&u[17+(145840+(le<<5)|0)|0]==2||(d[18+(b+145840|0)|0]=15),s=u[17+(P+145840|0)|0],8&u[e[8+(b+145840|0)>>2]+4|0]|s|u[17+(145840+(le<<5)|0)|0]!=8||(d[18+(b+145840|0)|0]=25),64&u[e[8+((A=le<<5)+145840|0)>>2]+5|0]&&(d[18+(b+145840|0)|0]=30),!o|!(16&e[Z>>2])||(d[18+(b+145840|0)|0]=30);u:if(u[20+(P+145840|0)|0]|!(32&u[e[8+(b+145840|0)>>2]+4|0])|(0|s)!=4)e[12+(b+145840|0)>>2]=256;else{if(o=b+145840|0,u[17+(A+145840|0)|0]==2){e[o+12>>2]=200;break u}e[o+12>>2]=150}if((0|f)!=7||(re|=(0|s)==2,(254&u[17+(A+145840|0)|0])!=2))break e;e[12+(b+145840|0)>>2]=e[12+(A+145840|0)>>2]+255>>>1;break e}(254&(s=u[17+((A=le<<5)+145840|0)|0]))==6|(0|s)==3|32&e[e[8+(A+145840|0)>>2]+4>>2]&&(d[18+(b+145840|0)|0]=30);c:if((254&(o=u[17+(P+145840|0)|0]))==2){re=u[20+(P+145840|0)|0]&&(0|o)!=2?re:1,d[(o=b+145840|0)+18|0]=40,_=0;u:{l:switch(0|s){case 0:if((A=e[12+(A+145840|0)>>2])>>>0>39)break u;_=40-A|0;break u;case 2:break u;default:break l}if(u[20+(b+145840|0)|0])break c;_=20;l:switch(s-3|0){case 1:if(_=0,!(8&u[e[8+(A+145840|0)>>2]+4|0]))break u;break c;case 0:break u;case 5:break l;default:break c}_=12}d[o+18|0]=_}if(!(16&u[0|Z])|!u[20+(b+145840|0)|0]||u[(A=b+145840|0)+18|0]>19)break e;d[A+18|0]=20;break e}o=u[Z+296|0],f=s=b+145840|0,e[s+12>>2]=256,d[s+19|0]=o;o:if(u[s+20|0]){x=25;c:switch(u[17+(145840+(le<<5)|0)|0]-2|0){case 0:if(x=12,1&d[e[8+(b+145840|0)>>2]+7|0])break o;break;case 1:break c;default:break o}d[18+(b+145840|0)|0]=x}if((0|(P=u[17+(P+145840|0)|0]))==2){I=1;break e}if(d[(o=b+145840|0)+22|0]=r,(254&u[17+((s=le<<5)+145840|0)|0])==2)break a;if(s=r,(0|(f=e[36423]))<=(0|A))break A;for(;;){if(u[17+((s=A<<5)+145840|0)|0]==2){s=u[22+(s+145840|0)|0],d[o+22|0]=s;break A}if((0|f)==(0|(A=A+1|0)))break}break r}if(AA=b+145840|0,Oe=s^s>>>0<2,s=(rt=8&_)?25:u[296+(Oe+Z|0)|0]-I|0,d[AA+19|0]=s,(e[36423]-3|0)>(0|A)||(0|(f=255&s))<=(0|(s=e[Z+52>>2]))||(d[AA+19|0]=s),s=0,_=0,!(x=u[o+52|0]))for(;f=e[o+40>>2],_=u[o+49|0]==2?(~e[f+4>>2]>>>20&1)+_|0:_,s=u[f+10|0]==27?2:s,f=o,o=o+32|0,!(x=u[f+84|0]););f=AA+96|0,A=(Qe=A+2<<5)+145840|0,e[34063]=_,m=u[e[o+40>>2]+10|0],P=P+145840|0,u[17+(Qe+145840|0)|0]|u[e[P+8>>2]+10|0]!=23?(o=f,f=A,A=P):o=b+145968|0,P=u[e[f+8>>2]+15|0];n:if(_)P=u[e[Z+96>>2]+(u[e[A+8>>2]+15|0]+O(P,10)|0)|0],u[A+17|0]!=8|(254&u[f+17|0])!=4||(P=8&u[e[o+8>>2]+4|0]?P-15|0:P);else{if(U=e[Z+100>>2],Qe=u[e[A+8>>
28962]+15|0],o=u[A+20|0],P=u[U+(Qe+O(o|u[f+20|0]?(0|P)==1:P,10)|0)|0],!o|!(32&u[0|Z]))break n;P=u[1+(U+O(Qe,10)|0)|0]+P>>>1|0}o=x>>>1|0,Qe=!_,x=(0|(P=(0|O(e[130104+(_?(0|_)==1?4:8:0)>>2],P))/128|0))<=8?8:P;n:if((0|Oe)!=7)rt&&(x=e[Z+200>>2]+x|0);else{if(x=(P=e[Z+200>>2])+x|0,!rt)break n;x=((0|P)/2|0)+x|0}P=o&Qe|(0|m)==27,(o=y[304+(Z+(Oe<<1)|0)>>1])||(o=y[Z+316>>1]),x=O(o<<16>>16,x),(_=u[(o=b+145840|0)+7|0])&&(Oe=u[e[144464+(_<<2)>>2]+14|0])&&(x=(0|O(x,Oe))/100|0),(P|(0|s)==2)==1&&(2097152&(s=e[Z+12>>2])||(x=(0|O(262144&s?282:256+((280-(u[e[8+(b+145840|0)>>2]+14|0]<<1)|0)/3|0)&65535,x))/256|0)),Oe=b+145840|0,s=O(e[32526],e[Z+196>>2]),rt=(0|jA)!=2?256:(0|((0|s)>(0|x)?x:s))/128|0,e[Oe+12>>2]=rt,(s=u[Oe+16|0])>>>0>=19&&(Ri(84371,28,gA),d[Oe+16|0]=0,_=u[o+7|0],s=0),x=s+1|0,(s=255&_)?(en(s,c+8|0),s=gi(e[c+132>>2])):s=e[129280+((255&x)<<2)>>2],P=b+145840|0,1&(I|re)&&(o=(b=le<<5)+145840|0,I=u[0|s],s=u[P+21|0],s=((0|O(I,u[P+22|0]-s|0))/256|0)+s|0,d[o+22|0]=s,r=(s-(r=(0|s)==255?255:r)|0)>16?s-16|0:r,d[o+21|0]=r,o=0,(0|r)<(0|s)&&(d[Oe+16|0]=x,o=2),e[(r=b+145840|0)+12>>2]=rt,d[r+16|0]=o,s=u[AA+19|0],d[r+19|0]=u[r+17|0]!=3&&s>>>0>18?18:s),r=(0|jA)!=2,o=-2&(s=y[A>>1]),w[A>>1]=o;n:{o:{c:switch(u[A+17|0]-3|0){case 5:if(u[f+17|0]==2)break n;o=1|s;break o;case 0:break c;default:break n}if(w[A>>1]=1|s,u[f+17|0]!=2&&e[e[A+8>>2]>>2]!=12146)break n}w[A>>1]=o}r?(0|(A=r<<4))<=((s=u[P+22|0])-(o=u[P+21|0])|0)||(o=(0|(A=s-A|0))>0?A:0,d[P+21|0]=o):(s=u[P+22|0],o=u[P+21|0]),A=255&o,r=((0|O(u[e[129280+(u[Oe+16|0]<<2)>>2]+127|0],s-A|0))/256|0)+A|0,I=0,re=0;break e}o=e[12+(s+145840|0)>>2],e[f+12>>2]=o,(0|jA)==3&&(o=e[32526],e[f+12>>2]=o),s=r;a:switch(P-5|0){case 0:e[f+12>>2]=(O(o,160)>>>0)/100;break r;case 2:break a;default:break A}e[f+12>>2]=(O(o,120)>>>0)/100}s=r}re=0,d[(A=b+145840|0)+16|0]=0,o=A,s=(A=255&s)-16|0,d[o+21|0]=A>>>0>=s>>>0?s:0}if(!(e[36423]>(0|l)))break}if(Y=c+160|0,15&(o=e[47197])|e[36456]){A=0,f=0,Y=s=Y-80|0;e:if((r=e[33222])||(e[33223]=500,r=ZA(500),e[33222]=r,r)){if(!((e[36423]-2|0)<2)){for(A=o>>8,Z=128&o?0:A,_=A&o<<24>>31,P=2&o,o=s+32|1,b=1;;){if(_r(s,e[(l=(le=b<<5)+145840|0)+8>>2],l,P,s+72|0),A=s+32|0,(13&(r=u[l+20|0]))==1&&(d[s+32|0]=32,A=o),!Z|(0|Z)!=32&!!(0|r)|b>>>0<2||(WA(s+76|0,s),e[s+76>>2]-880>>>0>4294967103||(A=ar(Z,A)+A|0)),4&u[0|l]&&((r=u[3+(le+145840|0)|0])>>>0<2||(r=r>>>0>=5?5:r,r=P?r>>>0>3?712:716:d[r+94144|0],e[s+76>>2]=r,A=ar(r,A)+A|0)),x=0,e[s+72>>2]=0,u[0|(r=s)])for(;r=WA(s+76|0,r)+r|0,e[s+72>>2]>>>x-1&1|!_|(0|x)<=0||(I=e[s+76>>2])-880>>>0>4294967103||di(I)&&(A=ar(_,A)+A|0),x=x+1|0,A=ar(e[s+76>>2],A)+A|0,u[0|r];);if(u[e[l+8>>2]+10|0]!=21&&(8&(r=y[l>>
28961])&&(A=_r(A,e[36128],l,P,0),r=y[l>>1]),!(4&r)|u[17+(le+145840|0)|0]==2||(A=_r(A,e[36136],l,P,0)),(r=u[7+(le+145840|0)|0])&&(A=_r(A,e[144464+(r<<2)>>2],l,P,0))),(A=(l=A-(s+32|0)|0)+f|0)>>>0<ee[33223])r=e[33222];else{if(r=A+500|0,e[33223]=r,!(r=OA(e[33222],r))){e[33223]=0,r=86135;break e}e[33222]=r}if(d[(x=l)+(l=s+32|0)|0]=0,PA(r+f|0,l),f=A,!((0|(b=b+1|0))<(e[36423]-2|0)))break}if(!r){r=86135;break e}}d[A+r|0]=0}else e[33223]=0,r=86135;Y=s+80|0,15&u[188788]&&(e[t>>2]=r,rr(e[47195],84367,t)),(A=e[36456])&&At[0|A](r)}u[190280]?(e[36423]=0,A=1):(ot(0),(A=e[t+8>>2])?(Y=r=Y+-64|0,Vt(r,A,60),na(r,1),s=0,(A=JA(r,0))&&(s=A,u[202976]&&(s=JA(202976,2))),Y=r- -64|0,e[44468]=s):s=e[44468],A=1,s&&(r=e[32972],(s=ZA(1344))&&(r=LA(s,r,1344),s=216192+(e[50758]<<4)|0,e[s>>2]=11,e[s+8>>2]=r,r=e[50758]+1|0,e[50758]=(0|r)<=169?r:0),e[44468]=0))}else A=0,d[190280]=0;else A=0,e[36423]=0,e[50758]=0,e[50757]=0;return Y=t+16|0,A}function nA(A,t){var r=0,s=0,o=0,l=0;r=1073741825;e:{A:{r:{a:{n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{x:{I:{B:{N:{L:{U:{y:{E:{Q:{F:{Ae:{R:{q:{_:{oe:{j:{Fe:{K:{f:{g:{re:{k:{se:{w:{s:{tA:{te:{t:{pe:{W:{me:{be:{rA:{de:{z:{Se:{v:{Oe:{$:{Ie:{we:{_e:{ze:{Ne:{Le:{Re:{je:{We:{ke:{sA:{ae:{Ve:{Ye:{Me:{He:{G:{Ee:{V:{mA:{hA:{CA:{bA:{IA:{wA:{kA:{MA:{EA:{vA:{xA:{BA:{yA:{DA:{TA:{PA:{GA:{QA:{FA:{SA:{OA:{_A:{zA:{NA:{LA:{RA:{jA:{WA:{VA:{YA:switch(0|t){case 0:t=A-9>>>0<5?1073741825:0,t=(A=(0|A)==133)?1073741825:t;break F;case 1:d:{S:{P:{O:{D:{T:{X:{Y:{Z:{ee:{ne:{le:{fe:{ge:{if((0|(t=-256&A))<=2047){if(!t)break ge;if((0|t)==1536)break fe;if((0|t)!=1792||(r=0,s=1,(0|A)!=1807))break d;break t}if((0|t)<=69631){if((0|t)==2048)break le;if((0|t)!=8192)break d;switch(r=131076,A-8204|0){case 1:break ne;case 0:break t;default:break ee}}if((0|t)==69632)break Z;if((0|t)!=917504)break d;switch(r=8388608,A-917505|0){case 62:break P;case 58:break O;case 57:break D;case 45:break T;case 43:break X;case 32:break Y;case 0:break t;default:break S}}if(r=16,(0|A)!=173)break d;break t}if(r=0,s=1,A-1536>>>0<6)break t;s=(0|A)==1757,t=(A=(0|A)==1564)?2:0;break Q}if(r=0,s=1,(0|A)!=2274)break d;break t}return ce=64,4}if(r=1073741826,(-2&A)==8206)break t;if(A-8234>>>0<5)return ce=0,2;if(r=128,A-8289>>>0<4||(r=2,A-8294>>>0<4))break t;if(r=8388608,A-8298>>>0>=6)break d;break t}t=!(A-69821&-17),A=0;break E}ce=536870976;break y}ce=268435520;break y}ce=-2147483584;break y}ce=134217792;break y}ce=67108928;break y}ce=1073741888;break y}if(r=131072,s=64,A-917536>>>0<96)break t}break s;case 2:d:{S:{P:{O:{D:{T:{X:{if((0|(t=-256&A))<=130303){if((0|t)<=127743){if((0|t)<=64767){if((0|t)<=11007){if((0|t)==8192)break X;if((0|t)!=9216)break d;if(A-9255>>>0>=25)break T;break w}if((0|t)==11008)break D;if((0|t)!=11776||(r=-2147483648,A-11845>>>0>=59))break d;break t}if((0|t)<=126975){if((0|t)==64768)break O;if((0|t)!=65280||(r=4194304,A-65520>>>0>=9))break d;break t}if((0|t)==126976|(0|t)==127232|(0|t)==127488)break te;break d}if((0|t)<=129023){if((0|t)<=128255){if((0|t)==127744|(0|t)==128e3)break te;break d}if((0|t)==128256|(0|t)==128512|(0|t)==128768)break te;break d}if((0|t)<=129535){if((0|t)==129024|(0|t)==129280)break te;break d}if((0|t)==129536|(0|t)==129792|(0|t)==130048)break te;break d}if((0|t)<=919039){if((0|t)<=917759){if((0|t)<=130815){if((0|t)==130304)break te;if((0|t)!=130560)break d;break te}if((0|t)==130816)break te;if((0|t)!=917504)break d;if((-128&A)!=917632)break P;break se}if((0|t)<=918271){if((0|t)==917760)break S;if(r=4194304,(0|t)!=918016)break d;break t}if((0|t)==918272|(0|t)==918528)break se;if(r=4194304,(0|t)!=918784)break d;break t}if((0|t)<=920319){if((0|t)<=919551){if((0|t)==919040)break se;if(r=4194304,(0|t)!=919296)break d;break t}if((0|t)==919552|(0|t)==919808)break se;if(r=4194304,(0|t)!=920064)break d;break t}if((0|t)<=920831){if((0|t)==920320)break se;if(r=4194304,(0|t)!=920576)break d;break t}if((0|t)==920832|(0|t)==921088)break se;if(r=4194304,(0|t)!=921344)break d;break t}if(r=4194304,(0|A)!=8293)break d;break t}if(r=-2147483648,A-9291>>>0>=21)break d;break t}if((-16&A)==11248|A-11219>>>0<25|(0|A)==11209|A-11194>>>0<3||(0|(t=-2&A))==11124)break w;if(r=-2147483648,(0|t)!=11158)break d;break t}if(r=65536,A-64976>>>0>=32)break d;break t}if((0|A)==917504)break se;if(r=4194304,A-917506>>>0>=30)break d;break t}if(r=4194304,A>>>0>917999)break t}t=(A=!(65534&~A))>>>16|0,A<<=16;break E;case 6:d:{S:{P:{O:{D:{T:{X:{Y:{Z:{ee:{ne:{le:{if((0|(t=-256&A))<=7679){if((0|t)<=767){if(!t)break le;if((0|t)==256)break ne;if((0|t)!=512)break s;if((0|A)!=585)break ee;break U}if((0|t)==768)break Z;if((0|t)==1024)break Y;if((0|t)!=7424||(r=16777216,(0|A)!=7574))break s;break t}if((0|t)<=119807){if((0|t)==7680)break X;if((0|t)==8448)break T;if((0|t)!=65280||(r=256,A-65345>>>0>=6))break s;break t}if((0|t)<=120319){if((0|t)==119808)break D;if((0|t)!=120064)break s;if(A>>>0>=120070)break O;break k}if((0|t)==120320)break P;if((0|t)!=120576)break s;if(A>>>0>=120597)break S;break k}if(r=768,A-97>>>0<6)break t;
2896if(r=16777216,A-105>>>0>=2)break s;break t}r=(t=(0|A)==329)>>>9|0,t=(A=(0|A)==303)?16777216:t<<23;break L}if((0|A)==616)break U;if(r=16777216,(0|A)!=669)break s;break t}r=128;Z:switch(A-976|0){case 35:break d;case 0:case 1:case 2:case 5:case 32:case 33:break t;default:break Z}if((-2&A)!=1012)break s;break t}s=(A=!(A-1110&-3))>>>8|0,A<<=24;break N}s=(t=(0|A)==7883)>>>8|0,t=(A=(0|A)==7725)?16777216:t<<24;break Q}if(A-8458>>>0<10)break k;if((t=A-8495|0)>>>0<11)break VA;break pe}if((0|(t=-2&A))==119842)break re;if(A-119808>>>0<85)break k;if(A-119894>>>0<2|A-119946>>>0<2)break re;if((0|A)==119995|A-119896>>>0<69|A-119982>>>0<12)break k;if((0|t)==119998)break re;if(A-119997>>>0<7)break k;if(r=16777344,(0|t)==120050)break t;if(r=128,A>>>0<=120004)break s;break t}if((-2&A)==120102)break re;if(A-120094>>>0<28)break k;O:{if((0|A)<=120257){if(A-120154>>>0<2)break re;if(r=16777344,A-120206>>>0>=2)break O;break t}if(A-120258>>>0<2)break re;if(r=16777344,A-120310>>>0<2)break t}if(r=128,A>>>0<=120145)break s;break t}if(A-120362>>>0<2|A-120414>>>0<2)break re;if(r=16777344,A-120466>>>0<2)break t;if(A-120540>>>0<31|A>>>0>120571|A>>>0<120486)break k;if(r=128,A-120514>>>0>=25)break s;break t}if(A-120772>>>0<8|A-120746>>>0<25|A-120714>>>0<31|A-120688>>>0<25||(0|A)!=120597&A>>>0<120629|A-120656>>>0<31)break k;if(r=128,A-120630>>>0<25)break t;break s}break U;case 7:d:{S:{P:{O:{D:{T:{X:{Y:{Z:{ee:{ne:{le:{fe:{ge:{M:{ce:{J:{H:{ie:{ue:{ve:{xe:{if((0|(t=-256&A))<=11263){if((0|t)<=3583){if((0|t)<=1535){if((0|t)==512)break xe;if((0|t)==768)break ve;if((0|t)!=1280||(r=4096,(0|A)!=1369))break s;break t}if((0|t)==1536)break ue;if((0|t)==1792)break ie;if((0|t)!=2304||(r=4096,(0|A)!=2417))break s;break t}if((0|t)<=7167){if((0|t)==3584)break H;if((0|t)==6144)break J;if((0|t)!=6656||(r=8192,(0|A)!=6823))break s;break t}if((0|t)==7168)break ce;if((0|t)==7424)break M;if((0|t)!=8192)break s;if(r=16793600,!(t=A-8305|0))break t;if((0|t)==14)break ge;break fe}if((0|t)<=43263){if((0|t)<=40959){if((0|t)==11264)break le;if((0|t)==11776)break ne;if((0|t)!=12288)break s;switch(r=8192,A-12293|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:break Z;case 0:case 44:case 45:case 46:case 47:case 48:break t;default:break ee}}if((0|t)==40960)break Y;if((0|t)==42496)break X;if((0|t)!=42752)break s;if(A-42775>>>0>=9)break T;break g}if((0|t)<=65279){if((0|t)==43264)break D;if((0|t)==43520)break O;if((0|t)!=43776||(r=20480,(-4&A)!=43868))break s;break t}if((0|t)==65280)break P;if((0|t)==92928)break S;if((0|t)!=93952)break s;if(r=4096,A-94099>>>0<13)break t;if(r=8192,(-2&A)!=94176)break s;break t}if(r=16797696,(0|A)==690)break t;if(A-688>>>0<9)return ce=0,20480;if(A-697>>>0<7)break g;if((0|(t=-2&A))==704)return ce=0,20480;if(r=4096,A-710>>>0<10||(r=12288,(0|t)==720)||(r=20480,A-736>>>0<5))break t;r=(A=(-3&A)==748)>>>20|0,A<<=12;break B}t=(0|A)==890?20480:0,t=(A=(0|A)==884)?4096:t;break F}if(r=8192,(0|A)==1600)break t;if(r=4096,A-1765>>>0>=2)break s;break t}if(r=4096,(-2&A)==2036)break t;if(r=8192,(0|A)!=2042)break s;break t}t=(A=!(A-3654&-129))>>>19|0,A<<=13;break E}if(r=8192,(0|A)!=6211)break s;break t}if(r=12288,(0|A)==7291)break t;if(r=4096,A-7288>>>0>=6)break s;break t}if(r=16797696,(0|A)==7522||(r=20480,A-7468>>>0<63))break t;r=16384;
2896M:switch(A-7588|0){default:if((0|A)==7544)break t;case 1:case 2:case 3:if(A-7579>>>0>=37)break s;break t;case 0:case 4:break M}return ce=0,16793600}return ce=0,16384}if(r=16384,A-8336>>>0>=13)break s;break t}t=(r=(0|A)==11389)>>>18|0,r=(A=(0|A)==11388)?16793600:r<<14;break I}if(r=-2147479552,(0|A)!=11823)break s;break t}if(A-12445>>>0<2)break t;if((0|A)==12540)break d}if(A-12541>>>0>=2)break s;break t}if(r=8192,(0|A)!=40981)break s;break t}if((0|A)==42508)break x;if((0|A)==42623)break g;if(r=20480,(-2&A)!=42652)break s;break t}if((0|A)==42864)return ce=0,16384;if((0|A)==42888)break g;if(r=20480,(-2&A)!=43e3)break s;break t}r=(t=(0|A)==43494)>>>19|0,t=(A=(0|A)==43471)?8192:t<<13;break L}if((0|A)==43632||(0|A)==43741)break x;if(r=8192,A-43763>>>0>=2)break s;break t}if(r=12288,(0|A)==65392)break t;if(r=135168,(-2&A)!=65438)break s;break t}if(r=8192,(-2&A)==92994)break t;break s}return ce=0,12288;case 8:r=128;d:{S:{P:{O:{D:{T:{X:{Y:{Z:{if((0|(t=-256&A))<=12543){if((0|t)<=5887){if((0|t)<=3583){if(!t)break Z;if((0|t)!=1536||(t=8388608,(0|A)!=1651))break v;break de}if((0|t)==3584)break Y;if((0|t)!=4352||(r=4194304,A-4447>>>0>=2))break v;break z}if((0|t)<=8447){if((0|t)==5888)break X;if((0|t)!=6400||(t=A-6581|0)>>>0>=6)break v;r=e[(t=81432+(t<<3)|0)>>2],s=e[t+4>>2];break z}if((0|t)==8448)break T;if((0|t)!=12288||(t=2048,(0|A)!=12294))break v;break de}if((0|t)<=68863){if((0|t)<=63999){if((0|t)==12544)break D;if((0|t)!=43520)break v;if((t=A-43701|0)>>>0<8)break S;break Se}if((0|t)==64e3)break d;if((0|t)!=65280||(t=4194304,(0|A)!=65440))break v;break de}if((0|t)<=100095){if((0|t)==68864)break O;if((0|t)!=70400||(r=8192,(0|A)!=70493))break v;break be}if((0|t)==100096)break P;if((0|t)!=126464)break v;break z}s=(t=!(A-170&-17))>>>18|0,r=t<<14;break z}if(r=33554432,A-3648>>>0<5)break z;if(t=0,l=33554432,(0|A)==3759)break de;if(A-3776>>>0>=5)break v;break z}if(r=8388608,A-6051>>>0>=2)break v;break z}if(A-8501>>>0>=4)break v;break z}if(t=4194304,(0|A)!=12644)break v;break de}if(r=4096,(-2&A)!=68898)break v;break z}if(r=2048,A-100333>>>0<5)break z;break v}if(r=33554432,!(211>>>t&1))break Se;break z}if((t=A-64014|0)>>>0>=28)break v;r=e[(t=81480+(t<<3)|0)>>2],s=e[t+4>>2];break z;case 10:d:{S:{P:{O:{D:{T:{if((0|(t=-256&A))<=119807){if((0|t)<=8447){if(!t)break T;if((0|t)!=768)break s;switch(r=128,A-976|0){case 0:case 1:case 2:case 36:case 37:break t;default:break s}}if((0|t)==8448)break D;if((0|t)!=65280||(r=256,A-65313>>>0>=6))break s;break t}if((0|t)<=120319){if((0|t)==119808)break O;if((0|t)!=120064)break s;if(A>>>0>=120070)break P;break k}if((0|t)==120320)break S;if((0|t)!=120576)break s;if(A-120772>>>0>=8)break d;break k}if(r=768,A-65>>>0>=6)break s;break t}r=128;D:switch(A-8450|0){case 0:case 5:break t;default:break D}if(A-8458>>>0<10)break k;if((t=A-8469|0)>>>0<20)break WA;if((-4&A)==8508)break t;break Oe}if(A-119982>>>0<12|A>>>0>120004|A-119977>>>0<4|A-119973>>>0<2||(0|A)==119970|(-2&A)==119966|A-119808>>>0<85)break k;if(r=128,A-119894>>>0>=71)break s;break t}if(A-120138>>>0<7|A>>>0>120145|(0|A)==120134|A-120128>>>0<5||A-120123>>>0<4|A-120094>>>0<28|(0|A)!=120070&A>>>0<120075|A-120086>>>0<7)break k;if(r=128,A-120077>>>0>=8)break s;break t}if(A-120540>>>0<31|A>>>0<120486)break k;if(r=128,A-120488>>>0>=25)break s;break t}if(A-120714>>>0<31|A-120598>>>0<31)break k;if(r=128,A-120656>>>0<31)break t;break s;case 11:d:{S:{P:{O:{D:{T:{X:{Y:{Z:{ee:{ne:{le:{fe:{ge:{M:{ce:{J:{if((0|(t=-256&A))<=43263){if((0|t)<=3839){if((0|t)<=3071){if((0|t)==2304)break J;if((0|t)!=2816)break f;if((0|A)>3005)break M;if((0|A)!=2878)break ce;return ce=0,132096}if((0|t)==3072)break ge;if((0|t)!=3328)break f;switch(r=132096,A-3535|0){case 0:case 16:break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:break f;default:break fe}}if((0|t)<=6911){if((0|t)==3840)break le;if((0|t)!=4096)break f;if(r=1024,A-4139>>>0<2)break t;switch(A-4145|0){case 0:case 7:case 10:case 11:case 37:case 38:case 49:case 54:case 55:case 82:case 83:break t;case 86:case 87:case 88:case 89:case 90:case 91:case 94:case 105:case 106:break d;default:break ne}}if((0|t)==6912)break ee;if((0|t)==7168)break Z;if((0|t)!=12288||(r=135168,(-2&A)!=12334))break f;break t}if((0|t)<=70399){if((0|t)<=43775){if((0|t)==43264)break Y;if((0|t)!=43520)break f;return ce=0,A-43643&-3?1024:4096}if((0|t)==43776)break X;if((0|t)==69888)break T;if((0|t)!=70144||(r=4096,(0|A)!=70197))break f;break t}if((0|t)<=70911){if((0|t)==70400)break D;if((0|t)!=70656)break f;t=(0|A)==70845?132096:1024,t=(A=(0|A)==70832)?132096:t;break F}if((0|t)==70912)break O;if((0|t)==71168)break P;if((0|t)!=119040)break f;switch(r=131072,A-119141|0){case 8:break g;case 1:break s;case 0:break t;default:break S}}t=(0|A)==2519?132096:1024,t=(A=(0|A)==2494)?132096:t;break F}if(r=132096,(0|A)!=2903)break f;break t}if((0|A)==3006)return ce=0,132096;if(r=132096,(0|A)!=3031)break f;break t}if((A=A-3266|0)>>>0>20||(r=132096,!(1<<A&1572865)))break f;break t}if((0|A)==3390)break t;if((0|A)!=3415)break f;break t}if(r=4096,(-2&A)!=3902)break f;break t}r=(A=(0|A)==4252)>>>22|0,A<<=10;break B}r=1024;ee:switch(A-6965|0){default:if((0|A)==6916)break t;break;case 0:case 6:break t;case 1:case 2:case 3:case 4:case 5:break ee}if(A-6973>>>0<5)break t;ee:switch(A-6979|0){case 1:break g;case 0:break t;default:break ee}if((0|A)==7042|(0|A)==7073|(-2&A)==7078)break t;if((0|A)==7082)break g;if((0|A)==7143|A-7146>>>0<3)break t;r=(A=(0|A)==7150)>>>22|0,A<<=10;break B}t=(0|A)==7415?4096:1024,t=(A=(0|A)==7393)?4096:t;break F}t=(0|A)==43456?4096:1024,t=(A=(0|A)==43347)?4096:t;break F}if(r=4096,(0|A)!=44012)break f;break t}if(r=4096,(0|A)!=70080)break f;break t}r=132096;D:switch(A-70462|0){case 0:case 25:break t;case 15:break D;default:break f}break g}if(r=132096,(0|A)!=71087)break f;break t}if(r=4096,(0|A)!=71350)break f;break t}if(r=135168,A-119150>>>
28960<5)break t;break f}break g;case 12:t=((0|A)==8419)<<6,A=0;break E;case 13:d:{S:{P:{O:{D:{T:{X:{Y:{Z:{ee:{ne:{le:{fe:{ge:{M:{ce:{J:{H:{ie:{ue:{ve:{xe:{Ue:{Be:{Ke:{aA:{Xe:{nA:{Ze:{iA:{oA:{ye:{Je:{qe:{lA:{De:{Te:{cA:{$e:{uA:{eA:{he:{Pe:{Ge:{Qe:{AA:{dA:{Ce:{fA:{gA:{pA:{if((0|(t=-256&A))<=43775){if((0|t)<=5887){if((0|t)<=2559){if((0|t)<=1535){if((0|t)==768)break pA;if((0|t)==1024)break gA;if((0|t)!=1280)break s;if(A-1425>>>0>=17)break fA;break g}if((0|t)<=2047){if((0|t)==1536)break Ce;if((0|t)!=1792)break s;if(r=1024,(0|A)==1809)break t;if((-16&A)!=1840)break dA;return ce=0,5120}if((0|t)==2048)break AA;if((0|t)!=2304)break s;if(A>>>0>=2307)break Qe;break f}if((0|t)<=3583){if((0|t)<=3071){if((0|t)==2560)break Ge;if((0|t)!=2816)break s;switch(r=1024,A-2876|0){case 0:break g;case 3:break t;case 1:case 2:break he;default:break Pe}}if((0|t)==3072)break eA;if((0|t)!=3328)break s;if((0|(t=-2&A))!=3328)break uA;break f}if((0|t)<=4095){if((0|t)==3584)break $e;if((0|t)!=3840)break s;if((0|(t=-2&A))!=3864)break cA;break g}if((0|t)==4096)break Te;if((0|t)!=4864||(r=1024,(0|A)!=4959))break s;break t}if((0|t)<=8191){if((0|t)<=6655){if((0|t)==5888)break De;if((0|t)==6144)break lA;if((0|t)!=6400)break s;if((t=A-6432|0)>>>0<=18&&(r=1024,1<<t&262535))break t;if(r=4096,A-6457>>>0>=3)break s;break t}if((0|t)<=7167){if((0|t)==6656)break qe;if((0|t)!=6912)break s;if(r=1024,(-4&A)==6912)break t;if((0|A)!=6964)break Je;break g}if((0|t)==7168)break ye;if((0|t)!=7424)break s;if(r=4096,A-7620>>>0<12||(r=1024,A-7655>>>0<14))break t;if((A=A-7669|0)>>>0>=11)break s;t=e[(A=82104+(A<<3)|0)>>2];break m}if((0|t)<=42495){if((0|t)<=11519){if((0|t)==8192)break oA;if((0|t)!=11264||(r=4096,A-11503>>>0>=3))break s;break t}if((0|t)==11520)break iA;if((0|t)!=12288)break s;if(A-12330>>>0>=4)break Ze;break g}if((0|t)<=43263){if((0|t)==42496)break nA;if((0|t)!=43008)break s;if(A-43045>>>0>=2)break Xe;break f}if((0|t)==43264)break aA;if((0|t)!=43520)break s;switch(r=1024,A-43561|0){case 83:case 150:case 152:break g;case 0:case 1:case 2:case 3:case 4:case 5:case 8:case 9:case 12:case 13:case 26:case 35:case 135:case 137:case 138:case 139:case 142:case 143:case 149:break t;default:break Ke}}if((0|t)<=71423){if((0|t)<=69375){if((0|t)<=66047){if((0|t)==43776)break Be;if((0|t)==64256)break Ue;if((0|t)!=65024)break s;if(r=536870912,A-65024>>>0<15||(s=64,(0|A)==65039))break t;if(r=4096,s=0,(-16&A)!=65056)break s;break t}if((0|t)<=68095){if((0|t)==66048)break xe;if((0|t)!=66304||(r=1024,A-66422>>>0>=5))break s;break t}if((0|t)==68096)break ve;if((0|t)!=68864||(r=5120,(-4&A)!=68900))break s;break t}if((0|t)<=70399){if((0|t)<=69887){if((0|t)==69376)break ue;if((0|t)!=69632)break s;if(A-69688>>>0>=14)break ie;break f}if((0|t)==69888)break H;if((0|t)!=70144)break s;if(r=1024,A-70191>>>0<3)break t;switch(A-70196|0){case 2:break g;case 0:case 3:case 10:break t;case 1:case 4:case 5:case 6:case 7:case 8:case 9:break ce;default:break J}}if((0|t)<=70911){if((0|t)==70400)break M;if((0|t)!=70656)break s;if((-8&A)!=70712)break ge;break f}if((0|t)==70912)break fe;if((0|t)!=71168)break s;if(r=1024,A-71219>>>0<8)break t;switch(A-71229|0){case 2:break g;case 0:case 3:break t;case 1:break ne;default:break le}}if((0|t)<=92927){if((0|t)<=72703){if((0|t)==71424)break _A;if((0|t)==71680)break ee;if((0|t)!=72192)break s;if(A-72193>>>0>=10)break Z;break f}if((0|t)<=73215){if((0|t)==72704)break Y;if((0|t)!=72960)break s;if((t=A-73009|0)>>>0<19)break SA;break $}if((0|t)==73216)break X;if((0|t)!=92672||(r=4096,A-92912>>>0>=5))break s;break t}if((0|t)<=122879){if((0|t)<=113663){if((0|t)==92928)break T;if((0|t)!=93952||(r=4096,A-94095>>>0>=4))break s;break t}if((0|t)==113664)break D;if((0|t)!=119040)break s;switch(r=4096,A-119143|0){case 0:case 1:case 2:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 67:case 68:case 69:case 70:break t;default:break s}}if((0|t)<=125183){if((0|t)==122880)break O;if((0|t)!=124928||(r=4096,A-125136>>>0>=7))break s;break t}if((0|t)==125184)break P;if((0|t)!=917760||(r=536870912,A-917760>>>0>=240))break s;break t}if(A-768>>>0<69)break g;if(r=21504,(0|A)==837)break t;if(A-838>>>0<9)break g;if(r=4194304,(0|A)==847)break t;if((-8&A)==848)break g;if(r=4096,A-861>>>0>=6)break s;break t}if(r=4096,A-1155>>>0>=5)break s;break t}if(r=4096,A-1443>>>0<13||(r=5120,A-1456>>>0<14))break t;if((A=A-1471|0)>>>0>=9)break s;t=e[(A=81944+(A<<3)|0)>>2];break m}if(A-1552>>>0<11)break f;if(r=5120,A-1611>>>0<8)break t;if(A-1619>>>0<4)break f;Ce:switch(A-1623|0){case 1:break g;case 0:break t;
2896case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 25:case 127:case 128:case 129:case 130:case 131:case 132:case 133:break f;default:break Ce}if(r=4096,A-1759>>>0<2)break t;if((t=A-1761|0)>>>0<8)break jA;break Ie}if(A-1856>>>0<11)break g;if(r=5120,A-1958>>>0<11)break t;if(r=4096,A-2027>>>0>=9)break s;break t}r=1024;AA:switch((-2&A)-2070|0){case 2:break g;case 0:break t;default:break AA}if(A-2260>>>0<12|A-2089>>>0<4|A-2075>>>0<9|A-2085>>>0<3)break f;if(A-2275>>>0<7)return ce=0,5120;if(r=4096,A-2282>>>0<6||(r=5120,A-2288>>>0<15))break t;if(r=1024,(0|A)!=2303)break s;break t}r=1024;Qe:switch(A-2362|0){case 2:break g;case 0:break t;default:break Qe}if(A-2369>>>0<8)break f;r=4096;Qe:switch(A-2381|0){case 0:case 4:case 5:case 6:case 7:case 111:break t;case 8:case 9:case 10:case 21:case 22:case 52:break f;default:break Qe}if(A-2497>>>0<4)break f;if((0|A)==2509)break t;if(r=1024,(-2&A)!=2530)break s;break t}if(A-2561>>>0<2)break f;r=4096;Ge:switch(A-2620|0){case 0:case 17:case 128:case 145:break t;case 5:case 6:case 11:case 12:case 15:case 16:case 21:case 52:case 53:case 57:case 69:case 70:case 133:case 134:case 135:case 136:case 137:case 139:case 140:case 166:case 167:case 190:case 191:case 192:break f;default:break Ge}if(A-2813>>>0>=3)break s;break t}if((0|A)==2817)break f}if(A-2881>>>0<4)break f;r=4096;he:switch(A-2893|0){case 0:break t;case 9:break f;default:break he}if((-2&A)==2914)break f;r=1024;he:switch(A-3008|0){default:if((0|A)!=2946)break s;break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:break s;case 0:break t;case 13:break he}break g}r=1024;eA:switch(A-3072|0){case 77:case 188:case 205:break g;case 0:case 62:case 63:case 64:case 70:case 71:case 72:case 74:case 75:case 76:case 85:case 86:case 98:case 99:case 129:case 191:case 198:case 204:break t;default:break eA}if((-2&A)!=3298)break s;break t}if(r=4096,A-3387>>>0<2)break t;if(A-3393>>>0<4)break f;if((0|A)==3405)break t;if((0|t)==3426)break f;switch(A-3530|0){case 0:break t;case 8:case 9:case 10:case 12:break f;default:break s}}if((t=A-3633|0)>>>0<10)break RA;break we}if((r=A-3893|0)>>>0>4|!(1<<r&21))break _e;break g}r=1024;Te:switch(A-4141|0){case 10:case 12:case 13:break g;case 0:case 1:case 2:case 3:case 5:case 6:case 7:case 8:case 9:case 16:case 17:case 43:case 44:case 49:case 50:case 51:case 68:case 69:case 70:case 71:case 85:case 88:case 89:break t;default:break Te}t=(r=(0|A)==4253)>>>22|0,r=(A=(0|A)==4237)?4096:r<<10;break I}r=1024;De:{Te:switch(A-5906|0){case 0:case 1:case 32:case 33:break t;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:break De;default:break Te}switch(A-5970|0){case 0:case 1:case 32:case 33:break t;default:break De}}if(r=4194304,(-2&A)==6068)break t;if((t=A-6071|0)>>>0<16)break LA;break ze}if(r=536870912,A-6155>>>0<3||(r=67109888,A-6277>>>0<2))break t;if(r=1024,(0|A)!=6313)break s;break t}if(A-6679>>>0<2)break f;r=1024;qe:switch(A-6683|0){case 0:case 59:case 61:case 62:case 63:case 64:case 65:case 66:case
289667:case 71:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 88:case 89:break t;default:break qe}if(r=4096,A-6832>>>0<14)break t;if((A=A-6773|0)>>>0>=11)break s;t=e[(A=82016+(A<<3)|0)>>2];break m}if(A-6966>>>0<5)break t;Je:switch(A-6972|0){case 0:case 6:break t;default:break Je}if(A-7019>>>0<9)break g;switch(A-7040|0){case 43:break g;case 0:case 1:case 34:case 35:case 36:case 37:case 40:case 41:case 44:case 45:case 104:case 105:case 109:case 111:case 112:case 113:break t;default:break s}}if(r=1024,A-7212>>>0<8)break t;r=12288;ye:switch(A-7222|0){case 1:break g;case 0:break t;default:break ye}if(A-7380>>>0<13)break g;r=4096;ye:switch(A-7376|0){case 0:case 1:case 2:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 29:case 36:break t;default:break ye}if((-2&A)!=7416)break s;break t}if(r=128,A-8400>>>0<13)break t;if((A=A-8417|0)>>>0>=15)break s;t=e[(A=82192+(A<<3)|0)>>2];break m}if(r=1024,(-32&A)!=11744)break s;break t}if(r=4096,A-12441>>>0>=2)break s;break t}if((0|A)==42607)break g;if(A-42612>>>0<8)break f;if((0|(A&=-2))==42620)break g;if((0|A)==42654)break d;if(r=4096,(0|A)!=42736)break s;break t}r=4096;Xe:switch(A-43204|0){case 0:break t;case 1:break f;default:break Xe}if(A-43232>>>0>=18)break s;break t}if(A-43302>>>0<5)break f;if(A-43307>>>0<3)break g;if(A-43335>>>0<11|A-43392>>>0<3)break f;if(r=4096,(0|A)==43443||(r=1024,A-43446>>>0<4))break t;s=(t=(0|A)==43493)>>>20|0,t=(A=(0|A)==43452)?1024:t<<12;break Q}if((-2&A)==43756)break t;if(r=4096,(0|A)!=43766)break s;break t}r=1024;Be:switch(A-44005|0){case 0:case 3:break t;case 8:break Be;default:break s}break g}if(r=5120,(0|A)!=64286)break s;break t}if(r=4096,(0|A)!=66272)break s;break t}if((-4&A)==68108)break f;if((t=A-68097|0)>>>0<6)break NA;break Ne}if(r=4096,A-69446>>>0>=11)break s;break t}if(A-69811>>>0<4)break f;if(r=1024,(0|A)==69633)break t;if(r=4096,A-69817>>>0>=2)break s;break t}r=1024;H:switch(A-69888|0){case 51:case 52:case 115:break g;case 0:case 1:case 2:case 39:case 40:case 41:case 42:case 43:case 45:case 46:case 47:case 48:case 49:case 50:break t;default:break H}if((-2&A)==70016|A-70070>>>0<9)break t;if(r=4096,A-70090>>>0>=3)break s;break t}if((0|A)==70367)break t}if(A-70371>>>0<6)break t;if(r=4096,A-70377>>>0>=2)break s;break t}if((-2&A)==70400)break f;r=4096;M:switch(A-70460|0){case 0:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 52:case 53:case 54:case 55:case 56:break t;case 4:break M;default:break s}break f}if((0|A)==70722)break g;if(A-70723>>>0<2)break f;if((t=A-70835|0)>>>0<=13)break S;break Le}if((t=A-71090|0)>>>0<12)break zA;break Re}switch(A-71339|0){case 0:case 2:break t;default:break ne}}if(A-71344>>>0<6)break t;if(r=4096,(0|A)!=71351)break s;break t}if(r=1024,A-71727>>>0<10)break t;if(r=4096,A-71737>>>0>=2)break s;break t}if((0|A)==72244)break g;if(A-72245>>>0<10)break f;if(r=4096,(0|A)==72263)break t;if(A-72273>>>0<11)break f;if(r=1024,A-72330>>>0<13)break t;r=(t=(0|A)==72345)>>>20|0,t=(A=(0|A)==72344)?8192:t<<12;break L}if((t=A-72752|0)>>>0<16)break OA;break je}if(r=1024,A-73459>>>0>=2)break s;break t}if(r=1024,A-92976>>>0>=7)break s;break t}if(r=1024,(0|A)!=113822)break s;break t}if(r=1024,A-122888>>>0<17)break t;if((A=A-122880|0)>>>0>=43)break s;t=e[(A=82816+(A<<3)|0)>>2];break m}if(r=12288,A-125252>>>0<3||(r=1024,(0|A)==125255)||(r=4096,A-125256>>>0<3))break t;break s}if(!(1<<t&12479))break Le;break f}break f;case 14:d:{if((0|(t=-256&A))!=120576){if((0|t)!=65280){if(t||(r=768,s=66,A-48>>>0>=10))break d;break t}if(r=256,A-65296>>>0>=10)break d;break t}if(r=128,A-120782>>>0<50)break t}break s;case 15:d:{if((0|(t=-256&A))!=12288){if((0|t)!=8448)break d;t=(A=(0|(r=-16&A))==8560)>>>18|0,s=A<<14,r=(A=(0|r)==8544)?32768:s;break I}if(A-12321>>>0<9||A-12344>>>0<3)return ce=0,2048;if(r=2048,(0|A)==12295)break t}break s;case 16:d:{S:{P:{if((0|(t=-256&A))<=9215){if((0|t)==4864)break P;if((0|t)!=6400||(r=134217728,(0|A)!=6618))break d;break t}if((0|t)==9216)break S;if((0|t)!=127232)break d;if(r=0,s=-2147483648,(0|A)==127232)break t;if(s=268435456,A-127233>>>0>=10)break d;break t}if(r=134217728,A-4969>>>0>=9)break d;break t}if(r=0,s=-2147483648,A-9352>>>0<20)break t}break s;case 17:s=(A=(0|A)==8256)>>>25|0,A<<=7;break N;
2896case 18:d:{S:{P:{O:{if((0|(t=-256&A))<=11775){if((0|t)<=6143){if(r=-2147483624,!t)break t;if((0|t)!=1280||(r=24,(0|A)!=1418))break d;break t}if((0|t)==6144)break O;if((0|t)!=8192)break d;if(r=-2147483624,(-2&A)==8208)break t;A=A-8211>>>0<2,t=-2147483640;break b}if((0|t)<=65023){if((0|t)==11776)break P;if((0|t)!=12288)break d;t=(0|A)==12336,r=(A=(0|A)==12316)||t?-2147483640:8,ce=A?0:t?130:0;break h}if((0|t)==65024)break S;if((0|t)!=65280||(r=24,(0|A)!=65293))break d;break t}if(r=24,(0|A)!=6150)break d;break t}if(r=-2147483624,(0|A)==11799)break t;A=(-2&A)==11834,t=-2147483640;break b}if(r=8,s=8388608,A-65073>>>0<2||(r=152,s=0,(0|A)==65123))break t}return ce=0,8;case 19:d:{S:{P:{O:{D:{T:{if((0|(t=-256&A))<=11775){if((0|t)<=8959){if(t)break T;break w}if((0|t)==8960)break D;if((0|t)==9984)break O;if((0|t)!=10496)break s;break K}if((0|t)<=64767){if(r=-2147483648,(0|t)==11776)break t;if((0|t)!=12288)break s;switch(r=-2147483616,A-12301|0){case 0:case 2:break t;default:break P}}if((0|t)==64768)break S;if((0|t)==65024)break d;if((0|t)!=65280)break s;if(r=32,(0|A)==65379)break t;break s}if((0|t)!=8192)break s;T:switch(A-8318|0){default:if(r=-2147483648,(0|A)!=8262)break s;break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:break s;case 0:case 16:break T}break k}r=-2147483520;D:switch(A-8969|0){case 1:break s;case 0:case 2:break t;default:break D}if((0|A)!=9002)break s;return ce=0,-2139095040}if(r=-2147483520,(0|A)==10182)break t;break Fe}return ce=0,(-2&A)==12318?-2147483616:-2147483648}if(r=-2147483648,(0|A)!=64830)break s;break t}s=(A=!(A-65090&-3))>>>27|0,A<<=5;break N;case 20:case 21:if(!(A&=-256))break C;if(r=-2147483616,(0|A)==8192)break t;break tA;case 22:d:{S:{P:{O:{D:{T:{X:{Y:{Z:{ee:{ne:{le:{fe:{ge:{M:{ce:{J:{H:{ie:{ue:{ve:{xe:{Ue:{Be:{Ke:{aA:{Xe:{nA:{Ze:{iA:{oA:{ye:{Je:{qe:{lA:{De:{Te:{cA:{$e:{uA:{eA:{he:{Pe:{Ge:{Qe:{AA:{dA:{Ce:{if((0|(t=-256&A))<=43519){if((0|t)<=5887){if((0|t)<=2303){if((0|t)<=1535){if(!t)break Ce;if((0|t)==768)break dA;if((0|t)!=1280)break s;if(r=0,s=538968064,A-1371>>>0<2)break t;switch(s=268435456,A-1373|0){case 0:break t;case 1:break Qe;default:break AA}}if((0|t)==1536)break Pe;if((0|t)==1792)break he;if((0|t)!=2048)break s;if((t=A-2103|0)>>>0<8)break QA;break We}if((0|t)<=3839){if((0|t)==2304)break eA;if((0|t)==3328)break uA;if((0|t)!=3584||(r=64,(-2&A)!=3674))break s;break t}if((0|t)<=4863){if((0|t)==3840)break $e;if((0|t)!=4096)break s;if(r=268435520,(-2&A)==4170)break t;if(r=0,s=16777216,(0|A)!=4347)break s;break t}if((0|t)==4864)break cA;if((0|t)!=5632)break s;switch(r=64,A-5741|0){case 1:break n;case 0:break t;default:break Te}}if((0|t)<=11263){if((0|t)<=6655){if((0|t)==5888)break De;if((0|t)==6144)break PA;if((0|t)!=6400)break s;t=(0|A)==6469,r=(A=(0|A)==6468)||t?268435520:0,ce=A?536870912:t?1073741824:0;break h}if((0|t)<=7167){if((0|t)==6656)break lA;if((0|t)!=6912)break s;if((0|(t=-2&A))!=7002)break qe;break j}if((0|t)==7168)break Je;if((0|t)!=8192)break s;switch(r=-2147483520,A-8214|0){case 1:break w;case 0:break t;case 16:break ye;default:break oA}}if((0|t)<=41983){if((0|t)==11264)break iA;if((0|t)==11776)break Ze;if((0|t)!=12288)break s;switch(r=-2147483584,s=272629760,A-12289|0){case 2:break w;case 0:break t;case 1:break Xe;default:break nA}}if((0|t)<=43007){if((0|t)==41984)break aA;if((0|t)!=42496)break s;switch(r=64,s=268435456,A-42739|0){case 4:break o;case 0:break n;case 3:break r;case 2:break t;case 1:break Be;default:break Ke}}if((0|t)==43008)break Ue;if((0|t)!=43264)break s;switch(r=4096,A-43310|0){case 0:break t;case 1:break j;default:break xe}}if((0|t)<=70655){if((0|t)<=67839){if((0|t)<=65279){if((0|t)==43520)break ve;if((0|t)==43776)break ue;if((0|t)!=65024)break s;if(r=0,s=268435456,(0|(l=-2&A))==65040)break t;if((t=A-65042|0)>>>0<8)break DA;break ke}
2896if((0|t)==65280)break ie;if((0|t)==66304)break H;if((0|t)!=67584||(r=64,(0|A)!=67671))break s;break t}if((0|t)<=69375){if((0|t)==67840)break J;if((0|t)==68096)break ce;if((0|t)!=68352)break s;switch(r=64,A-68410|0){case 0:case 1:case 2:case 3:case 4:case 5:case 95:case 96:case 97:case 98:break t;default:break s}}if((0|t)<=69887){if((0|t)==69376)break M;if((0|t)!=69632)break s;if(A-69703>>>0>=2)break ge;break j}if((0|t)==69888)break fe;if((0|t)!=70144)break s;if((t=A-70200|0)>>>0<=4)break le;if((0|A)!=70313)break s;break j}if((0|t)<=74751){if((0|t)<=71423){if((0|t)==70656)break ne;if((0|t)==70912)break ee;if((0|t)!=71168||(r=268435520,A-71233>>>0>=2))break s;break t}if((0|t)<=72703){if((0|t)==71424)break Z;if((0|t)!=72192)break s;if(A-72258>>>0>=2)break Y;break j}if((0|t)==72704)break X;if((0|t)!=73216||(r=268435520,A-73463>>>0>=2))break s;break t}if((0|t)<=93695){if((0|t)==74752)break T;if((0|t)==92672)break O;if((0|t)!=92928)break s;if(r=268435520,A-92983>>>0<2)break t;t=(0|A)==92996?268435520:0,t=(A=(0|A)==92985)?64:t;break F}if((0|t)<=121343){if((0|t)==93696)break D;if((0|t)!=113664||(r=268435520,s=-2147483648,(0|A)!=113823))break s;break t}if((0|t)==121344)break yA;if((0|t)!=125184)break s;r=((0|A)==125279)<<30,t=0,ce=(A=(0|A)==125278)?536870912:r;break i}r=-1879048128,s=536870912;Ce:{fA:{gA:{pA:{HA:switch(A-33|0){default:switch(A-183|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:break Ce;case 8:break gA;case 0:break pA;default:break fA}case 2:case 9:ce=66;break u;case 11:return ce=268435456,-2147483584;case 13:return ce=-2147483648,-1879048128;case 25:return ce=134217728,-2147483584;case 26:return ce=67108864,-2147483584;case 1:case 6:break C;case 0:break t;case 3:case 4:case 5:case 7:case 8:case 10:case 12:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 27:case 28:case 29:break Ce;case 30:break HA}return ce=1073741824,-1879048128}return ce=0,134230016}ce=1078984704;break u}if((0|A)==161)break sA}break w}t=(0|A)==903,r=(A=(0|A)==894)?64:t?134217792:0,ce=A?1073741824:t?67108864:0;break h}if((0|A)==1417)break Ge;if((0|A)!=1475)break s;break oe}ce=1075838976;break c}ce=-2143289344;break a}r=64,s=268435456;Pe:switch(A-1548|0){case 15:break r;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 16:case 17:break s;case 0:break t;case 19:break Pe;case 18:break j;default:break P}break o}if((t=A-1792|0)>>>0<6)break FA;if(r=64,s=134217728,(-2&A)==1798)break t;s=67108864;he:{Pe:{Ge:switch(A-1800|0){default:switch(A-2040|0){case 1:break he;case 0:break Pe;default:break s}case 3:break s;case 0:break t;case 1:break Ge;case 2:case 4:break oe}ce=1073741824;break A}ce=268435456;break A}ce=536870912;break a}t=(0|A)==2405,r=(A=(0|A)==2404)||t?268435520:0,ce=A?-2143289344:t?16777216:0;break h}if(r=0,s=-2143289344,(0|A)!=3572)break s;break t}r=64;$e:switch(A-3848|0){case 5:ce=-2143289344;break A;case 6:ce=16777216;break A;case 0:break t;default:break $e}if(A-3854>>>0<5)break t;if(r=0,s=268435456,(0|A)!=3860)break s;break t}if((t=A-4961|0)>>>0<4)break GA;if(r=64,s=134217728,A-4965>>>0<2)break t;t=(0|A)==4968,r=(A=(0|A)==4967)||t?268435520:0,ce=A?1073741824:t?16777216:0;break h}if(A-5867>>>0>=3)break s;break t}if(r=268435520,A-5941>>>0<2)break t;if((A=A-6100|0)>>>0>=7)break s;t=e[(A=83240+(A<<3)|0)>>2];break m}if(r=268435520,(-4&A)!=6824)break s;break t}if(r=64,(0|A)==7005)break t;if(r=268435520,(0|t)!=7006)break s;break t}if(A-7227>>>0<2)break j;if(r=64,A-7229>>>0<3||(r=268435520,(-2&A)==7294))break t;if(r=4096,(0|A)!=7379)break s;break t}ce=33554432;break u}if((-8&A)==8224)break w;if(A-8242>>>0<3)break t;if(A-8240>>>0<9)break w;if((t=A-8251|0)>>>0<21)break TA;break ae}if((0|A)==11513){ce=-2147483648;break c}if(r=0,s=1073741824,(-2&A)==11514)break t;if(s=-2147483648,(0|A)!=11518)break s;break t}r=-1879048128;Ze:switch(A-11822|0){case 4:case 6:ce=268435456;break u;case 5:ce=-2147483648;break u;case 7:ce=67108864;break u;case 14:return ce=-2147483648,-1879048128;case 19:return ce=268435456,-2147483584;case 30:case 32:return ce=0,-2147483584;case 0:break t;default:break Ze}break w}if((0|A)==12349)break _;if((0|A)!=12539)break s;return ce=0,16}return ce=-2143289344,-1879048128}t=(0|A)==42239,r=(A=(0|A)==42238)?64:t?268435520:0,ce=A?268435456:t?-2147483648:0;break h}Ke:switch(A-42509|0){case 1:break n;case 0:break t;case 2:break Ke;default:break s}break o}ce=134217728;break A}if(A-43126>>>0<2)break j;if(r=268435520,A-43214>>>0>=2)break s;break t}if((0|A)==43463)break oe;if(r=268435520,(-2&A)!=43464)break s;break t}if(A-43613>>>0<3)break j;if(r=64,(0|A)==43743)break t;if(r=268435520,(-2&A)!=43760)break s;break t}if(r=268435520,(0|A)!=44011)break s;break t}r=268435520,s=541065216;ie:switch(A-65281|0){case 1:case 6:return ce=0,32;case 11:ce=272629760;break A;case 13:ce=-2143289344;break a;case 100:return ce=0,16;case 25:ce=138412032;break A;case 26:ce=71303168;break A;case 30:ce=1077936128;break a;case 96:break n;case 59:break k;case 0:break t;case 99:break ie;default:break s}ce=268435456;break A}r=(t=(0|A)==66512)>>>26|0,t=(A=(0|A)==66463)?64:t<<6;break L}if(r=64,(0|A)!=67871)break s;break t}if(r=268435520,(-2&A)==68182)break t;if(r=64,A-68336>>>0>=6)break s;break t}if(r=268435520,A-69461>>>0>=5)break s;break t}if(r=64,A-69705>>>0<5)break t;if(r=268435520,A-69822>>>0>=4)break s;break t}if(A-69953>>>0<2)break j;if((t=A-70085|0)>>>
28960<=26)break S;break Ve}if((0|t)!=2)break j;break oe}if(r=268435520,A-70731>>>0<2)break t;s=(t=(0|A)==70747)>>>26|0,t=(A=(0|A)==70733)?64:t<<6,ce=A?268435456:s;break i}r=268435520;ee:switch((-2&A)-71106|0){case 0:break t;case 2:break d;default:break ee}if(r=8192,A-71110>>>0<3)break t;if(r=268435520,A-71113>>>0>=15)break s;break t}if(r=268435520,A-71484>>>0>=3)break s;break t}if(r=268435520,A-72347>>>0<2)break t;if(r=64,A-72353>>>0>=2)break s;break t}if(r=268435520,A-72769>>>0<2)break t;r=(t=(0|A)==72817)>>>26|0,t=(A=(0|A)==72771)?64:t<<6;break L}if(r=64,s=134217728,A-74865>>>0<2)break t;if(s=0,A-74864>>>0>=5)break s;break t}t=(0|A)==93848?268435520:0,t=(A=(0|A)==93847)?64:t;break F}if(r=268435520,(-2&A)==92782)break t;if(s=-2147483648,(0|A)!=92917)break s;break t}if((0|A)==1748)break n;break s}if(!(1<<t&100663555))break Ve;break j}break oe;case 23:d:{S:{P:{O:{D:{T:{if((0|(t=-256&A))<=11775){if((0|t)<=8959){if(t)break T;break w}if((0|t)==8960)break D;if((0|t)==9984)break O;if((0|t)!=10496)break s;break K}if((0|t)<=64767){if((0|t)==11776)break P;if((0|t)!=12288)break s;if((A=A-12300|0)>>>0<=17&&(r=-2147483616,1<<A&131077))break t;break w}if((0|t)==64768)break S;if((0|t)==65024)break d;if((0|t)!=65280)break s;if(r=32,(0|A)==65378)break t;break s}if((0|t)!=8192)break s;r=-2147483616;T:switch(A-8218|0){case 1:case 2:case 3:break s;case 0:case 4:break t;default:break T}T:switch(A-8317|0){default:if((0|A)!=8261)break s;break w;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:break s;case 0:case 16:break T}break k}r=-2147483520;D:switch(A-8968|0){case 1:break s;case 0:case 2:break t;default:break D}if((0|A)!=9001)break s;return ce=0,-2139095040}if(r=-2147483520,(0|A)==10181)break t;break Fe}return ce=0,(0|A)==11842?-2147483616:-2147483648}if(r=-2147483648,(0|A)!=64831)break s;break t}r=(A=!(A-65089&-3))>>>27|0,A<<=5;break B;case 24:r=(A=A>>>0<256)>>>1|0,A<<=31;break B;case 25:d:{S:{P:{O:{D:{T:{X:{Y:{if((0|(t=-256&A))<=12287){if((0|t)<=767){if(!t)break Y;if((0|t)!=512)break d;if(A-751>>>0>=17)break X;break g}if((0|t)==768)break T;if((0|t)!=7936)break d;switch(r=4096,A-8125|0){case 0:case 2:case 3:case 4:case 16:case 17:case 18:case 32:case 33:case 34:case 48:case 49:case 50:case 64:case 65:break t;default:break d}}if((0|t)<=43775){if((0|t)==12288)break D;if((0|t)!=42752||(r=4096,(-2&A)!=42784))break d;break t}if((0|t)==43776)break O;if((0|t)==65280)break P;if(r=0,s=78,(0|t)!=127744)break d;break t}Y:switch(A-168|0){default:r=-2147479424;Z:switch(A-94|0){case 0:break t;case 2:break Z;default:break d}return ce=0,-2147479552;case 0:case 7:break g;case 1:case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:case 13:case 14:case 15:break d;case 12:case 16:break Y}break g}if((0|A)==749|A-741>>>0<7)break g;if(A-706>>>0>=4)break S;break g}if((A=A-885|0)>>>0>16||(r=4096,!(1<<A&98305)))break d;break t}if(r=67112960,A-12443>>>0>=2)break d;break t}if(r=4096,(0|A)!=43867)break d;break t}r=4224;P:switch(A-65342|0){default:if((0|A)!=65507)break d;break;case 0:break t;case 1:break d;case 2:break P}break g}if(r=4096,A-722>>>0<14)break t}break s;case 26:d:{S:{P:{O:{D:{T:{if((0|(t=-256&A))<=9471){if((0|t)<=8447){if(t)break d;break w}if((0|t)==8448)break T;if((0|t)==8704)break D;if(r=-2147483648,(0|t)!=8960)break s;break t}if((0|t)<=10495){if((0|t)==9472)break O;if((0|t)==9728)break P;if((0|t)==9984)break w;break s}if((0|t)==10496)break S;if((0|t)==10752)break w;if(r=-2147483648,(0|t)!=11008)break s;break t}if((0|A)==8472)return ce=0,67108864;if((0|A)==8596)break q;if(r=-2147483648,A>>>0<=8591)break s;break t}if(r=-2147483640,(0|A)==8722)break t;t=-2147483648,ce=(A=A-8942>>>0<4)?33554432:0;break i}if(r=-2147483648,s=130,A-9723>>>0<2)break t;t=-2147483648,ce=(A=A-9725>>>0<2)?134:0;break i}if(r=-2147483648,s=128,(0|A)==9839)break t;break w}if(r=-2147483648,s=130,(-2&A)==10548)break t;t=-2147483648,ce=(A=(0|A)==10626)?134217728:0;break i}if((0|t)==8192)break Ye;break s;case 27:d:{S:{P:{O:{D:{T:{X:{Y:{Z:{ee:{ne:{le:{fe:{ge:{M:{ce:{J:{H:{ie:{ue:{ve:{xe:{Ue:{Be:{if((0|(t=-256&A))<=12287){if((0|t)<=9727){if((0|t)<=8959){if(!t)break Be;if((0|t)!=8448)break s;switch(r=0,s=130,A-8482|0){case 7:break k;case 0:break t;
2896case 1:case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:break ue;case 12:break xe;default:break Ue}}if((0|t)==8960)break ie;if((0|t)==9216)break H;if((0|t)!=9472)break s;switch(r=-2147483520,(-2&A)-9632|0){case 0:break t;case 10:break q;default:break J}}if((0|t)<=11007){if((0|t)==9728)break ce;if((0|t)==9984)break M;if(r=-2147483648,(0|t)!=10240)break s;break t}if((0|t)==11008)break ge;if((0|t)==11776)break fe;if((0|t)!=12032)break s;if(r=1048576,A>>>0<12246)break t;switch(r=262144,(-2&A)-12272|0){case 0:break t;case 2:break d;default:break le}}if((0|t)<=127999){if((0|t)<=127231){if((0|t)==12288)break ne;if((0|t)==12800)break ee;if((0|t)!=126976)break s;t=(0|A)==127183,r=0,ce=(A=(0|A)==126980)||t?134:128;break h}if((0|t)==127232)break Z;if((0|t)==127488)break Y;if((0|t)!=127744)break s;if(A>>>0>=127777)break X;break R}if((0|t)<=128767){if((0|t)==128e3)break T;if((0|t)==128256)break D;if((0|t)!=128512)break s;if((t=A-128581|0)>>>0<11)break CA;break Me}if((0|t)==128768)break O;if((0|t)==129280)break P;if((0|t)!=129536)break s;ce=128;break c}t=(0|A)==174,r=-2147483648,ce=(A=(0|A)==169)||t?130:0;break h}switch(A-8616|0){case 0:break w;case 1:case 2:break ve;default:break ue}}return ce=0,67108864}return ce=130,-2147483520}if(r=-2147483520,A-8597>>>0<5)break t;if(A-8604>>>0<18)break K;if((t=A-8624|0)>>>0<8)break BA;break He}if(A>>>0<8968)break w;if((0|(t=-2&A))==8986)break l;if(A-8972>>>0<20|A-8994>>>0<6)break w;if((0|A)==9e3)break q;if(A-9003>>>0<81)break w;if(r=-2147483648,s=128,(0|A)==9096)break t;if(A-9085>>>0<30)break w;if(r=-2147483520,s=0,(0|t)==9140)break t;ie:switch(A-9143|0){case 0:case 25:break t;case 24:break q;default:break ie}if(A-9140>>>0<40)break w;if((0|A)==9186)break t;if((t=A-9193|0)>>>0<4)break l;r=-2147483648,s=134;ie:switch(A-9200|0){case 0:case 3:break t;default:break ie}if(t>>>0<11)break q;if(s=130,A-9208>>>0<3)break t;if(s=0,A>>>0<=9186)break s;break t}if(r=-2147483648,A-9216>>>0<75||(r=33792,s=130,(0|A)==9410)||(s=0,A-9398>>>0<26))break t;if(r=17408,A-9424>>>0>=26)break s;break t}if(A-9646>>>0<8)break K;if(s=130,(0|A)==9654)break t;if((-4&A)==9660)break K;J:switch(A-9664|0){case 0:break t;case 6:case 7:case 10:case 11:case 15:case 16:case 17:case 18:case 19:case 34:case 36:break K;default:break J}return ce=0,A-9703>>>0<6?-2147483520:-2147483648}ce:switch((-16&A)-9728>>>4|0){case 0:if(A>>>0<9733)break q;r=-2147483520,s=128;J:switch(A-9733|0){case 0:break t;case 9:break J;case 1:break K;default:break G}break q;case 2:if((t=A-9760|0)>>>0<11)break vA;if(r=-2147483648,s=130,A>>>0<=9773)break G;break t;case 3:if(r=-2147483648,s=130,A-9784>>>0>=3)break G;break t;case 4:r=-2147483520,s=130;J:switch(A-9792|0){case 0:case 2:break t;default:break J}if(r=-2147483648,s=134,A>>>0<=9799)break G;break t;case 5:if(r=-2147483648,s=134,A>>>0<9812)break t;if(s=130,(0|A)!=9823)break G;break t;case 6:if((0|A)==9734)break K;if((0|A)==9824)return ce=130,-2147483520;if(r=-2147483520,s=128,A-9825>>>0<2)break t;if((t=A-9827|0)>>>0<6)break EA;break Ee;case 8:if(r=-2147483648,A>>>0<=9861)break G;break t;case 10:r=-2147483648,s=130;J:switch(A-9888|0){case 1:break l;case 0:break t;default:break J}if(s=134,(-2&A)!=9898)break G;break t;case 11:if(r=-2147483648,s=130,(-2&A)==9904)break t;if(s=134,A-9917>>>0>=2)break G;break t;case 12:if((-2&A)==9924)break l;r=-2147483648,s=130;J:switch(A-9928|0){case 0:case 7:break t;case 6:break J;default:break G}break l;case 14:t=(0|A)==9962,r=-2147483648,ce=(A=(0|A)==9961)?130:t?134:128;break h;case 13:break wA;case 9:break kA;case 15:break ce;case 7:break MA;case 1:break xA;default:break G}if((0|A)==9972|A>>>0<9970)break q;if(r=-2147483648,s=134,A>>>0<9974||(0|A)!=9974&&(s=130,A>>>0<9977))break t;if((A=A-9977|0)>>>0<5)break IA;break G}M:{ce:{J:{H:{ie:switch((-16&A)-9984>>>4|0){case 0:if(r=0,s=130,(0|A)==9986||(s=128,A>>>0<9989)||(s=134,(0|A)==9989))break M;s=150;ue:switch((-2&A)-9994|0){case 0:break M;case 2:break J;default:break ue}if(s=130,A-9992>>>0<6)break M;t=(0|A)==9999,r=0,s=(A=(0|A)==9998)?128:t?130:0;break M;case 1:if(r=0,s=128,A>>>0<10002)break M;if((A=A-10002|0)>>>0>11||(s=130,!(1<<A&2069)))break H;break M;case 2:t=(0|A)==10024,r=0,s=(A=(0|A)==10017)?130:t?134:0;break M;case 4:r=0,s=130;ue:switch(A-10052|0){case 0:case 3:break M;case 8:case 10:break ue;default:break H}
2896s=134;break M;case 5:if(r=0,s=1073741958,A-10067>>>0<2)break M;s=(A=A-10069&-3)?0:536871046;break M;case 6:if((t=A-10082|0)>>>0<3)break ce;if(r=0,s=128,A>>>0<=10084)break H;break M;case 9:if(r=0,s=134,A-10133>>>0>=3)break H;break M;case 10:if(r=0,s=130,(0|A)!=10145)break H;break M;case 11:t=(0|A)==10175,r=0,s=(A=(0|A)==10160)||t?134:0;break M;case 3:break ie;default:break H}if(r=0,s=130,A-10035>>>0<2)break M}r=0,s=0;break M}s=146;break M}r=e[(A=83992+(t<<3)|0)>>2],s=e[A+4>>2]}return ce=s,-2147483648|r}if(r=-2147483648,s=130,A-11013>>>0<3||(s=134,A-11035>>>0<2))break t;t=(0|A)==11093,r=-2147483648,ce=(A=(0|A)==11088)||t?134:0;break h}if(A-11904>>>0>=26)break S;return ce=0,1048576}if(A-12276>>>0>=8)break s;break t}if((A=A-12306|0)>>>0>14||(r=-2147483648,!(1<<A&16387)))break s;break t}t=0,ce=(A=A-12951&-3)?0:130;break i}if(r=0,s=128,(0|A)==127279)break t;if(A-127280>>>0<26||A-127312>>>0<26)return ce=0,33792;if((t=A-127344|0)>>>0<=15&&(r=33792,s=130,1<<t&49155)||(r=33792,s=0,t>>>0<26))break t;if((0|A)==127374)break R;if(r=0,s=134,A-127377>>>0<10)break t;if(s=102,A>>>0<=127461)break s;break t}r=0,s=134;Y:{Z:switch(A-127489|0){case 0:case 25:break t;case 1:break _;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:break Y;default:break Z}switch(A-127535|0){case 0:break t;case 8:break _;default:break Y}}if((-2&A)==127568|A-127538>>>0<9)break t;if(s=128,A>>>0<=127583)break s;break t}if((0|A)==127777)break _;if(A-127789>>>0<9|A-127799>>>0<70)break R;if((0|A)==127877)break Ae;if(A-127870>>>0<22)break R;if(A-127780>>>0<112)break _;r=0,s=130;X:switch(A-127894|0){case 44:case 45:case 46:case 49:break Ae;case 0:case 1:case 3:case 4:case 5:break t;default:break X}if(A-127904>>>0<42)break R;if(s=150,(0|A)==127946||(s=146,A-127947>>>0<2))break t;if(A-127951>>>0<5)break R;if(s=134,A-127968>>>0<17||(s=130,A-127902>>>0<83))break t;if((t=A-127987|0)>>>0<5)break bA;break V}r=0,s=130;T:switch(A-128063|0){case 0:case 2:break t;default:break T}if((0|A)==128124|(-5&A)-128129>>>0<3|(0|A)==128110|A-128112>>>0<9||(-2&A)==128066|A-128102>>>0<4|A-128070>>>0<11)break Ae;T:switch(A-128253|0){case 1:ce=128;break c;case 0:break _;default:break T}if(s=150,(0|A)==128170)break t;break R}if(A>>>0<128318)break R;if(r=0,A>>>0<128326)break t;if(A-128329>>>0<2)break _;if(A-128331>>>0<4|A-128336>>>0<24)break R;if(A-128367>>>0<2)break _;if((-2&A)==128372){ce=146;break c}if(A-128371>>>0<7)break _;if(s=150,!(t=A-128378|0))break t;if((0|t)==13|A-128394>>>0<4)break _;if(s=146,(0|A)==128400||(s=150,A-128405>>>0<2))break t;s=134;D:switch(A-128420|0){case 0:break t;case 1:case 4:case 13:case 14:case 24:case 30:case 31:case 32:case 45:case 46:case 47:case 56:case 57:case 58:case 61:case 63:case 68:case 75:case 79:case 86:break _;default:break D}A=A>>>0>128506,t=0;break p}if(r=0,s=128,A-128981>>>0>=4)break s;break t}if(A>>>0<129292)break s;if(A-129328>>>0<10)break Ae;r=0,s=150;P:switch(A-129304|0){case 35:break s;case 0:case 1:case 2:case 3:case 4:case 6:case 7:case 14:break t;default:break P}if(A-129341>>>0<2)break Ae;if(s=0,(0|A)==129350||(s=198,(-4&A)==129456))break t;if((t=A-129461|0)>>>0<5)break hA;break mA}if(r=1048576,A-11931>>>0<89)break t;break s}return ce=0,524288;case 29:return ce=16777216,1073741825;case 28:break t;case 30:break YA;default:break s}return ce=0,(0|A)==32?1073741825:1}if(!(1079>>>t&1))break pe;t=e[(A=81344+(t<<3)|0)>>2];break m}if(557553>>>t&1)break k;if((-4&A)!=8508)break Oe;break t}if(!(207>>>t&1))break Ie;break f}if(r=1024,!(1017>>>t&1))break we;break t}if(r=1024,!(32895>>>t&1))break ze;break t}if(r=1024,!(55>>>t&1))break Ne;break t}if(r=1024,!(3087>>>t&1))break Re;break t}if((A=A-71453|0)>>>0>=15)break s;t=e[(A=82312+(A<<3)|0)>>2];break m}if(!(49023>>>t&1))break je;t=e[(A=82432+(t<<3)|0)>>2];break m}if(!(514623>>>t&1))break $;t=e[(A=82664+(t<<3)|0)>>2];break m}t=e[(A=83160+(t<<3)|0)>>2];break m}if(r=268435520,!(197>>>t&1))break We;break t}t=e[(A=83208+(t<<3)|0)>>2];break m}if((A=A-6145|0)>>>0>=10)break s;t=e[(A=83296+(A<<3)|0)>>2];break m}if(!(1077711>>>t&1))break ae;t=e[(A=83376+(t<<3)|0)>>2];break m}if(!(159>>>t&1))break ke;t=e[(A=83544+(t<<3)|0)>>2];break m}if((A=A-121479|0)>>>0>=4)break s;t=e[(A=83608+(A<<3)|0)>>2];break m}if(!(195>>>t&1))break He;break K}if((A=A-9745|0)>>>0>=13)break G;t=e[(A=83640+(A<<3)|0)>>2];break m}if(1101>>>t&1)break q;if(r=-2147483648,s=130,A>>>0<=9773)break G;break t}if(!(45>>>t&1))break Ee;t=e[(A=83744+(t<<3)|0)>>2];break m}if((A=A-9851|0)>>>0>=5)break G;t=e[(A=83792+(A<<3)|0)>>2];break m}if((A=A-9874|0)>>>0>=11)break G;t=e[(A=83832+(A<<3)|0)>>2];break m}if((A=A-9937|0)>>>0>=4)break G;t=e[(A=83920+(A<<3)|0)>>2];break m}t=e[(A=83952+(A<<3)|0)>>2];break m}if(!(23>>>t&1))break V;
2896t=e[(A=84016+(t<<3)|0)>>2];break m}if(r=0,s=150,!(1991>>>t&1))break Me;break t}if(s=150,27>>>t&1)break t}t=0,ce=(A=A-129489>>>0<13)?150:134;break i}A=A-127992>>>0<3,t=0;break p}if(A-9837>>>0<2)break t}ce=128;break u}if(A-8623>>>0<13)break w;if(A-8636>>>0<18)break K;if((t=A-8656|0)>>>0<22&&(s=0,3157995>>>t&1)||(r=-2147483648,s=0,A-8661>>>0<31))break t;break s}if(A>>>0<128592)break R;if(r=0,s=0,A>>>0<128640)break t;if(!((t=A-128675|0)>>>0>29|!(1<<t&537788417)))break Ae;if(A>>>0<128710)break R;if(s=150,(0|A)==128716)break t;if(A-128715>>>0<5)break _;if(A-128720>>>0<3)break R;if(!((t=A-128736|0)>>>0>=10|!(575>>>t&1)))break _;if(s=134,A-128747>>>0<2)break t;s=130;Me:switch(A-128752|0){case 0:case 3:break t;default:break Me}A=A-128756>>>0<6,t=0;break p}r=-2147483648;Ye:switch(A-8260|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:break s;case 0:case 14:break t;default:break Ye}if((0|(A=A-8315|0))!=16&&A)break s;return ce=0,8}if(r=268435520,s=1073741824,(0|A)!=69955)break s;break t}if(A-8266>>>0<8)break w;if(r=-2147483640,(0|A)==8275)break t;if(r=-2147483648,A-8277>>>0>=10)break s;break t}ce=542113792;break u}if(r=-2147483648,s=0,A-65093>>>0<2||(r=64,s=268435456,(0|l)==65104))break t;r=268435520,s=-2147483648;ke:switch(A-65106|0){case 3:ce=134217728;break A;case 5:ce=536870912;break a;case 4:break o;case 2:break r;case 0:break t;case 15:case 22:break ke;default:break s}break k}if((0|A)==2142)break oe;if(r=64,A-2096>>>0<15)break t;break s}if(r=1024,A-72850>>>0<22)break t;if((A=A-72874|0)>>>0>=13)break s;t=e[(A=82560+(A<<3)|0)>>2];break m}if(r=4096,A-71103>>>0<2)break t;if(r=1024,(-2&A)!=71132)break s;break t}if((0|A)==70726)break g;if(r=4096,(-2&A)!=70850)break s;break t}if(r=4096,A-68325>>>0>=2)break s;break t}if((0|A)==6109)break g;if(r=4096,A-6089>>>0>=11)break s;break t}_e:switch(A-3959|0){case 0:case 2:return ce=0,8389632;default:break _e}if((0|t)==3968|A-3953>>>0<14)break f;if(!((t=A-3970|0)>>>0>=6|!(55>>>t&1)))break g;if(A-3981>>>0<11)break f;if(r=1024,A-3993>>>0<36)break t;if(r=4096,(0|A)!=4038)break s;break t}if(A-3655>>>0<6)break g;if(!((t=A-3761|0)>>>0>11|!(1<<t&3577)))break f;r=1024;we:switch(A-3661|0){case 1:break g;case 0:break t;default:break we}if(r=4096,A-3784>>>0<5)break t;if(r=1024,(0|A)!=3789)break s;break t}if(A-1770>>>0<3)break t;if(r=1024,(0|A)!=1773)break s;break t}if((-2&A)==73028)break g;r=1024;$:switch(A-73104|0){default:if((0|A)!=73031)break s;break t;case 2:case 3:case 4:case 6:break s;case 0:case 1:case 5:break t;case 7:break $}break g}if((A=A-8492|0)>>>0>=30)break s;t=e[(A=81704+(A<<3)|0)>>2];break m}r=0;break z}s=(t=(-3&A)==43712)>>>20|0,r=t<<12}if((0|(o=-65536&A))==131072)break rA;if((0|o)==65536)break be;if(t=r,l=s,o)break me}if(A-13312>>>0<6582||A-19968>>>0<20976)break e;if(o=2048,A-63744>>>0<366)return ce=l,2048|t;if(r=t,s=l,A-64112>>>0>=106)break me;break W}if(o=2099200,A-183984>>>0<7473|A-178208>>>0<5762|A-177984>>>0<222|A-131072>>>0<42711||A-173824>>>0<4149||(o=2048,A-194560>>>0<542))break W;break me}if(o=2048,A-110960>>>0<396|A-94208>>>0<6125|A-100352>>>0<755)break W}o=0}return ce=s,r|o}if((-4&A)==8508)break k;if(r=128,!(A-8517>>>0<3)&&(r=16777344,(-2&A)!=8520))break s}ce=s;break h}t=(A=A>>>0>131069)?65536:0,ce=A?0:128;break i}if((0|A)==11776)break w}ce=0;break c}ce=0;break u}return ce=0,4194304}return ce=0,128}return ce=0,16777344}return ce=0,4096}return ce=0,1024}return ce=0,-2147483520}return ce=0,A-10214>>>0<10?-2147483520:-2147483648}ce=0;break a}ce=0;break A}ce=130;break c}ce=130;break u}ce=134;break c}return ce=150,0}ce=0;break i}ce=A?0:s;break i}return ce=t,A}return 131072}return ce=0,16777216}ce=A?0:r;break i}return ce=s,A}return ce=r,A}ce=A?0:t;break h}return ce=0,8192}ce=e[A+4>>2];break i}ce=A?8388608:0;break i}return r}return ce=0,-2147483616}ce=A?134:128}return t}ce=134}return-2147483648}return 0}ce=1073741824;break a}ce=-2147483648}return 268435520}ce=67108864}return 64}return ce=l,2099200|t}function DA(A){var t,r=0,s=0,o=0,l=0,c=0;(t=ZA(8244))&&(e[t+328>>2]=2,d[132848]=0,e[t+684>>2]=0,e[t+688>>2]=0,e[t+320>>2]=0,e[t+324>>2]=0,d[t+268|0]=0,d[t+228|0]=0,e[t+8216>>2]=0,e[t+8220>>2]=0,e[t+224>>2]=104944,e[t+216>>2]=383,e[t+220>>2]=96,Xe(t+344|0,0,292),e[t+8196>>2]=0,e[(r=t+8188|0)>>2]=0,e[r+4>>2]=0,e[t+8180>>2]=0,e[t+8184>>2]=0,d[t+460|0]=22,d[t+461|0]=129,d[t+466|0]=38,d[t+462|0]=38,d[t+463|0]=36,d[t+464|0]=22,d[t+465|0]=224,d[t+456|0]=22,d[t+457|0]=22,d[t+458|0]=44,d[t+459|0]=22,d[t+454|0]=46,d[t+455|0]=129,d[t+446|0]=22,d[t+447|0]=38,d[t+448|0]=28,d[t+449|0]=193,d[t+450|0]=38,d[t+451|0]=22,d[t+452|0]=46,d[t+453|0]=46,d[t+441|0]=129,d[t+442|
vendor: 2,221 bytes, line 2896
28960]=38,d[t+443|0]=22,d[t+444|0]=38,d[t+445|0]=193,e[t+332>>2]=104912,e[t+336>>2]=104916,e[t+340>>2]=105232,d[t+296|0]=18,d[t+297|0]=18,w[t+304>>1]=182,w[t+306>>1]=140,d[t+298|0]=20,w[t+308>>1]=220,w[t+310>>1]=220,w[t+312>>1]=220,d[t+299|0]=20,d[t+300|0]=20,w[t+314>>1]=240,d[t+301|0]=22,w[t+316>>1]=260,w[t+318>>1]=280,d[t+302|0]=22,d[t+303|0]=20,r=Xe(t,0,212),e[r+200>>2]=20,e[r+192>>2]=25966,e[r+196>>2]=500,e[r+80>>2]=95,e[r+16>>2]=1,e[r+20>>2]=3,e[r+8>>2]=2,e[r+52>>2]=19,d[r+168|0]=3,e[r+92>>2]=2,e[r+72>>2]=4,e[r+40>>2]=115,e[r+44>>2]=95,e[r+140>>2]=105244,VA(r,201),e[r+120>>2]=2,e[r+124>>2]=44,e[r+164>>2]=100,e[r+128>>2]=46,e[r+132>>2]=14,e[r+112>>2]=1227133512,e[r+116>>2]=49,e[r+104>>2]=1,s=e[26313],e[r+636>>2]=e[26312],e[r+640>>2]=s,s=e[26315],e[r+644>>2]=e[26314],e[r+648>>2]=s,s=e[26317],e[r+652>>2]=e[26316],e[r+656>>2]=s,s=e[26319],e[r+660>>2]=e[26318],e[r+664>>2]=s,s=e[26321],e[r+668>>2]=e[26320],e[r+672>>2]=s,s=e[26323],e[r+676>>2]=e[26322],e[r+680>>2]=s,s=u[104928]|u[104929]<<8,d[r+160|0]=s,d[r+161|0]=s>>>8,s=u[104924]|u[104925]<<8|u[104926]<<16|u[104927]<<24,d[r+156|0]=s,d[r+157|0]=s>>>8,d[r+158|0]=s>>>16,d[r+159|0]=s>>>24),o=PA(t+228|0,A),r=0;e:{A:if(s=u[0|A]){for(;r=(s<<24>>24)+(r<<8)|0,s=u[0|(A=A+1|0)];);r:{a:{n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{x:{I:{B:{N:{L:{U:{y:{E:{Q:{F:{Ae:{R:{q:{_:{oe:{j:{Fe:{K:{f:{g:{re:{k:{se:{w:{s:{tA:{te:{t:{pe:{W:{me:{be:{rA:{de:{z:{Se:{v:{Oe:{$:{Ie:{we:{_e:{ze:{Ne:{Le:{Re:{je:{We:{ke:{sA:{ae:{Ve:{Ye:{Me:{He:{G:{Ee:{if((0|r)<=28008){if((0|r)<=26464){if((0|r)<=25696){V:switch(r-24934|0){case 20:break i;case 1:case 2:case 3:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 18:case 19:break A;case 8:break $;case 12:break We;case 7:break ke;case 0:break sA;case 13:break Ee;default:break V}V:switch(r-25189|0){case 1:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 11:case 12:case 13:break A;case 14:break pe;case 2:break Re;case 0:break je;case 9:break Ee;default:break V}switch(r-25441|0){case 18:break B;case 0:break $;case 24:break Ne;default:break A}}V:switch(r-25964|0){case 1:case 4:case 5:case 6:break A;case 8:break Se;case 9:break Oe;case 7:break $;case 3:break Ie;case 2:break we;case 0:break He;default:break V}
2896V:switch(r-26209|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:break A;case 17:break de;case 8:break z;case 0:break v;default:break V}switch(r-25697|0){case 4:break _e;case 0:break ze;default:break A}}if((0|r)<=27488){V:switch(r-26729|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 13:case 14:case 15:break A;case 16:break tA;case 12:break te;case 11:break t;case 9:break pe;case 0:break W;default:break V}V:switch(r-26977|0){case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 15:case 16:case 17:break A;case 19:break k;case 18:break se;case 3:break w;case 14:break s;case 0:break $;default:break V}switch(r-26465|0){case 20:break W;case 13:break me;case 0:case 3:break be;default:break A}}V:switch(r-27489|0){case 13:break p;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 12:case 15:case 16:case 17:case 18:case 19:case 21:case 22:case 23:break A;case 24:break oe;case 20:break j;case 14:break Fe;case 11:break K;case 10:break f;case 0:break g;default:break V}switch(r-27745|0){case 19:break q;case 0:break _;case 21:break Ye;default:break A}}if((0|r)<=29792){if((0|r)<=28768){V:switch(r-28009|0){case 3:break p;case 11:break Ae;case 2:break R;case 1:case 4:case 5:case 6:case 7:case 8:case 12:case 13:case 14:case 15:break A;case 10:break w;case 9:break W;case 0:case 16:break ae;default:break V}V:switch(r-28258|0){case 0:break Q;case 10:break F;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:break A;case 3:break W;default:break V}switch(r-28525|0){case 0:break E;case 5:break W;default:break A}}if((0|r)<=29539){V:switch(r-28769|0){case 19:break U;case 11:break y;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 20:case 21:case 22:case 23:break A;case 0:break W;case 24:break ae;default:break V}V:switch(r-29295|0){case 6:break N;case 0:break L;case 1:case 2:case 3:case 4:case 5:break A;default:break V}if((0|r)==29045)break ae;break A}switch(r-29540|0){case 19:break C;case 18:break h;case 13:break b;case 8:break x;case 5:break I;case 7:break B;case 14:break pe;case 0:break c;default:break A}}if((0|r)>6514801)break G;if((0|r)<=30058)switch(r-29793|0){case 19:break l;case 17:break i;case 0:case 4:break p;case 13:break C;case 7:break ae;default:break A}if((0|r)<=30312)switch(r-30059|0){case 0:break u;case 15:break ae;case 7:break c;default:break A}if((0|r)==30313)break o;if((0|r)==31336)break n;if((0|r)!=6451321)break A}if(e[t+296>>2]=303174162,e[t+300>>2]=370545684,e[t+600>>2]=2432,e[t+8>>2]=0,e[t+12>>2]=65540,e[t+100>>2]=e[t+96>>2],A=e[25889],e[t+304>>2]=e[25888],e[t+308>>2]=A,A=e[25891],e[t+312>>2]=e[25890],e[t+316>>2]=A,NA(t),d[t+345|0]=2|u[t+345|0],d[t+406|0]=16|u[t+406|0],d[t+407|0]=16|u[t+407|0],d[t+408|0]=16|u[t+408|0],d[t+409|0]=16|u[t+409|0],d[t+410|0]=16|u[t+410|0],d[t+411|0]=16|u[t+411|0],d[t+412|0]=16|u[t+412|0],d[t+413|0]=16|u[t+413|0],d[t+414|0]=16|u[t+414|0],d[t+415|0]=16|u[t+415|0],d[t+416|0]=16|u[t+416|0],d[t+417|0]=16|u[t+417|0],d[t+418|0]=16|u[t+418|0],d[t+419|0]=16|u[t+419|0],d[t+420|0]=16|u[t+420|0],d[t+456|0]=4|u[t+456|0],d[t+457|0]=4|u[t+457|0],e[t+112>>2]=613567144,e[t+104>>2]=16,(0|r)!=6451321)break e;e[t+104>>2]=1,e[t+108>>2]=512,r=6451321;break e}if((0|r)>7364975)break Ve;if((0|r)>6840682)break Me;if((0|r)==6514802)break Le;if((0|r)==6516078)break n;if((0|r)!=6779491)break A}if(e[t+600>>2]=896,e[t+328>>2]=8,e[t+296>>2]=336858127,e[t+300>>2]=353768980,e[t+332>>2]=103632,A=e[25905],e[t+304>>2]=e[25904],e[t+308>>2]=A,A=e[25907],e[t+312>>2]=e[25906],e[t+316>>2]=A,Xe(t+344|0,0,256),d[t+388|0]=129,d[t+389|0]=129,d[t+390|0]=129,d[t+391|0]=129,d[t+420|0]=129,d[t+421|0]=129,d[t+422|0]=129,d[t+423|0]=129,d[t+360|0]=129,d[t+392|0]=129,d[t+393|0]=129,d[t+417|0]=129,d[t+418|0]=129,d[t+419|0]=129,d[t+420|0]=129,d[t+408|0]=6,d[t+409|0]=4,d[t+410|0]=6,d[t+411|0]=6,d[t+412|0]=6,d[t+413|0]=193,d[t+414|0]=6,d[t+415|0]=6,d[t+406|0]=6,d[t+407|0]=129,d[t+398|0]=4,d[t+399|0]=193,d[t+400|0]=6,d[t+401|0]=193,d[t+402|0]=6,d[t+403|0]=4,d[t+404|0]=4,d[t+405|0]=4,d[t+394|0]=4,d[t+395|0]=4,d[t+396|0]=4,d[t+397|0]=193,e[t+44>>2]=130,e[t+8>>2]=2,e[t+12>>2]=6,e[t+16>>2]=0,e[t+20>>2]=2,e[t+104>>2]=264,e[t+108>>2]=6146,d[t+391|0]=193,d[t+389|0]=193,d[t+390|0]=193,d[t+421|0]=193,e[t+100>>2]=e[t+96>>2],d[t+416|0]=4|u[t+416|0],(0|r)!=6779491)break e;e[t+40>>2]=1,r=6779491;break e}if((0|r)==6840683)break rA;if((0|r)==6972015)break re;if((0|r)!=7107687)break A}e[t+296>>2]=134875662,e[t+300>>
vendor: 4,486 bytes, line 2896
28962]=252968960,e[t+328>>2]=5,d[t+169|0]=1,e[t+132>>2]=33,e[t+104>>2]=99336,e[t+8>>2]=0,e[t+12>>2]=262182,A=e[26069],e[t+304>>2]=e[26068],e[t+308>>2]=A,A=e[26071],e[t+312>>2]=e[26070],e[t+316>>2]=A;break e}if((0|r)<=7564649){if((0|r)==7364976)break $;if((0|r)==7435619)break ae;if((0|r)!=7563374)break A;e[t+148>>2]=1,e[t+112>>2]=24,e[t+104>>2]=1,e[t+100>>2]=e[t+96>>2],r=7563374;break e}if((0|r)==7564650)break m;if((0|r)==7959909)break n;if((0|r)!=1885958500)break A}e[t+104>>2]=0;break e}e[t+4>>2]=48,e[t+8>>2]=0,e[t+144>>2]=1,e[t+104>>2]=16779472,e[t+32>>2]=1,e[t+24>>2]=1,A=e[25881],e[t+304>>2]=e[25880],e[t+308>>2]=A,A=e[25883],e[t+312>>2]=e[25882],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=24934;break e}e[t+600>>2]=4608,e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+8>>2]=0,e[t+12>>2]=36,e[t+104>>2]=1024,e[t+100>>2]=e[t+96>>2],e[t+40>>2]=1,A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,r=24941;break e}for(e[t+600>>2]=1536,e[t+224>>2]=0,e[t+216>>2]=1631,e[t+220>>2]=1536,e[t+104>>2]=2884720,e[t+328>>2]=7,e[t+40>>2]=1,Y=r=Y-16|0,e[r+12>>2]=-1,A=89684;o=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=1|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=89743;o=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=2|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=89795;o=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=4|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=89941;o=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=16|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=90045;o=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=32|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=90045;o=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=8|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=90045;o=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=64|u[0|l]),A=A+o|0,s;);Y=r+16|0,r=24946;break e}e[t+600>>2]=1056,e[t+12>>2]=34,e[t+216>>2]=1118,e[t+220>>2]=1072,Xe(t+344|0,0,256),d[t+406|0]=4,d[t+366|0]=4,d[t+367|0]=4,d[t+369|0]=4,d[t+370|0]=4,d[t+371|0]=4,d[t+372|0]=4,d[t+361|0]=4,d[t+362|0]=4,d[t+363|0]=4,d[t+364|0]=4,d[t+373|0]=4,d[t+380|0]=4,d[t+381|0]=4,d[t+382|0]=4,d[t+383|0]=4,d[t+375|0]=4,d[t+376|0]=4,d[t+377|0]=4,d[t+378|0]=4,d[t+384|0]=4,d[t+360|0]=129,e[t+328>>2]=6,e[t+296>>2]=134744588,e[t+300>>2]=286261248,e[t+40>>2]=1,e[t+8>>2]=0,e[t+104>>2]=1032,e[t+108>>2]=66,A=e[25885],e[t+304>>2]=e[25884],e[t+308>>2]=A,A=e[25887],e[t+312>>2]=e[25886],e[t+316>>2]=A,r=25189;break e}Kr(t),e[t+328>>2]=6,e[t+56>>2]=2,e[t+36>>2]=263,e[t+40>>2]=1074,e[t+124>>2]=32,e[t+104>>2]=184554728,e[t+8>>2]=2,d[t+386|0]=64&u[t+386|0]|129,r=25191;break e}e[t+12>>2]=262182,e[t+40>>2]=1,r=6514802;break e}e[t+328>>2]=14,e[t+296>>2]=303173393,e[t+300>>2]=336986112,e[t+104>>2]=1024,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=22,e[t+44>>2]=120,A=e[25893],e[t+304>>2]=e[25892],e[t+308>>2]=A,A=e[25895],e[t+312>>2]=e[25894],e[t+316>>2]=A,d[t+463|0]=64&u[t+463|0]|129,d[t+465|0]=64&u[t+465|0]|129,r=25465;break e}e[t+8>>2]=0,e[t+104>>2]=184618072,e[t+32>>2]=1,A=e[26101],e[t+304>>2]=e[26100],e[t+308>>2]=A,A=e[26103],e[t+312>>2]=e[26102],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=25697;break e}e[t+296>>2]=336860180,e[t+300>>2]=336991764,e[t+8>>2]=0,e[t+104>>2]=16846872,e[t>>2]=8,e[t+4>>2]=48,e[t+80>>2]=87,e[t+32>>2]=1,e[t+36>>2]=256,e[t+40>>2]=2,A=e[25897],e[t+304>>2]=e[25896],e[t+308>>2]=A,A=e[25899],e[t+312>>2]=e[25898],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=25701;break e}e[t+132>>2]=33,e[t+104>>2]=16779328,e[t+8>>2]=0,e[t+12>>2]=8,e[t+204>>2]=101,e[t+60>>2]=2,e[t+40>>2]=2,A=e[25901],e[t+304>>2]=e[25900],e[t+308>>2]=A,A=e[25903],e[t+312>>2]=e[25902],e[t+316>>2]=A,d[t+441|0]=64|u[t+441|0],d[t+445|0]=64|u[t+445|0],d[t+449|0]=64|u[t+449|0],d[t+455|0]=64|u[t+455|0],d[t+461|0]=64|u[t+461|0],d[t+465|0]=64|u[t+465|0],r=25966;break e}e[t+328>>2]=4,e[t+296>>2]=336858640,e[t+300>>2]=353768980,e[t+104>>2]=16782344,e[t+20>>2]=2,e[t+12>>2]=22,e[t+4>>2]=2,e[t+8>>2]=2,e[t+332>>2]=103640,A=e[25997],e[t+304>>2]=e[25996],e[t+308>>2]=A,A=e[25999],e[t+312>>2]=e[25998],e[t+316>>2]=A,r=25967;break e}e[t+296>>2]=269422096,e[t+300>>2]=370545684,e[t+104>>2]=86017320,e[t+108>>2]=6144,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=534,e[t+100>>2]=e[t+96>>2],e[t+44>>2]=120,A=e[25913],e[t+304>>2]=e[25912],e[t+308>>2]=A,A=e[25915],e[t+312>>2]=e[25914],e[t+316>>2]=A;$:{Ie:{if((0|r)<=26976){if((0|r)==24942)break Ie;if((0|r)!=25441)break $;e[t+12>>2]=566,e[t+336>>2]=103664,r=25441;break e}
2896if((0|r)!=26977){if((0|r)!=7364976)break $;e[t+8>>2]=3,e[t+12>>2]=310,r=7364976;break e}e[t+104>>2]=85984264,r=26977;break e}e[t+104>>2]=153093416,e[t+108>>2]=2048,e[t+140>>2]=103676,r=24942;break e}e[t+40>>2]=2;break e}e[t+296>>2]=303173648,e[t+300>>2]=303174162,e[t+104>>2]=3147080,e[t+12>>2]=65792,e[t+84>>2]=1,A=e[25921],e[t+304>>2]=e[25920],e[t+308>>2]=A,A=e[25923],e[t+312>>2]=e[25922],e[t+316>>2]=A,r=25973;break e}e[t+600>>2]=1536,e[t+216>>2]=1740,e[t+220>>2]=1568,e[t+104>>2]=96,e[t+224>>2]=103696,e[t+340>>2]=103872,e[t+40>>2]=1,r=26209;break e}e[t+328>>2]=5}e[t+104>>2]=86024,e[t+164>>2]=130,d[t+465|0]=64&u[t+465|0]|129;break e}e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+8>>2]=3,e[t+12>>2]=36,e[t+144>>2]=2,e[t+104>>2]=118658312,e[t+28>>2]=1,e[t+100>>2]=e[t+96>>2],A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=26226;break e}w[t+170>>1]=257,e[t+148>>2]=1,e[t+12>>2]=2,r=6840683;break e}e[t+144>>2]=2,e[t+104>>2]=2098176,e[t+8>>2]=0,e[t+12>>2]=32,e[t+40>>2]=3,e[t+28>>2]=1;break e}e[t+8>>2]=3,e[t+100>>2]=e[t+96>>2],r=26478;break e}e[t+328>>2]=18,e[t+296>>2]=320081425,e[t+300>>2]=353768980,e[t+600>>2]=2304,e[t+112>>2]=84648,e[t+104>>2]=16,e[t+8>>2]=6,e[t+12>>2]=65540,e[t+100>>2]=e[t+96>>2],A=e[25973],e[t+304>>2]=e[25972],e[t+308>>2]=A,A=e[25975],e[t+312>>2]=e[25974],e[t+316>>2]=A;W:{me:{be:{if((0|r)<=28529){if((0|r)==26485)break be;if((0|r)!=28261)break W;A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+132>>2]=22,e[t+112>>2]=-1431655768,e[t+108>>2]=32768|e[t+108>>2],NA(t);break e}if((0|r)==28530)break me;if((0|r)!=28769)break W;e[t+600>>2]=2560,NA(t);break e}A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,e[t+600>>2]=2688,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+8>>2]=2,NA(t);break e}e[t+600>>2]=2816}NA(t);break e}d[0|o]=104,d[o+1|0]=98,d[o+2|0]=115,d[o+3|0]=0,(0|r)!=29554?(A=e[26093],e[t+304>>2]=e[26092],e[t+308>>2]=A,A=e[26095],e[t+312>>2]=e[26094],e[t+316>>2]=A):(A=e[25977],e[t+304>>2]=e[25976],e[t+308>>2]=A,A=e[25979],e[t+312>>2]=e[25978],e[t+316>>2]=A),e[t+328>>2]=3,e[t+296>>2]=336859409,e[t+300>>2]=353768980,w[t+168>>1]=261,e[t+8>>2]=0,e[t+12>>2]=16,e[t+144>>2]=1,e[t+184>>2]=1056,e[t+104>>2]=33572172,e[t+108>>2]=330,e[t+36>>2]=3,d[t+465|0]=64&u[t+465|0]|129,d[t+458|0]=64&u[t+458|0]|129;break e}e[t+104>>2]=17990912,e[t+8>>2]=3,e[t+12>>2]=36,r=26740;break e}e[t+328>>2]=3,e[t+296>>2]=320016657,e[t+300>>2]=353768980,e[t+124>>2]=32,e[t+128>>2]=44,e[t+104>>2]=186758144,e[t+12>>2]=1081398,e[t+16>>2]=2,e[t+4>>2]=32,e[t+8>>2]=0,e[t+116>>2]=899,e[t+120>>2]=1,d[t+169|0]=1,e[t+76>>2]=2,A=e[25981],e[t+304>>2]=e[25980],e[t+308>>2]=A,A=e[25983],e[t+312>>2]=e[25982],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,VA(t,3),r=26741;break e}for(e[t+600>>2]=1328,e[t+8>>2]=3,A=e[25985],e[t+304>>2]=e[25984],e[t+308>>2]=A,A=e[25987],e[t+312>>2]=e[25986],e[t+316>>2]=A,o=Xe(t+344|0,0,256),d[t+429|0]=129,d[t+416|0]=129,d[t+403|0]=129,d[t+399|0]=129,d[t+400|0]=129,d[t+397|0]=129,d[t+393|0]=129,s=103952,l=50,c=50;d[0|(A=o+c|0)]=2|u[0|A],A=o+u[s+1|0]|0,d[0|A]=2|u[0|A],A=o+u[s+2|0]|0,d[0|A]=2|u[0|A],c=u[0|(s=s+3|0)],A=103952,(0|s)!=103982;);for(s=t+344|0;d[0|(o=s+l|0)]=4|u[0|o],o=s+u[A+1|0]|0,d[0|o]=4|u[0|o],o=s+u[A+2|0]|0,d[0|o]=4|u[0|o],l=u[0|(A=A+3|0)],(0|A)!=103982;);d[t+168|0]=6,e[t+104>>2]=5128,d[t+413|0]=4|u[t+413|0];break e}e[t+328>>2]=4,e[t+296>>2]=336858640,e[t+300>>2]=353768980,e[t+104>>2]=16782440,e[t+20>>2]=2,e[t+12>>2]=22,e[t+4>>2]=2,e[t+8>>2]=2,e[t+332>>2]=104e3,A=e[25997],e[t+304>>2]=e[25996],e[t+308>>2]=A,A=e[25999],e[t+312>>2]=e[25998],e[t+316>>2]=A,r=26991;break e}e[t+296>>2]=303174160,e[t+300>>2]=353768980,e[t+104>>2]=16781320,e[t+144>>2]=2,e[t+8>>2]=2,e[t+12>>2]=22,A=e[26005],e[t+304>>2]=e[26004],e[t+308>>2]=A,A=e[26007],e[t+312>>2]=e[26006],e[t+316>>2]=A;break e}for(e[t+8>>2]=0,e[t+12>>2]=16,e[t+56>>2]=2,e[t+28>>2]=17,A=e[26009],e[t+304>>2]=e[26008],e[t+308>>2]=A,A=e[26011],e[t+312>>2]=e[26010],e[t+316>>2]=A,A=0,s=t+344|0;d[0|(o=A+s|0)]=231&u[0|o],d[0|(o=s+(1|A)|0)]=231&u[0|o],d[0|(o=s+(2|A)|0)]=231&u[0|o],d[0|(o=s+(3|A)|0)]=231&u[0|o],(0|(A=A+4|0))!=256;);e[t+104>>2]=2280,e[t+108>>2]=2,e[t+608>>2]=104048,d[t+451|0]=16|u[t+451|0],d[t+456|0]=16|u[t+456|0],d[t+459|0]=16|u[t+459|0],d[t+460|0]=16|u[t+460|0],d[t+450|0]=8|u[t+450|0],d[t+462|0]=8|u[t+462|0],d[t+458|0]=8|u[t+458|0],d[t+465|0]=64&u[t+465|0]|129;break e}e[t+296>>2]=269618961,e[t+300>>2]=370546196,e[t+12>>2]=131110,e[t+144>>2]=2,e[t+104>>2]=184559112,e[t+108>>2]=8192,e[t+16>>2]=0,e[t+20>>2]=2,e[t+4>>2]=1,e[t+8>>2]=2,e[t+100>>2]=e[t+96>>2],e[t+140>>2]=103676,e[t+68>>2]=2,e[t+56>>2]=1,e[t+44>>2]=130,e[t+28>>2]=2,A=e[26025],e[t+304>>2]=e[26024],e[t+308>>2]=A,A=e[26027],e[t+312>>2]=e[26026],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=26996;break e}e[t+4>>2]=524,e[t+8>>2]=2,e[t+196>>2]=368,e[t+104>>2]=0,e[t+336>>2]=104128,e[t- -64>>2]=1,A=e[26029],e[t+304>>2]=e[26028],e[t+308>>2]=A,A=e[26031],e[t+312>>2]=e[26030],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=6972015;break e}for(e[t+296>>2]=303174162,e[t+300>>2]=370545684,A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,o=Xe(t+344|0,0,256),d[t+431|0]=1,d[t+429|0]=1,d[t+411|0]=1,d[t+405|0]=1,d[t+400|0]=1,d[t+396|0]=1,d[t+392|0]=1,A=104160,s=49;d[0|(s=s+o|0)]=4|u[0|s],s=o+u[A+1|0]|0,d[0|s]=4|u[0|s],s=o+u[A+2|0]|0,d[0|s]=4|u[0|s],s=u[0|(A=A+3|0)],(0|A)!=104193;);e[t+600>>2]=4256,e[t+8>>2]=0,e[t+12>>2]=16,d[t+168|0]=7,e[t+132>>2]=32,d[t+392|0]=128|u[t+392|0],d[t+396|0]=128|u[t+396|0],d[t+400|0]=128|u[t+400|0],d[t+405|0]=128|u[t+405|0],d[t+411|0]=128|u[t+411|0],d[t+429|0]=128|u[t+429|0],d[t+431|0]=128|u[t+431|0],e[t+188>>2]=1056,e[t+192>>2]=29301,e[t+104>>2]=19964960;break e}for(e[t+600>>2]=1056,o=Xe(t+344|0,0,256),d[t+393|0]=1,d[t+365|0]=1,d[t+360|0]=1,d[t+545|0]=1,d[t+529|0]=1,d[t+391|0]=1,d[t+389|0]=1,d[t+390|0]=1,d[t+387|0]=1,d[t+379|0]=1,d[t+374|0]=1,d[t+368|0]=1,d[t+489|0]=1,d[t+487|0]=1,d[t+398|0]=1,A=104224,s=17;d[0|(s=s+o|0)]=4|u[0|s],s=o+u[A+1|0]|0,d[0|s]=4|u[0|s],s=o+u[A+2|0]|0,d[0|s]=4|u[0|s],s=u[0|(A=A+3|0)],(0|A)!=104251;);d[t+360|0]=128|u[t+360|0],d[t+365|0]=128|u[t+365|0],d[t+393|0]=128|u[t+393|0],d[t+368|0]=128|u[t+368|0],d[t+374|0]=128|u[t+374|0],d[t+379|0]=128|u[t+379|0],d[t+387|0]=128|u[t+387|0],d[t+389|0]=128|u[t+389|0],d[t+390|0]=128|u[t+390|0],d[t+391|0]=128|u[t+391|0],d[t+529|0]=128|u[t+529|0],d[t+545|0]=128|u[t+545|0],d[t+489|0]=128|u[t+489|0],d[t+487|0]=128|u[t+487|0],d[t+398|0]=128|u[t+398|0],A=e[26055],e[t+312>>2]=e[26054],e[t+316>>2]=A,A=e[26053],e[t+304>>2]=e[26052],e[t+308>>2]=A,e[t+296>>2]=353636370,e[t+300>>2]=336925972,e[t+200>>2]=0,e[t+8>>2]=7,e[t+12>>2]=2097184,d[t+168|0]=2,e[t+104>>2]=50176,e[t+84>>2]=1,VA(t,3);break e}e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+104>>2]=184618072,e[t+8>>2]=12,e[t+12>>2]=32,A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,r=27500;break e}e[t+184>>2]=42752,e[t+600>>2]=4352,Xe(t+344|0,0,256),d[t+456|0]=1,d[t+457|0]=1,d[t+458|0]=1,d[t+459|0]=1,d[t+449|0]=1,d[t+450|0]=1,d[t+451|0]=1,d[t+452|0]=1,d[t+453|0]=1,d[t+454|0]=1,d[t+455|0]=1,d[t+456|0]=1,d[t+441|0]=1,d[t+442|
28960]=1,d[t+443|0]=1,d[t+444|0]=1,d[t+445|0]=1,d[t+446|0]=1,d[t+447|0]=1,d[t+448|0]=1,d[t+460|0]=65,d[t+461|0]=65,d[t+532|0]=32,d[t+527|0]=32,d[t+519|0]=32,d[t+515|0]=32,d[t+349|0]=32,d[t+350|0]=32,d[t+346|0]=32,e[t+132>>2]=20,e[t+112>>2]=286331152,e[t+104>>2]=1024,e[t+108>>2]=16384,e[t+40>>2]=1,e[t+8>>2]=8,d[t+458|0]=65,d[t+453|0]=65,d[t+447|0]=65,d[t+448|0]=65,d[t+443|0]=65,d[t+444|0]=65,r=27503;break e}e[t+328>>2]=10,e[t+296>>2]=336859666,e[t+300>>2]=353768980,d[t+168|0]=2,e[t+104>>2]=263264,e[t+8>>2]=7,A=e[26065],e[t+304>>2]=e[26064],e[t+308>>2]=A,A=e[26067],e[t+312>>2]=e[26066],e[t+316>>2]=A,r=27509;break e}e[t+104>>2]=1,r=27513;break e}e[t+116>>2]=5e3,e[t+104>>2]=16777216,e[t+24>>2]=1,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=5,r=27745;break e}e[t+116>>2]=5e3,e[t+104>>2]=99336,e[t+108>>2]=256,e[t+24>>2]=1,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=5,r=27764;break e}e[t+328>>2]=6,e[t+296>>2]=336859409,e[t+300>>2]=353768980,e[t+600>>2]=1056,e[t+104>>2]=2114600,e[t+108>>2]=138,e[t+8>>2]=4,e[t+632>>2]=104288,e[t+604>>2]=104288,A=e[26093],e[t+304>>2]=e[26092],e[t+308>>2]=A,A=e[26095],e[t+312>>2]=e[26094],e[t+316>>2]=A,r=28011;break e}e[t+328>>2]=4,e[t+104>>2]=1,e[t+8>>2]=2,e[t+36>>2]=256,r=28020;break e}e[t+4>>2]=48,e[t+8>>2]=0,e[t+12>>2]=128,e[t+104>>2]=2169880,e[t+32>>2]=1,e[t+36>>2]=256,e[t+24>>2]=1,e[t+136>>2]=85767,A=e[26097],e[t+304>>2]=e[26096],e[t+308>>2]=A,A=e[26099],e[t+312>>2]=e[26098],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=28268;break e}e[t+8>>2]=0,e[t+104>>2]=71752,A=e[26101],e[t+304>>2]=e[26100],e[t+308>>2]=A,A=e[26103],e[t+312>>2]=e[26102],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=28258;break e}e[t+296>>2]=336858898,e[t+300>>2]=370546196,e[t+104>>2]=1088,e[t+108>>2]=512,e[t+8>>2]=2,e[t+12>>2]=524310,A=e[26105],e[t+304>>2]=e[26104],e[t+308>>2]=A,A=e[26107],e[t+312>>2]=e[26106],e[t+316>>2]=A,r=28525;break e}e[t+328>>2]=3,e[t+296>>2]=320015633,e[t+300>>2]=353768980,d[t+168|0]=7,e[t+8>>2]=2,e[t+12>>2]=6,e[t+104>>2]=20488,e[t+108>>2]=192,e[t+36>>2]=9,e[t+60>>2]=260,A=e[26109],e[t+304>>2]=e[26108],e[t+308>>2]=A,A=e[26111],e[t+312>>2]=e[26110],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=28780;break e}for(e[t+296>>2]=353569552,e[t+300>>2]=353768980,e[t+116>>2]=5e3,e[t+104>>2]=33570920,e[t+108>>2]=14336,e[t+8>>2]=3,e[t+12>>2]=139286,e[t+100>>2]=e[t+96>>2],A=e[26113],e[t+304>>2]=e[26112],e[t+308>>2]=A,A=e[26115],e[t+312>>2]=e[26114],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,A=0,s=t+344|0;d[0|(o=A+s|0)]=253&u[0|o],d[0|(o=s+(1|A)|0)]=253&u[0|o],d[0|(o=s+(2|A)|0)]=253&u[0|o],d[0|(o=s+(3|A)|0)]=253&u[0|o],(0|(A=A+4|0))!=256;);d[t+442|0]=2|u[t+442|0],d[t+443|0]=2|u[t+443|0],d[t+444|0]=2|u[t+444|0],d[t+446|0]=2|u[t+446|0],d[t+447|0]=2|u[t+447|0],d[t+450|0]=2|u[t+450|0],d[t+451|0]=2|u[t+451|0],d[t+453|0]=2|u[t+453|0],d[t+454|0]=2|u[t+454|0],d[t+456|0]=2|u[t+456|0],d[t+457|0]=2|u[t+457|0],d[t+459|0]=2|u[t+459|0],d[t+460|0]=2|u[t+460|0],d[t+462|0]=2|u[t+462|0],d[t+464|0]=2|u[t+464|0],d[t+466|0]=2|u[t+466|0],e[t+144>>2]=2,e[t+68>>2]=2;break e}e[t+296>>2]=303172879,e[t+300>>2]=353768980,e[t+328>>2]=3,e[t+8>>2]=3,e[t+12>>2]=262,e[t+104>>2]=16805928,e[t+108>>2]=30,A=e[26117],e[t+304>>2]=e[26116],e[t+308>>2]=A,A=e[26119],e[t+312>>2]=e[26118],e[t+316>>2]=A,r=29295;break e}ii(t),r=29301;break e}for(e[t+328>>2]=3,e[t+296>>2]=336859153,e[t+300>>2]=353768980,w[t+168>>1]=261,e[t+8>>2]=0,e[t+12>>2]=22,e[t+124>>2]=0,e[t+128>>2]=44,e[t+104>>2]=16794624,e[t+108>>2]=128,e[t+36>>2]=3,e[t+60>>2]=4,A=e[25869],e[t+304>>2]=e[25868],e[t+308>>2]=A,A=e[25871],e[t+312>>2]=e[25870],e[t+316>>2]=A,(0|r)==25459&&(e[t+108>>2]=136),d[t+465|0]=64&u[t+465|0]|129,d[t+458|0]=64&u[t+458|0]|129,A=0,s=t+344|0;d[0|(o=A+s|0)]=223&u[0|o],d[0|(o=s+(1|A)|0)]=223&u[0|o],d[0|(o=s+(2|A)|0)]=223&u[0|o],d[0|(o=s+(3|A)|0)]=223&u[0|o],(0|(A=A+4|0))!=256;);d[t+442|0]=32|u[t+442|0],d[t+444|0]=32|u[t+444|0],d[t+447|0]=32|u[t+447|0],d[t+450|0]=32|u[t+450|0],d[t+452|0]=32|u[t+452|0],d[t+453|0]=32|u[t+453|0],d[t+454|0]=32|u[t+454|0],d[t+458|0]=32|u[t+458|0],d[t+462|0]=32|u[t+462|0],d[t+463|0]=32|u[t+463|0],d[t+466|0]=32|u[t+466|0],d[t+441|0]=32|u[t+441|0],d[t+445|0]=32|u[t+445|0],d[t+449|0]=32|u[t+449|0],d[t+455|0]=32|u[t+455|0],d[t+461|0]=32|u[t+461|0],d[t+465|0]=32|u[t+465|0];break e}for(e[t+296>>2]=303174162,e[t+300>>2]=370545684,e[t+600>>2]=3456,d[t+169|0]=1,e[t+8>>2]=0,e[t+12>>2]=22,e[t+100>>2]=e[t+96>>2],A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,Xe(t+344|0,0,256),d[t+365|0]=1,d[t+366|0]=1,d[t+357|0]=1,d[t+358|0]=1,d[t+359|0]=1,d[t+360|0]=1,d[t+361|0]=1,d[t+362|0]=1,d[t+363|0]=1,d[t+364|0]=1,d[t+349|0]=1,d[t+350|0]=1,d[t+351|0]=1,d[t+352|0]=1,d[t+353|0]=1,d[t+354|0]=1,d[t+355|0]=1,d[t+356|0]=1,A=74,s=74;d[(o=t+s|0)+344|0]=1|u[o+344|0],d[o+345|0]=1|u[o+345|0],d[o+346|0]=1|u[o+346|0],(0|(s=s+3|0))!=116;);for(;d[(s=A+t|0)+344|0]=2|u[s+344|0],d[s+345|0]=2|u[s+345|0],d[s+346|0]=2|u[s+346|0],(0|(A=A+3|0))!=116;);for(s=26;d[(A=t+s|0)+344|0]=4|u[A+344|0],d[A+345|0]=4|u[A+345|0],d[A+346|0]=4|u[A+346|0],d[A+347|0]=4|u[A+347|0],d[A+348|0]=4|u[A+348|0],(0|(s=s+5|0))!=71;);e[t+112>>2]=84648,e[t+104>>2]=270589952,e[t+108>>
vendor: 4,665 bytes, line 2896
28962]=65536,e[t+40>>2]=1,e[t+204>>2]=e[t+600>>2]+74;break e}e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=3,e[t+124>>2]=32,e[t+104>>2]=16864280,e[t+108>>2]=256,e[t+68>>2]=2,e[t+36>>2]=259,e[t+40>>2]=118,e[t+28>>2]=1,d[t+458|0]=128|u[t+458|0],r=29548;break e}e[t+296>>2]=370544658,e[t+300>>2]=370546196,e[t+164>>2]=130,e[t+8>>2]=0,e[t+12>>2]=86,e[t+104>>2]=87064,d[t+169|0]=1,e[t+152>>2]=3,A=e[26121],e[t+304>>2]=e[26120],e[t+308>>2]=A,A=e[26123],e[t+312>>2]=e[26122],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=7564650;break e}e[t+296>>2]=269487120,e[t+300>>2]=320148500,e[t+8>>2]=3,e[t+12>>2]=278,e[t+144>>2]=2,e[t+104>>2]=32872,A=e[26125],e[t+304>>2]=e[26124],e[t+308>>2]=A,A=e[26127],e[t+312>>2]=e[26126],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=29553;break e}e[t+296>>2]=336859152,e[t+300>>2]=353768980,e[t+8>>2]=0,e[t+144>>2]=1,e[t+104>>2]=6408,A=e[26129],e[t+304>>2]=e[26128],e[t+308>>2]=A,A=e[26131],e[t+312>>2]=e[26130],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=29558;break e}e[t+296>>2]=320015376,e[t+300>>2]=353768980,d[t+168|0]=4,e[t+12>>2]=22,e[t+4>>2]=1,e[t+8>>2]=2,e[t+104>>2]=1248,e[t+100>>2]=e[t+96>>2],A=e[26133],e[t+304>>2]=e[26132],e[t+308>>2]=A,A=e[26135],e[t+312>>2]=e[26134],e[t+316>>2]=A;break e}e[t+296>>2]=303174162,e[t+300>>2]=370545684,d[t+169|0]=1,e[t+8>>2]=0,e[t+12>>2]=22,e[t+112>>2]=5288,e[t+100>>2]=e[t+96>>2],A=e[25877],e[t+304>>2]=e[25876],e[t+308>>2]=A,A=e[25879],e[t+312>>2]=e[25878],e[t+316>>2]=A;p:switch(r-29793|0){default:if((0|r)!=27502){if((0|r)!=28012)break r;A=e[26137],e[t+304>>2]=e[26136],e[t+308>>2]=A,A=e[26139],e[t+312>>2]=e[26138],e[t+316>>2]=A,e[t+600>>2]=3328,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+104>>2]=2098176,e[t+108>>2]=131072,e[t+8>>2]=13;break r}e[t+104>>2]=1,e[t+600>>2]=3200;break r;case 4:break p;case 1:case 2:case 3:break r;case 0:break a}e[t+104>>2]=1,e[t+108>>2]=524288,e[t+600>>2]=3072;break r}e[t+328>>2]=10,e[t+296>>2]=353636370,e[t+300>>2]=336925972,d[t+173|0]=1,e[t+8>>2]=7,e[t+12>>2]=32,d[t+168|0]=2,e[t+84>>2]=1,A=e[26141],e[t+304>>2]=e[26140],e[t+308>>2]=A,e[t+104>>2]=(0|r)==24954?2118920:2114824,A=e[26143],e[t+312>>2]=e[26142],e[t+316>>2]=A;break e}Kr(t),e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+104>>2]=2131208,e[t+8>>2]=3,e[t+12>>2]=32,A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,r=29812;break e}ii(t),r=30059;break e}e[t+112>>2]=21160,e[t+104>>2]=16,e[t+600>>2]=1536,e[t+40>>2]=1;break e}e[t+296>>2]=269488144,e[t+300>>2]=370546198,e[t+8>>2]=0,e[t>>2]=33,e[t+148>>2]=1,e[t+104>>2]=12615688,e[t+16>>2]=2,e[t+100>>2]=e[t+96>>2],e[t+632>>2]=104592,e[t+604>>2]=104592,A=e[26145],e[t+304>>2]=e[26144],e[t+308>>2]=A,A=e[26147],e[t+312>>2]=e[26146],e[t+316>>2]=A,r=30313;break e}if(e[t+296>>2]=370544662,e[t+300>>2]=370546198,e[t+8>>2]=3,e[t+12>>2]=2,e[t+148>>2]=1,e[t+184>>2]=12544,w[t+170>>1]=257,e[t+176>>2]=1,d[t+172|0]=1,e[t>>2]=33,e[t+4>>2]=0,e[t+100>>2]=e[t+96>>2],A=e[26225],e[t+304>>2]=e[26224],e[t+308>>2]=A,A=e[26227],e[t+312>>2]=e[26226],e[t+316>>2]=A,(0|r)!=7959909)break e;e[t+112>>2]=24,e[t+104>>2]=1,e[t+108>>2]=1048576,r=7959909;break e}A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,e[t+600>>2]=2944,e[t+104>>2]=2097152,e[t+108>>2]=262144,e[t+48>>2]=1}NA(t),d[t+422|0]=2|u[t+422|0];break e}e[t+40>>2]=1}return e[t+212>>2]=r,8&(A=e[t+104>>2])&&(e[t+124>>2]=46,e[t+128>>2]=44),4&A&&(e[t+124>>2]=0),t}function IA(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0;e:{r=e[32538],e[47354]=0,e[47568]=0,e[49828]=0,e[47569]=0,d[199328]=0,e[49827]=0,e[49845]=0,d[190280]=0,d[190268]=1,e[47202]=0,e[49573]=0,e[49846]=0,d[199304]=0,d[199388]=0,e[33691]=0,e[33285]=0,e[33708]=1,e[33709]=1,e[33288]=0,t=e[33730],e[33712]=e[33729],e[33713]=t,t=e[33732],e[33714]=e[33731],e[33715]=t,t=e[33734],e[33716]=e[33733],e[33717]=t,t=e[33736],e[33718]=e[33735],e[33719]=t,t=e[33738],e[33720]=e[33737],e[33721]=t,t=e[33740],e[33722]=e[33739],e[33723]=t,t=e[33742],e[33724]=e[33741],e[33725]=t,e[33726]=e[33743],d[134784]=0,d[134824]=0,d[134772]=0,d[134760]=0,e[33284]=-1,e[33692]=0,e[32525]=0,e[47201]=e[33717],e[47200]=e[33718],bo(),e[34438]=0,e[34437]=0,t=e[33730],e[34048]=e[33729],e[34049]=t,t=e[33732],e[34050]=e[33731],e[34051]=t,t=e[33734],e[34052]=e[33733],e[34053]=t,t=e[33736],e[34054]=e[33735],e[34055]=t,t=e[33738],e[34056]=e[33737],e[34057]=t,t=e[33740],e[34058]=e[33739],e[34059]=t,t=e[33742],e[34060]=e[33741],e[34061]=t,e[34062]=e[33743];A:{r:{if(1&r){if(e[e[32539]>>2]=0,e[47569]|e[49845]|e[49827])break r;break A}if(e[e[32539]>>2]=0,!(e[49845]|e[49827]||e[47569]))break A}d[190280]=1}e[49828]=0,t=268436735;
vendor: 37,417 bytes, line 2896
2896A:if(!(!e[34391]|!e[34388])&&(e[47204]=0,e[47203]=0,e[47199]=0,e[34439]=0,(e[47192]||!(t=aa(86228)))&&((t=e[33283])||((t=ZA(16))&&(e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0),e[33283]=t),l=268439807,(r=e[e[47192]+328>>2])>>>0>20|!e[129104+(r<<3)>>2]?t=l:(A?(l=4,o=EA(A)+1|0):(l=2,o=0),e[t+8>>2]=l,e[t>>2]=A,e[t+12>>2]=e[129108+(r<<3)>>2],e[t+4>>2]=A?A+o|0:0,t=0),!t))){MA(0);r:{for(;;){e[34436]=0,A=e[34391],e[51290]=A,e[54046]=A+e[34390],e[50767]<=102399&&(e[50767]=102400);a:if(!((c=e[51290])>>>0>=ee[54046]))for(;;){if((((0|(A=(o=e[50757])-(f=e[50758])|0))<=0?A+170|0:A)-171|0)>=-1){if((0|(A=e[54731]))<=0)break a;l=0,e[50763]=0,e[50762]=0,e[50765]=2147483647,A=u[218920]?e[54732]:A;n:{for(;;){if(r=A-1|0,e[54732]=r,(0|A)<=0)break n;if(e[51290]=c+1,t=(A=e[51293])+1|0,e[51293]=(0|t)<=5499?t:0,t=(A=O(e[50755],w[205184+(A<<1)>>1]))>>8,d[0|c]=t,o=e[51290],e[51290]=o+1,d[0|o]=A>>>16,(o=e[50756])?(A=r,(r=e[o+4>>2])&&(At[0|r](t<<16>>16),A=e[54732])):A=r,o=(r=e[51292])+1|0,e[51292]=o,w[205184+(r<<1)>>1]=t,(0|o)>=5500&&(e[51292]=0),c=e[51290],!(ee[54046]>=c+2>>>0))break}l=1}d[218920]=l;break a}A=e[(r=216192+(o<<4)|0)+4>>2];n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{x:{I:{B:{N:{L:switch((255&(t=e[r>>2]))-1|0){case 9:break c;case 7:break u;case 10:break l;case 11:break i;case 13:break p;case 0:break C;case 1:break h;case 2:break b;case 3:break m;case 6:break x;case 5:break I;case 4:break B;case 15:break N;case 8:break L;default:break o}if(!e[50759])break o;t=e[r+12>>2],r=e[r+8>>2],e[50768]=0,c=r||99232,e[50766]=c,e[50769]=A?2097152/(0|A)|0:0,A=e[50971],o=(0|O(A,e[50788]))/50|0,r=O(o-A|0,-18),A=((0|(A=e[50785]))>=101?101:A)-e[50790]|0,t=(l=r+((0|O(e[50970],u[((0|A)>0?A:0)+105680|0]))/128|0)|0)+((0|O(o,(0|(A=t>>16))<(0|(r=65535&t))?A:r))/2|0)|0,e[50770]=t,A=(l+((0|O(o,(0|A)>(0|r)?A:r))/2|0)|0)-t|0,e[50771]=A,r=u[0|c],e[33072]=e[50976],e[50767]=t+(O(A,r)>>8);break o}At[e[e[50756]>>2]](A,e[r+8>>2]),ue(A);break o}if(u[218920]||(e[54731]=e[54731]-A),e[50781]=100,e[50773]=0,_A(),e[50763]=0,e[50762]=0,e[50765]=2147483647,!A)break o;for(A=u[218920]?e[54732]:A;;){if(r=A-1|0,e[54732]=r,(0|A)<=0)break o;if(A=e[51290],e[51290]=A+1,o=(t=e[51293])+1|0,e[51293]=(0|o)<=5499?o:0,o=A,t=(A=O(e[50755],w[205184+(t<<1)>>1]))>>8,d[0|o]=t,o=e[51290],e[51290]=o+1,d[0|o]=A>>>16,(o=e[50756])?(A=r,(r=e[o+4>>2])&&(At[0|r](t<<16>>16),A=e[54732])):A=r,o=(r=e[51292])+1|0,e[51292]=o,w[205184+(r<<1)>>1]=t,(0|o)>=5500&&(e[51292]=0),o=1,!(ee[54046]>=e[51290]+2>>>0))break}break n}for(e[50773]=0,e[54731]=e[54729],_A(),t=e[r+12>>2],o=e[r+8>>2],u[218920]?A=e[54733]:e[54734]=0,f=t>>8,l=255&t,e[50762]=0,e[50763]=0;;){if(r=A-1|0,e[54733]=r,(0|A)<=0)break o;if(t=(A=e[54734])+1|0,l?c=O(l,d[A+o|0]):(c=u[A+o|0]|d[t+o|0]<<8,t=A+2|0),e[54734]=t,m=(A=e[51293])+1|0,e[51293]=m,t=(0|(A=(0|(A=((0|O(f,O(e[33037],O(e[33038],c))>>10))/32|0)+(O(e[50755],w[205184+(A<<1)>>1])>>8)|0))<=-32768?-32768:A))>=32767?32767:A,(0|m)>=5500&&(e[51293]=0),d[e[51290]]=t,d[e[51290]+1|0]=t>>>8,(c=e[50756])?(A=r,(r=e[c+12>>2])&&(At[0|r](t<<16>>16),A=e[54733])):A=r,r=e[51290],e[51290]=r+2,m=(c=e[51292])+1|0,e[51292]=m,w[205184+(c<<1)>>1]=(0|O(t,3))/4,(0|m)>=5500&&(e[51292]=0),!(ee[54046]>=r+4>>>0))break}o=1;break n}t=e[r+12>>2],o=A>>>16|0,e[50777]=o,A&=65535,e[50773]=A,l=255&t,e[50774]=l,e[50775]=t>>8,l||(e[50777]=o<<1,e[50773]=A<<1),e[50778]=0,e[50776]=0,e[50772]=e[r+8>>2];break o}e[50773]=0}if(e[54731]=e[54729],t=e[50759],u[218920]){if(!t)break o}else{if(!t)break o;for(l=e[r+12>>2],c=e[r+8>>2],r=A>>16,e[55912]=255&r,d[218960]=1,e[55908]=0,67108864&A&&(e[55908]=3,e[55909]=e[110496+(r>>>6&12)>>2]),134217728&A&&(e[55908]=4,e[55909]=e[110512+(r>>>6&12)>>2]),A&=65504;;){if((0|f)!=(0|(o=(0|(r=o+1|0))<=169?r:0)))if((0|(r=e[216192+(o<<4)>>2]))!=3){if(r-5>>>0>1)continue}else d[218960]=0;break}for(e[55913]=e[50762],A=(A=A+32&131008)||64,e[50763]=A+e[50763],e[55684]=O(w[101997],7800)+(y[102024]<<8)<<8,e[55704]=O(w[101998],9e3)+(y[102025]<<8)<<8,_=e[50980],s=+(0|A),x=+(A>>>2|0),A=0;(0|A)!=7&&(o=w[(m=(r=A<<1)+t|0)+218>>1]<<8,f=O(A,80)+222176|0,m=w[m+164>>1],P=o+O(m,w[2+(r+c|0)>>1])<<8,e[f>>2]=P,b=+(0|P),T[f+16>>3]=b,T[f+48>>3]=16*(+(o+O(m,w[2+(r+l|0)>>1])<<8)-b)/x),o=(r=O(A,80))+222176|0,m=w[(P=t+(A<<1)|0)+182>>1],U=O(m,u[(f=A+c|0)+18|0])<<6,e[o+4>>2]=U,b=+(0|U),T[o+24>>3]=b,W=o,o=A+l|0,T[W+56>>3]=64*(+(O(m,u[o+18|0])<<6)-b)/s,(0|A)>(0|_)|A>>>0>5||(m=r+222176|0,U=w[P+200>>1],P=O(U,u[f+26|0])<<10,e[m+8>>2]=P,b=+(0|P),T[m+32>>3]=b,W=m- -64|0,m=U<<10,T[W>>3]=64*(+(0|O(m,u[o+26|0]))-b)/s,A>>>0<=2?(r=r+222176|0,f=O(m,u[f+32|0]),e[r+12>>2]=f,b=+(0|f),T[r+40>>3]=b,T[r+72>>3]=64*(+(0|O(m,u[o+32|0]))-b)/s):e[r+222188>>2]=P),(0|(A=A+1|0))!=8;);}for(;;){if(A=e[50762],!u[218960]&(0|A)==e[50763])break o;b:{m:{if(63&A){if(7&A)break b;x:if(!((0|(r=e[54736]))<=0||(0|(t=e[54735]))<=0))for(o=e[50826],A=1;;){if(e[(c=(l=A<<2)+o|0)>>2]=e[c>>2]+e[l+203312>>2],A>>>0>28|(0|A)>=(0|r))break x;if(l=(0|A)<(0|t),A=A+1|0,!l)break}if((0|(A=e[33073]))>255)break b;e[33073]=A+1;break b}if(A)if(e[50759]){if(r=e[50768]+e[50769]|0,e[50768]=r,r=(t=e[50766])?O(u[t+((0|(r>>=8))>=127?127:r)|0],e[50771])>>8:0,e[55911]=e[55911]+e[55915],t=(0|(t=e[55914]))<=23551?t:0,e[55914]=t+e[50761],t=(r+e[50770]|0)+O(e[33072],u[110528+(t>>6)|0]-128|0)|0,e[50767]=t,!(o=e[51291])&(0|(r=o?o<<12:t))>102399||(t=(0|r)<=102400?102400:r,e[50767]=t),(0|A)!=e[55913]){if(A=0,!((0|(f=e[50980]))<0)){for(;c=O(A,80),s=T[(r=c+222176|0)+48>>3]+T[r+16>>3],T[r+16>>3]=s,x=T[r+56>>3]+T[r+24>>3],T[r+24>>3]=x,b=T[r- -64>>3]+T[r+32>>3],T[r+32>>3]=b,o=se(s)<2147483648?~~s:-2147483648,e[r>>2]=o,o=se(b)<2147483648?~~b:-2147483648,e[r+8>>2]=o,l=se(x)<2147483648?~~x:-2147483648,e[r+4>>2]=(0|l)>0?l:0,(0|A)>2||(s=T[(r=c+222176|0)+72>>3]+T[r+40>>3],T[r+40>>3]=s,o=se(s)<2147483648?~~s:-2147483648),e[c+222188>>2]=o,(0|f)>=(0|(A=A+1|0)););if((0|A)>=8)break m}for(;(0|A)!=7&&(r=O(A,80)+222176|0,s=T[r+48>>3]+T[r+16>>3],T[r+16>>3]=s,o=se(s)<2147483648?~~s:-2147483648,e[r>>2]=o),r=O(A,80)+222176|0,s=T[r+56>>3]+T[r+24>>3],T[r+24>>3]=s,o=se(s)<2147483648?~~s:-2147483648,e[r+4>>2]=(0|o)>0?o:0,(0|(A=A+1|0))!=8;);}}else t=e[50767];else e[50826]=218976,e[54742]=0,e[54736]=zt(e[50767]<<4,218976,0),t=e[50767],e[54737]=890/(t>>12),e[54739]=(0|O(e[50781],O(e[50779],t>>8)))/8e4}if(e[55906]=t>>11,e[54735]=e[54736],e[55904]=O(e[50760],t>>7),e[55905]=e[50754]/(t>>12),r=1^(A=e[54742]),e[54742]=r,e[50826]=O(A,1600)+218976,e[54736]=zt(t<<4,O(r,1600)+218976|0,1),!(!(t=e[50759])|!e[51022]))for(x=T[25430],b=T[25429],A=1;e[(r=t+(A<<2)|0)+272>>2]&&(o=e[r+308>>2],r=O(A,40)+203456|0,I=gs(x*+w[2+(O(A,80)+222176|0)>>1]),I*=s=Vr(b*+(0|o)),I+=I,T[r+8>>3]=I,s*=-s,T[r+16>>3]=s,T[r>>3]=1-I-s),(0|(A=A+1|0))!=9;);}if(l=e[50762]+1|0,e[50762]=l,c=(A=e[50765])+e[55904]|0,e[50765]=c,(0|c)<0&(0|A)>0){if(m=e[55905],t=e[50800]+((0|m)/-2|0)|0,e[55907]=t,(0|(P=e[50763]))<(0|l))break o;if(_=e[54738]+1|0,e[54738]=_,f=e[50767],!((0|(A=(r=e[50980])+1|0))>8)&&(o=f<<3,1&r&&(e[203264+(A<<2)>>2]=(1+(e[O(A,80)+222176>>2]/(0|o)|0)|0)/2,A=r+2|0),(0|r)!=7))for(;r=203264+(A<<2)|0,U=O(A,80)+222176|0,e[r>>2]=(1+(e[U>>2]/(0|o)|0)|0)/2,e[r+4>>2]=(1+(e[U+80>>2]/(0|o)|0)|0)/2,(0|(A=A+2|0))!=9;);A=(0|O(e[50781],O(e[50779],f>>8)))/8e4|0,e[54739]=A;b:if(!((0|(r=e[55908]))<=0)){m:switch(r-3|0){case 0:if((P-l|0)>=m<<1)break b;e[55908]=2,A=(0|O(e[55909],A))/256|0,e[54739]=A;break b;case 1:e[55908]=2,A=(0|O(e[55909],A))/256|0,e[54739]=A;break b;default:break m}e[55908]=r-1}(r=e[55910])&&(o=A,A=e[55911]>>8,A=(0|O(o,u[r+((0|A)>=127?127:A)|0]))/128|0,e[54739]=A),(0|(r=e[e[32972]+92>>2]))>7||(r=15&(o=u[e[55912]+(106336+(r<<3)|0)|0]),(o=o>>>4|0)&&((0|o)!=15?(0|_)%(0|o)|0||(e[54739]=(0|O(A,r))/16):(e[55912]=0,e[54739]=(0|O(A,r))/16)))}else t=e[55907];if(l=t+1|0,e[55907]=l,r=c>>>16|0,o=0,!((0|l)<0|(0|l)>=e[50799])){if(!((0|(A=(t=e[50980])+1|0))>8)){if(f=1&(c=8-t|0),(0|t)!=7)for(m=-2&c,t=0;o=O(e[(P=(c=A<<2)+4|0)+203216>>2],w[106400+(O(r,e[P+203264>>2])>>>4&4094)>>1])+(O(e[c+203216>>2],w[106400+(O(r,e[c+203264>>2])>>>4&4094)>>1])+o|0)|0,A=A+2|0,(0|m)!=(0|(t=t+2|0)););f&&(o=O(e[(A<<=2)+203216>>2],w[106400+(O(r,e[A+203264>>2])>>>4&4094)>>1])+o|0)}o=O(u[l+132160|0],(0|o)/e[55906]|0)}if(A=1,(0|(l=e[54737]))<=0)t=r;else for(c=e[50826],t=r;o=O(e[c+(A<<2)>>2],w[106400+((65504&t)>>>4|0)>>1])+o|0,t=t+r|0,(0|l)>=(0|(A=A+1|0)););if((0|(l=e[54735]))>=(0|A))for(c=e[50826];o=o-O(e[c+(A<<2)>>2],w[106400+((65504&t)>>>4|0)>>1])|0,t=t+r|0,(0|l)>=(0|(A=A+1|0)););if(l=(0|(A=e[54728]))==64?o:O(A,o>>6),e[51022]){if(e[50759])for(r=at(e[33209],0,1103515245,0),A=ce,A=ji(r=r+12345|0,A=r>>>0<12345?A+1|0:A),e[33209]=A,x=+((16383&A)- -8192|0),t=e[50759],c=0,A=1;(o=e[272+(t+(A<<2)|0)>>2])&&(f=e[O(A,80)+222180>>2],r=O(A,40)+203456|0,s=T[r+32>>3],b=T[r+24>>3],T[r+32>>3]=b,s=s*T[r+16>>3]+(T[r>>3]*x+b*T[r+8>>3]),T[r+24>>3]=s,r=se(s)<2147483648?~~s:-2147483648,c=O(r,O(o,f>>14))+c|0),(0|(A=A+1|0))!=9;);else c=0;l=l+c|0}t=0,(0|(A=e[50776]))>=e[50773]||(r=e[50778],t=e[50772],(c=e[50774])?(o=A+1|0,e[50776]=o,A=O(c,d[t+(A+r|0)|0])):(c=u[0|(t=t+(A+r|0)|0)],t=d[t+1|0],o=A+2|0,e[50776]=o,A=c|t<<8),t=(0|O(O(A,e[50780])>>10,e[50775]))/32|0,(0|(A=e[50777]))>(r+o|0)||(e[50778]=r+((0|O(A,3))/-4|0))),r=(A=e[51293])+1|0,e[51293]=r,A=((O(e[54739],l>>8)>>13)+t|0)+(O(e[50755],w[205184+(A<<1)>>1])>>8)|0,(0|r)>=5500&&(e[51293]=0),r=e[33073];b:{m:{if((0|(t=O(r,A)))>=8388608){if((0|r)>=(0|(c=8388608/(0|A)|0)))break m;break b}if((0|t)>-8388353||(0|r)<(0|(c=-8388608/(0|A)|0)))break b}r=c-1|0,e[33073]=r,t=O(A,r)}if(A=e[51290],e[51290]=A+1,r=A,A=t>>8,d[0|r]=A,r=e[51290],e[51290]=r+1,d[0|r]=t>>>16,(r=e[50756])&&(r=e[r+8>>2])&&At[0|r](A<<16>>16),t=(r=e[51292])+1|0,e[51292]=t,w[205184+(r<<1)>>1]=A,(0|t)>=5500&&(e[51292]=0),!(ee[54046]>=e[51290]+2>>>0))break}o=1;break n}e[50773]=0}e[54731]=e[54729],o=1,f=65535&A,t=u[218920],c=e[r+8>>2],l=e[r+12>>2],s=0,b=0,Y=r=Y+-64|0,m=e[50759];C:if((0|(A=e[m+132>>2]))!=6){if(!t){for(A-1>>>0<=4&&(e[55921]=A,e[55964]=e[110896+(A<<2)>>2]),A=e[m+88>>2],e[54741]=1,e[55922]=(0|A)/32,t=e[50758],A=e[50757];;){h:if((0|t)!=(0|(A=(0|(A=A+1|0))<=169?A:0)))if((0|(P=e[216192+(A<<4)>>2]))!=1){if(P-5>>>0>1)continue}else{if(e[54741]=0,A=e[8+(216192+(A<<4)|0)>>2],!(y[l+4>>1]!=y[A+4>>1]|y[A+6>>1]!=y[l+6>>1]|y[A+8>>1]!=y[l+8>>1]|y[A+10>>1]!=y[l+10>>1])&&y[A+12>>1]==y[l+12>>1])break h;e[54741]=2}break}for((y[c+4>>1]!=y[113564]|y[c+6>>1]!=y[113565]|y[c+8>>1]!=y[113566]|y[c+10>>1]!=y[113567]||y[c+12>>1]!=y[113568])&&(fA(),e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,e[55988]=0,e[55989]=0,e[55990]=0,e[55991]=0,e[56004]=0,e[56005]=0,e[56006]=0,e[56007]=0,e[56020]=0,e[56021]=0,e[56022]=0,e[56023]=0,e[56036]=0,e[56037]=0,e[56038]=0,e[56039]=0,e[56052]=0,e[56053]=0,e[56054]=0,e[56055]=0,e[56068]=0,e[56069]=0,e[56070]=0,e[56071]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0),A=y[l+4>>1]|y[l+6>>1]<<16,t=y[l>>1]|y[l+2>>1]<<16,w[113562]=t,w[113563]=t>>>16,w[113564]=A,w[113565]=A>>>16,A=y[l+60>>1]|y[l+62>>1]<<16,t=y[l+56>>1]|y[l+58>>1]<<16,w[113590]=t,w[113591]=t>>>16,w[113592]=A,w[113593]=A>>>16,A=y[l+52>>1]|y[l+54>>1]<<16,t=y[l+48>>1]|y[l+50>>1]<<16,w[113586]=t,w[113587]=t>>>16,w[113588]=A,w[113589]=A>>>16,A=y[l+44>>1]|y[l+46>>1]<<16,t=y[l+40>>1]|y[l+42>>1]<<16,w[113582]=t,w[113583]=t>>>16,w[113584]=A,w[113585]=A>>>16,A=y[l+36>>1]|y[l+38>>1]<<16,t=y[l+32>>1]|y[l+34>>1]<<16,w[113578]=t,w[113579]=t>>>16,w[113580]=A,w[113581]=A>>>16,A=y[l+28>>1]|y[l+30>>1]<<16,t=y[l+24>>1]|y[l+26>>1]<<16,w[113574]=t,w[113575]=t>>>16,w[113576]=A,w[113577]=A>>>16,A=y[l+20>>1]|y[l+22>>1]<<16,t=y[l+16>>1]|y[l+18>>1]<<16,w[113570]=t,w[113571]=t>>>16,w[113572]=A,w[113573]=A>>>16,A=y[l+12>>1]|y[l+14>>1]<<16,t=y[l+8>>1]|y[l+10>>1]<<16,w[113566]=t,w[113567]=t>>>16,w[113568]=A,w[113569]=A>>>16,x=+(0|f),(W=1&w[c>>1])?(A=u[c+39|0],e[56680]=A,T[28364]=A>>>0,T[28354]=+(u[l+39|0]-A<<6)/x,A=u[c+40|0],T[28366]=A>>>0,T[28356]=+(u[l+40|0]-A<<6)/x,A=u[c+41|0],e[56682]=A,T[28368]=A>>>0,T[28358]=+(u[l+41|0]-A<<6)/x,t=u[c+42|0],e[56684]=t,T[28370]=t>>>0,A=u[c+43|0],s=+(u[l+43|0]-A<<6)/x,b=+(u[l+42|0]-t<<6)/x,I=+(A>>>0)):(e[56728]=0,e[56729]=0,A=0,e[56680]=0,e[56708]=0,e[56709]=0,e[56732]=0,e[56733]=0,e[56712]=0,e[56713]=0,e[56682]=0,e[56736]=0,e[56737]=0,e[56716]=0,e[56717]=0,e[56684]=0,e[56740]=0,e[56741]=0,I=0),e[56688]=A,T[28360]=b,T[28372]=I,T[28362]=s,e[56692]=0,e[56748]=0,e[56749]=0,e[56694]=0,e[56752]=0,e[56753]=0,e[56696]=0,e[56756]=0,e[56757]=0,e[56700]=0,e[56760]=0,e[56761]=0,e[56704]=0,e[56764]=0,e[56765]=0,e[50764]=f,A=1;_=w[(P=(f=A<<1)+m|0)+164>>1],t=(Me=O(A,80))+222896|0,b=+w[P+218>>1],s=.00390625*+(0|O(_,w[2+(c+f|0)>>1]))+b,T[t+16>>3]=s,U=se(s)<2147483648?~~s:-2147483648,e[t>>2]=U,T[t+48>>3]=64*(.00390625*+(0|O(_,w[2+(l+f|0)>>1]))+b-s)/x,A>>>0<=3&&(t=Me+222896|0,s=.00390625*+w[P+200>>1]*+(u[35+(A+c|0)|0]<<1),T[t+24>>3]=s,f=se(s)<2147483648?~~s:-2147483648,e[t+4>>2]=f,T[t+56>>3]=64*(+(u[35+(A+l|0)|0]<<1)-s)/x),(0|(A=A+1|0))!=6;);if(s=+((A=u[c+40|0])<<1),T[27864]=s,t=e[56618],A||(s=+(0|t),T[27864]=s),A=se(s)<2147483648?~~s:-2147483648,e[55724]=A,f=u[l+40|0],e[55730]=0,e[55731]=1079394304,e[55738]=0,e[55739]=0,e[55725]=89,A=1,T[27868]=64*(+(0|(f?f<<1:t))-s)/x,W)for(;t=O(A,80)+222896|0,m=u[(f=A+c|0)+56|0]<<2,e[t+12>>2]=m,s=+(0|m),T[t+40>>3]=s,m=A+l|0,T[t+72>>3]=64*(+(u[m+56|0]<<2)-s)/x,f=u[f+49|0],e[t+8>>2]=f,s=+(f>>>0),T[t+32>>3]=s,T[t- -64>>3]=64*(+u[m+49|0]-s)/x,(0|(A=A+1|0))!=7;);e[56606]=0}for(;;){if((0|(U=e[50764]))>(0|(l=e[56606]))){for(A=e[50767],e[56609]=e[55724],e[56619]=e[55725],e[56610]=e[55744],e[56611]=e[55764],e[56612]=e[55784],e[56613]=e[55804],W=O(A,10),e[56607]=(0|W)/4096,e[56620]=e[55745],e[56621]=e[55765],e[56622]=e[55785],e[56614]=e[55824],e[56630]=e[55746],e[56631]=e[55766],e[56632]=e[55786],e[56633]=e[55806],e[56634]=e[55826],e[56635]=e[55846],Me=e[56680],e[56608]=Me,c=e[56694],e[56656]=c,f=e[56696],e[56653]=f,m=e[56700],e[56655]=m,P=e[56684],e[56649]=P,e[56651]=e[56704],e[56654]=e[56688],e[56652]=e[56682],e[56650]=e[56692],A=0;t=O(A,80)+222896|0,s=T[t+48>>3]+T[t+16>>3],T[t+16>>3]=s,x=T[t+56>>3]+T[t+24>>3],T[t+24>>3]=x,b=T[t+72>>3]+T[t+40>>3],T[t+40>>3]=b,I=T[t- -64>>3]+T[t+32>>3],T[t+32>>3]=I,_=se(s)<2147483648?~~s:-2147483648,e[t>>2]=_,_=se(x)<2147483648?~~x:-2147483648,e[t+4>>2]=_,_=se(b)<2147483648?~~b:-2147483648,e[t+12>>2]=_,_=se(I)<2147483648?~~I:-2147483648,e[t+8>>2]=_,(0|(A=A+1|0))!=9;);for(s=T[28354]+T[28364],T[28364]=s,T[28366]=T[28356]+T[28366],x=T[28358]+T[28368],T[28368]=x,b=T[28360]+T[28370],T[28370]=b,I=T[28362]+T[28372],T[28372]=I,A=se(s)<2147483648?~~s:-2147483648,e[56680]=A,A=se(x)<2147483648?~~x:-2147483648,e[56682]=A,A=se(b)<2147483648?~~b:-2147483648,e[56684]=A,A=se(I)<2147483648?~~I:-2147483648,e[56688]=A,s=T[28374]+0,T[28374]=s,A=se(s)<2147483648?~~s:-2147483648,e[56692]=A,s=T[28376]+0,T[28376]=s,A=se(s)<2147483648?~~s:-2147483648,e[56694]=A,s=T[28378]+0,T[28378]=s,A=se(s)<2147483648?~~s:-2147483648,e[56696]=A,s=T[28380]+0,T[28380]=s,A=se(s)<2147483648?~~s:-2147483648,e[56700]=A,s=T[28382]+0,T[28382]=s,A=se(s)<2147483648?~~s:-2147483648,e[56704]=A,e[56659]=e[55724],e[56669]=e[55725],e[56660]=e[55744],e[56670]=e[55745],e[56661]=e[55764],e[56671]=e[55765],e[56662]=e[55784],e[56672]=e[55785],e[56663]=e[55804],e[56664]=e[55824],e[56665]=e[55844],A=e[50768]+e[50769]|0,e[50768]=A,A>>=8,e[50767]=e[50770]+(O(e[50771],u[e[50766]+((0|A)>=127?127:A)|0])>>8),A=U-l|0,e[55923]=(0|A)>=64?64:A,e[55961]=(0|W)/40960,A=Me-7|0,e[56658]=(0|A)>0?A:0,T[27974]=P>>>0<=87?.001*+w[111136+(P<<1)>>1]*.05:0,T[27975]=f>>>0<=87?.001*+w[111136+(f<<1)>>1]*.25:0,T[27973]=c>>>0<=87?.001*+w[111136+(c<<1)>>1]:0,T[27971]=m>>>0<=87?.001*+w[111136+(m<<1)>>1]*.05:0,s=(A=e[56629])>>>0<=87?.001*+w[111136+(A<<1)>>1]*.6:0,T[r>>3]=s,s=(A=e[56630])>>>0<=87?.001*+w[111136+(A<<1)>>1]*.4:0,T[r+8>>3]=s,s=(A=e[56631])>>>0<=87?.001*+w[111136+(A<<1)>>1]*.15:0,T[r+16>>3]=s,s=(A=e[56632])>>>0<=87?.001*+w[111136+(A<<1)>>1]*.06:0,T[r+24>>3]=s,s=(A=e[56633])>>>0<=87?.001*+w[111136+(A<<1)>>1]*.04:0,T[r+32>>3]=s,s=(A=e[56634])>>>0<=87?.001*+w[111136+(A<<1)>>1]*.022:0,T[r+40>>3]=s,s=(A=e[56635])>>>0<=87?.001*+w[111136+(A<<1)>>1]*.03:0,T[r+48>>3]=s,s=(A=(0|(A=e[56657]-3|0))<=0?57:A)>>>0<=87?.001*+w[111136+(A<<1)>>1]:0,T[27977]=s/+e[55964],x=T[27968],b=T[27967],A=1;t=(l=A<<6)+223664|0,I=(s=Vr(b*+e[(f=(c=A<<2)+226428|0)+48>>2]))*-s,T[t+216>>3]=I,s*=gs(x*+e[f+8>>2]),s+=s,T[t+208>>3]=s,le=1-s-I,T[t+200>>3]=le,A>>>0<=5&&(f=e[(c=c+226428|0)+208>>2],t=l+223664|0,re=(Z=Vr(b*+e[c+248>>2]))*gs(x*+(0|f)),re+=re,T[t+1488>>3]=re,Z*=-Z,T[t+1496>>3]=Z,Ce=1-re-Z,T[t+1480>>3]=Ce,T[t+256>>3]=.015625*(Z-I),T[t+248>>3]=.015625*(re-s),T[t+240>>3]=.015625*(Ce-le)),(0|(A=A+1|0))!=10;);for(Z=(s=Vr(b*+e[56619]))*-s,T[27985]=Z,re=(s*=gs(x*+(0-e[56609]|0)))+s,T[27984]=re,s=1-re-Z,T[27983]=s,s!=0&&(s=1/s,T[27983]=s,Z*=I=-s,T[27985]=Z,re*=I,T[27984]=re),le=(I=Vr(b*+e[56669]))*-I,T[28145]=le,Ce=(I*=gs(x*+(0-e[56659]|0)))+I,T[28144]=Ce,I=1-Ce-le,T[28143]=I,I!=0&&(I=1/I,T[28143]=I,le*=Ve=-I,T[28145]=le,Ce*=Ve,T[28144]=Ce),T[27990]=.015625*(le-Z),T[27989]=.015625*(Ce-re),T[27988]=.015625*(I-s),A=0;c=e[(l=226428+(A<<2)|0)+8>>2],t=223664+(A<<6)|0,I=(s=Vr(b*+e[l+128>>2]))*gs(x*+(0|c)),I+=I,T[t+848>>3]=I,s*=-s,T[t+856>>3]=s,T[t+840>>3]=T[r+(A<<3)>>3]*(1-I-s),(0|(A=A+1|0))!=7;);if(b=(s=Vr(b*+(e[55918]/2|0)))*-s,T[28137]=b,s*=gs(0*x),s+=s,T[28136]=s,T[28135]=1-s-b,A=1,(0|$r())!=1)continue;break C}break}A=1,e[54741]>0&&(e[54741]=0,e[55963]=64,e[56606]=l+-64,e[55923]=64,(0|$r())==1)||(A=0)}else{if(Y=P=Y-752|0,!t){Xe(A=P+376|0,0,376),ss(m,c,A),ss(m,l,A=Xe(P,0,376)),t=e[50768]+O(e[50769],f>>>6|0)|0,e[50768]=t,t>>=8,t=e[50770]+(O(e[50771],u[e[50766]+((0|t)>=127?127:t)|0])>>8)|0,e[50767]=t,T[A+368>>3]=(0|t)/4096|0,e[50773]&&(T[A+736>>3]=T[A+736>>3]/5,T[A+360>>3]=T[A+360>>3]/5),t=e[e[56797]+4>>2],At[e[e[t>>2]>>2]](t,A+376|0,110,110,-1,0),l=f-110|0,m=e[50758],t=e[50757];h:{for(;;){if((0|m)!=(0|(t=(t+1|0)%170|0))&&!((_=e[216192+(t<<4)>>2])-5>>>0<2)){if(c=1,(0|_)!=1)continue;break h}break}l=f-220|0,c=0}(0|l)>0&&(t=e[e[56797]+4>>2],At[e[e[t>>2]>>2]](t,A,l,l||1,-1,0)),c||(e[A+352>>2]=0,e[A+356>>2]=0,T[A>>3]=T[A+368>>3],t=e[e[56797]+4>>2],At[e[e[t>>2]>>2]](t,A,55,55,-1,0),e[A+360>>2]=0,e[A+364>>2]=0,t=e[e[56797]+4>>2],At[e[e[t>>2]>>2]](t,A,55,55,-1,0))}A=e[e[56797]+8>>2],t=e[51290],f=0|At[e[e[A>>2]>>2]](A,e[54046]-t>>>1|0,t),m=e[51290];h:if(f&&!((0|(t=e[50776]))>=(0|(Me=e[50773]))))for(Qe=e[50777],AA=(0|O(Qe,3))/-4|0,s=.0009765625*+e[50780],_=e[50772],l=e[50778],gA=e[50775],U=e[50774],A=0;;){if(W=u[_+(c=t+l|0)|0],U?W=O(U,W<<24>>24):(t=t+1|0,e[50776]=t,W|=d[_+(c=t+l|0)|0]<<8),W=se(x=s*+(0|W))<2147483648?~~x:-2147483648,w[(Oe=m+(A<<1)|0)>>1]=y[Oe>>1]+((0|O(W,gA))/40|0),(0|c)>=(0|Qe)&&(l=l+AA|0,e[50778]=l),t=t+1|0,e[50776]=t,(0|t)>=(0|Me))break h;if(!(f>>>0>(A=A+1|0)>>>0))break}A=m+(f<<1)|0,e[51290]=A,Y=P+752|0,A=ee[54046]<=A>>>0}if(Y=r- -64|0,A)break n;break o}e[50781]=A||100;break o}Vs(A,e[r+8>>2]);break o}A=e[r+8>>2],e[50759]=LA(203816,A,1344),e[50801]=e[A+108>>2]?105792:106064,A=(0|O(e[A+120>>2],26))/100|0,e[33038]=A,(0|(o=e[50754]))<=11e3&&(d[203300]=1,e[33038]=A<<1),e[54728]=e[50982],A=e[50979],t=e[50978],Xe(205184,0,11e3),e[51293]=0,A=(t=(c=(0|(l=e[50789]))>0)?130:(0|t)>=5499?5499:t)?c?l:(0|A)>=100?100:A:0,e[50755]=A,t=(0|O(t,o))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|O(500-A|0,(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16|0))/500,A=256,(0|(t=(0|(t=e[50785]))>=101?101:t))>=51&&(A=256+(((O(t,25)-1250&65535)>>>0)/50|0)|0),w[101990]=(0|O(w[102026],A))/256,w[101991]=(0|O(w[102027],A))/256,w[101992]=(0|O(w[102028],A))/256,w[101993]=(0|O(w[102029],A))/256,w[101994]=(0|O(w[102030],A))/256,w[101995]=(0|O(w[102031],A))/256,A=e[50790],w[101999]=(0|O(w[102035],O(A,-6)+256|0))/256,w[102e3]=(0|O(w[102036],O(A,-3)+256|0))/256,Us(8,0,e[50986],0,e[51290]),ue(e[r+8>>2]);break o}if(!e[50759])break o;t=e[r+12>>2],r=e[r+8>>2],e[55911]=0,e[55915]=A?2097152/(0|A)|0:0,e[55910]=r,A=(0|O(t,e[33037]))/16|0,e[50779]=A,e[50780]=(0|O(O(A,e[50985]),15))/100;break o}Us(t>>8,A,e[r+8>>2],e[r+12>>2],c)}o=0,A=e[50757]+1|0,e[50757]=(0|A)<=169?A:0}if(d[218920]=o,!((c=e[51290])>>>0<ee[54046]))break}l=e[34391],r=(e[51290]-l|0)/2|0,e[34439]=r+e[34439],t=e[34436],A=e[34388]+O(t,36)|0,e[A+4>>2]=0,e[A>>2]=0,e[A+24>>2]=e[34438];a:if(2&(A=e[32538])){if(c=e[34388],(-2&A)==2&&(!(r=t?c:0)|e[r>>2]!=8||(0|(r=e[r+28>>2]))!=e[34389]&&(e[34389]=r)),o=1,(0|t)<2)break a;for(;;){r=t?c+O(o,36)|0:0;n:{o:switch(0|A){case 2:case 3:if(!r|e[r>>2]!=8||(0|(r=e[r+28>>2]))==e[34389])break n;e[34389]=r;break n;case 0:break o;default:break n}(A=e[34440])?(At[0|A](l,0,r),t=e[34436],A=e[32538]):A=0}if(!((0|(o=o+1|0))<(0|t)))break}}else if((A=e[34440])&&0|At[0|A](l,r,e[34388]))break r;if(!ot(1)&&!(170-((0|(A=e[50757]-e[50758]|0))<=0?A+170|0:A)|0||(A=e[34388],e[A>>2]=0,e[A+4>>2]=e[34437],e[A+24>>2]=e[34438],MA(1))))break}if(t=0,2&u[130152]||!(A=e[34440])||!(0|At[0|A](0,0,e[34388])))break A}MA(2),t=268439295}if((0|t)<=268437502){if(!t|(0|t)==268436479|(0|t)!=268437247)break e;return}}}function ot(A){var t,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0;Y=t=Y-720|0,r=e[47198],A||(e[36443]=0,e[36442]=1,e[36444]=0,e[36440]=0,e[36441]=0,A=e[50758],e[36454]=A,e[36427]=-1,e[36424]=-1,e[36446]=0,e[36447]=0,e[36439]=-1,e[36426]=0,e[36455]=A,e[36448]=0,e[36449]=0,e[36450]=0,e[36451]=0,e[36452]=0,e[36453]=0,Ts(),e[36427]=-1,A=216192+(e[50758]<<4)|0,e[A>>2]=5,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,e[36426]=0,e[36438]&&(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0));e:{A:if(!((0|(A=e[36442]))>997|e[36423]<=(0|A)))for(W=r>>>1&1,U=t+48|4,Z=t+348|0,re=t+652|0,le=e[32322],x=e[32320],Ce=t+60|0,Me=t+648|0,Qe=t+56|0,Oe=t+620|0,P=t- -64|0;;){if(s=145840+(A<<5)|0,!(A=e[50756])|!e[A>>2]||(e[t+12>>2]=0,_r(A=t+16|0,e[s+8>>2],s,0,t+12|0),r=pi(A),o=u[s+17|0],A=216192+(e[50758]<<4)|0,e[A>>2]=16,e[A+8>>2]=o,e[A+4>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),A=1,(0|(o=(0|(r=e[50757]-e[50758]|0))<=0?r+170|0:r))<=(0|((r=u[s+17|0])?(0|r)==2?25:15:10)))break e;if(I=e[36442],2&u[0|s])for(b=2047&y[s+4>>1];;){if(o=e[36443],f=127&(r=e[198304+(o<<2)>>2])){A=r>>>8|0,e[36443]=o+1;r:{a:{n:switch((31&r)-2|0){case 0:Vs(96&r|8,A),ks(2);break r;case 5:if((0|A)>=e[34064]||!e[(f=(o=A<<4)+136272|0)+4>>2])break r;er(10,0),A=216192+(e[50758]<<4)|0,e[A>>2]=6,f=e[f+4>>2],e[A+8>>2]=e[8+(o+136272|0)>>2]+44,e[A+12>>2]=5376,e[A+4>>2]=f;break a;case 8:if((0|((0|(o=e[50757]-e[50758]|0))<=0?o+170:o))<6)break r;f=e[47353],o=216192+(e[50758]<<4)|0,e[o>>2]=778,e[o+8>>2]=A,e[o+4>>2]=f+b&16777215;break a;case 9:if((0|((0|(o=e[50757]-e[50758]|0))<=0?o+170:o))<6)break r;f=e[33284],o=216192+(e[50758]<<4)|0,e[o>>2]=1034,e[o+8>>2]=A,e[o+4>>2]=f+1&16777215;break a;default:break n}er(10,0),o=216192+(e[50758]<<4)|0,e[o>>2]=12,e[o+8>>2]=A,e[o+4>>2]=f}A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}if(!(128&r))continue}break}(A=u[s+20|0])&&(1&d[e[47192]+48|0]&u[s+17|0]==2|1&d[e[s+8>>2]+7|0]||(e[36426]=0),r=e[47353]+(2047&y[s+4>>1])|0,e[36445]=r,4&A&&((0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(o=e[47568],A=216192+(e[50758]<<4)|0,e[A>>2]=522,e[A+8>>2]=o,e[A+4>>2]=16777215&r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)),1&d[s+20|0]&&(r=y[s+4>>1],o=e[36444],e[36444]=o+1,(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(b=e[36445],f=e[47355],A=216192+(e[50758]<<4)|0,e[A>>2]=266,e[A+8>>2]=o+f,e[A+4>>2]=16777215&b|(63488&r)<<13,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0))),(0|(A=e[36441]))>0&&(r=216192+(e[36425]<<4)|0,e[r+4>>2]||(e[r+4>>2]=A),e[36441]=0),A=I+1<<5,r=I-1<<5,!(o=u[s+18|0])|2&u[e[s+8>>2]+7|0]||er(o,1),f=A+145840|0,l=r+145840|0,b=1;r:{a:{if(e[47198]&&(m=e[s+8>>2],u[m+10|0]!=15)){n:if(u[s+17|0]==2)switch(u[l+17|0]-3|0){case 0:case 5:break a;default:break n}b=0,_r(t+704|0,m,s,W,0),(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(r=e[36445],A=216192+(e[50758]<<4)|0,e[A>>2]=1802,e[A+4>>2]=16777215&r,r=e[t+708>>2],e[A+8>>2]=e[t+704>>2],e[A+12>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}n:switch(u[s+17|0]){case 0:er(e[s+12>>2],0),d[s+23|0]=u[e[s+8>>2]+14|0];break r;case 4:r=e[s+8>>2],(0|(A=u[f+17|0]))==2|!u[f+20|0]&(0|A)==3||(w[s>>1]=8192|y[s>>1]),2&u[r+7|0]&&(e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[P>>2]=0,e[P+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,ft(0,1,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[P>>2]=e[t+640>>2],e[36424]<0&&(o=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=o,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[f+22|0],o=u[f+21|0],f=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(m=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=m),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,b|=o<<16,o=(0|o)==255,e[A+12>>2]=o?3604556:b,e[A+8>>2]=o?x:f,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),tA(r,0,t+48|0,s,0)),ft(0,0,s,t+552|0,145784),e[t+552>>2]=4|e[t+552>>2],(0|(A=e[36440]))<=0||(0|(r=e[36424]))<0||(e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Ts(),e[36427]=-1,e[36422]=0,(A=e[t+624>>2])&&(o=A,A=e[t+644>>2],fr(o,2,e[t+596>>2]<<1,e[t+552>>2],0,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 6:ft(0,0,s,t+552|0,145784),8&u[0|s]&&(A=e[s+12>>2],(0|(r=e[36440]))<=0||(0|(o=e[36424]))<0||(e[(o=216192+(o<<4)|0)+4>>2]||(e[o+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Ts(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(o=A,A=e[t+644>>2],fr(r,2,e[t+596>>2]<<1,e[t+552>>2],o,A?(A<<5)/100|0:32))),A=e[s+12>>2],(0|(r=e[36440]))<=0||(0|(o=e[36424]))<0||(e[(o=216192+(o<<4)|0)+4>>2]||(e[o+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Ts(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(o=A,A=e[t+644>>2],fr(r,2,e[t+596>>2]<<1,e[t+552>>2],o,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 5:o=e[s+8>>2],e[U+40>>2]=0,e[(A=U)+32>>2]=0,e[A+36>>2]=0,e[A+24>>2]=0,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A+8>>2]=0,e[A+12>>2]=0,e[A>>2]=0,e[A+4>>2]=0,e[t+48>>2]=4;o:{c:{u:{l:switch(u[f+17|0]-2|0){case 0:r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=u[s+22|0],m=u[s+21|0],b=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=(c=!(255&~m))?x:b,b=1;break c;case 1:break l;default:break u}if(!u[f+20|0]){r=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=u[f+22|0],m=u[f+21|0],b=e[129280+(u[f+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=(c=!(255&~m))?x:b,b=1;break c}}if(b=0,e[36424]>=0)break o;r=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=u[s+22|0],m=u[s+21|0],b=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=(c=!(255&~m))?x:b,b=0}_=e[50758],e[36424]=_,e[36440]=0,e[(_=216192+(_<<4)|0)>>2]=9,e[_+4>>2]=0,e[_+12>>2]=c?3604556:255&r|(255&m)<<16,e[_+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}o:if(!(2&u[o+7|0])&u[l+17|0]!=2)8&u[0|s]&&er(50,0);else{if(ft(0,1,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],tA(o,0,t+48|0,s,0),!(8&u[0|s]))break o;er(25,1),tA(o,0,t+48|0,s,0)}o:if(b){if(e[36455]!=e[36454])break o;e[36455]=e[50758]}else w[s>>1]=8192|y[s>>1];if(ft(0,0,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+76>>2]=e[t+636>>2],e[t+80>>2]=e[t+656>>2],tA(o,0,t+48|0,s,0),u[s+20|0]|u[84+(145840+(I<<5)|0)|0]||((0|(A=u[f+17|0]))==7&&(er(20,0),A=u[f+17|0]),(255&A)!=6))break r;er(12,0);break r;case 7:o:{c:{u:{l:{i:switch((A=u[f+17|0])-2|0){case 1:break l;case 0:break i;default:break u}r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[s+22|0],A=u[s+21|0],o=e[129280+(u[s+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(m=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=m),r=(m=!(255&~A))?x:o;break c}r=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[f+22|0],A=u[f+21|0],o=e[129280+(u[f+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(m=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=m),r=(m=!(255&~A))?x:o;break c}if(e[36424]>=0)break o;r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[s+22|0],A=u[s+21|0],o=e[129280+(u[s+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(m=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=m),r=(m=!(255&~A))?x:o}o=e[50758],e[36424]=o,e[36440]=0,e[(o=216192+(o<<4)|0)>>2]=9,e[o+4>>2]=0,e[o+12>>2]=m?3604556:(255&A)<<16|b,e[o+8>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,A=u[f+17|0]}o:{c:{u:switch((255&A)-2|0){case 1:if(u[f+20|0])break c;break;case 0:break u;default:break c}if(e[36455]!=e[36454])break o;e[36455]=e[50758];break o}w[s>>1]=8192|y[s>>1]}ft(0,0,s,t+552|0,145784),e[t+56>>2]=0,e[t+60>>2]=0,e[P>>2]=0,e[P+4>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[t+88>>2]=0,e[t+56>>2]=e[t+620>>2],e[P>>2]=e[t+640>>2],e[t+80>>2]=e[t+656>>2],e[t+48>>2]=0,e[t+52>>2]=0,e[t+76>>2]=e[t+636>>2],e[t+92>>2]=e[t+596>>2]<<1,8&u[0|s]&&tA(e[s+8>>2],0,t+48|0,s,0),tA(e[s+8>>2],0,t+48|0,s,0);break r;case 8:if(e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[P>>2]=0,e[P+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,1&d[0|s]||(r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,o=u[s+22|0],r=u[s+21|0],b=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(m=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=m),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,o|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:o,e[A+8>>2]=r?x:b,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),u[l+17|0]==8&&(e[36426]=0),ft(0,0,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+92>>2]=e[t+596>>2]<<1,u[f+17|0]==2){e[36455]==e[36454]&&(e[36455]=e[50758]),tA(e[s+8>>2],0,t+48|0,s,0);break r}if(!(!(1&d[0|s])|u[l+17|0]!=2)){tA(e[s+8>>2],0,t+48|0,s,0);break r}e[36426]=0,tA(e[s+8>>2],0,t+48|0,s,0),e[36426]=0;break r;case 3:e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[P>>2]=0,e[P+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,o=e[e[s+8>>2]+4>>2],1&d[0|s]||(r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[s+22|0],r=u[s+21|0],m=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,b|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:b,e[A+8>>2]=r?x:m,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),u[l+17|0]==8&&(e[36426]=0),u[f+17|0]!=2|e[36455]!=e[36454]||(e[36455]=e[50758]),ft(0,0,s,t+552|0,145784),(0|(A=e[t+584>>2]-u[s+18|0]|0))>0&&er(A,1),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+76>>2]=e[t+636>>2],e[t+80>>2]=e[t+656>>2],e[t+92>>2]=e[t+596>>2]<<1,tA(e[s+8>>2],0,t+48|0,s,o<<24>>31&5);break r;case 2:break n;default:break r}m=e[s+8>>2]}I=u[s+3|0],e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[P>>2]=0,e[P+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,ft(0,0,s,t+552|0,145784),A=e[t+628>>2],e[t+56>>2]=A,e[t+92>>2]=e[t+596>>2]<<1;a:{if(!A||(c=0,o=Me,r=Ce,2&u[t+552|0])){if(u[l+17|0]?(c=0,ft(0,0,l,t+400|0,0),A=e[t+476>>2],e[t+56>>2]=A,!A|!(2&u[t+400|0])||(e[t+72>>2]=e[t+496>>2],c=1),r=e[t+512>>2],e[t+84>>2]=e[t+508>>2],e[t+88>>2]=r):c=0,A)break a;e[t+48>>2]=1,e[t+52>>2]=1,o=Oe,r=Qe}e[r>>2]=e[o>>2]}e[t+64>>2]=e[t+640>>2],r=u[s+16|0],A=0,(o=u[s+7|0])?(en(o,t+96|0),r=gi(e[t+220>>2]),(0|(o=e[t+224>>2]))<=0||(A=gi(o))):r=e[129280+(r<<2)>>2],e[36455]==e[36454]&&(e[36455]=e[50758]),o=(o=15&I)>>>0<2?1:o>>>0>6?3:2;a:{n:switch(u[l+17|0]-3|0){case 2:case 4:c=u[s+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)+12>>2]=c,e[l+8>>2]=A,e[l>>2]=8,e[l+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,c=u[s+22|0],l=u[s+21|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?x:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,tA(m,1,t+48|0,s,o);break a;case 0:case 5:c=u[s+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)+12>>2]=c,e[l+8>>2]=A,e[l>>2]=8,e[l+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,tA(m,1,t+48|0,s,o),c=u[s+22|0],l=u[s+21|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?x:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0;break a;default:break n}c?(c=u[s+22|0],(0|(l=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=l),l=e[50758],e[36424]=l,e[36440]=0,e[(l=216192+(l<<4)|0)>>2]=9,e[l+4>>2]=0,e[l+12>>2]=(c|c<<16)-983040,e[l+8>>2]=le,l=e[50758]+1|0,e[50758]=(0|l)<=169?l:0,c=u[s+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)>>2]=8,e[l+4>>2]=0,e[l+12>>2]=c-1,e[l+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,tA(m,1,t+48|0,s,o),l=u[s+21|0],c=u[s+22|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?x:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0):(1&d[0|s]||(c=u[s+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)+12>>2]=c,e[l+8>>2]=A,e[l>>2]=8,e[l+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,c=u[s+22|0],l=u[s+21|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?x:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),tA(m,1,t+48|0,s,o))}!e[47198]|1^b||(_r(t+704|0,e[s+8>>2],s,W,0),(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(r=e[36445],A=216192+(e[50758]<<4)|0,e[A>>2]=1802,e[A+4>>2]=16777215&r,r=e[t+708>>2],e[A+8>>2]=e[t+704>>2],e[A+12>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)),e[t+56>>2]=e[t+620>>2],e[t+84>>2]=0,e[t+88>>2]=0,e[t+64>>2]=e[t+640>>2],r=e[t+632>>2],e[t+68>>2]=r,A=re;a:{if(!r&&(!u[f+17|0]||(e[t+72>>2]=0,ft(0,0,f,t+248|0,0),e[t+52>>2]=1,A=e[t+368>>2],e[t+84>>2]=e[t+364>>2],e[t+88>>2]=A,r=e[t+328>>2],e[t+68>>2]=r,A=Z,!r)))break a;e[t+72>>2]=e[A>>2]}tA(m,2,t+48|0,s,o)}if(A=e[36442]+1|0,e[36442]=A,(0|A)>997)break A;if(!(e[36423]>(0|A)))break}(0|(A=e[36440]))<=0||(0|(r=e[36424]))<0||(e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Ts(),e[36427]=-1,A=0,e[36423]<=0||(r=e[47568],o=e[33284],(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))>=6&&(A=216192+(e[50758]<<4)|0,e[A>>2]=1290,e[A+8>>2]=r,e[A+4>>2]=16777215&o,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),e[36423]=0,A=0)}return Y=t+720|0,A}function BA(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0,rt=0;Y=o=Y-48|0;e:{if(r>>>0<=2){for(gA=e[(r<<=2)+124732>>2],bA=e[r+124720>>2];(0|(r=e[t+4>>2]))==e[t+104>>2]?r=he(t):(e[t+4>>2]=r+1,r=u[0|r]),(0|r)==32|r-9>>>0<5;);_=1;A:{r:switch(r-43|0){case 0:case 2:break r;default:break A}_=(0|r)==45?-1:1,(0|(r=e[t+4>>2]))==e[t+104>>2]?r=he(t):(e[t+4>>2]=r+1,r=u[0|r])}A:{r:{for(;;){if(d[f+84056|0]==(32|r)){if(f>>>0>6||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=he(t):(e[t+4>>2]=r+1,r=u[0|r])),(0|(f=f+1|0))!=8)continue;break r}break}if((0|f)!=3){if((0|f)==8)break r;if(!s|f>>>0<4)break A;if((0|f)==8)break r}if((0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),!(!s|f>>>0<4))for(r=(0|r)<0;r||(e[t+4>>2]=e[t+4>>2]-1),(f=f-1|0)>>>0>3;);}Y=x=Y-16|0,X(ge(ge(0|_)*ge(1/0))),(t=2147483647&(m=B(2)))-8388608>>>0<=2130706431?(r=t,r<<=25,s=(t=t>>>7|0)+1065353216|0):(r=m<<25,s=m>>>7|2147418112,t>>>0>=2139095040||(r=0,s=0,t&&(Mt(x,r=t,0,0,0,(t=we(t))+81|0),b=e[x>>2],I=e[x+4>>2],r=e[x+8>>2],s=65536^e[x+12>>2]|16265-t<<16))),e[o>>2]=b,e[o+4>>2]=I,e[o+8>>2]=r,e[o+12>>2]=-2147483648&m|s,Y=x+16|0,b=e[o+8>>2],I=e[o+12>>2],m=e[o>>2],P=e[o+4>>2];break e}A:{r:{a:if(!f){for(f=0;;){if(d[f+84473|0]!=(32|r))break a;if(f>>>0>1||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=he(t):(e[t+4>>2]=r+1,r=u[0|r])),(0|(f=f+1|0))==3)break}break r}a:switch(0|f){case 0:if((0|r)==48){if((0|(f=e[t+4>>2]))==e[t+104>>2]?f=he(t):(e[t+4>>2]=f+1,f=u[0|f]),(-33&f)==88){Y=c=Y-432|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?f=he(t):(e[t+4>>2]=r+1,f=u[0|r]);n:{o:{for(;;){if((0|f)!=48){if((0|f)!=46)break n;if((0|(r=e[t+4>>2]))!=e[t+104>>2]){e[t+4>>2]=r+1,f=u[0|r];break o}break}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(AA=1,e[t+4>>2]=r+1,f=u[0|r]):(AA=1,f=he(t))}f=he(t)}if(Z=1,(0|f)==48){for(;re=(r=re)-1|0,le=le-!r|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?f=he(t):(e[t+4>>2]=r+1,f=u[0|r]),(0|f)==48;);AA=1}}for(P=1073676288;;){n:{r=32|f;o:{if(!((zA=f-48|0)>>>
28960<10)){if((0|f)!=46&r-97>>>0>=6)break n;if((0|f)==46){if(Z)break n;Z=1,re=b,le=I;break o}}r=(0|f)>57?r-87|0:zA,(0|I)<=0&b>>>0<=7|(0|I)<0?l=r+(l<<4)|0:!I&b>>>0<=28?(ns(c+48|0,r),xt(c+32|0,Oe,Ve,m,P,0,0,0,1073414144),Oe=e[c+32>>2],Ve=e[c+36>>2],m=e[c+40>>2],P=e[c+44>>2],xt(c+16|0,e[c+48>>2],e[c+52>>2],e[c+56>>2],e[c+60>>2],Oe,Ve,m,P),H(c,e[c+16>>2],e[c+20>>2],e[c+24>>2],e[c+28>>2],x,U,Me,Qe),Me=e[c+8>>2],Qe=e[c+12>>2],x=e[c>>2],U=e[c+4>>2]):W|!r||(xt(c+80|0,Oe,Ve,m,P,0,0,0,1073610752),H(c- -64|0,e[c+80>>2],e[c+84>>2],e[c+88>>2],e[c+92>>2],x,U,Me,Qe),Me=e[c+72>>2],Qe=e[c+76>>2],W=1,x=e[c+64>>2],U=e[c+68>>2]),I=(b=b+1|0)?I:I+1|0,AA=1}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(e[t+4>>2]=r+1,f=u[0|r]):f=he(t);continue}break}n:if(AA){if((0|I)<=0&b>>>0<=7|(0|I)<0)for(m=b,P=I;l<<=4,(0|(m=m+1|0))!=8|(P=m?P:P+1|0););o:{c:{u:{if((-33&f)==80){if(m=ha(t,s),P=r=ce,m|(0|r)!=-2147483648)break o;if(s){if((0|(r=e[t+116>>2]))>0|(0|r)>=0)break u;break c}x=0,U=0,Ps(t,0,0),r=0,t=0;break n}if(m=0,P=0,e[t+116>>2]<0)break o}e[t+4>>2]=e[t+4>>2]-1}m=0,P=0}if(l)if(r=m+((t=Z?re:b)<<2)|0,t=(I=(Z?le:I)<<2|t>>>30)+P|0,(b=r-32|0)>>>0>0-gA>>>0&(0|(t=I=(r>>>0<m>>>0?t+1|0:t)-(r>>>0<32)|0))>=0|(0|t)>0)e[56798]=68,ns(c+160|0,_),xt(c+144|0,e[c+160>>2],e[c+164>>2],e[c+168>>2],e[c+172>>2],-1,-1,-1,2147418111),xt(c+128|0,e[c+144>>2],e[c+148>>2],e[c+152>>2],e[c+156>>2],-1,-1,-1,2147418111),x=e[c+128>>2],U=e[c+132>>2],r=e[c+140>>2],t=e[c+136>>2];else if((0|I)>=(0|(r=(t=gA-226|0)>>31))&t>>>0<=b>>>0|(0|r)<(0|I)){if((0|l)>=0)for(;H(c+416|0,x,U,Me,Qe,0,0,0,-1073807360),H(c+400|0,x,U,Me,Qe,(t=r=(0|(t=ni(x,U,Me,Qe,1073610752)))>=0)?e[c+416>>2]:x,t?e[c+420>>2]:U,t?e[c+424>>2]:Me,t?e[c+428>>2]:Qe),b=(t=b)-1|0,I=I-!t|0,Me=e[c+408>>2],Qe=e[c+412>>2],x=e[c+400>>2],U=e[c+404>>2],(0|(l=r|l<<1))>=0;);t=I-((gA>>31)+(b>>>0<gA>>>0)|0)|0,(0|(r=(r=32+(b-gA|0)|0)>>>0<bA>>>0&(0|(t=r>>>0<32?t+1|0:t))<=0|(0|t)<0?(0|r)>0?r:0:bA))>=113?(ns(c+384|0,_),re=e[c+392>>2],le=e[c+396>>2],Oe=e[c+384>>2],Ve=e[c+388>>2],m=0,t=0):(sr(c+352|0,vs(1,144-r|0)),ns(c+336|0,_),Oe=e[c+336>>2],Ve=e[c+340>>2],re=e[c+344>>2],le=e[c+348>>2],zi(c+368|0,e[c+352>>2],e[c+356>>2],e[c+360>>2],e[c+364>>2],Oe,Ve,re,le),Ce=e[c+376>>2],jA=e[c+380>>2],m=e[c+372>>2],t=e[c+368>>2]),Ks(c+320|0,(s=!(1&l)&!!(0|pr(x,U,Me,Qe,0,0,0,0))&(0|r)<32)+l|0),xt(c+304|0,Oe,Ve,re,le,e[c+320>>2],e[c+324>>2],e[c+328>>2],e[c+332>>2]),r=t,H(c+272|0,e[c+304>>2],e[c+308>>2],e[c+312>>2],e[c+316>>2],t,m,Ce,jA),xt(c+288|0,Oe,Ve,re,le,(t=s)?0:x,t?0:U,t?0:Me,t?0:Qe),H(c+256|0,e[c+288>>2],e[c+292>>2],e[c+296>>2],e[c+300>>2],e[c+272>>2],e[c+276>>2],e[c+280>>2],e[c+284>>2]),pn(c+240|0,e[c+256>>2],e[c+260>>2],e[c+264>>2],e[c+268>>2],r,m,Ce,jA),pr(t=e[c+240>>2],s=e[c+244>>2],r=e[c+248>>2],m=e[c+252>>2],0,0,0,0)||(e[56798]=68),$e(c+224|0,t,s,r,m,b),x=e[c+224>>2],U=e[c+228>>2],r=e[c+236>>2],t=e[c+232>>2]}else e[56798]=68,ns(c+208|0,_),xt(c+192|0,e[c+208>>2],e[c+212>>2],e[c+216>>2],e[c+220>>2],0,0,0,65536),xt(c+176|0,e[c+192>>2],e[c+196>>2],e[c+200>>2],e[c+204>>2],0,0,0,65536),x=e[c+176>>2],U=e[c+180>>2],r=e[c+188>>2],t=e[c+184>>2];else sr(c+112|0,0*+(0|_)),x=e[c+112>>2],U=e[c+116>>2],r=e[c+124>>2],t=e[c+120>>2]}else{o:{c:{if((0|(r=e[t+116>>2]))>0|(0|r)>=0){if(r=e[t+4>>2],e[t+4>>2]=r-1,!s)break c;if(e[t+4>>2]=r-2,!Z)break o;e[t+4>>2]=r-3;break o}if(s)break o}Ps(t,0,0)}sr(c+96|0,0*+(0|_)),x=e[c+96>>2],U=e[c+100>>2],r=e[c+108>>2],t=e[c+104>>2]}e[o+16>>2]=x,e[o+20>>2]=U,e[o+24>>2]=t,e[o+28>>2]=r,Y=c+432|0,b=e[o+24>>2],I=e[o+28>>2],m=e[o+16>>2],P=e[o+20>>2];break e}e[t+116>>2]<0||(e[t+4>>2]=e[t+4>>2]-1)}f=t,Ce=_,c=s,t=0,_=0,Y=l=Y-8976|0,jA=(zA=0-gA|0)-bA|0;n:{o:{for(;;){if((0|r)!=48){if((0|r)!=46)break n;if((0|(r=e[f+4>>2]))!=e[f+104>>2]){e[f+4>>2]=r+1,r=u[0|r];break o}break}(0|(t=e[f+4>>2]))!=e[f+104>>2]?(e[f+4>>2]=t+1,r=u[0|t]):r=he(f),t=1}r=he(f)}if(W=1,(0|r)==48){for(;b=(t=b)-1|0,I=I-!t|0,(0|(t=e[f+4>>2]))==e[f+104>>2]?r=he(f):(e[f+4>>2]=t+1,r=u[0|t]),(0|r)==48;);t=1}}e[l+784>>2]=0;n:{o:{c:{u:{l:{if((s=(0|r)==46)|(x=r-48|0)>>>0<=9)for(;;){i:{if(1&s){if(!W){b=m,I=P,W=1;break i}s=!t;break l}P=(m=m+1|0)?P:P+1|0,(0|_)<=2044?(AA=(0|r)==48?AA:m,t=(l+784|0)+(_<<2)|0,Z&&(x=(O(e[t>>2],10)+r|0)-48|0),e[t>>2]=x,t=1,Z=(r=(0|(s=Z+1|0))==9)?0:s,_=r+_|0):(0|r)!=48&&(e[l+8960>>2]=1|e[l+8960>>2],AA=18396)}if((0|(r=e[f+4>>2]))==e[f+104>>2]?r=he(f):(e[f+4>>2]=r+1,r=u[0|r]),!((s=(0|r)==46)|(x=r-48|0)>>>0<10))break}if(b=W?b:m,I=W?I:P,!(!t|(-33&r)!=69)){if(x=ha(f,c),U=t=ce,!(x|(0|t)!=-2147483648)){if(!c)break c;x=0,U=0,e[f+116>>2]<0||(e[f+4>>2]=e[f+4>>2]-1)}I=I+U|0,I=(b=b+x|0)>>>0<x>>>0?I+1|0:I;break o}if(s=!t,(0|r)<0)break u}e[f+116>>2]<0||(e[f+4>>2]=e[f+4>>2]-1)}if(!s)break o;e[56798]=28}
vendor: 4,953 bytes, line 2896
2896m=0,P=0,Ps(f,0,0),r=0,t=0;break n}if(t=e[l+784>>2])if(m>>>0>9&(0|P)>=0|(0|P)>0|(0|m)!=(0|b)|(0|I)!=(0|P)|(t>>>bA|0?(0|bA)<=30:0))if(b>>>0>zA>>>1>>>0&(0|I)>=0|(0|I)>0)e[56798]=68,ns(l+96|0,Ce),xt(l+80|0,e[l+96>>2],e[l+100>>2],e[l+104>>2],e[l+108>>2],-1,-1,-1,2147418111),xt(l- -64|0,e[l+80>>2],e[l+84>>2],e[l+88>>2],e[l+92>>2],-1,-1,-1,2147418111),m=e[l+64>>2],P=e[l+68>>2],r=e[l+76>>2],t=e[l+72>>2];else if((r=b>>>0<(t=gA-226|0)>>>0)&(0|I)<=(0|(t>>=31))|(0|t)>(0|I))e[56798]=68,ns(l+144|0,Ce),xt(l+128|0,e[l+144>>2],e[l+148>>2],e[l+152>>2],e[l+156>>2],0,0,0,65536),xt(l+112|0,e[l+128>>2],e[l+132>>2],e[l+136>>2],e[l+140>>2],0,0,0,65536),m=e[l+112>>2],P=e[l+116>>2],r=e[l+124>>2],t=e[l+120>>2];else{if(Z){if((0|Z)<=8){for(f=e[(t=(l+784|0)+(_<<2)|0)>>2];f=O(f,10),(0|(Z=Z+1|0))!=9;);e[t>>2]=f}_=_+1|0}if(W=b,!((0|AA)>(0|b)|(0|AA)>=9|(0|b)>17)){if((0|W)==9){ns(l+192|0,Ce),Ks(l+176|0,e[l+784>>2]),xt(l+160|0,e[l+192>>2],e[l+196>>2],e[l+200>>2],e[l+204>>2],e[l+176>>2],e[l+180>>2],e[l+184>>2],e[l+188>>2]),m=e[l+160>>2],P=e[l+164>>2],r=e[l+172>>2],t=e[l+168>>2];break n}if((0|W)<=8){ns(l+272|0,Ce),Ks(l+256|0,e[l+784>>2]),xt(l+240|0,e[l+272>>2],e[l+276>>2],e[l+280>>2],e[l+284>>2],e[l+256>>2],e[l+260>>2],e[l+264>>2],e[l+268>>2]),ns(l+224|0,e[124720+(0-W<<2)>>2]),Sr(l+208|0,e[l+240>>2],e[l+244>>2],e[l+248>>2],e[l+252>>2],e[l+224>>2],e[l+228>>2],e[l+232>>2],e[l+236>>2]),m=e[l+208>>2],P=e[l+212>>2],r=e[l+220>>2],t=e[l+216>>2];break n}if(t=27+(O(W,-3)+bA|0)|0,!((r=e[l+784>>2])>>>t|0&&(0|t)<=30)){ns(l+352|0,Ce),Ks(l+336|0,r),xt(l+320|0,e[l+352>>2],e[l+356>>2],e[l+360>>2],e[l+364>>2],e[l+336>>2],e[l+340>>2],e[l+344>>2],e[l+348>>2]),ns(l+304|0,e[124648+(W<<2)>>2]),xt(l+288|0,e[l+320>>2],e[l+324>>2],e[l+328>>2],e[l+332>>2],e[l+304>>2],e[l+308>>2],e[l+312>>2],e[l+316>>2]),m=e[l+288>>2],P=e[l+292>>2],r=e[l+300>>2],t=e[l+296>>2];break n}}for(;!e[(l+784|0)+((_=(r=_)-1|0)<<2)>>2];);if(Z=0,t=(0|W)%9|0){if(s=0,t=(0|W)<0?t+9|0:t,r){for(I=1e9/(0|(b=e[124720+(0-t<<2)>>2]))|0,x=0,f=0;m=(m=x)+(_=((P=e[(x=(l+784|0)+(f<<2)|0)>>2])>>>0)/(b>>>0)|0)|0,e[x>>2]=m,s=(m=!m&(0|s)==(0|f))?s+1&2047:s,W=m?W-9|0:W,x=O(I,P-O(b,_)|0),(0|(f=f+1|0))!=(0|r););x&&(e[(l+784|0)+(r<<2)>>2]=x,r=r+1|0)}else r=0;W=9+(W-t|0)|0}else s=0;for(;;){f=(l+784|0)+(s<<2)|0;o:{for(;;){if(((0|W)!=36|ee[f>>2]>=10384593)&(0|W)>=36)break o;for(_=r+2047|0,x=0,t=r;r=t,b=x,x=(t=e[(_=(l+784|0)+((m=2047&_)<<2)|0)>>2])<<29,t=P=t>>>3|0,!(I=(b=b+x|0)>>>0<x>>>0?t+1|0:t)&b>>>0<1000000001?x=0:b=(t=b)-at(x=Ki(t,I,1e9),ce,1e9,0)|0,e[_>>2]=b,t=(0|m)!=(r-1&2047)||(0|s)==(0|m)||b?r:m,_=m-1|0,(0|s)!=(0|m););if(Z=Z-29|0,x)break}(0|(s=s-1&2047))==(0|t)&&(f=r=(b=l+784|0)+((t+2046&2047)<<2)|0,I=e[r>>2],r=t-1&2047,e[f>>2]=I|e[b+(r<<2)>>2]),W=W+9|0,e[(l+784|0)+(s<<2)>>2]=x;continue}break}o:{c:for(;;){for(b=r+1&2047,x=(l+784|0)+((r-1&2047)<<2)|0;;){m=(0|W)>45?9:1;u:{for(;;){t=s,f=0;l:{for(;;){if((0|(s=t+f&2047))!=(0|r)&&!((s=e[(l+784|0)+(s<<2)>>2])>>>0<(I=e[124672+(f<<2)>>2])>>>0)){if(s>>>0>I>>>0)break l;if((0|(f=f+1|0))!=4)continue}break}if((0|W)==36){for(b=0,I=0,f=0,m=0,P=0;(0|(s=t+f&2047))==(0|r)&&(e[780+(l+((r=r+1&2047)<<2)|0)>>2]=0),Ks(l+768|0,e[(l+784|0)+(s<<2)>>2]),xt(l+752|0,b,I,m,P,0,0,1342177280,1075633366),H(l+736|0,e[l+752>>2],e[l+756>>2],e[l+760>>2],e[l+764>>2],e[l+768>>2],e[l+772>>2],e[l+776>>2],e[l+780>>2]),m=e[l+744>>2],P=e[l+748>>2],b=e[l+736>>2],I=e[l+740>>2],(0|(f=f+1|0))!=4;);if(ns(l+720|0,Ce),xt(l+704|0,b,I,m,P,e[l+720>>2],e[l+724>>2],e[l+728>>2],e[l+732>>2]),m=e[l+712>>2],P=e[l+716>>2],b=0,I=0,x=e[l+704>>2],U=e[l+708>>2],(0|(s=(_=(0|(f=(c=Z+113|0)-gA|0))<(0|bA))?(0|f)>0?f:0:bA))<=112)break u;break o}}if(Z=m+Z|0,s=r,(0|t)!=(0|r))break}for(P=1e9>>>m|0,_=~(-1<<m),f=0,s=t;I=(I=f)+((c=e[(f=(l+784|0)+(t<<2)|0)>>2])>>>m|0)|0,e[f>>2]=I,s=(I=!I&(0|t)==(0|s))?s+1&2047:s,W=I?W-9|0:W,f=O(P,c&_),(0|r)!=(0|(t=t+1&2047)););if(!f)continue;if((0|s)!=(0|b)){e[(l+784|0)+(r<<2)>>2]=f,r=b;continue c}e[x>>2]=1|e[x>>2];continue}break}break}sr(l+656|0,vs(1,225-s|0)),zi(l+688|0,e[l+656>>2],e[l+660>>2],e[l+664>>2],e[l+668>>2],x,U,m,P),Oe=e[l+696>>2],Ve=e[l+700>>2],Me=e[l+688>>2],Qe=e[l+692>>2],sr(l+640|0,vs(1,113-s|0)),SA(l+672|0,x,U,m,P,e[l+640>>2],e[l+644>>2],e[l+648>>2],e[l+652>>2]),pn(l+624|0,x,U,m,P,b=e[l+672>>2],I=e[l+676>>2],re=e[l+680>>2],le=e[l+684>>2]),H(l+608|0,Me,Qe,Oe,Ve,e[l+624>>2],e[l+628>>2],e[l+632>>2],e[l+636>>2]),m=e[l+616>>2],P=e[l+620>>2],x=e[l+608>>2],U=e[l+612>>2]}if((0|(W=t+4&2047))!=(0|r)){o:if((W=e[(l+784|0)+(W<<2)>>2])>>>0<=499999999){if(!W&(t+5&2047)==(0|r))break o;sr(l+496|0,.25*+(0|Ce)),H(l+480|0,b,I,re,le,e[l+496>>2],e[l+500>>2],e[l+504>>2],e[l+508>>2]),re=e[l+488>>2],le=e[l+492>>2],b=e[l+480>>2],I=e[l+484>>2]}else(0|W)==5e8?(rt=+(0|Ce),(t+5&2047)!=(0|r)?(sr(l+560|0,.75*rt),H(l+544|0,b,I,re,le,e[l+560>>2],e[l+564>>2],e[l+568>>2],e[l+572>>2]),re=e[l+552>>2],le=e[l+556>>2],b=e[l+544>>2],I=e[l+548>>2]):(sr(l+528|0,.5*rt),H(l+512|0,b,I,re,le,e[l+528>>2],e[l+532>>2],e[l+536>>2],e[l+540>>2]),re=e[l+520>>2],le=e[l+524>>2],b=e[l+512>>2],I=e[l+516>>
vendor: 14,758 bytes, line 2896
28962])):(sr(l+592|0,.75*+(0|Ce)),H(l+576|0,b,I,re,le,e[l+592>>2],e[l+596>>2],e[l+600>>2],e[l+604>>2]),re=e[l+584>>2],le=e[l+588>>2],b=e[l+576>>2],I=e[l+580>>2]);(0|s)>111||(SA(l+464|0,b,I,re,le,0,0,0,1073676288),pr(e[l+464>>2],e[l+468>>2],e[l+472>>2],e[l+476>>2],0,0,0,0)||(H(l+448|0,b,I,re,le,0,0,0,1073676288),re=e[l+456>>2],le=e[l+460>>2],b=e[l+448>>2],I=e[l+452>>2]))}H(l+432|0,x,U,m,P,b,I,re,le),pn(l+416|0,e[l+432>>2],e[l+436>>2],e[l+440>>2],e[l+444>>2],Me,Qe,Oe,Ve),m=e[l+424>>2],P=e[l+428>>2],x=e[l+416>>2],U=e[l+420>>2],(jA-2|0)>=(2147483647&c)||(e[l+408>>2]=m,e[l+412>>2]=2147483647&P,e[l+400>>2]=x,e[l+404>>2]=U,xt(l+384|0,x,U,m,P,0,0,0,1073610752),m=(t=(0|(t=ni(e[l+400>>2],e[l+404>>2],e[l+408>>2],e[l+412>>2],1081081856)))>=0)?e[l+392>>2]:m,P=t?e[l+396>>2]:P,x=t?e[l+384>>2]:x,U=t?e[l+388>>2]:U,Z=t+Z|0,!(!!(0|pr(b,I,re,le,0,0,0,0))&(t?_&(0|s)!=(0|f):_))&(Z+110|0)<=(0|jA)||(e[56798]=68)),$e(l+368|0,x,U,m,P,Z),m=e[l+368>>2],P=e[l+372>>2],r=e[l+380>>2],t=e[l+376>>2]}else ns(l+48|0,Ce),Ks(l+32|0,t),xt(l+16|0,e[l+48>>2],e[l+52>>2],e[l+56>>2],e[l+60>>2],e[l+32>>2],e[l+36>>2],e[l+40>>2],e[l+44>>2]),m=e[l+16>>2],P=e[l+20>>2],r=e[l+28>>2],t=e[l+24>>2];else sr(l,0*+(0|Ce)),m=e[l>>2],P=e[l+4>>2],r=e[l+12>>2],t=e[l+8>>2]}e[o+40>>2]=t,e[o+44>>2]=r,e[o+32>>2]=m,e[o+36>>2]=P,Y=l+8976|0,b=e[o+40>>2],I=e[o+44>>2],m=e[o+32>>2],P=e[o+36>>2];break e;case 3:break r;default:break a}(0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1);break A}if((0|(r=e[t+4>>2]))==e[t+104>>2]?r=he(t):(e[t+4>>2]=r+1,r=u[0|r]),(0|r)!=40){if(I=2147450880,e[t+116>>2]<0)break e;e[t+4>>2]=e[t+4>>2]-1;break e}for(f=1;(0|(r=e[t+4>>2]))==e[t+104>>2]?r=he(t):(e[t+4>>2]=r+1,r=u[0|r]),r-48>>>0<10|r-65>>>0<26|(0|r)==95||!(r-97>>>0>=26);)f=f+1|0;if(I=2147450880,(0|r)==41)break e;(0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1);r:{if(s){if(f)break r;break e}break A}for(;f=f-1|0,(0|r)>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),f;);break e}e[56798]=28,Ps(t,0,0)}I=0}e[A>>2]=m,e[A+4>>2]=P,e[A+8>>2]=b,e[A+12>>2]=I,Y=o+48|0}function tA(A,t,r,s,o){var l,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0;if(Y=l=Y-112|0,e[r+8>>2]){gA=e[50754]/70|0,U=(x=e[s+12>>2])||256;e:if((0|t)!=2){if((0|t)==1){A:if(u[A+11|0]!=3)switch(u[s-15|0]-3|0){case 0:case 5:break A;default:break e}U=(0|(x=e[e[47192]+44>>2]))<(0|U)?U:x}}else{if((0|(x=e[e[47192]+80>>2]))<=0|!(8&u[0|s]|x>>>0<=u[A+14|0]|32&u[A+6|0]))break e;gA<<=1}if(e[36436]=0,le=A,bA=t,b=s,Y=W=Y-16|0,A=e[34460]+e[r+8>>2]|0,t=(t=u[A+2|0])>>>0>=24?24:t,e[W+12>>2]=t,f=e[r+12>>2]+e[r+24>>2]|0,e[36422]=f,t){for(x=A+4|0,c=1&w[A+4>>1];A=145488+(I<<3)|0,s=x+(c?I<<6:O(I,44))|0,e[A+4>>2]=s,_=y[s>>1],w[A+2>>1]=_,w[A>>1]=u[s+16|0],m=2&_?I:m,(0|(I=I+1|0))!=(0|t););x=145488,(0|m)<=0||((0|bA)!=1?(t=t-m|0,e[W+12>>2]=t,x=145488+(m<<3)|0):(t=m+1|0,e[W+12>>2]=t,x=145488))}else t=0,x=145488;if(!(!e[r+4>>2]|e[r+20>>2]|u[le+11|0]!=2)){if(c=e[r+36>>2],s=e[r+40>>2],A=0,(0|(t=e[W+12>>2]))>=2){m=c>>>12|0,_=s>>>26&7,Ce=s>>>18&248,Z=O(re=63&s,50),Qe=63&(Oe=c>>>6|0),I=c<<1&126,Ve=O(s>>>16&31,50)-750|0,AA=O(s>>>11&31,50)-750|0,Me=O(s>>>6&31,50)-750|0;e:{A:if((0|bA)!=1){if(!(m|re))break e;if(8&m?(t=e[4+(x+((f=t-1|0)<<3)|0)>>2],w[t>>1]<0?A=t:(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,f=y[t+20>>1]|y[t+22>>1]<<16,A=177888+(A<<6)|0,c=y[t+16>>1]|y[t+18>>1]<<16,w[A+16>>1]=c,w[A+18>>1]=c>>>16,w[A+20>>1]=f,w[A+22>>1]=f>>>16,f=y[t+4>>1]|y[t+6>>1]<<16,c=y[t>>1]|y[t+2>>1]<<16,w[A>>1]=c,w[A+2>>1]=c>>>16,w[A+4>>1]=f,w[A+6>>1]=f>>>16,f=y[t+12>>1]|y[t+14>>1]<<16,c=y[t+8>>1]|y[t+10>>1]<<16,w[A+8>>1]=c,w[A+10>>1]=c>>>16,w[A+12>>1]=f,w[A+14>>1]=f>>>16,f=y[t+28>>1]|y[t+30>>1]<<16,c=y[t+24>>1]|y[t+26>>1]<<16,w[A+24>>1]=c,w[A+26>>1]=c>>>16,w[A+28>>1]=f,w[A+30>>1]=f>>>16,f=y[t+36>>1]|y[t+38>>1]<<16,c=y[t+32>>1]|y[t+34>>1]<<16,w[A+32>>1]=c,w[A+34>>1]=c>>>16,w[A+36>>1]=f,w[A+38>>1]=f>>>16,f=y[t+44>>1]|y[t+46>>1]<<16,c=y[t+40>>1]|y[t+42>>1]<<16,w[A+40>>1]=c,w[A+42>>1]=c>>>16,w[A+44>>1]=f,w[A+46>>1]=f>>>16,f=y[t+52>>1]|y[t+54>>1]<<16,c=y[t+48>>1]|y[t+50>>1]<<16,w[A+48>>1]=c,w[A+50>>1]=c>>>16,w[A+52>>1]=f,w[A+54>>1]=f>>>16,f=y[t+60>>1]|y[t+62>>1]<<16,t=y[t+56>>1]|y[t+58>>1]<<16,w[A+56>>1]=t,w[A+58>>1]=t>>>16,w[A+60>>1]=f,w[A+62>>1]=f>>>16,d[A+16|0]=0,w[A>>1]=32768|y[A>>1],f=e[W+12>>2]-1|0),e[4+(x+(f<<3)|0)>>2]=A,t=1792,(0|(f=w[A+4>>1]))<300||(t=1536,f>>>0<400||(t=f>>>0<500?1280:1024)),e[36436]=t,c=35):(e[W+12>>2]=t+1,w[(A=(f=x+(t<<3)|0)-8|0)>>1]=I,t=e[A+4>>2],A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=(Oe=A<<6)+177888|0)&&(c=y[t+4>>1]|y[t+6>>1]<<16,P=y[t>>1]|y[t+2>>1]<<16,w[A>>1]=P,w[A+2>>1]=P>>>16,w[A+4>>1]=c,w[A+6>>1]=c>>>16,c=y[t+60>>1]|y[t+62>>1]<<16,P=y[t+56>>1]|y[t+58>>1]<<16,w[A+56>>1]=P,w[A+58>>1]=P>>>16,w[A+60>>1]=c,w[A+62>>1]=c>>>16,c=y[t+52>>1]|y[t+54>>1]<<16,P=y[t+48>>1]|y[t+50>>1]<<16,w[A+48>>1]=P,w[A+50>>1]=P>>>16,w[A+52>>1]=c,w[A+54>>1]=c>>>16,c=y[t+44>>1]|y[t+46>>1]<<16,P=y[t+40>>1]|y[t+42>>1]<<16,w[A+40>>1]=P,w[A+42>>1]=P>>>16,w[A+44>>1]=c,w[A+46>>1]=c>>>16,c=y[t+36>>1]|y[t+38>>1]<<16,P=y[t+32>>1]|y[t+34>>1]<<16,w[A+32>>1]=P,w[A+34>>1]=P>>>16,w[A+36>>1]=c,w[A+38>>1]=c>>>16,c=y[t+28>>1]|y[t+30>>1]<<16,P=y[t+24>>1]|y[t+26>>1]<<16,w[A+24>>1]=P,w[A+26>>1]=P>>>16,w[A+28>>1]=c,w[A+30>>1]=c>>>16,c=y[t+20>>1]|y[t+22>>1]<<16,P=y[t+16>>1]|y[t+18>>1]<<16,w[A+16>>1]=P,w[A+18>>1]=P>>>16,w[A+20>>1]=c,w[A+22>>1]=c>>>16,c=y[t+12>>1]|y[t+14>>1]<<16,t=y[t+8>>1]|y[t+10>>1]<<16,w[A+8>>1]=t,w[A+10>>1]=t>>>16,w[A+12>>1]=c,w[A+14>>1]=c>>>16,d[Oe+177904|0]=0,w[A>>1]=32768|y[A>>1]),w[f>>1]=0,e[f+4>>2]=A,I>>>0>=37&&(e[36422]=(I+e[36422]|0)-36),c=Qe<<1,re&&J(A,Z,Me,AA,_,Ve,Ce,m)),e[e[32972]+132>>2]||(t=u[A+17|0])&&(t=w[102896+(((0|(t=(c<<6>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512),s-536870912>>>0<=1073741823){if(_=e[44469],(0|(f=e[W+12>>2]))>0)for(A=O(s>>>29|0,10)+102854|0,Ce=w[A+4>>1],re=w[A+2>>1],Z=w[A>>1],Ve=w[A+6>>1],AA=w[A+8>>1],c=0;t=e[(Me=x+(c<<3)|0)+4>>2],w[t>>1]<0?A=t:(A=(Qe=(_=(0|(A=_+1|0))<=169?A:0)<<6)+177888|0)?(s=y[t+4>>1]|y[t+6>>1]<<16,f=y[t>>1]|y[t+2>>1]<<16,w[A>>1]=f,w[A+2>>1]=f>>>16,w[A+4>>1]=s,w[A+6>>1]=s>>>16,s=y[t+60>>1]|y[t+62>>1]<<16,f=y[t+56>>1]|y[t+58>>1]<<16,w[A+56>>1]=f,w[A+58>>1]=f>>>16,w[A+60>>1]=s,w[A+62>>1]=s>>>16,s=y[t+52>>1]|y[t+54>>1]<<16,f=y[t+48>>1]|y[t+50>>1]<<16,w[A+48>>1]=f,w[A+50>>1]=f>>>16,w[A+52>>1]=s,w[A+54>>1]=s>>>16,s=y[t+44>>1]|y[t+46>>1]<<16,f=y[t+40>>1]|y[t+42>>1]<<16,w[A+40>>1]=f,w[A+42>>1]=f>>>16,w[A+44>>1]=s,w[A+46>>1]=s>>>16,s=y[t+36>>1]|y[t+38>>1]<<16,f=y[t+32>>1]|y[t+34>>1]<<16,w[A+32>>1]=f,w[A+34>>1]=f>>>16,w[A+36>>1]=s,w[A+38>>1]=s>>>16,s=y[t+28>>1]|y[t+30>>1]<<16,f=y[t+24>>1]|y[t+26>>1]<<16,w[A+24>>1]=f,w[A+26>>1]=f>>>16,w[A+28>>1]=s,w[A+30>>1]=s>>>16,s=y[t+20>>1]|y[t+22>>1]<<16,f=y[t+16>>1]|y[t+18>>1]<<16,w[A+16>>1]=f,w[A+18>>1]=f>>>16,w[A+20>>1]=s,w[A+22>>1]=s>>>16,s=y[t+12>>1]|y[t+14>>1]<<16,t=y[t+8>>1]|y[t+10>>1]<<16,w[A+8>>1]=t,w[A+10>>1]=t>>>16,w[A+12>>1]=s,w[A+14>>1]=s>>>16,d[Qe+177904|0]=0,w[A>>1]=32768|y[A>>1],f=e[W+12>>2]):A=0,e[Me+4>>2]=A,w[A+8>>1]=(0|O(Ce,w[A+8>>1]))/256,w[A+6>>1]=(0|O(re,w[A+6>>1]))/256,w[A+4>>1]=(0|O(Z,w[A+4>>1]))/256,w[A+12>>1]=(0|O(AA,w[A+12>>1]))/256,w[A+10>>1]=(0|O(Ve,w[A+10>>1]))/256,(0|f)>(0|(c=c+1|0)););e[44469]=_}if(!A)break e}else{t=e[x+4>>2],(0|(f=w[t>>1]))<0?A=t:(s=(0|(s=e[44469]+1|0))<=169?s:0,e[44469]=s,(s=(f=s<<6)+177888|0)&&(A=y[t+4>>1]|y[t+6>>1]<<16,P=y[t>>1]|y[t+2>>1]<<16,w[s>>1]=P,w[s+2>>1]=P>>>16,w[s+4>>1]=A,w[s+6>>1]=A>>>16,A=y[t+60>>1]|y[t+62>>1]<<16,P=y[t+56>>1]|y[t+58>>1]<<16,w[s+56>>1]=P,w[s+58>>1]=P>>>16,w[s+60>>1]=A,w[s+62>>1]=A>>>16,A=y[t+52>>1]|y[t+54>>1]<<16,P=y[t+48>>1]|y[t+50>>1]<<16,w[s+48>>1]=P,w[s+50>>1]=P>>>16,w[s+52>>1]=A,w[s+54>>1]=A>>>16,A=y[t+44>>1]|y[t+46>>1]<<16,P=y[t+40>>1]|y[t+42>>1]<<16,w[s+40>>1]=P,w[s+42>>1]=P>>>16,w[s+44>>1]=A,w[s+46>>1]=A>>>16,A=y[t+36>>1]|y[t+38>>1]<<16,P=y[t+32>>1]|y[t+34>>1]<<16,w[s+32>>1]=P,w[s+34>>1]=P>>>16,w[s+36>>1]=A,w[s+38>>1]=A>>>16,A=y[t+28>>1]|y[t+30>>1]<<16,P=y[t+24>>1]|y[t+26>>1]<<16,w[s+24>>1]=P,w[s+26>>1]=P>>>16,w[s+28>>1]=A,w[s+30>>1]=A>>>16,A=y[t+20>>1]|y[t+22>>1]<<16,P=y[t+16>>1]|y[t+18>>1]<<16,w[s+16>>1]=P,w[s+18>>1]=P>>>16,w[s+20>>1]=A,w[s+22>>1]=A>>>16,A=y[t+12>>1]|y[t+14>>1]<<16,t=y[t+8>>1]|y[t+10>>1]<<16,w[s+8>>1]=t,w[s+10>>1]=t>>>16,w[s+12>>1]=A,w[s+14>>1]=A>>>16,d[f+177904|0]=0,f=-32768|y[s>>1],w[s>>1]=f,A=s)),e[x+4>>2]=A,w[x>>1]=I||50,w[x+2>>1]=16384|y[x+2>>1],w[A>>1]=16384|f,f=e[x+12>>2],t=u[f+17|0],s=e[32972],e[s+132>>2]&&(d[A+39|0]=u[f+39|0]-4);r:if(re){if(2048&c){t=(O(t,31&Oe)>>>0)/30|0,e[s+132>>2]||(s=u[A+17|0])&&(t=w[102896+(((0|(t=(t<<6>>>0)/(s>>>0)|0))>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512),J(A,Z,Me,AA,_,Ve,Ce,m);break r}if(J(A,Z,Me,AA,_,Ve,Ce,m),e[e[32972]+132>>2]||!(t=u[A+17|0]))break r;t=w[102896+(((0|(t=(Qe<<7>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512}else if(s=e[s+132>>2],8&m){if(s||!(s=u[A+17|0]))break r;t=((16320&O(t,48))>>>0)/(s>>>0)|0,t=w[102896+((t>>>0>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512}else s||(t=u[A+17|0])&&(t=w[102896+(((t=1792/(t>>>0)|0)>>>0>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512);if(!(8&m))break A;t=2816,(0|(s=w[A+4>>1]))<300||(t=2560,s>>>0<400||(t=s>>>0<500?2304:2048)),e[36436]=t}4&m&&(w[A>>1]=32|y[A>>1]),2&m&&(w[A>>1]=16|y[A>>1])}64&m&&er(20,0),A=I&m<<27>>31}else A=0;f=A+e[36422]|0,e[36422]=f,t=e[W+12>>2]}if((0|(s=t-1|0))<=0)c=0;else{if(A=0,I=0,c=0,t-2>>>0>=3)for(Ce=-4&s,_=0;c=(((w[(m=I<<3)+x>>1]+c|0)+w[x+(8|m)>>1]|0)+w[x+(16|m)>>1]|0)+w[x+(24|m)>>1]|0,I=I+4|0,(0|Ce)!=(0|(_=_+4|0)););if(m=3&s)for(;c=w[x+(I<<3)>>1]+c|0,I=I+1|0,(0|m)!=(0|(A=A+1|0)););}if(A=t,(m=e[r+20>>2])&&(A=s,I=m+e[34460]|0,(_=u[I+2|0])&&(re=y[I+4>>1],w[x+(s<<3)>>1]=u[I+20|0],m=1,A=t,(0|_)!=1))){if(Ce=I+4|0,re&=1,Ve=1&(I=_-1|0),(0|_)!=2)for(AA=-2&I,_=0;Me=Ce+(m<<6)|0,Qe=Ce+O(m,44)|0,Oe=u[(Z=re?Me:Qe)+16|0],e[(I=x+(A<<3)|0)+4>>2]=Z,w[I>>1]=Oe,w[I+2>>1]=y[Z>>1],Me=u[(Z=re?Me- -64|0:Qe+44|0)+16|0],e[I+12>>2]=Z,w[I+8>>1]=Me,w[I+10>>1]=y[Z>>1],m=m+2|0,A=A+2|0,(0|AA)!=(0|(_=_+2|0)););Ve&&(m=Ce+(re?m<<6:O(m,44))|0,_=u[m+16|0],e[(I=x+(A<<3)|0)+4>>2]=m,w[I>>1]=_,w[I+2>>1]=y[m>>1],A=A+1|0)}e:if(!((0|c)<=0)){A:{r:switch(bA-1|0){case 1:if(m=(0|(m=(e[r+44>>2]+f|0)-45|0))<=10?10:m,8&u[0|b]&&(m=m+(u[e[36128]+14|0]<<1)|0),(0|s)<=0)break e;if(b=(m<<8)/(0|c)|0,I=0,(0|t)!=2)for(t=-2&s,m=0;w[(c=(f=I<<3)+x|0)>>1]=(0|O(b,w[c>>1]))/256,w[(f=x+(8|f)|0)>>1]=(0|O(b,w[f>>1]))/256,I=I+2|0,(0|t)!=(0|(m=m+2|0)););if(!(1&s))break e;w[(t=x+(I<<3)|0)>>1]=(0|O(b,w[t>>1]))/256;break e;case 0:if(e[r>>2]!=1||(0|(m=e[r+44>>2]))>129)break A;w[x>>1]=(0|O(m,w[x>>1]))/130;break A;default:break r}(0|(m=e[r+44>>2]))<=0||(f=(m-c|0)+f|0,e[36422]=f)}if(!(!f|(0|s)<=0)){if(b=(c+f<<8)/(0|c)|0,I=0,(0|t)!=2)for(t=-2&s,m=0;w[(c=(f=I<<3)+x|0)>>1]=(0|O(b,w[c>>1]))/256,w[(f=x+(8|f)|0)>>1]=(0|O(b,w[f>>1]))/256,I=I+2|0,(0|t)!=(0|(m=m+2|0)););1&s&&(w[(t=x+(I<<3)|0)>>1]=(0|O(b,w[t>>1]))/256)}}if(e[l+108>>2]=A,Y=W+16|0,x){if((0|(A=e[r+16>>2]))!=e[36438]&&(e[36438]=A,t=216192+(e[50758]<<4)|0,e[t>>2]=14,e[t+4>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),I=(A=e[e[32972]+132>>2])?1:3,t=e[x+4>>2],e[r+28>>2]|!u[145748]||(d[145748]=0,I=A?2:4),(s=e[36426])&&(!((2&(A=y[s>>1]))>>>1|u[s+16|0]<2)|16&A||(f=216192+(e[36439]<<4)|0,e[f+12>>2]=t,8&A&&(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=(m=A<<6)+177888|0)&&(b=y[t+4>>1]|y[t+6>>1]<<16,c=y[t>>1]|y[t+2>>1]<<16,w[A>>1]=c,w[A+2>>1]=c>>>16,w[A+4>>1]=b,w[A+6>>1]=b>>>16,b=y[t+60>>1]|y[t+62>>1]<<16,c=y[t+56>>1]|y[t+58>>1]<<16,w[A+56>>1]=c,w[A+58>>1]=c>>>16,w[A+60>>1]=b,w[A+62>>1]=b>>>16,b=y[t+52>>1]|y[t+54>>1]<<16,c=y[t+48>>1]|y[t+50>>1]<<16,w[A+48>>1]=c,w[A+50>>1]=c>>>16,w[A+52>>1]=b,w[A+54>>1]=b>>>16,b=y[t+44>>1]|y[t+46>>1]<<16,c=y[t+40>>1]|y[t+42>>1]<<16,w[A+40>>1]=c,w[A+42>>1]=c>>>16,w[A+44>>1]=b,w[A+46>>1]=b>>>16,b=y[t+36>>1]|y[t+38>>1]<<16,c=y[t+32>>1]|y[t+34>>1]<<16,w[A+32>>1]=c,w[A+34>>1]=c>>>16,w[A+36>>1]=b,w[A+38>>1]=b>>>16,b=y[t+28>>1]|y[t+30>>1]<<16,c=y[t+24>>1]|y[t+26>>1]<<16,w[A+24>>1]=c,w[A+26>>1]=c>>>16,w[A+28>>1]=b,w[A+30>>1]=b>>>16,b=y[t+20>>1]|y[t+22>>1]<<16,c=y[t+16>>1]|y[t+18>>1]<<16,w[A+16>>1]=c,w[A+18>>1]=c>>>16,w[A+20>>1]=b,w[A+22>>1]=b>>>16,b=y[t+12>>1]|y[t+14>>1]<<16,c=y[t+8>>1]|y[t+10>>1]<<16,w[A+8>>1]=c,w[A+10>>1]=c>>>16,w[A+12>>1]=b,w[A+14>>1]=b>>>16,d[m+177904|0]=0,w[A>>1]=32768|y[A>>1]),w[(m=m+177888|0)+8>>1]=y[s+8>>1],d[m+21|0]=u[s+21|0],w[m+10>>1]=y[s+10>>1],d[m+22|0]=u[s+22|0],w[m+12>>1]=y[s+12>>1],d[m+23|0]=u[s+23|0],w[m+14>>1]=y[s+14>>1],d[m+24|0]=u[s+24|0],d[m+25|0]=u[s+25|0],e[f+12>>2]=A))),(0|bA)!=2|u[le+11|0]!=2||(Ts(),e[36427]=e[50758]),!((0|(le=e[l+108>>2]))<2)){for(A=e[36433],b=(O(256-A|0,U)+(A<<8)|0)/256|0,A=e[36432],f=(O(256-A|0,U)+(A<<8)|0)/256|0,c=e[50754],A=0,s=1;m=y[(W=(x+(s<<3)|0)-8|0)+2>>1],m=(0|O((0|O(c,w[W>>1]))/1e3|0,4&m?f:16384&m?b:U))/256|0,e[(s<<2)+l>>2]=m,A=A+m|0,(0|le)!=(0|(s=s+1|0)););if(!((0|A)<=0|(0|A)>=(0|gA)|(0|le)<2)){if(s=1,b=1&(m=le-1|0),(0|le)!=2)for(f=-2&m,U=0;e[(m=(s<<2)+l|0)>>2]=(0|O(e[m>>2],gA))/(0|A),e[m+4>>2]=(0|O(e[m+4>>2],gA))/(0|A),s=s+2|0,(0|f)!=(0|(U=U+2|0)););b&&(e[(s=(s<<2)+l|0)>>2]=(0|O(e[s>>2],gA))/(0|A))}if(U=0,!((0|le)<2))for(le=bA+256|0,s=1;A=e[4+(x+(s<<3)|0)>>2],!(m=e[r+28>>2])|128&u[0|t]||(e[36422]=0,fr(m,le,0,c=e[r>>2],0,b=(b=e[r+32>>2])?(b<<5)/100|0:32),d[145748]=1,e[r+28>>2]=0),(0|o)<0||(o=64&u[0|t]?6:o,(e[l+108>>2]-1|0)==(0|s)&&(o=(m=o)|(3840&(o=e[36436])?o:0))),m=e[(s<<2)+l>>2],e[36440]=m+e[36440],e[36441]=m+e[36441],m?(b=e[50758],e[36439]=b,(0|o)>=0&&(e[(b=216192+(b<<4)|0)>>2]=I,e[b+12>>2]=A,e[b+8>>2]=t,e[b+4>>2]=m+(o<<16),t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0),e[36426]=A,U=m+U|0):e[36426]=0,t=A,(0|(s=s+1|0))<e[l+108>>2];);}!e[36438]|(0|bA)==1||(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}}
2896Y=l+112|0}function lA(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0;Y=o=Y-1856|0,e[o+164>>2]=0,r?P=e[r>>2]:Xe(r=o- -64|0,0,96),e[33264]=0,e[o+1824>>2]=0,e[o+1828>>2]=0,e[o+1832>>2]=0,e[o+1836>>2]=0,d[o+1616|0]=0,d[o+992|0]=0,d[o+1200|0]=0,d[o+784|0]=0;e:if(e[A+688>>2]){for(e[o+1840>>2]=t,u[0|(l=t)]==32&&(l=t+1|0,e[o+1840>>2]=l),_=o+416|1,Oe=o+1844|1,AA=o+1848|1,gA=o+1852|1,e[o+1820>>2]=l,WA(o+168|0,l),l=e[o+1820>>2];(32|u[0|l])!=32;)l=WA(o+164|0,l)+e[o+1820>>2]|0,e[o+1820>>2]=l,Z=Z+1|0;LA(o+256|0,t,Ve=(0|(f=l-t|0))>=159?159:f),!(Me=4194304&P)|(0|Z)!=1?(le=((0|(l=e[47202]))==36)<<2,(0|Z)==1|(0|l)!=36||(l=e[o+1840>>2]-1|0,e[o+1840>>2]=l,d[0|l]=95,le=0,c=!!(0|ur(A,o+1840|0,o+1616|0,o+1832|0,0,r)),l=e[47202])):(c=1,WA(o+172|0,l+1|0),jt(e[o+172>>2])&&(0|pA(e[o+164>>2]))==(0|pA(e[o+172>>2]))&&(c=0),le=(0|(l=e[47202]))==36?4:c,c=0);A:{r:{a:{n:{o:if(16&l)W=15&l,le=0;else{if(re=1,c||(re=!!(0|ur(A,o+1840|0,o+1616|0,o+1832|0,2,r))),50331648&(l=e[o+1832>>2])&&(f=e[o+1820>>2],u[f+1|0]==46&&(d[f+1|0]=32,l=e[o+1832>>2])),536870912&l){if(!s)break e;PA(s,e[o+1840>>2]);break e}if(8192&l|!(128&l)|re)s=e[33264];else if(l=e[o+1840>>2],e[o+1820>>2]=l,!((0|(s=e[33264]))<=0))for(c=0;u[0|l]==32&&(d[0|l]=45,c=c+1|0,l=e[o+1820>>2],s=e[33264]),l=l+1|0,e[o+1820>>2]=l,(0|s)>(0|c););c:if(!(s|(0|Z)!=1)&&(f=WA(o+576|0,x=e[o+1840>>2]),u[f+x|0]==32)){c=o+1408|0,s=x;u:{l:{i:{for(;;){p:if(jt(e[o+576>>2])){C:{if(u[(m=s+f|0)+1|0]==46){W=0;h:switch(u[(l=f+2|0)+s|0]-32|0){case 0:break C;case 7:break h;default:break p}if(W=1,f=l,u[m+3|0]==115)break C;break p}if(W=1,(0|b)<=0)break i}if(!((0|f)<=0)){if(U=3&f,I=0,f>>>0<4)l=0;else for(Ce=-4&f,l=0,m=0;d[0|c]=u[s+l|0],d[c+1|0]=u[(1|l)+s|0],d[c+2|0]=u[(2|l)+s|0],d[c+3|0]=u[(3|l)+s|0],l=l+4|0,c=c+4|0,(0|Ce)!=(0|(m=m+4|0)););if(U)for(;d[0|c]=u[s+l|0],l=l+1|0,c=c+1|0,(0|U)!=(0|(I=I+1|0)););}if(b=b+1|0,W)s=s+f|0;else if(f=WA(o+576|0,s=3+(s+f|0)|0),u[s+f|0]==32)continue}break}if(!((0|b)<2)){(f=(f=c-(l=o+1408|0)|0)+(l=LA(x,l,f))|0)>>>0<s>>>0&&Xe(f,32,(o+1408|0)+s-(l+c)|0),e[33264]=(b<<1)-2,e[o+1836>>2]=0;break l}}if(!b)break c;if(e[o+1832>>2]=0,e[o+1836>>2]=0,!e[33264])break u}e[o+1832>>2]=128}le=1}if(u[o+1616|0]==21){PA(189088,o+1616|0),l=0;break e}if(bA=u[o+1833|0],c=1,!re){if(e[o+168>>2]-48>>>0<10){if(GA(A,84174,189088),l=0,u[189088]==21)break e;if(!(!(128&u[A+109|0])|32&u[r+2|0])){d[189088]=21,d[189089]=0;break e}c=!!(0|ds(A,e[o+1840>>2],o+1616|0,o+1832|0,r,0))}else c=0;if(!(c|(3&P)==2)&&(16777216&(s=e[A+104>>2])||(c=0,!(!(33554432&s)|!(1&P))))&&(16&P||(c=0,!(1&d[r+13|0])))){Ce=e[o+1840>>2],l=0,b=0,m=0,Y=U=Y-224|0,d[0|(I=o+1616|0)]=0,e[U+216>>2]=0,e[U+220>>2]=0;c:if(!(d[Ce-2|0]-48>>>0<10|(1&d[0|r]?0:2&u[A+107|0])||(s=u[0|(f=Ce+1|0)],(!(2561&y[A+106>>1])|!(1&d[r+2|0]))&(0|s)==32))){if((0|(b=u[0|Ce]))!=32){for(W=32767,s=0;;){if(!(l=Ia(101868,b<<24>>24,8))){b=0;break c}if(x=0,(0|(l=e[(l<<2)-305584>>2]))==(0|s)&&!((0|(x=m+1|0))<=2)){b=0;break c}u:{l:{i:{p:{if(!((0|s)<2)){if((0|s)==10|(0|s)==100)break p;if(!((0|s)>(0|l))){b=0;break c}}if(!s)break l;if((0|s)<(0|l))break i;break l}if((0|s)>=(0|l))break l}if(b=0,(0|Qe)%10|(0|O(s,10))<(0|l))break c;l=l-s|0,W=s;break u}if((0|l)>=(0|W)){b=0;break c}Qe=s+Qe|0}if(b=u[0|f],f=c=f+1|0,s=l,m=x,(0|b)==32)break}s=u[0|c]}else c=f;if((s<<24>>24)-48>>>0<10)b=0;else if((0|(s=l+Qe|0))<e[A+120>>2])b=0;else if((0|s)>e[A+116>>2])b=0;else if(GA(A,85600,U+176|0),l=I,4&u[A+107|0]||(l=PA(I,l=U+176|0)+EA(l)|0),e[U+4>>2]=e[A+140>>2],e[U>>2]=s,dA(U+16|0,85839,U),b=0,u[0|c]!=46){Ft(A,Ce,c,r,1)&&(e[r>>2]=32768|e[r>>2]),f=0;u:if(8&u[A+107|0]){if(m=e[r>>2],e[A+212>>2]==26741){if(32768&m)break u;if(!(16384&m))break c;f=1,m=0;l:{i:switch(u[0|c]-97|0){case 0:case 4:break i;default:break l}i:{p:{C:{h:switch((W=u[c+1|0])-116|0){case 6:break l;case 1:case 2:case 3:case 4:case 5:break p;case 0:break h;default:break C}if(u[c+2|0]!=116)break i;break l}if((0|W)==32)break l}if(!((0|s)%1e3|0)&&(0|W)==108)break l}m=1}if(m)break u;break c}e[r>>2]=32768|m}e[(s=A+8232|0)>>2]=0,e[s+4>>2]=0,ds(A,U+16|2,l,U+216|0,r,f),b=1,4&u[A+107|0]&&ts(I,U+176|0)}}Y=U+224|0,b?(e[o+1832>>2]=8192|e[o+1832>>2],c=1):c=0}}if(W=re?le:32&bA?1:le,le=0,!(!(1&P)|(0|Z)<2)&&Ke(e[o+168>>2])){c:{if(1&d[188785]){if(!(!(s=8192&(l=e[o+1832>>2]))|c))break c;le=s>>>2^2048;break o}if(c)break n;l=e[o+1832>>2]}if(!(128&l|Z>>>0>3)&&!((0|(l=e[A+8220>>2]))<4)&&(s=1,(0|l)>=e[A+8216>>2]))break A}}if(I=0,(0|W)<=0)break a;s=W;break A}if((0|(s=W))>0)break A;I=0,x=0,m=0,b=0;break r}if(c)x=0,m=0,b=0;else{s=e[o+1840>>2],e[o+1820>>2]=s,l=999,b=0,x=0,_=0;a:{n:{o:{for(;;){c:{u:{l:{if(l-1>>>0>=2){if((0|Z)<2||(WA(o+1408|0,s),(0|(l=e[o+1408>>2]))<577&e[A+600>>2]>0)||(l=pA(l),(e[l+4>>2]!=e[A+600>>2]?l:0)|e[A+40>>2]==1))break l;l=u[0|s],e[o+1408>>2]=l<<24>>24;i:switch(l-32|0){default:if(!l)break l;break;case 0:case 7:break l;
2896case 1:case 2:case 3:case 4:case 5:case 6:break i}I=WA(o+1408|0,s),re=9;i:{p:{C:{h:if(-33&(l=e[o+1408>>2])){for(c=0,m=0;;){b:{m:{if((0|l)==39){if((0|x)>0|(0|c)>1)break h;if(m=c?m:39,e[A+40>>2]!=3)break m;break b}m=c?m:l}c=c+1|0}if(!On(A,l)){if((0|(l=e[o+1408>>2]))!=39&&!Ke(l))break l;if(I=WA(o+1408|0,s+I|0)+I|0,-33&(l=e[o+1408>>2]))continue;break h}break}if((0|c)<=2)break C;re=c}else m=0;if((0|(l=e[A+40>>2]))!=2)break p;Y=l=Y-208|0,d[0|l]=0,c=u[0|(f=s-1|0)],d[0|f]=32,s=UA(A,s,l,200,0,-2147483648,0),d[0|f]=c,Y=l+208|0,s=!s|(32768&s)>>>15;break i}l=e[A+40>>2],re=c}s=(d[A+168|0]+1|0)<(re-((0|l)==(0|m))|0)}if(!s)break l;s=e[o+1820>>2]}if(u[0|s]!=39)break u;b=67108864,le=0}if(I=0,Ht(A,o+992|0,0,x),s=e[o+1820>>2],(0|(l=u[0|s]))!=32)break c;x=0,m=0;break r}if(le=0,s=Jt(A,s,o+992|0,1&(_|=(0|x)>0))+e[o+1820>>2]|0,e[o+1820>>2]=s,u[o+992|0]==21)break o;for(x=x+1|0,c=0;c=(l=c)+1|0,u[s+l|0]!=32;);b=67108864;continue}break}if(!u[o+992|0]|(0|l)==39||(d[s-1|0]=32,s=e[o+1820>>2]),f=UA(A,s,o+1616|0,200,o+784|0,P,o+1832|0),(0|(s=u[o+1616|0]))==21){PA(189088,o+1616|0),l=0;break e}if(!(s|u[o+784|0])&&(WA(o+1408|0,e[o+1820>>2]),(0|Z)==1&&(jt(e[o+1408>>2])||An(e[o+1408>>2])))){Ma(A,e[o+1820>>2],o+1616|0,W)&&PA(189088,o+1616|0),l=0;break e}e[o+172>>2]=d[e[o+1820>>2]-1|0];c:if(1024&f)for(Ce=o+176|1,W=0,l=1,_=0,x=0;;){if((re=131072&f)|!(1&l)||(d[o+1408|0]=0,!(s=UA(A,e[o+1820>>2],o+1408|0,200,o+576|0,805306368|P,o+1832|0)))){2048&f&&(e[A+8184>>2]=1),d[e[o+1820>>2]-1|0]=e[o+172>>2];u:{l:{i:{p:if(re){if(d[o+176|0]=0,l=e[o+1820>>2],s=1,m=63&f){if(U=1&f,x=m-1|0,c=0,(0|m)!=1)for(Qe=m-U|0,m=0;I=l,e[o+1820>>2]=l+1,d[0|(Me=(o+176|0)+s|0)]=(0|c)!=(0|x)?u[0|l]:0,l=l+2|0,e[o+1820>>2]=l,d[Me+1|0]=(0|x)!=(1|c)?u[I+1|0]:0,c=c+2|0,s=s+2|0,(0|Qe)!=(0|(m=m+2|0)););U&&(m=l+1|0,e[o+1820>>2]=m,d[(o+176|0)+s|0]=(0|c)!=(0|x)?u[0|l]:0,s=s+1|0,l=m)}d[(o+176|0)+s|0]=0}else{if(l=e[o+1820>>2],!(m=15&f))break i;if(s=0,c=m,I=3&f)for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128||(c=c-1|0,(0|I)!=(0|(s=s+1|0))););if(m>>>0<4)break p;for(;;)if(l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])!=128){for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128;);for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128;);for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128;);if(s=(0|c)>4,c=c-4|0,!s)break}}if(s=l-1|0,e[o+172>>2]=d[0|s],d[0|s]=32,s=P|=8388608,!re)break l;if(Vt(o+576|0,o+784|0,12),e[o+1852>>2]=Ce,s=PA(o+1200|0,l=o+1616|0),ur(A,o+1852|0,l,o+1832|0,0,r)&&PA(s,o+1616|0),!(32&u[o+1833|0]))break u;d[0|s]=0,Ma(A,e[o+1852>>2],s,1);break u}s=l-1|0,e[o+172>>2]=d[0|s],d[0|s]=32,s=8388608|P}P=s,ts(o+1200|0,o+784|0)}if(d[o+784|0]=0,m=1,s=ur(A,o+1820|0,o+1616|0,o+1824|0,1024,r),e[o+1832>>2]||(l=e[o+1828>>2],e[o+1832>>2]=e[o+1824>>2],e[o+1836>>2]=l,m=_),s){I=0,x=f;break a}if(I=UA(A,e[o+1820>>2],o+1616|0,200,o+784|0,8404992&P,o+1832|0),l=1,x=f,_=m,u[o+1616|0]==21){d[e[o+1820>>2]-1|0]=e[o+172>>2],PA(189088,o+1616|0),l=0;break e}}else l=o+416|0,Ws(A,e[o+1820>>2],s,l),I=UA(A,e[o+1820>>2],o+1616|0,200,o+784|0,268435456|P,o+1832|0),LA(e[o+1820>>2],l,EA(l)),1024&I||(PA(o+1616|0,o+1408|0),l=PA(o+784|0,o+576|0),8&u[188788]&&(Ar(m=l,l=o+576|0),f=e[47195],e[o+48>>2]=l,rr(f,85205,o+48|0)),I=s),l=0;if(s=(c=1024&I)>>>10|0,W>>>0>48)break c;if(W=W+1|0,f=I,!c)break}else I=f,x=0,_=0,s=0;if(s|!I)break n;for(f=PA(o+1408|0,o+1616|0),c=Ws(A,e[o+1820>>2],I,o+416|0),m=_,l=I;;){c:{if(d[o+1616|0]=0,u[o+1200|0]){if(d[e[o+1820>>2]-1|0]=e[o+172>>2],s=ur(A,o+1840|0,o+1616|0,o+1824|0,c,r),d[e[o+1820>>2]-1|0]=32,u[o+1616|0]==21){A=o+416|0,LA(e[o+1820>>2],A,EA(A)),PA(189088,o+1616|0),l=0;break e}if(e[o+1832>>2]||(_=e[o+1828>>2],e[o+1832>>2]=e[o+1824>>2],e[o+1836>>2]=_),s){d[o+1200|0]=0;break c}m=e[o+1824>>2]?1:m}if(s=ur(A,o+1820|0,o+1616|0,o+1824|0,c,r),u[o+1616|0]==21){A=o+416|0,LA(e[o+1820>>2],A,EA(A)),PA(189088,o+1616|0),l=0;break e}if(e[o+1832>>2]||(_=e[o+1828>>2],e[o+1832>>2]=e[o+1824>>2],e[o+1836>>2]=_),!s)if(16384&l)PA(o+1616|0,f);else{P|=c<<11&8192|l<<9&134217728;u:if(524288&l){if(_=PA(o+576|0,s=o+784|0),l=UA(A,e[o+1820>>2],o+1616|0,200,s,P,o+1832|0),ts(s,_),s=0,!l){l=0;break u}if(1024&l)break u;s=1,c=Ws(A,e[o+1820>>2],l,0)}else l=0,UA(A,e[o+1820>>2],o+1616|0,200,0,P,o+1832|0),s=0;if(u[o+1616|0]==21){PA(189088,o+1616|0),A=o+416|0,LA(e[o+1820>>2],A,EA(A)),d[e[o+1820>>2]-1|0]=e[o+172>>2],l=0;break e}if(s)continue}}break}65536&I||(Gn(A,o+1616|0,200,o+784|0),d[o+784|0]=0),s=o+416|0,LA(e[o+1820>>2],s,EA(s));break a}PA(189088,A=o+992|0),l=!Xr(1|A,84744,3)<<12;break e}I=0,m=_}d[e[o+1820>>2]-1|0]=e[o+172>>2]}}if(s=e[o+164>>2],e[o+1852>>2]=8026656,e[o+1848>>2]=8022304,e[o+1844>>
vendor: 4,664 bytes, line 2896
28962]=7566112,4&P){r:{if((l=255&s)&&((0|l)==102||(Oe=AA,wo(s<<24>>24))))break r;Oe=gA}UA(A,Oe,189088,200,0,0,0)}for(s=0,l=o+1200|0,_=u[o+784|0];;){r:{a:{n:switch(0|(f=u[0|l])){case 0:break r;case 6:case 7:break n;default:break a}s=f}l=l+1|0;continue}break}r:if(s|m){if(e[A+32>>2]|65536&x){for(c=0,Zt(A,o+1616|0,o+1832|0,3,0),l=o+1200|0;;){a:switch(u[0|l]){case 6:c&&(d[0|l]=5),c=1;default:l=l+1|0;continue;case 0:break a}break}e[o+24>>2]=o+1616,e[o+20>>2]=o+1200,e[o+16>>2]=o+992,zs(189088,200,85233,o+16|0),d[189287]=0,Zt(A,189088,o+1832|0,-1,0);break r}e[o+8>>2]=o+1616,e[o+4>>2]=o+1200,e[o>>2]=o+992,zs(189088,200,85233,o),d[189287]=0,Zt(A,189088,o+1832|0,-1,0)}else Zt(A,s=o+1616|0,o+1832|0,-1,!!(0|_)<<1),e[o+40>>2]=s,e[o+36>>2]=o+1200,e[o+32>>2]=o+992,zs(189088,200,85233,o+32|0),d[189287]=0;u[o+784|0]&&(s=EA(189088),d[983+(o-s|0)|0]=0,PA(s+189088|0,o+784|0)),16&(s=P|le)&&(e[o+1832>>2]=-268435457&e[o+1832>>2]);r:if(!(128&s)|!(16&u[A+14|0]))if(3072&s){if(Hs(A,6),!(2048&s))break r;e[o+1832>>2]=268435456|e[o+1832>>2]}else 16&u[O(e[33264],12)+r|0]&&(1536&(r=e[o+1832>>2])?Hs(A,4):2048&r&&Hs(A,3));else Hs(A,3);8192&I&&(e[A+8192>>2]=2,e[A+8184>>2]=2);r:{if(8&(r=e[o+1836>>2]))e[A+8184>>2]=0,e[A+8188>>2]=3,s=A+8196|0;else if(1&r)e[A+8192>>2]=0,e[A+8184>>2]=2,s=A+8196|0;else if(2&r)e[A+8192>>2]=2,e[A+8184>>2]=0,e[A+8188>>2]=0,s=A+8196|0;else{if(!(4&r))break r;e[A+8184>>2]=0,e[A+8192>>2]=0,e[A+8196>>2]=2,s=A+8188|0}e[s>>2]=0}!u[e[o+1820>>2]]|256&r||((0|(r=e[A+8184>>2]))>0&&(e[A+8184>>2]=r-1),(0|(r=e[A+8192>>2]))>0&&(e[A+8192>>2]=r-1),(0|(r=e[A+8196>>2]))>0&&(e[A+8196>>2]=r-1),(0|(r=e[A+8188>>2]))<=0||(e[A+8188>>2]=r-1)),(0|Z)!=1|e[A+212>>2]!=25966||!Ke(e[o+168>>2])|e[o+168>>2]==105||(e[o+1832>>2]=16777216|e[o+1832>>2]);r:if(2&u[A+68|0]&&98304&(s=e[o+1832>>2])&&!((0|(r=EA(189088)-1|0))<=0))for(l=0;;){if(A=l+1|0,u[l+189088|0]==6){r=d[0|(A=A+189088|0)];a:{if(65536&s){if((0|Zr(69))==(0|r)?(Z=Zr(101),d[0|A]=Z):Z=u[0|A],c=111,(0|Zr(79))==Z<<24>>24)break a;break r}if((0|Zr(101))==(0|r)?(Z=Zr(69),d[0|A]=Z):Z=u[0|A],c=79,(0|Zr(111))!=Z<<24>>24)break r}d[0|A]=Zr(c);break r}if((0|r)==(0|(l=A)))break}A=e[o+1832>>2],LA(t,o+256|0,Ve),l=A|b;break e}if(l=0,d[o+1616|0]=0,Ma(A,e[o+1840>>2],o+1616|0,s)){if(f=PA(189088,o+1616|0),!Me){if(s=e[o+164>>2],e[o+1408>>2]=8026656,e[o+576>>2]=8022304,e[o+416>>2]=7566112,4&P){t=o+576|1,r=o+1408|1;A:{if((l=255&s)&&((0|l)==102||(_=t,wo(s<<24>>24))))break A;_=r}UA(A,_,f,200,0,0,0)}l=128&e[o+1832>>2]}}else l=((0|Z)>1)<<12}else d[189088]=0;return Y=o+1856|0,l}function KA(A,t,r,s,o,l,c,f){var m,I,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0,rt=0,Et=0,Ot=0,Wt=0,ir=0,or=0,xr=0,Br=0,Rr=0,Hr=0,Jr=0,os=0,ps=0,Is=0,ua=0,Js=0,da=0,In=0,wn=0,kn=0,Kn=0,Mn=0;Y=m=Y-384|0,I=e[t>>2];e:{A:{r:{a:{if(o){if(u[0|o]!=7)break a;e[t>>2]=(s||1)+I;break r}e[l>>2]=0,e[t>>2]=I+1;break e}Et=86135,Hr=268435456&c,Jr=134217728&c,os=8388608&c,ps=16384&c,Is=8192&c,ir=r-1|0,or=s-r|0,ua=2&c,Js=128&c,da=c>>>31|0,In=-2147483648&c,xr=m+96|1;a:for(;;)for(e[m+268>>2]=0,Z=(P=e[t>>2])+s|0,AA=-2,Oe=-6,r=o,gA=In,zA=0,Ot=0,Ve=1,b=0,bA=0,rt=0;;){_=P,re=b;n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{x:{I:{B:{N:{L:{for(;Ce=r,r=r+1|0,!((x=u[0|Ce])>>>0>9);){W=r;U:switch(0|x){case 0:if(!(r=Br)){Br=0,r=86135;break N}for(;;){x=1;y:{E:switch(0|(b=u[0|r])){case 0:case 3:break L;case 5:break E;default:break y}x=2}r=(r+x|0)+(((0|b)==9)<<1)|0}case 1:if(rt=1,!da)continue;break l;case 2:rt=2;continue;case 4:Br=r;continue;case 5:r=Ce+2|0,b=e[A+320>>2];y:{if((P=u[Ce+1|0])>>>0>=32){if(!(b>>>P-32&1))break y;break l}if(!(b>>>P&1))break l}Ve=Ve+1|0;continue;case 9:r=Ce+3|0;continue;case 8:rt=1,Ot=1,gA=0;break;case 3:break B;default:break U}}W=0,b=re,P=_;U:switch(0|rt){case 0:y:{E:{if((0|(b=u[0|Z]))!=(0|x)){if((0|b)!=69)break l;if((0|x)==101)break E;break l}if(W=0,(192&x)==128)break y}W=21}Z=Z+1|0,zA=zA+1|0;break n;case 1:break I;case 2:break U;default:break b}if(e[m+264>>2]=e[m+268>>2],!u[Z-1|0])break l;Oe=(0|(b=Oe+6|0))>=19?19:b,Qe=Z+1|0,Me=WA(m+268|0,Z),le=u[0|Z],W=20,b=re;U:{y:switch(x-11|0){case 6:r=Ce+2|0,b=e[m+268>>2],P=d[Ce+1|0];E:if(x=e[604+(((P=((0|P)<65?191:-65)+P|0)<<2)+A|0)>>2])b=!!(0|Tt(x,b));else{if((0|P)>7)break l;Q:{if((0|(x=e[A+600>>2]))>0){if((b=b-x|0)-1>>>0<255)break Q;break l}if((x=b-192|0)>>>0<=413){b=u[344+(u[x+94240|0]+A|0)|0]&1<<P;break E}if(b>>>0>255)break l}b=u[344+(A+b|0)|0]&1<<P}if(!b)break l;Z=Z+Me|0,W=((0|P)==2?19:20)-Oe|0;break n;case 7:if(r=Ce+2|0,b=d[Ce+1|0],!(b=e[4788+((((0|b)<65?191:-65)+b<<2)+A|0)>>2]))break l;E:for(;;){if((0|(W=u[0|b]))==7)break l;if((0|W)==126){W=20-Oe|0;break n}Q:if(le){if(U=Z,x=b,(0|W)==(0|le))for(;;){if((0|(W=u[0|(x=x+1|0)]))!=(0|(b=u[0|(U=U+1|0)])))break Q;
2896if(!b)break}}else x=b,U=Z;if(W){for(;;)if(P=u[0|x],x=b=x+1|0,!P)continue E}break}if((0|(b=U-Z|0))<0)break l;Z=b+Z|0,W=20-Oe|0;break n;case 14:x=e[m+268>>2];E:{Q:if(b=e[A+604>>2])b=!!(0|Tt(b,x));else{F:{if((0|(b=e[A+600>>2]))>0){if((U=x-b|0)-1>>>0<255)break F;break E}if((b=x-192|0)>>>0<=413){b=1&d[344+(u[b+94240|0]+A|0)|0];break Q}if(U=x,x>>>0>255)break o}b=1&d[344+(A+U|0)|0]}if(b)break l;x=e[m+268>>2]}if(!Jr)break o;if((0|x)==32)break l;break o;case 4:if((b=e[m+268>>2])-48>>>0<10|b-2406>>>0<10)break o;if(!u[A+170|0])break l;W=20-Oe|0;break n;case 5:if(di(e[m+268>>2]))break l;break c;case 0:if(e[m+268>>2]==e[m+264>>2])break c;break l;case 17:r=Ce+2|0,b=32768,W=0;E:{Q:switch((x=u[Ce+1|0])-1|0){case 0:break b;case 1:break Q;default:break E}if(W=1,b=re,!os)break b;break l}if((0|(b=240&x))==16){if(W=23,b=re,f>>>(15&x)&16384)break b;break l}if((0|x)!=3&(0|b)!=32||(LA(b=m+96|0,ir,P=1+(e[t>>2]+(zA+or|0)|0)|0),d[0|(b=b+P|0)]=32,d[b+1|0]=0,e[33265]=0,e[33266]=0,e[m+16>>2]=xr,ur(A,m+16|0,m+272|0,133060,0,0),W=23,!((0|x)!=3|(0|(U=e[33265]))>=0|16384&e[33266])))break n;if(b=re,P=_,U>>>(15&x)&16384)break b;break l;case 34:E:{if(b=le-32|0){if((0|b)==13)break E;break l}if(!ps)break l}U=22-Oe|0;break u;case 10:if(b=1,u[0|r]==21)break U;break i;case 18:if((0|(U=e[m+268>>2]))!=32)for(x=Z+Me|0;;){E:{Q:if(b=e[A+632>>2])b=!!(0|Tt(b,U));else{F:{if((0|(b=e[A+600>>2]))>0){if((U=U-b|0)-1>>>0<255)break F;break E}if((b=U-192|0)>>>0<=413){b=128&u[344+(u[b+94240|0]+A|0)|0];break Q}if(U>>>0>255)break E}b=128&u[344+(A+U|0)|0]}if(b)break l}if(x=WA(m+268|0,x)+x|0,(0|(U=e[m+268>>2]))==32)break}U=19-Oe|0;break u;case 49:break p;case 2:break C;case 3:break h;case 1:break b;case 13:break m;case 12:break y;default:break x}WA(m+272|0,r),Me=-1;y:if((0|(b=e[m+272>>2]))!=(0|(x=e[m+268>>2])))if(-33&x)for(;;){le=Z,Me=-1;E:if((0|b)==18&&(b=d[Ce+2|0],W=e[4788+((((0|b)<65?191:-65)+b<<2)+A|0)>>2])){for(;;){if((0|(P=u[0|W]))==7)break E;if((0|P)==126){Me=0;break E}Q:if((0|(Z=u[0|le]))==(0|P)){if(b=le,x=W,Z)for(;;){if((0|(P=u[0|(x=x+1|0)]))!=(0|(W=u[0|(b=b+1|0)])))break Q;if(!W)break}}else x=W,b=le;if(!P){b=b-le|0;break}for(;b=u[0|x],x=W=x+1|0,b;);}Me=b}if(P=WA(m+268|0,le),(0|(b=e[m+272>>2]))==(0|(x=e[m+268>>2]))|!(-33&x))break y;if(Z=P+le|0,(0|Me)!=-1)break}else le=Z;else le=Z;Z=(0|b)==(0|x)||(0|Me)>=0?le:Qe,W=0;break n}for(;b=b+1|0,u[0|(r=r+1|0)]==21;);break i}r=r+1|0}W=Ce}if(!(u[_-1|0]!=32&Ot|gA||((0|(x=Ot?Ve+4|0:Ve))>=(0|Wt)&&(wn=bA,kn=re,Wt=x,Kn=zA,Et=r),!(8&e[47197])|Hr|(0|x)<=0))){for(Ar(r,Ce=m+272|0),Qe=e[47195],P=m+16|0,r=0,le=0,gA=0,bA=0,Y=Z=Y-496|0,d[Z+80|0]=0,(0|s)>0?(LA(Z+288|0,I,s),re=s):re=0,d[re+(b=Z+288|0)|0]=0,_=EA(b)+b|0,Me=(0|c)<0;;){if(U=u[0|o],re=o,o=o+1|0,U>>>0>9)for(;;){B:{N:{L:{U:{y:{E:switch((b=255&U)-14|0){case 4:break L;case 3:break U;case 0:break y;case 14:break E;default:break N}if(re=re+2|0,U=32,!Me&(0|(o=u[0|o]))==1)break B;d[0|_]=36,PA(b=_+1|0,o=Pa(128960,o)),_=EA(o)+b|0;break B}b=u[re+2|0],U=u[0|o],e[Z+36>>2]=127&u[re+3|0],e[Z+32>>2]=4&b?80:83,dA(Z+48|0,85131,Z+32|0),1&b&&(o=EA(o=Z+48|0)+o|0,d[0|o]=101,d[o+1|0]=0),2&(o=127&b)&&(b=EA(b=Z+48|0)+b|0,d[0|b]=105,d[b+1|0]=0),4&o&&(b=EA(b=Z+48|0)+b|0,d[0|b]=112,d[b+1|0]=0),8&o&&(b=EA(b=Z+48|0)+b|0,d[0|b]=118,d[b+1|0]=0),16&o&&(b=EA(b=Z+48|0)+b|0,d[0|b]=100,d[b+1|0]=0),32&o&&(b=EA(b=Z+48|0)+b|0,d[0|b]=102,d[b+1|0]=0),o>>>0>=64&&(o=EA(o=Z+48|0)+o|0,d[0|o]=113,d[o+1|0]=0),1&U&&(o=EA(o=Z+48|0)+o|0,d[0|o]=116,d[o+1|0]=0),re=re+4|0,_=PA(_,o=Z+48|0)+EA(o)|0,U=32;break B}re=re+2|0,U=u[d[0|o]+93871|0];break B}o=d[0|o],d[0|_]=76,b=((o=o+((0|o)<65?191:-65)|0)>>>0)/10|0,d[_+1|0]=b+48,U=o-O(b,10)|48,(0|bA)==1&&(d[0|_]=U,U=76),re=re+2|0,_=_+2|0;break B}U=b>>>0<=31?u[b+93904|0]:(0|b)==32?95:U,re=o}if(d[0|_]=U,o=re+1|0,_=_+1|0,!((U=u[0|re])>>>0>=10))break}b=1;B:switch(0|U){case 1:b=r;case 8:d[0|_]=0,_=Z+80|0,r=b,bA=1;continue;case 2:d[0|_]=0,re=EA(b=Z+288|0)+b|0,_=u[84899]|u[84900]<<8,d[0|re]=_,d[re+1|0]=_>>>8,bA=2,d[re+2|0]=u[84901],_=EA(b)+b|0;continue;case 5:le=d[0|o],o=re+2|0;continue;case 9:gA=(u[0|o]+O(u[re+2|0],255)|0)-256|0,o=re+3|0;continue;case 0:case 3:break B;default:continue}break}if(d[0|_]=0,_=P,(0|gA)>0&&(e[Z+16>>2]=gA,dA(P,85581,Z+16|0),_=P+7|0),(0|le)>0&&(e[Z>>2]=le,dA(_,85694,Z),_=EA(_)+_|0),1&((0|(o=EA(Z+80|0)))>0|r)){1&r&&(d[0|_]=95,_=_+1|0);B:if(!((0|(re=o-1|0))<0|_>>>0>=P>>>0))for(;;){if(d[0|_]=u[(Z+80|0)+re|0],_=_+1|0,(0|re)<=0)break B;if(re=re-1|0,!(_>>>0<P>>>0))break}d[0|_]=41,d[_+1|0]=32,_=_+2|0}d[0|_]=0,d[(r=Z+288|0)+((P+3|0)-_|0)|0]=0,ts(_,r),(0|(r=EA(P)))<=
28967&&(Xe(r+P|0,32,8-r|0),r=8),d[r+P|0]=0,Y=Z+496|0,e[m+4>>2]=P,e[m>>2]=(0|s)>1?x+35|0:x,e[m+8>>2]=Ce,rr(Qe,89088,m)}r=W;break l}if(!u[0|_])break l;AA=(0|(b=AA+2|0))>=19?19:b,WA(m+264|0,_),b=hr(m+268|0,P=_-1|0),le=u[0|P],Qe=P;I:{B:{N:{L:{U:{y:switch(x-10|0){case 13:if(b=(0|(jA=u[0|r]))==(0|(x=u[0|_])),Me=-1,(0|x)==32|(0|x)==(0|jA))break L;if(x)break U;break N;case 7:r=Ce+2|0,W=e[m+268>>2],_=d[Ce+1|0];E:if(x=e[604+(((_=((0|_)<65?191:-65)+_|0)<<2)+A|0)>>2])x=!!(0|Tt(x,W));else{if((0|_)>7)break l;Q:{if((0|(x=e[A+600>>2]))>0){if((W=W-x|0)-1>>>0<255)break Q;break l}if((x=W-192|0)>>>0<=413){x=u[344+(u[x+94240|0]+A|0)|0]&1<<_;break E}if(W>>>0>255)break l}x=u[344+(A+W|0)|0]&1<<_}if(!x)break l;P=1+(P-b|0)|0,W=((0|_)==2?19:20)-AA|0;break I;case 8:if(r=Ce+2|0,b=d[Ce+1|0],!(b=e[4788+((((0|b)<65?191:-65)+b<<2)+A|0)>>2]))break l;E:{for(;;){if((0|(le=u[0|b]))==7)break l;if((0|le)==126){Me=0;break E}x=P;Q:{F:{if((0|(Ce=(Me=EA(b))-1|0))>0)for(x=_-Me|0,W=0,U=P;;){if(!u[0|(U=U-1|0)])break F;if((0|Ce)==(0|(W=W+1|0)))break}Ae:if(!((0|(W=u[0|x]))!=(0|le)|!W))for(;;){if((0|(le=u[0|(b=b+1|0)]))!=(0|(W=u[0|(x=x+1|0)])))break Ae;if(!W)break}if(!le)break Q}for(x=b;W=u[0|x],x=b=x+1|0,W;);continue}break}if((0|Me)<0)break l}W=20-Oe|0,P=1+(P-Me|0)|0;break I;case 15:x=e[m+268>>2];E:{Q:if(_=e[A+604>>2])_=!!(0|Tt(_,x));else{F:{if((0|(_=e[A+600>>2]))>0){if((x=x-_|0)-1>>>0<255)break F;break E}if((_=x-192|0)>>>0<=413){_=1&d[344+(u[_+94240|0]+A|0)|0];break Q}if(x>>>0>255)break E}_=1&d[344+(A+x|0)|0]}if(_)break l}W=20-AA|0,P=1+(P-b|0)|0;break I;case 1:if(e[m+268>>2]!=e[m+264>>2])break l;W=21-AA|0,P=1+(P-b|0)|0;break I;case 5:if(!((_=e[m+268>>2])-48>>>0<10|_-2406>>>0<10))break l;W=21-AA|0,P=1+(P-b|0)|0;break I;case 6:if(di(e[m+268>>2]))break l;W=21-Oe|0,P=1+(P-b|0)|0;break I;case 18:if(r=Ce+2|0,!((0|(x=u[Ce+1|0]))==3|(240&x)==32)||(LA(b=m+96|0,ir,P=1+(e[t>>2]+(zA+or|0)|0)|0),d[0|(b=b+P|0)]=32,d[b+1|0]=0,e[33265]=0,e[33266]=0,e[m+16>>2]=xr,ur(A,m+16|0,m+272|0,133060,0,0),W=23,!((0|x)!=3|(0|(U=e[33265]))>=0|16384&e[33266])))break n;if(b=re,P=_,U>>>(15&x)&16384)break b;break l;case 11:if(x=1,u[0|r]==21)for(;x=x+1|0,u[0|(r=r+1|0)]==21;);if(e[A+8208>>2]<(0|x))break l;W=18+(x-AA|0)|0;break I;case 0:if(W=19,b=re,P=_,e[A+8212>>2]>0)break b;break l;case 19:if(W=3,(0|(U=e[m+268>>2]))==32)break I;for(x=1+(P-b|0)|0;;){E:{Q:if(b=e[A+632>>2])b=!!(0|Tt(b,U));else{F:{if((0|(b=e[A+600>>2]))>0){if((U=U-b|0)-1>>>0<255)break F;break E}if((b=U-192|0)>>>0<=413){b=128&u[344+(u[b+94240|0]+A|0)|0];break Q}if(U>>>0>255)break E}b=128&u[344+(A+U|0)|0]}if(b)break l}if(x=x-hr(m+268|0,x-1|0)|0,(0|(U=e[m+268>>2]))==32)break}break I;case 16:if(W=1,b=re,P=_,e[A+8184>>2])break b;break l;case 9:if(W=1,b=re,P=_,ua)break b;break l;case 36:for(;;){if(W=50,b=re,!(_=(255&le)-32|0))break l;if((0|_)==14)break b;le=u[0|(Qe=Qe-1|0)]}case 35:break y;default:break B}y:{if(b=le-32|0){if((0|b)==13)break y;break l}if(!Js)break l}W=22-Oe|0;break I}U:{for(;;){Me=-1,U=_,_=_-1|0;y:if((0|jA)==18&&(b=d[Ce+2|0],W=e[4788+((((0|b)<65?191:-65)+b<<2)+A|0)>>2]))for(Mn=U+1|0;;){if((0|(Qe=u[0|W]))==7){Me=-1;break y}if((0|Qe)==126){Me=0;break y}x=U;E:{if((0|(Rr=(Me=EA(W))-1|0))>0)for(x=Mn-Me|0,le=0,b=U;;){if(!u[0|(b=b-1|0)])break E;if((0|Rr)==(0|(le=le+1|0)))break}Q:if(!((0|(b=u[0|x]))!=(0|Qe)|!b))for(;;){if((0|(Qe=u[0|(W=W+1|0)]))!=(0|(b=u[0|(x=x+1|0)])))break Q;if(!b)break}if(!Qe)break y}for(x=W;b=u[0|x],x=W=x+1|0,b;);}if(b=(0|(x=u[0|_]))==(0|jA),(0|x)==32|(0|x)==(0|jA))break U;if(!x){_=U;break N}if((0|Me)!=-1)break}_=U;break N}_=U}P=b?_:P}W=0,P=(0|Me)<0?P:_+1|0;break I}if((0|x)!=(0|le))break l;W=4,(0|x)!=32&&(W=(192&x)!=128?21-AA|0:0)}b=re;break b}if((0|x)!=(0|le))break l;U=(192&x)!=128?21-Oe|0:0;break u}if(W=1,Is)break l}Ve=W+Ve|0;continue}if(b=d[Ce+1|0],re=u[Ce+3|0],P=u[Ce+2|0],1&!(e[A+8208>>2]|4&P)&d[A+84|0])break l;r=Ce+4|0,U=0,re=127&re|(127&P)<<8|b<<16;break u}C:if(!(Qe>>>0<=(x=e[t>>2]+s|0)>>>0)){for(;;){if(u[0|x]!=101){if(b=x>>>0<Z>>>0,x=x+1|0,b)continue;break C}break}U=0,bA=x;break u}U=0;break u}W=-20;break n}if(le=0,(0|(x=e[m+268>>2]))!=32)for(U=Z+Me|0,W=0;;){if(!W){i:{p:if(P=e[A+632>>2])x=!!(0|Tt(P,x));else{C:{if((0|(P=e[A+600>>2]))>0){if((x=x-P|0)-1>>>0<255)break C;break i}if((P=x-192|0)>>>0<=413){x=128&u[344+(u[P+94240|0]+A|0)|0];break p}if(x>>>0>
vendor: 4,376 bytes, line 2896
2896255)break i}x=128&u[344+(A+x|0)|0]}x&&(le=le+1|0)}x=e[m+268>>2]}i:if(P=e[A+632>>2])W=!!(0|Tt(P,x));else{p:{if((0|(P=e[A+600>>2]))>0){if(W=0,(x=x-P|0)-1>>>0<255)break p;break i}if((P=x-192|0)>>>0<=413){W=128&u[344+(u[P+94240|0]+A|0)|0];break i}if(W=0,x>>>0>255)break i}W=128&u[344+(A+x|0)|0]}if(U=WA(m+268|0,U)+U|0,(0|(x=e[m+268>>2]))==32)break}if(!((0|b)>(0|le))){U=18+(b-Oe|0)|0;break u}}for(;b=u[0|r],r=o=r+1|0,b;);if(u[0|o]!=7)continue a;if(A=s+Kn|0,e[t>>2]=e[t>>2]+(A||1),Wt)break A;break r}b=re,Z=Qe,P=_,Ve=U+Ve|0;continue}Z=Z+Me|0,W=21-Oe|0;break n}Z=Z+Me|0,W=20-Oe|0}b=re,P=_,Ve=W+Ve|0}}Et=86135}e[l+12>>2]=wn,e[l+8>>2]=kn,e[l+4>>2]=Et,e[l>>2]=Wt}Y=m+384|0}function JA(A,t){var r,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0,rt=0,Et=0,Ot=0,Wt=0;Y=r=Y-1168|0,e[r+928>>2]=0,e[r+932>>2]=0,e[r+920>>2]=0,e[r+924>>2]=0,e[r+912>>2]=0,e[r+916>>2]=0,e[r+904>>2]=0,e[r+908>>2]=0,e[r+896>>2]=0,e[r+900>>2]=0;e:{A:{if(A){if(u[0|A]|8&t)break A;break e}if(!(8&t))break e}if(Vt(r+1088|0,A,40),16&t){if((0|Ns(PA(r+704|0,A)))<=0)break e;U=8&t}else(U=8&t)|u[r+1088|0]||(w[r+1088>>1]=u[85055]|u[85056]<<8,d[r+1090|0]=u[85057]),e[r+496>>2]=137584,e[r+500>>2]=47,e[r+504>>2]=47,dA(s=r+512|0,85286,r+496|0),e[r+484>>2]=r+1088,e[r+480>>2]=s,dA(s=r+704|0,85425,r+480|0),(0|Ns(s))>0||(e[r+468>>2]=47,e[r+472>>2]=47,e[r+464>>2]=137584,dA(s=r+512|0,85648,r+464|0),e[r+452>>2]=r+1088,e[r+448>>2]=s,dA(r+704|0,85425,r+448|0));if(o=U?86012:85055,!(Z=fs(r+704|0,85712))){if(s=0,3&t)break e;o=(0|Ka(s=r+1088|0))<0?o:s}if((W=2&t)||(s=e[47192])&&(Io(s),e[47192]=0),Ce=PA(r+992|0,o),le=PA(r+944|0,o),W?((s=Ls(200992,43))&&(d[0|s]=0),e[r+432>>2]=A+3,dA(A=r+704|0,86030,r+432|0),ts(200992,A)):(e[32972]=199592,Vt(200992,A,40),d[201088]=0,d[201040]=0,e[50299]=200992,e[50298]=201088,e[50297]=201040),eA(W),Z){for(Qe=e[30450],Oe=r+548|0,Ve=r+544|0,AA=r+540|0,gA=r+536|0,bA=r+532|0,zA=r+528|0,jA=12|(A=r+512|0),rt=8|A,Et=4|A;it(r+704|0,190,Z);){A=r+704|0;A:{if(u[r+704|0]!=35){r:if(!((0|(A=EA(r+704|0)-1|0))<=0))for(;;){if(!((0|(o=d[0|(s=(r+704|0)+A|0)]))==32|o-9>>>0<5))break r;if(d[0|s]=0,!((0|(A=A-1|0))>0))break}if(!(A=ke(r+704|0)))break A}d[0|A]=0}A=r+704|0;A:if(s=u[r+704|0])for(;;){if((0|(s=s<<24>>24))==32|s-9>>>0<5)break A;if(!(s=u[0|(A=A+1|0)]))break}if(d[0|A]=0,u[r+704|0])if(A=A+1|0,s=bt(129744,r+704|0)){l=0,Y=o=Y-416|0;A:if(c=e[47192]){r:switch(s-19|0){case 16:if(e[o+32>>2]=o+412,(0|RA(A,84249,o+32|0))!=1)break A;e[c+324>>2]=e[o+412>>2];break A;case 8:Fn(A,c+320|0,27);break A;case 2:if(e[o+48>>2]=188784,RA(A,84249,o+48|0),!(A=u[188784]))break A;e[c+152>>2]=A;break A;case 11:if(u[0|A]){for(f=e[30450];;)if(s=A,A=A+1|0,!((0|(l=d[0|s]))==32|l-9>>>0<5)){for(l=ka(s),e[o+412>>2]=l,(0|l)>0&&(l>>>0<=31?e[c+104>>2]=e[c+104>>2]|1<<l:l>>>0<=63?e[c+108>>2]=e[c+108>>2]|1<<l-32:(e[o+64>>2]=l,rr(f,84700,o- -64|0)),s=A);s=(A=s)+1|0,(l=d[0|A])-48>>>0<10|(32|l)-97>>>0<26;);if(!l)break}}8&(A=e[c+104>>2])&&(e[c+124>>2]=46,e[c+128>>2]=44),4&A&&(e[c+124>>2]=0);break A;default:if((65280&s)!=256)break A;e[o+16>>2]=24+(c+((255&s)<<2)|0),RA(A,84249,o+16|0);break A;case 1:e[o+144>>2]=c,e[o+148>>2]=c+4,RA(A,85642,o+144|0);break A;case 3:if(s=0,Xe(l=o+160|0,0,240),e[o+132>>2]=o+360,e[o+128>>2]=o+320,e[o+124>>2]=o+280,e[o+120>>2]=o+240,e[o+116>>2]=o+200,e[o+112>>2]=l,l=RA(A,85037,o+112|0),e[o+412>>2]=l,e[c+152>>2]=0,(0|l)<=0)break A;for(b=e[30450];;){a:if(nr(f=(o+160|0)+O(s,40)|0,85301)){n:{if((0|(I=e[34454]))>0)for(_=e[34455],A=0;;){if(!nr(f,_+O(A,68)|0))break n;if((0|I)==(0|(A=A+1|0)))break}e[o+96>>2]=f,rr(b,85562,o+96|0),l=e[o+412>>2];break a}d[156+(s+c|0)|0]=A}if(!((0|l)>(0|(s=s+1|0))))break}break A;case 9:e[o+88>>2]=c+20,e[o+84>>2]=c+16,e[o+80>>2]=c+8,RA(A,84778,o+80|0);break A;case 10:Fn(A,c+12|0,29);break A;case 5:if((0|(b=cn(A,o+160|0)))<=0)break A;if(s=0,A=0,b>>>0>=4)for(_=-4&b,f=c+304|0;I=o+160|0,w[f+(A<<1)>>1]=e[I+(A<<2)>>2],w[f+((m=1|A)<<1)>>1]=e[I+(m<<2)>>2],w[f+((m=2|A)<<1)>>1]=e[I+(m<<2)>>2],w[f+((m=3|A)<<1)>>1]=e[I+(m<<2)>>2],A=A+4|0,(0|_)!=(0|(l=l+4|0)););if(!(l=3&b))break A;for(;w[304+(c+(A<<1)|0)>>1]=e[(o+160|0)+(A<<2)>>2],A=A+1|0,(0|l)!=(0|(s=s+1|0)););break A;case 6:if((0|(b=cn(A,o+160|0)))<=0)break A;if(s=0,A=0,b>>>0>=4)for(_=-4&b,f=c+296|0;I=o+160|0,d[A+f|0]=e[I+(A<<2)>>2],d[(m=1|A)+f|0]=e[I+(m<<2)>>2],d[(m=2|A)+f|0]=e[I+(m<<2)>>2],d[(m=3|A)+f|0]=e[I+(m<<2)>>2],A=A+4|0,(0|_)!=(0|(l=l+4|0)););
vendor: 7,703 bytes, line 2896
2896if(!(l=3&b))break A;for(;d[296+(A+c|0)|0]=e[(o+160|0)+(A<<2)>>2],A=A+1|0,(0|l)!=(0|(s=s+1|0)););break A;case 7:if((0|(b=cn(A,o+160|0)))<=0)break A;if(s=0,A=0,b>>>0>=4)for(_=-4&b,f=c+304|0;m=I=f+(A<<1)|0,x=y[I>>1],I=o+160|0,w[m>>1]=x+y[I+(A<<2)>>1],w[(x=f+((m=1|A)<<1)|0)>>1]=y[x>>1]+y[I+(m<<2)>>1],w[(x=f+((m=2|A)<<1)|0)>>1]=y[x>>1]+y[I+(m<<2)>>1],w[(x=f+((m=3|A)<<1)|0)>>1]=y[x>>1]+y[I+(m<<2)>>1],A=A+4|0,(0|_)!=(0|(l=l+4|0)););if(!(l=3&b))break A;for(;w[(f=c+(A<<1)|0)+304>>1]=y[f+304>>1]+y[(o+160|0)+(A<<2)>>1],A=A+1|0,(0|l)!=(0|(s=s+1|0)););break A;case 4:d[c+169|0]=1;break A;case 0:break r}d[c+208|0]=1}else e[o>>2]=Pa(129568,s),rr(e[30450],89101,o);Y=o+416|0}else{A:switch(bt(131904,r+704|0)-1|0){case 1:if(W||(d[r+1040|0]=0,e[r+512>>2]=5,e[r+32>>2]=r+1040,e[r+36>>2]=r+512,RA(A,86237,r+32|0),e[r+1040>>2]==1769103734&e[r+1044>>2]==7630433))continue;if((A=EA(r+1040|0)+2|0)>>>0<99-re>>>0&&(d[0|(s=re+201088|0)]=e[r+512>>2],PA(s+1|0,r+1040|0),re=A+re|0),!Ot){if(A=0,(s=f=r+1040|0)||(s=e[57150])){if(A=86875,e[(o=Y-32|0)+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[o>>2]=0,e[o+4>>2]=0,c=0,l=u[86875])if(u[86876]){for(;e[(c=o+(l>>>3&28)|0)>>2]=e[c>>2]|1<<l,l=u[A+1|0],A=A+1|0,l;);r:if(l=u[0|(A=s)])for(;;){if(!(e[o+(l>>>3&28)>>2]>>>l&1))break r;if(l=u[A+1|0],A=A+1|0,!l)break}c=A-s|0}else{for(A=s;o=A,A=A+1|0,u[0|o]==(0|l););c=o-s|0}if(u[0|(A=c+s|0)]){s=86875,Y=l=Y-32|0,o=d[86875];r:if(u[86876]&&o){if(Xe(l,0,32),o=u[86875])for(;e[(c=l+(o>>>3&28)|0)>>2]=e[c>>2]|1<<o,o=u[s+1|0],s=s+1|0,o;);if(s=A,o=u[0|A])for(;;){if(e[l+(o>>>3&28)>>2]>>>o&1)break r;if(o=u[s+1|0],s=s+1|0,!o)break}}else s=Pn(A,o);Y=l+32|0,u[0|(s=(s-A|0)+A|0)]?(e[57150]=s+1,d[0|s]=0):e[57150]=0}else e[57150]=0,A=0}s=PA(Ce,A),PA(le,A),Ka(PA(r+896|0,A)),e[47192]=DA(s),Vt(e[32972]+40|0,f,20)}Ot=1;continue;case 0:if(W)continue;for(;s=A,A=A+1|0,(0|(o=d[0|s]))==32|o-9>>>0<5;);Vt(201040,s,40);continue;case 2:e[r+1152>>2]=0,s=r+512|0,e[r+48>>2]=s,e[r+52>>2]=r+1152,RA(A,86237,r+48|0),d[201200]=bt(132112,s),d[201201]=e[r+1152>>2];continue;case 4:e[r+64>>2]=le,RA(A,86939,r- -64|0);continue;case 3:e[r+80>>2]=r+896,RA(A,86939,r+80|0);continue;case 8:if(e[r+1152>>2]=100,e[r+1164>>2]=100,e[r+1148>>2]=100,e[r+112>>2]=r+1144,e[r+1144>>2]=0,e[r+96>>2]=r+512,e[r+100>>2]=r+1152,e[r+104>>2]=r+1164,e[r+108>>2]=r+1148,(0|RA(A,91156,r+96|0))<2||(A=e[r+512>>2])>>>0>8||((0|(s=e[r+1152>>2]))>=0&&(o=e[32972]+(A<<1)|0,s=se(P=2.56001*+(0|s))<2147483648?~~P:-2147483648,w[o+236>>1]=s,w[o+164>>1]=s),(0|(s=e[r+1164>>2]))>=0&&(o=e[32972]+(A<<1)|0,s=se(P=2.56001*+(0|s))<2147483648?~~P:-2147483648,w[o+254>>1]=s,w[o+182>>1]=s),(0|(o=e[r+1148>>2]))<0?s=e[32972]:(f=(s=e[32972])+(A<<1)|0,o=se(P=2.56001*+(0|o))<2147483648?~~P:-2147483648,w[f+200>>1]=o),w[218+((A<<1)+s|0)>>1]=e[r+1144>>2],A))continue;w[s+200>>1]=(0|O(w[s+200>>1],105))/100;continue;case 9:if(e[r+132>>2]=r+696,e[r+128>>2]=r+700,(0|RA(A,87106,r+128|0))!=2)continue;if(A=e[32972],s=e[r+700>>2],e[A+64>>2]=(s<<12)-36864,e[A+68>>2]=O(e[r+696>>2]-s|0,108),se(P=256*(+(s-82|0)/82*.25+1))<2147483648){e[A+116>>2]=~~P;continue}e[A+116>>2]=-2147483648;continue;case 35:Wt||Ka(r+896|0),e[r+1164>>2]=0,d[r+1156|0]=u[91267],e[r+1152>>2]=u[91263]|u[91264]<<8|u[91265]<<16|u[91266]<<24,e[r+144>>2]=r+1164,e[r+148>>2]=r+512,e[r+152>>2]=r+1152,(0|RA(A,91302,r+144|0))<2|e[49848]>59||(A=Ha(r+512|0))&&(d[O(e[49848],3)+199408|0]=A,A=Ha(r+1152|0),s=e[49848],o=O(s,3)+199408|0,d[o+1|0]=A,e[49848]=s+1,d[o+2|0]=e[r+1164>>2]),Wt=1;continue;case 10:e[r+1140>>2]=0,s=e[32972],e[s+100>>2]=0,e[r+164>>2]=s+100,e[r+160>>2]=s+96,RA(A,87106,r+160|0);continue;case 11:if(e[r+176>>2]=r+1140,(0|RA(A,87268,r+176|0))!=1)continue;e[e[32972]+88>>2]=e[r+1140>>2]<<5;continue;case 12:if(e[r+192>>2]=r+1140,(0|RA(A,87268,r+192|0))!=1)continue;e[e[32972]+92>>2]=e[r+1140>>2];continue;case 13:if(e[r+208>>2]=r+1140,(0|RA(A,87268,r+208|0))!=1)continue;s=e[32972],(0|(A=e[r+1140>>2]))>=5&&(e[s+108>>2]=1,e[r+1140>>2]=4,A=4),e[s+104>>2]=A+1;continue;case 14:for(e[r+552>>2]=-1,e[r+556>>2]=-1,e[r+544>>2]=-1,e[r+548>>2]=-1,e[r+536>>2]=-1,e[r+540>>2]=-1,e[r+528>>2]=-1,e[r+532>>2]=-1,e[r+240>>2]=zA,e[r+244>>2]=bA,e[r+248>>2]=gA,e[r+252>>2]=AA,e[r+256>>2]=Ve,e[r+260>>2]=Oe,e[r+520>>2]=-1,e[r+524>>2]=-1,e[r+512>>2]=-1,e[r+516>>2]=-1,e[r+228>>2]=Et,e[r+232>>2]=rt,e[r+236>>2]=jA,e[r+224>>2]=r+512,RA(A,84222,r+224|0),_=e[32972],A=0,l=e[r+516>>2],o=0;;){if(s=o,c=l,f=A,(0|(o=e[(l=(A<<=2)+(r+512|0)|0)>>2]))==-1&&(o=8e3,e[l>>2]=8e3,f&&(e[(r+512|0)+(4|A)>>2]=e[508+(A+r|0)>>2])),l=e[(r+512|0)+(4|A)>>2],!((0|s)>=(0|(o=(0|o)/8|0))||(0|(I=o-s|0))<=0||(b=s+1|0,A=s,1&I&&(d[344+(s+_|0)|0]=(0|c)>=255?255:c,A=b),(0|o)==(0|b))))for(b=l-c|0;x=_+344|0,m=c+((0|O(b,A-s|0))/(0|I)|0)|0,d[x+A|0]=(0|m)>=255?255:m,m=c+((0|O(b,(Me=A+1|0)-s|0))/(0|I)|0)|0,d[x+Me|0]=(0|m)>=255?255:m,(0|o)!=(0|(A=A+2|0)););if(A=f+2|0,!(f>>>0<10))break}continue;case 15:if(e[r+272>>2]=r+1140,(0|RA(A,87268,r+272|0))!=1)continue;e[e[32972]+112>>2]=(e[r+1140>>2]<<6)/100;continue;case 16:s=e[32972],e[(o=s+300|0)>>2]=0,e[o+4>>2]=0,e[(l=s+292|0)>>2]=0,e[l+4>>2]=0,e[(c=s+284|0)>>2]=0,e[c+4>>2]=0,e[(f=s+276|0)>>2]=0,e[f+4>>2]=0,e[r+316>>2]=s+304,e[r+312>>2]=o,e[r+308>>2]=s+296,e[r+304>>2]=l,e[r+300>>2]=s+288,e[r+296>>2]=c,e[r+292>>2]=s+280,e[r+288>>2]=f,s=RA(A,84553,r+288|0),A=e[32972],e[A+272>>2]=s,e[A+276>>2]=0-e[A+276>>2],e[A+284>>2]=0-e[A+284>>2],e[A+292>>2]=0-e[A+292>>2],e[A+300>>2]=0-e[A+300>>2];continue;case 17:s=e[32972],e[(o=s+336|0)>>2]=0,e[o+4>>2]=0,e[(l=s+328|0)>>2]=0,e[l+4>>2]=0,e[(c=s+320|0)>>2]=0,e[c+4>>2]=0,e[(f=s+312|0)>>2]=0,e[f+4>>2]=0,e[r+348>>2]=s+340,e[r+344>>2]=o,e[r+340>>2]=s+332,e[r+336>>2]=l,e[r+332>>2]=s+324,e[r+328>>2]=c,e[r+324>>2]=s+316,e[r+320>>2]=f,A=RA(A,84553,r+320|0),e[e[32972]+308>>2]=A;continue;case 36:s=e[32972],e[r+352>>2]=s+120,e[r+356>>2]=s+124,e[r+1140>>2]=RA(A,87106,r+352|0);continue;case 33:e[r+368>>2]=e[32972]+84,RA(A,87268,r+368|0),ks(3);continue;case 31:s=e[32972],e[(o=s+156|0)>>2]=0,e[o+4>>2]=0,e[(l=s+148|0)>>2]=0,e[l+4>>2]=0,e[(c=s+140|0)>>2]=0,e[c+4>>2]=0,e[(f=s+132|0)>>2]=0,e[f+4>>2]=0,e[r+412>>2]=s+160,e[r+408>>2]=o,e[r+404>>2]=s+152,e[r+400>>2]=l,e[r+396>>2]=s+144,e[r+392>>2]=c,e[r+388>>2]=s+136,e[r+384>>2]=f,RA(A,84553,r+384|0),A=e[32972],e[A+152>>2]=e[A+152>>2]-40;continue;case 32:e[r+416>>2]=145740,RA(A,87268,r+416|0),ks(3);continue;case 6:case 7:continue;default:break A}e[r+16>>2]=r+704,rr(Qe,87359,r+16|0)}}Or(Z)}A:{if((A=e[47192])|W){if(W)break A}else A=DA(Ce),e[47192]=A;r:{if(!U){if((0|(A=Ka(r+896|0)))<0&&(e[r>>2]=r+896,rr(e[30450],87567,r),A=0),e[e[32972]+60>>2]=A,s=e[47192],e[s+292>>2]=A,FA(s,le,4&t),u[132848])break r;Io(e[47192]),s=0;break e}e[e[32972]+60>>2]=0,e[A+292>>2]=0}d[re+201088|0]=0}s=e[32972]}return Y=r+1168|0,s}function RA(A,t,r){var s,o,l,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0;Y=l=Y-16|0,e[l+12>>2]=r,Y=c=Y-144|0,s=Xe(c,0,144),e[s+76>>2]=-1,e[s+44>>2]=A,e[s+32>>2]=18,e[s+84>>2]=A,c=t,Oe=r,A=0,Y=o=Y-304|0;e:{A:{r:if(e[s+4>>2]||(fn(s),e[s+4>>2])){if(!(t=u[0|c]))break e;a:{n:{o:{c:{for(;;){u:{l:if((0|(t&=255))==32|t-9>>>0<5){for(;t=c,c=c+1|0,(0|(r=u[t+1|0]))==32|r-9>>>0<5;);for(Ps(s,0,0);(0|(r=e[s+4>>2]))==e[s+104>>2]?r=he(s):(e[s+4>>2]=r+1,r=u[0|r]),(0|r)==32|r-9>>>0<5;);c=e[s+4>>2],(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(c=c-1|0,e[s+4>>2]=c),c=r=c-e[s+44>>2]|0,b=re+e[s+124>>2]|0,b=(f=r>>31)+((r=W+e[s+120>>2]|0)>>>0<W>>>0?b+1|0:b)|0,re=(W=r+c|0)>>>0<r>>>0?b+1|0:b}else{i:{p:{C:{if(u[0|c]==37){if((0|(t=u[c+1|0]))==42)break C;if((0|t)!=37)break p}if(Ps(s,0,0),u[0|c]!=37)(0|(t=e[s+4>>2]))==e[s+104>>2]?t=he(s):(e[s+4>>2]=t+1,t=u[0|t]);else{for(;(0|(t=e[s+4>>2]))==e[s+104>>2]?t=he(s):(e[s+4>>2]=t+1,t=u[0|t]),(0|t)==32|t-9>>>0<5;);c=c+1|0}if(u[0|c]!=(0|t)){if((0|(r=e[s+116>>2]))>0|(0|r)>
2896=0&&(e[s+4>>2]=e[s+4>>2]-1),(0|t)>=0||(m=0,Ve))break e;break r}I=(f=t=e[s+4>>2]-e[s+44>>2]|0)>>31,t=re+e[s+124>>2]|0,m=((r=W+e[s+120>>2]|0)>>>0<W>>>0?t+1|0:t)+I|0,re=(W=r+f|0)>>>0<r>>>0?m+1|0:m,t=c;break l}x=0,t=c+2|0;break i}u[c+2|0]!=36|t-48>>>0>=10?(x=e[Oe>>2],Oe=Oe+4|0,t=c+1|0):(t=u[c+1|0]-48|0,e[(r=Y-16|0)+12>>2]=Oe,t=(t>>>0>1?(t<<2)-4|0:0)+Oe|0,e[r+8>>2]=t+4,x=e[t>>2],t=c+3|0)}if(P=0,c=0,u[0|t]-48>>>0<10)for(;c=(u[0|t]+O(c,10)|0)-48|0,r=u[t+1|0],t=t+1|0,r-48>>>0<10;);(0|(U=u[0|t]))==109&&(_=0,P=!!(0|x),U=u[t+1|0],A=0,t=t+1|0),t=(r=t)+1|0,f=3,m=P;i:{p:switch(U-65|0){case 39:f=r+2|0,t=(r=u[r+1|0]==104)?f:t,f=r?-2:-1;break i;case 43:f=r+2|0,t=(r=u[r+1|0]==108)?f:t,f=r?3:1;break i;case 51:case 57:f=1;break i;case 11:f=2;break i;case 41:break i;case 0:case 2:case 4:case 5:case 6:case 18:case 23:case 26:case 32:case 34:case 35:case 36:case 37:case 38:case 40:case 45:case 46:case 47:case 50:case 52:case 55:break p;default:break a}f=0,t=r}m=f,Me=(f=(47&(r=u[0|t]))==3)?1:m;i:if((0|(Ce=f?32|r:r))!=91){p:{if((0|Ce)!=110){if((0|Ce)!=99)break p;c=(0|c)<=1?1:c;break i}jn(x,Me,W,re);break l}for(Ps(s,0,0);(0|(r=e[s+4>>2]))==e[s+104>>2]?r=he(s):(e[s+4>>2]=r+1,r=u[0|r]),(0|r)==32|r-9>>>0<5;);r=e[s+4>>2],(0|(f=e[s+116>>2]))>0|(0|f)>=0&&(r=r-1|0,e[s+4>>2]=r),f=r=r-e[s+44>>2]|0,b=re+e[s+124>>2]|0,re=(m=r>>31)+((r=W+e[s+120>>2]|0)>>>0<W>>>0?b+1|0:b)|0,re=(W=r+f|0)>>>0<r>>>0?re+1|0:re}if(Z=c,Ps(s,c,le=c>>31),(0|(r=e[s+4>>2]))==e[s+104>>2]){if((0|he(s))<0)break n}else e[s+4>>2]=r+1;(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),r=16;i:{p:{C:{h:{b:switch(Ce-88|0){default:if((r=Ce-65|0)>>>0>6|!(1<<r&113))break i;case 9:case 13:case 14:case 15:if(BA(o+8|0,s,Me,0),r=e[s+4>>2]-e[s+44>>2]|0,e[s+120>>2]!=(0-r|0)|e[s+124>>2]!=(0-((r>>31)+!!(0|r)|0)|0))break C;break o;case 3:case 11:case 27:if((16|Ce)==115){if(Xe(o+32|0,-1,257),d[o+32|0]=0,(0|Ce)!=115)break p;d[o+65|0]=0,d[o+46|0]=0,w[o+42>>1]=0,w[o+44>>1]=0;break p}Xe(o+32|0,I=(0|(f=u[t+1|0]))==94,257),d[o+32|0]=0,r=I?t+2|0:t+1|0;m:{x:{I:{if((0|(t=u[(I?2:1)+t|0]))!=45){if((0|t)==93)break I;f=(0|f)!=94,t=r;break m}f=(0|f)!=94,d[o+78|0]=f;break x}f=(0|f)!=94,d[o+126|0]=f}t=r+1|0}for(;;){if((0|(r=u[0|t]))==45){if(r=45,!(!(I=u[t+1|0])|(0|I)==93)){if(m=t+1|0,I>>>0<=(t=u[t-1|0])>>>0)r=I;else for(;d[(t=t+1|0)+(o+32|0)|0]=f,(r=u[0|m])>>>0>t>>>0;);t=m}}else{if(!r)break n;if((0|r)==93)break p}d[33+(r+o|0)|0]=f,t=t+1|0}case 23:r=8;break h;case 12:case 29:r=10;break h;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 22:case 25:case 26:case 28:case 30:case 31:break i;case 0:case 24:case 32:break h;case 17:break b}r=0}I=0,b=0,f=0,m=0,U=0,Y=Qe=Y-16|0;h:if((0|r)!=1&r>>>0<=36){for(;(0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c]),(0|c)==32|c-9>>>0<5;);b:{m:switch(c-43|0){case 0:case 2:break m;default:break b}U=(0|c)==45?-1:0,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c])}b:{m:{x:{I:{if(!(!!(0|r)&(0|r)!=16|(0|c)!=48)){if((0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c]),(-33&c)==88){if(r=16,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c]),u[c+121329|0]<16)break x;(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),Ps(s,0,0);break h}if(r)break I;r=8;break x}if(!((r=r||10)>>>0>u[c+121329|0])){(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),Ps(s,0,0),e[56798]=28;break h}}if((0|r)==10){if((f=c-48|0)>>>0<=9){for(r=0;m=(r=O(r,10)+f|0)>>>0<429496729,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c]),m&(f=c-48|0)>>>0<=9;);I=r}I:if(!(f>>>0>9)){for(r=at(I,0,10,0),m=ce;;){if(b=m,m=(0|(b=(I=r+f|0)>>>0<f>>>0?b+1|0:b))==429496729&I>>>0>=2576980378|b>>>0>429496729,(0|(r=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=r+1,c=u[0|r]),m|(f=c-48|0)>>>0>9)break I;if(r=at(I,b,10,0),!((0|(m=ce))==-1&~f>>>0>=r>>>0|(0|m)!=-1))break}r=10;break m}if(r=10,f>>>0<=9)break m;break b}}if(r-1&r){if((m=u[c+121329|0])>>>0<r>>>0){for(;I=(f=O(r,f)+m|0)>>>0<119304647,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c]),I&(m=u[c+121329|0])>>>0<r>>>0;);I=f}if(r>>>0<=m>>>0)break m;for(;;){if(f=at(I,b,r,0),(0|(Z=ce))==-1&~(m&=255)>>>0<f>>>0||(b=Z,b=(I=f+m|0)>>>0<m>>>0?b+1|0:b,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c]),r>>>0<=(m=u[c+121329|0])>>>0))break m;if(Nr(Qe,r,0,0,0,I,b,0,0),e[Qe+8>>2]|e[Qe+12>>2])break}}else{if(Z=d[84400+(O(r,23)>>>5&7)|0],(f=u[c+121329|0])>>>0<r>>>0){for(;I=(m=m<<Z|f)>>>0<134217728,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c]),I&(f=u[c+121329|0])>>>0<r>>>0;);I=m}if(!(r>>>0<=f>>>0||(le=31&Z,(63&Z)>>>0>=32?(m=0,le=-1>>>le|0):le=(m=-1>>>le|0)|(1<<le)-1<<32-le,!m&I>>>0>le>>>0)))for(;;){if(AA=255&f,f=I,c=31&Z,(63&Z)>>>0>=32?(b=f<<c,c=0):(b=(1<<c)-1&f>>>32-c|b<<c,c=f<<c),I=AA|c,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c]),r>>>0<=(f=u[c+121329|0])>>>0)break m;if(!((0|m)==(0|b)&I>>>0<=le>>>0|m>>>0>b>>>0))break}}}if(!(u[c+121329|0]>=r>>>0)){for(;(0|(c=e[s+4>>2]))==e[s+104>>2]?c=he(s):(e[s+4>>2]=c+1,c=u[0|c]),u[c+121329|0]<r>>>0;);e[56798]=68,U=0,I=-1,b=-1}}(0|(r=e[s+116>>2]))>0|(0|r)>
vendor: 12,424 bytes, line 2896
2896=0&&(e[s+4>>2]=e[s+4>>2]-1),I=(r=I^U)-U|0,b=((c=U>>31)^b)-((r>>>0<U>>>0)+c|0)|0}else e[56798]=28;if(Y=Qe+16|0,r=e[s+4>>2]-e[s+44>>2]|0,e[s+120>>2]==(0-r|0)&e[s+124>>2]==(0-((r>>31)+!!(0|r)|0)|0))break o;if(!(!x|(0|Ce)!=112)){e[x>>2]=I;break i}jn(x,Me,I,b);break i}if(!x)break i;c=e[o+16>>2],r=e[o+20>>2],f=e[o+8>>2],P=e[o+12>>2];C:switch(0|Me){case 0:Y=b=Y-32|0;h:if(0|(m=(I=2147483647&r)-1065418752|0)>>>0<(Z=I-1082064896|0)>>>0){if(I=(33554431&r)<<7|c>>>25,Z=m=0,!(!m&(0|(c&=33554431))==16777216?!(f|P):!m&c>>>0<16777216)){m=I+1073741825|0;break h}if(m=I+1073741824|0,16777216^c|f|P|Z)break h;m=(1&I)+m|0}else(!c&(0|I)==2147418112?!(f|P):I>>>0<2147418112)?(m=2139095040,I>>>0>1082064895||(m=0,(I=I>>>16|0)>>>0<16145||(Mt(b+16|0,f,P,c,m=65535&r|65536,I-16129|0),vr(b,f,P,c,m,16257-I|0),c=e[b+8>>2],m=(33554431&e[b+12>>2])<<7|c>>>25,I=e[b>>2]|!!(e[b+16>>2]|e[b+24>>2]|e[b+20>>2]|e[b+28>>2]),P=e[b+4>>2],(!(f=0)&(0|(c&=33554431))==16777216?!(I|P):!f&c>>>0<16777216)?16777216^c|I|f|P||(m=(1&m)+m|0):m=m+1|0))):m=4194303&((33554431&r)<<7|c>>>25)|2143289344;Y=b+32|0,e[x>>2]=-2147483648&r|m;break i;case 1:T[x>>3]=Ys(f,P,c,r);break i;case 2:break C;default:break i}e[x>>2]=f,e[x+4>>2]=P,e[x+8>>2]=c,e[x+12>>2]=r;break i}f=(Qe=(0|Ce)!=99)?31:c+1|0;p:if((0|Me)!=1){if(P){if(c=0,!(r=ZA(f)))break c;for(;;){for(A=r;;){if((0|(r=e[s+4>>2]))==e[s+104>>2]?r=he(s):(e[s+4>>2]=r+1,r=u[0|r]),!u[33+(r+o|0)|0]){f=0,_=A;break p}if(d[A+c|0]=r,(0|f)==(0|(c=c+1|0)))break}if(m=1,!(r=OA(A,f=f<<1|1)))break}_=A,A=0;break a}if(c=0,x)for(;;){if((0|(A=e[s+4>>2]))==e[s+104>>2]?A=he(s):(e[s+4>>2]=A+1,A=u[0|A]),!u[33+(A+o|0)|0]){f=0,_=A=x;break p}d[c+x|0]=A,c=c+1|0}for(;(0|(A=e[s+4>>2]))==e[s+104>>2]?A=he(s):(e[s+4>>2]=A+1,A=u[0|A]),u[33+(A+o|0)|0];);A=0,_=0,f=0}else{if(r=x,P&&!(r=ZA(f<<2)))break c;for(e[o+296>>2]=0,e[o+300>>2]=0,c=0;;){A=r;C:{for(;;){if((0|(r=e[s+4>>2]))==e[s+104>>2]?r=he(s):(e[s+4>>2]=r+1,r=u[0|r]),!u[33+(r+o|0)|0])break C;d[o+27|0]=r,I=o+28|0,r=e[(m=(r=o+296|0)||228604)>>2];h:{b:{m:{x:{if(!(_=o+27|0)){if(r)break x;r=0;break h}if(!r){if((0|(b=(r=u[0|_])<<24>>24))>=0){I&&(e[I>>2]=r),r=!!(0|b);break h}if(!e[e[56841]>>2]){if(r=1,!I)break m;e[I>>2]=57343&b,r=1;break h}if((r=r-194|0)>>>0>50)break x;r=e[124752+(r<<2)>>2];break b}if(U=1,!(((Me=(b=u[0|_])>>>3|0)-16|(r>>26)+Me)>>>0>7))for(;;){if(U=U-1|0,(0|(r=b-128|r<<6))>=0){e[m>>2]=0,I&&(e[I>>2]=r),r=1-U|0;break h}if(!U)break b;if((192&(b=u[0|(_=_+1|0)]))!=128)break}}e[m>>2]=0,e[56798]=25,r=-1}break h}e[m>>2]=r,r=-2}if((0|r)!=-2){if(_=0,(0|r)==-1)break n;if(A&&(e[(c<<2)+A>>2]=e[o+28>>2],c=c+1|0),!(!P|(0|c)!=(0|f)))break}}if(m=1,r=OA(A,(f=f<<1|1)<<2))continue;break a}break}if(_=0,f=A,o+296|0&&e[o+296>>2])break n}if(r=e[s+4>>2],(0|(I=e[s+116>>2]))>0|(0|I)>=0&&(r=r-1|0,e[s+4>>2]=r),r=(I=r-e[s+44>>2]|0)+e[s+120>>2]|0,b=e[s+124>>2]+(I>>31)|0,!((b=r>>>0<I>>>0?b+1|0:b)|r)|!(Qe|(0|r)==(0|Z)&(0|b)==(0|le)))break u;P&&(e[x>>2]=A),(0|Ce)!=99&&(f&&(e[(c<<2)+f>>2]=0),_?d[c+_|0]=0:_=0),A=f}c=r=e[s+4>>2]-e[s+44>>2]|0,m=re+e[s+124>>2]|0,re=(f=r>>31)+((r=W+e[s+120>>2]|0)>>>0<W>>>0?m+1|0:m)|0,re=(W=r+c|0)>>>0<r>>>0?re+1|0:re,Ve=!!(0|x)+Ve|0}if(c=t+1|0,t=u[t+1|0])continue;break e}break}A=f;break o}m=1,_=0,A=0;break a}m=P;break A}m=P}if(Ve)break A}Ve=-1}m&&(ue(_),ue(A))}return Y=o+304|0,Y=s+144|0,Y=l+16|0,Ve}function ZA(A){var t,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0;Y=t=Y-16|0;e:{A:{r:{a:{n:{o:{c:{u:{l:{if((A|=0)>>>0<=244){if(3&(r=(f=e[57152])>>>(s=(m=A>>>0<11?16:A+11&-8)>>>3|0)|0)){r=(A=(s=s+(1&~r)|0)<<3)+228648|0,o=e[A+228656>>2],(0|r)!=(0|(A=e[o+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):e[57152]=As(-2,s)&f,A=o+8|0,r=s<<3,e[o+4>>2]=3|r,e[(r=r+o|0)+4>>2]=1|e[r+4>>2];break e}if((x=e[57154])>>>0>=m>>>0)break l;if(r){r=(A=(o=hi(0-(A=(0-(A=2<<s)|A)&r<<s)&A))<<3)+228648|0,l=e[A+228656>>2],(0|r)!=(0|(A=e[l+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):(f=As(-2,o)&f,e[57152]=f),e[l+4>>2]=3|m,o=(A=o<<3)-m|0,e[(s=l+m|0)+4>>2]=1|o,e[A+l>>2]=o,x&&(r=228648+(-8&x)|0,c=e[57157],(A=1<<(x>>>3))&f?A=e[r+8>>2]:(e[57152]=A|f,A=r),e[r+8>>2]=c,e[A+12>>2]=c,e[c+12>>2]=r,e[c+8>>2]=A),A=l+8|0,e[57157]=s,e[57154]=o;break e}if(!(b=e[57153]))break l;for(s=e[228912+(hi(0-b&b)<<2)>>2],c=(-8&e[s+4>>2])-m|0,r=s;(A=e[r+16>>2])||(A=e[r+20>>2]);)c=(o=(r=(-8&e[A+4>>2])-m|0)>>>0<c>>>0)?r:c,s=o?A:s,r=A;if(I=e[s+24>>2],(0|(o=e[s+12>>2]))!=(0|s)){A=e[s+8>>2],e[A+12>>2]=o,e[o+8>>2]=A;break A}if(!(A=e[(r=s+20|0)>>2])){if(!(A=e[s+16>>2]))break u;r=s+16|0}for(;l=r,o=A,(A=e[(r=A+20|0)>>2])||(r=o+16|0,A=e[o+16>>2]););e[l>>2]=0;break A}if(m=-1,!(A>>>0>4294967231)&&(m=-8&(A=A+11|0),b=e[57153])){c=0-m|0,f=0,m>>>0<256||(f=31,m>>>0>16777215||(f=62+((m>>>38-(A=we(A>>>8|0))&1)-(A<<1)|0)|0));i:{p:{if(r=e[228912+(f<<2)>>2])for(A=0,s=m<<((0|f)!=31?25-(f>>>1|0):0);;){if(!((l=(-8&e[r+4>>2])-m|0)>>>0>=c>>>0||(o=r,c=l,l))){c=0,A=r;break p}if(l=e[r+20>>2],r=e[16+((s>>>29&4)+r|0)>>2],A=l?(0|l)==(0|r)?A:l:A,s<<=1,!r)break}else A=0;if(!(A|o)){if(o=0,!(A=(0-(A=2<<f)|A)&b))break l;A=e[228912+(hi(A&0-A)<<2)>>2]}if(!A)break i}for(;c=(s=(r=(-8&e[A+4>>2])-m|0)>>>0<c>>>0)?r:c,o=s?A:o,A=(r=e[A+16>>2])||e[A+20>>2];);}if(!(!o|e[57154]-m>>>0<=c>>>0)){if(f=e[o+24>>2],(0|o)!=(0|(s=e[o+12>>2]))){A=e[o+8>>2],e[A+12>>2]=s,e[s+8>>2]=A;break r}if(!(A=e[(r=o+20|0)>>2])){if(!(A=e[o+16>>2]))break c;r=o+16|0}for(;l=r,s=A,(A=e[(r=A+20|0)>>2])||(r=s+16|0,A=e[s+16>>2]););e[l>>2]=0;break r}}}if((A=e[57154])>>>0>=m>>>0){o=e[57157],(r=A-m|0)>>>0>=16?(e[(s=o+m|0)+4>>2]=1|r,e[A+o>>2]=r,e[o+4>>2]=3|m):(e[o+4>>2]=3|A,e[(A=A+o|0)+4>>2]=1|e[A+4>>2],s=0,r=0),e[57154]=r,e[57157]=s,A=o+8|0;break e}if((I=e[57155])>>>0>m>>>0){r=I-m|0,e[57155]=r,A=(s=e[57158])+m|0,e[57158]=A,e[A+4>>2]=1|r,e[s+4>>2]=3|m,A=s+8|0;break e}if(A=0,b=m+47|0,e[57270]?s=e[57272]:(e[57273]=-1,e[57274]=-1,e[57271]=4096,e[57272]=4096,e[57270]=t+12&-16^1431655768,e[57275]=0,e[57263]=0,s=4096),(r=(l=b+s|0)&(c=0-s|0))>>>0<=m>>>0||(o=e[57262])&&o>>>0<(f=(s=e[57260])+r|0)>>>0|s>>>0>=f>>>0)break e;l:{if(!(4&u[229052])){i:{p:{C:{h:{if(o=e[57158])for(A=229056;;){if((s=e[A>>2])>>>0<=o>>>0&o>>>0<s+e[A+4>>2]>>>0)break h;if(!(A=e[A+8>>2]))break}if((0|(s=G(0)))==-1||(f=r,(A=(o=e[57271])-1|0)&s&&(f=(r-s|0)+(A+s&0-o)|0),f>>>0<=m>>>0)||(o=e[57262])&&o>>>0<(c=(A=e[57260])+f|0)>>>0|A>>>0>=c>>>0)break i;if((0|s)!=(0|(A=G(f))))break C;break l}if((0|(s=G(f=c&l-I)))==(e[A>>2]+e[A+4>>2]|0))break p;A=s}if((0|A)==-1)break i;if(m+48>>>0<=f>>>0){s=A;break l}if((0|G(s=(s=e[57272])+(b-f|0)&0-s))==-1)break i;f=s+f|0,s=A;break l}if((0|s)!=-1)break l}e[57263]=4|e[57263]}if((0|(s=G(r)))==-1|(0|(A=G(0)))==-1|A>>>0<=s>>>0||(f=A-s|0)>>>0<=m+40>>>0)break a}A=e[57260]+f|0,e[57260]=A,A>>>0>ee[57261]&&(e[57261]=A);l:{if(l=e[57158]){for(A=229056;;){if(((o=e[A>>2])+(r=e[A+4>>2])|0)==(0|s))break l;if(!(A=e[A+8>>2]))break}break o}for((A=e[57156])>>>0<=s>>>0&&A||(e[57156]=s),A=0,e[57265]=f,e[57264]=s,e[57160]=-1,e[57161]=e[57270],e[57267]=0;r=(o=A<<3)+228648|0,e[o+228656>>2]=r,e[o+228660>>2]=r,(0|(A=A+1|0))!=32;);r=(o=f-40|0)-(A=s+8&7?-8-s&7:0)|0,e[57155]=r,A=A+s|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(s+o|0)>>2]=40,e[57159]=e[57274];break n}if(8&u[A+12|0]|o>>>0>l>>>0|s>>>0<=l>>>0)break o;e[A+4>>2]=r+f,s=(A=l+8&7?-8-l&7:0)+l|0,e[57158]=s,A=(r=e[57155]+f|0)-A|0,e[57155]=A,e[s+4>>2]=1|A,e[4+(r+l|0)>>2]=40,e[57159]=e[57274];break n}o=0;break A}s=0;break r}ee[57156]>s>>>0&&(e[57156]=s),r=s+f|0,A=229056;o:{c:{u:{l:{i:{p:{for(;;){if((0|r)!=e[A>>2]){if(A=e[A+8>>2])continue;break p}break}if(!(8&u[A+12|0]))break i}for(A=229056;;){if((r=e[A>>2])>>>0<=l>>>0&&(c=r+e[A+4>>2]|0)>>>0>l>>>0)break l;A=e[A+8>>2]}}if(e[A>>2]=s,e[A+4>>2]=e[A+4>>2]+f,e[(b=(s+8&7?-8-s&7:0)+s|0)+4>>2]=3|m,A=(f=r+(r+8&7?-8-r&7:0)|0)-(I=m+b|0)|0,(0|l)==(0|f)){e[57158]=I,A=e[57155]+A|0,e[57155]=A,e[I+4>>2]=1|A;break c}if(e[57157]==(0|f)){e[57157]=I,A=e[57154]+A|0,e[57154]=A,e[I+4>>2]=1|A,e[A+I>>2]=A;break c}if((3&(c=e[f+4>>2]))==1){l=-8&c;i:if(c>>>0<=255){if(o=e[f+8>>2],r=c>>>3|0,(0|(s=e[f+12>>2]))==(0|o)){e[57152]=e[57152]&As(-2,r);break i}e[o+12>>2]=s,e[s+8>>2]=o}else{if(m=e[f+24>>2],(0|f)==(0|(s=e[f+12>>2])))if((r=e[(c=f+20|0)>>2])||(r=e[(c=f+16|0)>>2])){for(;o=c,(r=e[(c=(s=r)+20|0)>>2])||(c=s+16|0,r=e[s+16>>2]););e[o>>2]=0}else s=0;else r=e[f+8>>2],e[r+12>>2]=s,e[s+8>>2]=r;if(m){o=e[f+28>>2];p:{if(e[(r=228912+(o<<2)|0)>>2]==(0|f)){if(e[r>>2]=s,s)break p;e[57153]=e[57153]&As(-2,o);break i}if(e[m+(e[m+16>>2]==(0|f)?16:20)>>2]=s,!s)break i}e[s+24>>2]=m,(r=e[f+16>>2])&&(e[s+16>>2]=r,e[r+24>>2]=s),(r=e[f+20>>2])&&(e[s+20>>2]=r,e[r+24>>2]=s)}}c=e[(f=l+f|0)+4>>2],A=A+l|0}if(e[f+4>>2]=-2&c,e[I+4>>2]=1|A,e[A+I>>2]=A,A>>>0<=255){r=228648+(-8&A)|0,(s=e[57152])&(A=1<<(A>>>3))?A=e[r+8>>2]:(e[57152]=A|s,A=r),e[r+8>>2]=I,e[A+12>>2]=I,e[I+12>>2]=r,e[I+8>>2]=A;break c}if(c=31,A>>>0<=16777215&&(c=62+((A>>>38-(r=we(A>>>8|0))&1)-(r<<1)|0)|0),e[I+28>>2]=c,e[I+16>>2]=0,e[I+20>>2]=0,r=228912+(c<<2)|0,(o=e[57153])&(s=1<<c)){for(c=A<<((0|c)!=31?25-(c>>>1|0):0),s=e[r>>2];;){if(r=s,(-8&e[s+4>>2])==(0|A))break u;if(s=c>>>29|0,c<<=1,!(s=e[(o=(4&s)+r|0)+16>>2]))break}e[o+16>>2]=I}else e[57153]=s|o,e[r>>2]=I;e[I+24>>2]=r,e[I+12>>2]=I,e[I+8>>2]=I;break c}for(r=(o=f-40|0)-(A=s+8&7?-8-s&7:0)|0,e[57155]=r,A=A+s|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(s+o|0)>>2]=40,e[57159]=e[57274],e[(o=(A=(c+(c-39&7?39-c&7:0)|0)-47|0)>>>0<l+16>>>0?l:A)+4>>2]=27,A=e[57267],e[o+16>>2]=e[57266],e[o+20>>2]=A,A=e[57265],e[o+8>>2]=e[57264],e[o+12>>2]=A,e[57266]=o+8,e[57265]=f,e[57264]=s,e[57267]=0,A=o+24|0;e[A+4>>2]=7,r=A+8|0,A=A+4|0,r>>>0<c>>>0;);if((0|o)==(0|l))break n;if(e[o+4>>2]=-2&e[o+4>>2],c=o-l|0,e[l+4>>2]=1|c,e[o>>2]=c,c>>>0<=255){r=228648+(-8&c)|0,(s=e[57152])&(A=1<<(c>>>3))?A=e[r+8>>2]:(e[57152]=A|s,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A;break n}if(A=31,c>>>0<=16777215&&(A=62+((c>>>38-(A=we(c>>>8|0))&1)-(A<<1)|0)|0),e[l+28>>2]=A,e[l+16>>2]=0,e[l+20>>2]=0,r=228912+(A<<2)|0,(o=e[57153])&(s=1<<A)){for(A=c<<((0|A)!=31?25-(A>>>1|0):0),o=e[r>>2];;){if((0|c)==(-8&e[(r=o)+4>>2]))break o;if(s=A>>>29|0,A<<=1,!(o=e[(s=(4&s)+r|0)+16>>2]))break}e[s+16>>2]=l}else e[57153]=s|o,e[r>>2]=l;e[l+24>>2]=r,e[l+12>>2]=l,e[l+8>>2]=l;break n}A=e[r+8>>2],e[A+12>>2]=I,e[r+8>>2]=I,e[I+24>>2]=0,e[I+12>>2]=r,e[I+8>>2]=A}A=b+8|0;break e}A=e[r+8>>2],e[A+12>>2]=l,e[r+8>>2]=l,e[l+24>>2]=0,e[l+12>>2]=r,e[l+8>>2]=A}if(!((A=e[57155])>>>0<=m>>>0)){r=A-m|0,e[57155]=r,A=(s=e[57158])+m|0,e[57158]=A,e[A+4>>2]=1|r,e[s+4>>2]=3|m,A=s+8|0;break e}}e[56798]=48,A=0;break e}r:if(f){r=e[o+28>>2];a:{if(e[(A=228912+(r<<2)|0)>>2]==(0|o)){if(e[A>>2]=s,s)break a;b=As(-2,r)&b,e[57153]=b;break r}if(e[f+(e[f+16>>2]==(0|o)?16:20)>>2]=s,!s)break r}e[s+24>>2]=f,(A=e[o+16>>2])&&(e[s+16>>2]=A,e[A+24>>2]=s),(A=e[o+20>>2])&&(e[s+20>>2]=A,e[A+24>>2]=s)}r:if(c>>>0<=15)A=c+m|0,e[o+4>>2]=3|A,e[(A=A+o|0)+4>>2]=1|e[A+4>>2];else if(e[o+4>>2]=3|m,e[(l=o+m|0)+4>>2]=1|c,e[l+c>>2]=c,c>>>0<=255)r=228648+(-8&c)|0,(s=e[57152])&(A=1<<(c>>>3))?A=e[r+8>>2]:(e[57152]=A|s,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A;else{A=31,c>>>0<=16777215&&(A=62+((c>>>38-(A=we(c>>>8|0))&1)-(A<<1)|0)|0),e[l+28>>2]=A,e[l+16>>2]=0,e[l+20>>2]=0,r=228912+(A<<2)|0;a:{if((s=1<<A)&b){for(A=c<<((0|A)!=31?25-(A>>>1|0):0),m=e[r>>2];;){if((-8&e[(r=m)+4>>2])==(0|c))break a;if(s=A>>>29|0,A<<=1,!(m=e[(s=(4&s)+r|0)+16>>2]))break}e[s+16>>2]=l}else e[57153]=s|b,e[r>>2]=l;e[l+24>>2]=r,e[l+12>>2]=l,e[l+8>>2]=l;break r}A=e[r+8>>2],e[A+12>>2]=l,e[r+8>>2]=l,e[l+24>>2]=0,e[l+12>>2]=r,e[l+8>>2]=A}A=o+8|0;break e}A:if(I){r=e[s+28>>2];r:{if(e[(A=228912+(r<<2)|0)>>2]==(0|s)){if(e[A>>2]=o,o)break r;e[57153]=As(-2,r)&b;break A}if(e[I+(e[I+16>>2]==(0|s)?16:20)>>2]=o,!o)break A}e[o+24>>2]=I,(A=e[s+16>>2])&&(e[o+16>>2]=A,e[A+24>>2]=o),(A=e[s+20>>2])&&(e[o+20>>2]=A,e[A+24>>2]=o)}c>>>0<=15?(A=c+m|0,e[s+4>>2]=3|A,e[(A=A+s|0)+4>>2]=1|e[A+4>>2]):(e[s+4>>2]=3|m,e[(o=s+m|0)+4>>2]=1|c,e[o+c>>2]=c,x&&(r=228648+(-8&x)|0,l=e[57157],(A=1<<(x>>>3))&f?A=e[r+8>>2]:(e[57152]=A|f,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A),e[57157]=o,e[57154]=c),A=s+8|0}return Y=t+16|0,0|A}function Zt(A,t,r,s,o){var l,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0;Y=l=Y-544|0,Xe(l+320|0,0,100),Xe(l+208|0,0,100),I=r?e[r>>2]:I,W=e[A+12>>2],b=e[36115];e:{A:{r:{a:{for(;;){if(c=(0|(c=u[t+f|0]))>=(0|b)?13:c,d[l+f|0]=c,!c){c=f;break a}if(m=(0|b)<=(0|(m=u[(c=1|f)+t|0]))?13:m,d[c+l|0]=m,!m)break a;if((0|(f=f+2|0))==200)break}f=198,Z=u[l+199|0];break r}if(!c)break A;Z=u[l+(f=c-1|0)|0],(0|c)!=1&&(f=c-2|0)}if(Me=8&I,e[l+536>>2]=(Me>>>3|0?3:7)&I,I=u[l+f|0],b=1,P=(0|(x=vt(A,l,l+432|0,l+540|0,l+536|0,1)))>=0?x:0,le=u[0|l])for(f=l,c=le;c=e[144464+((255&c)<<2)>>2],u[c+11|0]==2&&(1048576&(c=e[c+4>>
28962])||(m=(2097152&c)>>>21|0,m|=c=u[e[144464+(u[0|(_=f+1|0)]<<2)>>2]+10|0]==12,d[(l+208|0)+b|0]=m,U=e[144464+(u[(c?2:1)+f|0]<<2)>>2],m=u[U+11|0]-10>>>0<4294967289|!(32&u[U+6|0])&u[e[144464+(u[(c?3:2)+f|0]<<2)>>2]+11|0]==2?m:m?2:1,f=c?_:f,d[(l+320|0)+b|0]=m,b=b+1|0)),c=u[0|(f=f+1|0)];);f=r=r?P:x;r:{a:{n:{o:{c:{u:{l:{i:{p:{C:{h:{b:switch(e[A+8>>2]-1|0){case 11:if((0|(r=e[l+540>>2]))<2)break p;if(f=1,P=1&(c=r-1|0),(0|r)!=2)break h;b=0;break C;case 8:if((0|(c=e[l+540>>2]))<2)break a;if(b=3&(m=c-1|0),f=1,c-2>>>0>=3)for(P=-4&m,m=0;I=d[0|(c=(l+432|0)+f|0)],d[0|c]=(0|I)<0?4:I,I=d[c+1|0],d[c+1|0]=(0|I)<0?4:I,I=d[c+2|0],d[c+2|0]=(0|I)<0?4:I,I=c,c=d[c+3|0],d[I+3|0]=(0|c)<0?4:c,f=f+4|0,(0|P)!=(0|(m=m+4|0)););if(!b)break a;for(c=0;m=d[0|(I=(l+432|0)+f|0)],d[0|I]=(0|m)<0?4:m,f=f+1|0,(0|b)!=(0|(c=c+1|0)););break a;case 7:if(!u[l+322|0]|d[l+321|0]>0)break a;case 0:if(e[l+536>>2]|e[l+540>>2]<3)break a;if(e[l+536>>2]=2,f=4,r)break r;d[l+434|0]=4;break r;case 1:if(e[l+536>>2])break r;m:{x:{if((0|(b=e[l+540>>2]))>=3){r=b-2|0,e[l+536>>2]=r,f=r;I:if(512&W&&(c=e[144464+(Z<<2)>>2],(0|(m=u[c+11|0]))!=2)){f=e[c>>2],c=l;B:{N:{if((0|(P=e[A+212>>2]))!=26977){if((0|P)!=24942)break N;L:switch(f-110|0){case 0:case 5:if(f=r,u[e[144464+(I<<2)>>2]+11|0]==2)break I;break;default:break L}f=b-1|0;break B}if((0|f)==115&&(f=r,u[e[144464+(I<<2)>>2]+11|0]==2))break I;f=b-1|0;break B}N:{L:{if((0|f)==115){if(f=r,(0|(m=u[e[144464+(I<<2)>>2]+11|0]))!=8)break L;break I}if((0|m)!=8)break N;m=u[e[144464+(I<<2)>>2]+11|0]}if(f=r,(255&m)==2)break I}f=b-1|0}e[c+536>>2]=f}if(524288&W&&(d[(c=b-1|0)+(b=l+208|0)|0]<=d[r+b|0]||(e[l+536>>2]=c,f=c)),u[(l+432|0)+f|0]>1){c=f;break m}if(c=2,r=f-1|0,f>>>0>=2)break x;e[l+536>>2]=f+1;break m}r=1}c=r,e[l+536>>2]=c}if(f=4,d[0|(r=(l+432|0)+c|0)]>=0||d[(c=(l+432|0)+c|0)-1|0]>=4&d[c+1|0]>3)break r;d[0|r]=4;break r;case 2:if(e[l+536>>2])break r;for(r=(f=e[l+540>>2])-1|0,r&=r>>31;;){if((0|(f=f-1|0))<=0)break n;if(!(d[0|(c=(l+432|0)+f|0)]>=0))break}e[l+536>>2]=f,f=4,d[0|c]=4;break r;case 3:if(e[l+536>>2])break a;if(c=(0|(f=e[l+540>>2]-3|0))<=1?1:f,e[l+536>>2]=c,f=4,r)break r;d[c+(l+432|0)|0]=4;break r;case 4:if(e[l+536>>2])break r;if(c=(r=e[l+540>>2])-3|0,e[l+536>>2]=c,(0|r)<=15){m:{x:switch(u[e[144464+(Z<<2)>>2]+11|0]-2|0){case 0:c=d[r+94176|0];break m;case 2:c=d[r+94192|0];break m;default:break x}c=d[r+94160|0]}e[l+536>>2]=c}f=4,d[(l+432|0)+c|0]=4;break r;case 5:if(e[l+536>>2])break r;if(b=-1,m=0,!((0|(r=(c=e[l+540>>2])-1|0))<2)){if(f=1,_=1&c,(0|c)!=3)for(U=(-2&c)-4|0,c=0;d[(l+432|0)+f|0]<0&&(m=(I=(0|(P=d[(l+320|0)+f|0]))<(0|b))?m:f,b=I?b:P),d[(I=f+1|0)+(l+432|0)|0]<0&&(m=(P=(0|(Ce=d[I+(l+320|0)|0]))<(0|b))?m:I,b=P?b:Ce),f=f+2|0,I=(0|c)!=(0|U),c=c+2|0,I;);!_|d[(l+432|0)+f|0]>=0||(b=(c=(0|(I=d[(l+320|0)+f|0]))<(0|b))?b:I,m=c?m:f)}e[l+536>>2]=m,u[r+(l+320|0)|0]!=2|(0|b)>1?(0|b)>0||(m=1,e[l+536>>2]=1):(e[l+536>>2]=r,m=r),f=4,d[(l+432|0)+m|0]=4;break r;case 14:break o;case 12:break c;case 6:break b;default:break r}if(e[l+536>>2])break r;b=(r=e[l+540>>2])-1|0,e[l+536>>2]=b;b:if(!((0|r)<2))for(f=1;;){if(u[(l+432|0)+f|0]==1){b=f-1|0,e[l+536>>2]=b;break b}if((0|r)==(0|(f=f+1|0)))break}f=4,d[(l+432|0)+b|0]=4;break r}for(_=-2&c,b=0,m=0;c=u[0|(U=(I=l+432|0)+f|0)],re=U,Ce=d[(U=l+208|0)+f|0]>0,d[0|re]=Ce||(0|c)==4?3:c,Qe=(0|(I=u[0|(re=(c=f+1|0)+I|0)]))==4?3:I,I=d[c+U|0]>0,d[0|re]=I?3:Qe,b=I?c:Ce?f:b,f=f+2|0,(0|_)!=(0|(m=m+2|0)););}if(P&&(I=(0|(c=u[0|(m=(l+432|0)+f|0)]))==4?3:c,c=d[(l+208|0)+f|0]>0,d[0|m]=c?3:I,b=c?f:b),c=e[l+536>>2])break u;if((0|b)>0){e[l+536>>2]=b,c=b;break u}if((0|r)<6)break i;c=r-3|0;break l}if(c=e[l+536>>2])break u}c=r-1|0}e[l+536>>2]=c}f=4,d[(l+432|0)+c|0]=4;break r}if(e[l+536>>2])break r;c=1,e[l+536>>2]=1,u[l+209|0]|e[l+540>>2]<3|d[l+210|0]<=0||(c=2,e[l+536>>2]=2),f=4,d[l+432|c]=4;break r}if(e[l+536>>2]||(0|(c=e[l+540>>2]))<3)break a;if(Xe(l+432|1,0,c-1|0),e[l+536>>2]=2,r||(d[l+434|0]=4),f=4,c>>>0<4)break r;d[431+(c+l|0)|0]=3;break r}e[l+536>>2]=r,f=4;break r}f=r}!(256&W)|2&o||(0|(r=e[l+540>>2]))<3|(0|x)>2||u[0|(c=(r=r+(l+432|0)|0)-1|0)]!=4|u[e[144464+(Z<<2)>>2]+11|0]!=2||(d[0|c]=1,d[r-2|0]=4);r:{a:{if(Me)x=e[l+540>>2];else{if(r=d[l+433|0],!(!(4096&W)|(0|(x=e[l+540>>2]))!=3)){if((0|r)==4){d[l+434|0]=3;break a}if(u[l+434|0]==4){d[l+433|0]=3;break a}}if(!(!(8192&W)|(0|r)>=0|(0|x)<4|d[l+434|0]<4)){d[l+433|0]=3;break a}}if(m=0,(0|x)<2)break r}for(b=(0|f)<4?4:3,U=128&W,Ce=64&W,re=32&W,P=x-1|0,Qe=16&W,Oe=!(32768&W),Z=0,I=0,f=1;;){a:{n:if((0|(c=d[0|(_=(l+432|0)+f|0)]))>=0)m=b;else{m=3;o:{c:if(!(!(!Qe|(0|b)>3)&(0|f)==(0|P))){if(!(1&(Z|Oe)))break o;if(!(d[431+(l+f|0)|0]>
28961)){if((0|(c=d[(r=f+1|0)+(l+432|0)|0]))>=2){if((0|b)!=4||(m=4,c>>>0>=3))break c}else if(!(!re|(0|b)!=3)){b=3;break a}if(!Ce|f>>>0<2||(m=u[(l+320|0)+f|0]))break o;if((0|P)>(0|(c=f))){for(;;){if(d[(l+320|0)+c|0]>0)break a;if((0|P)==(0|(c=c+1|0)))break}if(m)break o}if(d[r+(l+320|0)|0]<=0)break o;break a}m=b}c=u[0|_];break n}d[0|_]=b,Z=1,m=3,c=b}n:{if(c<<24>>24>=4){if(r=I||f,!I|!U)break n;d[0|_]=3}b=m;break a}b=m,I=r}if(m=1,(0|x)==(0|(f=f+1|0)))break}}if(s=!Me|(0|s)>=0?s:e[((0|x)<3?16:20)+A>>2],b=0,c=0,m){if(Z=3&(r=x-1|0),m=0,x-2>>>0<3)f=1;else for(Me=-4&r,f=1,I=0;c=(r=(0|(c=(_=(0|(c=(P=(0|(c=(x=(0|(P=d[(r=l+432|0)+f|0]))<(0|c))?c:P))>(0|(_=d[(U=f+1|0)+r|0])))?c:_))>(0|(re=d[(Ce=f+2|0)+r|0])))?c:re))>(0|(Qe=d[(re=f+3|0)+r|0])))?c:Qe,b=r?_?P?x?b:f:U:Ce:re,f=f+4|0,(0|Me)!=(0|(I=I+4|0)););if(Z)for(;c=(r=(0|(I=d[(l+432|0)+f|0]))<(0|c))?c:I,b=r?b:f,f=f+1|0,(0|Z)!=(0|(m=m+1|0)););}if((0|s)<0?s=c:(0|s)<=(0|c)&(0|c)>4||(d[(l+432|0)+b|0]=s),Z=t+197|0,x=1,!(1&o)&&(r=e[144464+(le<<2)>>2])){if(c=l,!((0|(m=u[r+11|0]))!=1&(0|le)!=15))for(;r=u[0|(c=c+1|0)],(0|(m=u[e[144464+(r<<2)>>2]+11|0]))==1|(0|r)==15;);!(48&(r=e[A+4>>2]))|(0|m)!=2||(d[0|t]=(32&r)>>>5|0&&d[l+433|0]>3?11:23,t=t+1|0)}r:if(!(t>>>0>=Z>>>0))for(P=65536&W,_=2&W,Me=4&W,f=l;;){if(!(c=u[0|f]))break r;if(o=f,f=f+1|0,r=e[144464+(c<<2)>>2]){a:{n:{o:switch(u[r+11|0]){case 0:e[A+8200>>2]=0;break a;case 2:if(!(16&u[r+6|0]))break n;break;default:break o}if(u[0|f]!=20)break a}if((0|(le=e[l+540>>2]))<(0|x))break e;I=d[0|(W=(l+432|0)+x|0)],e[A+8200>>2]=I;n:{o:{if(!((0|(r=I))>1)){if(m=le-1|0,!(!Me|(0|x)<2|(0|s)<2)&&(r=0,(0|m)==(0|x)))break o;if(r=1,!((0|x)==1|_|(le-2|0)==(0|x)&d[m+(l+432|0)|0]<2|(0|m)==(0|x)||d[431+(l+x|0)|0]>=0&&(r=I,P))){r=0,d[0|W]=0;break o}}if(r&&(0|r)<2)break n}d[0|t]=u[r+94151|0],t=t+1|0,I=d[0|W]}m=(0|s)>(0|I),u[0|f]==12&&1&(le=e[A+28>>2])&&(f=(16&le?(0|b)!=(0|x):(0|r)<4)?o+2|0:f),s=m?s:I,x=x+1|0}if((0|c)!=1&&(d[0|t]=c,t=t+1|0),!(t>>>0<Z>>>0))break}}d[0|t]=0}return void(Y=l+544|0)}ie(86136,86634,1353,94208),R()}function Sr(A,t,r,s,o,l,c,f,m){var I,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0,rt=0,Et=0,Ot=0,Wt=0,ir=0,or=0,xr=0,Br=0,Rr=0,Hr=0,Jr=0;Y=I=Y-336|0,_=f,U=65535&m,W=s,P=65535&o,Me=-2147483648&(o^m);e:{if(!((le=m>>>16&32767)-32767>>>0>4294934529&(Z=o>>>16&32767)-32767>>>0>=4294934530)){if(!(!s&(0|(b=2147483647&o))==2147418112?!(t|r):b>>>0<2147418112)){re=s,Me=32768|o;break e}if(!(!f&(0|(o=2147483647&m))==2147418112?!(l|c):o>>>0<2147418112)){re=f,Me=32768|m,t=l,r=c;break e}if(!(t|s|2147418112^b|r)){if(!(l|f|2147418112^o|c)){t=0,r=0,Me=2147450880;break e}Me|=2147418112,t=0,r=0;break e}if(!(l|f|2147418112^o|c)){t=0,r=0;break e}if(!(t|s|r|b)){re=(t=!(l|f|o|c))?0:re,Me=t?2147450880:Me,t=0,r=0;break e}if(!(l|f|o|c)){Me|=2147418112,t=0,r=0;break e}(0|b)==65535|b>>>0<65535&&(m=s=!(P|W),b=s?t:W,f=s<<=6,Mt(I+320|0,t,r,W,P,(s=s+((0|(m=we(m?r:P)))==32?we(b)+32|0:m)|0)-15|0),Qe=16-s|0,W=e[I+328>>2],P=e[I+332>>2],r=e[I+324>>2],t=e[I+320>>2]),o>>>0>65535||(f=s=!(_|U),m=s?l:_,o=s<<=6,Mt(I+304|0,l,c,_,U,(s=s+((0|(f=we(f?c:U)))==32?we(m)+32|0:f)|0)-15|0),Qe=(s+Qe|0)-16|0,_=e[I+312>>2],U=e[I+316>>2],l=e[I+304>>2],c=e[I+308>>2])}if(bA=o=65536|U,zA=_,b=o<<15|(s=_)>>>17,Nr(I+288|0,s=o=s<<15|c>>>17,f=b,0,0,m=0-s|0,b=1963258675-(b+!!(0|s)|0)|0,0,0),Nr(I+272|0,0-(s=e[I+296>>2])|0,0-(e[I+300>>2]+!!(0|s)|0)|0,0,0,m,b,0,0),Nr(I+256|0,m=(s=e[I+280>>2])<<1|e[I+276>>2]>>>31,s=e[I+284>>2]<<1|s>>>31,0,0,o,f,0,0),Nr(I+240|0,m,s,0,0,0-(b=e[I+264>>2])|0,0-(e[I+268>>2]+!!(0|b)|0)|0,0,0),Nr(I+224|0,b=(m=e[I+248>>2])<<1|e[I+244>>2]>>>31,s=e[I+252>>2]<<1|m>>>31,0,0,o,f,0,0),Nr(I+208|0,b,s,0,0,0-(m=e[I+232>>2])|0,0-(e[I+236>>2]+!!(0|m)|0)|0,0,0),Nr(I+192|0,m=(s=e[I+216>>2])<<1|e[I+212>>2]>>>31,s=e[I+220>>2]<<1|s>>>31,0,0,o,f,0,0),Nr(I+176|0,m,s,0,0,0-(b=e[I+200>>2])|0,0-(e[I+204>>2]+!!(0|b)|0)|0,0,0),Nr(I+160|0,m=o,s=f,0,0,f=(_=(o=e[I+184>>2])<<1|e[I+180>>2]>>>31)-1|0,o=(e[I+188>>2]<<1|o>>>31)-!_|0,0,0),Nr(I+144|0,l<<15,c<<15|l>>>17,0,0,s=f,o,0,0),Ce=I+112|0,AA=e[I+168>>2],f=e[I+172>>2],x=(_=e[I+160>>2])+(m=e[I+152>>2])|0,b=(U=e[I+164>>2])+e[I+156>>2]|0,m=b=m>>>0>x>>>0?b+1|0:b,b=(b=(0|U)==(0|b)&x>>>0<_>>>0|b>>>0<U>>>0)>>>0>(U=b+AA|0)>>>0?f+1|0:f,Nr(Ce,s,o,0,0,0-(f=(_=!m&x>>>0>1|!!(0|m))+U|0)|0,0-(!!(0|f)+(b=_>>>0>f>>>0?b+1|0:b)|0)|0,0,0),Nr(I+128|0,1-x|0,0-((x>>>0>1)+m|0)|0,0,0,s,o,0,0),ir=(Z-le|0)+Qe|0,Ce=o=e[I+116>>2],_=(s=e[I+112>>2])<<1,Z=b=o<<1|s>>>31,s=b,gA=f=e[I+140>>2],s=s+(b=f<<1|(o=e[I+136>>2])>>>31)|0,o=s=(f=(m=o<<1|e[I+132>>2]>>>31)+_|0)>>>0<m>>>0?s+1|0:s,Ve=s=s-(f>>>0<13927)|0,AA=s,or=b=65536|P,xr=W,Rr=(s=W)<<1,Hr=b=b<<1|s>>>31,rt=b,Et=s=at(Ve,x=0,b,0),Oe=b=ce,Qe=t<<1,le=s=r<<1|t>>>31,U=b=0,Ve=(0|o)==(0|Ve)&(m=f-13927|0)>>>0<f>>>0|o>>>0>Ve>>>0,o=(0|o)==(0|Z)&f>>>0<_>>>0|o>>>0<Z>>>0,s=e[I+120>>2],b=f=e[I+124>>2]<<1|s>>>31,b=(s=(x=gA>>>31|0)+(s=s<<1|Ce>>>31)|0)>>>0<x>>>0?b+1|0:b,x=(f=s)>>>0>(s=s+o|0)>>>0?b+1|0:b,x=(o=s)>>>0>(s=s+Ve|0)>>>0?x+1|0:x,o=s-1|0,b=at(le,U,Ve=x-!s|0,Z=0),f=ce+Oe|0,Ce=(0|Oe)==(0|(f=(s=b+Et|0)>>>0<b>>>0?f+1|0:f))&s>>>0<Et>>>0|f>>>0<Oe>>>0,gA=o,o=at(o,b=0,jA=(Br=r>>
vendor: 5,052 bytes, line 2896
2896>31|0)|W<<1,Oe=0),b=ce+f|0,x=0,_=b=o>>>0>(W=o+s|0)>>>0?b+1|0:b,x=(o=s=(0|b)==(0|f)&s>>>0>W>>>0|f>>>0>b>>>0)>>>0>(s=s+Ce|0)>>>0?1:x,o=at(rt,U,Ve,Z),b=ce+x|0,Ce=s=o+s|0,s=s>>>0<o>>>0?b+1|0:b,o=at(rt,U,gA,Oe),P=ce,f=o,o=at(jA,Oe,Ve,Z),b=ce+P|0,o=b=o>>>0>(x=f+o|0)>>>0?b+1|0:b,s=s+(b=(0|P)==(0|b)&f>>>0>x>>>0|b>>>0<P>>>0)|0,Ce=P=Ce+o|0,P=s=P>>>0<o>>>0?s+1|0:s,b=x+_|0,o=b=(s=(o=0)+W|0)>>>0<o>>>0?b+1|0:b,f=(0|b)==(0|_)&s>>>0<W>>>0|b>>>0<_>>>0,b=P,x=f,Ot=f=f+Ce|0,x=b=x>>>0>f>>>0?b+1|0:b,Ce=s,P=s,W=o,Et=m,s=at(m,0,jA,Oe),f=ce,o=s,m=at(AA,re,le,re),b=ce+f|0,m=(0|f)==(0|(b=(s=s+m|0)>>>0<m>>>0?b+1|0:b))&s>>>0<o>>>0|f>>>0>b>>>0,f=b,o=at(gA,Oe,Wt=-2&Qe,0),b=ce+b|0,o=b=o>>>0>(_=o+s|0)>>>0?b+1|0:b,s=(0|b)==(0|f)&s>>>0>_>>>0|f>>>0>b>>>0,f=0,s=((m=s+m|0)>>>0<s>>>0?1:f)+W|0,b=x,m=s=(P=m+P|0)>>>0<m>>>0?s+1|0:s,f=s=(0|s)==(0|W)&P>>>0<Ce>>>0|s>>>0<W>>>0,Jr=s=s+Ot|0,Ce=b=f>>>0>s>>>0?b+1|0:b,s=at(rt,U,Et,re),Ot=ce,rt=s,f=at(Ve,Z,Wt,re),b=ce+Ot|0,W=s=s+f|0,x=s+(U=at(AA,re,jA,Oe))|0,s=(f=s>>>0<f>>>0?b+1|0:b)+ce|0,s=x>>>0<U>>>0?s+1|0:s,Z=x,U=x+(b=at(le,re,gA,Oe))|0,x=ce+s|0,jA=(0|s)==(0|(x=b>>>0>U>>>0?x+1|0:x))&U>>>0<Z>>>0|s>>>0>x>>>0,b=((s=(s=(s=(0|s)==(0|f)&W>>>0>Z>>>0|s>>>0<f>>>0)+(b=(0|f)==(0|Ot)&W>>>0<rt>>>0|f>>>0<Ot>>>0)|0)+jA|0)|(gA=0))+m|0,W=b=(f=x)>>>0>(Z=f+P|0)>>>0?b+1|0:b,s=(0|m)==(0|b)&P>>>0>Z>>>0|m>>>0>b>>>0,b=Ce,f=s,gA=s=s+Jr|0,m=b=f>>>0>s>>>0?b+1|0:b,s=at(AA,re,Wt,re),AA=ce,P=s,f=at(le,re,Et,re),b=ce+AA|0,f=(0|(b=(s=s+f|0)>>>0<f>>>0?b+1|0:b))==(0|AA)&s>>>0<P>>>0|b>>>0<AA>>>0,P=b,s=b+_|0,b=(f|(Ce=0))+o|0,P=(0|o)==(0|(b=s>>>0<P>>>0?b+1|0:b))&s>>>0<_>>>0|o>>>0>b>>>0,x=(f=b)+(b=U)|0,b=0,b=((o=s=(0|f)==(0|(x=(_=(U=0)+s|0)>>>0<U>>>0?x+1|0:x))&s>>>0>_>>>0|f>>>0>x>>>0)>>>0>(s=s+P|0)>>>0?1:b)+W|0,x=m,o=b=(o=s)>>>0>(s=s+Z|0)>>>0?b+1|0:b,m=x=(m=f=(0|W)==(0|b)&s>>>0<Z>>>0|b>>>0<W>>>0)>>>0>(f=f+gA|0)>>>0?x+1|0:x,(0|x)==131071|x>>>0<131071?(xr=Rr|Br,or=Oe|Hr,Nr(I+80|0,s,o,f,m,l,c,zA,bA),U=x=e[I+84>>2],b=t<<17,W=(r=(_=0)-(P=e[I+88>>2])|0)-(x=!!(x|(t=e[I+80>>2])))|0,P=(b-(e[I+92>>2]+(P>>>0>_>>>0)|0)|0)-(r>>>0<x>>>0)|0,_=0-t|0,U=0-(!!(0|t)+U|0)|0,t=ir+16382|0):(Nr(I+96|0,s=(1&o)<<31|s>>>1,o=f<<31|o>>>1,f=(1&m)<<31|f>>>1,m=m>>>1|0,l,c,zA,bA),le=W=e[I+100>>2],W=(_=0-(Qe=e[I+104>>2])|0)-(P=!!(W|(x=e[I+96>>2])))|0,P=((t<<16)-(e[I+108>>2]+(U>>>0<Qe>>>0)|0)|0)-(P>>>0>_>>>0)|0,_=0-x|0,U=0-(!!(0|x)+le|0)|0,Qe=t,le=r,t=ir+16383|0),(0|t)>=32767)Me|=2147418112,t=0,r=0;else{if((0|t)>0)x=P<<1|W>>>31,W=W<<1|U>>>31,P=x,Qe=f,le=65535&m|t<<16,x=U<<1|_>>>31,m=_<<1;else{if((0|t)<=-113){t=0,r=0;break e}vr(I- -64|0,s,o,f,m,1-t|0),Mt(I+48|0,Qe,le,xr,or,t+112|0),Nr(I+32|0,l,c,zA,bA,s=e[I+64>>2],o=e[I+68>>2],Qe=e[I+72>>2],le=e[I+76>>2]),t=e[I+40>>2],_=(r=e[I+56>>2])-(W=t<<1|(x=e[I+36>>2])>>>31)|0,P=e[I+60>>2]-((e[I+44>>2]<<1|t>>>31)+(r>>>0<W>>>0)|0)|0,b=(t=e[I+32>>2])<<1,W=_-(t=(0|(f=x<<1|t>>>31))==(0|(m=e[I+52>>2]))&b>>>0>(r=e[I+48>>2])>>>0|f>>>0>m>>>0)|0,P=P-(t>>>0>_>>>0)|0,x=m-((r>>>0<b>>>0)+f|0)|0,m=r-b|0}t=m,Nr(I+16|0,l,c,zA,bA,3,0,0,0),Nr(I,l,c,zA,bA,5,0,0,0),f=x+(r=0)|0,f=m>>>0>(t=t+(b=1&s)|0)>>>0?f+1|0:f,m=t,c=(0|c)==(0|f)&t>>>0>l>>>0|c>>>0<f>>>0,x=P,t=(0|r)==(0|f)&t>>>0<b>>>0|r>>>0>f>>>0,b=o,r=b=(r=t=(t=(0|(x=t>>>0>(l=t+W|0)>>>0?x+1|0:x))==(0|bA))&(0|l)==(0|zA)?c:t&l>>>0>zA>>>0|x>>>0>bA>>>0)>>>0>(t=t+s|0)>>>0?b+1|0:b,s=(0|o)==(0|b)&t>>>0<s>>>0|o>>>0>b>>>0,b=le,b=(o=s)>>>0>(s=s+Qe|0)>>>0?b+1|0:b,c=s,P=(0|(o=e[I+20>>2]))==(0|f)&ee[I+16>>2]<m>>>0|o>>>0<f>>>0,o=e[I+28>>2],o=b>>>0<2147418112&((0|(s=e[I+24>>2]))==(0|l)&(0|o)==(0|x)?P:(0|o)==(0|x)&s>>>0<l>>>0|o>>>0<x>>>0),s=r,b=(r=t=(0|r)==(0|(s=(P=o)>>>0>(o=t+o|0)>>>0?s+1|0:s))&t>>>0>o>>>0|r>>>0>s>>>0)>>>0>(t=t+c|0)>>>0?b+1|0:b,c=t,f=(0|(r=e[I+4>>2]))==(0|f)&ee[I>>2]<m>>>0|r>>>0<f>>>0,r=e[I+12>>2],r=x=(r=t=b>>>0<2147418112&((0|(t=e[I+8>>2]))==(0|l)&(0|r)==(0|x)?f:(0|r)==(0|x)&t>>>0<l>>>0|r>>>0<x>>>0))>>>0>(t=t+o|0)>>>0?s+1|0:s,o=(0|s)==(0|x)&t>>>0<o>>>0|s>>>0>x>>>0,s=b,l=o,re|=o=o+c|0,Me|=s=l>>>0>o>>>0?s+1|0:s}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=re,e[A+12>>2]=Me,Y=I+336|0}function ft(A,t,r,s,o){var l,c,f,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0;if(Y=c=Y-80|0,f=e[r+8>>2],!o|!y[r+4>>1]||(e[o+8>>2]=0),l=Xe(s,0,152),e[l+44>>2]=u[f+14|0],e[l+40>>2]=u[f+15|0],s=y[f+8>>1]){for(s=e[34459]+(s<<1)|0,re=256&t,le=r+32|0,Qe=r-32|0,Oe=r- -64|0,Ve=r+96|0,AA=r+-64|0,gA=r-28|0,bA=1&t,zA=r-24|0,Ce=e[30450];;){m=15&(P=(t=y[s>>1])>>>8|0);e:{A:{r:{a:{n:{o:{c:{u:{l:{i:{p:{C:switch(0|(b=t>>>12|0)){case 10:break c;case 9:break u;case 6:break l;case 2:case 3:break i;case 1:break p;case 0:break C;case 11:case 12:case 13:case 14:case 15:break o;default:break n}I=255&t;C:{h:{b:switch(0|m){case 13:if(I)break h;m=s,t=0;break C;case 0:m=s;m:switch(I-1|0){case 1:break e;case 0:break A;default:break m}e[c+20>>2]=Co(c+75|0,e[f>>2]),e[c+16>>2]=t,rr(Ce,85851,c+16|0);break e;case 5:if(u[e[144464+(u[r+34|0]<<2)>>2]+11|0]!=2)break e;e[l+20>>2]=I;break e;case 12:break b;default:break a}e[l+44>>2]=e[l+44>>2]+(t<<24>>31&-256|I);break e}d[l+132|0]=u[s+3|0],m=s+2|0,d[l+133|0]=u[0|m],t=2,I>>>0<3||(d[l+134|0]=u[s+5|0],m=s+4|0,d[l+135|0]=u[0|m],t=4,I>>>
28960<5||(d[l+136|0]=u[s+7|0],m=s+6|0,d[l+137|0]=u[0|m],t=6,I>>>0<7||(d[l+138|0]=u[s+9|0],m=s+8|0,d[l+139|0]=u[0|m],t=8,I>>>0<9||(d[l+140|0]=u[s+11|0],m=s+10|0,d[l+141|0]=u[0|m],t=10,I>>>0<11||(d[l+142|0]=u[s+13|0],m=s+12|0,d[l+143|0]=u[0|m],t=12,I>>>0<13||(d[l+144|0]=u[s+15|0],m=s+14|0,d[l+145|0]=u[0|m],t=14,I>>>0<15||(d[l+146|0]=u[s+17|0],m=s+16|0,d[l+147|0]=u[0|m],t=16)))))))}d[132+(t+l|0)|0]=0,I=W;break A}if(!A|m>>>0>7||(b=r,u[e[144464+(u[r+2|0]<<2)>>2]+11|0]!=2&&(b=le,u[e[144464+(u[r+34|0]<<2)>>2]+11|0]!=2))||!(1&(m=e[A+56>>2]))&&16&u[0|r])break e;I=15&u[b+3|0],I=2&m&&u[b+6|0]<=I>>>0?4:I;p:{C:{h:{b:switch((m=7&P)-3|0){case 1:break C;case 0:break b;default:break h}if(I>>>0>3)break p;break e}if(e[102832+(m<<2)>>2]>(0|I))break p;break e}if(u[b+6|0]>I>>>0)break e}e[l+8>>2]=255&t,I=1;break r}if((57344&t)==8192){for(jA=e[32972],P=1,Me=0;;){x=255&t,m=(_=4095&t)>>>8|0;i:if(_>>>0<=3583){(0|(I=(m>>>0)%7|0))==6&&(I=y[s+2>>1]),Z=0,m=r;p:{C:{h:switch(0|I){case 6:if(b=0,y[r+36>>1]|y[r+68>>1])break i;case 3:m=Oe;break C;case 9:if(b=0,y[r+36>>1]|y[r+68>>1])break i;if(m=Ve,!y[r+100>>1])break p;break i;case 7:if(b=0,y[r+36>>1])break i;for(I=1;;){if(u[e[144464+(u[(m=(I<<5)+r|0)+2|0]<<2)>>2]+11|0]==2)break C;if(y[4+(((I=I+1|0)<<5)+r|0)>>1])break}break i;case 5:if(b=0,y[r+4>>1])break i;case 0:Z=1,m=Qe;break C;case 4:if(b=0,y[r+36>>1])break i;case 2:m=le;break C;case 8:if(b=0,!o)break i;if(Z=1,e[(m=o)+8>>2])break p;break i;case 10:break h;default:break C}if(b=0,y[r+4>>1]|y[gA>>1])break i;Z=1,m=AA;break p}C:switch(0|I){case 0:case 5:break C;default:break p}m=(u[m+2|0]==1?-32:0)+m|0}if(re?(I=e[144464+(u[m+2|0]<<2)>>2],e[m+8>>2]=I):I=e[m+8>>2],_>>>0<=1791){if(b=1,e[e[144464+(x<<2)>>2]>>2]==e[I>>2])break i;if(!(!Z|u[I+11|0]!=2)){b=(0|x)==u[I+13|0];break i}b=(0|x)==u[I+12|0];break i}x=31&_,b=0;p:switch(_>>>5&7){case 0:b=(0|x)==u[I+11|0];break i;case 1:b=(0|x)==(15&y[I+6>>1]);break i;case 2:b=e[I+4>>2]>>>x&1;break i;case 4:break p;default:break i}p:switch(0|x){case 0:case 1:case 2:case 3:case 4:if(u[e[144464+(u[m+2|0]<<2)>>2]+11|0]!=2){if(u[e[144464+(u[m+34|0]<<2)>>2]+11|0]!=2)break i;m=m+32|0}I=15&u[m+3|0],I=!A|!(2&u[A+56|0])?I:u[m+6|0]<=I>>>0?4:I;C:{h:switch(x-3|0){case 1:b=u[m+6|0]<=I>>>0;break i;case 0:if(b=1,I>>>0<=3)break C;break i;default:break h}if(b=1,e[102832+(x<<2)>>2]>(0|I))break i}b=0;break i;case 17:if(!u[I+11|0]){b=1;break i}b=(32&u[r+1|0])>>>5|0;break i;case 18:b=y[m+4>>1]!=0;break i;case 19:if(b=1,y[m+36>>1])break i;b=!u[e[m+40>>2]+11|0];break i;case 9:if(y[m+4>>1])break i;for(;;){if(b=!!(0|(I=12&u[m-29|0])),I)break i;if(y[(m=m-32|0)+4>>1])break}break i;case 10:b=u[I+11|0]!=2;break i;case 11:for(;;){if(b=!!(0|(I=y[m+36>>1])),I)break i;if(I=m,m=m+32|0,u[e[I+40>>2]+11|0]==2)break}break i;case 12:if(b=1,(254&u[I+11|0])==2)break i;b=(16&u[I+4|0])>>>4|0;break i;case 13:for(;b=(u[e[m+8>>2]+11|0]==2)+b|0,I=y[m+4>>1],m=m-32|0,!I;);b=(0|b)==1;break i;case 14:for(;b=(u[e[m+8>>2]+11|0]==2)+b|0,I=y[m+4>>1],m=m-32|0,!I;);b=(0|b)==2;break i;case 16:break p;default:break i}b=(16&u[0|m])>>>4|0}else if(b=0,(0|m)==15){p:switch(x-1|0){case 0:b=bA;break i;case 1:break p;default:break i}b=e[jA+132>>2]!=0}i:if(1970>>>(m=(I=65535&t)>>>12|0)&1)m=d[m+102848|0];else{p:switch(0|m){case 0:if(m=1,(3840&I)!=3328)break i;m=1+(1+(255&I)>>>1|0)|0;break i;case 6:m=(I>>>9&7)-5>>>0<2?12:1;break i;case 2:case 3:m=(0|(m=3840&I))==3328||(0|m)==1536?2:1;break i;default:break p}m=4,(I=y[s+4>>1])>>>0>61439||(m=(0|I)==2?3:2)}if(s=((m=y[(s=(m<<1)+s|0)>>1]==3)<<1)+s|0,m^=b,P=Me?m|P:m&P,Me=4096&t,(57344&(t=y[s>>1]))!=8192)break}if(!(1&P))if((63488&t)!=26624){i:if(1970>>>(m=t>>>12|0)&1)m=d[m+102848|0];else{p:switch(0|m){case 0:if(m=1,(3840&t)!=3328)break i;m=1+(1+(255&t)>>>1|0)|0;break i;case 6:m=(t>>>9&7)-5>>>0<2?12:1;break i;case 2:case 3:m=(0|(t&=3840))==3328||(0|t)==1536?2:1;break i;default:break p}m=4,(t=y[s+4>>1])>>>0>61439||(m=(0|t)==2?3:2)}s=(((65024&y[(t=(m<<1)+s|0)>>1])==24576)<<1)+t|0}else s=((255&t)<<1)+s|0}m=s-2|0,I=W;break A}l:switch(m>>>1|0){case 0:s=(((255&t)<<1)+s|0)-2|0;break e;case 5:e[l>>2]=2|e[l>>2],((t=u[e[r+40>>2]+12|0])-28&255)>>>0<=5&&(m=y[(t=((t<<2)+s|0)-112|0)+4>>1],t=y[t+2>>1],e[l+96>>2]=t>>>4<<24>>24,e[l+76>>2]=(15&t)<<18|m<<2),s=s+24|0;break e;case 6:break l;default:break e}((t=u[e[zA>>2]+13|0])-28&255)>>>0<=5&&(m=y[(t=((t<<2)+s|0)-112|0)+4>>1],t=y[t+2>>1],e[l+100>>2]=t>>>4<<24>>24,e[l+80>>2]=(15&t)<<18|m<<2),s=s+24|0;break e}t=y[(s=s+2|0)>>1]|t<<16&983040;u:switch(m-1|0){case 0:if((0|U)>9)break e;e[(c+32|0)+(U<<2)>>2]=s,s=(e[34459]+(t<<1)|0)-2|0,U=U+1|0;break e;case 1:e[l+124>>2]=t;break e;case 2:break u;default:break e}e[l+128>>2]=t;break e}e[(m=(((0|m)!=1)<<3)+l|0)+108>>2]=y[s+2>>1]|(255&t)<<16,t=y[s+4>>1]<<16,s=s+6|0,e[m+112>>
28962]=t|y[s>>1];break e}if(I=y[(m=s+2|0)>>1],_=t>>>4|0,e[(P=((x=b-11|0)<<2)+l|0)+88>>2]=255&_,e[P+68>>2]=t<<18&3932160|I<<2,(0|(s=y[s+4>>1]))==2){s=m;break e}if(I=t>>>0<=53247?s>>>0>61439?2:1:W-((0|x)==4)|0,b-13>>>0>1)break A;e[P+88>>2]=_<<24>>24;break A}e[c+4>>2]=Co(c+75|0,e[f>>2]),e[c>>2]=t,rr(Ce,85851,c);break e}e[4+((m<<2)+l|0)>>2]=I,I=re&&(0|m)==1?1:W}m=s}(0|I)!=1|(0|U)<=0?(s=m,W=I):(s=e[(c+32|0)+((U=U-1|0)<<2)>>2],W=0)}if(s=s+2|0,(0|W)==1)break}!o|u[r+17|0]!=2||(A=e[r+4>>2],e[o>>2]=e[r>>2],e[o+4>>2]=A,A=e[r+28>>2],e[o+24>>2]=e[r+24>>2],e[o+28>>2]=A,A=e[r+20>>2],e[o+16>>2]=e[r+16>>2],e[o+20>>2]=A,A=e[r+12>>2],e[o+8>>2]=e[r+8>>2],e[o+12>>2]=A),d[r+23|0]=e[l+44>>2],(A=e[l+68>>2])?(e[r+24>>2]=A,A=l+88|0):(e[r+24>>2]=e[l+72>>2],A=l+92|0),e[r+28>>2]=e[A>>2]}Y=c+80|0}function ds(A,t,r,s,o,l){var c,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0;Y=c=Y-848|0;e:if(!(!e[A+104>>2]|8&u[o+2|0]|e[47202]==193)){for(e[s>>2]=0,e[33272]=0,e[33274]=l,d[c+192|0]=0,e[33273]=c+192;b=(l=b)+1|0,d[0|(le=t+l|0)]-48>>>0<10;);e[56798]=0,Oe=c+188|0,P=-2147483648,Y=re=Y-16|0;A:if(f=u[0|t]){x=t;r:{for(;;){if(!((0|(f=f<<24>>24))==32|f-9>>>0<5))break r;if(f=u[x+1|0],x=x+1|0,!f)break}break A}r:switch((f=u[0|x])-43|0){case 0:case 2:break r;default:break A}U=(0|f)==45?-1:0,x=x+1|0}else x=t;for(;f=-48,(((_=d[0|x])-48&255)>>>0<10||(f=-87,(_-97&255)>>>0<26||(f=-55,!((_-65&255)>>>0>25))))&&!((0|(_=f+_|0))>=10);)Nr(re,10,0,0,0,W,Z,0,0),f=1,e[re+8>>2]|e[re+12>>2]||(Me=at(W,Z,10,0),(0|(Qe=ce))==-1&~_>>>0<Me>>>0||(f=Qe,Z=(W=_+Me|0)>>>0<_>>>0?f+1|0:f,Ce=1,f=I)),x=x+1|0,I=f;Oe&&(e[Oe>>2]=Ce?x:t);A:{r:{if(I)e[56798]=68,W=-2147483648,Z=0;else if(!Z&W>>>0<2147483648)break r;if(!U){e[56798]=68,P=2147483647;break A}if(!(!Z&W>>>0<=2147483648)){e[56798]=68;break A}}P=(U^W)-U|0}if(Y=re+16|0,U=P,!(e[56798]|e[c+188>>2]==(0|t))){A:{r:{a:{if(!(!((0|(_=64&u[A+109|0]?4:3))!=(0|l)|e[A+124>>2]!=d[t-2|0])&d[t-3|0]-48>>>0<10)){n:{if(e[A+124>>2]!=32){if(!(16&u[A+105|0]))break a;if((0|l)==3)break n;break a}if((0|l)!=3)break a}if(4&u[o+2|0]|d[t-2|0]-48>>>0>=10)break a}d[133104]=0,d[c+288|0]=0,Ve=1;break r}if(d[133104]=0,e[33275]=0,d[c+288|0]=0,AA=1,Ce=0,u[0|t]==48)break A}Ce=Ft(A,t,le,o,0)}u[0|le]!=46|d[t+b|0]-48>>>0<10|1&d[o+13|0]|d[le+2|0]-48>>>0<10||(d[0|le]=0);A:if(!Ce||(Me=1,e[A+212>>2]==26741)){if(P=c+256|0,e[c+844>>2]=P,m=b,64&u[o+1|0]&&(d[c+256|0]=45,P=c+256|1,e[c+844>>2]=P,m=l+2|0),x=u[t+m|0]){for(;!((255&x)==32|(0|m)>28)&&(f=e[c+844>>2],e[c+844>>2]=f+1,d[0|f]=x,x=u[(m=m+1|0)+t|0]););P=e[c+844>>2]}if(d[0|P]=0,Me=1,f=d[c+256|0]){if(!(I=e[A+136>>2])||nr(c+256|0,I)){if(f-48>>>0<10||(e[c+176>>2]=c+256,dA(f=c+800|0,88653,c+176|0),!GA(A,f,133104)))break A;e[s>>2]=128|e[s>>2],e[c+160>>2]=c+256,dA(f=c+800|0,88773,c+160|0),GA(A,f,133116),Me=0}Ce=2}}Oe=e[o>>2],d[c+352|0]=0,d[c+624|0]=0;A:{r:{a:if(!(!AA|u[0|t]!=48||(0|(f=d[t+1|0]))==32|(0|f)==e[A+128>>2])){n:{if((0|l)==2){if(u[t+3|0]!=58|d[t+5|0]-48>>>0>=10||!((0|(f=d[t+7|0]))==32|f-9>>>0<5))break n;break a}if((0|l)>3)break r}if(u[0|t]==48&&!((0|(f=l-1|0))<=0))for(m=0;;){if(GA(A,88875,EA(I=c+288|0)+I|0),u[(m=m+1|0)+t|0]!=48)break a;if(!((0|f)>(0|m)))break}}a:{n:{if(!((0|(f=d[0|le]))==32&&16&u[A+105|0])){if(Qe=2,W=l+2|0,(0|f)==e[A+124>>2])break n;Z=1,P=0,f=0;break a}Qe=1,W=l+2|0}if(4&u[o+14|0])P=1,f=0,Z=1;else for(f=0,x=1,m=l,Z=1;;){I=f,f=x,x=(re=m+Qe|0)+t|0,m=0;n:{for(;;){if(P=1,!(d[m+x|0]-48>>>0>=10)){if((0|_)!=(0|(m=m+1|0)))continue;break n}break}f=I;break a}if(d[x+_|0]-48>>>0<10){f=I;break a}if(m=0,d[x-1|0]-48>>>0<10){f=I;break a}n:{for(;;){if(u[(m+re|0)+t|0]==48){if((0|_)!=(0|(m=m+1|0)))continue;break n}break}Z=0}if((0|(I=d[(m=_+re|0)+t|0]))!=e[A+124>>2]&(!(16&u[A+105|0])|(0|I)!=32))break a;if(W=m+2|0,4&u[2+(O(x=f+1|0,12)+o|0)|0])break}}m=!U;a:if(!(!Z|!(64&u[1+(O(f,12)+o|0)|0])|e[A+212>>2]!=26741)){n:switch(u[0|(I=t+W|0)]-97|0){case 0:case 4:break n;default:break a}n:{o:{c:{u:switch((x=u[I+1|0])-116|0){case 6:break a;case 1:case 2:case 3:case 4:case 5:break o;case 0:break u;default:break c}if(u[I+2|0]!=116)break n;break a}if((0|x)==32)break a}if(!(!!((0|U)%1e3|0)&(0|f)!=1)&&(0|x)==108)break a}e[33274]=1|e[33274]}W=32768&Oe,m&=Ve;a:if(e[A+128>>2]!=d[0|le]|d[t+b|0]-48>>>0>=10){n:{if(!m){if(m=0,I=1,!((0|f)>0&P))break n;U=(b=mt(A,U,f,Z,c+624|0))?0:U,m=!!(0|b),x=0;break a}m=1,U=0,e[33275]==1&&(e[c+144>>2]=f+1,dA(b=c+800|0,89026,c+144|0),GA(A,b,c+688|0)||(e[c+128>>
vendor: 4,295 bytes, line 2896
28962]=f,dA(b=c+800|0,89026,c+128|0),GA(A,b,c+624|0)))}I=1,x=0}else GA(A,88882,c+624|0),I=0,x=256;P=W?2:Ce;a:{if(f|u[c+624|0]|u[0|le]!=46){if(f)break a}else GA(A,89192,c+624|0);if(e[c+844>>2]=t,d[t+1|0]-48>>>0<10)for(;b=e[c+844>>2],e[c+844>>2]=b+1,d[b+2|0]-48>>>0<10;);if(d[e[c+844>>2]-1|0]-48>>>0>=10||(e[c+416>>2]=e[c+844>>2]-1,ur(A,c+416|0,c+192|0,s,4,o)&&(e[33272]=2)),u[c+192|0]|u[e[c+844>>2]]==48||ur(A,c+844|0,c+192|0,s,4,o)&&(e[33272]=1),AA){if(!P&I&&(e[c+112>>2]=U,dA(o=c+800|0,89214,c+112|0),GA(A,o,r)))break A;if(1&d[A+110|0]){for(b=t;(32|u[0|b])!=32;)b=b+1|0;e[c+416>>2]=b,u[b+1|0]==37&&(GA(A,89328,r),o=EA(r),d[e[c+416>>2]+1|0]=32,r=r+o|0)}}}_e(A,U,c+416|0,m,f,P|x|Ve),!(2&u[A+109|0])|(0|f)<=0?(e[c+60>>2]=15,e[c- -64>>2]=c+624,e[c+56>>2]=c+416,e[c+52>>2]=c+352,e[c+48>>2]=c+288,dA(r,89415,c+48|0)):(e[c+88>>2]=15,e[c+96>>2]=c+416,e[c+92>>2]=c+352,e[c+84>>2]=c+624,e[c+80>>2]=c+288,dA(r,89346,c+80|0));a:if(!I)for(;;){for(l=l+1|0,I=0;I=(b=I)+1|0,d[(f=l+b|0)+t|0]-48>>>0<10;);o=2;n:{o:{c:{u:{l:{i:switch((I=57344&e[A+104>>2])+-8192>>>13|0){case 6:break o;case 2:break c;case 0:case 4:case 5:break u;case 1:break l;case 3:break i;default:break n}o=5}if((0|(I=u[0|(m=t+l|0)]))==48)for(;GA(A,88875,f=c+688|0),ts(r,f),b=b-1|0,(0|(I=u[0|(m=(l=l+1|0)+t|0)]))==48;);if((0|o)<(0|b)|(I<<24>>24)-48>>>0>=10)break n;o=c+688|0,_e(A,ka(m),o,0,0,0),ts(r,o),l=l+b|0;break n}if(_e(A,ka(o=t+l|0),c+416|0,0,0,0),!((0|I)==8192&u[0|o]!=48)){if(e[c+16>>2]=b,dA(o=c+800|0,89508,c+16|0),!GA(A,o,c+688|0))break n;ts((0|I)==49152?r:c+416|0,c+688|0)}ts(r,c+416|0),l=f;break n}if((0|b)>4||u[0|(o=t+l|0)]==48)break n;_e(A,l=ka(o),o=c+688|0,0,0,0),ts(r,o),l=f;break n}if(!((0|b)<=1))for(;;){if(e[c+32>>2]=d[t+l|0],dA(o=c+800|0,89575,c+32|0),!GA(A,o,c+688|0))break n;if(ts(r,c+688|0),l=l+1|0,!((0|(b=b-1|0))>1))break}}n:if(!((I=u[0|(b=t+l|0)])-48>>>0>=10||EA(r)>>>0>=190))for(;;){if(o=c+688|0,Os(A,d[0|b]-48|0,0,2,o),f=EA(r),e[c>>2]=15,e[c+4>>2]=o,dA(r+f|0,89594,c),(I=u[0|(b=(l=l+1|0)+t|0)])-48>>>0>=10)break n;if(!(EA(r)>>>0<=189))break}if(GA(A,89678,c+688|0)&&ts(r,c+688|0),e[A+128>>2]!=(0|I)|d[1+(t+l|0)|0]-48>>>0>=10)break a;GA(A,88882,o=c+688|0),ts(r,o)}if(!(o=u[0|r])|(0|o)==21||(o=WA(c+184|0,t=1+(t+l|0)|0),l=e[c+184>>2],!(2&u[A+106|0])|(0|l)!=32||(WA(c+184|0,t+o|0),l=e[c+184>>2]),Ke(l)|Z||(A=EA(r)+r|0,d[0|A]=11,d[A+1|0]=0)),e[s>>2]=-2147483648|e[s>>2],e[33275]=e[33275]-1,m=1,Me)break e;e[33264]=1;break e}e[s>>2]=-129&e[s>>2],m=0;break e}m=1}}return Y=c+848|0,m}function ea(A,t,r,s){var o,l,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0;if(Y=o=Y-416|0,Ce=y[r+8>>1],W=u[r+10|0],64&(l=e[r>>2])){for(e[r>>2]=-65&l,d[199388]=1,m=e[47202],P=e[49846],b=e[47352],x=e[47351],I=e[47350];;){c=(f=e[198304+(x<<2)>>2])>>8;e:{A:switch((31&f)-9|0){case 0:m=c;break e;case 4:P=c;break e;case 3:break A;default:break e}b=f>>>0>=256?c+b|0:0}if(!(!(128&f)&(0|I)>(0|(x=x+1|0))))break}e[47352]=b,e[47351]=x,e[49846]=P,e[47202]=m}P=0;e:if(!((0|(c=e[49572]))>997)){if(1048576&l||!u[0|t])u[199388]&&(e[49572]=c+1,d[199388]=0,e[(A=190288+(c<<3)|0)>>2]=983042,e[A+4>>2]=0),d[189088]=0;else if(!((0|c)>990)){(0|(c=e[A+8224>>2]))>0&&(e[A+8224>>2]=c-1),m=512&l?s:s+4|0,b=(240&e[47202])==16,(re=2&l)&&((0|(f=e[47200]))<3||(0|(c=e[47350]))>243||(u[199388]&&(e[(x=198300+(c<<2)|0)>>2]=-129&e[x>>2]),e[47350]=c+1,d[199388]=1,Me=(0|f)==3?20:f,e[198304+(c<<2)>>2]=Me<<8|193)),I=b?m:s;A:{r:{if(!(8&l)){for(;s=u[(c=_)+t|0],d[c+(o+240|0)|0]=s,223&s&&(_=c+1|0,c>>>0<160););if(d[o+66|0]=0,_=o- -64|2,P=Ne(e[47192],t,r,_),e[o+412>>2]=P,!(4096&P))break r;LA(t,o+240|0,c);break e}a:if(Xr(t,87276,3))Tr(t,189088,o+240|0);else{if(x=0,223&(c=u[0|(_=t+3|0)]))for(;d[(o+240|0)+x|0]=Gs(c<<24>>24),x=x+1|0,223&(c=u[0|(_=_+1|0)]););d[(s=o+240|0)+x|0]=0,c=0;n:if(!((0|(r=e[34461]))<=0)){for(;;){if(!nr(s,O(c,44)+137856|0)){e[34457]=c;break n}if((0|r)==(0|(c=c+1|0)))break}c=r}if((0|(r=(0|r)==(0|c)?-1:c))<=0)break a;is(r),d[189090]=0,d[189089]=r,d[189088]=21}P=-2147483648,e[o+412>>2]=-2147483648,s=-1;break A}if(!(!(8388608&P)|8&u[r+12|0])){for(Y=b=Y-208|0,x=e[A+60>>2],f=t;s=f,f=f+1|0,u[0|s]!=32;);WA(b+204|0,f);r:if(Ke(e[b+204>>2])){m=PA(b,189088),f=(!(256&x)|(Z=lA(A,f,r+12|0,0))>>>15)&!(67108864&Z)&u[189088]!=21;a:{n:{if(512&x){if(!(f&!(16&u[r+12|0])))break n;break a}if(f)break a}PA(189088,m);break r}
2896if(d[0|s]=45,e[r>>2]=-2&e[r>>2],P=0,f=189088,U=lA(e[47192],t,r,0),e[o+412>>2]=U,!((0|x)<=0)&&(m=u[189088])){for(;P=(u[e[144464+(m<<2)>>2]+11|0]==2)+P|0,m=u[0|(f=f+1|0)];);if(!((31&x)>=(0|P))){d[0|s]=32,e[o+412>>2]=lA(e[47192],t,r,0);break r}}e[o+412>>2]=128|(U||Z),e[33264]=1}Y=b+208|0}if(s=-1,u[189088]==21){if(x=PA(o+16|0,132848),b=e[o+412>>2],f=LA(t,o+240|0,c),m=o- -64|1,(0|(s=un(u[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],u[o+66|0]?(w[o+64>>1]=8192,b=lA(e[47193],m,r,0)):b=Ne(e[47193],f,r,_)),u[189088]==21&&(c=LA(f,o+240|0,c),(0|(s=un(u[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],u[o+66|0]?(w[o+64>>1]=8192,b=lA(e[47193],m,r,0)):b=Ne(e[47193],c,r,_)),P=4096,u[189088]==21))break e;e[o+412>>2]=b,(0|s)>=0||(d[189090]=0,w[94544]=3341,(0|s)==-1&&(PA(132848,x),is(e[e[32972]+60>>2]),s=e[e[32972]+60>>2]))}P=e[o+412>>2],128&l||(I=268435456&P&&(0|I)<=1?1:I,!(256&P)|528&l|e[A+8224>>2]|2&u[r-11|0]||(e[A+8224>>2]=3,I=(0|I)<=4?4:I)),I=(0|I)<=0&&e[49846]>2?1:I}if(r=u[199388],!((0|I)<=0|(0|(_=e[49572]))>990)){e[49572]=_+1,f=1&r,r=0,w[(c=190288+(_<<3)|0)>>1]=f?2:0,d[c+7|0]=0,d[c+3|0]=0,f=I>>>0>1,d[c+2|0]=f?9:11,w[c+4>>1]=0,e[A+8236>>2]=0;A:if(!(!(c=f?I-2|0:0)|(0|(_=e[49572]))>990))for(m=A+8236|0;;){if(e[49572]=_+1,w[(f=190288+(_<<3)|0)>>1]=0,d[f+7|0]=0,d[f+3|0]=0,b=c>>>0>1,d[f+2|0]=b?9:11,w[f+4>>1]=0,e[m>>2]=0,_=e[49572],(0|(c=b?c-2|0:0))<=0)break A;if(!((0|_)<991))break}e[A+8228>>2]=0,e[A+8232>>2]=0}d[199388]=1&r,!re|e[47200]!=1||(e[49572]=_+2,d[199388]=0,w[(c=190288+(_<<3)|0)>>1]=1&r?2:0,d[c+7|0]=0,w[c+2>>1]=10,w[c+4>>1]=0,w[c+12>>1]=0,e[c+8>>2]=1179648,d[c+15|0]=0,1&l&&jt(d[t+1|0])&&(r=u[199388],d[199388]=0,t=e[49572],e[49572]=t+2,w[(t=190288+(t<<3)|0)>>1]=r?2:0,d[t+7|0]=0,w[t+2>>1]=10,w[t+4>>1]=0,w[t+12>>1]=0,e[t+8>>2]=1179648,d[t+15|0]=0)),c=W>>>0<31;A:if(!((0|s)<0))if(t=e[49572],r=u[190290+((I=t-1|0)<<3)|0],u[189088]!=9|u[189089]!=21)(0|r)!=21&&(f=u[199388],d[199388]=0,d[(r=190288+(t<<3)|0)+7|0]=0,w[r+2>>1]=21,w[r+4>>1]=0,w[r>>1]=f?2:0,I=t),e[49572]=I+1,d[190295+(I<<3)|0]=s;else{if((0|r)!=21)break A;e[49572]=I}t=2047&Ce,r=(c?W:31)<<11,b=(Qe=128&l)?u[e[144464+(u[189088]<<2)>>2]+11|0]?189088:189089:189088,(I=u[0|b])|!(1&d[199388])||(I=23,d[0|b]=23,d[b+1|0]=0),Oe=t|r,m=e[49572];A:if(I)if((0|m)>994)t=0;else for(gA=((-1610612736&P)==-2147483648)<<4,Ce=Oe+1|0,bA=A+8233|0,t=0,f=1,Z=0,Ve=1,W=-1,re=-1,c=0;;){x=b+1|0;r:{if((0|(U=255&I))!=255){if(r=e[144464+(U<<2)>>2])break r;e[o>>2]=U,Y=r=Y-16|0,e[r+12>>2]=o,Vi(132552,87474,o),Y=r+16|0,m=e[49572]}if(!(I=u[0|x]))break A;if(b=x,(0|m)<995)continue;break A}r:if((0|(le=255&I))!=21)if((0|(b=u[r+11|0]))!=1){r=Ce;a:switch(le-12|0){case 8:d[(r=190288+((W=m-1|0)<<3)|0)+3|0]=f,w[r>>1]=4|y[r>>1],r=c;break r;case 0:w[(r=190280+(m<<3)|0)>>1]=8|y[r>>1],r=c;break r;case 10:P|=16384,e[o+412>>2]=P,r=c;break r;case 3:break r;default:break a}U=u[199388],d[199388]=0,d[(r=(le=m<<3)+190288|0)+7|0]=0,d[r+2|0]=I,w[r+4>>1]=c,c=(U?2:0)|gA,w[r>>1]=c,(0|b)==2?((0|f)>=4&&(d[189076]=1),(0|W)<0||(0|(t=m-1|0))!=(0|W)&&(d[190291+(t<<3)|0]=f),w[r>>1]=4|c,AA=(t=(0|f)>(0|re))?m:AA,re=t?f:re,c=1,Z&&(d[r+7|0]=Z),W=m,Z=0,t=f):(!Ve|!(64&u[0|bA])||(w[r>>1]=8|c),c=f),m=m+1|0,e[49572]=m,d[le+190291|0]=t,r=0,Ve=0,f=c}else{if(!y[r+8>>1]){f=u[r+14|0],r=c;break r}if((0|W)<0){r=c,Z=U;break r}d[190295+(W<<3)|0]=I,r=c}else e[(r=190288+(m<<3)|0)>>2]=1376256,w[r+4>>1]=0,d[r+7|0]=u[b+1|0],e[49572]=m+1,is(u[b+1|0]),x=b+2|0,m=e[49572],r=c;if(!(I=u[0|x]))break A;if(b=x,c=r,!((0|m)<995))break}else t=0;131072&l&&(r=m+1|0,e[49572]=r,f=u[199388],d[199388]=0,d[(c=190288+(m<<3)|0)+7|0]=0,w[c+2>>1]=27,w[c+4>>1]=0,w[c>>1]=f?2:0,m=r),Qe||(w[190292+(_<<3)>>1]=Oe),e[A+8228>>2]=0,u[e[144464+(u[190282+(m<<3)|0]<<2)>>2]+11|0]!=2|(0|t)<4||(e[A+8228>>2]=1),(0|s)>=0&&(PA(132848,o+16|0),is(e[e[32972]+60>>2]),r=u[199388],d[199388]=0,s=e[49572],w[(t=190288+(s<<3)|0)>>1]=r?2:0,w[t+2>>1]=21,w[t+4>>1]=0,d[t+7|0]=e[e[32972]+60>>2],m=s+1|0,e[49572]=m),(0|Me)>0&&(d[199388]=0,e[49572]=m+1,e[(t=190288+(m<<3)|0)>>2]=655362,r=e[47350],e[47350]=r+1,d[t+7|0]=0,w[t+4>>1]=0,e[198304+(r<<2)>>2]=Me<<8|225),1024&P&&(w[(t=190288+(AA<<3)|0)>>1]=64|y[t>>1]),e[A+8232>>2]=P}}return Y=o+416|0,P}function Aa(A,t,r,s,o){var l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,
vendor: 43,637 bytes, line 2896
2896Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0;e:if(t){if(re=o<<4,c=(t=e[33268])+r|0,!((0|t)<=0||(l=u[0|(m=re+129360|0)],x=u[m+1|0]-l<<8,x=(0|t)!=1?(0|x)/(0|t)|0:x,(0|r)>=(0|c))))for(P=x>>>0>255,U=x>>>8|0,l<<=8,m=0-x>>>8|0,Me=(0|x)<=0,t=r;Me?(I=(b=(b=(0|(f=(0|(f=e[101024+(d[O(t,6)+A|0]<<2)>>2]))<(0|m)?m:f))>=18?18:f)+(f=(0|(f=(0|(l=l+x|0))/256|0))>0?f:0)|0)>>>0>=254?254:b,f=f>>>0>=254?254:f):(f=O(t,6)+A|0,d[f+2|0]=P|u[f+2|0],f=(b=(0|(f=(0|l)/256|0))>0?f:0)>>>0>=254?254:b,I=(b=b+U|0)>>>0>=254?254:b,l=l+x|0),b=O(t,6)+A|0,d[b+5|0]=f,d[b+4|0]=I,(0|c)!=(0|(t=t+1|0)););if(2&u[188785]?(m=e[33271],e[33270]=m):m=e[33270],U=(P=u[(l=(t=o<<4)+129360|0)+3|0])-(f=u[l+2|0])<<8,Me=e[l+4>>2],(0|r)>0?(Oe=101056,le=5,b=(0|U)/(u[t+129368|0]-1|0)|0):(Oe=e[(t=t+129360|0)+12>>2],le=u[t+10|0],b=0),(0|c)<(0|m)){for(x=(0|r)<=0,Z=((t=U>>31)^U)-t|0,_=129360+(o<<4)|0,f<<=8,Qe=P<<8,P=0;;){A:{if(I=O(c,6)+A|0,!(!(1&x)&(0|(l=d[0|I]))<4)){r=0,t=c;r:if(1&((0|l)==5|x)){for(;(0|(b=d[O(t,6)+A|0]))<=6&&(r=((0|b)>3)+r|0,(0|m)!=(0|(t=t+1|0))););if(W=0,(0|(Ce=(0|(t=u[_+8|0]))>(0|r)?r:t))<2){b=0,P=f;break r}b=(0|U)/(Ce-1|0)|0,P=f}else(0|Ce)>0?P=b+P|0:(P=Qe+(O(Z,d[W+Oe|0])>>6)|0,(0|le)>(0|(W=W+1|0))||(Oe=e[_+12>>2],W=0));if(Ce=Ce-1|0,!((0|l)<4)){d[0|I]=6,r=(t=(0|(t=(0|P)/256|0))>0?t:0)+(((r=(l=e[Me+(l<<2)>>2])>>31)^l)-r|0)|0;break A}}(0|l)!=3?(t=(0|P)/256|0,(63&u[I-6|0])>>>0>=3?(r=(l=e[Me+(l<<2)>>2])>>31,r=(t=(0|(t=t-d[_+9|0]|0))>0?t:0)+((r^l)-r|0)|0):r=(t=(0|t)>0?t:0)+(((r=(l=e[Me+(l<<2)>>2])>>31)^l)-r|0)|0):r=(t=(0|(t=(0|P)/256|0))>0?t:0)+(((r=(l=e[Me+12>>2])>>31)^l)-r|0)|0}if(d[I+5|0]=t>>>0>=254?254:t,x=0,t=(0|r)>0?r:0,d[I+4|0]=t>>>0>=254?254:t,d[I+2|0]=u[I+2|0]|l>>>31,(0|m)==(0|(c=c+1|0)))break}c=m}if(!(u[133068]||((268435455&o)==3&&(t=O(c,6)+A|0,d[t+2|0]=2|u[t+2|0]),e[33269]?(t=u[(l=100768+(o<<4)|0)+5|0],f=l+3|0,r=u[l+4|0]-t|0):(t=u[(r=100768+(o<<4)|0)+2|0],f=re+100768|0,r=u[r+1|0]-t|0),l=O(c,6)+A|0,d[l+5|0]=t>>>0>=254?254:t,d[l+2|0]=u[l+2|0]|r>>>31,t=(b=t)+(((t=r>>31)^r)-t|0)|0,d[l+4|0]=t>>>0>=254?254:t,r=O(m,6)+A|0,d[r+1|0]=u[0|f],t=c+1|0,u[0|r]==4&&(d[0|r]=6),(0|(r=s-t|0))<=0||(o=u[(c=100768+(o<<4)|0)+12|0],c=u[c+13|0]-o<<8,c=(0|r)!=1?(0|c)/(0|r)|0:c,(0|t)>=(0|s)))))for(b=c>>>0>255,x=c>>>8|0,r=o<<8,o=0-c>>>8|0,P=(0|c)<=0;P?(f=(m=(f=(0|(l=(0|o)>(0|(l=e[101024+(d[O(t,6)+A|0]<<2)>>2]))?o:l))>=18?18:l)+(l=(0|(l=(0|(r=r+c|0))/256|0))>0?l:0)|0)>>>0>=254?254:m,m=l>>>0>=254?254:l):(l=O(t,6)+A|0,d[l+2|0]=b|u[l+2|0],m=(l=(0|(l=(0|r)/256|0))>0?l:0)>>>0>=254?254:l,f=(l=l+x|0)>>>0>=254?254:l,r=r+c|0),l=O(t,6)+A|0,d[l+5|0]=m,d[l+4|0]=f,(0|s)!=(0|(t=t+1|0)););}else{if(t=(le=e[34455])+O(o,68)|0,c=u[t+24|0],m=u[t+25|0],l=(t=e[33268])+r|0,!((0|t)<=0||(I=m-c<<8,I=(0|t)!=1?(0|I)/(0|t)|0:I,(0|r)>=(0|l))))for(b=I>>>0>255,x=I>>>8|0,t=c<<8,m=0-I>>>8|0,P=(0|I)<=0;P?(c=(c=(U=(0|(c=(0|(c=e[101024+(d[O(r,6)+A|0]<<2)>>2]))<(0|m)?m:c))>=18?18:c)+(f=(0|(c=(0|(t=t+I|0))/256|0))>0?c:0)|0)>>>0>=254?254:c,f=f>>>0>=254?254:f):(c=O(r,6)+A|0,d[c+2|0]=b|u[c+2|0],f=(c=(0|(c=(0|t)/256|0))>0?c:0)>>>0>=254?254:c,c=(c=c+x|0)>>>0>=254?254:c,t=t+I|0),U=O(r,6)+A|0,d[U+5|0]=f,d[U+4|0]=c,(0|l)!=(0|(r=r+1|0)););2&u[188785]?(r=e[33271],e[33270]=r):r=e[33270],m=r,t=le+O(o,68)|0;A:if((0|(x=u[t+33|0]))!=255)for(;;){if((0|(m=m-1|0))<(0|l)){m=r;break A}if(!(d[O(m,6)+A|0]<4))break}if((0|r)>(0|l)){for(bA=((c=(AA=(P=u[t+32|0])-(I=u[0|(f=t+31|0)])<<8)>>31)^AA)-c|0,Qe=(0|(t=u[0|(b=t+30|0)]))==255,U=x<<8,Me=I<<8,zA=P<<8,re=le+O(o,68)|0,jA=(0|t)!=255,P=0,x=0,t=1,I=0;;){A:{if(_=O(l,6)+A|0,!(!(1&t)&(0|(Z=d[0|_]))<4)){r:if(1&((0|Z)==5|t)){a:if(jA){if(Ve=1,t=0,c=b,!((0|m)<=(0|(I=l+1|0)))){for(;;){if(c=b,(0|(x=d[O(I,6)+A|0]))>6)break a;if(t=((0|x)>3)+t|0,(0|m)==(0|(I=I+1|0)))break}c=b}}else{if(t=0,I=l,c=f,(0|m)<=(0|l))break a;for(;;){if(c=f,(0|(x=d[O(I,6)+A|0]))>6)break a;if(t=((0|x)>3)+t|0,(0|m)==(0|(I=I+1|0)))break}c=f}if(x=u[0|c]<<8,gA=0,(0|(I=(0|t)<(0|(c=u[re+34|0]))?t:c))<2){Oe=0;break r}Oe=(0|AA)/(I-1|0)|0}else(0|l)!=(0|m)?Ve?(Qe=1,I=I+1|0,Ve=0,x=Me):(0|I)>0?(x=x+Oe|0,Ve=0):(Ve=0,x=(O(d[16+(re+gA|0)|0],bA)>>6)+zA|0,gA=(0|(t=gA+1|0))<u[re+35|0]?t:0):(Qe=2,x=U);if(I=I-1|0,!((0|Z)<4)){t=c=l+1|0;r:if(!((0|r)<=(0|l)))for(;;){if(d[O(t,6)+A|0]>1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}d[0|_]=6,d[_+1|0]=u[re+26|0],P=0,W=u[re+27|0],l=(0|(l=(0|x)/256|0))>0?l:0,d[_+5|0]=l>>>0>=254?254:l,l=l+W|0,d[_+4|0]=l>>>0>=254?254:l,Ce=t-c|0;break A}}if((0|Z)>=2){t=c=l+1|0;r:if(!((0|r)<=(0|l)))for(;;){if(d[O(t,6)+A|0]>1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}P=0,l=(0|(l=(0|x)/256|0))>0?l:0,d[_+5|0]=l>>>0>=254?254:l,W=e[100976+(Z<<2)>>2],d[_+2|0]=u[_+2|0]|W>>>31,l=(0|(l=(Z=l)+(((l=W>>31)^W)-l|0)|0))>0?l:0,d[_+4|0]=l>>>0>=254?254:l,Ce=t-c|0}else(0|Ce)<=1?(W=d[36+(re+Qe|0)|0],t=0):(W=d[(t=re+Qe|0)+36|0],t=(d[t+39|0]-W|0)/(Ce-1|0)|0),c=e[100976+(Z<<2)>>2],d[_+2|0]=u[_+2|0]|c>>>31,t=(0|(t=(((0|x)/256|0)+W|0)+O(t,P)|0))>0?t:0,d[_+5|0]=t>>>0>=254?254:t,t=(0|(t=t+(((Z=c)^(c>>=31))-c|0)|0))>0?t:0,d[_+4|0]=t>>>0>=254?254:t,P=P+1|0,c=l+1|0}if(t=0,(0|r)==(0|(l=c)))break}l=r}if(u[133068]||(c=O(l,6)+A|0,e[33269]?(f=le+O(o,68)|0,t=u[f+47|0],m=u[f+46|0]-t|0,f=f+45|0):(f=le+O(o,68)|0,t=u[f+44|0],m=u[f+43|0]-t|0,f=f+42|0),f=u[0|f],b=(((b=m>>31)^m)-b|0)+t|0,d[c+4|0]=b>>>0>=254?254:b,d[c+5|0]=t>>>0>=254?254:t,t=O(l,6)+A|0,d[t+2|0]=u[t+2|0]|m>>>31,r=O(r,6)+A|0,d[r+1|0]=f,t=l+1|0,u[0|r]==4&&(d[0|r]=6),(0|(r=s-t|0))<=0)||(c=le+O(o,68)|0,o=u[c+48|0],c=u[c+49|0]-o<<8,c=(0|r)!=1?(0|c)/(0|r)|0:c,(0|t)>=(0|s)))break e;for(b=c>>>0>255,x=c>>>8|0,r=o<<8,o=0-c>>>8|0,P=(0|c)<=0;P?(f=(m=(f=(0|(l=(0|o)>(0|(l=e[101024+(d[O(t,6)+A|0]<<2)>>2]))?o:l))>=18?18:l)+(l=(0|(l=(0|(r=r+c|0))/256|0))>0?l:0)|0)>>>0>=254?254:m,m=l>>>0>=254?254:l):(l=O(t,6)+A|0,d[l+2|0]=b|u[l+2|0],m=(l=(0|(l=(0|r)/256|0))>0?l:0)>>>0>=254?254:l,f=(l=l+x|0)>>>0>=254?254:l,r=r+c|0),l=O(t,6)+A|0,d[l+5|0]=m,d[l+4|0]=f,(0|s)!=(0|(t=t+1|0)););}}function Ts(){var A,t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0;if((0|(A=e[36455]))!=(0|(m=e[36454]))){e:if(!((0|(_=e[36427]))<0|(0|m)==(0|_))){r=x=e[8+(216192+((I=_)<<4)|0)>>2];A:{for(;;){if((s=e[(c=216192+((I=(0|(s=I-1|0))<0?169:s)<<4)|0)>>2])-5>>>0<2)break A;r:{if((0|s)<=4){if(e[c+12>>2]!=(0|r))break A;if(s=y[c+4>>1],e[c+12>>2]=x,r=e[c+8>>2],16&(t=y[r>>1]))break r;for(U=32&t?(O(s,12)>>>0)/10|0:s,o=0,s=r,f=0;;){t=y[r>>1];a:if(!(f>>>0<3&&8&t)){if(t=t<<16>>16,(0|(W=(b=w[2+((P=f<<1)+r|0)>>1])-(l=w[(P=x+P|0)+2>>1])|0))>(0|(b=(0|O(U,(0|O(e[200944+(f<<2)>>2],(0|W)>0?b+(l<<1)|0:(b<<1)+l|0))/3e3|0))/256|0)))o||((0|t)<0?s=r:(s=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=(o=t<<6)+177888|0)&&(s=y[r+4>>1]|y[r+6>>1]<<16,l=y[r>>1]|y[r+2>>1]<<16,w[t>>1]=l,w[t+2>>1]=l>>>16,w[t+4>>1]=s,w[t+6>>1]=s>>>16,s=y[r+60>>1]|y[r+62>>1]<<16,l=y[r+56>>1]|y[r+58>>1]<<16,w[t+56>>1]=l,w[t+58>>1]=l>>>16,w[t+60>>1]=s,w[t+62>>1]=s>>>16,s=y[r+52>>1]|y[r+54>>1]<<16,l=y[r+48>>1]|y[r+50>>1]<<16,w[t+48>>1]=l,w[t+50>>1]=l>>>16,w[t+52>>1]=s,w[t+54>>1]=s>>>16,s=y[r+44>>1]|y[r+46>>1]<<16,l=y[r+40>>1]|y[r+42>>1]<<16,w[t+40>>1]=l,w[t+42>>1]=l>>>16,w[t+44>>1]=s,w[t+46>>1]=s>>>16,s=y[r+36>>1]|y[r+38>>1]<<16,l=y[r+32>>1]|y[r+34>>1]<<16,w[t+32>>1]=l,w[t+34>>1]=l>>>16,w[t+36>>1]=s,w[t+38>>1]=s>>>16,s=y[r+28>>1]|y[r+30>>1]<<16,l=y[r+24>>1]|y[r+26>>1]<<16,w[t+24>>1]=l,w[t+26>>1]=l>>>16,w[t+28>>1]=s,w[t+30>>1]=s>>>16,s=y[r+20>>1]|y[r+22>>1]<<16,l=y[r+16>>1]|y[r+18>>1]<<16,w[t+16>>1]=l,w[t+18>>1]=l>>>16,w[t+20>>1]=s,w[t+22>>1]=s>>>16,s=y[r+12>>1]|y[r+14>>1]<<16,l=y[r+8>>1]|y[r+10>>1]<<16,w[t+8>>1]=l,w[t+10>>1]=l>>>16,w[t+12>>1]=s,w[t+14>>1]=s>>>16,d[o+177904|0]=0,w[t>>1]=32768|y[t>>1],s=t))),t=b+y[P+2>>1]|0;else{if((0-b|0)<=(0|W))break a;o||((0|t)<0?s=r:(s=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=(o=t<<6)+177888|0)&&(s=y[r+4>>1]|y[r+6>>1]<<16,l=y[r>>1]|y[r+2>>1]<<16,w[t>>1]=l,w[t+2>>1]=l>>>16,w[t+4>>1]=s,w[t+6>>1]=s>>>16,s=y[r+60>>1]|y[r+62>>1]<<16,l=y[r+56>>1]|y[r+58>>1]<<16,w[t+56>>1]=l,w[t+58>>1]=l>>>16,w[t+60>>1]=s,w[t+62>>1]=s>>>16,s=y[r+52>>1]|y[r+54>>1]<<16,l=y[r+48>>1]|y[r+50>>1]<<16,w[t+48>>1]=l,w[t+50>>1]=l>>>16,w[t+52>>1]=s,w[t+54>>1]=s>>>16,s=y[r+44>>1]|y[r+46>>1]<<16,l=y[r+40>>1]|y[r+42>>1]<<16,w[t+40>>1]=l,w[t+42>>1]=l>>>16,w[t+44>>1]=s,w[t+46>>1]=s>>>16,s=y[r+36>>1]|y[r+38>>1]<<16,l=y[r+32>>1]|y[r+34>>1]<<16,w[t+32>>1]=l,w[t+34>>1]=l>>>16,w[t+36>>1]=s,w[t+38>>1]=s>>>16,s=y[r+28>>1]|y[r+30>>1]<<16,l=y[r+24>>1]|y[r+26>>1]<<16,w[t+24>>1]=l,w[t+26>>1]=l>>>16,w[t+28>>1]=s,w[t+30>>1]=s>>>16,s=y[r+20>>1]|y[r+22>>1]<<16,l=y[r+16>>1]|y[r+18>>1]<<16,w[t+16>>1]=l,w[t+18>>1]=l>>>16,w[t+20>>1]=s,w[t+22>>1]=s>>>16,s=y[r+12>>1]|y[r+14>>1]<<16,l=y[r+8>>1]|y[r+10>>1]<<16,w[t+8>>1]=l,w[t+10>>1]=l>>>16,w[t+12>>1]=s,w[t+14>>1]=s>>>16,d[o+177904|0]=0,w[t>>1]=32768|y[t>>1],s=t))),t=y[P+2>>1]-b|0}o=1,w[2+((f<<1)+s|0)>>1]=t,e[c+8>>2]=s}if((0|(f=f+1|0))==6)break}x=s}if((0|m)!=(0|I))continue;break A}break}x=r}for(s=0;;){if((r=e[(I=216192+(_<<4)|0)>>2])-5>>>0<2)break e;if((0|r)<=4){if(r=e[I+8>>2],t=y[I+4>>1],s){if((0|r)!=(0|s))break e;e[I+8>>2]=x}else x=r;if(16&(s=y[x>>1]))break e;for(P=32&s?(O(t,6)>>>0)/5|0:t,o=0,r=s=e[I+12>>2],f=0;;){A:{r:if((0|(m=(c=w[2+((t=f<<1)+s|0)>>1])-(t=w[(b=t+x|0)+2>>1])|0))>(0|(c=(0|O(P,(0|O(e[200944+(f<<2)>>2],(0|m)>0?c+(t<<1)|0:(c<<1)+t|0))/3e3|0))/256|0))){if(!o){if(w[s>>1]<0){r=s,t=t+c|0;break r}r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,o=y[s+20>>1]|y[s+22>>1]<<16,t=(r=177888+(r<<6)|0)+16|0,m=y[s+16>>1]|y[s+18>>1]<<16,w[t>>1]=m,w[t+2>>1]=m>>>16,w[t+4>>1]=o,w[t+6>>1]=o>>>16,t=y[s+4>>1]|y[s+6>>1]<<16,o=y[s>>1]|y[s+2>>1]<<16,w[r>>1]=o,w[r+2>>1]=o>>>16,w[r+4>>1]=t,w[r+6>>1]=t>>>16,t=y[s+12>>1]|y[s+14>>1]<<16,o=y[s+8>>1]|y[s+10>>1]<<16,w[r+8>>1]=o,w[r+10>>1]=o>>>16,w[r+12>>1]=t,w[r+14>>1]=t>>>16,t=y[s+28>>1]|y[s+30>>1]<<16,o=y[s+24>>1]|y[s+26>>1]<<16,w[r+24>>1]=o,w[r+26>>1]=o>>>16,w[r+28>>1]=t,w[r+30>>1]=t>>>16,t=y[s+36>>1]|y[s+38>>1]<<16,o=y[s+32>>1]|y[s+34>>1]<<16,w[r+32>>1]=o,w[r+34>>1]=o>>>16,w[r+36>>1]=t,w[r+38>>1]=t>>>16,t=y[s+44>>1]|y[s+46>>1]<<16,o=y[s+40>>1]|y[s+42>>1]<<16,w[r+40>>1]=o,w[r+42>>1]=o>>>16,w[r+44>>1]=t,w[r+46>>1]=t>>>16,t=y[s+52>>1]|y[s+54>>1]<<16,o=y[s+48>>1]|y[s+50>>1]<<16,w[r+48>>1]=o,w[r+50>>1]=o>>>16,w[r+52>>1]=t,w[r+54>>1]=t>>>16,t=y[s+60>>1]|y[s+62>>1]<<16,o=y[s+56>>1]|y[s+58>>1]<<16,w[r+56>>1]=o,w[r+58>>1]=o>>>16,w[r+60>>1]=t,w[r+62>>1]=t>>>16,d[r+16|0]=0,w[r>>1]=32768|y[r>>1],t=y[b+2>>1]}t=t+c|0}else{if((0|m)>=(0-c|0))break A;o||(w[s>>1]<0?r=s:(r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,o=y[s+20>>1]|y[s+22>>1]<<16,t=(r=177888+(r<<6)|0)+16|0,m=y[s+16>>1]|y[s+18>>1]<<16,w[t>>1]=m,w[t+2>>1]=m>>>16,w[t+4>>1]=o,w[t+6>>1]=o>>>16,t=y[s+4>>1]|y[s+6>>1]<<16,o=y[s>>1]|y[s+2>>1]<<16,w[r>>1]=o,w[r+2>>1]=o>>>16,w[r+4>>1]=t,w[r+6>>1]=t>>>16,t=y[s+12>>1]|y[s+14>>1]<<16,o=y[s+8>>1]|y[s+10>>1]<<16,w[r+8>>1]=o,w[r+10>>1]=o>>>16,w[r+12>>1]=t,w[r+14>>1]=t>>>16,t=y[s+28>>1]|y[s+30>>1]<<16,o=y[s+24>>1]|y[s+26>>1]<<16,w[r+24>>1]=o,w[r+26>>1]=o>>>16,w[r+28>>1]=t,w[r+30>>1]=t>>>16,t=y[s+36>>1]|y[s+38>>1]<<16,o=y[s+32>>1]|y[s+34>>1]<<16,w[r+32>>1]=o,w[r+34>>1]=o>>>16,w[r+36>>1]=t,w[r+38>>1]=t>>>16,t=y[s+44>>1]|y[s+46>>1]<<16,o=y[s+40>>1]|y[s+42>>1]<<16,w[r+40>>1]=o,w[r+42>>1]=o>>>16,w[r+44>>1]=t,w[r+46>>1]=t>>>16,t=y[s+52>>1]|y[s+54>>1]<<16,o=y[s+48>>1]|y[s+50>>1]<<16,w[r+48>>1]=o,w[r+50>>1]=o>>>16,w[r+52>>1]=t,w[r+54>>1]=t>>>16,t=y[s+60>>1]|y[s+62>>1]<<16,o=y[s+56>>1]|y[s+58>>1]<<16,w[r+56>>1]=o,w[r+58>>1]=o>>>16,w[r+60>>1]=t,w[r+62>>1]=t>>>16,d[r+16|0]=0,w[r>>1]=32768|y[r>>1],t=y[b+2>>1])),t=t-c|0}o=1,w[2+((f<<1)+r|0)>>1]=t,e[I+12>>2]=r}if((0|(f=f+1|0))==6)break}x=r}if((0|A)==(0|(_=(0|(r=_+1|0))<=169?r:0)))break}}e[36454]=A}}function Er(A,t){var r,s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0;Y=r=Y-48|0,F(+A),l=0|B(1),o=0|B(0),s=l;e:{A:{r:{if((m=2147483647&l)>>>0<=1074752122){if((1048575&l)==598523)break r;if(m>>>0<=1073928572){if((0|s)>0|(0|s)>=0){f=(A+=-1.5707963267341256)+-6077100506506192e-26,T[t>>3]=f,T[t+8>>3]=A-f-6077100506506192e-26,l=1;break e}f=(A+=1.5707963267341256)+6077100506506192e-26,T[t>>3]=f,T[t+8>>3]=A-f+6077100506506192e-26,l=-1;break e}if((0|s)>0|(0|s)>=0){f=(A+=-3.1415926534682512)+-12154201013012384e-26,T[t>>3]=f,T[t+8>>3]=A-f-12154201013012384e-26,l=2;break e}f=(A+=3.1415926534682512)+12154201013012384e-26,T[t>>3]=f,T[t+8>>3]=A-f+12154201013012384e-26,l=-2;break e}if(m>>>0<=1075594811){if(m>>>0<=1075183036){if((0|m)==1074977148)break r;if((0|s)>0|(0|s)>=0){f=(A+=-4.712388980202377)+-18231301519518578e-26,T[t>>3]=f,T[t+8>>3]=A-f-18231301519518578e-26,l=3;break e}f=(A+=4.712388980202377)+18231301519518578e-26,T[t>>3]=f,T[t+8>>3]=A-f+18231301519518578e-26,l=-3;break e}if((0|m)==1075388923)break r;if((0|s)>0|(0|s)>=0){f=(A+=-6.2831853069365025)+-2430840202602477e-25,T[t>>3]=f,T[t+8>>3]=A-f-2430840202602477e-25,l=4;break e}f=(A+=6.2831853069365025)+2430840202602477e-25,T[t>>3]=f,T[t+8>>3]=A-f+2430840202602477e-25,l=-4;break e}if(m>>>0>1094263290)break A}o=(Me=(f=A+-1.5707963267341256*(x=.6366197723675814*A+6755399441055744-6755399441055744))-(_=6077100506506192e-26*x))<-.7853981633974483,l=se(x)<2147483648?~~x:-2147483648,o?(l=l-1|0,_=6077100506506192e-26*(x+=-1),f=A+-1.5707963267341256*x):Me>.7853981633974483&&(l=l+1|0,_=6077100506506192e-26*(x+=1),f=A+-1.5707963267341256*x),A=f-_,T[t>>3]=A,F(+A),o=0|B(1),B(0),((c=m>>>20|0)-(o>>>20&2047)|0)<17||(_=f,A=(f-=A=6077100506303966e-26*x)-(_=20222662487959506e-37*x-(_-f-A)),T[t>>3]=A,F(+A),o=0|B(1),B(0),(c-(o>>>20&2047)|0)<50||(_=f,A=(f-=A=20222662487111665e-37*x)-(_=84784276603689e-45*x-(_-f-A)),T[t>>3]=A)),T[t+8>>3]=f-A-_;break e}if(m>>>0>=2146435072)A-=A,T[t>>3]=A,T[t+8>>3]=A,l=0;else{for(v(0,0|o),v(1,1048575&s|1096810496),A=+S(),l=0,o=1;c=(r+16|0)+(l<<3)|0,f=+(0|(l=se(A)<2147483648?~~A:-2147483648)),T[c>>3]=f,A=16777216*(A-f),l=1,c=o,o=0,c;);for(T[r+32>>3]=A,l=2;l=(o=l)-1|0,T[(r+16|0)+(o<<3)>>3]==0;);if(Qe=r+16|0,c=0,Y=I=Y-560|0,m=O(Ce=(0|(m=((l=(m>>>20|0)-1046|0)-3|0)/24|0))>0?m:0,-24)+l|0,((W=e[28105])+(b=(re=o+1|0)-1|0)|0)>=0)for(l=W+re|0,o=Ce-b|0;T[(I+320|0)+(c<<3)>>3]=(0|o)<0?0:+e[112432+(o<<2)>>2],o=o+1|0,(0|l)!=(0|(c=c+1|0)););for(Z=m-24|0,l=0,c=(0|W)>0?W:0,U=(0|re)<=0;;){if(U)A=0;else for(P=l+b|0,o=0,A=0;A=T[(o<<3)+Qe>>3]*T[(I+320|0)+(P-o<<3)>>3]+A,(0|re)!=(0|(o=o+1|0)););if(T[(l<<3)+I>>3]=A,o=(0|l)==(0|c),l=l+1|0,o)break}gA=47-m|0,Oe=48-m|0,bA=m-25|0,l=W;A:{for(;;){if(A=T[(l<<3)+I>>3],o=0,c=l,!(P=(0|l)<=0))for(;U=(I+480|0)+(o<<2)|0,b=se(f=5960464477539063e-23*A)<2147483648?~~f:-2147483648,b=se(A=-16777216*(f=+(0|b))+A)<2147483648?~~A:-2147483648,e[U>>2]=b,A=T[((c=c-1|0)<<3)+I>>3]+f,(0|l)!=(0|(o=o+1|0)););A=vs(A,Z),A+=-8*Be(.125*A),A-=+(0|(U=se(A)<2147483648?~~A:-2147483648));r:{a:{n:{if(Ve=(0|Z)<=0){if(Z)break n;b=e[476+((l<<2)+I|0)>>2]>>23}else le=c=(l<<2)+I|0,c=(b=e[c+476>>2])-((o=b>>Oe)<<Oe)|0,e[le+476>>2]=c,U=o+U|0,b=c>>gA;if((0|b)<=0)break r;break a}if(b=2,!(A>=.5)){b=0;break r}}if(o=0,c=0,!P)for(;AA=e[(le=(I+480|0)+(o<<2)|0)>>2],P=16777215,c||(P=16777216,AA)?(e[le>>2]=P-AA,c=1):c=0,(0|l)!=(0|(o=o+1|0)););a:if(!Ve){o=8388607;n:switch(0|bA){case 1:o=4194303;break;case 0:break n;default:break a}e[(P=(l<<2)+I|0)+476>>2]=e[P+476>>2]&o}U=U+1|0,(0|b)==2&&(A=1-A,b=2,c&&(A-=vs(1,Z)))}if(A!=0)break;if(c=0,!((0|W)>=(0|(o=l)))){for(;c=e[(I+480|0)+((o=o-1|0)<<2)>>2]|c,(0|o)>(0|W););if(c){for(m=Z;m=m-24|0,!e[(I+480|0)+((l=l-1|0)<<2)>>2];);break A}}for(o=1;c=o,o=o+1|0,!e[(I+480|0)+(W-c<<2)>>2];);for(c=l+c|0;;){if(b=l+re|0,l=l+1|0,T[(I+320|0)+(b<<3)>>3]=e[112432+(Ce+l<<2)>>2],o=0,A=0,(0|re)>0)for(;A=T[(o<<3)+Qe>>3]*T[(I+320|0)+(b-o<<3)>>3]+A,(0|re)!=(0|(o=o+1|0)););if(T[(l<<3)+I>>3]=A,!((0|l)<(0|c)))break}l=c}(A=vs(A,24-m|0))>=16777216?(Z=(I+480|0)+(l<<2)|0,o=se(f=5960464477539063e-23*A)<2147483648?~~f:-2147483648,c=se(A=-16777216*+(0|o)+A)<2147483648?~~A:-2147483648,e[Z>>2]=c,l=l+1|0):(o=se(A)<2147483648?~~A:-2147483648,m=Z),e[(I+480|0)+(l<<2)>>2]=o}if(A=vs(1,m),!((0|l)<0)){for(o=l;c=o,T[(o<<3)+I>>3]=A*+e[(I+480|0)+(o<<2)>>2],o=o-1|0,A*=5960464477539063e-23,c;);if(P=0,!((0|l)<0))for(m=(0|W)>0?W:0,c=l;;){for(Z=m>>>0<P>>>0?m:P,W=l-c|0,o=0,A=0;A=T[115200+(o<<3)>>3]*T[(o+c<<3)+I>>3]+A,re=(0|o)!=(0|Z),o=o+1|0,re;);if(T[(I+160|0)+(W<<3)>>3]=A,c=c-1|0,o=(0|l)!=(0|P),P=P+1|0,!o)break}}if(A=0,(0|l)>=0)for(o=l;c=o,o=o-1|0,A+=T[(I+160|0)+(c<<3)>>3],c;);if(T[r>>3]=b?-A:A,A=T[I+160>>3]-A,o=1,(0|l)>0)for(;A+=T[(I+160|0)+(o<<3)>>3],c=(0|o)!=(0|l),o=o+1|0,c;);T[r+8>>3]=b?-A:A,Y=I+560|0,l=7&U,A=T[r>>3],(0|s)<0?(T[t>>3]=-A,T[t+8>>3]=-T[r+8>>3],l=0-l|0):(T[t>>3]=A,T[t+8>>3]=T[r+8>>3])}}return Y=r+48|0,l}function $r(){var A=0,t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0,rt=0,Et=0,Ot=0,Wt=0,ir=0,or=0,xr=0,Br=0,Rr=0,Hr=0,Jr=0,os=0,ps=0,Is=0,ua=0,Js=0,da=0;e[55925]=0,A=e[56772],e[56772]=A+1,r=e[55961],P=e[55922],W=ia(39.89822670059037*(t=+(0|A))),I=ia(22.30530784048753*t),t=+(0|P)/50*(+(0|r)/100)*(ia(14.765485471872028*t)+(W+I))*10,A=se(t)<2147483648?~~t:-2147483648,e[56607]=A+e[56607];e:if(!(e[55923]<=0)){for(;;){for(r=at(e[33209],0,1103515245,0),A=ce,A=ji(r=r+12345|0,A=r>>>0<12345?A+1|0:A),e[33209]=A,A=8191+((A>>>0)%16383|0)|0,e[55929]=A,rt=+(0|A),t=.75*T[28387]+rt,T[28387]=t,Et=(0|(A=e[55924]))>(0|(Oe=e[55928]))?.5*t:t,or=(o=.033*+e[56652])>0?1-o:1,r=e[56650]<<2,gA=(0|(AA=e[55921]))==1&&(0|r)>263?263:r,xr=111136+((Ot=e[56651])<<1)|0,Br=111136+((bA=e[56658])<<1)|0,Rr=(0|bA)>0,Wt=e[55918],Hr=O(Wt,40),Jr=e[55925],os=T[27967],ir=e[56607],t=T[27979],Z=T[27969],f=T[27970],zA=e[56780],Ce=e[56654],x=T[27976],_=T[27972],re=T[28388],le=T[28389],P=e[55927],s=T[28383],b=e[55926],Me=e[55956],ps=T[27975],I=T[28131],l=T[28130],c=T[28123],U=T[28121],m=T[28122],Ve=T[28120],Qe=T[28119],Is=T[28129],ua=T[28128],Js=T[28127],da=gs(0*T[27968]),jA=0;;){W=l;A:{r:switch(AA-1|0){case 0:re=0,l=U*c,c=m,m=s=l+(Qe*(re=(0|A)<=2?T[111312+(A<<3)>>3]:re)+Ve*c);break A;case 1:if(s=0,(0|A)>=(0|P)){le=0;break A}l=T[27965]-T[27966],T[27965]=l,s=.028*(le=l+le);break A;case 2:if(!b){Me=100,s=0;break A}Me=100,r=se(l=+(0|A)/+(0|b)*100)<2147483648?~~l:-2147483648,s=+w[110928+((0|r)%100<<1)>>1],s=t*((+w[110928+((r+1|0)%100<<1)>>1]-s)*(l-+(0|r))+s);break A;case 3:break r;default:break A}b?(Me=256,r=se(l=+(0|A)/+(0|b)*256)<2147483648?~~l:-2147483648,s=+w[111344+((0|r)%256<<1)>>1],s=t*((+w[111344+((r+1|0)%256<<1)>>1]-s)*(l-+(0|r))+s)):(Me=256,s=0)}if((0|A)>=(0|b)&&((0|ir)>0?(A=(0|Hr)/(0|ir)|0,x=0,_=0,_=bA>>>0<=87?.001*+w[Br>>1]:_,x=Ot>>>0<=87?.001*+w[xr>>1]*.1:x,Oe=A>>Rr,P=(0|(r=(b=(A-1|0)<=(0|gA))?A-2|0:gA))<=40?40:r,l=+w[111776+((P=b||(0|r)<40?P:gA)<<1)>>1],T[27966]=l,U=l,l=+(0|P),T[27965]=U*l*.333,Ce=(0|(r=A-P|0))>(0|Ce)?Ce:r,zA=0-(r=(0|zA)<0?0-Ce|0:Ce)|0,Qe=(l*=.00833)*l,Qe*=1-(Ve=(U=(l=Vr(os*+((0|Wt)/(0|P)|0)))*da)+U)-(U=l*-l),A=(0|(b=A+r|0))!=4):(e[55930]=0,e[55931]=0,e[55932]=0,e[55933]=0,Oe=4,x=0,_=0,b=4,A=0),f=(A|=!Jr)?o:f,Z=A?or:Z,A=0),A=A+1|0,l=s=Is*I+(Js*s+ua*W),I=W,(0|(jA=jA+1|0))==4)break}if(e[55926]=b,e[55956]=Me,e[55924]=A,T[28383]=s,e[55927]=P,T[28389]=le,T[28388]=re,T[27972]=_,T[27976]=x,e[55928]=Oe,e[56654]=Ce,e[56780]=zA,T[27970]=f,T[27969]=Z,T[28122]=m,T[28120]=Ve,T[28119]=Qe,T[28123]=c,T[28121]=U,T[28131]=I,T[28130]=s,(0|AA)==5&&(s=6e3*((t=+(0|A)/+(0|b))+t+-1),T[28383]=s),t=s*Z+T[28384]*f,T[28383]=t,T[28384]=t,(0|A)<(0|P)&&(t=x*rt+t,T[28383]=t),f=Et*T[27974],W=t*T[27973]+f,I=0,e[55916]!=2&&(I=T[27987],m=T[27986],T[27987]=m,t=f+t*_,T[27986]=t,f=T[28059],c=T[28058],T[28059]=c,t=f*T[28057]+(T[28055]*(I*T[27985]+(T[27983]*t+m*T[27984]))+c*T[28056]),T[28058]=t,I=T[28049],f=T[28051],m=T[28048],c=T[28047],o=T[28050],T[28051]=o,t=I*f+(c*t+m*o),T[28050]=t,I=T[28043],f=T[28041],m=T[28040],c=T[28039],o=T[28042],T[28043]=o,t=f*I+(c*t+m*o),T[28042]=t,I=T[28035],f=T[28033],m=T[28032],c=T[28031],o=T[28034],T[28035]=o,t=f*I+(c*t+m*o),T[28034]=t,I=T[28027],f=T[28025],m=T[28024],c=T[28023],o=T[28026],T[28027]=o,t=f*I+(c*t+m*o),T[28026]=t,I=T[28019],f=T[28017],m=T[28016],c=T[28015],o=T[28018],T[28019]=o,t=f*I+(c*t+m*o),T[28018]=t,I=T[28011],f=T[28009],m=T[28008],c=T[28007],o=T[28010],T[28011]=o,t=f*I+(c*t+m*o),T[28010]=t,I=T[28003],f=T[28001],m=T[28e3],c=T[27999],o=T[28002],T[28003]=o,t=f*I+(c*t+m*o),T[28002]=t,I=T[27995],f=T[27993],m=T[27992],c=T[27991],o=T[27994],T[27995]=o,I=f*I+(c*t+m*o),T[27994]=I),t=T[28385],T[28385]=W,f=T[28075],m=T[28074],T[28075]=m,c=T[28067],o=T[28066],T[28067]=o,f=f*T[28073]+(T[28071]*W+m*T[28072]),T[28074]=f,m=c*T[28065]+(T[28063]*W+o*T[28064]),T[28066]=m,c=T[28081],o=T[28083],l=T[28079],s=T[28080],x=T[28082],T[28083]=x,W=c*o+(l*(t=ps*Et+W-t)+s*x),T[28082]=W,c=T[28091],o=T[28089],l=T[28087],s=T[28088],x=T[28090],T[28091]=x,c=o*c+(l*t+s*x),T[28090]=c,o=T[28099],l=T[28097],s=T[28095],x=T[28096],_=T[28098],T[28099]=_,o=l*o+(s*t+x*_),T[28098]=o,l=T[28107],s=T[28105],x=T[28103],_=T[28104],Z=T[28106],T[28107]=Z,l=s*l+(x*t+_*Z),T[28106]=l,s=T[28115],x=T[28113],_=T[28111],Z=T[28112],re=T[28114],T[28115]=re,s=x*s+(_*t+Z*re),T[28114]=s,x=T[28139],_=T[28137],Z=T[28136],re=T[28135],le=T[27971],U=T[28138],T[28139]=U,t=_*x+(re*(t*le-(s-(l-(o-(c-(W-(I+f+m)))))))+Z*U),T[28138]=t,t=T[27977]*(t*+e[50779]),s=+(0|(A=se(t)<2147483648?~~t:-2147483648)),(0|(A=e[50776]))<e[50773]&&(b=A+1|0,r=e[50772],(P=e[50774])?(e[50776]=b,A=O(P,d[A+r|0])):(P=u[A+r|0],r=d[r+b|0],e[50776]=A+2,A=P|r<<8),s+=+((0|O(e[50775],(0|O(A,e[50780]))/1024|0))/40|0)),(0|(A=e[55962]))<=63&&(e[55962]=A+1,s=s*+(0|A)*.015625),(0|(A=e[55963]))<=0||(A=A-1|0,e[55963]=A,s=s*+(0|A)*.015625,A||(e[55962]=0)),r=(A=e[51293])+1|0,e[51293]=r,b=O(w[205184+(A<<1)>>1],e[50755])>>8,A=se(s)<2147483648?~~s:-2147483648,(0|r)>=5500&&(e[51293]=0),r=e[51290],e[51290]=r+1,A=(0|(A=(0|(A=A+b|0))<=-32768?-32768:A))>=32767?32767:A,d[0|r]=A,r=e[51290],e[51290]=r+1,d[0|r]=A>>>8,b=(r=e[51292])+1|0,e[51292]=b,w[205184+(r<<1)>>1]=A,(0|b)>=5500&&(e[51292]=0),b=1,e[56606]=e[56606]+1,ee[54046]<e[51290]+2>>>0)break e;if(A=e[55925]+1|0,e[55925]=A,!((0|A)<e[55923]))break}b=0}return b}function Ss(A,t,r,s,o,l,c){var f,m,I,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0;Y=f=Y-80|0,e[f+76>>2]=t,I=f+55|0,m=f+56|0;e:{A:{r:{a:{n:for(;;){if(P=t,(2147483647^re)<(0|b))break a;re=b+re|0;o:{c:{u:{if(x=u[0|(b=P)])for(;;){l:{i:if(t=255&x){if((0|t)!=37)break l;for(x=b;;){if(u[x+1|0]!=37){t=x;break i}if(b=b+1|0,W=u[x+2|0],x=t=x+2|0,(0|W)!=37)break}}else t=b;if((0|(b=b-P|0))>(0|(AA=2147483647^re)))break a;if(A&&Yr(A,P,b),b)continue n;e[f+76>>2]=t,b=t+1|0,le=-1,u[t+2|0]!=36|d[t+1|0]-48>>>0>=10||(le=d[t+1|0]-48|0,Qe=1,b=t+3|0),e[f+76>>2]=b,U=0;i:if((t=(x=d[0|b])-32|0)>>>0>31)Z=b;else if(Z=b,75913&(t=1<<t))for(;;){if(Z=b+1|0,e[f+76>>2]=Z,U|=t,(t=(x=d[b+1|0])-32|0)>>>0>=32)break i;if(b=Z,!(75913&(t=1<<t)))break}i:if((0|x)!=42){if((0|(Ce=Ln(f+76|0)))<0)break a;x=e[f+76>>2]}else{if(u[Z+2|0]!=36|d[Z+1|0]-48>>>0>=10){if(Qe)break u;if(x=Z+1|0,!A){e[f+76>>2]=x,Qe=0,Ce=0;break i}t=e[r>>2],e[r>>2]=t+4,Qe=0,t=e[t>>2]}else e[((d[Z+1|0]<<2)+o|0)-192>>2]=10,x=Z+3|0,Qe=1,t=e[((d[Z+1|0]<<3)+s|0)-384>>2];if(e[f+76>>2]=x,Ce=t,(0|t)>=0)break i;Ce=0-Ce|0,U|=8192}if(b=0,_=-1,u[0|x]==46)if(u[x+1|0]!=42)e[f+76>>2]=x+1,_=Ln(f+76|0),t=e[f+76>>2],Ve=1;else{if(u[x+3|0]!=36|d[x+2|0]-48>>>0>=10){if(Qe)break u;t=x+2|0,_=0,A&&(x=e[r>>2],e[r>>2]=x+4,_=e[x>>2])}else e[((d[x+2|0]<<2)+o|0)-192>>2]=10,t=x+4|0,_=e[((d[x+2|0]<<3)+s|0)-384>>2];e[f+76>>2]=t,Ve=~_>>>31|0}else t=x,Ve=0;for(;;){if(Me=b,Z=28,W=t,(b=d[0|t])-123>>>0<4294967238)break r;if(t=W+1|0,!((b=u[123983+(b+O(Me,58)|0)|0])-1>>>0<8))break}e[f+76>>2]=t;i:{p:{if((0|b)!=27){if(!b)break r;if((0|le)>=0){e[(le<<2)+o>>2]=b,b=e[(x=(le<<3)+s|0)+4>>2],e[f+64>>2]=e[x>>2],e[f+68>>2]=b;break p}if(!A)break o;ze(f- -64|0,b,r,c);break i}if((0|le)>=0)break r}if(b=0,!A)continue n}x=-65537&U,U=8192&U?x:U,le=0,Oe=84065,Z=m;i:{p:{C:{h:{b:{m:{x:{I:{B:{N:{L:{U:{y:{E:{Q:{F:switch(b=d[0|W],(b=Me&&(15&b)==3?-33&b:b)-88|0){case 11:break i;case 9:case 13:case 14:case 15:break p;case 27:break x;case 12:case 17:break N;case 23:break L;case 0:case 32:break U;case 24:break y;case 22:break E;case 29:break Q;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break c;default:break F}F:switch(b-65|0){case 0:case 4:case 5:case 6:break p;case 2:break b;case 1:case 3:break c;default:break F}if((0|b)==83)break m;break c}x=e[f+64>>2],W=e[f+68>>2],Oe=84065;break B}b=0;E:switch(255&Me){case 0:case 1:case 6:e[e[f+64>>2]>>2]=re;continue n;case 2:P=e[f+64>>2],e[P>>2]=re,e[P+4>>2]=re>>31;continue n;case 3:w[e[f+64>>2]>>1]=re;continue n;case 4:d[e[f+64>>2]]=re;continue n;case 7:break E;default:continue n}P=e[f+64>>2],e[P>>2]=re,e[P+4>>2]=re>>31;continue n}_=_>>>0<=8?8:_,U|=8,b=120}if(P=m,gA=32&b,(x=e[f+64>>2])|(W=e[f+68>>2]))for(;d[0|(P=P-1|0)]=gA|u[124512+(15&x)|0],bA=!W&x>>>0>15|!!(0|W),Me=W,W=W>>>4|0,x=(15&Me)<<28|x>>>4,bA;);if(!(e[f+64>>2]|e[f+68>>2])|!(8&U))break I;Oe=84065+(b>>>4|0)|0,le=2;break I}if(b=m,W=P=e[f+68>>2],P|(x=e[f+64>>2]))for(;d[0|(b=b-1|0)]=7&x|48,Me=!W&x>>>0>7|!!(0|W),W=(P=W)>>>3|0,x=(7&P)<<29|x>>>3,Me;);if(P=b,!(8&U))break I;_=(0|(b=m-P|0))<(0|_)?_:b+1|0;break I}x=e[f+64>>2],W=b=e[f+68>>2],(0|b)<0?(W=P=0-(W+!!(0|x)|0)|0,x=0-x|0,e[f+64>>2]=x,e[f+68>>2]=P,le=1,Oe=84065):2048&U?(le=1,Oe=84066):Oe=(le=1&U)?84067:84065}P=Ea(x,W,m)}if((0|_)<0&&Ve)break a;if(U=Ve?-65537&U:U,!(_|!!((b=e[f+64>>2])|(x=e[f+68>>2])))){P=m,_=0;break c}_=(0|(b=!(b|x)+(m-P|0)|0))<(0|_)?_:b;break c}if(Z=(b=(b=Ia(P=(b=e[f+64>>2])||84639,0,W=_>>>0>=2147483647?2147483647:_))?b-P|0:W)+P|0,(0|_)>=0){U=x,_=b;break c}if(U=x,_=b,u[0|Z])break a;break c}if(_){x=e[f+64>>2];break h}b=0,Lr(A,32,Ce,0,U);break C}e[f+12>>2]=0,e[f+8>>2]=e[f+64>>2],x=f+8|0,e[f+64>>2]=x,_=-1}b=0;h:{for(;;){if(!(P=e[x>>2]))break h;if(!((P=(0|(W=si(f+4|0,P)))<0)|W>>>0>_-b>>>0)){if(x=x+4|0,_>>>0>(b=b+W|0)>>>0)continue;break h}break}if(P)break A}if(Z=61,(0|b)<0)break r;if(Lr(A,32,Ce,b,U),b)for(Z=0,x=e[f+64>>2];;){if(!(P=e[x>>2])||(Z=(P=si(f+4|0,P))+Z|0)>>>0>b>>>0)break C;if(Yr(A,f+4|0,P),x=x+4|0,!(b>>>0>Z>>>0))break}else b=0}Lr(A,32,Ce,b,8192^U),b=(0|b)<(0|Ce)?Ce:b;continue n}if((0|_)<0&&Ve)break a;if(Z=61,(0|(b=0|At[0|l](A,T[f+64>>3],Ce,_,U,b)))>=0)continue n;break r}d[f+55|0]=e[f+64>>2],_=1,P=I,U=x;break c}x=u[b+1|0],b=b+1|0}if(A)break e;if(!Qe)break o;for(b=1;;){if(A=e[(b<<2)+o>>2]){if(ze((b<<3)+s|0,A,r,c),re=1,(0|(b=b+1|0))!=10)continue;break e}break}if(re=1,b>>>0>=10)break e;for(;;){if(e[(b<<2)+o>>2])break u;if((0|(b=b+1|0))==10)break}break e}Z=28;break r}if((0|(x=(0|_)>(0|(W=Z-P|0))?_:W))>(2147483647^le))break a;if(Z=61,(0|AA)<(0|(b=(0|(_=x+le|0))<(0|Ce)?Ce:_)))break r;Lr(A,32,b,_,U),Yr(A,Oe,le),Lr(A,48,b,_,65536^U),Lr(A,48,x,W,0),Yr(A,P,W),Lr(A,32,b,_,8192^U);continue}break}re=0;break e}Z=61}e[56798]=Z}re=-1}return Y=f+80|0,re}function xt(A,t,r,s,o,l,c,f,m){var I,b,x,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0,rt=0,Et=0,Ot=0,Wt=0,ir=0,or=0,xr=0,Br=0,Rr=0,Hr=0,Jr=0,os=0,ps=0,Is=0;Y=I=Y-96|0,Oe=65535&m,Z=-2147483648&(o^m),zA=le=65535&o;e:{if(!((b=m>>>16&32767)-32767>>>0>4294934529&(x=o>>>16&32767)-32767>>>0>=4294934530)){if(P=s,!(!s&(0|(Ce=Me=2147483647&o))==2147418112?!(t|r):Ce>>>0<2147418112)){W=s,Z=32768|o;break e}if(!(!(o=f)&(0|(re=Me=2147483647&m))==2147418112?!(l|c):re>>>0<2147418112)){W=f,Z=32768|m,t=l,r=c;break e}if(!(t|P|2147418112^Ce|r)){if(!(o|l|c|re)){Z=2147450880,t=0,r=0;break e}Z|=2147418112,t=0,r=0;break e}if(!(o|l|2147418112^re|c)){if(o=t|P,s=r|Ce,t=0,r=0,!(s|o)){Z=2147450880;break e}Z|=2147418112;break e}if(!(t|P|r|Ce)){t=0,r=0;break e}if(!(o|l|c|re)){t=0,r=0;break e}(0|Ce)==65535|Ce>>>0<65535&&(Me=(P=!(s|le))<<6,o=we(m=P?t:s)+32|0,Mt(I+80|0,t,r,s,le,(m=Me+((0|(m=we(P?r:le)))==32?o:m)|0)-15|0),Qe=16-m|0,s=e[I+88>>2],zA=e[I+92>>2],r=e[I+84>>2],t=e[I+80>>2]),re>>>0>65535||(le=(m=!(f|Oe))<<6,P=we(o=m?l:f)+32|0,Mt(I- -64|0,l,c,f,Oe,(o=le+((0|(o=we(m?c:Oe)))==32?P:o)|0)-15|0),Qe=16+(Qe-o|0)|0,f=e[I+72>>2],Oe=e[I+76>>2],l=e[I+64>>2],c=e[I+68>>2])}if(o=l,l=c<<15|l>>>17,Rr=r,Me=at(Ve=-32768&(m=o<<15),o=0,r,0),bA=o=ce,Hr=l,Ce=t,t=at(l,0,t,0),l=ce+o|0,r=t>>>0>(m=t+Me|0)>>>0?l+1|0:l,P=0,t=at(Ce,_,Ve,_),o=(l=m)+ce|0,le=o=t>>>0>(re=P+t|0)>>>0?o+1|0:o,Jr=(0|l)==(0|o)&P>>>0>re>>>0|o>>>0<l>>>0,os=s,AA=at(Ve,_,s,0),ps=ce,t=at(Rr,_,Hr,_),P=ce+ps|0,P=t>>>0>(gA=t+AA|0)>>>0?P+1|0:P,t=Oe<<15|f>>>17,s=at(jA=f<<15|c>>>17,0,Ce,_),l=ce+P|0,Et=l=s>>>0>(rt=s+gA|0)>>>0?l+1|0:l,l=(s=(0|r)==(0|bA)&m>>>0<Me>>>0|r>>>0<bA>>>0)+l|0,Oe=l=r>>>0>(Ot=r+rt|0)>>>0?l+1|0:l,c=Ot,r=l,zA=at(Ve,_,Wt=65536|zA,U),Is=ce,s=at(os,W,Hr,_),o=ce+Is|0,m=o=s>>>0>(ir=s+zA|0)>>>0?o+1|0:o,t=at(or=-2147483648|t,0,Ce,_),l=ce+o|0,l=t>>>0>(xr=t+ir|0)>>>0?l+1|0:l,t=at(jA,W,Rr,_),Br=l,l=l+ce|0,Me=t>>>0>(bA=t+xr|0)>>>0?l+1|0:l,o=r+bA|0,l=Ve=(t=0)>>>0>(Ce=t+c|0)>>>0?o+1|0:o,r=(t=Ce+Jr|0)>>>0<Ce>>>0?l+1|0:l,Qe=((x+b|0)+Qe|0)-16383|0,s=at(or,W,Rr,_),f=ce,o=at(Wt,W,Hr,_),l=ce+f|0,U=(0|f)==(0|(l=o>>>0>(c=o+s|0)>>>0?l+1|0:l))&s>>>0>c>>>0|l>>>0<f>>>0,f=l,o=at(jA,W,os,W),l=ce+l|0,o=l=(s=o+c|0)>>>0<o>>>0?l+1|0:l,c=(0|l)==(0|f)&s>>>0<c>>>0|l>>>0<f>>>0,l=0,l=(f=c)>>>0>(c=c+U|0)>>>0?1:l,f=c,c=at(or,W,Wt,W),l=ce+l|0,Jr=f=f+c|0,c=c>>>0>f>>>0?l+1|0:l,f=s,_=o,o=(0|P)==(0|ps)&AA>>>0>gA>>>0|P>>>0<ps>>>0,l=0,o=((U=P=(0|P)==(0|Et)&gA>>>0>rt>>>0|P>>>0>Et>>>0)>>>0>(P=o+P|0)>>>0?1:l)+_|0,l=c,U=o=(s=s+P|0)>>>0<P>>>0?o+1|0:o,AA=s,o=s=(0|o)==(0|_)&s>>>0<f>>>0|o>>>0<_>>>0,P=s=s+Jr|0,c=l=o>>>0>s>>>0?l+1|0:l,o=at(jA,W,Wt,W),_=ce,s=at(or,W,os,W),l=ce+_|0,s=l=s>>>0>(f=s+o|0)>>>0?l+1|0:l,o=(l=(0|_)==(0|l)&o>>>0>f>>>0|l>>>0<_>>>0)+c|0,c=o=s>>>0>(gA=s+P|0)>>>0?o+1|0:o,l=f+U|0,o=l=(s=(o=0)+AA|0)>>>0<o>>>0?l+1|0:l,f=(0|U)==(0|l)&s>>>0<AA>>>0|l>>>0<U>>>0,l=c,l=(c=f+(_=gA)|0)>>>0<f>>>0?l+1|0:l,AA=c,f=s,P=o,o=(s=(s=(s=(0|m)==(0|Is)&zA>>>0>ir>>>0|m>>>0<Is>>>0)+(m=(0|m)==(0|Br)&ir>>>0>xr>>>0|m>>>0>Br>>>0)|0)+(o=(0|Me)==(0|Br)&bA>>>0<xr>>>0|Me>>>0<Br>>>0)|0)+P|0,l=c=l,P=c=(f=(0|(o=(s=m=(U=Me)+f|0)>>>0<U>>>0?o+1|0:o))==(0|P)&f>>>0>s>>>0|o>>>0<P>>>0)+AA|0,c=l=f>>>0>c>>>0?l+1|0:l,f=s,l=0,m=o,o=o+((_=U=(0|Oe)==(0|Ve)&Ce>>>0<Ot>>>0|Oe>>>0>Ve>>>0)>>>0>(U=U+((0|Oe)==(0|Et)&rt>>>0>Ot>>>0|Oe>>>0<Et>>>0)|0)>>>0?1:l)|0,l=c,m=l=(c=f=(0|(o=(s=s+U|0)>>>0<U>>>0?o+1|0:o))==(0|m)&s>>>0<f>>>0|o>>>0<m>>>0)>>>0>(f=f+P|0)>>>0?l+1|0:l,65536&l?Qe=Qe+1|0:(P=le>>>31|0,l=m<<1|f>>>31,f=f<<1|o>>>31,m=l,l=o<<1|s>>>31,s=s<<1|r>>>31,o=l,l=le<<1|re>>>31,re<<=1,le=l,l=r<<1|t>>>31,t=t<<1|P,r=l|(c=0)),(0|Qe)>=32767)Z|=2147418112,t=0,r=0;else{A:{if((0|Qe)<=0){if((c=1-Qe|0)>>>0<=127){Mt(I+48|0,re,le,t,r,l=Qe+127|0),Mt(I+32|0,s,o,f,m,l),vr(I+16|0,re,le,t,r,c),vr(I,s,o,f,m,c),re=e[I+32>>2]|e[I+16>>2]|!!(e[I+48>>2]|e[I+56>>2]|e[I+52>>2]|e[I+60>>2]),le=e[I+36>>2]|e[I+20>>2],t=e[I+40>>2]|e[I+24>>2],r=e[I+44>>2]|e[I+28>>2],s=e[I>>2],o=e[I+4>>2],c=e[I+8>>2],l=e[I+12>>2];break A}t=0,r=0;break e}c=f,l=65535&m|Qe<<16}W|=c,Z|=l,(!t&(0|r)==-2147483648?!(re|le):(0|r)>0|(0|r)>=0)?t|re|-2147483648^r|le?(t=s,r=o):(P=Z,Z=(s=(0|(l=o))==(0|(r=(r=t=1&s)>>>0>(t=t+s|0)>>>0?l+1|0:l))&t>>>0<s>>>0|r>>>0<l>>>0)>>>0>(W=s+W|0)>>>0?P+1|0:P):(s=(0|o)==(0|(r=(t=s+1|0)?o:o+1|0))&t>>>0<s>>>0|r>>>0<o>>>0,o=Z,Z=(W=s+W|0)>>>0<s>>>0?o+1|0:o)}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=W,e[A+12>>2]=Z,Y=I+96|0}function UA(A,t,r,s,o,l,c){var f,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0;Y=f=Y-480|0,e[f+476>>2]=0,e[f+456>>2]=0,e[f+460>>2]=0,e[f+448>>2]=0,e[f+452>>2]=0,e[f+440>>2]=0,e[f+444>>2]=0,e[f+432>>2]=0,e[f+436>>2]=0,m=0;e:if(e[A+684>>2]){for(W=c?e[c>>2]:W;b=u[t+m|0],d[(f+112|0)+m|0]=b,I=m+1|0,b&&(b=m>>>0<158,m=I,b););if(d[I+(f+112|0)|0]=0,!((re=268435456&l)|!(8&e[47197]))){I=0;A:if(223&(b=u[0|t]))for(m=0;;){if(d[(f+272|0)+m|0]=b,!(223&(b=u[(I=m+1|0)+t|0])))break A;if(x=m>>>0<118,m=I,!x)break}d[(m=f+272|0)+I|0]=0,e[f+48>>2]=m,rr(e[47195],(0|l)>=0?87019:86877,f+48|0)}e[f+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0,o&&(d[0|o]=0);A:{r:if(223&(m=u[0|t]))for(le=536870912&l,Ce=4096&l,Me=f+105|0,I=t,b=0;;){x=WA(f+476|0,I),Z=!!(0|jt(e[f+476>>2]))+Z|0,_=u[(m=(P=255&m)+A|0)+7668|0];a:if(!((U=e[f+476>>2])-48>>>0<10|U-2406>>>0<10)|(Z?u[A+170|0]:0)){n:if((b=e[f+476>>2]-e[A+600>>2]|0)>>>0>127||!(b=e[6192+((b<<2)+A|0)>>2])){if(_){for(U=5168+((P<<2)+A|0)|0,_=_+(m=u[m+7924|0])|0,Qe=P|u[I+1|0]<<8,b=0;e[(I=(m<<2)+A|0)+7184>>2]==(0|Qe)&&(e[f+472>>2]=e[f+464>>2],KA(A,f+472|0,t,2,e[I+6704>>2],f+432|0,l,W),(0|(I=e[f+432>>2]))>0&&(I=I+35|0,e[f+432>>2]=I),b=1,KA(A,f+464|0,t,1,e[U>>2],f+448|0,l,W),e[f+448>>2]>(0|I)||(I=e[f+444>>2],e[f+456>>2]=e[f+440>>2],e[f+460>>2]=I,I=e[f+436>>2],e[f+448>>2]=e[f+432>>2],e[f+452>>2]=I,e[f+464>>2]=e[f+472>>2])),_>>>0>(m=m+1|0)>>>0;);if(b)break n}o:{c:{if(!(m=e[5168+((P<<2)+A|0)>>2])){if(KA(A,f+464|0,t,0,e[A+5168>>2],f+448|0,l,W),e[f+448>>2])break o;if(16&u[188808])break c;if(b=WA(f+468|0,P=(I=e[f+464>>2])-1|0),m=e[f+468>>2],!(e[A+600>>2]<=0|(0|m)>577)){if(di(m)){e[f+32>>2]=21,dA(r,87049,f+32|0);break A}m=e[f+468>>2]}if((0|m)==57384&&((0|(_=e[A+92>>2]))<=e[47352]||(e[47352]=_)),an(m)&&((0|(m=e[A+72>>2]))<=e[47352]||(e[47352]=m)),!((_=(m=e[f+468>>2])-192|0)>>>0>413)&&(_=u[_+94240|0])&&(b=b-1|0,!(u[I-2|0]==32&u[b+I|0]==32))){for(e[f+472>>2]=P,d[0|P]=_;x=u[(m=I)+b|0],d[0|m]=x,I=m+1|0,(0|x)!=32;);if((0|b)>0&&Xe(m,32,b),e[A+24>>2]&&!((0|la(94222,e[f+468>>2]))<=0)){e[f+464>>2]=P,b=0;break a}b=0,d[0|r]=0,e[f+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0;break a}if(!(m=pA(m))||(0|(I=e[m+4>>2]))==e[A+600>>2])break c;if((0|I)==e[A+188>>2]){e[f+4>>2]=q(f- -64|0,e[A+192>>2]),e[f>>2]=21,dA(r,87218,f);break A}if(!(4&u[m+16|0]))break c;e[f+20>>2]=q(f- -64|0,e[m+12>>2]),e[f+16>>2]=21,dA(r,87218,f+16|0);break A}if(KA(A,f+464|0,t,1,m,f+448|0,l,W),e[f+448>>2])break o}c:if(!((m=e[f+476>>2])-768>>>0<112)){if(jt(m)){if(d[(x+e[f+464>>2]|0)-1|0]<33&(0|Z)<=1)break c;if(d[0|r]=0,!c)break r;e[c>>2]=4096|e[c>>2];break r}xA(A,e[f+476>>2],-1,f+272|0,0),u[f+272|0]&&(e[f+448>>2]=1,e[f+452>>2]=f+272)}e[f+464>>2]=(x+e[f+464>>2]|0)-1;break n}e[A+288>>2]=0}else KA(A,f+464|0,t,x,b,f+448|0,l,W);if(I=(m=e[f+452>>2])||86135,e[f+452>>2]=I,b=0,!(e[f+448>>2]<=0)){if(m=1|e[f+456>>2],(0|l)<0)break e;if(!(u[0|I]!=21|Ce)){PA(r,I);break A}if(!(!(8&e[47197])|re))n:if(m=e[47195],(0|(x=e[m+76>>2]))>=0&(!x|e[56823]!=(-1073741825&x)))P=e[(x=m+76|0)>>2],e[x>>2]=P||1073741823,e[m+80>>2]==10||(0|(P=e[m+20>>2]))==e[m+16>>2]?Xs(m):(e[m+20>>2]=P+1,d[0|P]=10),e[x>>2]=0;else{if(e[m+80>>2]!=10&&(0|(x=e[m+20>>2]))!=e[m+16>>2]){e[m+20>>2]=x+1,d[0|x]=10;break n}Xs(m)}if(x=-32769&(m=e[f+456>>2]),e[f+456>>2]=x,!(!o|!x|(1024&m?le:0))){A=e[f+464>>2],PA(o,I),m=x|(Oe=(r=A)-LA(t,A=f+112|0,EA(A))|0,(1151&m)==1024?Oe:0);break e}(m=e[f+460>>2])&&(d[0|m]=69),Gn(A,r,s,I)}}else d[f+104|0]=95,LA(Me,I,x),m=1,d[105+(f+x|0)|0]=0,GA(A,f+104|0,f- -64|0),b-1>>>0<=4294967293&&(m=EA(m=f- -64|0)+m|0,d[0|m]=11,d[m+1|0]=0,m=0),Gn(A,r,s,f- -64|0),e[f+464>>2]=I+x,b=m;if(I=e[f+464>>2],!(223&(m=u[0|I])))break}LA(t,A=f+112|0,EA(A))}m=0}return Y=f+480|0,m}function ta(A,t){var r,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0;Y=r=Y-2976|0,e[t>>2]=1,s=e[A+20>>2],e[(f=r+2960|0)>>2]=e[A+16>>2],e[f+4>>2]=s,s=e[A+12>>2],e[(f=r+2952|0)>>2]=e[A+8>>2],e[f+4>>2]=s,s=e[A+4>>2],e[r+2944>>2]=e[A>>2],e[r+2948>>2]=s,e[50303]||QA();e:if(A=e[r+2948>>2],u[0|A]&&A||((A=e[r+2944>>2])||(A=(A=e[r+2952>>2])||85055,e[r+2944>>2]=A),Vt(s=r+80|0,A,60),na(s,0),!(l=Pr(201216,s))||(e[r+2948>>2]=e[l+4>>2]+1,u[r+2958|0]|u[r+2956|0]|u[r+2957|0]))){Z=r+1536|0,Y=W=Y-336|0;A:if(!(!(A=e[(U=r+2944|0)+4>>2])|!u[0|A])){if((0|(re=EA(A)))>=0){for(s=re>>>0>=79?79:re,b=1;A=Gs(d[e[U+4>>2]+o|0]),d[(W+256|0)+o|0]=A,b=((255&A)==45)+b|0,A=(0|s)!=(0|o),o=o+1|0,A;);if((0|b)!=1)break A}b=1}if((0|(x=e[50303]))<=0)e[Z>>2]=0,A=0;else{for(f=(0|b)>=0;;){I=e[201216+(Me<<2)>>2];A:if(Xr(e[I+8>>2],88032,3)){if((A=e[U+4>>2])&&Xr(A,91687,3)){if(f){A=100;r:if(b){if(s=0,o=e[I+4>>2],!(le=u[0|o])){if(!Xr(W+256|0,90013,9))break r;break A}for(;;){for(Qe=1,m=o+1|0,Ce=1,Oe=0,o=0;(0|o)<(0|re)&&(0|(A=d[(W+256|0)+o|0]))!=45||(A=0),Oe=((P=(0|(_=u[o+m|0]))==45)&!!(0|(Ce=(P?0:_)<<24>>24==(0|A)?Ce:0)))+Oe|0,o=o+1|0,Qe=P+Qe|0,_;);if(o=o+m|0,(P=Ce+Oe|0)&&(s=(0|(A=O((m=(0|(A=b-P|0))<=0?5:5-A|0)-((0|(A=Qe-P|0))>0?A:0)|0,100)-(le<<24>>24<<1)|0))>(0|s)?A:s),!(le=u[0|o]))break}if(!(A=s))break A}(s=e[U>>2])&&(A=nr(s,e[I>>2])?nr(s,e[I+8>>2])?A:A+400|0:A+500|0),((o=u[U+12|0])-1&255)>>>0>1||((s=u[I+12|0])-1&255)>>>0>1||(A=(0|s)!=(0|o)?A-50|0:A+50|0),o=u[U+13|0],A=u[I+12|0]!=2|o>>>0>12?A:u[I+13|0]>12?A+5|0:A,(s=u[I+13|0])&&((s=((o?O(o,100):3e3)>>>0)/(s>>>0)|0)>>>0<=99&&(s=1e4/(s>>>0)|0),A=(m=A)+((A=5-(((s-100&65535)>>>0)/10|0)|0)>>31&A)|0,A=o?A+10|0:A),A=(0|A)<=1?1:A}else{if(Xr(e[I+8>>2],W+256|0,re))break A;A=100}e[Z+(c<<2)>>2]=I,e[I+16>>2]=A}else e[Z+(c<<2)>>2]=I;c=c+1|0}if((0|x)==(0|(Me=Me+1|0)))break}e[Z+(c<<2)>>2]=0,A=0,c&&(ra(Z,c,8),A=c)}if(Y=W+336|0,b=A,A||(e[t>>2]=0,A=Pr(201216,85055),e[r+1536>>2]=A,b=!!(0|A)),t=u[r+2957|0],f=2,(0|(A=u[r+2956|0]))!=2&&(f=2,(t-1&255)>>>0<12||(AA=(0|A)!=1,f=(0|A)==1)),x=(c=e[132136+(f<<2)>>2])+(_=t>>>0<60)|0,A=0,(0|b)>0)for(s=0;;){l=e[(r+1536|0)+(Ve<<2)>>2];A:{r:{a:{if(AA){if(_||(t=0,s))break r}else{if(t=u[l+12|0],s|_)break a;t=(0|t)!=(0|f)}if(o=0,t|u[l+13|0]<60)break A;break r}if((0|t)!=(0|f)){o=s;break A}}e[(r+80|0)+(s<<2)>>2]=l,o=s+1|0}A:if(u[l+15|0]){if(P=0,t=A,s=o,!((0|A)>11))for(;;){if((o=u[0|x])||(x=c,o=u[0|c]),A=e[l+12>>2],m=O(t,24)+202624|0,e[m+8>>2]=e[l+8>>2],e[m+12>>2]=A,A=e[l+4>>2],e[m>>2]=e[l>>2],e[m+4>>2]=A,A=e[l+20>>2],e[m+16>>2]=e[l+16>>2],e[m+20>>2]=A,d[m+14|0]=o,e[(r+80|0)+(s<<2)>>2]=m,x=x+1|0,s=s+1|0,A=t+1|0,(P=P+1|0)>>>0>=u[l+15|0])break A;if(o=(0|t)<11,t=A,!o)break}}else s=o;if((0|(Ve=Ve+1|0))==(0|b))break}else{if(!l)break e;s=0}A:if(!(!(o=u[0|x])|(0|A)>=12))for(;;){if(t=e[l+12>>2],c=O(A,24)+202624|0,e[c+8>>2]=e[l+8>>2],e[c+12>>2]=t,t=e[l+4>>2],e[c>>2]=e[l>>2],e[c+4>>2]=t,t=e[l+20>>2],e[c+16>>2]=e[l+16>>2],e[c+20>>2]=t,d[c+14|0]=o,e[(r+80|0)+(s<<2)>>2]=c,s=s+1|0,!(o=u[0|(x=x+1|0)]))break A;if(t=(0|A)<11,A=A+1|0,!t)break}s?(A=e[(r+80|0)+(u[r+2958|0]%(0|s)<<2)>>2],(t=u[A+14|0])?(d[202976]=0,e[r+48>>2]=47,dA(r+2971|0,91351,r+48|0),d[r+2971|0]=0,t>>>0<=9?(e[r+20>>2]=t,e[r+16>>2]=r+2971,dA(202976,91378,r+16|0)):(e[r+36>>2]=t-10,e[r+32>>2]=r+2971,dA(202976,91503,r+32|0)),A=e[A+8>>2],e[r+4>>2]=202976,e[r>>2]=A,A=202912,dA(202912,87760,r)):A=e[A+8>>2]):A=0}else{if(A=e[l+8>>2],!u[202976])break e;e[r+64>>2]=A,e[r+68>>2]=202976,A=202912,dA(202912,87760,r- -64|0)}return Y=r+2976|0,A}function Os(A,t,r,s,o){var l,c,f=0,m=0,I=0,b=0,x=0,P=0,_=0;Y=l=Y-464|0,d[l+432|0]=0,d[l+368|0]=0,d[l+304|0]=0,d[l+292|0]=0,x=(0|t)/10|0,f=e[33273];e:{if(!(c=2&s)|e[33272]!=2){_=32&s?113:111,b=1&s,P=t-O(x,10)|0;A:{r:{a:{n:{o:{c:{u:{l:if(u[0|f])f=0;else{i:{if(8&s){if(e[l+288>>2]=t,dA(m=l+452|0,91198,l+288|0),f=GA(A,m,l+304|0)){m=0;break l}e[l+272>>2]=t,dA(m=l+452|0,91314,l+272|0),f=GA(A,m,l+304|0),m=0}else{if(!b)break i;if(I=PA(l+432|0,133104),4&s){if(e[l+260>>2]=_,e[l+256>>2]=t,dA(m=l+452|0,91324,l+256|0),f=GA(A,m,l+304|0),u[133116]&&f)break u;if(m=f,f)break l}e[l+244>>2]=_,e[l+240>>2]=t,dA(m=l+452|0,91384,l+240|0),m=f=GA(A,m,l+304|0)}if(f)break l}i:{if(c){if(!(1&d[133096]))break i;e[l+208>>2]=t,dA(f=l+452|0,91498,l+208|0),f=GA(A,f,l+304|0)}else I=e[A+108>>2],e[l+224>>2]=t,dA(f=l+452|0,(0|r)>=2?91700:(262144&I)>>>18|0?91534:91700,l+224|0),f=GA(A,f,l+304|0);if(f)break l}!b|!(32&u[A+109|0])?(e[l+192>>2]=t,dA(f=l+452|0,91766,l+192|0),f=GA(A,f,l+304|0)):f=0}if(!(16&s)|(0|t)>9)break o;f=m;break c}if(PA(I,133116),!(16&s)|(0|t)>9)break n}GA(A,88875,l+368|0);break r}if(!f)break a;f=m}d[l+368|0]=0;break r}a:if(b&&(e[l+180>>2]=_,e[l+176>>2]=x,dA(f=l+452|0,91846,l+176|0),GA(A,f,l+368|0))){if(m=1,!P|!(16&u[A+109|0]))break a;ts(l+368|0,133104)}else m||(e[l+160>>2]=x,dA(m=l+452|0,512&s?91936:92016,l+160|0),GA(A,m,l+368|0),m=0);if(f=P,u[l+368|0]||(f=P,16&u[A+106|0]&&(e[l+144>>2]=254&x,dA(f=l+452|0,92016,l+144|0),GA(A,f,l+368|0),f=(0|t)%20|0)),d[l+304|0]=0,x=f,(0|f)<=0)f=m;else{if(c&&(f=e[33273],u[0|f])){PA(l+304|0,f),d[l+432|0]=0,I=b;break A}if(I=0,8&s&&(e[l+128>>2]=x,dA(s=l+452|0,91314,l+128|0),I=GA(A,s,l+304|0)),!b|16&u[A+104|0]||(e[l+116>>2]=_,e[l+112>>2]=x,dA(s=l+452|0,91384,l+112|0),m=(I=GA(A,s,l+304|0))?1:m),f=m,!I){a:{if(!c|!(1&e[33274])){if(!(16&u[A+104|0])&&c)break a;m=e[A+108>>2],e[l+96>>2]=x,dA(s=l+452|0,(0|r)>=2?91700:(262144&m)>>>18|0?91534:91700,l+96|0),r=GA(A,s,l+304|0)}else e[l+80>>2]=x,dA(r=l+452|0,91498,l+80|0),r=GA(A,r,l+304|0);if(r)break r}e[l+64>>2]=x,dA(r=l+452|0,91766,l- -64|0),GA(A,r,l+304|0)}}}I=b,u[l+432|0]|f|!b||((0|t)<20|(16&u[A+104|0]?0:P)||(GA(A,92162,l+432|0),I=1,!u[l+432|0]))&&(GA(A,92205,l+432|0),I=1)}if(!(!(r=d[l+304|0])|!(48&(t=e[A+104>>2]))|!u[l+368|0])){if(GA(A,90824,l+292|0),!I|!(8&u[A+109|0])||(d[l+292|0]=0),16&u[A+104|0]){e[l+28>>2]=l+432,e[l+24>>2]=l+368,e[l+20>>2]=l+292,e[l+16>>2]=l+304,dA(o,91059,l+16|0),s=1;break e}e[l+12>>2]=l+432,e[l+8>>2]=l+304,e[l+4>>2]=l+292,e[l>>2]=l+368,dA(o,91059,l),s=1;break e}512&t&&(!r|(0|(t=EA(l+368|0)-1|0))<0||(f=u[e[144464+(d[0|(t=t+(l+368|0)|0)]<<2)>>2]+11|0]!=2,(0|(s=u[e[144464+(r<<2)>>2]+11|0]))==1&&(s=u[e[144464+(d[l+305|0]<<2)>>2]+11|0]),f|(255&s)!=2||(d[0|t]=0))),!(8&u[A+110|0])|!u[l+432|0]?(e[l+56>>2]=l+432,e[l+52>>2]=l+304,e[l+48>>2]=l+368,dA(o,92282,l+48|0)):(e[l+36>>2]=l+304,e[l+32>>2]=l+368,(0|(t=dA(o,90368,l+32|0)))>0&&(t=u[e[144464+(u[(r=t-1|0)+o|0]<<2)>>2]+11|0]==2?r:t),PA(t+o|0,l+432|0))}else PA(o,f);s=0}e:if(268435456&(A=e[A+104>>2])){if((0|EA(o))<=0)break e;for(t=0,A=0;u[0|(r=A+o|0)]==6&&(t&&(d[0|r]=5),t=1),A=A+1|0,(0|EA(o))>(0|A););}else if(256&A&&(t=0,!((0|(A=(b=EA(o))-1|0))<0))){if(A)for(P=-2&b,f=0;u[0|(m=A+o|0)]==6?(r=1,t&&(d[0|m]=5)):r=t,u[0|(m=m-1|0)]==6?(t=1,r&&(d[0|m]=5)):t=r,A=A-2|0,(0|P)!=(0|(f=f+2|0)););1&b&&(!t|u[0|(A=A+o|0)]!=6||(d[0|A]=5))}return Y=l+464|0,s}function Jt(A,t,r,s){var o,l,c=0,f=0,m=0,I=0,b=0,x=0,P=0;if(Y=o=Y-352|0,d[o+304|0]=0,d[o+224|0]=0,d[o+64|0]=0,m=e[e[47192]+292>>2],P=WA(o+348|0,t),(1048320&(c=e[o+348>>2]))==57344&&(c&=255,e[o+348>>2]=c),2&s&&Bs(c)&&GA(A,85437,o+304|0),c=Yn(e[o+348>>2],A),e[o+348>>2]=c,x=1&s,xA(A,c,d[0|(l=t+P|0)],o+224|0,x),!(t=u[o+224|0])){e:if((t=An(e[o+348>>2]))&&(e[o+348>>2]=16383&t,4&s)){A:switch(1073741823&(t>>=14)){case 0:case 3:break e;default:break A}GA(A,t=e[131232+(t<<2)>>2],o+304|0),u[o+304|0]||(d[o+306|0]=Hn(84744),b=t,t=o+304|3,GA(e[47194],b,t),u[o+307|0]&&(w[o+304>>1]=5385,t=EA(t)+(o+304|0)|0,d[t+5|0]=0,d[t+4|0]=m,d[t+3|0]=21))}xA(A,e[o+348>>2],d[0|l],o+224|0,x),t=u[o+224|0]}e:{A:{if(t&=255){if((0|t)!=21)break A;PA(r,o+224|0),P=0;break e}if(t=1632,!((0|(c=e[o+348>>2]))<1632)){for(I=103360;;){if((0|c)>=(t+10|0)){if(!(t=e[(I=I+4|0)>>2]))break A;if((0|t)<=(0|c))continue;break A}break}(0|(t=48+(c-t|0)|0))<=0||xA(A,t,0,o+224|0,x)}}A:{r:{a:{n:{if(t=pA(e[o+348>>2])){if(c=e[t+4>>2],!t|1&(I=e[t+16>>2])||(f=e[47192],e[f+600>>2]==(0|c)|e[f+188>>2]==(0|c)|e[f+184>>2]==(0|c)||(d[o+144|0]=0,GA(f,e[t>>2],o- -64|0)?(0|(f=e[47192]))!=(0|A)&&(m=e[A+292>>2],PA(o+144|0,o- -64|0),d[o+66|0]=e[f+292>>2]):(d[o+66|0]=Hn(84744),GA(e[47194],e[t>>2],o+144|0)),u[o+144|0]&&(w[o+64>>1]=5385,PA(3|(f=o- -64|0),b=o+144|0),f=EA(b)+f|0,d[f+5|0]=0,d[f+4|0]=m,d[f+3|0]=21))),u[o+224|0])break A;if(!c||(m=e[47192],e[m+188>>2]!=(0|c)))break n;t=e[m+192>>2];break r}if(u[o+224|0])break A;I=0,c=0;break a}if((t=e[t+12>>2])&&!(2&I))break r}t=25966}if((e[A+212>>2]==(0|t)&(0|t)!=27503||(d[o+226|0]=Hn(q(o+47|0,t)),(t=e[47194])&&((0|(m=e[o+348>>2]))>55215||(0|(f=m-44032|0))<0?xA(t,m,d[0|l],o+224|3,x):(d[o+52|0]=32,t=b=o+53|0,m-50500>>>0>=588&&(t=ar(4352+((f>>>0)/588|0)|0,b)+b|0),ar(4449+(((m=(f>>>0)/28|0)>>>0)%21|0)|0,t),ar(4519+(f-O(m,28)|0)|0,t+3|0),d[t+6|0]=32,d[t+7|0]=0,d[o+227|0]=0,t=o+224|3,UA(e[47194],b,t,77,0,0,0),Zt(e[47194],t,0,-1,0)),t=o+224|3,u[o+227|0]==21&&(d[o+226|0]=Hn(o+224|4),xA(e[47194],e[o+348>>2],d[0|l],t,x)),is(e[e[32972]+60>>2]),u[o+227|0]&&(w[o+224>>1]=5385,t=EA(t)+(o+224|0)|0,d[t+3|0]=21,x=e[A+292>>2],d[t+5|0]=0,d[t+4|0]=x)),!u[o+224|0]))&&(16&I||(Ke(e[o+348>>2])&&GA(e[47192],85683,o+224|0),u[o+224|0]||(wr(e[o+348>>2])||GA(e[47192],85778,o+224|0),u[o+224|0]||Tr(85992,o+224|0,0))),!(8&I)||4&s)){if(t=e[o+348>>2],(0|c)!=10240?(e[o+32>>2]=t,dA(o+52|0,86013,o+32|0)):(c=o+52|0,1&t&&(d[o+52|0]=49,c=o+53|0),2&t&&(d[0|c]=50,c=c+1|0),4&t&&(d[0|c]=51,c=c+1|0,t=e[o+348>>
vendor: 4,474 bytes, line 2896
28962]),8&t&&(d[0|c]=52,c=c+1|0,t=e[o+348>>2]),16&t&&(d[0|c]=53,c=c+1|0,t=e[o+348>>2]),32&t&&(d[0|c]=54,c=c+1|0,t=e[o+348>>2]),64&t&&(d[0|c]=55,c=c+1|0,t=e[o+348>>2]),128&t&&(d[0|c]=56,c=c+1|0),d[0|c]=0),t=o+224|0,I=u[o+52|0])for(c=o+52|0;t=EA(t)+t|0,d[0|t]=23,t=t+1|0,xA(e[47192],I<<24>>24,0,t,1),(s=u[0|t])&&(0|s)!=21||(0|(s=d[0|c]))<97||Tr(e[130860+((255&s)<<2)>>2],t,0),I=u[0|(c=c+1|0)];);t=EA(t)+t|0,d[0|t]=9,d[t+1|0]=0}}t=EA(r),2&u[A+144|0]?(e[o+16>>2]=255,e[o+28>>2]=o+304,e[o+24>>2]=o+224,e[o+20>>2]=o- -64,dA(o+144|0,86210,o+16|0)):(e[o>>2]=255,e[o+12>>2]=o+224,e[o+8>>2]=o+304,e[o+4>>2]=o- -64,dA(o+144|0,86210,o)),EA(o+144|0)+t>>>0>199||PA(t+r|0,o+144|0)}return Y=o+352|0,P}function bs(A,t,r,s,o,l,c){var f,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0,gA=0,bA=0,zA=0,jA=0,rt=0;Y=f=Y-528|0,re=c?e[c>>2]:0,Ve=e[o+4>>2];e:{A:{if(e[A+220>>2]>0){Vt(I=f+352|0,t,160),Y=_=Y-176|0,U=1-(W=e[A+220>>2])|0,Z=e[A+224>>2],le=e[A+216>>2],x=I;r:{a:{for(;;){if(Ce=WA(_+172|0,x),m=e[_+172>>2]){if((0|m)<(0|W)|(0|m)>(0|le))break a;if(Z){if((0|(m=d[Z+(m-W|0)|0]))<=0)break a}else m=m+U|0;if(x=x+Ce|0,d[P+_|0]=m,m=160,(0|(P=P+1|0))!=160)continue}else m=P;break}if(Z=0,d[m+_|0]=0,U=d[0|_],e[_+172>>2]=U,U){for(AA=2+(le-W|0)|0,W=m=_;;){le=m+1|0;n:{if((Ce=e[A+8180>>2])&&(P=0,!((0|(x=w[Ce>>1]))>(0|(Qe=(d[0|le]<<8)+U|0)))))for(;;){if((0|x)==(0|Qe)){U=P+AA|0,e[_+172>>2]=U,m=m+2|0;break n}if(!((0|Qe)>=(0|(x=w[Ce+((P=P+1|0)<<1)>>1]))))break}m=le}if(Me=63&U|Me<<6,(0|(P=Z+6|0))<8?Z=P:(Z=Z-2|0,d[0|W]=Me>>Z,W=W+1|0),U=d[0|m],e[_+172>>2]=U,!U)break}(0|Z)<=0||(d[0|W]=Me<<8-Z,W=W+1|0)}else W=_;d[0|W]=0,LA(I,_,m=W-_|0),W=64|m;break r}W=EA(I)}Y=_+176|0,_=I}else W=EA(t),_=t;if(I=u[0|_]){for(m=0,P=_;b=1023&(b=(b<<3)+I|0)^b>>>8,m=m+1|0,I=u[0|(P=P+1|0)];);m=m+b&1023}else m=0;if(b=e[692+((m<<2)+A|0)>>2]){if(m=u[0|b])break A;m=0;break e}if(m=0,!o)break e;e[o>>2]=0;break e}for(Ce=1073741824&Ve,Qe=2048&l,Ve=512&re,AA=65536&re,gA=1&re,bA=2&re,re=8&l,zA=1024&l,le=4&l,jA=63&W,rt=A+8233|0;;){l=(255&m)+b|0;A:{r:if((127&(m=u[b+1|0]))==(0|W)&&!Xr(_,b+2|0,jA)){b=2+((63&m)+b|0)|0;a:{if(m<<24>>24<0)Z=0,d[0|s]=0;else{if((0|(Z=EA(b)))>=160)break a;PA(s,b),b=1+(b+Z|0)|0}if(I=0,l>>>0<=b>>>0)m=r,x=0;else{P=0,x=0;n:{for(;;){b=(m=b)+1|0;o:if((m=u[0|m])>>>0>=100){if(U=e[A+320>>2],m>>>0>=132){P|=U>>>m-132&1;break o}P|=!(U>>>m-100&1)}else{if(m>>>0>=81){U=m-80|0,Me=l-b|0;c:if(c)for(m=0;;){if(Oe=O(m,12)+c|0,!u[Oe+10|0])break c;if(P=!!(12&u[Oe+1|0])|P,Oe=(0|m)!=(0|U),m=m+1|0,!Oe)break}if(et(r,b,Me)|1&P)break r;e[33264]=U,m=r+Me|0,x|=128,b=l;break n}m>>>0>=65?(x=15&m|-16&x,x=12&~m?x:512|x):m>>>0>=32?I|=1<<m-32:x|=1<<m}if(!(l>>>0>b>>>0))break}if(m=r,1&P)break A}if(65536&I&&!le||zA&&49152&I)break A}if(le&&(16384&I||!re&&32768&I)||(bA?0:512&I)|(gA?0:1024&I)|(AA?0:33554432&x)||!(!(131072&I)|ee[e[47192]+8204>>2]<=m>>>0|Ce)|(Ve?0:262144&I)|(8&u[e[47192]+8242|0]?0:8192&I)||16&I&&(!e[A+8184>>2]&(!re|!e[A+8192>>2])||!(!re|e[A+212>>2]!=25966)&&2097152&e[A+8232>>2])||(e[A+8188>>2]?0:64&I)|(!e[A+8196>>2]|Qe?32&I:0)||!(!(65536&x)|e[A+212>>2]!=26741|128&u[0|rt])|(e[47192]!=(0|A)?524288&I:0))break A;n:{o:{c:{if(!o){if(!Z)break c;break n}if(e[o+4>>2]=I,e[o>>2]=1073741824|x,Z)break o}if(m=0,!(8&u[188788]))break e;Qn(o,A=f+272|0),e[f>>2]=t,e[f+4>>2]=A,rr(e[47195],89330,f);break e}e[o>>2]=-1073741824|x}if(8&u[188788]&&(Ar(s,f- -64|0),u[e[47192]+172|0]==(x>>>29&1)&&(!c|!(128&x)?(e[f+48>>2]=t,rr(e[47195],89426,f+48|0)):(LA(A=f+352|0,s=r,r=m-r|0),d[351+(r+f|0)|0]=0,e[f+32>>2]=t,e[f+36>>2]=A,rr(e[47195],89397,f+32|0)),Qn(o,A=f+272|0),t=e[47195],e[f+16>>2]=f- -64,e[f+20>>2]=A,rr(t,89534,f+16|0))),u[WA(f- -64|0,_)+_|0]|!o||jt(e[f+64>>2]))break e;e[o>>2]=134217728|e[o>>2];break e}ie(89236,86634,2467,94846),R()}b=l}if(!(m=u[0|b]))break}m=0}return Y=f+528|0,m}function mt(A,t,r,s,o){var l,c=0,f=0;Y=l=Y-304|0,d[l+278|0]=0;e:{if((0|t)>0&&(1&s&&(2&s&&(e[l+164>>2]=r,e[l+160>>2]=t,dA(c=l+290|0,89701,l+160|0),c=GA(A,c,l+224|0))||1&d[133096]&&(e[l+148>>2]=r,e[l+144>>2]=t,dA(c=l+290|0,89757,l+144|0),c=GA(A,c,l+224|0))||(e[l+132>>2]=r,e[l+128>>2]=t,dA(c=l+290|0,89894,l+128|0),c=GA(A,c,l+224|0)))||(e[l+116>>2]=r,e[l+112>>2]=t,dA(c=l+290|0,89974,l+112|0),c=GA(A,c,l+224|0))))break e;if((0|(f=(0|t)%100|0))>=20&&GA(A,90022,l+278|0),1&s){if(2&s){c=f-11|0;A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(c>>>0<9)break r;if(s=90418,(0|(c=(0|t)%10|0))==1)break A;if(c-2>>>0>=3)break r;s=90453;break A;case 1:if(t-2>>>0>=3)break r;s=90453;break A;case 2:if(c>>>0<9|((0|t)%10|0)-2>>
2896>0>=3)break r;s=90453;break A;case 3:if(s=90508,c>>>0<9)break A;s=(s=(0|t)%10|0)?(0|s)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(c>>>0<9)){if(s=90537,(0|(c=(0|t)%10|0))==1)break A;if(!(c-2>>>0>=3)){s=90453;break A}}}s=90586}if(e[l+100>>2]=r,e[l+96>>2]=s,dA(s=l+290|0,90058,l+96|0),c=0,GA(A,s,l+224|0))break e}if(s=f-11|0,1&d[133096]){A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(s>>>0<9)break r;if(c=90418,(0|(f=(0|t)%10|0))==1)break A;if(f-2>>>0>=3)break r;c=90453;break A;case 1:if(t-2>>>0>=3)break r;c=90453;break A;case 2:if(s>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,s>>>0<9)break A;c=(c=(0|t)%10|0)?(0|c)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(s>>>0<9)){if(c=90537,(0|(f=(0|t)%10|0))==1)break A;if(!(f-2>>>0>=3)){c=90453;break A}}}c=90586}if(e[l+84>>2]=r,e[l+80>>2]=c,dA(f=l+290|0,90110,l+80|0),c=0,GA(A,f,l+224|0))break e}A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(s>>>0<9)break r;if(c=90418,(0|(f=(0|t)%10|0))==1)break A;if(f-2>>>0>=3)break r;c=90453;break A;case 1:if(t-2>>>0>=3)break r;c=90453;break A;case 2:if(s>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,s>>>0<9)break A;c=(c=(0|t)%10|0)?(0|c)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(s>>>0<9)){if(c=90537,(0|(f=(0|t)%10|0))==1)break A;if(!(f-2>>>0>=3)){c=90453;break A}}}c=90586}if(e[l+68>>2]=r,e[l+64>>2]=c,dA(f=l+290|0,90139,l- -64|0),c=0,GA(A,f,l+224|0))break e}else s=f-11|0;A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(s>>>0<9)break r;if(c=90418,(0|(s=(0|t)%10|0))==1)break A;if(s-2>>>0>=3)break r;c=90453;break A;case 1:if(t-2>>>0>=3)break r;c=90453;break A;case 2:if(s>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,s>>>0<9)break A;c=(s=(0|t)%10|0)?(0|s)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(s>>>0<9)){if(c=90537,(0|(s=(0|t)%10|0))==1)break A;if(!(s-2>>>0>=3)){c=90453;break A}}}c=90586}e[l+52>>2]=r,e[l+48>>2]=c,dA(s=l+290|0,90218,l+48|0),c=0,GA(A,s,l+224|0)||((0|r)<4||(e[l+32>>2]=r-1,dA(s=l+290|0,89026,l+32|0),GA(A,s,l+176|0)||(GA(A,90273,l+224|0),e[33275]=3)),u[l+224|0]||(e[l+16>>2]=t,dA(s=l+290|0,90303,l+16|0),(c=GA(A,s,l+224|0))||GA(A,90347,l+224|0),e[33275]=2))}return e[l+4>>2]=l+224,e[l>>2]=l+278,dA(o,90368,l),Y=l+304|0,!((0|t)!=1|(0|r)!=1)&&(t=1,32&u[A+106|0])||(t=c),t}function Ws(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0,b=0,x=0;Y=o=Y+-64|0,w[o+48>>1]=0,e[o+40>>2]=0,e[o+44>>2]=0,e[o+32>>2]=0,e[o+36>>2]=0,e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[o>>2]=0,e[o+4>>2]=0,l=t;e:{for(;;){A:{r:{if((0|(c=u[0|l]))!=69){if((0|c)!=32)break r;if(s&&(d[LA(c=s,t,s=(0|(s=l-t|0))>=159?159:s)+s|0]=0),s=63&r)break A;break e}d[0|l]=101}l=l+1|0;continue}break}if(1&r){A:if((l=l-1|0)>>>0<t>>>0)c=s;else for(c=s;;){if((192&u[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}f=s-1|0}else f=s,c=s;if((0|s)!=1)for(;;){s=f;A:if(!((l=l-1|0)>>>0<t>>>0))for(;;){if((192&u[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}A:if(!((l=l-1|0)>>>0<t>>>0))for(;;){if((192&u[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}if(f=s-2|0,!((0|s)>2))break}if((0|c)<=0)f=0;else{if(m=3&(f=(s=(t=c-1|0)>>>0>=48?48:t)+1|0),t=0,c=0,s>>>0>=3)for(x=-4&f,s=0;I=l+c|0,d[c+o|0]=u[0|I],d[0|I]=32,I=(b=1|c)+l|0,d[o+b|0]=u[0|I],d[0|I]=32,I=(b=2|c)+l|0,d[o+b|0]=u[0|I],d[0|I]=32,I=(b=3|c)+l|0,d[o+b|0]=u[0|I],d[0|I]=32,c=c+4|0,(0|x)!=(0|(s=s+4|0)););if(m)for(;s=l+c|0,d[c+o|0]=u[0|s],d[0|s]=32,c=c+1|0,(0|m)!=(0|(t=t+1|0)););}}if(d[o+f|0]=0,m=65520&r,!(512&r)|u[0|(s=l-1|0)]!=105||(d[0|s]=121),c=4|m,256&r){e:{A:{r:{if((0|(t=e[A+212>>2]))!=25966){if((0|t)!=28268)break r;if(d[0|s]<0||128&(t=d[0|(f=l-2|0)]))break e;if(m=e[A+632>>2])t=!!(0|Tt(m,t));else{if((0|(m=e[A+600>>2]))>0&&(t=t-m|0)-1>>>0>254)break e;t=128&u[344+(A+t|0)|0]}if(!t)break e;if(t=d[0|s],m=e[A+612>>2])t=!!(0|Tt(m,t));else{a:{if((0|(m=e[A+600>>2]))>0){if((t=t-m|0)-1>>>0<255)break a;break e}if((0|t)<0)break e}t=4&u[344+(A+t|0)|0]}if(!t)break e;t=d[l-3|0];a:{if(m=e[A+632>>2])t=!!(0|Tt(m,t));else{n:{if((0|(m=e[A+600>>2]))>0){if((t=t-m|0)-1>>>0<255)break n;break a}if((0|t)<0)break a}t=128&u[344+(A+t|0)|0]}if(t)break e}d[0|l]=u[0|s],d[0|s]=u[0|f],d[l+1|0]=32;break e}if(f=d[l-2|0],t=e[A+632>>2])t=!!(0|Tt(t,f));else{a:{if((0|(t=e[A+600>>2]))>0){if((f=f-t|0)-1>>>0<255)break a;break A}if((0|f)<0)break A}t=128&u[344+(A+f|0)|0]}if(!t)break A;if(f=d[0|s],t=e[A+608>>2])t=!!(0|Tt(t,f));else{if((0|(t=e[A+600>>2]))>0){if((f=f-t|0)-1>>>0>=255)break A}else if((0|f)<0)break A;t=2&u[344+(A+f|0)|0]}if(!t)break A;c=Xr(87771,l-3|0,3)?20|m:c;break e}c=e[A+204>>2]?20|m:c;break e}(u[0|s]==99||(f=u[(t=l-2|0)+1|0]<<8,(u[0|t]|f)==29554|(f|u[0|t])==29289||(u[0|(t=l-2|0)]|u[t+1|0]<<8)==29301||!Xr(88115,l-3|0,3)||(u[0|(t=l-2|0)]|u[t+1|0]<<8)==29550|u[0|s]==117||!Xr(88384,l-5|0,5)||(u[0|(t=l-4|0)]|u[t+1|0]<<8|u[t+2|0]<<16|u[t+3|0]<<24)==1735287154||(u[0|t]|u[t+1|0]<<8|u[t+2|0]<<16|u[t+3|0]<<24)==1735549292))&&(c=20|m)}16&c&&(ar(e[A+204>>2],l),8&u[188788]&&Ri(88683,6,e[47195]))}return e[A+8184>>2]|!(2048&r)||(e[A+8184>>2]=1),y[o>>1]!=115&&Xr(o,88850,3)||(c|=8),Y=o- -64|0,u[0|o]==39?65531&c:c}function H(A,t,r,s,o,l,c,f,m){var I,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0;
vendor: 4,913 bytes, line 2896
2896Y=I=Y-112|0,b=2147483647&m;e:{if(P=!(t|r),(s|(x=2147483647&o)?x-2147418112>>>0<2147549184:P)||!(!f&(0|(W=b-2147418112|0))==-2147418112?l|c:(0|W)==-2147418112&!!(0|f)|W>>>0>2147549184)){if(!(!s&(0|x)==2147418112?P:x>>>0<2147418112)){f=s,m=32768|o,l=t,c=r;break e}if(!(!f&(0|b)==2147418112?!(l|c):b>>>0<2147418112)){m|=32768;break e}if(!(t|s|2147418112^x|r)){_=s,f=(s=!(t^l|s^f|r^c|o^m^-2147483648))?0:_,m=s?2147450880:o,l=s?0:t,c=s?0:r;break e}if(!(l|f|2147418112^b|c))break e;if(!(t|s|r|x)){if(l|f|c|b)break e;l&=t,c&=r,f&=s,m&=o;break e}if(!(l|f|c|b)){l=t,c=r,f=s,m=o;break e}}x=(P=re=(_=(0|b)==(0|x))&(0|s)==(0|f)?(0|r)==(0|c)&t>>>0<l>>>0|r>>>0<c>>>0:_&s>>>0<f>>>0|b>>>0>x>>>0)?l:t,W=P?c:r,le=_=P?m:o,P=P?f:s,Z=65535&_,s=re?s:f,Ce=o=re?o:m,_=o>>>16&32767,(U=le>>>16&32767)||(m=o=!(P|Z),b=o?x:P,f=o<<=6,Mt(I+96|0,x,W,P,Z,(o=o+((0|(m=we(m?W:Z)))==32?we(b)+32|0:m)|0)-15|0),P=e[I+104>>2],Z=e[I+108>>2],W=e[I+100>>2],U=16-o|0,x=e[I+96>>2]),l=re?t:l,c=re?r:c,f=s,m=65535&Ce,_||(o=t=!(f|m),b=t?l:f,r=t<<=6,Mt(I+80|0,l,c,f,m,(t=t+((0|(o=we(o?c:m)))==32?we(b)+32|0:o)|0)-15|0),_=16-t|0,f=e[I+88>>2],m=e[I+92>>2],c=e[I+84>>2],l=e[I+80>>2]),r=m<<3|f>>>29,t=f<<3|c>>>29,r|=524288,f=P<<3|W>>>29,m=Z<<3|P>>>29,re=le^Ce,o=c<<3|l>>>29,s=l<<3,(0|_)!=(0|U)&&((l=U-_|0)>>>0>127?(t=0,r=0,o=0,s=1):(Mt(I- -64|0,s,o,t,r,128-l|0),vr(I+48|0,s,o,t,r,l),t=e[I+56>>2],r=e[I+60>>2],o=e[I+52>>2],s=e[I+48>>2]|!!(e[I+64>>2]|e[I+72>>2]|e[I+68>>2]|e[I+76>>2]))),P=s,b=o,_=f,Z=524288|m,o=W<<3|x>>>29,W=x<<3,x=o;A:if((0|re)<0){if(l=0,c=0,f=0,m=0,!(P^W|t^_|b^x|r^Z))break e;if(s=W-P|0,o=x-((P>>>0>W>>>0)+b|0)|0,f=(l=_-t|0)-(c=(0|b)==(0|x)&P>>>0>W>>>0|b>>>0>x>>>0)|0,m=t=(Z-((t>>>0>_>>>0)+r|0)|0)-(l>>>0<c>>>0)|0,t>>>0>524287)break A;l=t=!(f|m),c=t?s:f,r=t<<=6,Mt(I+32|0,s,o,f,m,t=(t=t+((0|(l=we(l?o:m)))==32?we(c)+32|0:l)|0)-12|0),U=U-t|0,f=e[I+40>>2],m=e[I+44>>2],s=e[I+32>>2],o=e[I+36>>2]}else o=b+x|0,l=(0|b)==(0|(o=(s=P+W|0)>>>0<W>>>0?o+1|0:o))&s>>>0<P>>>0|o>>>0<b>>>0,b=r+Z|0,b=(t=t+_|0)>>>0<_>>>0?b+1|0:b,1048576&(m=(f=t+l|0)>>>0<t>>>0?b+1|0:b)&&(s=1&P|(1&o)<<31|s>>>1,o=f<<31|o>>>1,U=U+1|0,f=(1&m)<<31|f>>>1,m=m>>>1|0);if(r=0,x=-2147483648&le,(0|U)>=32767)f=r,m=2147418112|x,l=0,c=0;else if(_=0,(0|U)>0?_=U:(Mt(I+16|0,s,o,f,m,U+127|0),vr(I,s,o,f,m,1-U|0),s=e[I>>2]|!!(e[I+16>>2]|e[I+24>>2]|e[I+20>>2]|e[I+28>>2]),o=e[I+4>>2],f=e[I+8>>2],m=e[I+12>>2]),W=7&s,s=(0|(t=f<<29|o>>>3))==(0|(c=(s=(7&o)<<29|s>>>3)>>>0>(l=(W>>>0>4)+s|0)>>>0?t+1|0:t))&s>>>0>l>>>0|t>>>0>c>>>0,t=r|(7&m)<<29|f>>>3,m=x|m>>>3&65535|_<<16,m=t>>>0>(f=s+t|0)>>>0?m+1|0:m,(0|W)!=4){if(!W)break e}else b=c+(t=0)|0,m=(t=(0|t)==(0|(c=(s=l)>>>0>(l=l+(r=1&l)|0)>>>0?b+1|0:b))&r>>>0>l>>>0|t>>>0>c>>>0)>>>0>(f=t+f|0)>>>0?m+1|0:m}e[A>>2]=l,e[A+4>>2]=c,e[A+8>>2]=f,e[A+12>>2]=m,Y=I+112|0}function ue(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0;e:if(A|=0){l=(s=A-8|0)+(A=-8&(t=e[A-4>>2]))|0;A:if(!(1&t)){if(!(3&t)||(s=s-(t=e[s>>2])|0)>>>0<ee[57156])break e;if(A=A+t|0,e[57157]==(0|s)){if(!(3&~(t=e[l+4>>2])))return e[57154]=A,e[l+4>>2]=-2&t,e[s+4>>2]=1|A,void(e[A+s>>2]=A)}else{if(t>>>0<=255){if(o=e[s+8>>2],t=t>>>3|0,(0|(r=e[s+12>>2]))==(0|o)){e[57152]=e[57152]&As(-2,t);break A}e[o+12>>2]=r,e[r+8>>2]=o;break A}if(f=e[s+24>>2],(0|s)==(0|(t=e[s+12>>2])))if((r=e[(o=s+20|0)>>2])||(r=e[(o=s+16|0)>>2])){for(;c=o,(r=e[(o=(t=r)+20|0)>>2])||(o=t+16|0,r=e[t+16>>2]););e[c>>2]=0}else t=0;else r=e[s+8>>2],e[r+12>>2]=t,e[t+8>>2]=r;if(!f)break A;o=e[s+28>>2];r:{if(e[(r=228912+(o<<2)|0)>>2]==(0|s)){if(e[r>>2]=t,t)break r;e[57153]=e[57153]&As(-2,o);break A}if(e[f+(e[f+16>>2]==(0|s)?16:20)>>2]=t,!t)break A}if(e[t+24>>2]=f,(r=e[s+16>>2])&&(e[t+16>>2]=r,e[r+24>>2]=t),!(r=e[s+20>>2]))break A;e[t+20>>2]=r,e[r+24>>2]=t}}if(!(s>>>0>=l>>>0)&&1&(t=e[l+4>>2])){A:{if(!(2&t)){if(e[57158]==(0|l)){if(e[57158]=s,A=e[57155]+A|0,e[57155]=A,e[s+4>>2]=1|A,e[57157]!=(0|s))break e;return e[57154]=0,void(e[57157]=0)}if(e[57157]==(0|l))return e[57157]=s,A=e[57154]+A|0,e[57154]=A,e[s+4>>2]=1|A,void(e[A+s>>2]=A);A=(-8&t)+A|0;r:if(t>>>0<=255){if(o=e[l+8>>2],t=t>>>3|0,(0|(r=e[l+12>>2]))==(0|o)){e[57152]=e[57152]&As(-2,t);break r}e[o+12>>2]=r,e[r+8>>2]=o}else{if(f=e[l+24>>2],(0|l)==(0|(t=e[l+12>>2])))if((r=e[(o=l+20|0)>>2])||(r=e[(o=l+16|0)>>2])){for(;c=o,(r=e[(o=(t=r)+20|0)>>2])||(o=t+16|0,r=e[t+16>>2]););e[c>>2]=0}else t=0;else r=e[l+8>>2],e[r+12>>2]=t,e[t+8>>2]=r;if(f){o=e[l+28>>2];a:{if(e[(r=228912+(o<<2)|0)>>2]==(0|l)){if(e[r>>2]=t,t)break a;e[57153]=e[57153]&As(-2,o);break r}if(e[f+(e[f+16>>2]==(0|l)?16:20)>>2]=t,!t)break r}e[t+24>>2]=f,(r=e[l+16>>2])&&(e[t+16>>2]=r,e[r+24>>2]=t),(r=e[l+20>>2])&&(e[t+20>>2]=r,e[r+24>>2]=t)}}if(e[s+4>>2]=1|A,e[A+s>>2]=A,e[57157]!=(0|s))break A;return void(e[57154]=A)}e[l+4>>2]=-2&t,e[s+4>>2]=1|A,e[A+s>>2]=A}if(A>>>0<=255)return t=228648+(-8&A)|0,(r=e[57152])&(A=1<<(A>>>3))?A=e[t+8>>2]:(e[57152]=A|r,A=t),e[t+8>>2]=s,e[A+12>>2]=s,e[s+12>>2]=t,void(e[s+8>>2]=A);o=31,A>>>0<=16777215&&(o=62+((A>>>38-(t=we(A>>>8|0))&1)-(t<<1)|0)|0),e[s+28>>2]=o,e[s+16>>2]=0,e[s+20>>
vendor: 10,467 bytes, line 2896
28962]=0,c=228912+(o<<2)|0;A:{r:{if((r=e[57153])&(t=1<<o)){for(o=A<<((0|o)!=31?25-(o>>>1|0):0),t=e[c>>2];;){if(r=t,(-8&e[t+4>>2])==(0|A))break r;if(t=o>>>29|0,o<<=1,!(t=e[(c=r+(4&t)|0)+16>>2]))break}e[c+16>>2]=s,e[s+24>>2]=r}else e[57153]=t|r,e[c>>2]=s,e[s+24>>2]=c;e[s+12>>2]=s,e[s+8>>2]=s;break A}A=e[r+8>>2],e[A+12>>2]=s,e[r+8>>2]=s,e[s+24>>2]=0,e[s+12>>2]=r,e[s+8>>2]=A}A=e[57160]-1|0,e[57160]=A||-1}}}function ae(A,t,r){var s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0;Y=s=Y-176|0;e:{if(32&t)_=r-((0|r)>1)|0;else{l=Qt(A,93302);A:{r:{a:{if((0|t)!=2){if(l)break a;t=0;break e}if(_=r+1|0,x=(W=O(r,76)+133152|0)+56|0,P=Qt(A,89360),c=Qt(A,93318),f=Qt(A,93426),m=Qt(A,93499),l)break r;break A}_=r+1|0,x=(W=O(r,76)+133152|0)+56|0,m=0}for(A=0,I=(0|(o=e[l-4>>2]))!=34?(0|o)==39?o:0:o,U=O(r,76)+133208|0;;){if(o=A,!(A=e[l>>2]))break A;r:{if(!I){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|o)!=92&&(0|A)==(0|I))break A}if(l=l+4|0,!((0|(b=ar(A,b+U|0)+b|0))<16))break}}I=0,d[b+x|0]=0,b=O(r,76)+133168|0,l=0;A:if(P)for(A=0,x=(0|(o=e[P-4>>2]))!=34?(0|o)==39?o:0:o;;){if(o=A,!(A=e[P>>2]))break A;r:{if(!x){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|o)!=92&&(0|A)==(0|x))break A}if(P=P+4|0,!((0|(l=ar(A,l+b|0)+l|0))<36))break}if(d[l+b|0]=0,!(!c|e[c>>2]-48>>>0>=10)){for(;I=(e[c>>2]+O(I,10)|0)-48|0,e[(c=c+4|0)>>2]-48>>>0<10;);(0|I)<=0||(I=I-1|0)}if(o=O(r,76)+133152|0,e[o+4>>2]=I,A=0,l=0,!(!f|e[f>>2]-48>>>0>=10))for(;l=(e[f>>2]+O(l,10)|0)-48|0,e[(f=f+4|0)>>2]-48>>>0<10;);e[o+12>>2]=l,l=O(r,76)+133152|0;A:{r:if(m){for(;r=d[A+93099|0],(o=e[(A<<2)+m>>2])&&(A=A+1|0,(0|r)==(0|o)););a:{n:switch(o-34|0){case 0:case 5:break n;default:break a}if(!r){A=0;break A}}for(A=0;r=d[A+93116|0],(o=e[(A<<2)+m>>2])&&(A=A+1|0,(0|r)==(0|o)););a:{n:switch(o-34|0){case 0:case 5:break n;default:break a}if(!r){A=1;break A}}for(A=0;r=d[A+93197|0],(o=e[(A<<2)+m>>2])&&(A=A+1|0,(0|r)==(0|o)););a:switch(o-34|0){case 0:case 5:break a;default:break r}if(!r){A=2;break A}}A=3}e[l+8>>2]=e[131156+(A<<3)>>2],e[W>>2]=t}if(PA(137776,133168),r=PA(s+96|0,133208),d[s+157|0]=e[33291],d[s+156|0]=e[33290],A=e[33289],e[s+152>>2]=0,d[s+158|0]=A,(0|_)>0)for(c=0;;){if(f=1,t=O(c,76)+133152|0,u[0|(A=t+16|0)]&&Pr(0,A)&&(PA(137776,A),f=0,d[0|r]=0,d[s+158|0]=0,w[s+156>>1]=0),u[0|(A=t+56|0)]){m=PA(r,A),o=e[33679];A:if(u[0|(A=o)])for(;;){if(!nr(A=A+1|0,m)){PA(m,o+1|0);break A}if(A=1+(EA(A)+A|0)|0,!u[0|A])break}f&&(d[137776]=0)}if((A=e[t+8>>2])&&(d[s+156|0]=A),(A=e[t+12>>2])&&(d[s+157|0]=A),(A=e[t+4>>2])&&(d[s+158|0]=A),(0|_)==(0|(c=c+1|0)))break}e[s+148>>2]=r,e[s+144>>2]=137776,(A=ta(s+144|0,s+172|0))?Ls(A,43)||(t=u[s+156|0],!u[134672]|((0|t)!=u[134724]?t:0)||(e[s>>2]=A,e[s+4>>2]=134672,dA(t=s+16|0,93533,s),A=137776,Vt(137776,t,40))):A=92003,t=0,nr(A,134784)&&(PA(134784,A),t=131072)}return Y=s+176|0,t}function pe(A,t){var r,s=0,o=0,l=0,c=0,f=0;r=A+t|0;e:{A:if(!(1&(s=e[A+4>>2]))){if(!(3&s))break e;t=(s=e[A>>2])+t|0;r:{if((0|(A=A-s|0))!=e[57157]){if(s>>>0<=255){if(l=e[A+8>>2],s=s>>>3|0,(0|(o=e[A+12>>2]))!=(0|l))break r;e[57152]=e[57152]&As(-2,s);break A}if(f=e[A+24>>2],(0|(s=e[A+12>>2]))==(0|A))if((o=e[(l=A+20|0)>>2])||(o=e[(l=A+16|0)>>2])){for(;c=l,(o=e[(l=(s=o)+20|0)>>2])||(l=s+16|0,o=e[s+16>>2]););e[c>>2]=0}else s=0;else o=e[A+8>>2],e[o+12>>2]=s,e[s+8>>2]=o;if(!f)break A;l=e[A+28>>2];a:{if(e[(o=228912+(l<<2)|0)>>2]==(0|A)){if(e[o>>2]=s,s)break a;e[57153]=e[57153]&As(-2,l);break A}if(e[f+(e[f+16>>2]==(0|A)?16:20)>>2]=s,!s)break A}if(e[s+24>>2]=f,(o=e[A+16>>2])&&(e[s+16>>2]=o,e[o+24>>2]=s),!(o=e[A+20>>2]))break A;e[s+20>>2]=o,e[o+24>>2]=s;break A}if(3&~(s=e[r+4>>2]))break A;return e[57154]=t,e[r+4>>2]=-2&s,e[A+4>>2]=1|t,void(e[r>>2]=t)}e[l+12>>2]=o,e[o+8>>2]=l}A:{if(!(2&(s=e[r+4>>2]))){if(e[57158]==(0|r)){if(e[57158]=A,t=e[57155]+t|0,e[57155]=t,e[A+4>>2]=1|t,e[57157]!=(0|A))break e;return e[57154]=0,void(e[57157]=0)}if(e[57157]==(0|r))return e[57157]=A,t=e[57154]+t|0,e[57154]=t,e[A+4>>2]=1|t,void(e[A+t>>2]=t);t=(-8&s)+t|0;r:if(s>>>0<=255){if(l=e[r+8>>2],s=s>>>3|0,(0|(o=e[r+12>>2]))==(0|l)){e[57152]=e[57152]&As(-2,s);break r}e[l+12>>2]=o,e[o+8>>2]=l}else{if(f=e[r+24>>2],(0|r)==(0|(s=e[r+12>>2])))if((l=e[(o=r+20|0)>>2])||(l=e[(o=r+16|0)>>2])){for(;c=o,(l=e[(o=(s=l)+20|0)>>2])||(o=s+16|0,l=e[s+16>>2]););e[c>>2]=0}else s=0;else o=e[r+8>>2],e[o+12>>2]=s,e[s+8>>2]=o;if(f){l=e[r+28>>2];a:{if(e[(o=228912+(l<<2)|0)>>2]==(0|r)){if(e[o>>2]=s,s)break a;e[57153]=e[57153]&As(-2,l);break r}if(e[f+(e[f+16>>2]==(0|r)?16:20)>>2]=s,!s)break r}e[s+24>>2]=f,(o=e[r+16>>2])&&(e[s+16>>2]=o,e[o+24>>2]=s),(o=e[r+20>>2])&&(e[s+20>>2]=o,e[o+24>>2]=s)}}if(e[A+4>>2]=1|t,e[A+t>>2]=t,e[57157]!=(0|A))break A;return void(e[57154]=t)}e[r+4>>2]=-2&s,e[A+4>>2]=1|t,e[A+t>>2]=t}if(t>>>0<=255)return s=228648+(-8&t)|0,(o=e[57152])&(t=1<<(t>>>3))?t=e[s+8>>2]:(e[57152]=t|o,t=s),e[s+8>>2]=A,e[t+12>>2]=A,e[A+12>>2]=s,void(e[A+8>>2]=t);l=31,t>>>0<=16777215&&(l=62+((t>>>38-(s=we(t>>>8|0))&1)-(s<<1)|0)|0),e[A+28>>2]=l,e[A+16>>2]=0,e[A+20>>2]=0,c=228912+(l<<2)|0;A:{if((o=e[57153])&(s=1<<l)){for(l=t<<((0|l)!=31?25-(l>>>1|0):0),s=e[c>>2];;){if(o=s,(-8&e[s+4>>2])==(0|t))break A;if(s=l>>>29|0,l<<=1,!(s=e[(c=o+(4&s)|0)+16>>2]))break}e[c+16>>2]=A,e[A+24>>2]=o}else e[57153]=s|o,e[c>>2]=A,e[A+24>>2]=c;return e[A+12>>2]=A,void(e[A+8>>2]=A)}t=e[o+8>>2],e[t+12>>2]=A,e[o+8>>2]=A,e[A+24>>2]=0,e[A+12>>2]=o,e[A+8>>2]=t}}function ke(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0;if(!(t=d[88105]))return A;if(A=Ls(A,t)){if(!u[88106])return A;if(u[A+1|0]){if(!u[88107]){o=!!(0|(r=u[A+1|0]));e:if(r&&(0|(t=r|u[0|A]<<8))!=(0|(f=u[88106]|u[88105]<<8)))for(r=A+1|0;;){if(o=!!(0|(s=u[(A=r)+1|0])),!s)break e;if(r=A+1|0,(0|f)==(0|(t=s|t<<8&65280)))break}return o?A:0}if(u[A+2|0]){if(!u[88108]){r=A+2|0,o=!!(0|(t=u[A+2|0]));e:if(t&&(0|(t=u[A+1|0]<<16|u[0|A]<<24|t<<8))!=(0|(f=u[88106]<<16|u[88105]<<24|u[88107]<<8)))for(;;){if(A=r+1|0,o=!!(0|(s=u[r+1|0])),!s)break e;if(r=A,(0|f)==(0|(t=(t|s)<<8)))break}else A=r;return o?A-2|0:0}if(u[A+3|0]){if(!u[88109]){r=A+3|0,o=!!(0|(t=u[A+3|0]));e:if(t&&(0|(t=t|u[A+1|0]<<16|u[0|A]<<24|u[A+2|0]<<8))!=(0|(f=(A=u[88105]|u[88106]<<8|u[88107]<<16|u[88108]<<24)<<24|(65280&A)<<8|A>>>8&65280|A>>>24)))for(;;){if(A=r+1|0,o=!!(0|(s=u[r+1|0])),!s)break e;if(r=A,(0|f)==(0|(t=s|t<<8)))break}else A=r;return o?A-3|0:0}f=A,Y=m=Y-1056|0,e[(A=m+1048|0)>>2]=0,e[A+4>>2]=0,e[(A=m+1040|0)>>2]=0,e[A+4>>2]=0,e[m+1032>>2]=0,e[m+1036>>2]=0,e[m+1024>>2]=0,e[m+1028>>2]=0;e:{A:{r:{a:{if(t=u[88105]){for(;;){if(!u[l+f|0])break A;if(l=l+1|0,e[((255&t)<<2)+m>>2]=l,e[(A=(m+1024|0)+(t>>>3&28)|0)>>2]=e[A>>2]|1<<t,!(t=u[l+88105|0]))break}if(A=1,I=-1,l>>>0>1)break a}else I=-1,A=1;c=-1,r=1;break r}for(s=1,t=1;;){a:if((0|(c=u[88105+(t+I|0)|0]))!=(0|(o=u[A+88105|0])))o>>>0<c>>>0?(s=A-I|0,r=A,t=1):(I=r,r=r+1|0,s=1,t=1);else{if((0|t)==(0|s)){r=r+s|0,t=1;break a}t=t+1|0}if(!(l>>>0>(A=r+t|0)>>>0))break}if(r=1,c=-1,l>>>0<=1)A=s;else{for(A=0,o=1,t=1;;){a:if((0|(x=u[88105+(t+c|0)|0]))!=(0|(b=u[r+88105|0])))b>>>0>x>>>0?(o=r-c|0,A=r,t=1):(c=A,A=A+1|0,o=1,t=1);else{if((0|t)==(0|o)){A=A+o|0,t=1;break a}t=t+1|0}if(!(l>>>0>(r=A+t|0)>>>0))break}A=s,r=o}}for(t=A,Xr(88105,(s=(A=c+1>>>0>I+1>>>0)?r:t)+88105|0,x=(b=A?c:I)+1|0)?(s=((A=~b+l|0)>>>0<b>>>0?b:A)+1|0,o=0):o=l-s|0,_=l-1|0,P=63|l,c=0,A=f;;){if(!(f-A>>>0>=l>>>0))if(r=Ia(f,0,P)){if(f=r,r-A>>>0<l>>>0)break A}else f=f+P|0;r=u[A+_|0],t=l;r:{if(e[(m+1024|0)+(r>>>3&28)>>2]>>>r&1)if((0|(r=e[(r<<2)+m>>2]))==(0|l)){a:{if(I=u[(r=(t=x)>>>0>c>>>0?t:c)+88105|0])for(;;){if(u[A+r|0]!=(255&I))break a;if(!(I=u[(r=r+1|0)+88105|0]))break}for(;;){if(t>>>0<=c>>>0)break e;if(u[(t=t-1|0)+88105|0]!=u[A+t|0])break}t=s,c=o;break r}t=r-b|0}else t=(r=l-r|0)>>>0>c>>>0?r:c;c=0}A=A+t|0}}A=0}Y=m+1056|0,r=A}}}}return r}function _e(A,t,r,s,o,l){var c,f,m,I,b=0,x=0,P=0;if(Y=c=Y-560|0,d[c+448|0]=0,d[c+144|0]=0,d[c+120|0]=0,m=34&l,f=t-O(x=(0|t)/100|0,100)|0,1&(I=64&u[A+106|0]?(0|t)>999|l:0)|(0|t)>99){e:{A:{r:{if(!(!m|f)){if(!GA(A,90606,c+304|0))break r;break e}if(f)break A}if(GA(A,90691,c+304|0))break e}GA(A,90725,c+304|0)}b=l,(0|t)<1e3||(b=l,!(8&u[A+105|0])|t-2e3>>>0<4294967196&&(d[c+208|0]=0,mt(A,b=(x>>>0)/10|0,s=16384&e[A+108>>2]?0:o+1|0,!((t>>>0)%1e3|0)|m,c+272|0)||Os(A,b,o,e[A+212>>2]==28012?520:(0|s)<4?(e[A+108>>2]>>>s&1)<<3:0,c+208|0),2&u[A+109|0]?(e[c+108>>2]=15,e[c+100>>2]=15,e[c+104>>2]=c+208,e[c+96>>2]=c+272,dA(c+144|0,90761,c+96|0)):(e[c+92>>2]=15,e[c+84>>2]=15,e[c+88>>2]=c+272,e[c+80>>2]=c+208,dA(c+144|0,90761,c+80|0)),s=1,1&(!!(0|(x=x-O(b,10)|0))|I)||(d[c+304|0]=0),b=1|l)),d[c+208|0]=0;e:if(!(~I&(0|x)<=0))if(!(4&u[A+106|0])|!(1&b|u[c+144|0])||GA(A,90824,c+120|0),!m|(16&u[A+109|0]?0:f)||(e[c+64>>2]=x,dA(s=c+548|0,90875,c- -64|0),P=GA(A,s,c+208|0),!(4096&e[A+108>>2])|(0|f)<=0||ts(c+208|0,133104)),s=1,1&(~I|!!(0|x))){A:{r:{a:{n:{if(!(131072&e[A+108>>2])||1&b|(0|x)!=1){if(f|P||(e[c+48>>2]=x,dA(s=c+548|0,90985,c+48|0),P=GA(A,s,c+208|0)),P||(e[c+32>>2]=x,dA(s=c+548|0,91027,c+32|0),GA(A,s,c+208|0)))break n;if((0|x)!=1)break r;break a}if(!P)break a}d[c+304|0]=0;break A}if(s=1,4&u[A+105|0])break e}Os(A,x,o,0,c+208|0)}s=1}else GA(A,88875,c+208|0);e[c+28>>2]=c+304,e[c+24>>2]=c+208,e[c+20>>2]=c+120,e[c+16>>2]=c+144,dA(c+448|0,91059,c+16|0)}else b=l;d[c+132|0]=0;e:{A:{if((0|f)>0)16&u[A+109|0]&&2&b||(!(1&b)|o&&(0|t)<=100||!(64&(s=e[A+104>>2]))&(!(8388608&s)|f>>>0>9)||GA(A,90824,c+132|0),!(1&b|u[c+144|0])|!(524288&e[A+104>>2])|x||GA(A,90824,c+132|0)),d[c+336|0]=0;else if(d[c+336|0]=0,!f&s)break A;if(o?(l=e[A+108>>2],t=(0|o)<4?(l>>>o&1)<<3:0):(s=m?3:2,t=32&l|((0|t)<100?1&b?s:4|s:s),l=e[A+108>>2]),t=(0|o)==1&&e[A+212>>2]==28012?520|t:t,1048576&l&&(s=16|t,t=(0|x)>0||1&b?s:t),!Os(A,f,o,256&b|t,c+336|0)|!(128&u[A+104|0]))break e;d[c+132|0]=0;break e}u[133104]&&((0|(A=EA(c+448|0)))<=0||u[(A=A+c|0)+447|0]==10&&(d[A+447|0]=0),PA(c+336|0,133104))}e[c+8>>2]=15,e[c+12>>2]=c+336,e[c+4>>2]=c+132,e[c>>2]=c+448,dA(r,91101,c),Y=c+560|0}function eA(A){var t,r,s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0;for(o=e[32972],e[o+64>>2]=290816,e[o+68>>2]=4104,e[o+96>>2]=0,e[o+100>>2]=0,e[o+120>>2]=90,e[o+124>>2]=100,e[o+112>>2]=64,e[o+116>>2]=256,e[o+104>>2]=5,e[o+108>>2]=0,e[o+84>>2]=100,e[o+88>>2]=64,l=e[50754],e[o+132>>2]=0,e[o+136>>2]=0,e[o+128>>2]=l,e[o+140>>2]=0,e[o+144>>2]=0,e[o+148>>2]=0,e[o+152>>2]=0,e[o+156>>2]=0,e[o+160>>2]=0,e[36435]=450,e[o+92>>2]=2,e[50870]=0,e[50871]=0,e[50872]=0,e[50873]=0,e[50880]=0,e[50881]=0,e[50882]=0,e[50883]=0,e[50890]=0,e[50891]=0,e[50892]=0,e[50893]=0,c=-3.141592653589793/+e[50754],T[25429]=c,m=-2*c,T[25430]=m,t=(c=Vr(200*c))*-c,T[25434]=t,T[25439]=t,T[25444]=t,c=(m
2896=c*gs(2e3*m))+m,T[25433]=c,T[25438]=c,T[25443]=c,m=1-c-t,T[25432]=m,T[25437]=m,T[25442]=m,e[50902]=0,e[50903]=0,e[50900]=0,e[50901]=0,T[25449]=t,T[25448]=c,e[50912]=0,e[50913]=0,T[25447]=m,e[50910]=0,e[50911]=0,T[25454]=t,T[25453]=c,e[50922]=0,e[50923]=0,T[25452]=m,e[50920]=0,e[50921]=0,T[25459]=t,T[25458]=c,e[50932]=0,e[50933]=0,T[25457]=m,e[50930]=0,e[50931]=0,T[25464]=t,T[25463]=c,T[25462]=m,e[50942]=0,e[50943]=0,e[50940]=0,e[50941]=0,T[25469]=t,T[25468]=c,T[25467]=m,e[50952]=0,e[50953]=0,e[50950]=0,e[50951]=0,T[25474]=t,T[25473]=c,T[25472]=m,r=e[32972],l=0;w[(I=(l<<1)+r|0)+236>>1]=256,w[I+164>>1]=256,o=u[l+105376|0]<<1,w[I+254>>1]=o,w[I+182>>1]=o,w[I+200>>1]=u[l+105385|0]<<1,e[(o=(f=l<<2)+r|0)+308>>2]=e[f+105408>>2],e[o+272>>2]=0,w[I+218>>1]=0,e[f+200944>>2]=(0|O(e[f+105456>>2],22050))/e[50754],(0|(l=l+1|0))!=9;);for(_=e[32961],l=0,s=r+344|0;;){if(o=b,x=_,I=l,(0|(b=e[(l=(f=l<<2)+131840|0)>>2]))==-1&&(b=8e3,e[l>>2]=8e3,I&&(e[131840+(4|f)>>2]=e[f+131836>>2])),_=e[131840+(4|f)>>2],!((0|o)>=(0|(b=(0|b)/8|0))||(0|(P=b-o|0))<=0||(f=o+1|0,l=o,1&P&&(d[344+(o+r|0)|0]=(0|x)>=255?255:x,l=f),(0|f)==(0|b))))for(W=_-x|0;f=((0|O(l-o|0,W))/(0|P)|0)+x|0,d[l+s|0]=(0|f)>=255?255:f,U=((0|O((f=l+1|0)-o|0,W))/(0|P)|0)+x|0,d[f+s|0]=(0|U)>=255?255:U,(0|b)!=(0|(l=l+2|0)););if(l=I+2|0,!(I>>>0<10))break}l=e[32972],e[l+80>>2]=232,e[l+72>>2]=256,e[l+76>>2]=238,A||(e[49848]=0),w[l+200>>1]=(0|O(w[l+200>>1],105))/100}function FA(A,t,r){var s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0;Y=s=Y-288|0,(0|t)!=132848&&Ms(132848,t,40),(0|(o=A+228|0))!=(0|t)&&Ms(o,t,40),e[s+88>>2]=t,e[s+84>>2]=47,e[s+80>>2]=137584,dA(o=s+96|0,84089,s+80|0),l=Ns(o),(o=e[A+688>>2])&&(ue(o),e[A+688>>2]=0),o=fs(s+96|0,84577);e:if((0|l)>0&&o)if(r=ZA(l),e[A+688>>2]=r,r)if(I=ci(r,l,o),Or(o),I>>>0<=1032)e[s+16>>2]=s+96,rr(e[30450],85164,s+16|0),r=2;else if(o=e[A+688>>2],r=e[o+4>>2],!((0|(l=e[o>>2]))!=1024|(0|r)<=0)&(0|r)<134217729){o=r+o|0,e[A+684>>2]=o,x=Xe(A+5168|0,0,1024),Xe(A+7664|0,0,260),Xe(A+7924|0,255,256),Xe(A+4788|0,0,380),Xe(A+6192|0,0,512);A:if((0|(r=u[0|o]))!=7)for(;;){if((0|(l=255&r))!=6){if(!l)break A;l=e[A+684>>2],e[s+72>>2]=r<<24>>24,e[s+64>>2]=132848,e[s+68>>2]=o-l,rr(e[30450],88950,s- -64|0);break}r:{a:{n:{o:{c:switch((l=u[0|(r=o+1|0)])-18|0){case 0:break o;case 2:break c;default:break n}for(r=4+(-4&r)|0,e[A+180>>2]=r;r=(o=r)+1|0,!mi(o););for(;l=u[0|o],r=o,o=o+1|0,(0|l)!=7;);break r}if(r=o+3|0,(0|(o=((0|(o=d[o+2|0]))<65?191:-65)+o|0))>94)break a;e[4788+((o<<2)+A|0)>>2]=r;break a}r=1+((f=EA(r))+r|0)|0;n:switch(0|f){case 1:e[5168+((l<<2)+A|0)>>2]=r;break a;case 0:e[x>>2]=r;break a;default:break n}f=u[o+2|0],(0|l)!=1?(o=e[A+7664>>2],u[0|(b=(c=A+l|0)+7924|0)]==255&&(d[0|b]=o),d[0|(c=c+7668|0)]=u[0|c]+1,e[(c=(o<<2)+A|0)+6704>>2]=r,e[A+7664>>2]=o+1,e[c+7184>>2]=l|f<<8):e[6188+((f<<2)+A|0)>>2]=r}if(u[0|r]!=7)for(;r=1+(EA(r)+r|0)|0,u[0|r]!=7;);}r=u[0|(o=r+1|0)]}for(o=e[A+688>>2]+8|0;;){for(e[692+((r=m<<2)+A|0)>>2]=o;l=u[0|o];)o=o+l|0;for(o=o+1|0,e[692+((4|r)+A|0)>>2]=o;r=u[0|o];)o=r+o|0;if(o=o+1|0,(0|(m=m+2|0))==1024)break}r=0,(0|(A=e[A+324>>2]))<=0|A>>>0<=I>>>0||(e[s+48>>2]=t,rr(e[30450],85519,s+48|0))}else e[s+40>>2]=r,e[s+36>>2]=l,e[s+32>>2]=s+96,rr(e[30450],85349,s+32|0),r=2;else Or(o),r=3;else{if(r||(e[s>>2]=s+96,rr(e[30450],84963,s)),r=1,!o)break e;Or(o)}return Y=s+288|0,r}function NA(A){var t,r=0,s=0;for(t=Xe(A+344|0,0,256),d[A+364|0]=1,d[A+356|0]=1,d[A+357|0]=1,d[A+358|0]=1,d[A+359|0]=1,d[A+360|0]=1,d[A+361|0]=1,d[A+362|0]=1,d[A+363|0]=1,d[A+348|0]=1,d[A+349|0]=1,d[A+350|0]=1,d[A+351|0]=1,d[A+352|0]=1,d[A+353|0]=1,d[A+354|0]=1,d[A+355|0]=1,d[A+431|0]=3,d[A+429|0]=3,d[A+430|0]=3,d[A+406|0]=3,d[A+407|0]=3,d[A+408|0]=3,d[A+409|0]=3,d[A+410|0]=3,d[A+411|0]=3,d[A+412|0]=3,d[A+413|0]=3,d[A+414|0]=3,d[A+415|0]=3,d[A+416|0]=3,d[A+417|0]=3,d[A+418|0]=3,d[A+419|0]=3,d[A+420|0]=3,d[A+421|0]=3,d[A+440|0]=3,d[A+441|0]=3,d[A+442|0]=3,d[A+443|0]=3,s=21;d[(r=A+s|0)+344|0]=4|u[r+344|0],(0|(r=s+1|0))!=58;)d[0|(r=r+t|0)]=4|u[0|r],d[(r=s+t|0)+2|0]=4|u[r+2|0],d[r+3|0]=4|u[r+3|0],s=s+4|0;d[A+346|0]=4|u[A+346|0],d[A+347|0]=4|u[A+347|0],d[A+432|0]=4|u[A+432|0],d[A+433|0]=4|u[A+433|0],d[A+434|0]=4|u[A+434|0],d[A+435|0]=4|u[A+435|0],d[A+436|0]=4|u[A+436|0],d[A+437|0]=4|u[A+437|0],d[A+438|0]=4|u[A+438|0],d[A+439|0]=4|u[A+439|0],d[A+467|0]=4|u[A+467|0],d[A+468|0]=4|u[A+468|0],d[A+470|0]=4|u[A+470|0],d[A+471|0]=4|u[A+471|0],d[A+348|0]=64|u[A+348|0],d[A+349|0]=64|u[A+349|0],d[A+350|0]=64|u[A+350|0],d[A+351|0]=64|u[A+351|0],d[A+352|0]=64|u[A+352|0],d[A+353|0]=64|u[A+353|0],d[A+354|0]=64|u[A+354|0],d[A+355|0]=64|u[A+355|0],d[A+356|0]=64|u[A+356|0],d[A+357|0]=64|u[A+357|0],d[A+358|0]=64|u[A+358|0],d[A+359|0]=64|u[A+359|0],d[A+360|0]=64|u[A+360|0],d[A+361|0]=64|u[A+361|0],d[A+362|0]=64|u[A+362|0],d[A+363|0]=64|u[A+363|0],d[A+364|0]=64|u[A+364|0],d[A+406|0]=64|u[A+406|0],d[A+407|0]=64|u[A+407|0],d[A+408|0]=64|u[A+408|0],d[A+409|0]=64|u[A+409|0],d[A+410|0]=64|u[A+410|0],d[A+411|0]=64|u[A+411|0],d[A+412|0]=64|u[A+412|0],d[A+413|0]=64|u[A+413|0],d[A+414|0]=64|u[A+414|0],d[A+415|0]=64|u[A+415|0],d[A+416|0]=64|u[A+416|0],d[A+417|0]=64|u[A+417|0],d[A+418|0]=64|u[A+418|0],d[A+419|0]=64|u[A+419|0],d[A+420|0]=64|u[A+420|0],d[A+440|0]=64|u[A+440|0],d[A+441|0]=64|u[A+441|0],d[A+429|0]=64|u[A+429|0],d[A+430|0]=64|u[A+430|0],d[A+431|0]=64|u[A+431|0],d[A+442|0]=64|u[A+442|0],d[A+443|0]=64|u[A+443|0],e[A+40>>2]=1,e[A+204>>2]=e[A+600>>2]+77}function SA(A,t,r,s,o,l,c,f,m){var I,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0;
vendor: 3,058 bytes, line 2896
2896Y=I=Y-128|0;e:{A:{if(pr(l,c,f,m,0,0,0,0)){x=65535&m;r:a:{if((0|(_=m>>>16&32767))!=32767){if(b=4,_)break a;b=l|f|c|x?3:2;break r}b=!(l|f|c|x)}if((0|(W=32767&(le=o>>>16|0)))!=32767&&b)break A}xt(I+16|0,t,r,s,o,l,c,f,m),Sr(I,t=e[I+16>>2],s=e[I+20>>2],o=e[I+24>>2],r=e[I+28>>2],t,s,o,r),s=e[I+8>>2],o=e[I+12>>2],f=e[I>>2],m=e[I+4>>2];break e}if(_=f,(0|pr(t,r,b=s,U=2147483647&o,l,c,f,P=2147483647&m))<=0){if(pr(t,r,b,U,l,c,_,P)){f=t,m=r;break e}xt(I+112|0,t,r,s,o,0,0,0,0),s=e[I+120>>2],o=e[I+124>>2],f=e[I+112>>2],m=e[I+116>>2]}else{if(Z=m>>>16&32767,W?(m=r,f=t):(xt(I+96|0,t,r,b,U,0,0,0,1081540608),b=e[I+104>>2],U=f=e[I+108>>2],W=(f>>>16|0)-120|0,m=e[I+100>>2],f=e[I+96>>2]),Z||(xt(I+80|0,l,c,_,P,0,0,0,1081540608),_=e[I+88>>2],P=l=e[I+92>>2],Z=(l>>>16|0)-120|0,c=e[I+84>>2],l=e[I+80>>2]),re=_,Ce=65535&P|65536,U=65535&U|65536,(0|W)>(0|Z)){for(;;){if(_=(P=b-re|0)-(x=(0|c)==(0|m)&l>>>0>f>>>0|c>>>0>m>>>0)|0,(0|(x=(U-((b>>>0<re>>>0)+Ce|0)|0)-(x>>>0>P>>>0)|0))>0|(0|x)>=0){if(b=f,!((f=f-l|0)|_|(m=m-((l>>>0>b>>>0)+c|0)|0)|x)){xt(I+32|0,t,r,s,o,0,0,0,0),s=e[I+40>>2],o=e[I+44>>2],f=e[I+32>>2],m=e[I+36>>2];break e}x=x<<1|_>>>31,b=_<<1|m>>>31}else x=U<<1|b>>>31,b=b<<1|m>>>31;if(U=x,x=m<<1|f>>>31,f<<=1,m=x,!((0|(W=W-1|0))>(0|Z)))break}W=Z}if(_=(P=b-re|0)-(x=(0|c)==(0|m)&l>>>0>f>>>0|c>>>0>m>>>0)|0,P=x=(U-((b>>>0<re>>>0)+Ce|0)|0)-(x>>>0>P>>>0)|0,(0|x)<0)_=b,P=U;else if(b=f,!((f=f-l|0)|_|(m=m-((l>>>0>b>>>0)+c|0)|0)|P)){xt(I+48|0,t,r,s,o,0,0,0,0),s=e[I+56>>2],o=e[I+60>>2],f=e[I+48>>2],m=e[I+52>>2];break e}if((0|P)==65535|P>>>0<65535)for(;t=m>>>31|0,W=W-1|0,U=m<<1|f>>>31,f<<=1,m=U,r=t,t=P<<1|_>>>31,_=r|_<<1,P=t,t>>>0<65536;);t=32768&le,(0|W)<=0?(xt(I- -64|0,f,m,_,65535&P|(t|W+120)<<16,0,0,0,1065811968),s=e[I+72>>2],o=e[I+76>>2],f=e[I+64>>2],m=e[I+68>>2]):(s=_,o=65535&P|(t|W)<<16)}}e[A>>2]=f,e[A+4>>2]=m,e[A+8>>2]=s,e[A+12>>2]=o,Y=I+128|0}function gt(A,t,r){var s,o,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0;if(Y=s=Y-1040|0,(0|(c=$a(A,589824,0)))>=0&&((l=yA(1,2072))?e[l+8>>2]=c:(De(0|c),l=0)),o=l,l){e:if(l=Xa(o))for(_=e[30450],P=(s+96|0)+t|0;;){if((0|(c=e[50303]))>=348){e[s+4>>2]=350,e[s>>2]=c+1,rr(_,91860,s);break e}if(u[l+19|0]!=46)if(e[s+88>>2]=l+19,e[s+84>>2]=47,e[s+80>>2]=A,dA(l=s+96|0,91924,s+80|0),(0|(l=Ns(l)))!=-31){if(!((0|l)<=0)&&(x=fs(s+96|0,85712))){f=0,d[s+832|0]=0,d[s+752|0]=0,e[s+360>>2]=0,e[s+356>>2]=4,I=0;A:for(;;){for(b=299-I|0;it(s+912|0,120,x);){l=s+912|0;r:{if(u[s+912|0]!=35){a:if(!((0|(l=EA(s+912|0)-1|0))<=0))for(;;){if(!((0|(c=d[0|(m=(s+912|0)+l|0)]))==32|c-9>>>0<5))break a;if(d[0|m]=0,!((0|(l=l-1|0))>0))break}if(!(l=ke(s+912|0)))break r}d[0|l]=0}l=s+912|0;r:if(c=u[s+912|0])for(;;){if(wr(c<<24>>24))break r;if(!(c=u[0|(l=l+1|0)]))break}if(d[0|l]=0,u[s+912|0]){l=l+1|0;r:switch(bt(131904,s+912|0)-1|0){case 0:for(;c=l,l=l+1|0,(0|(m=d[0|c]))==32|m-9>>>0<5;);Vt(s+832|0,c,80);continue;case 1:if(d[s+672|0]=0,e[s+364>>2]=5,c=s+672|0,e[s+16>>2]=c,e[s+20>>2]=s+364,RA(l,86237,s+16|0),(c=EA(c)+2|0)>>>0>=b>>>0)continue;d[0|(l=(s+368|0)+I|0)]=e[s+364>>2],PA(l+1|0,s+672|0),f=f+1|0,I=c+I|0;continue A;case 2:if(e[s+52>>2]=s+360,e[s+48>>
vendor: 16,295 bytes, line 2896
28962]=s+752,RA(l,86237,s+48|0),!r)continue;e[s+32>>2]=P,rr(_,92042,s+32|0);continue;case 5:break r;default:continue}e[s+64>>2]=s+356,RA(l,87268,s- -64|0)}}break}d[(s+368|0)+I|0]=0,c=bt(132112,s+752|0),f?(m=EA(P)+I|0,b=LA((f=yA(28+(EA(s+832|0)+m|0)|0,1))+24|0,s+368|0,l=I+1|0),e[f+4>>2]=b,l=PA(l+b|0,P),e[f>>2]=l,e[f+8>>2]=l,u[s+832|0]&&(e[f>>2]=PA(2+(m+b|0)|0,s+832|0)),l=e[s+360>>2],d[f+14|0]=0,d[f+12|0]=c,d[f+13|0]=l,d[f+15|0]=e[s+356>>2],Or(x),l=e[50303],e[50303]=l+1,e[201216+(l<<2)>>2]=f):Or(x)}}else gt(s+96|0,t,r);if(!(l=Xa(o)))break}ko(e[o+8>>2]),ue(o)}Y=s+1040|0}function YA(A,t){var r,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0;Y=r=Y-352|0;e:if(A||(A=e[136284+(t<<4)>>2])){u[0|A]!=47&&(e[r+12>>2]=A,e[r+4>>2]=47,e[r+8>>2]=47,e[r>>2]=137584,dA(A=r+16|0,84114,r)),d[r+240|0]=0;A:{r:{if(s=fs(A,84577)){if((0|Li(s,20))==-1)break A;if(l=Ni(s),o=Ni(s),f=Ni(s),!((0|l)!=65537|(0|o)!=e[50754])&(0|f)==o<<1)break r;Or(s),w[r+256>>1]=u[84864]|u[84865]<<8,A=u[84852]|u[84853]<<8|u[84854]<<16|u[84855]<<24,e[r+240>>2]=u[84848]|u[84849]<<8|u[84850]<<16|u[84851]<<24,e[r+244>>2]=A,A=u[84860]|u[84861]<<8|u[84862]<<16|u[84863]<<24,e[r+248>>2]=u[84856]|u[84857]<<8|u[84858]<<16|u[84859]<<24,e[r+252>>2]=A,Y=l=Y-16|0;a:{if((s=EA(A=r+240|0))>>>0>=6&&!Xr(f=(A+s|0)-6|0,84274,6)){for(I=100;;){for(m=0,Y=s=Y-16|0,u[227196]||(d[227197]=Fe(),d[227196]=1),x=+me(),se(c=x/1e3)<9223372036854776e3?(b=se(c)>=1?~~(c>0?be(Be(23283064365386963e-26*c),4294967295):ve(23283064365386963e-26*(c-+(~~c>>>0>>>0))))>>>0:0,o=~~c>>>0):(b=-2147483648,o=0),e[s>>2]=o,e[s+4>>2]=b,c=1e3*(x-(+(at(o,b,1e3,0)>>>0)+4294967296*+(0|ce)))*1e3,o=se(c)<2147483648?~~c:-2147483648,e[s+8>>2]=o,o=f+(s>>>4|0)^O(e[s+8>>2],65537);d[f+m|0]=65+(15&o|o<<1&32),o=o>>>5|0,(0|(m=m+1|0))!=6;);if(Y=s+16|0,e[l>>2]=384,(0|(s=$a(A,194,l)))>=0)break a;if(I=I-1|0,e[56798]!=20||!I)break}LA(f,84274,6)}else e[56798]=28;s=-1}Y=l+16|0,(0|s)<0||ko(s)}if(!(s=fs(A,84577))){A=Zs(0,e[56798],A);break e}}if((0|(l=Ns(A)))<0){Or(s),A=Zs(0,0-l|0,A);break e}if((0|Li(s,0))==-1){t=e[56798],Or(s),A=Zs(0,t,A);break e}if(!(o=OA(e[(f=136280+(t<<4)|0)>>2],l))){Or(s),A=48;break e}if((0|ci(o,l,s))!=(0|l)){t=e[56798],Or(s),u[r+240|0]&&mo(r+240|0),ue(o),A=Zs(0,t,A);break e}Or(s),u[r+240|0]&&mo(r+240|0),e[136276+(t<<4)>>2]=(u[o+40|0]|u[o+41|0]<<8|u[o+42|0]<<16|u[o+43|0]<<24)/2,e[f>>2]=o,A=0;break e}t=e[56798],Or(s),A=Zs(0,t,A)}else A=28;return Y=r+352|0,A}function vt(A,t,r,s,o,l){var c,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0;for(d[0|r]=1,c=1&l,Ce=1,U=-1,Z=-1,b=1,l=t;;){Me=le-2|0,re=x,_=Z;e:{A:{for(;;){if(!(P=u[0|l])){Z=_,x=re;break e}if(l=l+1|0,W=e[144464+(P<<2)>>2]){r:{if((0|(f=u[W+11|0]))!=1){if(16&u[W+6|0]|(0|f)!=2)break r;d[0|(x=r+b|0)]=U,f=(0|U)<4|(0|_)>(0|U),!(2&u[W+4|0])|!c|(0|U)>=0||(d[0|x]=1),x=f?re:b,Z=f?_:U,U=-1,b=b+1|0;break A}if(!y[W+8>>1]){f=0,I=b;a:if((0|P)!=8)f=u[W+14|0],e[o>>2]&&f>>>0>=4||(_=(0|f)<(0|_)?_:f,U=f);else{for(;;){if(P=f,I=I-1|0,e[o>>2]|(0|I)<=0||(0|(W=d[0|(m=r+I|0)]))>3)break a;if(f=P+1|0,!(W>>>0<2))break}if(d[0|m]=4,re=(0|_)<4?I:re,_=(0|_)<=4?4:_,I>>>0<2)break a;if(W=3&(I=~P+le|0),f=1,Me-P>>>0>=3)for(P=-4&I,I=0;u[0|(m=r+f|0)]==4&&(d[0|m]=3),u[m+1|0]==4&&(d[m+1|0]=3),u[m+2|0]==4&&(d[m+2|0]=3),u[m+3|0]==4&&(d[m+3|0]=3),f=f+4|0,(0|P)!=(0|(I=I+4|0)););if(m=0,!W)break a;for(;u[0|(P=r+f|0)]==4&&(d[0|P]=3),f=f+1|0,(0|W)!=(0|(m=m+1|0)););}if(Ce)continue;break e}}break}}Z=_,x=re,(0|P)==20&&(d[r+b|0]=c&&(0|U)<0?1:U,b=b+1|0)}if(d[0|t]=P,le=b-1|0,t=t+1|0,Ce=(0|b)<99)continue}break}d[r+b|0]=1,d[0|t]=0;e:if((0|(t=e[o>>2]))>0)Z=4,(0|t)>=(0|b)&&(e[o>>2]=le,t=le),d[t+r|0]=4,x=e[o>>2];else if((0|Z)==5&&(Z=4,!((0|b)<2))){if(l=1,_=1&(t=b-1|0),(0|b)!=2)for(re=-2&t,I=0;;){m=4;A:{r:{a:switch(u[0|(t=(f=l)+r|0)]-4|0){case 1:break r;case 0:break a;default:break A}m=2&u[A+14|0]?1:3,f=x}d[0|t]=m,x=f}m=4;A:{r:{a:switch(u[0|(t=(f=l+1|0)+r|0)]-4|0){case 1:break r;case 0:break a;default:break A}m=2&u[A+14|0]?1:3,f=x}d[0|t]=m,x=f}if(l=l+2|0,(0|re)==(0|(I=I+2|0)))break}if(_){m=4;A:{r:switch(u[0|(t=r+l|0)]-4|0){case 1:break A;case 0:break r;default:break e}m=2&u[A+14|0]?1:3,l=x}d[0|t]=m,x=l}}return e[o>>2]=x,e[s>>2]=b,Z}function OA(A,t){var r,s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0;if(!A)return ZA(t);if(t>>>0>=4294967232)return e[56798]=48,0;r=t>>>0<11?16:t+11&-8,c=-8&(s=e[(f=A-8|0)+4>>2]);e:if(3&s){m=c+f|0;A:if(c>>>0>=r>>>0){if((l=c-r|0)>>>0<16)break A;e[f+4>>2]=1&s|r|2,e[(o=f+r|0)+4>>2]=3|l,e[m+4>>2]=1|e[m+4>>2],pe(o,l)}else if(e[57158]!=(0|m))if(e[57157]!=(0|m)){if(2&(l=e[m+4>>2])||(b=c+(-8&l)|0)>>>0<r>>>0)break e;P=b-r|0;r:if(l>>>0<=255){if(c=e[m+8>>2],o=l>>>3|0,(0|(l=e[m+12>>2]))==(0|c)){e[57152]=e[57152]&As(-2,o);break r}e[c+12>>2]=l,e[l+8>>2]=c}else{if(x=e[m+24>>2],(0|(I=e[m+12>>2]))==(0|m))if((o=e[(c=m+20|0)>>2])||(o=e[(c=m+16|0)>>2])){for(;l=c,I=o,(o=e[(c=o+20|0)>>2])||(c=I+16|0,o=e[I+16>>2]););e[l>>2]=0}else I=0;else o=e[m+8>>2],e[o+12>>2]=I,e[I+8>>2]=o;if(x){l=e[m+28>>2];a:{if(e[(o=228912+(l<<2)|0)>>2]==(0|m)){if(e[o>>2]=I,I)break a;e[57153]=e[57153]&As(-2,l);break r}if(e[(e[x+16>>2]==(0|m)?16:20)+x>>2]=I,!I)break r}e[I+24>>2]=x,(o=e[m+16>>2])&&(e[I+16>>2]=o,e[o+24>>2]=I),(o=e[m+20>>2])&&(e[I+20>>2]=o,e[o+24>>2]=I)}}P>>>0<=15?(e[f+4>>2]=1&s|b|2,e[(o=f+b|0)+4>>2]=1|e[o+4>>2]):(e[f+4>>2]=1&s|r|2,e[(l=f+r|0)+4>>2]=3|P,e[(o=f+b|0)+4>>2]=1|e[o+4>>2],pe(l,P))}else{if((l=c+e[57154]|0)>>>0<r>>>0)break e;(o=l-r|0)>>>0>=16?(e[f+4>>2]=1&s|r|2,e[(c=f+r|0)+4>>2]=1|o,e[(l=l+f|0)>>2]=o,e[l+4>>2]=-2&e[l+4>>2]):(e[f+4>>2]=l|1&s|2,e[(o=l+f|0)+4>>2]=1|e[o+4>>2],o=0,c=0),e[57157]=c,e[57154]=o}else{if((c=c+e[57155]|0)>>>0<=r>>>0)break e;e[f+4>>2]=1&s|r|2,o=c-r|0,e[(l=f+r|0)+4>>2]=1|o,e[57155]=o,e[57158]=l}o=f}else{if(r>>>0<256||c>>>0>=r+4>>>0&&(o=f,c-r>>>0<=e[57272]<<1>>>0))break e;o=0}return o?o+8|0:(f=ZA(t))?(LA(f,A,t>>>0>(o=(3&(o=e[A-4>>2])?-4:-8)+(-8&o)|0)>>>0?o:t),ue(A),f):0}function Bt(){var A,t,r=0,s=0;return A=ys(12),e[A>>2]=22050,t=ys(432),e[(s=t)+4>>2]=0,e[s+8>>2]=0,e[s>>2]=132304,e[s+32>>2]=0,e[s+12>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+24>>2]=0,Xe(s+40|0,0,376),e[s+420>>2]=0,e[s+424>>2]=-1,d[s+416|0]=1,r=Xe(ys(408),0,408),e[s+28>>2]=r,d[r+8|0]=1,e[A+4>>2]=s,r=ys(1096),e[r+8>>2]=22050,e[r+4>>2]=22050,e[r>>2]=132352,e[r+64>>2]=22050,e[r+56>>2]=0,e[r+60>>2]=0,e[r+32>>2]=0,e[r+36>>2]=0,e[r+24>>2]=22050,e[r+16>>2]=0,e[r+20>>2]=0,e[r+40>>2]=0,e[r+44>>2]=0,d[r+48|0]=0,e[r+128>>2]=0,e[r+132>>2]=0,w[r+96>>1]=0,e[r+72>>2]=22050,e[r+136>>2]=0,e[r+140>>2]=0,w[r+168>>1]=0,e[r+144>>2]=22050,e[r+200>>2]=0,e[r+204>>2]=0,e[r+208>>2]=0,e[r+212>>2]=0,e[r+216>>2]=22050,w[r+240>>1]=0,e[r+280>>2]=0,e[r+284>>2]=0,e[r+272>>2]=0,e[r+276>>2]=0,e[r+288>>2]=22050,w[r+312>>1]=0,e[r+344>>2]=0,e[r+348>>2]=0,e[r+352>>2]=0,e[r+356>>2]=0,e[r+360>>2]=22050,w[r+384>>1]=0,e[r+416>>2]=0,e[r+420>>2]=0,e[r+424>>2]=0,e[r+428>>2]=0,e[r+432>>2]=22050,w[r+456>>1]=0,e[r+488>>2]=0,e[r+492>>2]=0,e[r+496>>2]=0,e[r+500>>2]=0,e[r+504>>2]=22050,w[r+528>>1]=1,e[r+560>>2]=0,e[r+564>>2]=0,e[r+568>>2]=0,e[r+572>>2]=0,w[r+600>>1]=0,e[r+576>>2]=22050,e[r+640>>2]=0,e[r+644>>2]=0,e[r+632>>2]=0,e[r+636>>2]=0,w[r+680>>1]=0,e[r+656>>2]=22050,e[r+648>>2]=22050,e[r+720>>2]=0,e[r+724>>2]=0,e[r+712>>2]=0,e[r+716>>2]=0,w[r+752>>1]=0,e[r+728>>2]=22050,e[r+792>>2]=0,e[r+796>>2]=0,e[r+784>>2]=0,e[r+788>>2]=0,w[r+824>>1]=0,e[r+800>>2]=22050,e[r+864>>2]=0,e[r+868>>2]=0,e[r+856>>2]=0,e[r+860>>2]=0,e[r+872>>2]=22050,w[r+896>>1]=0,e[r+936>>2]=0,e[r+940>>2]=0,e[r+928>>2]=0,e[r+932>>2]=0,w[r+968>>1]=0,e[r+944>>2]=22050,e[r+1008>>2]=0,e[r+1012>>2]=0,e[r+1e3>>2]=0,e[r+1004>>2]=0,w[r+1040>>1]=0,e[r+1016>>2]=22050,e[r+1088>>2]=0,e[(s=r+1080|0)>>2]=0,e[s+4>>2]=0,e[(s=r+1072|0)>>2]=0,e[s+4>>2]=0,e[A+8>>2]=r,At[e[e[r>>2]+4>>2]](r,t),A}function zt(A,t,r){var s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0;e:if(x=e[50759]){if(s=e[50980],o=O(s,80)+222176|0,(0|(m=(0|(o=(0|(o=(e[o+12>>2]+e[o>>2]|0)/(0|A)|0))<(0|(b=((0|O(e[50754],19))/40<<16)/(0|A)|0))?o:b))>=399?399:o))>=0&&(Xe(t,0,4+(m<<2)|0),s=e[50980]),(0|s)>=0)for(P=e[50801];;){if(l=O(c,80)+222176|0,e[l+4>>2]&&(f=e[l>>2])){if(_=f+e[l+12>>2]|0,s=1+((f-e[l+8>>2]|0)/(0|A)|0)|0,(0|f)>(0|(s=O(o=(0|s)<=1?1:s,A))))for(;e[(I=(o<<2)+t|0)>>2]=e[I>>2]+O(e[l+4>>2],u[((f-s|0)/(e[l+8>>2]>>8)|0)+P|0]),o=o+1|0,(0|f)>(0|(s=A+s|0)););if(!((0|s)>=(0|_)))for(;e[(I=(o<<2)+t|0)>>2]=e[I>>2]+O(e[l+4>>2],u[((s-f|0)/(e[l+12>>2]>>8)|0)+P|0]),o=o+1|0,(0|_)>(0|(s=A+s|0)););}if(!((0|(c=c+1|0))<=e[50980]))break}if(o=1,!((0|(l=65536e3/(0|A)|0))<=0||(0|(s=O(e[55565],10)))<=0))for(l=(0|s)/(0|l)|0;e[(f=(o<<2)+t|0)>>2]=e[f>>2]+s,o=o+1|0,(0|(s=s-l|0))>0;);if((0|c)<=8)for(;o=(s=c<<2)+203216|0,l=O(c,80)+222176|0,f=e[l+4>>2]>>14,e[o>>2]=(0|O(O(f,f),5))/2,r?s=e[s+203264>>2]:(f=s+203264|0,s=e[l>>2]/(0|A)|0,e[f>>2]=s),(0|s)>=(0|b)&&(e[o>>2]=0),(0|(c=c+1|0))!=9;);if(o=0,(0|m)>=0)for(s=0;l=e[(c=(s<<2)+t|0)>>2]>>15,l=O(l,l)>>8,e[c>>2]=l,(0|o)<=524287999&&(e[c>>2]=O(l,u[344+((o>>19)+x|0)|0])>>13),o=A+o|0,c=(0|s)!=(0|m),s=s+1|0,c;);if(e[t+4>>2]=(0|O(e[t+4>>2],u[203300]?6:10))/8,1&r)for(A=e[50826],s=1;;){if(e[(r=s<<2)+203312>>2]=e[t+r>>2]-e[A+r>>2]>>3,(0|(r=s+1|0))==30)break e;e[(r<<=2)+203312>>2]=e[t+r>>2]-e[A+r>>2]>>3,s=s+2|0}}else m=1;return m}function es(A,t,r,s){var o,l=0,c=0;Y=o=Y-176|0,d[0|A]=0,w[o+80>>1]=24320,e[o+104>>2]=0,e[o+108>>2]=0,d[82+(ar(r,l=o+80|2)+o|0)|0]=0;e:{A:{if(!s){if(s=o+80|1,e[o+12>>2]=s,ur(t,o+12|0,o+16|0,o+104|0,0,0)||(e[o+12>>2]=l,ur(t,o+12|0,o+16|0,o+104|0,0,0)||(d[o+81|0]=32,UA(t,l,o+16|0,60,0,0,0))),(r=u[o+16|0])&&(0|r)!=21)break A;r:{if(e[t+212>>2]!=25966){if(un(85719,188772,189296),d[o+81|0]=95,e[o+12>>2]=s,ur(e[47193],o+12|0,o+16|0,o+104|0,0,0)||(e[o+12>>2]=l,ur(e[47193],o+12|0,o+16|0,o+104|0,0,0)),u[o+16|0])break r;is(e[e[32972]+60>>2]),r=u[o+16|0]}if(255&r)break A;t=u[87124]|u[87125]<<8|u[87126]<<16|u[87127]<<24,r=u[87120]|u[87121]<<8|u[87122]<<16|u[87123]<<24,d[0|A]=r,d[A+1|0]=r>>>8,d[A+2|0]=r>>>16,d[A+3|0]=r>>>24,d[A+4|0]=t,d[A+5|0]=t>>>8,d[A+6|0]=t>>>16,d[A+7|0]=t>>>24,d[A+16|0]=u[87136],t=u[87132]|u[87133]<<8|u[87134]<<16|u[87135]<<24,r=u[87128]|u[87129]<<8|u[87130]<<16|u[87131]<<24,d[A+8|0]=r,d[A+9|0]=r>>>8,d[A+10|0]=r>>>16,d[A+11|0]=r>>>24,d[A+12|0]=t,d[A+13|0]=t>>>8,d[A+14|0]=t>>>16,d[A+15|0]=t>>>24;break e}s=o+16|0,l=o+104|0,Y=r=Y-112|0,(c=e[47193])?(Zt(c,s,l,-1,0),Ar(l=s,s=r+48|0),t=e[t+212>>2],d[r+43|0]=t>>>24,d[0|(c=(l=r+43|0)+(t>>>0>16777215)|0)]=t>>>16,d[0|(c=c+!!(16711680&t)|0)]=t>>>8,d[0|(c=c+!!(65280&t)|0)]=t,d[c+!!(255&t)|0]=0,e[r+16>>2]=85719,e[r+24>>2]=l,e[r+20>>2]=s,dA(A,85662,r+16|0)):(Zt(t,s,l,-1,0),Ar(s,t=r+48|0),e[r>>2]=t,dA(A,85451,r)),Y=r+112|0,is(e[e[32972]+60>>2]);break e}if(e[o+12>>2]=l,ur(t,o+12|0,o+16|0,o+104|0,0,0),!u[o+16|0])break e}Zt(r=t,t=o+16|0,o+104|0,-1,0),Ar(r=t,t=o+112|0),e[o>>2]=t,dA(A,85451,o)}return Y=o+176|0,A}function Cr(A,t){var r,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0;if(Y=r=Y-112|0,e[r+72>>2]=-1,e[(s=r- -64|0)>>2]=-1,e[s+4>>2]=-1,e[r+56>>2]=-1,e[r+60>>2]=-1,e[r+48>>2]=-1,e[r+52>>2]=-1,e[r+40>>2]=-1,e[r+44>>2]=-1,e[r+32>>2]=-1,e[r+36>>2]=-1,e[r+24>>2]=-1,e[r+28>>2]=-1,e[r+16>>2]=-1,e[r+20>>2]=-1,(0|t)>0){for(l=e[r+72>>2],c=e[r+68>>2],f=e[r+64>>2],m=e[r+60>>2],I=e[r+56>>2],b=e[r+52>>2],x=e[r+48>>2],P=e[r+44>>2],_=e[r+40>>2],W=e[r+36>>2],U=e[r+32>>2],Z=e[r+28>>2],re=e[r+24>>2],le=e[r+20>>2],Ce=e[r+16>>2];o=l,l=(0|(l=e[(s=134912+(Me<<6)|0)+60>>2]))<0?o:l,o=c,c=(0|(c=e[s+56>>2]))<0?o:c,o=f,f=(0|(f=e[s+52>>2]))<0?o:f,o=m,m=(0|(m=e[s+48>>2]))<0?o:m,o=I,I=(0|(I=e[s+44>>2]))<0?o:I,o=b,b=(0|(b=e[s+40>>2]))<0?o:b,o=x,x=(0|(x=e[s+36>>2]))<0?o:x,o=P,P=(0|(P=e[s+32>>2]))<0?o:P,o=_,_=(0|(_=e[s+28>>2]))<0?o:_,o=W,W=(0|(W=e[s+24>>2]))<0?o:W,o=U,U=(0|(U=e[s+20>>2]))<0?o:U,o=Z,Z=(0|(Z=e[s+16>>2]))<0?o:Z,o=re,re=(0|(re=e[s+12>>2]))<0?o:re,o=le,le=(0|(le=e[s+8>>2]))<0?o:le,Ce=(0|(s=e[s+4>>2]))<0?Ce:s,(0|(Me=Me+1|0))!=(0|t););e[r+72>>2]=l,e[r+68>>2]=c,e[r+64>>2]=f,e[r+60>>2]=m,e[r+56>>2]=I,e[r+52>>2]=b,e[r+48>>2]=x,e[r+44>>2]=P,e[r+40>>2]=_,e[r+36>>2]=W,e[r+32>>2]=U,e[r+28>>2]=Z,e[r+24>>2]=re,e[r+20>>2]=le,e[r+16>>2]=Ce}for(t=0;;){if((0|(s=e[(l=t<<2)+(r+16|0)>>2]))!=e[(l=l+134848|0)>>2]){d[r+80|0]=0;e:{A:switch(t-1|0){case 4:e[47201]=s-1;break e;case 5:e[47200]=s;break e;case 0:case 1:case 2:case 3:case 11:break A;default:break e}e[r+4>>2]=s,e[r>>2]=1,e[r+8>>2]=d[t+102812|0],dA(r+80|0,91942,r)}e[l>>2]=s,s=r+80|0,PA(e[A>>2]+189424|0,s),e[A>>2]=e[A>>2]+EA(s)}if((0|(t=t+1|0))==15)break}Y=r+112|0}function Kr(A){var t,r,s,o=0,l=0,c=0,f=0;for(o=17,e[A+328>>2]=17,e[A+224>>2]=0,e[A+216>>2]=1105,e[A+220>>2]=1072,e[A+600>>2]=1056,e[A+8180>>2]=105296,c=Xe(A+344|0,0,256),d[A+393|0]=1,d[A+365|0]=1,d[A+360|0]=1,d[A+545|0]=1,d[A+529|0]=1,d[A+391|0]=1,d[A+379|0]=1,d[A+374|0]=1,d[A+489|0]=1,d[A+487|0]=1,d[A+398|0]=1,d[A+387|0]=1,d[A+388|0]=2,d[A+389|0]=1,d[A+390|0]=1,d[A+385|0]=2,d[A+383|0]=2,d[A+368|0]=1,d[A+369|0]=2,l=104224;d[0|(o=o+c|0)]=4|u[0|o],o=c+u[l+1|0]|0,d[0|o]=4|u[0|o],o=c+u[l+2|0]|0,d[0|o]=4|u[0|o],o=u[0|(l=l+3|0)],(0|l)!=104251;);d[A+386|0]=8|u[A+386|0],d[A+382|0]=8|u[A+382|0],d[A+384|0]=8|u[A+384|0],d[A+369|0]=16|u[A+369|0],d[A+370|0]=16|u[A+370|0],d[A+371|0]=16|u[A+371|0],l=u[A+361|0],c=u[A+362|0],o=u[A+363|0],f=u[A+364|0],t=u[A+366|0],r=u[A+367|0],d[A+372|0]=16|u[A+372|0],d[A+373|0]=16|u[A+373|0],d[A+375|0]=16|u[A+375|0],d[A+376|0]=16|u[A+376|0],d[A+377|0]=16|u[A+377|0],d[A+378|0]=16|u[A+378|0],d[A+380|0]=16|u[A+380|0],d[A+381|0]=16|u[A+381|0],d[A+383|0]=16|u[A+383|0],d[A+385|0]=16|u[A+385|0],s=u[A+388|0],d[A+367|0]=48|r,d[A+366|0]=40|t,d[A+364|0]=48|f,d[A+363|0]=48|o,d[A+362|0]=48|c,d[A+361|0]=48|l,d[A+388|0]=80|s,l=u[A+390|0],c=u[A+391|0],o=u[A+393|0],d[A+360|0]=128|u[A+360|0],f=u[A+365|0],d[A+393|0]=192|o,d[A+365|0]=128|f,d[A+368|0]=128|u[A+368|0],d[A+374|0]=128|u[A+374|0],d[A+379|0]=128|u[A+379|0],d[A+387|0]=128|u[A+387|0],o=u[A+389|0],d[A+391|0]=192|c,d[A+390|0]=192|l,d[A+389|0]=128|o,d[A+529|0]=128|u[A+529|0],d[A+545|0]=128|u[A+545|0],d[A+489|0]=128|u[A+489|0],d[A+487|0]=128|u[A+487|0],d[A+398|0]=128|u[A+398|0]}function ur(A,t,r,s,o,l){var c,f=0,m=0,I=0,b=0,x=0,P=0;Y=c=Y-192|0,f=x=e[t>>2];e:{A:{for(;m=1,(0|(I=d[0|f]))>=0||(m=2,I>>>0<4294967264||(m=I>>>0<4294967280?3:4)),!(u[0|(I=m+f|0)]!=32|u[I+1|0]!=46);){if(b-160>>>0<4294967135)break A;LA((P=c+32|0)+b|0,f,m),d[(m=m+b|0)+P|0]=46,f=I+3|0,b=m+1|0}if(b){for(m=0;I=m,m=m+1|0,223&u[f+I|0];);if(!((P=I+b|0)+1>>>0>160)&&(LA((m=c+32|0)+b|0,f,I),d[m+P|0]=0,bs(A,m,f,r,s,o,l))){e[s>>2]=128|e[s>>2],e[33264]=b,A=1;break e}}}for(f=0;;){if(x=(m=x)+1|0,223&(m=u[0|m]))if(!f|(0|m)!=46|d[31+(f+c|0)|0]-48>>>0>=10){if(d[(c+32|0)+f|0]=m,m=159,(0|(f=f+1|0))!=159)continue}else m=f;else m=f;break}d[(f=c+32|0)+m|0]=0,f=bs(A,f,x,r,s,o,l);A:if(8&u[s+3|0]){if(!nr(r,I=A+268|0)){if(I=e[A+288>>2]+1|0,e[A+288>>2]=I,(0|I)<4)break A;d[0|r]=0;break A}Vt(I,r,20),e[A+288>>2]=1}else e[A+288>>2]=0;A:{if(!f){if(f=0,8&u[s+5|0]&&(I=WA(c+28|0,f=c+32|u[c+32|0]==95),CA(A,e[c+28>>2],r),f=f+I|0),!(m>>>0<2|f)){if(d[0|r]=0,!(16&o&&u[0|(f=31+(m+c|0)|0)]==101)&&(!(4096&o)||u[0|(f=(m=(c+32|0)+m|0)-1|0)]!=u[m-2|0]))break A;d[0|f]=0,f=bs(A,c+32|0,x,r,s,o,l)}if(!f)break A}if(b=e[s>>2],u[A+172|0]&&(b^=536870912,e[s>>2]=b),A=1,!(536870912&b))break e;2&o&&(w[66448]=8192,e[c+16>>2]=r,dA(132898,87470,c+16|0),A=e[t>>2],e[t>>2]=132898,8&u[188788]&&(LA(t=c+32|0,s=A,A=f-A|0),d[A+t|0]=0,e[c+4>>2]=132898,A=e[47195],e[c>>2]=t,rr(A,87652,c)))}d[0|r]=0,A=0}return Y=c+192|0,A}function Vs(A,t){var r=0,s=0,o=0;r=31&A;e:{A:{r:{if((0|(A&=96))==96)A=-1;else{if((0|A)!=64)break r;A=1}if(r>>>0>=15)break e;t=e[203136+(r<<2)>>2]+O(A,t)|0;break A}if(r>>>0>=15)break e}A=e[(s=r<<2)+105616>>2],e[s+203136>>2]=(0|t)>=0?(0|A)>(0|t)?t:A:0}e:{A:{r:{a:{n:switch(r-1|0){case 5:if(!(A=e[50759]))break A;e[54728]=e[50982],t=e[50979],r=e[50978],Xe(205184,0,11e3),e[51293]=0,t=(r=(o=(0|(s=e[50789]))>0)?130:(0|r)>=5499?5499:r)?o?s:(0|t)>=100?100:t:0,e[50755]=t,r=(0|O(r,e[50754]))/1e3|0,e[51292]=r,e[54729]=(0|t)>20?r<<1:t?r:0,e[33037]=(0|O(500-t|0,(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16|0))/500;break a;case 0:break n;case 2:case 12:break e;case 4:break r;default:break A}if(!(A=e[50759]))break A}return t=256,(0|(r=(0|(r=e[50785]))>=101?101:r))>=51&&(t=256+(((O(r,25)-1250&65535)>>>0)/50|0)|0),w[A+164>>1]=(0|O(w[A+236>>1],t))/256,w[A+166>>1]=(0|O(w[A+238>>1],t))/256,w[A+168>>1]=(0|O(w[A+240>>1],t))/256,w[A+170>>1]=(0|O(w[A+242>>1],t))/256,w[A+172>>1]=(0|O(w[A+244>>1],t))/256,w[A+174>>1]=(0|O(w[A+246>>1],t))/256,A=e[50790],w[102e3]=(0|O(w[102036],O(A,-3)+256|0))/256,void(w[101999]=(0|O(w[102035],O(A,-6)+256|0))
vendor: 6,448 bytes, line 2896
2896/256)}e[50759]&&(e[54728]=e[50982],A=e[50979],t=e[50978],Xe(205184,0,11e3),e[51293]=0,A=(t=(s=(0|(r=e[50789]))>0)?130:(0|t)>=5499?5499:t)?s?r:(0|A)>=100?100:A:0,e[50755]=A,t=(0|O(t,e[50754]))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|O(500-A|0,(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16|0))/500)}return}e[33037]=(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16}function Tr(A,t,r){var s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0;r&&(e[r>>2]=0);e:{A:if(!((0|(s=d[0|A]))<0)){for(;;){if((0|(l=255&s))==32|l-9>>>0<5){if((0|(s=d[0|(A=A+1|0)]))>=0)continue;break A}break}if(!(255&s))break e}for(;;){if((0|(s=m=255&s))==32|s-9>>>0<5)break e;if((0|m)!=124||(0|(s=u[0|(l=A+1|0)]))==124){A:{if((0|(x=e[36115]))>=2){for(s=1,l=-1,I=0;;){r:if(!(!(b=e[144464+(s<<2)>>2])|u[b+11|0]==15)){f=e[b>>2];a:{n:{if(m>>>0>=33){if(P=0,c=0,(255&f)==(0|m)&&(c=1,(o=u[A+1|0])>>>0<33|(0|o)!=(f>>>8&255)||(c=2,(o=u[A+2|0])>>>0<33|(0|o)!=(f>>>16&255)||(c=(o=(o=u[A+3|0])>>>0>32&(0|o)==(f>>>24|0))?4:3,P=0-o|0))),(0|l)>=(0|c))break r;if(o=4,!(1&P))break n;break a}if(c=0,(0|l)>=0)break r}if(f>>>((o=c)<<3)&255)break r}I=u[b+10|0],l=o}if((0|x)==(0|(s=s+1|0)))break}if(I)break A}return r&&WA(r,A),void(d[0|t]=0)}d[0|t]=I,A=((0|l)<=1?1:l)+A|0,t=l=t+1|0;A:if((0|I)==21){r:if((0|(o=u[0|A]))==32|o-9>>>0<5)s=l;else if(s=l,o)for(;;){if(d[0|s]=Gs(o),s=s+1|0,(0|(o=u[0|(A=A+1|0)]))==32|o-9>>>0<5)break r;if(!o)break}if(d[0|s]=0,!o){if(t=s,nr(l,85593))break A;return void(d[0|l]=0)}d[0|s]=124,t=s+1|0}s=u[0|A]}else A=l;if(!(255&s))break}}d[0|t]=0}function ha(A,t){var r=0,s=0,o=0,l=0,c=0;e:{A:{r:{a:{n:switch((0|(r=e[A+4>>2]))==e[A+104>>2]?r=he(A):(e[A+4>>2]=r+1,r=u[0|r]),r-43|0){case 0:case 2:break n;default:break a}if(l=(0|r)==45,c=!t,(0|(r=e[A+4>>2]))==e[A+104>>2]?r=he(A):(e[A+4>>2]=r+1,r=u[0|r]),c|(t=r-58|0)>>>0>4294967285)break r;if(e[A+116>>2]<0)break A;e[A+4>>2]=e[A+4>>2]-1;break A}t=r-58|0}if(!(t>>>0<4294967286)){if((t=r-48|0)>>>0<10){for(;o=(0|(s=(s=O(s,10)+r|0)-48|0))<214748364,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=he(A):(e[A+4>>2]=t+1,r=u[0|t]),o&(t=r-48|0)>>>0<=9;);o=s>>31}r:if(!(t>>>0>=10))for(;;){if(t=(s=at(s,o,10,0))+r|0,r=ce,r=t>>>0<s>>>0?r+1|0:r,s=t-48|0,o=r-(t>>>0<48)|0,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=he(A):(e[A+4>>2]=t+1,r=u[0|t]),(t=r-48|0)>>>0>9)break r;if(!(s>>>0<2061584302&(0|o)<=21474836|(0|o)<21474836))break}if(t>>>0<10)for(;(0|(t=e[A+4>>2]))==e[A+104>>2]?t=he(A):(e[A+4>>2]=t+1,t=u[0|t]),t-48>>>0<10;);(0|(t=e[A+116>>2]))>0|(0|t)>=0&&(e[A+4>>2]=e[A+4>>2]-1),A=s,s=l?0-A|0:A,o=l?0-(!!(0|A)+o|0)|0:o;break e}}if(o=-2147483648,!(e[A+116>>2]<0))return e[A+4>>2]=e[A+4>>2]-1,ce=-2147483648,0}return ce=o,s}function ks(A){var t=0,r=0,s=0,o=0;if(e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,t=e[203136+((0|A)==2?32:8)>>2],s=e[32972],(0|(r=e[s+84>>2]))>0&&(t=(0|O(t,r))/100|0),r=(0|t)>=359?359:t,r=(0|(t=(0|t)>=450?450:t))>399?6:(0|t)>379?7:u[((0|r)<=80?80:r)+101856|0],1&A&&(e[32526]=(0|O(r,e[s+72>>2]))/256,e[32527]=(0|O(r,e[s+76>>2]))/256,e[32528]=(0|O(r,e[s+80>>2]))/256,r>>>0>7||(o=r-1|0,e[32528]=o,e[32526]=r,e[32527]=o)),2&A){A=e[s+72>>2];e:{A:{r:{a:{n:{o:{c:{u:{if((0|t)>=351)s=t-350|0,e[36432]=85-(((255&s)>>>0)/3|0)&255,s=60-(s>>>3|0)|0;else{if((0|t)<251)break u;s=t-250|0,e[36432]=110-(s>>>2|0),s=110-(s>>>1|0)|0}if(e[36433]=s,A=(0|O(A,r))/256|0,e[36431]=110+((0|O(A,150))/128|0),t>>>0<=349)break c;if(r=t-350|0,e[36431]=u[r+102224|0],t>>>0<390)break n;if(e[36434]=450+((t+112<<24>>24)/-2<<24>>24),t>>>0<441)break o;e[36434]=860-t,A=12;break A}A=(0|O(A,r))/256|0,e[36431]=(0|t)>=170?110+((0|O(A,150))/128|0)|0:128+((A<<7)/130|0)|0}A=(A<<8)/115|0;break A}if(A=12,t>>>0>430)break A;if(A=13,t>>>0<=400)break a;break A}if(A=(A<<8)/115|0,e[36428]=A,t>>>0<375)break r}A=14;break A}if((0|t)<351)break e;A=u[r+102336|0]}e[36428]=A}e[36429]=(0|A)<=16?16:A}}function ss(A,t,r){var s,o,l,c;s=.000244140625*+e[50767],T[r>>3]=s,T[r+40>>3]=.015625*+e[A+112>>2],T[r+48>>3]=.015625*+e[A+276>>2],T[r+56>>3]=.00390625*+(0|O(w[A+166>>1],w[t+4>>1]))+ +w[A+220>>1],T[r+64>>3]=.00390625*+(0|O(w[A+168>>1],w[t+6>>1]))+ +w[A+222>>1],T[r+72>>3]=.00390625*+(0|O(w[A+170>>1],w[t+8>>1]))+ +w[A+224>>1],T[r+80>>3]=.00390625*+(0|O(w[A+172>>1],w[t+10>>1]))+ +w[A+226>>1],T[r+88>>3]=.00390625*+(0|O(w[A+174>>1],w[t+12>>1]))+ +w[A+228>>1],o=w[A+230>>1],l=w[A+176>>1],c=w[t+14>>1],e[r+112>>2]=0,e[r+116>>2]=1080623104,e[r+104>>2]=0,e[r+108>>2]=1081032704,T[r+96>>3]=.00390625*+(0|O(l,c))+ +(0|o),u[t+40|0]?(e[r+184>>2]=0,e[r+188>>2]=1072693248,T[r+104>>3]=u[t+40|0]<<1):(e[r+184>>2]=0,e[r+188>>2]=0),T[r+120>>3]=.00390625*+w[A+202>>1]*+(u[t+35|0]<<1),T[r+128>>3]=.00390625*+w[A+204>>1]*+(u[t+36|0]<<1),T[r+136>>3]=.00390625*+w[A+206>>1]*+(u[t+37|0]<<1),t=u[t+38|0],A=w[A+208>>1],e[r+176>>2]=0,e[r+180>>2]=1079574528,e[r+160>>2]=0,e[r+164>>2]=1083129856,e[r+152>>2]=0,e[r+156>>2]=1083129856,e[r+352>>2]=0,e[r+356>>2]=1072693248,e[r+168>>2]=0,e[r+172>>2]=1079574528,T[r+144>>3]=.00390625*+(0|A)*+(t<<1),A=e[50779],T[r+368>>3]=s,T[r+360>>3]=+(0|A)/100*3}function as(A){var t=0;nA(A,zr(A));e:{A:{r:{a:{n:{o:{c:{u:{l:{i:{if((0|(A=-1048576&ce))<268435455|(0|A)<=268435455){p:{C:{if((0|A)<33554431|(0|A)<=33554431){if((0|A)<8388607|(0|A)<=8388607){if(t=524328,!0&(0|A)==-2147483648)break e;if(0|(0|A)!=-2143289344)break A;return 557096}if(!0&(0|A)==8388608)break C;if(0|(0|A)!=16777216)break A;return 524358}if((0|A)>71303167)break p;if(!0&(0|A)==33554432)break r;if(0|(0|A)!=67108864)break A}return 266270}if(!0&(0|A)==71303168)break i;if(!0&(0|A)==134217728)break a;if(0|(0|A)!=138412032)break A;return 294942}if((0|A)<542113791|(0|A)<=542113791){if((0|A)<536870911|(0|A)<=536870911){if(!0&(0|A)==268435456)break n;if(0|(0|A)!=272629760)break A;return 299028}if(!0&(0|A)==536870912)break c;if(!0&(0|A)==538968064)break o;if(0|(0|A)!=541065216)break A;return 569389}if((0|A)<1075838975|(0|A)<=1075838975){if(!0&(0|A)==542113792)break i;if(0|(0|A)!=1073741824)break A;return 532520}if(!0&(0|A)==1075838976)break u;if(!0&(0|A)==1077936128)break l;if(0|(0|A)!=1078984704)break A}return 299038}return 565288}return 1581096}return 536621}return 1585197}return 266260}return 262174}return 2396190}t=16384}return t}function fr(A,t,r,s,o,l){var c,f,m=0,I=0,b=0,x=0;if(f=8388607&A,I=e[34456],m=u[0|(A=f+I|0)]|u[A+1|0]<<8){c=!(b=u[A+2|0]),A=e[36434]<<c,(0|r)<=0?r=m:(r=(0|O(e[50754],r))/1e3<<c,A=(0|A)<(0|(x=(0|O(r,A))/(0|m)|0))?x:A),o=(0|o)>0?(0|O(r,o))/256|0:r,r=(0|O(o,e[36431]))/256|0,r=(0|A)<(0|(r=(4&s)>>>2|0&&(0|r)>(0|o)?o:r))?r:A,b||(m=m>>>1|0,r=(0|r)/2|0);
vendor: 5,758 bytes, line 2896
2896e:if(!((0|l)<0)){if(s=f+4|0,256&t)A=e[50758],e[36439]=A,e[(t=216192+(A<<4)|0)>>2]=7,e[t+8>>2]=s+I,e[t+4>>2]=m<<16|r,l=b|l<<8;else{if(A=e[50758],e[36439]=A,e[(A=216192+(A<<4)|0)>>2]=6,l=b|l<<8,e[A+12>>2]=l,e[A+8>>2]=s+I,I=A,A=O(t=m>>>2|0,3),o=(0|r)>(0|m),e[I+4>>2]=o?A:r,I=e[50758]+1|0,e[50758]=(0|I)<=169?I:0,(0|A)<(0|(r=o?r-A|0:0)))for(o=t<<1,b=s+(b?t:o)|0;t=e[50758],e[36439]=t,e[(t=216192+(t<<4)|0)>>2]=6,e[t+4>>2]=o,e[t+12>>2]=l,e[t+8>>2]=b+e[34456],t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0,(0|A)<(0|(r=r-o|0)););if((0|r)<=0)break e;A=e[50758],e[36439]=A,e[(t=216192+(A<<4)|0)>>2]=6,e[t+4>>2]=r,e[t+8>>2]=e[34456]+(s+(m-r<<c)|0)}e[12+(216192+(A<<4)|0)>>2]=l,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}}}function LA(A,t,r){var s,o=0,l=0;if(r>>>0>=512)return xe(0|A,0|t,0|r),A;s=A+r|0;e:if(3&(A^t))if(s>>>0<4)r=A;else if((o=s-4|0)>>>0<A>>>0)r=A;else for(r=A;d[0|r]=u[0|t],d[r+1|0]=u[t+1|0],d[r+2|0]=u[t+2|0],d[r+3|0]=u[t+3|0],t=t+4|0,o>>>0>=(r=r+4|0)>>>0;);else{A:if(3&A)if(r)for(r=A;;){if(d[0|r]=u[0|t],t=t+1|0,!(3&(r=r+1|0)))break A;if(!(r>>>0<s>>>0))break}else r=A;else r=A;if(!((o=-4&s)>>>0<64||(l=o+-64|0)>>>0<r>>>0))for(;e[r>>2]=e[t>>2],e[r+4>>2]=e[t+4>>2],e[r+8>>2]=e[t+8>>2],e[r+12>>2]=e[t+12>>2],e[r+16>>2]=e[t+16>>2],e[r+20>>2]=e[t+20>>2],e[r+24>>2]=e[t+24>>2],e[r+28>>2]=e[t+28>>2],e[r+32>>2]=e[t+32>>2],e[r+36>>2]=e[t+36>>2],e[r+40>>2]=e[t+40>>2],e[r+44>>2]=e[t+44>>2],e[r+48>>2]=e[t+48>>2],e[r+52>>2]=e[t+52>>2],e[r+56>>2]=e[t+56>>2],e[r+60>>2]=e[t+60>>2],t=t- -64|0,l>>>0>=(r=r- -64|0)>>>0;);if(r>>>0>=o>>>0)break e;for(;e[r>>2]=e[t>>2],t=t+4|0,o>>>0>(r=r+4|0)>>>0;);}if(r>>>0<s>>>0)for(;d[0|r]=u[0|t],t=t+1|0,(0|s)!=(0|(r=r+1|0)););return A}function Vr(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0;F(+A),t=0|B(1),B(0);e:{if((s=(t=t>>>20&2047)-969|0)>>>0<63)m=t;else{if((0|s)<0)return A+1;if(!(t>>>0<1033)){if(F(+A),s=0|B(1),r=0,!(0|B(0))&(0|s)==-1048576)break e;return t>>>0>=2047?A+1:(0|s)<0?(T[(t=Y-16|0)+8>>3]=12882297539194267e-247,12882297539194267e-247*T[t+8>>3]):(T[(t=Y-16|0)+8>>3]=3105036184601418e216,3105036184601418e216*T[t+8>>3])}}if(r=T[14409],l=(r=(A=(r=(o=T[14408]*A+r)-r)*T[14411]+(r*T[14410]+A))*A)*r*(A*T[14415]+T[14414]),r*=A*T[14413]+T[14412],F(+o),B(1),f=0|B(0),A=l+(r+(T[(s=f<<4&2032)+115376>>3]+A)),c=e[(s=s+115384|0)>>2],t=(f<<13)+(t=e[s+4>>2])|0,t=(s=(s=c)+(c=0)|0)>>>0<c>>>0?t+1|0:t,!m)return-2147483648&f?(v(0,0|s),v(1,t+1071644672|0),(A=(o=(r=+S())*A)+r)<1&&(e[(t=Y-16|0)+8>>2]=0,e[t+12>>2]=1048576,T[t+8>>3]=22250738585072014e-324*T[t+8>>3],A=(A=(l=A+1)+(o+(r-A)+(A+(1-l)))+-1)==0?0:A),A*=22250738585072014e-324):(v(0,0|s),v(1,t-1058013184|0),A=5486124068793689e288*((r=+S())*A+r)),A;v(0,0|s),v(1,0|t),r=(r=+S())*A+r}return r}function fs(A,t){var r,s=0,o=0,l=0,c=0;Y=r=Y-16|0;e:{if(Ls(84270,d[0|t])){if(o=2,Ls(t,43)||(o=u[0|t]!=114),o=Ls(t,120)?128|o:o,l=o=Ls(t,101)?524288|o:o,c=64|o,l=(0|(o=u[0|t]))==114?l:c,l=(0|o)==119?512|l:l,e[r>>2]=438,e[r+4>>2]=0,(A=0|Pe(-100,0|A,32768|((0|o)==97?1024|l:l),0|r))>>>0>=4294963201&&(e[56798]=0-A,A=-1),(0|A)<0)break e;Y=o=Y-32|0;A:{r:{if(Ls(84270,d[0|t])){if(s=ZA(1176))break r}else e[56798]=28;t=0;break A}Xe(s,0,144),Ls(t,43)||(e[s>>2]=u[0|t]==114?8:4),u[0|t]==97?(1024&(t=0|Le(0|A,3,0))||(t|=1024,e[o+16>>2]=t,e[o+20>>2]=t>>31,Le(0|A,4,o+16|0)),t=128|e[s>>2],e[s>>2]=t):t=e[s>>2],e[s+80>>2]=-1,e[s+48>>2]=1024,e[s+60>>2]=A,e[s+44>>2]=s+152,8&t||(e[o>>2]=o+24,e[o+4>>2]=0,0|Ie(0|A,21523,0|o)||(e[s+80>>2]=10)),e[s+40>>2]=10,e[s+36>>2]=11,e[s+32>>2]=12,e[s+12>>2]=13,u[227205]||(e[s+76>>2]=-1),e[s+56>>2]=e[56816],(t=e[56816])&&(e[t+52>>2]=s),e[56816]=s,t=s}if(Y=o+32|0,s=t)break e;De(0|A)}else e[56798]=28;s=0}return Y=r+16|0,s}function ra(A,t,r){var s,o=0,l=0,c=0,f=0,m=0;if(c=A,Y=s=Y-208|0,e[s+8>>2]=1,e[s+12>>2]=0,f=t<<2){for(e[s+16>>2]=4,e[s+20>>2]=4,t=4,o=4,l=2;A=t,t=(o+4|0)+t|0,e[(s+16|0)+(l<<2)>>2]=t,l=l+1|0,o=A,t>>>0<f>>>0;);if((A=(c+f|0)-4|0)>>>0<=c>>>0)l=0,t=1,A=0;else{for(l=1,t=1;3&~l?(ee[(s+16|0)+((o=t-1|0)<<2)>>2]>=A-c>>>0?tr(c,r,s+8|0,t,0,s+16|0):Da(c,r,t,s+16|0),(0|t)!=1?(mn(s+8|0,o),t=1):(mn(s+8|0,1),t=0)):(Da(c,r,t,s+16|0),Vn(s+8|0,2),t=t+2|0),l=1|(o=e[s+8>>2]),e[s+8>>2]=l,A>>>0>(c=c+4|0)>>>0;);l=o>>>0>1,A=e[s+12>>2]!=0}if(tr(c,r,s+8|0,t,0,s+16|0),l|(0|t)!=1|A)for(;(0|t)<=1?(Vn(o=s+8|0,A=fe(o)),l=e[s+8>>2],A=A+t|0):(mn(o=s+8|0,2),e[s+8>>2]=7^e[s+8>>2],Vn(o,1),tr((m=c-4|0)-e[(f=s+16|0)+((A=t-2|0)<<2)>>2]|0,r,o,t-1|0,1,f),mn(o,1),l=1|e[s+8>>2],e[s+8>>2]=l,tr(m,r,o,A,1,f)),t=A,c=c-4|0,e[s+12>>2]|(0|t)!=1|(0|l)!=1;);}Y=s+208|0}function Ys(A,t,r,s){var o,l=0,c=0,f=0;Y=o=Y-32|0,f=l=2147483647&s,c=l-1006698496|0;e:if(0|(l=l-1140785152|0)>>>0>c>>>0){if(l=r<<4|t>>>28,r=s<<4|r>>>28,(0|(t&=268435455))==134217728&!!(0|A)|t>>>0>134217728){c=r+1073741824|0,c=(l=l+1|0)?c:c+1|0;break e}if(c=r+1073741824|0,A|(0|t)!=134217728)break e;c=(A=1&l)>>>0>(l=A+l|0)>>>0?c+1|0:c}else(!r&(0|f)==2147418112?!(A|t):f>>>0<2147418112)?(l=0,c=2146435072,f>>>0>1140785151||(c=0,(f=f>>>16|0)>>>0<15249||(Mt(o+16|0,A,t,r,l=65535&s|65536,f-15233|0),vr(o,A,t,r,l,15361-f|0),l=(t=e[o+8>>2])<<4,t=e[o+12>>2]<<4|t>>>28,r=e[o>>2],f=c=e[o+4>>2],l|=c>>>28,c=t,(0|(A=268435455&f))==134217728&!!(0|(t=r|!!(e[o+16>>2]|e[o+24>>2]|e[o+20>>2]|e[o+28>>2])))|A>>>0>134217728?c=(l=l+1|0)?c:c+1|0:t|(0|A)!=134217728||(c=(A=l)>>>0>(l=l+(1&l)|0)>>>0?c+1|0:c)))):(l=r<<4|t>>>28,c=524287&(A=s<<4|r>>>28)|2146959360);return Y=o+32|0,v(0,0|l),v(1,-2147483648&s|c),+S()}function _s(A){var t,r=0,s=0,o=0,l=0,c=0;if(F(+A),c=0|B(1),o=0|B(0),(0|(l=c>>>20&2047))==2047)return(A*=1)/A;if(!(s=o<<1)&(0|(r=c<<1|o>>>31))==2145386496|r>>>0<2145386496)return!s&(0|r)==2145386496?0*A:A;if(l)r=1048575&c|1048576;else{if(l=0,s=o<<12,(0|(r=c<<12|o>>>20))>0|(0|r)>=0)for(;l=l-1|0,r=r<<1|s>>>31,s<<=1,(0|r)>0|(0|r)>=0;);s=31&(r=1-l|0),(63&r)>>>0>=32?(r=o<<s,o=0):(r=(1<<s)-1&o>>>32-s|c<<s,o<<=s)}if(s=o,(0|l)>1023){for(;;
vendor: 4,232 bytes, line 2896
2896){if(!((0|(o=r+-1048576|0))<0||(r=o)|s))return 0*A;if(r=r<<1|s>>>31,s<<=1,!((0|(l=l-1|0))>1023))break}l=1023}if(!((0|(o=r+-1048576|0))<0||(r=o)|s))return 0*A;if((0|r)==1048575|r>>>0<1048575)for(;l=l-1|0,o=r>>>0<524288,r=r<<1|s>>>31,s<<=1,o;);return t=-2147483648&c,(0|l)>0?r=r+-1048576|l<<20:(o=1-l|0,c=r,l=s,s=31&o,(63&o)>>>0>=32?(r=0,s=c>>>s|0):(r=c>>>s|0,s=((1<<s)-1&c)<<32-s|l>>>s)),v(0,0|s),v(1,r|t),+S()}function _r(A,t,r,s,o){var l,c=0,f=0;Y=l=Y-160|0;e:{A:{r:{a:switch((c=u[t+10|0])-15|0){case 6:break r;case 0:break a;default:break A}d[0|A]=0;break e}e[l>>2]=O(u[r+7|0],44)+137856,dA(A,86002,l),A=EA(A)+A|0;break e}if(s){if(d[l+140|0]=0,r?ft(0,0,r,l+8|0,0):en(c,l+8|0),r=l+140|0,c=u[l+140|0]){if((0|c)==32){d[0|A]=0;break e}224&(c=c<<24>>24)||(o&&(e[o>>2]=c),r=l+141|0)}if(!((0|(o=EA(r)))<=0)){A=PA(A,r)+o|0,d[0|A]=0;break e}}o=0;A:if(!(!(r=255&(c=e[t>>2]))|(0|r)==47)){if(s){if((0|(f=255&c))==95)break A;r:{a:{if((0|f)==35){if(f=3,u[t+11|0]!=2)break a;break A}if((f=r-32|0)>>>0>95)break r}r=y[93952+(f<<1)>>1]}o=ar(r,A)}else d[0|A]=c,o=1;for(;;){if(!(r=255&(c>>=8))|(0|r)==47)break A;if(s){if((0|r)==35&u[t+11|0]==2)break A;if(r-48>>>0<10)continue;(f=r-32|0)>>>0<=95&&(r=y[93952+(f<<1)>>1]),o=ar(r,A+o|0)+o|0}else d[A+o|0]=c,o=o+1|0}}d[0|(A=A+o|0)]=0}return Y=l+160|0,A}function pA(A){var t,r=0;t=A,r=131280;e:{A:{if(!((0|A)<=1023||(r=131300,A>>>0<1328||(r=131320,A>>>0<1424||(r=131340,A>>>0<1536||(r=131360,A>>>0<1792||(r=131380,A>>>0<1872||(r=131400,A>>>0<2432||(r=131420,A>>>0<2560||(r=131440,A>>>0<2688||(r=131460,A>>>0<2816||(r=131480,A>>>0<2944||(r=131500,A>>>0<3072||(r=131520,A>>>0<3200||(r=131540,A>>>0<3328||(r=131560,A>>>0<3456||(r=131580,A>>>0<3584||(r=131600,A>>>0<3712||(r=131620,A>>>0<3840||(r=131640,A>>>0<4096||(r=131660,A>>>0<4256||(r=131680,A>>>0<4352||(r=131700,A>>>0<4608||(r=131720,A>>>0<5024||(r=131740,A>>>0<10496||(r=131760,A>>>0<12544||(r=131780,A>>>0<40960))))))))))))))))))))))))))){if(A>>>0>=55296)break A;r=131800}if((0|t)>=y[(A=r)+8>>1])break e}A=0}return A}function CA(A,t,r){var s,o=0,l=0,c=0,f=0;Y=s=Y-208|0,d[s+80|0]=0;e:{if((o=t-224|0)>>>0<=158)t=101072+(o<<1)|0;else{if((t=t-592|0)>>>0>88)break e;t=101392+(t<<1)|0}if(t=y[t>>1]){if(c=t<<16>>16,f=(o=63&t)>>>0>37?o+59|0:w[101584+(o<<1)>>1],o=t>>>6|0,(0|c)<0)o=59+(63&o)|0,t=t>>>12&7;else{if(!(l=31&o))break e;o=0,t=t>>>11&15}(l=GA(A,e[129920+(l<<3)>>2],s+112|0))&&xs(A,f,s+176|0)&&(t&&4096&GA(A,e[129920+(t<<3)>>2],s+80|0)&&(r=EA(t=PA(r,s+80|0)),d[s+80|0]=0,r=t+r|0),o?(xs(t=A,o,A=s+144|0),e[s+68>>2]=s+80,e[s- -64>>2]=A,e[s+60>>2]=6,e[s+52>>2]=23,e[s+56>>2]=s+176,e[s+48>>2]=s+112,dA(r,84101,s+48|0)):(0|c)<0?PA(r,s+176|0):1&e[A+144>>2]|4096&l?(e[s+36>>2]=23,e[s+40>>2]=6,e[s+44>>2]=s+176,e[s+32>>2]=s+112,dA(r,84430,s+32|0)):(e[s+16>>2]=23,e[s+8>>2]=23,e[s>>2]=4,e[s+12>>2]=s+112,e[s+4>>2]=s+176,dA(r,84802,s)))}}Y=s+208|0}function _A(){fA(),e[55928]=0,e[55926]=0,e[55927]=0,e[55924]=0,e[56244]=0,e[56245]=0,e[56246]=0,e[56247]=0,e[56260]=0,e[56261]=0,e[56262]=0,e[56263]=0,e[56276]=0,e[56277]=0,e[56278]=0,e[56279]=0,e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,e[55988]=0,e[55989]=0,e[55990]=0,e[55991]=0,e[56004]=0,e[56005]=0,e[56006]=0,e[56007]=0,e[56020]=0,e[56021]=0,e[56022]=0,e[56023]=0,e[56036]=0,e[56037]=0,e[56038]=0,e[56039]=0,e[56052]=0,e[56053]=0,e[56054]=0,e[56055]=0,e[56068]=0,e[56069]=0,e[56070]=0,e[56071]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0}function Rt(A,t){var r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0;e:{if((0|(l=e[A+4>>2]))==e[A>>2])if((c=e[A+8>>2])>>>0<(r=e[A+12>>2])>>>0)r=(o=(1+(r-c>>2)|0)/2<<2)+c|0,(0|l)!=(0|c)&&(Ge(r=r-(s=c-l|0)|0,l,s),l=e[A+8>>2]),e[A+4>>2]=r,e[A+8>>2]=o+l;else{if((s=(0|r)==(0|l)?1:r-l>>1)>>>0>=1073741824)break e;if(b=(m=ys(r=s<<2))+r|0,f=r=(s+3&-4)+m|0,(0|l)!=(0|c)){if(x=-4&(c=c-l|0),o=r,s=l,c=1+((I=c-4|0)>>>2|0)&7)for(f=0;e[o>>2]=e[s>>2],s=s+4|0,o=o+4|0,(0|c)!=(0|(f=f+1|0)););
vendor: 9,091 bytes, line 2896
2896if(f=r+x|0,!(I>>>0<28))for(;e[o>>2]=e[s>>2],e[o+4>>2]=e[s+4>>2],e[o+8>>2]=e[s+8>>2],e[o+12>>2]=e[s+12>>2],e[o+16>>2]=e[s+16>>2],e[o+20>>2]=e[s+20>>2],e[o+24>>2]=e[s+24>>2],e[o+28>>2]=e[s+28>>2],s=s+32|0,(0|f)!=(0|(o=o+32|0)););}e[A+12>>2]=b,e[A+8>>2]=f,e[A+4>>2]=r,e[A>>2]=m,l&&(ue(l),r=e[A+4>>2])}else r=l;return e[r-4>>2]=e[t>>2],void(e[A+4>>2]=e[A+4>>2]-4)}fi(),R()}function Ca(A,t,r){var s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0;e:{A:{r:{a:{n:{o:{c:{u:{l:{if(t){if(!r)break l;break u}return cA=(t=A)-O(A=(A>>>0)/(r>>>0)|0,r)|0,He=0,ce=0,A}if(!A)break c;break o}if(!((s=r-1|0)&r))break n;l=0-(c=(we(r)+33|0)-we(t)|0)|0;break r}return cA=0,He=t-O(A=(t>>>0)/0|0,0)|0,ce=0,A}if((s=32-we(t)|0)>>>0<31)break a;break A}if(cA=A&s,He=0,(0|r)==1)break e;return r=31&(s=hi(r)),(63&s)>>>0>=32?A=t>>>r|0:(o=t>>>r|0,A=((1<<r)-1&t)<<32-r|A>>>r),ce=o,A}c=s+1|0,l=63-s|0}if(s=31&(o=63&c),o>>>0>=32?(o=0,f=t>>>s|0):(o=t>>>s|0,f=((1<<s)-1&t)<<32-s|A>>>s),s=31&(l&=63),l>>>0>=32?(t=A<<s,A=0):(t=(1<<s)-1&A>>>32-s|t<<s,A<<=s),c)for(b=(0|(s=r-1|0))==-1?-1:0;m=o<<1|f>>>31,f=(o=f<<1|t>>>31)-(I=r&(l=b-(m+(o>>>0>s>>>0)|0)>>31))|0,o=m-(o>>>0<I>>>0)|0,t=t<<1|A>>>31,A=x|A<<1,x=m=1&l,c=c-1|0;);return cA=f,He=o,ce=t<<1|A>>>31,m|A<<1}cA=A,He=t,A=0,t=0}return ce=t,A}function sa(A,t){var r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0;e:{if((0|(r=e[A+8>>2]))==e[A+12>>2])if((s=e[A+4>>2])>>>0>(c=e[A>>2])>>>0)o=Ge((l=(1+(s-c>>2)|0)/-2<<2)+s|0,s,r=r-s|0)+r|0,e[A+8>>2]=o,e[A+4>>2]=l+e[A+4>>2];else{if((l=(0|r)==(0|c)?1:r-c>>1)>>>0>=1073741824)break e;if(b=(f=ys(o=l<<2))+o|0,o=l=(-4&l)+f|0,(0|r)!=(0|s)){if(x=-4&(r=r-s|0),I=1+((m=r-4|0)>>>2|0)&7)for(o=0,r=l;e[r>>2]=e[s>>2],s=s+4|0,r=r+4|0,(0|I)!=(0|(o=o+1|0)););else r=l;if(o=l+x|0,!(m>>>0<28))for(;e[r>>2]=e[s>>2],e[r+4>>2]=e[s+4>>2],e[r+8>>2]=e[s+8>>2],e[r+12>>2]=e[s+12>>2],e[r+16>>2]=e[s+16>>2],e[r+20>>2]=e[s+20>>2],e[r+24>>2]=e[s+24>>2],e[r+28>>2]=e[s+28>>2],s=s+32|0,(0|o)!=(0|(r=r+32|0)););}e[A+12>>2]=b,e[A+8>>2]=o,e[A+4>>2]=l,e[A>>2]=f,c&&(ue(c),o=e[A+8>>2])}else o=r;return e[o>>2]=e[t>>2],void(e[A+8>>2]=e[A+8>>2]+4)}fi(),R()}function Hs(A,t){var r,s=0,o=0,l=0,c=0,f=0;o=189088,Y=r=Y-320|0,e[r+312>>2]=0,l=vt(A,c=PA(r+112|0,189088),r,r+316|0,r+312|0,0),s=e[r+316>>2];e:if((0|t)<=3){if((0|s)<2)break e;if(l=3&(t=s-1|0),A=1,s-2>>>0>=3)for(f=-4&t,t=0;d[0|(s=A+r|0)]>=4&&(d[0|s]=3),d[(s=A+r|0)+1|0]>=4&&(d[s+1|0]=3),d[s+2|0]>=4&&(d[s+2|0]=3),d[s+3|0]>=4&&(d[s+3|0]=3),A=A+4|0,(0|f)!=(0|(t=t+4|0)););if(!l)break e;for(t=0;d[0|(s=A+r|0)]>=4&&(d[0|s]=3),A=A+1|0,(0|l)!=(0|(t=t+1|0)););}else if(A=1,!((0|s)<=1)){for(;;){if((0|l)>d[0|(f=A+r|0)]){if((0|s)!=(0|(A=A+1|0)))continue;break e}break}d[0|f]=t}if(A=u[0|c])for(t=1;s=e[144464+((255&A)<<2)>>2],u[s+11|0]!=2|16&u[s+6|0]||(l=255&(s=d[t+r|0]),(0|s)<2&&l||(d[0|o]=u[l+94151|0],o=o+1|0,A=u[0|c]),t=t+1|0),d[0|o]=A,o=o+1|0,A=u[0|(c=c+1|0)];);d[0|o]=0,Y=r+320|0}function Wa(A){var t=0,r=0,s=0,o=0,l=0,c=0;r=t=e[(A|=0)>>2],e[A>>2]=t+1;e:{A:{r:{a:{n:{o:{c:switch(((l=u[0|t])>>>4|0)-8|0){case 0:case 1:case 2:case 3:break A;case 7:break n;case 6:break o;case 4:case 5:break c;default:break e}if((s=t+2|0)>>>0>=(o=e[A+4>>2])>>>0)break a;if(e[A>>2]=s,(192&(r=u[r+1|0]))!=128)break r;return 63&r|l<<6&1984}if((s=t+3|0)>>>0>=(o=e[A+4>>2])>>>0)break a;if(r=t+2|0,e[A>>2]=r,(192&(t=u[t+1|0]))!=128){s=r;break r}if(e[A>>2]=s,(192&(r=u[0|r]))!=128)break r;return 63&r|(63&t|l<<6&960)<<6}if(!((o=e[A+4>>2])>>>0<=(r=t+4|0)>>>0)){if(s=t+2|0,e[A>>2]=s,(192&(o=u[t+1|0]))!=128||(s=t+3|0,e[A>>2]=s,(192&(c=u[t+2|0]))!=128)||(e[A>>2]=r,t=u[0|s],s=r,(192&t)!=128))break r;return 0|((A=63&t|c<<6&4032|(63&o|l<<6&960)<<12)>>>0>=1114112?65533:A)}}e[A>>2]=o;break A}e[A>>2]=s-1}l=65533}return 0|l}function Ne(A,t,r,s){var o,l,c=0,f=0,m=0,I=0,b=0,x=0;if(Y=o=Y-432|0,!(!s|!(536870912&(l=lA(A,t,r,s))))&&(w[o+48>>1]=8192,s=PA(o+48|2,s),u[0|s])){for(m=o+224|0,c=1,I=200;;){if(WA(o+44|0,s),t=Bs(e[o+44>>2]),f=e[r>>2],t?(e[r>>2]=2|f,ar(Gs(e[o+44>>2]),s)):e[r>>2]=-3&f,x=e[33264],lA(A,s,r,0),1&c?(e[o+16>>2]=189088,f=zs(m,I,84130,o+16|0)):(e[o+32>>2]=15,e[o+36>>2]=189088,f=zs(m,I,84434,o+32|0)),c=(t=e[33264])+1|0,e[33264]=c,t>>>0<=2147483646){for(;;)if(t=s,s=s+1|0,(0|(b=d[0|t]))==32|b-9>>>0<5){for(;t=(s=t)+1|0,(0|(b=d[0|s]))==32|b-9>>>0<5;);if(c=c-1|0,e[33264]=c,!((0|c)>0))break}}if(m=m+f|0,e[33264]=x,!(u[0|s]&&(c=0,(0|(I=I-f|0))>1)))break}(o+224|0)!=(0|m)&&(e[o>>2]=o+224,zs(189088,200,84130,o))}return Y=o+432|0,l}function J(A,t,r,s,o,l,c,f){var m,I;m=e[32972],I=e[m+116>>2],w[A+8>>1]=y[A+8>>1]+l,l=32&f?0-l|0:l,w[A+10>>1]=l+y[A+10>>1],w[A+12>>1]=l+y[A+12>>1],s=(0|s)>(0|(l=((l=(0|O(t,I))/256|0)-(t=w[A+6>>1])|0)/2|0))?l:s,w[A+6>>1]=((0|r)<(0|s)?s:r)+t;e:{A:switch(o-1|0){case 0:t=(0|(t=235-(r=w[A+4>>1])|0))<=-100?-100:t,w[A+4>>1]=((0|t)>=-60?-60:t)+r;break e;case 1:t=(0|(t=(0|(t=235-(r=w[A+4>>1])|0))<=-300?-300:t))>=-150?-150:t,w[A+4>>1]=t+r,w[A+2>>1]=t+y[A+2>>1];break e;case 2:break A;default:break e}t=(0|(t=(0|(t=100-(r=w[A+4>>1])|0))<=-400?-400:t))>-300?-400:t,w[A+4>>1]=t+r,w[A+2>>1]=t+y[A+2>>1]}e[m+132>>2]||(d[A+20|0]=(O(u[A+20|0],c)>>>0)/100,d[A+21|0]=(O(u[A+21|0],c)>>>0)/100,d[A+22|0]=(O(u[A+22|0],c)>>>0)/100,d[A+23|0]=(O(u[A+23|0],c)>>>0)/100,d[A+24|0]=(O(u[A+24|0],c)>>>0)/100,d[A+25|0]=(O(u[A+25|0],c)>>>0)/100)}function de(A){var t,r=0,s=0,o=0,l=0;Y=t=Y-48|0;e:{if(A){u[0|A]||(A=Ua(84285),u[0|A]&&A||(A=Ua(121696),u[0|A]&&A||(A=Ua(84614),u[0|A]&&A||(A=84891))));A:{for(;;){if(!(!(s=u[A+r|0])|(0|s)==47)){if(o=23,(0|(r=r+1|0))!=23)continue;break A}break}o=r}s=84891;A:{r:{if(r=u[0|A],(u[A+o|0]|(0|r)==46||(s=A,(0|r)==67))&&!u[s+1|0]||!nr(s,84891)||!nr(s,85136)){if(r=121652,u[s+1|0]==46)break r;A=0;break A}if(r=e[56851])for(;;){if(!nr(s,r+8|0))break r;if(!(r=e[r+32>>2]))break}(A=ZA(36))&&(r=e[30414],e[A>>2]=e[30413],e[A+4>>2]=r,LA(r=A+8|0,s,o),d[r+o|0]=0,e[A+32>>2]=e[56851],e[56851]=A),r=A||121652}A=r}if((0|A)==-1)break e;e[56809]=A}else A=e[56809];l=A?A+8|0:84309}return Y=t+48|0,l}function he(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0;m=!!((t=e[A+112>>2])|(s=e[A+116>>2])),o=t,c=t=(l=e[A+4>>2])-(f=e[A+44>>2])|0,r=t+e[A+120>>2]|0,t=e[A+124>>2]+(t>>31)|0;e:{if(!(((0|(t=r>>>0<c>>>0?t+1|0:t))>=(0|s)&r>>>0>=o>>>0|(0|t)>(0|s))&m)){if((0|(m=Nt(A)))>=0)break e;l=e[A+4>>2],f=e[A+44>>2]}return e[A+112>>2]=-1,e[A+116>>2]=-1,e[A+104>>2]=l,s=(c=r)+(r=f-l|0)|0,t=(r>>31)+t|0,e[A+120>>2]=s,e[A+124>>2]=r>>>0>s>>>0?t+1|0:t,-1}return t=(s=r+1|0)?t:t+1|0,l=e[A+4>>2],f=e[A+8>>2],c=o=e[A+116>>2],o|(r=e[A+112>>2])&&(o=r-s|0,(0|(r=c-(t+(r>>>0<s>>>0)|0)|0))>=(0|(c=(I=f-l|0)>>31))&o>>>0>=I>>>0|(0|r)>(0|c)||(f=o+l|0)),e[A+104>>2]=f,s=(o=(r=e[A+44>>2])-l|0)+s|0,t=(o>>31)+t|0,e[A+120>>2]=s,e[A+124>>2]=s>>>0<o>>>0?t+1|0:t,r>>>0>=l>>>0&&(d[l-1|0]=m),m}function Ge(A,t,r){var s=0,o=0;e:if((0|A)!=(0|t)){if(t-(o=A+r|0)>>>0<=0-(r<<1)>>>0)return LA(A,t,r);if(s=3&(A^t),A>>>0<t>>>0){if(s)s=A;else{if(3&A)for(s=A;;){if(!r)break e;if(d[0|s]=u[0|t],t=t+1|0,r=r-1|0,!(3&(s=s+1|0)))break}else s=A;if(!(r>>>0<=3))for(;e[s>>2]=e[t>>2],t=t+4|0,s=s+4|0,(r=r-4|0)>>>0>3;);}if(r)for(;d[0|s]=u[0|t],s=s+1|0,t=t+1|0,r=r-1|0;);}else{if(!s){if(3&o)for(;;){if(!r)break e;if(d[0|(s=(r=r-1|0)+A|0)]=u[t+r|0],!(3&s))break}if(!(r>>>0<=3))for(;e[(r=r-4|0)+A>>2]=e[t+r>>2],r>>>0>3;);}if(!r)break e;for(;d[(r=r-1|0)+A|0]=u[t+r|0],r;);}}return A}function ze(A,t,r,s){e:switch(t-9|0){case 0:return t=e[r>>2],e[r>>2]=t+4,void(e[A>>2]=e[t>>2]);case 6:return t=e[r>>2],e[r>>2]=t+4,t=w[t>>1],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 7:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=y[t>>1],void(e[A+4>>2]=0);case 8:return t=e[r>>2],e[r>>2]=t+4,t=d[0|t],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 9:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=u[0|t],void(e[A+4>>2]=0);case 16:return t=e[r>>2]+7&-8,e[r>>2]=t+8,void(T[A>>3]=T[t>>3]);case 17:At[0|s](A,r);default:return;case 1:case 4:case 14:return t=e[r>>2],e[r>>2]=t+4,t=e[t>>2],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 2:case 5:case 11:case 15:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=e[t>>2],void(e[A+4>>2]=0);case 3:case 10:case 12:case 13:break e}t=e[r>>2]+7&-8,e[r>>2]=t+8,r=e[t+4>>2],e[A>>2]=e[t>>2],e[A+4>>2]=r}function $e(A,t,r,s,o,l){var c;Y=c=Y-80|0;e:if((0|l)>=16384){if(xt(c+32|0,t,r,s,o,0,0,0,2147352576),s=e[c+40>>2],o=e[c+44>>2],t=e[c+32>>2],r=e[c+36>>2],l>>>0<32767){l=l-16383|0;break e}xt(c+16|0,t,r,s,o,0,0,0,2147352576),l=((0|l)>=49149?49149:l)-32766|0,s=e[c+24>>2],o=e[c+28>>2],t=e[c+16>>2],r=e[c+20>>2]}else(0|l)>-16383||(xt(c- -64|0,t,r,s,o,0,0,0,7471104),s=e[c+72>>2],o=e[c+76>>2],t=e[c+64>>2],r=e[c+68>>2],l>>>0>4294934644?l=l+16269|0:(xt(c+48|0,t,r,s,o,0,0,0,7471104),l=((0|l)<=-48920?-48920:l)+32538|0,s=e[c+56>>2],o=e[c+60>>2],t=e[c+48>>2],r=e[c+52>>2]));xt(c,t,r,s,o,0,0,0,l+16383<<16),t=e[c+12>>2],e[A+8>>2]=e[c+8>>2],e[A+12>>2]=t,t=e[c+4>>2],e[A>>2]=e[c>>2],e[A+4>>2]=t,Y=c+80|0}function wA(A,t){var r,s,o=0;Y=r=Y+-64|0,o=e[A>>2],s=e[o-4>>2],o=e[o-8>>2],e[r+32>>2]=0,e[r+36>>2]=0,e[r+40>>2]=0,e[r+44>>2]=0,e[r+48>>2]=0,e[r+52>>2]=0,d[r+55|0]=0,d[r+56|0]=0,d[r+57|0]=0,d[r+58|0]=0,d[r+59|0]=0,d[r+60|0]=0,d[r+61|0]=0,d[r+62|0]=0,e[r+24>>2]=0,e[r+28>>2]=0,e[r+20>>2]=0,e[r+16>>2]=125084,e[r+12>>2]=A,e[r+8>>2]=t,A=A+o|0,o=0;e:if(ca(s,t,0))e[r+56>>2]=1,At[e[e[s>>2]+20>>2]](s,r+8|0,A,A,1,0),o=e[r+32>>2]==1?A:0;else{At[e[e[s>>2]+24>>
28962]](s,r+8|0,A,1,0);A:switch(e[r+44>>2]){case 0:o=e[r+48>>2]==1&&e[r+36>>2]==1&&e[r+40>>2]==1?e[r+28>>2]:0;break e;case 1:break A;default:break e}e[r+32>>2]!=1&&e[r+48>>2]|e[r+36>>2]!=1|e[r+40>>2]!=1||(o=e[r+24>>2])}return Y=r- -64|0,o}function xA(A,t,r,s,o){var l,c,f=0;Y=l=Y-80|0,w[l+72>>1]=0,e[l+64>>2]=0,e[l+68>>2]=0,d[0|s]=0,f=ar(t,c=2|(f=l- -64|0))+f|0,d[f+2|0]=32;e:if((0|r)!=-1)t>>>0>=33&&!wr(t)?(d[f+3|0]=(0|r)==32?32:31,d[l+65|0]=95,GA(A,l- -64|1,l+16|0)||(d[l+65|0]=32,GA(A,c,l+16|0)||UA(A,c,l+16|0,40,0,268435456,0)),u[l+16|0]||CA(A,t,l+16|0),t=PA(s,l+16|0),!(r=u[0|t])|(0|r)==21||(e[l+56>>2]=0,e[l+60>>2]=0,Zt(A,t,l+56|0,-1,1&o))):(e[l>>2]=t,dA(t=l- -64|1,85485,l),GA(A,t,s));else{if(GA(A,c,s)||(d[l+65|0]=95,GA(A,l- -64|1,l+16|0)|e[A+212>>2]==25966))break e;Hn(85055),GA(e[47194],c,l+16|0)&&(d[0|s]=21,d[s+1|0]=0),is(e[e[32972]+60>>2])}Y=l+80|0}function Xe(A,t,r){var s=0,o=0,l=0,c=0;if(r&&(d[0|A]=t,d[(s=A+r|0)-1|0]=t,!(r>>>0<3||(d[A+2|0]=t,d[A+1|0]=t,d[s-3|0]=t,d[s-2|0]=t,r>>>0<7||(d[A+3|0]=t,d[s-4|0]=t,r>>>0<9||(o=(s=0-A&3)+A|0,t=O(255&t,16843009),e[o>>2]=t,e[(r=(s=r-s&-4)+o|0)-4>>2]=t,s>>>0<9||(e[o+8>>2]=t,e[o+4>>2]=t,e[r-8>>2]=t,e[r-12>>2]=t,s>>>0<25||(e[o+24>>2]=t,e[o+20>>2]=t,e[o+16>>2]=t,e[o+12>>2]=t,e[r-16>>2]=t,e[r-20>>2]=t,e[r-24>>2]=t,e[r-28>>2]=t,(r=s-(c=4&o|24)|0)>>>0<32))))))))for(s=at(t,0,1,1),l=ce,t=o+c|0;e[t+24>>2]=s,e[t+28>>2]=l,e[t+16>>2]=s,e[t+20>>2]=l,e[t+8>>2]=s,e[t+12>>2]=l,e[t>>2]=s,e[t+4>>2]=l,t=t+32|0,(r=r-32|0)>>>0>31;);return A}function QA(){var A,t=0,r=0,s=0,o=0,l=0;if(Y=A=Y-208|0,(0|(s=e[50303]))>0)for(;(o=e[(r=201216+(t<<2)|0)>>2])&&(ue(o),e[r>>2]=0),(0|s)!=(0|(t=t+1|0)););if(e[50303]=0,e[A+16>>2]=137584,e[A+20>>2]=47,dA(t=A+32|0,87827,A+16|0),gt(t,EA(t)+1|0,0),e[A+4>>2]=47,e[A>>2]=137584,dA(t,87933,A),gt(t,EA(t)+1|0,1),t=e[50303],e[(r=t<<2)+201216>>2]=0,r=OA(s=e[50741],r+4|0)){if(e[50741]=r,ra(201216,t,7),s=e[50741],r=0,t=e[50304])for(o=0;l=e[t+4>>2],u[0|l]&&nr(l+1|0,86589)&&Xr(e[t+8>>2],88032,3)&&(e[(r<<2)+s>>2]=t,r=r+1|0),t=e[201216+((o=o+1|0)<<2)>>2];);e[(r<<2)+s>>2]=0}return Y=A+208|0,s}function it(A,t,r){var s=0,o=0,l=0,c=0;if(l=t-1|0,(0|t)>=2){t=A;e:{for(;;){A:{r:{if((0|(s=e[r+4>>2]))!=(0|(o=e[r+8>>2]))){if((c=Ia(s,10,o-s|0))?o=1+(c-(s=e[r+4>>2])|0)|0:(s=e[r+4>>2],o=e[r+8>>2]-s|0),LA(t,s,s=o>>>0<l>>>0?o:l),o=s+e[r+4>>2]|0,e[r+4>>2]=o,t=t+s|0,c||!(l=l-s|0))break A;if((0|o)!=e[r+8>>2]){e[r+4>>2]=o+1,s=u[0|o];break r}}if(!((0|(s=Nt(r)))>=0)){if(s=0,(0|A)==(0|t))break e;if(16&u[0|r])break A;break e}}if(d[0|t]=s,t=t+1|0,(255&s)!=10&&(l=l-1|0))continue}break}A?(d[0|t]=0,s=A):s=0}}else if(t=e[r+72>>2],e[r+72>>2]=t-1|t,!l)return d[0|A]=0,A;return s}function St(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0;if(t=O(A,44),(0|(A=e[t+137896>>2]))>0&&St(A-1|0),A=e[36115],!((0|(t=e[(r=t+137856|0)+36>>2]))<=0)){if(o=e[r+32>>2],f=1&t,(0|t)!=1)for(m=-2&t,r=0;t=u[(l=(s=r<<4)+o|0)+10|0],e[144464+(t<<2)>>2]=l,(0|A)>=(0|t)?t=A:Xe(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=u[(s=(16|s)+o|0)+10|0],e[144464+(A<<2)>>2]=s,(0|A)<=(0|t)?A=t:Xe(144464+((t=t+1|0)<<2)|0,0,A-t<<2),r=r+2|0,(0|m)!=(0|(c=c+2|0)););else r=0;f&&(t=u[(r=(r<<4)+o|0)+10|0],e[144464+(t<<2)>>2]=r,(0|A)>=(0|t)||(Xe(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=t))}e[36115]=A}function Ft(A,t,r,s,o){var l,c=0,f=0,m=0;Y=l=Y-16|0;e:if(1&d[A+106|0]&&(c=u[0|r],!(!(1&d[s+2|0])&(0|c)!=46||256&(m=e[s+12>>2])|!(!(2&m)||o)||(WA(l+12|0,(0|c)!=46?r:r+2|0),!(c=u[0|r])|!u[r+1|0])))){if(!(!(m=e[l+12>>2])|2&u[s+2|0])){if(!jt(m))break e;c=u[0|r]}(0|c)==46&&(d[0|r]=32),f=2,e[A+212>>2]!=26741|o||(r=jt(e[l+12>>2])?Ne(A,r+2|0,0,0):0,128&u[A+8233|0]&&(!(!(o=e[l+12>>2])|2&u[s+2|0])&o-48>>>0>=10||(f=0)),f=32768&r?0:f,131072&r&&(f=163840&e[A+8232>>2]?34:u[t-2|0]!=45?f:0))}return Y=l+16|0,f}function gr(A,t,r,s,o){var l,c=0,f=0;if(Y=l=Y-208|0,e[l+204>>2]=r,Xe(r=l+160|0,0,40),e[l+200>>2]=e[l+204>>2],(0|Ss(0,t,l+200|0,l+80|0,r,s,o))<0)o=-1;else{e[A+76>>2]>=0,c=e[A>>2],e[A+72>>2]<=0&&(e[A>>2]=-33&c);e:{A:{if(e[A+48>>2]){if(e[A+16>>2])break A}else e[A+48>>2]=80,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,f=e[A+44>>2],e[A+44>>2]=l;if(r=-1,Ta(A))break e}r=Ss(A,t,l+200|0,l+80|0,l+160|0,s,o)}f&&(At[e[A+36>>
vendor: 17,746 bytes, line 2896
28962]](A,0,0),e[A+48>>2]=0,e[A+44>>2]=f,e[A+28>>2]=0,t=e[A+20>>2],e[A+16>>2]=0,e[A+20>>2]=0,r=t?r:-1),t=A,A=e[A>>2],e[t>>2]=A|32&c,o=32&A?-1:r}return Y=l+208|0,o}function Ht(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0,b=0,x=0;if(Y=o=Y-208|0,c=u[0|t])for(;d[l+o|0]=c,m=((255&c)==6&(0|f)!=21)+m|0,f=c<<24>>24,c=u[(l=l+1|0)+t|0];);if(d[l+o|0]=0,l=u[0|o])for(b=m-2|0,f=0,x=(0|s)<2,c=0;;){e:{A:if((255&l)!=6|x|(0|c)==21){if((0|(s=255&l))==255){if(!I|(0|r)<2)break e;s=r>>>0>2?11:(0|f)%3|0?23:11}c=s,s=f}else{if(l=f+1|0,u[A+169|0]){c=(0|l)>1?5:6,s=l;break A}if(c=6,s=m,(0|l)==(0|m))break A;c=(0|l)%3|0||(0|f)==(0|b)?5:6,s=l}f=s,d[0|t]=c,t=t+1|0}if(!(l=u[(I=I+1|0)+o|0]))break}(0|r)>=2&&(d[0|t]=11,t=t+1|0),d[0|t]=0,Y=o+208|0}function er(A,t){var r=0;r=0,A&&(r=e[50754],r=(A=(A=(0|O(e[145712+(t?12:((0|A)>199)<<2)>>2],A))/256|0)>>>0>(t=e[36430])>>>0?A:t)>>>0<=89999?(O(A,r)>>>0)/1e3|0:(O(A,(0|r)/25|0)>>>0)/40|0),(0|(A=e[36440]))<=0||(0|(t=e[36424]))<0||(e[(t=216192+(t<<4)|0)+4>>2]||(e[t+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Ts(),e[36427]=-1,A=216192+(e[50758]<<4)|0,e[A>>2]=5,e[A+4>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,e[36426]=0,e[36438]&&(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}function pr(A,t,r,s,o,l,c,f){var m,I=0,b=0,x=0;I=1,m=b=2147483647&s;e:if(!((x=(0|b)==2147418112)&!r?A|t:x&!!(0|r)|b>>>0>2147418112)&&!((x=(0|(b=2147483647&f))==2147418112)&!c?o|l:x&!!(0|c)|b>>>0>2147418112)){if(!(A|o|r|c|t|l|b|m))return 0;if((0|(I=s&f))>0|(0|I)>=0){if(I=-1,(0|r)==(0|c)&(0|s)==(0|f)?(0|t)==(0|l)&A>>>0<o>>>0|t>>>0<l>>>0:r>>>0<c>>>0&(0|s)<=(0|f)|(0|s)<(0|f))break e;return!!(A^o|r^c|t^l|s^f)}I=-1,((0|r)==(0|c)&(0|s)==(0|f)?(0|t)==(0|l)&A>>>0>o>>>0|t>>>0>l>>>0:r>>>0>c>>>0&(0|s)>=(0|f)|(0|s)>(0|f))||(I=!!(A^o|r^c|t^l|s^f))}return I}function Ar(A,t){var r=0,s=0,o=0,l=0;for(r=u[85836]|u[85837]<<8,d[0|t]=r,d[t+1|0]=r>>>8,d[t+2|0]=u[85838];;)if(o=u[0|A],A=r=A+1|0,(0|o)!=255){if(!o)break;if(!(s=e[144464+(o<<2)>>2]))continue;if(u[s+11|0]==1&&(l=u[s+14|0],!(y[s+8>>1]|l>>>0>4))){if(l>>>0<2)continue;d[0|t]=u[l+93943|0],t=t+1|0;continue}if(255&(A=e[s>>2]))for(;d[0|t]=A,t=t+1|0,s=65280&A,A=A>>>8|0,s;);if(A=r,(0|o)!=21||(32|(r=d[0|A]))-97>>>0>=26)continue;for(;d[0|t]=r,t=t+1|0,(32|(r=d[0|(A=A+1|0)]))-97>>>0<26;);}d[0|t]=0}function Pr(A,t){var r,s,o=0,l=0,c=0;Y=r=Y-112|0,A||(e[50303]||QA(),A=201216),Vt(o=r+16|0,t,40),e[r>>2]=47,e[r+4>>2]=o,dA(t=r- -64|0,87599,r),s=EA(t),c=-1;e:{A:{r:{if(l=e[A>>2]){t=0,o=-1;a:{for(;;){if(Ya(r+16|0,e[l>>2])){if(Ya(r+16|0,l=e[l+8>>2])?c=Ya(r- -64|0,l+(EA(l)-s|0)|0)?c:t:o=t,l=e[((t=t+1|0)<<2)+A>>2])continue;break a}break}if((0|t)>=0)break A;t=(0|o)<0?c:o;break r}if((0|(t=o))>=0)break r}t=c}if(o=0,(0|t)<0)break e}o=e[(t<<2)+A>>2]}return Y=r+112|0,o}function sr(A,t){var r,s,o=0,l=0,c=0,f=0,m=0;Y=r=Y-16|0,F(+t),s=0|B(1),l=0|B(0),(0|(c=(o=2147483647&s)+-1048576|0))==2145386495|c>>>0<2145386495?(f=l<<28,c=o>>>4|0,o=(15&o)<<28|l>>>4,l=c+1006632960|0):(0|o)==2146435072|o>>>0>2146435072?(f=l<<28,o=(15&s)<<28|l>>>4,l=s>>>4|2147418112):o|l?(Mt(r,l,c=o,0,0,(o=o?we(o):we(l)+32|0)+49|0),m=e[r>>2],f=e[r+4>>2],c=15372-o<<16,o=e[r+8>>2],l=c|65536^e[r+12>>2]):(o=0,l=0),e[A>>2]=m,e[A+4>>2]=f,e[A+8>>2]=o,e[A+12>>2]=-2147483648&s|l,Y=r+16|0}function Ms(A,t,r){var s=0,o=0;e:{A:{r:{if(!(3&((o=A)^t))){s=!!(0|r);a:if(!(!(3&t)|!r))for(;;){if(s=u[0|t],d[0|o]=s,!s)break e;if(o=o+1|0,s=!!(0|(r=r-1|0)),!(3&(t=t+1|0)))break a;if(!r)break}if(!s)break A;if(!u[0|t])break e;if(!(r>>>0<4))for(;;){if(~(s=e[t>>2])&s-16843009&-2139062144)break r;if(e[o>>2]=s,o=o+4|0,t=t+4|0,!((r=r-4|0)>>>0>3))break}}if(!r)break A}for(;;){if(s=u[0|t],d[0|o]=s,!s)break e;if(o=o+1|0,t=t+1|0,!(r=r-1|0))break}}r=0}return Xe(o,0,r),A}function tr(A,t,r,s,o,l){var c,f=0,m=0,I=0;Y=c=Y-240|0,f=e[r>>2],e[c+232>>2]=f,r=e[r+4>>2],e[c>>2]=A,e[c+236>>2]=r,I=1;e:{A:{r:{if(r|(0|f)!=1){for(f=A;;){if((0|nn(r=f-e[(m=(s<<2)+l|0)>>2]|0,A,t))<=0){r=f;break r}a:{if(!((0|s)<2|o)&&(o=e[m-8>>2],(0|nn(m=f-4|0,r,t))>=0||(0|nn(m-o|0,r,t))>=0))break a;if(e[(I<<2)+c>>2]=r,Vn(f=c+232|0,o=fe(f)),I=I+1|0,s=s+o|0,o=0,f=r,e[c+236>>2]|e[c+232>>2]!=1)continue;break A}break}r=f;break A}r=A}if(o)break e}ui(c,I),Da(r,t,s,l)}Y=c+240|0}function br(A,t){var r=0;e[4+((r=A<<2)+134912|0)>>2]=t,e[r+136192>>2]=t,r=28;e:{A:{r:switch(A-1|0){case 0:e[50792]=t,e[50786]=t,ks(3);break A;case 1:e[50787]=t,e[33037]=(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16;break A;case 2:A=(0|t)>=99?99:t,e[50785]=(0|A)>0?A:0;break A;case 3:e[50788]=(0|t)>=99?99:t;break A;case 12:e[47268]=t;break A;case 6:e[47205]=t;break A;case 9:break A;case 8:break r;default:break e}(A=255&t)&&(e[e[47192]+152>>2]=A),e[47196]=t}r=0}return r}function Qt(A,t){var r=0,s=0,o=0;e:if(e[A>>2])for(;;){if(wr(e[A-4>>2])){if(s=0,(0|(r=d[0|t]))==e[A>>2])for(;(0|(r=d[(s=s+1|0)+t|0]))==e[(A=A+4|0)>>2];);if(!r){for(;t=A,A=A+4|0,wr(e[t>>2]););for(o=t+((e[t>>2]==61)<<2)|0;o=(A=o)+4|0,wr(e[A>>2]););A:switch((t=e[A>>2])-34|0){case 0:case 5:break e;default:break A}return wr(t)||e[A>>2]==47?102808:A}}if(!e[(A=A+4|0)>>2])break}return o}function mr(A,t,r,s){var o,l,c=0,f=0,m=0;return!u[A+25|0]|T[A+8>>3]!=r|T[A+16>>3]!=s?(T[A+16>>3]=s,T[A+8>>3]=r,s=(c=Vr(-3.141592653589793/(f=+e[A>>2])*s))*-c,T[A+48>>3]=s,c*=gs(-6.283185307179586/f*r),c+=c,T[A+40>>3]=c,f=1-c-s,T[A+32>>3]=f,!(m=u[A+24|0])|r==0||(f=1/f,T[A+32>>3]=f,s*=r=-f,T[A+48>>3]=s,c*=r,T[A+40>>3]=c,m=1)):(m=u[A+24|0],s=T[A+48>>3],c=T[A+40>>3],f=T[A+32>>3]),d[A+25|0]=1,r=T[A+64>>3],o=T[A+56>>3],T[A+64>>3]=o,l=t,t=s*r+(f*t+c*o),T[A+56>>3]=m?l:t,t}function Us(A,t,r,s,o){var l=0,c=0,f=0,m=0,I=0;if((f=e[34388])&&!((0|(c=e[34436]))>=(e[34393]-2|0))){if(e[34436]=c+1,l=O(c,36)+f|0,e[l>>2]=A,e[l+4>>2]=e[34437],I=e[34438],e[l+12>>2]=t>>>24,e[l+8>>2]=16777215&t,e[l+24>>2]=I,t=e[50754],o=e[34439]+((o-e[34392]|0)/2|0)|0,e[l+20>>2]=o,t=se(m=1e3*+(0|o)/+(0|t))<2147483648?~~m:-2147483648,e[l+16>>2]=t,A-3>>>0<=1)return void(e[28+(O(c,36)+f|0)>>2]=e[33282]+r);t=28+(O(c,36)+f|0)|0,e[t>>2]=r,(0|A)==7&&(e[t+4>>2]=s)}}function vr(A,t,r,s,o,l){var c=0,f=0,m=0,I=0;64&l?(t=31&(r=l+-64|0),(63&r)>>>0>=32?(r=0,t=o>>>t|0):(r=o>>>t|0,t=((1<<t)-1&o)<<32-t|s>>>t),s=0,o=0):l&&(m=s,c=31&(f=64-l|0),(63&f)>>>0>=32?(f=m<<c,I=0):(f=(1<<c)-1&m>>>32-c|o<<c,I=m<<c),m=t,t=31&l,(63&l)>>>0>=32?(c=0,t=r>>>t|0):(c=r>>>t|0,t=((1<<t)-1&r)<<32-t|m>>>t),t|=I,r=c|f,c=s,s=31&l,(63&l)>>>0>=32?(f=0,s=o>>>s|0):(f=o>>>s|0,s=((1<<s)-1&o)<<32-s|c>>>s),o=f),e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=s,e[A+12>>2]=o}function Es(A){var t=0,r=0;if(!A){if(e[33174]&&(t=Es(e[33174])),e[33136]&&(t=Es(e[33136])|t),A=e[56816])for(;e[A+20>>2]!=e[A+28>>2]&&(t=Es(A)|t),A=e[A+56>>2];);return t}return e[A+76>>2]>=0,e[A+20>>2]==e[A+28>>2]||(At[e[A+36>>2]](A,0,0),e[A+20>>2])?((0|(t=e[A+8>>2]))!=(0|(r=e[A+4>>2]))&&(t=r-t|0,At[e[A+40>>2]](A,t,t>>31,1)),t=0,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A+4>>2]=0,e[A+8>>2]=0):t=-1,t}function hr(A,t){var r=0,s=0,o=0,l=0,c=0;if((192&(r=u[0|t]))==128)for(;(192&(r=u[0|(t=t-1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(s=1,(0|(o=224&r))!=192)if((240&r)!=224){if(s=3,(248&r)!=240){r&=255,s=0;break e}}else s=2,c=1;r=u[s+93846|0]&r,(l=u[t+1|0])?(r=63&l|r<<6,(0|o)!=192&&((o=u[t+2|0])?(r=63&o|r<<6,c||((t=u[t+3|0])?r=63&t|r<<6:s=2)):s=1)):s=0}return e[A>>2]=r,s+1|0}function Ir(A,t,r,s){var o,l=0,c=0;return Y=o=Y-224|0,A?(e[o>>2]=137584,e[o+4>>2]=47,e[o+8>>2]=t,dA(t=o+16|0,85430,o),(0|(l=Ns(t)))<0?t=Zs(s,0-l|0,o+16|0):(t=fs(o+16|0,85659))?((c=e[A>>2])&&ue(c),l?(c=ZA(l),e[A>>2]=c,c?(0|ci(c,l,t))==(0|l)?(Or(t),t=0,r&&(e[r>>2]=l)):(r=e[56798],Or(t),ue(e[A>>2]),e[A>>2]=0,t=Zs(s,r,o+16|0)):(Or(t),t=48)):(t=0,e[A>>2]=0)):t=Zs(s,e[56798],o+16|0)):t=28,Y=o+224|0,t}function WA(A,t){var r=0,s=0,o=0,l=0,c=0;if((192&(r=u[0|t]))==128)for(;(192&(r=u[0|(t=t+1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(s=1,(0|(o=224&r))!=192)if((240&r)!=224){if(s=3,(248&r)!=240){r&=255,s=0;break e}}else s=2,c=1;r=u[s+93846|0]&r,(l=u[t+1|0])?(r=63&l|r<<6,(0|o)!=192&&((o=u[t+2|0])?(r=63&o|r<<6,c||((t=u[t+3|0])?r=63&t|r<<6:s=2)):s=1)):s=0}return e[A>>2]=r,s+1|0}function Mt(A,t,r,s,o,l){var c=0,f=0,m=0;64&l?(s=t,t=31&(o=l+-64|0),(63&o)>>>0>=32?(o=s<<t,s=0):(o=(1<<t)-1&s>>>32-t|r<<t,s<<=t),t=0,r=0):l&&(c=s,s=31&l,(63&l)>>>0>=32?(f=c<<s,m=0):(f=(1<<s)-1&c>>>32-s|o<<s,m=c<<s),c=t,s=31&(o=64-l|0),(63&o)>>>0>=32?(o=0,t=r>>>s|0):(o=r>>>s|0,t=((1<<s)-1&r)<<32-s|c>>>s),s=m|t,o|=f,t=31&l,(63&l)>>>0>=32?(f=c<<t,t=0):(f=(1<<t)-1&c>>>32-t|r<<t,t=c<<t),r=f),e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=s,e[A+12>>2]=o}function zr(A){var t=0;return A>>>0<=55295?t=u[e[125552+(A>>>6&67108860)>>2]+(255&A)|0]:(t=4,A>>>0<57344||(A>>>0<63488?t=3:A>>>0<=195327?t=u[e[126416+(A-63488>>>6&67108860)>>2]+(255&A)|0]:(t=2,A>>>0<917504||(A>>>0<=918015?t=u[e[128476+(A-917504>>>6&67108860)>>2]+(255&A)|0]:A>>>0<983040||(A>>>0<1048574?t=3:A>>>0<1048576||(t=3,A>>>0<1114110||(t=A>>>0<1114112?2:5))))))),255&t}function ba(A,t){var r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0;if(!((0|(r=e[33709]))<=0)){if(o=(0|A)>31?A-32|0:A,A=0,r>>>0>=4)for(b=-4&r;f=2|A,m=1|A,s=e[134912+((c=3|A)<<6)>>2]==(0|o)?c:e[134912+(f<<6)>>2]==(0|o)?f:e[134912+(m<<6)>>2]==(0|o)?m:e[134912+(A<<6)>>2]==(0|o)?A:s,A=A+4|0,(0|b)!=(0|(l=l+4|0)););if(l=3&r)for(;s=e[134912+(A<<6)>>2]==(0|o)?A:s,A=A+1|0,(0|l)!=(0|(I=I+1|0)););(0|s)<=0||(e[33709]=s,r=s)}Cr(t,r)}function aa(A){var t,r=0,s=0,o=0;for(Y=t=Y-96|0,Vt(t,A,60),na(t,1);o=Gs(d[0|(s=t+r|0)]),d[0|s]=o,r=r+1|0,255&o;);e[t+92>>2]=0,e[t+84>>2]=0,e[t+88>>2]=0,e[t+76>>2]=0,e[t+80>>2]=0,e[t+72>>2]=A;e:{A:{r:{if(JA(t,1)){if(u[202976])break r;break A}if(e[50303]||QA(),r=268437247,!(A=Pr(201216,t))||!JA(e[A+8>>2],0))break e;if(!u[202976])break A}JA(202976,2)}ut(e[32972]),e[t+76>>2]=e[32972]+40,Sn(t+72|0,202976),r=0}return Y=t+96|0,r}function si(A,t){if(!A)return 0;e:{A:{if(A){if(t>>>0<=127)break A;if(e[e[56841]>>2]){if(t>>>0<=2047){d[A+1|0]=63&t|128,d[0|A]=t>>>6|192,A=2;break e}if(!((-8192&t)!=57344&t>>>0>=55296)){d[A+2|0]=63&t|128,d[0|A]=t>>>12|224,d[A+1|0]=t>>>6&63|128,A=3;break e}if(t-65536>>>0<=1048575){d[A+3|0]=63&t|128,d[0|A]=t>>>18|240,d[A+2|0]=t>>>6&63|128,d[A+1|0]=t>>>12&63|128,A=4;break e}}else if((-128&t)==57216)break A;e[56798]=25,A=-1}else A=1;break e}d[0|A]=t,A=1}return A}function ai(A){var t=0,r=0,s=0,o=0;if(e[A+20>>2]=0,(s=(r=e[A+8>>2])-(t=e[A+4>>2])|0)>>>0>=9)for(;ue(e[t>>2]),t=e[A+4>>2]+4|0,e[A+4>>2]=t,(s=(r=e[A+8>>2])-t|0)>>>0>8;);o=512;e:switch((s>>>2|0)-1|0){case 1:o=1024;case 0:e[A+16>>2]=o;break;default:break e}if((0|t)!=(0|r)){for(;ue(e[t>>2]),(0|r)!=(0|(t=t+4|0)););(0|(t=e[A+8>>2]))!=(0|(r=e[A+4>>2]))&&(e[A+8>>2]=t+(3+(r-t|0)&-4))}(A=e[A>>2])&&ue(A)}function Ia(A,t,r){var s=0,o=0;s=!!(0|r);e:{A:{r:if(!(!(3&A)|!r))for(o=255&t;;){if((0|o)==u[0|A])break A;if(s=!!(0|(r=r-1|0)),!(3&(A=A+1|0)))break r;if(!r)break}if(!s)break e;if(!(u[0|A]==(255&t)|r>>>0<4))for(s=O(255&t,16843009);;){if(~(o=s^e[A>>2])&o-16843009&-2139062144)break A;if(A=A+4|0,!((r=r-4|0)>>>0>3))break}if(!r)break e}for(t&=255;;){if((0|t)==u[0|A])return A;if(A=A+1|0,!(r=r-1|0))break}}return 0}function Pn(A,t){var r=0,s=0;e:{if(s=255&t){if(3&A)for(;;){if(!(r=u[0|A])|(0|r)==(255&t))break e;if(!(3&(A=A+1|0)))break}A:if(!(~(r=e[A>>2])&r-16843009&-2139062144))for(s=O(s,16843009);;){if(~(r^=s)&r-16843009&-2139062144)break A;if(r=e[A+4>>2],A=A+4|0,r-16843009&~r&-2139062144)break}for(;(s=u[0|(r=A)])&&(A=r+1|0,(0|s)!=(255&t)););return r}return EA(A)+A|0}return A}function ni(A,t,r,s,o){var l,c=0,f=0;f=-1;e:if(!(((c=(0|(l=2147483647&s))==2147418112)&!r?A|t:c&!!(0|r)|l>>>0>2147418112)||(c=2147483647&o)>>>0>2147418112&(0|c)!=2147418112)){if(!(A|r|c|l|t))return 0;if((0|(c=s&o))>0|(0|c)>=0){if((!!(0|r)|(0|s)!=(0|o))&(0|s)<(0|o))break e;return!!(A|r|s^o|t)}(!r&(0|s)==(0|o)?A|t:!!(0|r)&(0|s)>=(0|o)|(0|s)>(0|o))||(f=!!(A|r|s^o|t))}return f}function na(A,t){var r,s=0;Y=r=Y+-64|0,d[202976]=0,e[r+48>>2]=47,dA(r+59|0,91351,r+48|0),t||(d[r+59|0]=0);e:{A:{if(A&&(A=Ls(A,43))){if(d[0|A]=0,d[0|(A=A+1|0)]-48>>>0>=10)break A;s=ka(A)}if((0|s)<=0)break e;if(s>>>0<=9){e[r+4>>2]=s,e[r>>2]=r+59,dA(202976,91378,r);break e}e[r+20>>2]=s-10,e[r+16>>2]=r+59,dA(202976,91503,r+16|0);break e}e[r+36>>2]=A,e[r+32>>2]=r+59,dA(202976,85425,r+32|0)}Y=r- -64|0}function Va(A){var t,r=0,s=0,o=0;Y=t=Y-80|0,r=ta(A,t+12|0),e[t+12>>2]?(Vt(s=t+16|0,r,60),r=0,na(s,1),!JA(s,0)|!u[202976]||JA(202976,2),ut(e[32972]),Sn(A,86012)):r=268437247,Y=t+80|0;e:{A:{r:{a:{if((0|r)<=268437502){if(!r)break e;if((0|r)==268436479)break A;if((0|r)!=268437247)break a;return 2}if((0|r)==268437503|(0|r)==268437759)break r;if((0|r)==268439295)break e}return-1}return 2}o=1}return o}function Nr(A,t,r,s,o,l,c,f,m){var I,b,x;m=at(t,r,f,m),f=ce,o=at(s,o,l,c),s=ce+f|0,f=o>>>0>(m=o+m|0)>>>0?s+1|0:s,I=c,b=r,c=(r=at(c,o=0,r,s=0))+m|0,m=ce+f|0,x=c,r=r>>>0>c>>>0?m+1|0:m,c=at(l,0,t,0),f=ce,s=at(l,m=0,b,s),l=ce+m|0,l=s>>>0>(f=f+s|0)>>>0?l+1|0:l,s=r,l=l>>>0>(m=l+x|0)>>>0?s+1|0:s,r=at(t,0,I,o)+f|0,o=ce,f=(o=r>>>0<f>>>0?o+1|0:o)+m|0,m=l,e[A+8>>2]=f,e[A+12>>2]=o>>>0>f>>>0?m+1|0:m,e[A>>2]=c,e[A+4>>2]=r}function PA(A,t){var r=0,s=0;e:{if(3&((s=A)^t))r=u[0|t];else{if(3&t)for(;;){if(r=u[0|t],d[0|s]=r,!r)break e;if(s=s+1|0,!(3&(t=t+1|0)))break}if(!(~(r=e[t>>2])&r-16843009&-2139062144))for(;e[s>>2]=r,r=e[t+4>>2],s=s+4|0,t=t+4|0,!(r-16843009&~r&-2139062144););}if(d[0|s]=r,255&r)for(;r=u[t+1|0],d[s+1|0]=r,s=s+1|0,t=t+1|0,r;);}return A}function gs(A){var t,r=0,s=0;Y=t=Y-16|0,F(+A),s=0|B(1),B(0);e:if((s&=2147483647)>>>0<=1072243195){if(r=1,s>>>0<1044816030)break e;r=qa(A,0)}else if(r=A-A,!(s>>>0>=2146435072)){A:switch(3&Er(A,t)){case 0:r=qa(T[t>>3],T[t+8>>3]);break e;case 1:r=-Za(T[t>>3],T[t+8>>3],1);break e;case 2:r=-qa(T[t>>3],T[t+8>>3]);break e;default:break A}r=Za(T[t>>3],T[t+8>>3],1)}return Y=t+16|0,A=r}function Gn(A,t,r,s){var o=0,l=0,c=0;if(!((EA(s)+EA(t)|0)>=(0|r))){for(c=e[36115],r=s;o=u[0|r];)if(r=r+1|0,!((0|o)>=(0|c))){e:{A:switch(o=e[144464+(o<<2)>>2],u[o+11|0]-1|0){case 1:break e;case 0:break A;default:continue}l=u[o+14|0]<4|l;continue}1&(u[o+4|0]>>>1|l)||(e[A+8212>>2]=e[A+8212>>2]+1),e[A+8208>>2]=e[A+8208>>2]+1,l=0}t&&ts(t,s)}}function ia(A){var t,r=0;Y=t=Y-16|0,F(+A),r=0|B(1),B(0);e:if((r&=2147483647)>>>0<=1072243195){if(r>>>0<1045430272)break e;A=Za(A,0,0)}else if(r>>>0>=2146435072)A-=A;else{A:switch(3&Er(A,t)){case 0:A=Za(T[t>>3],T[t+8>>3],1);break e;case 1:A=qa(T[t>>3],T[t+8>>3]);break e;case 2:A=-Za(T[t>>3],T[t+8>>3],1);break e;default:break A}A=-qa(T[t>>3],T[t+8>>3])}return Y=t+16|0,A}function ii(A){var t=0;e[A+296>>2]=303173648,e[A+300>>2]=370677780,t=e[26341],e[A+304>>2]=e[26340],e[A+308>>2]=t,t=e[26343],e[A+312>>2]=e[26342],e[A+316>>2]=t,Kr(A),e[A+56>>2]=2,e[A+36>>2]=3,e[A+40>>2]=1074,d[A+168|0]=5,e[A+132>>2]=32,e[A+104>>2]=1032,e[A+108>>2]=66,e[A+8>>2]=5,e[A+12>>2]=32,d[A+365|0]=64|u[A+365|0],d[A+368|0]=64|u[A+368|0],d[A+396|0]=64|u[A+396|0],d[A+399|0]=64|u[A+399|0]}function oi(A,t,r){var s=0,o=0,l=0;e:{if(!(s=e[r+16>>2])){if(Ta(r))break e;s=e[r+16>>2]}if(s-(l=e[r+20>>2])>>>0<t>>>0)return 0|At[e[r+36>>2]](r,A,t);A:if(e[r+80>>2]<0)s=0;else{for(o=t;;){if(!(s=o)){s=0;break A}if(u[(o=s-1|0)+A|0]==10)break}if((o=0|At[e[r+36>>2]](r,A,s))>>>0<s>>>0)break e;A=A+s|0,t=t-s|0,l=e[r+20>>2]}LA(l,A,t),e[r+20>>2]=e[r+20>>2]+t,o=t+s|0}return o}function li(A){var t,r=0,s=0;e:{if((0|(t=e[34064]))>0)for(;;){if((s=e[136284+(r<<4)>>2])&&!nr(A,s)){if(e[136276+(r<<4)>>2])return r;if(s=-1,YA(0,r))break e;return r}if((0|t)==(0|(r=r+1|0)))break}s=-1,YA(A,t)||(r=OA(e[12+(136272+(e[34064]<<4)|0)>>2],EA(A)+1|0),s=e[34064],e[12+(136272+(s<<4)|0)>>2]=r,PA(r,A),e[34064]=s+1)}return s}function Qn(A,t){var r,s=0,o=0,l=0,c=0;for(Y=r=Y-16|0,d[0|t]=0,(s=15&e[A>>2])&&(t=(o=EA(t=PA(t,Pa(128496,64|s))))+t|0),s=8;;){e:{A:{if(s>>>0<=29){if(e[A>>2]>>>s&1)break A;break e}if(!(e[A+4>>2]>>>s-32&1)|s>>>0<32)break e}(0|(o=(c=EA(l=Pa(128496,s))+1|0)+o|0))>=80||(e[r>>2]=l,dA(t,84439,r),t=t+c|0)}if((0|(s=s+1|0))==64)break}Y=r+16|0}function Fn(A,t,r){var s,o=0,l=0,c=0;if(Y=s=Y-16|0,u[0|A]){for(c=e[30450];;)if(l=A,A=A+1|0,!((0|(o=d[0|l]))==32|o-9>>>0<5)){for((0|(o=ka(l)))>0&&((0|o)<32?e[t>>2]=e[t>>2]|1<<o:(l=Pa(129568,r),e[s+4>>2]=o,e[s>>2]=l,rr(c,84902,s)),l=A);l=(A=l)+1|0,(o=d[0|A])-48>>>0<10|(32|o)-97>>>0<26;);if(!o)break}}Y=s+16|0}function wa(A,t,r){var s=0,o=0,l=0,c=0;e:if(t&&!((0|(o=r-4|0))<=0))for(l=(0|(r=e[t-4>>2]))!=34?(0|r)==39?r:0:r,r=0;;){if(c=r,!(r=e[t>>2]))break e;A:{if(!l){if((0|r)==32|r-9>>>0<5)break e;if((0|r)!=47)break A;break e}if((0|c)!=92&&(0|r)==(0|l))break e}if(t=t+4|0,!((0|o)>(0|(s=ar(r,A+s|0)+s|0))))break}return d[A+s|0]=0,s}function jt(A){var t=0;e:if(!Ke(A)){t=0;A:if(!(A>>>0<768)){if(A-2305>>>0<=1270){if((124&A)>>>0<100)break e;if(t=1,la(93850,A))break A;return A-3450>>>0<6}if((0|A)==1541|A-1456>>>0<19|(0|A)==1648||(0|(t=-256&A))==10240|(0|t)==4352|A-3904>>>0<125|A>>>0<880)break e;t=1,A-1611>>>0<20||(t=A-12353>>>0<30400)}return t}return 1}function Sn(A,t){var r=0;A?((r=e[A+4>>2])&&PA(133208,r),(r=e[A>>2])&&Vt(133168,r,40),e[33289]=u[A+14|0],e[33291]=u[A+13|0],e[33290]=u[A+12|0],Vt(134672,u[0|t]!=33|u[t+1|0]!=118?t:(u[t+2|0]==47?3:0)+t|0,40),A=e[50298],e[33678]=e[50297],e[33679]=A,A=e[50302],e[33682]=e[50301],e[33683]=A,A=e[50300],e[33680]=e[50299],e[33681]=A):Xe(133152,0,76)}function ln(A,t,r,s){d[A+53|0]=1;e:if(e[A+4>>2]==(0|r)){d[A+52|0]=1;A:{if(!(r=e[A+16>>2])){if(e[A+36>>2]=1,e[A+24>>2]=s,e[A+16>>2]=t,(0|s)!=1)break e;if(e[A+48>>2]==1)break A;break e}if((0|t)==(0|r)){if((0|(r=e[A+24>>2]))==2&&(e[A+24>>2]=s,r=s),e[A+48>>2]!=1)break e;if((0|r)==1)break A;break e}e[A+36>>2]=e[A+36>>2]+1}d[A+54|0]=1}}function oa(A,t){var r=0,s=0,o=0,l=0,c=0;e:if(r=e[t>>2])for(;;){s=0;A:if(A){for(;c=d[s+r|0],(o=e[(s<<2)+A>>2])&&(s=s+1|0,(0|c)==(0|o)););r:switch(o-34|0){case 0:case 5:break r;default:break A}if(!c)break e}if(!(r=e[((l=l+1|0)<<3)+t>>2]))break}return e[4+((l<<3)+t|0)>>2]}function vs(A,t){e:if((0|t)>=1024){if(A*=898846567431158e293,t>>>0<2047){t=t-1023|0;break e}A*=898846567431158e293,t=((0|t)>=3069?3069:t)-2046|0}else(0|t)>
vendor: 4,237 bytes, line 2896
2896-1023||(A*=2004168360008973e-307,t>>>0>4294965304?t=t+969|0:(A*=2004168360008973e-307,t=((0|t)<=-2960?-2960:t)+1938|0));return v(0,0),v(1,t+1023<<20),A*+S()}function zs(A,t,r,s){var o,l,c,f=0;return Y=l=Y-16|0,e[l+12>>2]=s,Y=o=Y-160|0,c=t?A:o+158|0,e[o+144>>2]=c,f=-1,A=t-1|0,e[o+148>>2]=A>>>0<=t>>>0?A:0,A=Xe(o,0,144),e[A+76>>2]=-1,e[A+36>>2]=17,e[A+80>>2]=-1,e[A+44>>2]=A+159,e[A+84>>2]=A+144,(0|t)<0?e[56798]=61:(d[0|c]=0,f=gr(A,r,s,15,16)),Y=A+160|0,Y=l+16|0,f}function Ya(A,t){var r=0,s=0,o=0;e:if(r=u[0|A])for(;;){if(!(s=u[0|t])){o=r;break e}if((0|r)!=(0|s)&&(0|(s=r-65>>>0<26?32|r:r))!=(0|((r=u[0|t])-65>>>0<26?32|r:r))){o=u[0|A];break e}if(t=t+1|0,r=u[A+1|0],A=A+1|0,!r)break}return(o=(A=255&o)-65>>>0<26?32|A:A)-((A=u[0|t])-65>>>0<26?32|A:A)|0}function ci(A,t,r){var s=0,o=0;if(s=e[r+72>>2],e[r+72>>2]=s-1|s,(0|(s=e[r+4>>2]))==(0|(o=e[r+8>>2]))?s=t:(LA(A,s,s=t>>>0>(s=o-s|0)>>>0?s:t),e[r+4>>2]=s+e[r+4>>2],A=A+s|0,s=t-s|0),s)for(;;){if(fn(r)||!(o=0|At[e[r+32>>2]](r,A,s)))return t-s|0;if(A=A+o|0,!(s=s-o|0))break}return t}function ka(A){for(var t=0,r=0,s=0,o=0;A=(t=A)+1|0,(0|(r=d[0|t]))==32|r-9>>>0<5;);e:{A:{r:switch((r=d[0|t])-43|0){case 0:break A;case 2:break r;default:break e}o=1}r=d[0|A],t=A}if(r-48>>>0<10)for(;s=48+(O(s,10)-d[0|t]|0)|0,A=d[t+1|0],t=t+1|0,A-48>>>0<10;);return o?s:0-s|0}function cn(A,t){var r,s,o,l=0;return Y=r=Y-32|0,e[t>>2]=0,e[t+4>>2]=0,e[(l=s=t+24|0)>>2]=0,e[l+4>>2]=0,e[(l=o=t+16|0)>>2]=0,e[l+4>>2]=0,e[(l=t+8|0)>>2]=0,e[l+4>>2]=0,e[r+28>>2]=t+28,e[r+24>>2]=s,e[r+20>>2]=t+20,e[r+16>>2]=o,e[r+12>>2]=t+12,e[r+8>>2]=l,e[r+4>>2]=t+4,e[r>>2]=t,A=RA(A,84553,r),Y=r+32|0,A}function Ha(A){var t=0,r=0,s=0;if((t=u[0|A])&&((r=u[A+1|0])?(r=t|r<<8,(t=u[A+2|0])&&(r|=t<<16,(A=u[A+3|0])&&(r|=A<<24))):r=t),(0|(t=e[36115]))>0)for(A=0;;){if(!(!(s=e[144464+(A<<2)>>2])|e[s>>2]!=(0|r)))return u[s+10|0];if((0|t)==(0|(A=A+1|0)))break}return 0}function Da(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0;Y=o=Y-240|0,e[o>>2]=A,f=1;e:if(!((0|r)<2))for(l=A;;){if((0|nn(A,c=(l=l-4|0)-e[((m=r-2|0)<<2)+s>>2]|0,t))>=0&&(0|nn(A,l,t))>=0)break e;if(I=c,l=(c=(0|nn(c,l,t))>=0)?I:l,e[(f<<2)+o>>2]=l,f=f+1|0,!((0|(r=c?r-1|0:m))>1))break}ui(o,f),Y=o+240|0}function dA(A,t,r){var s,o,l,c=0;return Y=o=Y-16|0,e[o+12>>2]=r,Y=s=Y-160|0,LA(l=s+8|0,124528,144),e[s+52>>2]=A,e[s+28>>2]=A,c=(c=-2-A|0)>>>0>2147483647?2147483647:c,e[s+56>>2]=c,A=A+c|0,e[s+36>>2]=A,e[s+24>>2]=A,A=Vi(l,t,r),c&&(t=e[s+28>>2],d[t-((0|t)==e[s+24>>2])|0]=0),Y=s+160|0,Y=o+16|0,A}function ui(A,t){var r,s=0,o=0,l=0,c=0,f=0;if(s=4,Y=r=Y-256|0,(0|t)>=2)for(e[(f=(t<<2)+A|0)>>2]=r;;){for(l=s>>>0>=256?256:s,LA(e[f>>2],e[A>>2],l),o=0;c=(o<<2)+A|0,o=o+1|0,LA(e[c>>2],e[(o<<2)+A>>2],l),e[c>>2]=e[c>>2]+l,(0|t)!=(0|o););if(!(s=s-l|0))break}Y=r+256|0}function GA(A,t,r){var s,o=0;return Y=s=Y-96|0,e[s+88>>2]=0,e[s+92>>2]=1073741824,e[s+84>>2]=t,t=ur(A,s+84|0,r,s+88|0,2,0),536870912&(o=e[s+88>>2])?(t=e[47202],e[47202]=0,d[s+2|0]=32,w[s>>1]=8192,Vt(o=3|s,e[s+84>>2],77),A=Ne(A,o,0,0),PA(r,189088),e[47202]=t):A=t?o:0,Y=s+96|0,A}function un(A,t,r){var s=0,o=0,l=0;o=Ka(A),s=e[t>>2];e:{A:if((0|o)>=0){if(s){if(!nr(A,r))break A;(l=e[s+688>>2])&&ue(l),ue(s),e[t>>2]=0}e[t>>2]=DA(A),A=PA(r,A),FA(r=e[t>>2],r+228|0,0)&&(is(e[e[32972]+60>>2]),d[0|A]=0,o=-1),s=e[t>>2],e[s+292>>2]=o}else if(!s)break e;d[s+268|0]=0}return o}function dn(A){var t=0,r=0;return(0|(t=e[A+76>>2]))>=0&(!t|e[56823]!=(-1073741825&t))?(r=e[(t=A+76|0)>>2],e[t>>2]=r||1073741823,(0|(r=e[A+4>>2]))==e[A+8>>2]?A=Nt(A):(e[A+4>>2]=r+1,A=u[0|r]),e[t>>2]=0,A):(0|(t=e[A+4>>2]))!=e[A+8>>2]?(e[A+4>>2]=t+1,u[0|t]):Nt(A)}function Xr(A,t,r){var s=0,o=0;e:{A:{if(r>>>0>=4){if(3&(A|t))break A;for(;;){if(e[A>>2]!=e[t>>2])break A;if(t=t+4|0,A=A+4|0,!((r=r-4|0)>>>0>3))break}}if(!r)break e}for(;;){if((0|(s=u[0|A]))==(0|(o=u[0|t]))){if(t=t+1|0,A=A+1|0,r=r-1|0)continue;break e}break}return s-o|0}return 0}function ns(A,t){var r,s=0,o=0,l=0;Y=r=Y-16|0,t?(Mt(r,o=((s=t>>31)^t)-s|0,0,0,0,(s=we(o))+81|0),o=0+e[r+8>>2]|0,s=(65536^e[r+12>>2])+(16414-s<<16)|0,l=-2147483648&t|(s=o>>>0<l>>>0?s+1|0:s),s=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=s,e[A+8>>2]=o,e[A+12>>2]=l,Y=r+16|0}function Ua(A){var t,r=0,s=0,o=0;if((0|(r=Pn(A,61)))==(0|A))return 0;e:if(!u[(t=r-A|0)+A|0]&&(r=e[56800])&&(s=e[r>>2])){for(;;){if(et(A,s,t)||(s=e[r>>
vendor: 13,827 bytes, line 2896
28962]+t|0,u[0|s]!=61)){if(s=e[r+4>>2],r=r+4|0,s)continue;break e}break}o=s+1|0}return o}function Ka(A){var t=0,r=0;e:if(!((0|(r=e[34461]))<=0)){for(;;){if(!nr(A,O(t,44)+137856|0)){e[34457]=t;break e}if((0|r)==(0|(t=t+1|0)))break}return-1}return(A=(0|t)==(0|r))?-1:((0|(A=A?-1:t))!=e[36114]&&(e[36115]=0,St(A),e[36114]=A,e[36115]=e[36115]+1),t)}function Ma(A,t,r,s){var o=0,l=0;e:if((32|u[0|t])!=32){if(o=((0|s)>2)<<1,l=Jt(A,t,r,o=(0|s)>1?4|o:o),u[0|r]!=21)for(o|=1,t=t+l|0,l=1;;){if((32|u[0|t])==32)break e;if(t=Jt(A,t,r,o)+t|0,l=l+1|0,u[0|r]==21)break}return PA(189088,r),0}return Ht(A,r,s,l),t}function ar(A,t){var r,s=0,o=0,l=0;if(A>>>0<=127)return d[0|t]=A,1;if(A>>>0>=1114112)return d[0|t]=32,1;for(s=O(r=A>>>0<2048?1:A>>>0<65536?2:3,6),d[0|t]=u[r+93842|0]|A>>>s;s=s-6|0,d[(o=o+1|0)+t|0]=A>>>s&63|128,(0|(l=l+1|0))!=(0|r););return r+1|0}function Xa(A){var t=0,r=0;e:{if((0|(t=e[A+12>>2]))>=e[A+16>>2]){if(t=0,(0|(r=0|Re(e[A+8>>2],A+24|0,2048)))<=0){if(!r|(0|r)==-44)break e;return e[56798]=0-r,0}e[A+16>>2]=r}r=t,t=A+t|0,e[A+12>>2]=r+y[t+40>>1],r=e[t+36>>2],e[A>>2]=e[t+32>>2],e[A+4>>2]=r,t=t+24|0}return t}function On(A,t){var r,s=0;if(s=e[A+632>>2])return!!(0|Tt(s,t));e:{A:{if((0|(r=e[A+600>>2]))>0){if(s=0,(t=t-r|0)-1>>>0<255)break A;break e}if((s=t-192|0)>>>0<=413)return 128&u[344+(u[s+94240|0]+A|0)|0];if(s=0,t>>>0>255)break e}s=128&u[344+(A+t|0)|0]}return s}function Za(A,t,r){var s,o,l;return l=(s=A*A)*(s*s)*(158969099521155e-24*s-25050760253406863e-24)+(s*(27557313707070068e-22*s-.0001984126982985795)+.00833333333332249),o=s*A,r?A-(s*(.5*t-l*o)-t+.16666666666666632*o):o*(s*l-.16666666666666632)+A}function Ks(A,t){var r,s=0,o=0,l=0;Y=r=Y-16|0,t?(Mt(r,s=t,0,0,0,(t=we(t))+81|0),s=0+e[r+8>>2]|0,t=(65536^e[r+12>>2])+(16414-t<<16)|0,l=o>>>0>s>>>0?t+1|0:t,o=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=o,e[A+8>>2]=s,e[A+12>>2]=l,Y=r+16|0}function Xs(A){var t,r=0;Y=t=Y-16|0,d[t+15|0]=10;e:{if(!(r=e[A+16>>2])){if(Ta(A))break e;r=e[A+16>>2]}(0|r)==(0|(r=e[A+20>>2]))|e[A+80>>2]==10?At[e[A+36>>2]](A,t+15|0,1):(e[A+20>>2]=r+1,d[0|r]=10)}Y=t+16|0}function fn(A){var t,r=0;return r=e[A+72>>2],e[A+72>>2]=r-1|r,e[A+20>>2]!=e[A+28>>2]&&At[e[A+36>>2]](A,0,0),e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,4&(r=e[A>>2])?(e[A>>2]=32|r,-1):(t=e[A+44>>2]+e[A+48>>2]|0,e[A+8>>2]=t,e[A+4>>2]=t,r<<27>>31)}function Ja(A){var t=0;e:{A:{r:{a:{if((0|(A=aa(A)))<=268437502){if(!A)break e;if((0|A)==268436479)break A;if((0|A)!=268437247)break a;return 2}if((0|A)==268437503|(0|A)==268437759)break r;if((0|A)==268439295)break e}return-1}return 2}t=1}return t}function EA(A){var t=0,r=0,s=0;e:{if(3&(t=A))for(;;){if(!u[0|t])break e;if(!(3&(t=t+1|0)))break}for(;r=t,t=t+4|0,!(~(s=e[r>>2])&s-16843009&-2139062144););for(;r=(t=r)+1|0,u[0|t];);}return t-A|0}function Ps(A,t,r){var s,o=0,l=0,c=0;e[A+112>>2]=t,e[A+116>>2]=r,s=e[A+4>>2],o=e[A+44>>2]-s|0,e[A+120>>2]=o,e[A+124>>2]=o>>31,o=e[A+8>>2],t|r&&((0|r)>=(0|(c=(l=o-s|0)>>31))&t>>>0>=l>>>0|(0|r)>(0|c)||(o=t+s|0)),e[A+104>>2]=o}function _n(A,t){var r,s,o=0;if(F(+A),r=0|B(1),s=0|B(0),(0|(o=r>>>20&2047))!=2047){if(!o)return A==0?o=0:(A=_n(18446744073709552e3*A,t),o=e[t>>2]+-64|0),e[t>>2]=o,A;e[t>>2]=o-1022,v(0,0|s),v(1,-2146435073&r|1071644672),A=+S()}return A}function zn(A,t,r){return e[A+20>>2]!=e[A+28>>2]&&(At[e[A+36>>2]](A,0,0),!e[A+20>>2])||(e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,At[e[A+40>>2]](A,t,r,0),(0|ce)<0)?-1:(e[A+4>>2]=0,e[A+8>>2]=0,e[A>>2]=-17&e[A>>2],0)}function qa(A,t){var r,s,o=0;return(s=1-(o=.5*(r=A*A)))+(1-s-o+(r*(r*(r*(2480158728947673e-20*r-.001388888888887411)+.0416666666666666)+(o=r*r)*o*(r*(-11359647557788195e-27*r+2087572321298175e-24)-27557314351390663e-23))-A*t))}function Ea(A,t,r){var s=0,o=0;if(t)for(;r=r-1|0,o=A,A=Ki(A,t,10),s=ce,d[0|r]=o-at(A,s,10,0)|48,o=t>>>0>9,t=s,o;);if(A)for(;t=(A>>>0)/10|0,d[0|(r=r-1|0)]=A-O(t,10)|48,s=A>>>0>9,A=t,s;);return r}function Nn(A,t){var r=0,s=0,o=0;e:if(A){for(;o=d[t+r|0],(s=e[(r<<2)+A>>2])&&(r=r+1|0,(0|o)==(0|s)););A:switch(s-34|0){case 0:case 5:break A;default:break e}if(!o)return 0}return 1}function $a(A,t,r){var s,o=0;return Y=s=Y-16|0,!(64&t)&&(o=0,4259840&~t)||(e[s+12>>2]=r+4,o=e[r>>2]),e[s>>2]=o,e[s+4>>2]=0,(A=0|Pe(-100,0|A,32768|t,0|s))>>>0>=4294963201&&(e[56798]=0-A,A=-1),Y=s+16|0,A}function et(A,t,r){var s=0,o=0,l=0;if(!r)return 0;e:if(s=u[0|A]){for(;;){if((o=u[0|t])&&!(!(r=r-1|0)|(0|s)!=(0|o))){if(t=t+1|0,s=u[A+1|0],A=A+1|0,s)continue;break e}break}l=s}return(255&l)-u[0|t]|0}function en(A,t){var r,s=0;Y=s=Y-128|0,s=Xe(s,0,128),d[s+98|0]=9,d[s+66|0]=9,d[s+34|0]=A,w[s+68>>1]=1,r=e[36125],e[s+104>>2]=r,e[s+72>>2]=r,e[s+40>>2]=e[144464+(A<<2)>>2],d[s+2|0]=9,e[s+8>>2]=r,ft(0,0,s+32|0,t,0),Y=s+128|0}function Ln(A){var t=0,r=0,s=0;if(d[e[A>>2]]-48>>>0>=10)return 0;for(;s=e[A>>2],r=-1,t>>>0<=214748364&&(r=(0|(r=d[0|s]-48|0))>(2147483647^(t=O(t,10)))?-1:r+t|0),e[A>>2]=s+1,t=r,d[s+1|0]-48>>>0<10;);return t}function Rn(A,t){var r=0;if(!(!A|e[A>>2]-48>>>0>=10)){if(e[A>>2]-48>>>0<10)for(;r=(e[A>>2]+O(r,10)|0)-48|0,e[(A=A+4|0)>>2]-48>>>0<10;);(0|t)==1&&(r=(0|Gs(e[A>>2]))==115?O(r,1e3):r)}return r}function wr(A){var t=0;t=1;e:{A:switch(0|zr(A)){case 30:if(t=0,(0|A)==160|(0|A)==8199|(0|A)==8239)break e;return 1;case 0:if(A-9>>>0<5)return 1;if((0|A)==133)break e;break;case 28:case 29:break e;default:break A}t=0}return t}function xs(A,t,r){var s,o=0;return Y=s=Y-16|0,d[s+6|0]=0,d[s+7|0]=95,o=ar(o=t,t=s+8|0)+s|0,d[o+8|0]=32,d[o+9|0]=0,GA(A,s+7|0,r)||(d[s+7|0]=32,GA(A,t,r)||UA(A,t,r,20,0,0,0)),Y=s+16|0,d[0|r]}function An(A){var t=0,r=0;r=170;e:if(!((0|A)<170))for(;;){if((0|A)==(0|r))return y[101616+(t<<1|2)>>1];if((2147483646&(t=t+2|0))==124)break e;if(!((0|(r=y[101616+(t<<1)>>1]))<=(0|A)))break}return 0}function at(A,t,r,s){var o,l,c,f,m=0,I=0;return f=O(m=r>>>16|0,I=A>>>16|0),m=(65535&(I=((c=O(o=65535&r,l=65535&A))>>>16|0)+O(I,o)|0))+O(m,l)|0,ce=(O(t,r)+f|0)+O(A,s)+(I>>>16)+(m>>>16)|0,65535&c|m<<16}function Gs(A){var t=0,r=0,s=0,o=0;for(t=2778;;){if((0|(r=e[1040+((s=(t+o|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1048+(s<<4)>>2])||A;if(!((0|(o=(r=A>>>0>r>>>0)?s+1|0:o))<=(0|(t=r?t:s-1|0))))break}return A}function gn(A){var t=0,r=0,s=0,o=0;for(t=2778;;){if((0|(r=e[1040+((s=(t+o|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1044+(s<<4)>>2])||A;if(!((0|(o=(r=A>>>0>r>>>0)?s+1|0:o))<=(0|(t=r?t:s-1|0))))break}return A}function Ns(A){var t,r=0;return Y=t=Y-112|0,(A=0|iA(0|A,0|t))>>>0>=4294963201&&(e[56798]=0-A,A=-1),r=0-e[56798]|0,A||(r=-31,(61440&e[t+12>>2])!=16384&&(r=e[t+40>>2])),Y=t+112|0,A=r}function tn(A,t,r){var s;if(!(s=e[A+16>>2]))return e[A+36>>2]=1,e[A+24>>2]=r,void(e[A+16>>2]=t);e:{if((0|t)==(0|s)){if(e[A+24>>2]!=2)break e;return void(e[A+24>>2]=r)}d[A+54|0]=1,e[A+24>>2]=2,e[A+36>>2]=e[A+36>>2]+1}}function Lr(A,t,r,s,o){var l;if(Y=l=Y-256|0,!(73728&o|(0|r)<=(0|s))){if(Xe(l,255&t,(r=(s=r-s|0)>>>0<256)?s:256),!r)for(;Yr(A,l,256),(s=s-256|0)>>>0>255;);Yr(A,l,s)}Y=l+256|0}function Zs(A,t,r){var s=0;e:{if(A){if(s=e[A>>2]){ue(e[s+4>>2]),s=e[A>>2];break e}if(s=ZA(16),e[A>>2]=s,s)break e;t=48}return t}return e[s>>2]=0,e[s+4>>2]=pi(r),A=e[A>>2],e[A+8>>2]=0,e[A+12>>2]=0,t}function Or(A){var t=0,r=0;Es(A),At[e[A+12>>2]](A),1&d[0|A]||((t=e[A+52>>2])&&(e[t+56>>2]=e[A+56>>2]),(r=e[A+56>>2])&&(e[r+52>>2]=t),e[56816]==(0|A)&&(e[56816]=r),ue(e[A+96>>2]),ue(A))}function Bs(A){var t=0,r=0;t=1;e:{A:{r:{a:switch((r=zr(A))-9|0){case 1:break e;case 6:case 18:break r;case 0:break a;default:break A}return(0|Gs(A))!=(0|A)}return nA(A,r)>>>15&1}t=0}return t}function rn(A){var t,r,s,o=0,l=0;if(s=EA(A)+1|0,o=e[33282],(0|(r=(t=e[33287])+s|0))>=e[33286]){if(!(o=OA(o,l=r+1e3|0)))return-1;e[33286]=l,e[33282]=o}return LA(o+t|0,A,s),e[33287]=r,t}function Ta(A){var t=0;return t=e[A+72>>2],e[A+72>>2]=t-1|t,8&(t=e[A>>2])?(e[A>>2]=32|t,-1):(e[A+4>>2]=0,e[A+8>>2]=0,t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,e[A+16>>2]=t+e[A+48>>2],0)}function jn(A,t,r,s){e:if(A){A:switch(t+2|0){case 0:return void(d[0|A]=r);case 1:return void(w[A>>1]=r);case 2:case 3:return void(e[A>>2]=r);case 5:break A;default:break e}e[A>>2]=r,e[A+4>>2]=s}}function pn(A,t,r,s,o,l,c,f,m){var I;Y=I=Y-16|0,H(I,t,r,s,o,l,c,f,-2147483648^m),s=e[I>>2],r=e[I+4>>2],t=e[I+12>>2],e[A+8>>2]=e[I+8>>2],e[A+12>>2]=t,e[A>>2]=s,e[A+4>>2]=r,Y=I+16|0}function nr(A,t){var r=0,s=0;e:if(!(!(r=u[0|A])|(0|r)!=(0|(s=u[0|t]))))for(;;){if(s=u[t+1|0],!(r=u[A+1|0]))break e;if(t=t+1|0,A=A+1|0,(0|r)!=(0|s))break}return r-s|0}function Pa(A,t){var r=0,s=0,o=0;if(!(r=e[A>>2]))return 84399;if(e[A+4>>2]!=(0|t))for(;;){if(!(r=e[(s=A+8|0)>>2]))return 84399;if(o=A,A=s,e[o+12>>2]==(0|t))break}return r}function Wn(A,t,r){var s=0,o=0,l=0;e:if(r){for(;;){if(!(!(s=e[t>>2])|!(o=e[A>>2])|(0|s)!=(0|o))){if(t=t+4|0,A=A+4|0,r=r-1|0)continue;break e}break}l=o-s|0}return l}function Zr(A){var t,r=0,s=0;if((0|(t=e[36115]))>0)for(;;){if(!(!(s=e[144464+(r<<2)>>2])|e[s>>2]!=(0|A)))return u[s+10|0];if((0|t)==(0|(r=r+1|0)))break}return 0}function G(A){var t,r;return(A=(t=e[33175])+(r=A+7&-8)|0)>>>0<=t>>>0&&r||A>>>0>K.byteLength/65536<<16>>>0&&!(0|hA(0|A))?(e[56798]=48,-1):(e[33175]=A,t)}function j(A){var t=0;e:if(!((t=zr(A))>>>0>27)){if(!(1<<t&134259072)){if((0|t)==6)return 1;if((0|t)!=9)break e;return(0|gn(A))!=(0|A)}return nA(A,t)>>>14&1}return 0}function q(A,t){var r=0;return d[0|A]=t>>>24,d[0|(r=(t>>>0>16777215)+A|0)]=t>>>16,d[0|(r=r+!!(16711680&t)|0)]=t>>>8,d[0|(r=r+!!(65280&t)|0)]=t,d[r+!!(255&t)|0]=0,A}function ne(A,t){e:if((0|(A=br(A,t)))<=268437502){if(!A|(0|A)==268436479|(0|A)!=268437247)break e;return}}function fe(A){var t=0;return t=e[A>>2]-1|0,(t=d[121600+(O(0-t&t,124511785)>>>27|0)|0])||(A=e[A+4>>2],t=(A=d[121600+(O(0-A&A,124511785)>>>27|0)|0])?A+32|0:0),t}function Se(A){var t=0,r=0,s=0;e:{if(!((t=zr(A))>>>0>27)){if(r=1,116672&(s=1<<t))break e;if(134227968&s)return nA(A,t)>>>10&1}r=0}return r}function Ke(A){var t=0,r=0,s=0;e:{if(!((t=zr(A))>>>0>27)){if(r=1,34752&(s=1<<t))break e;if(134227968&s)return nA(A,t)>>>10&1}r=0}return r}function fA(){var A,t=0;(A=e[56797])&&((t=e[A+8>>2])&&At[e[e[t>>2]+12>>2]](t),(t=e[A+4>>2])&&At[e[e[t>>2]+16>>2]](t),ue(A)),e[56797]=0,e[56797]=Bt()}function yA(A,t){var r=0;return A&&(r=at(A,0,t,0),(A|t)>>>0<65536||(r=ce?-1:r)),!(A=ZA(r))|!(3&u[A-4|0])||Xe(A,0,r),A}function VA(A,t){var r,s;s=e[130128+(t-O(r=(0|t)/100|0,100)<<2)>>2],e[A+100>>2]=s,e[A+96>>2]=s,t+99>>>0>=199&&(e[A+100>>2]=e[130128+(r<<2)>>2])}function ut(A){var t=0;(t=ZA(1344))&&(A=LA(t,A,1344),t=216192+(e[50758]<<4)|0,e[t>>2]=11,e[t+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}function bt(A,t){var r=0;e:if(r=e[A>>2])for(;;){if(t&&!nr(t,r))break e;if(!(r=e[(A=A+8|0)>>2]))break}return e[A+4>>2]}function Nt(A){var t,r=0;return Y=t=Y-16|0,r=-1,fn(A)||(0|At[e[A+32>>2]](A,t+15|0,1))==1&&(r=u[t+15|0]),Y=t+16|0,r}function Tt(A,t){var r=0,s=0;if(t){for(;s=A,(r=e[A>>2])&&(A=s+4|0,(0|t)!=(0|r)););return r?s:0}return(ho(A)<<2)+A|0}function la(A,t){var r=0,s=0;if(r=y[A>>1])for(;;){if(s=s+1|0,(0|t)==(0|r))return s;if(!(r=y[(s<<1)+A>>1]))break}return 0}function mn(A,t){var r=0,s=0;t>>>0<=31?(s=e[A>>2],r=A+4|0):(t=t-32|0,r=A),r=e[r>>2],e[A>>2]=s<<t,e[A+4>>2]=r<<t|s>>>32-t}function Vn(A,t){var r=0,s=0;r=e[A+4>>2],t>>>0<=31?s=e[A>>2]:(t=t-32|0,s=r,r=0),e[A+4>>2]=r>>>t,e[A>>2]=r<<32-t|s>>>t}function ys(A){var t=0;A=A||1;e:{for(;;){if(t=ZA(A))break e;if(!(t=e[57276]))break;At[0|t]()}uA(),R()}return t}function di(A){return A>>>0<=131071?u[117424+(A>>>3&31|u[117424+(A>>>8|0)|0]<<5)|0]>>>(7&A)&1:A>>>0<196606}function zi(A,t,r,s,o,l,c,f,m){e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=s,e[A+12>>2]=65535&o|(m>>>16&32768|o>>>16&32767)<<16}function ca(A,t,r){return r?(0|A)==(0|t)?1:!nr(e[A+4>>2],e[t+4>>2]):e[A+4>>2]==e[t+4>>2]}function mo(A){var t=0;(0|(t=0|Ae(-100,0|A,0)))==-31&&(t=0|ye(0|A)),t>>>0>=4294963201&&(e[56798]=0-t)}function fi(){var A;A=ZA(84)+80|0,e[A>>2]=125420,e[A>>2]=125380,e[A>>2]=125400,aA(0|A,125512,9),R()}function Ni(A){var t,r;return t=dn(A),r=dn(A),dn(A)<<16&16711680|r<<8&65280|255&t|dn(A)<<24}function hn(A){var t=0;return A?(t=1,A-9472>>>0<160|A-65529>>>0<7||(t=wr(A)),t):0}function Li(A,t){var r;return r=t>>31,A=(e[A+76>>2],zn(A,t,r))}function ho(A){var t=0,r=0;for(r=A;r=(t=r)+4|0,e[t>>2];);return t-A>>2}function Co(A,t){return d[0|A]=t,d[A+4|0]=0,d[A+3|0]=t>>>24,d[A+2|0]=t>>>16,d[A+1|0]=t>>>8,A}function As(A,t){var r=0;return(-1>>>(r=31&t)&A)<<r|((r=A)&-1<<(A=0-t&31))>>>A}function Yn(A,t){var r=0;return(0|A)==73&&(r=305,u[t+173|0])||(r=Gs(A)),r}function is(A){e[36114]!=(0|A)&&(e[36115]=0,St(A),e[36114]=A,e[36115]=e[36115]+1)}function gi(A){return A?e[34460]+A|0:(Ri(85328,20,e[30450]),e[32320])}function pi(A){var t,r;return(r=ZA(t=EA(A)+1|0))?LA(r,A,t):0}function bo(){var A;e[33287]=0,(A=e[33282])&&(ue(A),e[33286]=0,e[33282]=0)}function rr(A,t,r){var s;Y=s=Y-16|0,e[s+12>>2]=r,Vi(A,t,r),Y=s+16|0}function Ri(A,t,r){A=(e[r+76>>2],oi(A,t,r))}function sn(A,t){return t?A<<24|(65280&A)<<8|A>>>8&65280|A>>>24:A}function an(A){return A=A-8212>>>0>=12?la(93856,A):1}function Io(A){var t=0;A&&((t=e[A+688>>2])&&ue(t),ue(A))}function wo(A){return A=(0|A)<=127?Ls(87712,A):0}function mi(A){return!(A=u[0|A]?1:Xr(A,A+1|0,3))}function ko(A){(A=(0|(A=0|De(0|A)))!=27?A:0)&&(e[56798]=A)}function nn(A,t,r){return A|=0,t|=0,0|At[0|(r|=0)](A,t)}function Ls(A,t){return A=Pn(A,t),u[0|A]==(255&t)?A:0}function ji(A,t){return Ca(A,t,2147483647),ce=He,cA}function hi(A){return A?31-we(A-1^A)|0:32}function Yr(A,t,r){32&u[0|A]||oi(t,r,A)}function Vt(A,t,r){d[(Ms(A,t,r)+r|0)-1|0]=0}function Hn(A){return un(A,188776,189328)}function Wi(A,t){t|=0,e[(A|=0)+8>>2]=t}function Vi(A,t,r){return gr(A,t,r,0,0)}function Mo(A){return e[(A|=0)+12>>2]}function Yi(A){return e[(A|=0)+16>>2]}function Eo(A){return e[(A|=0)+20>>2]}function Hi(A){return e[(A|=0)+8>>2]}function Ui(A){return e[(A|=0)+4>>2]}function vo(A){return e[(A|=0)>>2]}function Ki(A,t,r){return Ca(A,t,r)}function Un(A){(A|=0)&&ue(A)}function ts(A,t){PA(EA(A)+A|0,t)}function Xi(A){return 0|(A|=0)}function Zi(A){return 0}function Cn(A){ue(A|=0)}function xo(A){}C(g=u
vendor: 59,320 bytes, line 2896
2896,1024,"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"),C(
2896g,45536,"HhYWFhgWFhYXExYaFhIWFg4ODg4ODg4ODg4WFhoaGhYWCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoXFhMZERkGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhcaExo="),C(g
vendor: 47,685 bytes, line 2896
2896,45664,"HhYYGBgYGxYZGwgVGgEbGRsaEBAZBhYWGRAIFBAQEBYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgYGCgoGCgYKCgYKCgoGBgoKCgoGCgoGCgoKBgYGCgoGCgoGCgYKBgoKBgoGBgoGCgoGCgoKBgoGCgoGBggKBgYGCAgICAoJBgoJBgoJBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgoGBgoJBgoGCgoKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYKCgYKCgYGCgYKCgoKBgoGCgYKBgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYIBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBwcHBwcHBwcHBwcHBwcHBwcHGRkZGQcHBwcHBwcHBwcHBxkZGRkZGRkZGRkZGRkZBwcHBwcZGRkZGRkZBxkHGRkZGRkZGRkZGRkZGRkZGRkNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NCgYKBgcZCgYCAgcGBgYWCgICAgIZGQoWCgoKAgoCCgoGCgoKCgoKCgoKCgoKCgoKCgoCCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKBgYKCgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGCgYaCgYKCgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBhsNDQ0NDQwMCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgoGCgYKBgoGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgICBxYWFhYWFgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGFhICAhsbGAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0SDRYNDRYNDRYNAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICBYWAgICAgICAgICAgIBAQEBAQEaGhoWFhgWFhsbDQ0NDQ0NDQ0NDQ0WAQIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwgICAgICAgICAgNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ODg4ODg4ODg4OFhYWFggIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYIDQ0NDQ0NDQEbDQ0NDQ0NBwcNDRsNDQ0NCAgODg4ODg4ODg4OCAgIGxsIFhYWFhYWFhYWFhYWFhYCAQgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NCAICAgICAgICAgICAgICDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQcHGxYWFgcCAg0YGAgICAgICAgICAgICAgICAgICAgICAgNDQ0NBw0NDQ0NDQ0NDQcNDQ0HDQ0NDQ0CAhYWFhYWFhYWFhYWFhYWFgIICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NAgIWAggICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgCAgICAgICAgICAgICAgICAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0BDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNCAsLCw0NDQ0NDQ0NCwsLCw0LCwgNDQ0NDQ0NCAgICAgICAgICA0NFhYODg4ODg4ODg4OFgcICAgICAgICAgICAgICAgNCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAICAggICAgCAg0ICwsLDQ0NDQICCwsCAgsLDQgCAgICAgICAgsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4ICBgYEBAQEBAQGxgIFg0CAg0NCwIICAgICAgCAgICCAgCAggICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAIICAIICAIICAICDQILCwsNDQICAgINDQICDQ0NAgICDQICAgICAgIICAgIAggCAgICAgICDg4ODg4ODg4ODg0NCAgIDRYCAgICAgICAgICDQ0LAggICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAgINCAsLCw0NDQ0NAg0NCwILCw0CAggCAgICAgICAgICAgICAgIICA0NAgIODg4ODg4ODg4OFhgCAgICAgICCA0NDQ0NDQINCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAgCCAgICAgCAg0ICw0LDQ0NDQICCwsCAgsLDQICAgICAgICDQsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4bCBAQEBAQEAICAgICAgICAgINCAIICAgICAgCAgIICAgCCAgICAICAggIAggCCAgCAgIICAICAggICAICAggICAgICAgICAgICAICAgILCw0LCwICAgsLCwILCwsNAgIIAgICAgICCwICAgICAgICAgICAgICDg4ODg4ODg4ODhAQEBsbGxsbGxgbAgICAgINCwsLDQgICAgICAgIAggICAIICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgIAgICCA0NDQsLCwsCDQ0NAg0NDQ0CAgICAgICDQ0CCAgIAgICAgIICA0NAgIODg4ODg4ODg4OAgICAgICAgIQEBAQEBAQGwgNCwsWCAgICAgICAgCCAgIAggICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgICAgCCAgICAgCAg0ICw0LCwsLCwINCwsCCwsNDQICAgICAgILCwICAgICAgIIAggIDQ0CAg4ODg4ODg4ODg4CCAgCAgICAgICAgICAgICDQ0LCwIICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQgLCwsNDQ0NAgsLCwILCwsNCBsCAgICCAgICxAQEBAQEBAICAgNDQICDg4ODg4ODg4ODhAQEBAQEBAQEBsICAgICAgCAgsLAggICAgICAgICAgICAgICAgICAICAggICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgCCAICCAgICAgICAICAg0CAgICCwsLDQ0NAg0CCwsLCwsLCwsCAgICAgIODg4ODg4ODg4OAgILCxYCAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAgNDQ0NDQ0NAgICAhgICAgICAgHDQ0NDQ0NDQ0WDg4ODg4ODg4ODhYWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggIAggCAggIAggCAggCAgICAgIICAgIAggICAgICAgCCAgIAggCCAICCAgCCAgICA0ICA0NDQ0NDQINDQgCAggICAgIAgcCDQ0NDQ0NAgIODg4ODg4ODg4OAgIICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIIGxsbFhYWFhYWFhYWFhYWFhYWGxYbGxsNDRsbGxsbGw4ODg4ODg4ODg4QEBAQEBAQEBAQGw0bDRsNFxMXEwsLCAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAg0NDQ0NDQ0NDQ0NDQ0NCw0NDQ0NFg0NCAgICAgNDQ0NDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0CGxsbGxsbGxsNGxsbGxsbAhsbFhYWFhYbGxsbFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLDQ0NDQsNDQ0NDQ0LDQ0LCw0NCA4ODg4ODg4ODg4WFhYWFhYICAgICAgLCw0NCAgICA0NDQgLCwsICAsLCwsLCwsICAgNDQ0NCAgICAgICAgICAgICA0LCw0NCwsLCwsLDQgLDg4ODg4ODg4ODgsLCw0bGwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgoCAgICAgoCAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYWBwYGBggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggICAgCAggICAgICAgCCAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAIIAggICAgCAggICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NFhYWFhYWFhYWEBAQEBAQEBAQEBAQEBAQEBAQEBACAgIICAgICAgICAgICAgICAgIGxsbGxsbGxsbGwICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIGBgYGBgYCAhIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAgICAgICAgICAgICBcTAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYWDw8PCAgICAgICAgCAgICAgICCAgICAgICAgICAgICAIICAgIDQ0NAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgNDQ0WFgICAgICAgICAggICAgICAgICAgICAgICAgICA0NAgICAgICAgICAgICCAgICAgICAgICAgICAIICAgCDQ0CAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LDQ0NDQ0NDQsLCwsLCwsLDQsLDQ0NDQ0NDQ0NDQ0WFhYHFhYWGAgNAgIODg4ODg4ODg4OAgICAgICEBAQEBAQEBAQEAICAgICAhYWFhYWFhIWFhYWDQ0NAQIODg4ODg4ODg4OAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICCAgICAgNDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAg0NDQsLCwsNDQsLCwICAgILCw0LCwsLCwsNDQ0CAgICGwICAhYWDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICDg4ODg4ODg4ODhACAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCAgICAgICAgICAgICAgICAgICAgICAgNDQsLDQICFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsNCw0NDQ0NDQ0CDQsNCwsNDQ0NDQ0NDQsLCwsLCw0NDQ0NDQ0NDQ0CAg0ODg4ODg4ODg4OAgICAgICDg4ODg4ODg4ODgICAgICAhYWFhYWFhYHFhYWFhYWAgINDQ0NDQ0NDQ0NDQ0NDQwCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0NDQ0NCw0LCwsLCw0LCwgICAgICAgCAgICDg4ODg4ODg4ODhYWFhYWFhYbGxsbGxsbGxsbDQ0NDQ0NDQ0NGxsbGxsbGxsbAgICDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0LCw0NCw0NDQgIDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNDQsLCw0LDQ0NCwsCAgICAgICAhYWFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwsLCw0NDQ0NDQ0NCwsNDQICAhYWFhYWDg4ODg4ODg4ODgICAggICA4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFgYGBgYGBgYGBgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIKCgoWFhYWFhYWFgICAgICAgICDQ0NFg0NDQ0NDQ0NDQ0NDQ0LDQ0NDQ0NDQgICAgNCAgICAsLDQgICw0NAgICAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcGBgYGBgYGBgYGBgYGBwYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQINDQ0NDQoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGCgoKCgoKCgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGAgoCCgIKAgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYCAgYGBgYGBgYGCQkJCQkJCQkGBgYGBgYGBgkJCQkJCQkJBgYGBgYGBgYJCQkJCQkJCQYGBgYGAgYGCgoKCgkZBhkZGQYGBgIGBgoKCgoJGRkZBgYGBgICBgYKCgoKAhkZGQYGBgYGBgYGCgoKCgoZGRkCAgYGBgIGBgoKCgoJGRkCHh4eHh4eHh4eHh4BAQEBARISEhISEhYWFRQXFRUUFxUWFhYWFhYWFhwdAQEBAQEeFhYWFhYWFhYWFRQWFhYWEREWFhYaFxMWFhYWFhYWFhYWFhoWERYWFhYWFhYWFhYeAQEBAQECAQEBAQEBAQEBARAHAgIQEBAQEBAaGhoXEwcQEBAQEBAQEBAQGhoaFxMCBwcHBwcHBwcHBwcHBwICAhgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAgICAgICAgICAgICAgICAg0NDQ0NDQ0NDQ0NDQ0MDAwMDQwMDA0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAhsbChsbGxsKGxsGCgoKBgYKCgoGGwobGxoKCgoKChsbGxsbGwobChsKGwoKCgobBgoKCgoGCAgICAYbGwYGCgoaGhoaGgoGBgYGGxobGwYbEBAQEBAQEBAQEBAQEBAQEA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PCgYPDw8PEBsbAgICAhoaGhoaGxsbGxsaGhsbGxsaGxsaGxsaGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhobGxobGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsXExcTGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhsbGxsbGxsXExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbFxMXExcTFxMXExcTFxMQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaFxMaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExcTFxMXExoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoXExcTFxMXExcTFxMXExcTFxMXExcTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgIKBgoKCgYGCgYKBgoGCgoKCgYKBgYKBgYGBgYGBwcKCgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGGxsbGxsbCgYKBg0NDQoGAgICAgIWFhYWEBYWBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYCBgICAgICBgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICBxYCAgICAgICAgICAgICAg0ICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFRQVFBYWFhUUFhUUFhYWFhYWFhYWEhYWEhYVFBYWFRQXExcTFxMXExYWFhYWBxYWFhYWFhYWFhYSEhYWFhYSFhcWFhYWFhYWFhYWFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICHhYWFhsHCA8XExcTFxMXExcTGxsXExcTFxMXExIXExMbDw8PDw8PDw8PDQ0NDQsLEgcHBwcHGxsPDw8HCBYbGwIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0ZGQcHCBIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWBwcHCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAhsbEBAQEBsbGxsbGxsbGxsICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAggICAgICAgICAgICAgICAgbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFggICAgICAgICAgICAcWFhYICAgICAgICAgICAgICAgIDg4ODg4ODg4ODggIAgICAgICAgICAgICAgICAgICAgIKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCA0MDAwWDQ0NDQ0NDQ0NDRYHCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgcHDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8PDw8PDw8PDw0NFhYWFhYWAgICAgICAgIZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQcHBwcHBwcHBxkZCgYKBgoGCgYKBgoGCgYGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGBwYGBgYGBgYGCgYKBgoKBgoGCgYKBgoGBxkZCgYKBggKBgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoKCgoKBgoKCgoKBgoGCgYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAcHBggICAgICAgNCAgIDQgICAgNCAgICAgICAgICAgICAgICAgICAgICAgLCw0NCxsbGxsCAgICEBAQEBAQGxsYGwICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFhYWAgICAgICAgILCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLCwsLCwsLCwsLCwsLCw0NAgICAgICAgIWFg4ODg4ODg4ODg4CAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ICAgICAgWFhYIFggIDQ4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0WFggICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0LCwICAgICAgICAgICFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsLDQ0NDQsLDQsLCwsWFhYWFhYWFhYWFhYWAgcODg4ODg4ODg4OAgICAhYWCAgICAgNBwgICAgICAgICA4ODg4ODg4ODg4ICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQsLDQ0LCw0NAgICAgICAgICCAgIDQgICAgICAgIDQsCAg4ODg4ODg4ODg4CAhYWFhYICAgICAgICAgICAgICAgIBwgICAgICBsbGwgLDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0IDQ0NCAgNDQgICAgIDQ0IDQgCAgICAgICAgICAgICAgICAgICAgICAgIICAcWFggICAgICAgICAgICw0NCwsWFggHBwsNAgICAgICAgICAggICAgICAICCAgICAgIAgIICAgICAgCAgICAgICAgIICAgICAgIAggICAgICAgCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhkHBwcHBgYGBgYGAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCw0LCw0LCxYLDQICDg4ODg4ODg4ODgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBgYGBgYCAgICAgICAgICAgIGBgYGBgICAgICCA0ICAgICAgICAgIGggICAgICAgICAgICAgCCAgICAgCCAIICAIICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGRkZGRkZGRkZGRkZGRkZAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMXAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgYGwICDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYXExYCAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NFhISEREXExcTFxMXExcTFxMXExcTFhYXExYWFhYREREWFhYCFhYWFhIXExcTFxMWFhYaEhoaGgIWGBYWAgICAggICAgIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAQIWFhYYFhYWFxMWGhYSFhYODg4ODg4ODg4OFhYaGhoWFgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKFxYTGREZBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYXGhMaFxMWFxMWFggICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICCAgICAgIAgIICAgICAgCAggICAgICAICCAgIAgICGBgaGRsYGAIbGhoaGhsbAgICAgICAgICAgEBARsbAgIICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAIICAIICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICFhYWAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PEBAQEBsbGxsbGxsbGxsbGxsbGxsbEBAbGxsCGxsbGxsbGxsbGxsbAgICAhsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGw0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICDRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQEBACAgICAgICAgIICAgICAgICAgICAgICAgICAgICA8ICAgICAgICA8CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgIFg8PDw8PAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg4ODg4ODg4ODg4CAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgIAgIIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAgICCAICCAgICAgICAgICAgICAgICAgICAgICAgCFhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAgICAgbGxAQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgIQEBAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIAggIAgICAgIQEBAQEAgICAgICAgICAgICAgICAgICAgICAgQEBAQEBACAgIWCAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICEBAICBAQEBAQEBAQEBAQEBAQEBACAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIDQ0NAg0NAgICAgINDQ0NCAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg0NDQICAgINEBAQEBAQEBAQAgICAgICAhYWFhYWFhYWFgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICBsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0CAgICEBAQEBAWFhYWFhYWAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICFhYWFhYWFggICAgICAgICAgICAgICAgICAgICAgCAhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAICAgICEBAQEBAQEBAICAgICAgICAgICAgICAgICAgCAgICAgICFhYWFgICAgICAgICAgICAhAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgICAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICAgICAgIQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQ0NAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQEBAQEBAQEAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgNDQ0NDQ0NDQ0NDRAQEBAWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYCAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAODg4ODg4ODg4OAgICAgICAgICAgICAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLCw0NDQ0LCw0NFhYBFhYWFgICAgICAgICAgICAQICCAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgIODg4ODg4ODg4OAgICAgICDQ0NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0LDQ0NDQ0NDQ0CDg4ODg4ODg4ODhYWFhYICwsCAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0WFggCAgICAgICAgINDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQ0LCwgICAgWFhYWDQ0NDRYCAg4ODg4ODg4ODg4IFggWFhYCEBAQEBAQEBAQEBAQEBAQEBAQEBACAgICAgICAgICAggICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NCwsNCw0NFhYWFhYWDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAIIAggICAgCCAgICAgICAgICAgICAgIAggICAgICAgICAgWAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwsLDQ0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICAgINDQsLAggICAgICAgIAgIICAICCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAg0NCAsLDQsLCwsCAgsLAgILCwsCAggCAgICAgILAgICAgIICAgICAsLAgINDQ0NDQ0NAgICDQ0NDQ0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQ0NCw0ICAgIFhYWFhYODg4ODg4ODg4OAhYCFg0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0LDQsLCwsNDQsNDQgIFggCAgICAgICAg4ODg4ODg4ODg4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NAgILCwsLDQ0LDQ0WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFggICAgNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQsNDRYWFggCAgICAgICAgICAg4ODg4ODg4ODg4CAgICAgIWFhYWFhYWFhYWFhYWAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0LCw0NDQ0NDQsNAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgIAgINDQ0LCw0NDQ0LDQ0NDQ0CAgICDg4ODg4ODg4ODhAQFhYWGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NDQ0NDQ0NCw0NFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGDg4ODg4ODg4ODhAQEBAQEBAQEAICAgICAgICAgICAggCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCA0NDQ0NDQ0NDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NCwgNDQ0NFhYWFhYWFhYNAgICAgICAgIIDQ0NDQ0NCwsNDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIICAgIDQ0NDQ0NDQ0NDQ0NDQsNDRYWFggWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0NDQ0CDQ0NDQ0NCw0IFhYWFhYCAgICAgICAgICDg4ODg4ODg4ODhAQEBAQEBAQEBAQEBAQEBAQEBACAgIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQILDQ0NDQ0NDQsNDQsNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgIAggIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NAgICDQINDQINDQ0NDQ0NCA0CAgICAgICAg4ODg4ODg4ODg4CAgICAgIICAgICAgCCAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwINDQILCw0LDQgCAgICAgICDg4ODg4ODg4ODgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIDQ0LCxYWAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8CFhYWFhYCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCDg4ODg4ODg4ODgICAgIWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0WAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0WFhYWFhsbGxsHBwcHFhsCAgICAgICAgICDg4ODg4ODg4ODgIQEBAQEBAQAggICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgIICwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwICAgICAgICAgICAgICAgINDQ0NBwcHBwcHBwcHBwcHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAICAggICAgICAgICAICAgICAgIICAgICAgICAgIAgIbDQ0WAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCwsNDQ0bGxsLCwsLCwsBAQEBAQEBAQ0NDQ0NDQ0NGxsNDQ0NDQ0NGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbDQ0NDRsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsNDQ0bAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYCBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoCCgoCAgoCAgoKAgIKCgoKAgoKCgoKCgoKBgYGBgIGAgYGBgYGBgYCBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoCCgoKCgICCgoKCgoKCgoCCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKAgoKCgoCCgoKCgoCCgICAgoKCgoKCgoCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKGgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYaBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKBgICDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGw0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGxsbGxsNGxsbGxsbGxsbGxsbGxsNGxsWFhYWFgICAgICAgICAgICAgICAg0NDQ0NAg0NDQ0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQICDQ0NDQ0NDQINDQINDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIQEBAQEBAQEBANDQ0NDQ0NAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsQEBAYEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAggCAggCCAgICAgICAgICAIICAgIAggCCAICAgICAggCAgICCAIIAggCCAgIAggIAggCAggCCAIIAggCCAIICAIIAgIICAgIAggICAgICAgCCAgICAIICAgIAggCCAgICAgICAgICAIICAgICAgICAgICAgICAgICAICAgICCAgIAggICAgIAggICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhoaAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsCAgICAgICGxsCAgICAgICAgICAgICAhsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxkZGRkZGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgIbGxsbGxsbGxsbGxsbAgICGxsbGxsbGxsbGwICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAhsbGxsbGxsbGxsCAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAhsbGxsCAgIbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbAgICAgICGxsbAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgICAgICAgICAgICAgICAoAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIA="),C(
2896g,81428,"ggAAAAAAAAIAAAAAAAAAAgAAAAAAAAAC"),C(g,81475,"AgAAAAAAACAAAAAAAAAAIA=="),C(g,81506,"IA=="),C(g,81522,"IAAAAAAAAAAg"),C(g,81618,"IA=="),C(g,81634,"IA=="),C(g,81650,"IAAAAAAAAAAg"),C(g,81682,"IAAAAAAAAAAgAAAAAAAAACAAAAAAAIAAAAAAAAAAgA=="),C(g,81728,"gAAAAAAAAACAAAAAAAAAAIA="),C(g,81760,"gAAAAAAAAACA"),C(g,81904,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAU"),C(g,81961,"FAAAAAAAAAAU"),C(g,81985,"FAAAAAAAAAAE"),C(g,82009,"BAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),C(g,82097,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),C(g,82169,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAACA"),C(g,82224,"gAAAAAAAAACA"),C(g,82272,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,82353,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,82393,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,82625,"BAAAAAAAAAAE"),C(g,82649,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,83033,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,83097,"BAAAAAAAAAAE"),C(g,83121,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAQAAAEAAAAAFAAAAQAAAAgEAAABAAAAAQQAAAAAAAACBAAAAAAAAAgEAAAAAAAAAAQAAAAAAAAABAAAAQAAAAgEAAAAAAAAAQQAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAQA=="),C(g,83288,"QA=="),C(g,83303,"AkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAACEA="),C(g,83352,"QAAAAAAAABBAAAAQAAAAgAAg"),C(g,83379,"gAAAAABAAACQggAAIEAAAJAAAAAAAAAAgAAAAABAAACQggAAIEAAAJCCAAAgAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkAAAAEBAAACQAAAAYEAAAJCCAABgQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkIIAACBAAACQggAAIAAAAIAAAAAEAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAABEAAAAAAAAAIAAAAgIIAAAAAAACAgAAAAAAAAIAAAAAAAAAAgIYAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAgAAAAAAAAICAAAAAAAAAgJIAAACAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgIIAAAAAAACAhgAAAAAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgJIAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAhg=="),C(g,83999,"IAAAAACCAAAgAAAAAIIAAAAAAAAAggAAAAAAAACGAAAAAAAAAIIAAAAAAAAAggAAAAAAAACCAAAAaW5maW5pdHkALSsgICAwWDB4AHN0ZDo6YmFkX2Nhc3QAJXMlYyVzX2RpY3QAJXMlYyVzJWMlcyVzACVzJWNzb3VuZGljb25zJWMlcwBDb21waWxlIGVycm9yAHN0ZDo6ZXhjZXB0aW9uAHRlcm1pbmF0aW5nAF8wbGFuZwB1bmV4cGVjdGVkX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkACVkICVkICVkICVkICVkICVkICVkICVkICVkICVkACVzJWMlYwByYgBwaG9udGFiAHJ3YQBYWFhYWFgAR01UAExDX0FMTABFU1BFQUtfREFUQV9QQVRIAEMAQU5TSV9YMy40LTE5NjgAMy4xLjMwACEtLQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQAlcwoAZXNwZWFrOiBCYWQgaW50b25hdGlvbiBkYXRhCgAAAQIEBwMGBQAAAABAAAAAAAAAAHBob25pbmRleAAlcyVjJWMlcwAgJXMAc3RkOjpiYWRfZXhjZXB0aW9uAEVtc2NyaXB0ZW4AbmFuAD94bWwAJXMvLi4vcGhzb3VyY2UAc3RkOjpiYWRfdHlwZWlkAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZAAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZAByYgBXcm9uZyB2ZXJzaW9uIG9mIGVzcGVhay1uZy1kYXRhAEkATEFORwBIT01FAEFOU0lfWDMuNC0xOTg2AChudWxsKQBGYWlsZWQgdG8gb3BlbjogJyVzJwBEZWxldGVkIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBudW1iZXJzOiBCYWQgb3B0aW9uIG51bWJlciAlZAoAX2NhcABlbXNjcmlwdGVuAFRoZSBGSUZPIGJ1ZmZlciBpcyBmdWxsAGVzcGVhawAlZCAlZCAlZABzdGQ6OmJhZF9hbGxvYwAlYyVzJWMlcyVjAHBob25kYXRhAC91c3Ivc2hhcmUvZXNwZWFrLW5nLWRhdGEAL3RtcC9lc3BlYWtYWFhYWFgATABQU0FSSFRJVllNVUJGAEFTTU8tNzA4AEMuVVRGLTgAICgAJXM6IEJhZCBvcHRpb24gbnVtYmVyICVkCgBVbnN1cHBvcnRlZCBzcGVjdHJhbCBmaWxlIGZvcm1hdC4KAENhbid0IHJlYWQgZGljdGlvbmFyeSBmaWxlOiAnJXMnCgAtMFgrMFggMFgtMHgrMHggMHgAaW50b25hdGlvbnMAcGhvbmVtZXMAJXMgJXMgJXMgJXMgJXMgJXMAZW4AYmFkX2FycmF5X25ld19sZW5ndGgAbm9uZQBUaGUgZXNwZWFrLW5nIGxpYnJhcnkgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkACVjJWQAUE9TSVgATQBDLlVURi04AEVDTUEtMTE0ACMxAEVtcHR5IF9kaWN0IGZpbGU6ICclcwoAUmVwbGFjZTogJXMgPiAlcwoAICBzdWZmaXggWyVzXQoKACVzL3Bob25lbWVzACVzJXMlcwBicABhbGwAaW5mAENhbm5vdCBpbml0aWFsaXplIHRoZSBhdWRpbyBkZXZpY2UAJXMlY3ZvaWNlcyVjAE4ATlVMTABFQ01BLTExOABVVEYtOAB3YXNtMzIAZXNwZWFrOiBObyBlbnZlbG9wZQoAQmFkIGRhdGE6ICclcycgKCV4IGxlbmd0aD0leCkKAFRoZSBzcGVjaWZpZWQgZXNwZWFrLW5nIHZvaWNlIGRvZXMgbm90IGV4aXN0ACVzJXMAJXMlYyVzAF9jYXAAYmhmAHNvbWUAWwIlc11dAFAASU5GAEVMT1RfOTI4AGVuX1VT
2896LlVURi04AF8jJWQgAENvbXBpbGluZyBwaG9uZW1lIGRhdGE6ICVzCgBGdWxsIGRpY3Rpb25hcnkgaXMgbm90IGluc3RhbGxlZCBmb3IgJyVzJwoAVW5rbm93biB0dW5lICclcycKACU1ZDoJAGR0AG5vAGVuAG5hbgBfcm9tYW4AQ291bGQgbm90IGxvYWQgdGhlIG1icm9sYS5kbGwgZmlsZQAlZCAlZAAlcyVjbGFuZyVjAHJiAFsCX15fJXMgJXMgX15fJXNdXQBTAF8/QQBJQk0zNjcAPyVkIAAlcyVjJXMAJXMvJXMAcgBpY29uAGVuAENvdWxkIG5vdCBsb2FkIHRoZSBzcGVjaWZpZWQgbWJyb2xhIHZvaWNlIGZpbGUAZ2MAWgBOQU4AXz8/ADxzYXktYXMgaW50ZXJwcmV0LWFzPSJ0dHM6Y2hhciI+JiMlZDs8L3NheS1hcz4ASUJNODE5ACogACAgJWQgJXMgICAgAEludmFsaWQgaW5zdHJ1Y3Rpb24gJS40eCBmb3IgcGhvbmVtZSAnJXMnCgAAcGhvbmRhdGEtbWFuaWZlc3QAVGhlIGV2ZW50IGJ1ZmZlciBpcyBmdWxsAHNwZWxsaW5nAF9saWcAY29uZmlnACVzL2VzcGVhay1uZy1kYXRhACVzJXNfAElTQ0lJAGhBAGwnZXRAAC4ALQAoJXMpAAElZEkgACV4AHcAJXNydWxlcy50eHQAKyVzAHIAXy5wAHBpdGNoAFRoZSByZXF1ZXN0ZWQgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGJlZW4gYnVpbHQgaW50byBlc3BlYWstbmcAX3NtYwBDYwBtYgBJU09fNjQ2LmlydjoxOTkxAHYgPD0gdm93ZWxfY291bnQAVGhlIHBob25lbWUgZmlsZSBpcyBub3QgaW4gYSBzdXBwb3J0ZWQgZm9ybWF0AGNoYXJhY3RlcnMAJWMlcyVzJXMAICVzAF90dXIAZW4AQ2YAbmQAJXMgJWQASVNPXzg4NTktMQAjIFRoaXMgZmlsZSBsaXN0cyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gY29tcGlsZWQgaW50byB0aGUKIyBwaG9uZGF0YSBmaWxlCiMKIyBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbGluZSBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgZGF0YToKIyAgIFMgLSBBIFNQRUNUX1NFUSBzdHJ1Y3R1cmUKIyAgIFcgLSBBIHdhdmVmaWxlIHNlZ21lbnQKIyAgIEUgLSBBbiBlbnZlbG9wZQojCiMgQWRkcmVzcyBpcyB0aGUgZGlzcGxhY2VtZW50IHdpdGhpbiBwaG9uZGF0YSBvZiB0aGlzIGl0ZW0KIwojICBBZGRyZXNzICBEYXRhIGZpbGUKIyAgLS0tLS0tLSAgLS0tLS0tLS0tCgBfcmV2AHZhcmlhbnQAJXNydWxlcwB0dHM6Y2hhcgBzb3VuZGljb24AQ24AX2VsAG5nAHNyYy9saWJlc3BlYWstbmcvZGljdGlvbmFyeS5jAF9zdWIAcGhvbmRhdGEAVGhlIHNwZWN0cmFsIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZnJhbWUgZGF0YQABKzEwUwBJU09fODg1OS0xOjE5ODcAdHRzOmtleQAlcyVjJXNfZGljdAB0cwBUaGUgcGhvbmVtZSBtYW5pZmVzdCBmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IHBob25lbWVzAF8lYyAlcwBfY3lyAF9zdXAAQ28AX2NybAB3YgAgAS0xMFMASVNPXzg4NTktMgAtAFVucHJvbm91bmNhYmxlPyAnJXMnCgBfaHkAcGhvbmluZGV4AF9hY3UAdHRzOmRpZ2l0cwBDcwAgJXMgJWQgJXMAJ2U6agBhcG9zdHJvcGhlAFRoZSBwaG9uZW1lIGZlYXR1cmUgaXMgbm90IHJlY29nbmlzZWQAdEEASVNPXzg4NTktMjoxOTg3AHdiKwBUcmFuc2xhdGUgJyVzJwoAX2JydgBicmFja2V0cwAlY2VuAElpAHRlbGVwaG9uZQBfaGUAVGhlIHRleHQgZW5jb2RpbmcgaXMgbm90IHN1cHBvcnRlZAAlZCAlZABwaG9udGFiAFsCKFgxKShYMSkoWDEpXV0AbkEAYidpOgBJU09fODg1OS0zAFVzaW5nIHBob25lbWV0YWJsZTogJyVzJwoAVW5zcGVjaWZpZWQgZXJyb3IgMHgleAByb290cwBnbHlwaHMAJWMlcwBfYXIATGwAJXMvY29tcGlsZV9wcm9nX2xvZwBicmFja2V0c0Fubm91bmNlZAAlZABfaGFjAF9eXwBzJ2k6AElTT184ODU5LTM6MTk4OABsaXN0AGRpY3RfbWluAGVuAExtAHgtd2VhawBiYXNlAF9jZWQAX3N5YwBkJ2k6AElTT184ODU5LTQAQmFkIHZvaWNlIGF0dHJpYnV0ZTogJXMKAEVycm9yIHByb2Nlc3NpbmcgZmlsZSAnJXMnOiAlcy4KAGxpc3R4AGRpY3RydWxlcwBfY2lyAExvAHdlYWsAX2hpACdpOgBJU09fODg1OS00OjE5ODgAJXMgAEludmFsaWQgcGhvbmVtZSBjb2RlICVkCgAKUmVmcyAlZCwgIFJldXNlZCAlZAoARXJyb3I6ICVzIGF0ICclcycgKGV4cGVjdGVkIDB4JXgsIGdvdCAweCV4KS4KAFVua25vd24gcGhvbmVtZSB0YWJsZTogJyVzJwoATHQAJWMlcwBpbnRvbmF0aW9uAF9ibgBtZWRpdW0AZW1vamkAJ2VmAF9kaWEASVNPXzg4NTktNQBSZXBsYWNlOiAlcyAgJXMKAENvbXBpbGVkIHBob25lbWVzOiAlZCBlcnJvcnMuCgBFcnJvcjogJXMuCgBoc3gATHUAJXMvLi4vcGhzb3VyY2UvaW50b25hdGlvbi50eHQAbF9kaWVyZXNpcwAlcyslcwBfZ3VyAGlvbgBzdHJvbmcAZXh0cmEASVNPXzg4NTktNToxOTg4AF9hYzIAbF9wcmVmaXgAX2d1AF9kb3QAJXMlY3ZvaWNlcwByAHgtc3Ryb25nAE1jAElTT184ODU5LTYAQ29tcGlsaW5nOiAnJXMnCgBfZ3J2AGxfcmVncmVzc2l2ZV92AHJzAF9vcgAlcy8uLi9waHNvdXJjZS9pbnRvbmF0aW9uACVzJWNsYW5nAE1lAHJlZHVjZWQASVNPXzg4NTktNjoxOTg3ACQxAGlyAF9tY24ATW4AbW9kZXJhdGUAdHVuZQBsX3VucHJvbm91bmNhYmxlAF90YQBJU09fODg1OS03ACQyAG1iLwAlcy9pbnRvbmF0aW9ucwB1cgBfb2dvAGxfc29ub3JhbnRfbWluAHJhdGUAX3RlAE5kAElTT184ODU5LTc6MTk4NwAkMwAvLwBfa24ATmwAYXRoAF9ybmcAdm9sdW1lAGFwb3N0cm9waGUAbG93ZXJjYXNlU2VudGVuY2UASVNPXzg4NTktOAAkNABEdXBsaWNhdGUgdHVuZSBuYW1lOiAnJXMnAGJyYWNrZXRzAG51bWJlcnMAbnMATm8AX21sAF9zdGsAcmFuZ2UAQmFkIHR1bmUgbmFtZTogJyVzOwBJU09fODg1OS04OjE5ODgAJDUAc3BlbGxpbmdTdHJlc3MAX3NpAF90bGQAZmllbGQAYnJhY2tldHNBbm5vdW5jZWQAUGMASVNPXzg4NTktOQAkNgBCYWQgZW52ZWxvcGUgbmFtZTogJyVzJwBfYmFyAGRpY3RfbWluAF90aABzcG9uZwBtb2RlAFR1bmUgJyVzJyBub3QgZm91bmQAc3RyZXNzQWRkAFBkAElTT184ODU5LTk6MTk4OQAkNwBfcmZ4ACR1AGRpY3RydWxlcwBzdHJlc3NBbXAAX2xvAHB1bmN0dWF0aW9uAHJhbmcAUGUASVNPXzg4NTktMTAAVW5leHBlY3RlZDogJyVzJwBjYXBpdGFsX2xldHRlcnMAaW50b25hdGlvbgBfaG9rAF90aQBzdHJlc3NMZW5ndGgAbGFyZwBQZgBUdW5lICclcycgbm90IGRlZmluZWQASVNPXzg4NTktMTA6MTk5MgAkdTEAX215AHN0cmVzc09wdABsX2RpZXJlc2lzAF8jJXMAbGV2ZWwAUGkASVNPXzg4NTktMTQAJHUyAGFkZCBlCgBDb21waWxlZCAlZCBpbnRvbmF0aW9uIHR1bmVzOiAlZCBlcnJvcnMuCgBsX3ByZWZpeABhbHBoYWJldABUb28gbWFueSBwaG9uZW1ldGFibGVzAF94IyVzAFBvAHN0cmVzc1J1bGUAX2thAElTT184ODU5LTE0OjE5OTgAJHUzAE91dCBvZiBtZW1vcnkAbF9yZWdyZXNzaXZlX3YAdHVuZXMAUHMAX2tvAHBoAElTT184ODU5LTE1AF8wACR1KwBfZHB0AHdvcmRzAGludGVycHJldC1hcwBfZXRoAGxfdW5wcm9ub3VuY2FibGUAU2MAXwBJU09fODg1OS0xNgAk
2896dTErAEJhZCBydWxlcyBkYXRhIGluICclc19kaWN0JyBhdCAweCV4ICglYykKAGZvcm1hdABsX3Nvbm9yYW50X21pbgBTawBfYnJhaWxsZQBfME0lZABJU09fODg1OS0xNjoyMDAxACR1MisAQ2FuJ3QgZmluZCBiYXNlIHBob25lbWV0YWJsZSAnJXMnACUzZAklcyBbJXNdCgBDYW5ub3Qgc2V0ICVzOiBsYW5ndWFnZSBub3Qgc2V0LCBvciBpcyBpbnZhbGlkLgoAU20AZGV0YWlsAGxvd2VyY2FzZVNlbnRlbmNlAF9qYQBJU082NDYtVVMAXy4AJHUzKwBfAQBudW1iZXJzAFNvAF8lZG4AX3poACRwYXVzZQAlYyVkWQBwaG9uZW1lX2xlbiA8IE5fUEhPTkVNRV9CWVRFUwBJU08tMTA2NDYtVUNTLTIAJQBzcGVsbGluZ1N0cmVzcwBhbGlhcwBabAAkc3RyZW5kAElTTy04ODU5LTEAJSUARmxhZ3M6ICAlcyAgJXMKACVzJXMlYyVzJXMAWnAAbmFtZQBzdHJlc3NBZGQAJHN0cmVuZDIASVNPLTg4NTktMgAsAEZvdW5kOiAnJXMgJXMKAFpzACVzJXMlcyVjJXMARm91bmQ6ICclcwBzdHJlc3NBbXAAJHVuc3RyZXNzZW5kACVjJWRNAElTTy04ODU5LTMALCwAc3RyZXNzTGVuZ3RoACRhY2NlbnRfYmVmb3JlAF8wWiVkAHNyYwBJU08tODg1OS00AC0tACcAJyBbJXNdICAlcwoAJGFiYnJldgBzdHJlc3NPcHQAJXMvJXMAQWRsbQBfJWNkAElTTy04ODU5LTUAJycAJWMlcwBBZmFrAHN0cmVzc1J1bGUAJGRvdWJsZQAlYyVkSQA9AElTTy04ODU5LTYAJGFsdAB0dW5lcwBBZ2hiACVjJWRVAF86AElTTy04ODU5LTcAX2RwdDIA2Y4gINmPICDZkAB3b3JkcwBfJWRNJWRvAEFob20Ac3RyZW5ndGgASVNPLTg4NTktOAAkYWx0MQBfIQDYpyDZiCDZigBuYW1lAF8lZE0lZGUAQXJhYgAlYyVkQgA6AElTTy04ODU5LTkAJGFsdDIA2Kgg2b4g2Kog2Kkg2Ksg2Kwg2K0g2K4g2K8g2LAg2LEg2LIg2LMg2LQg2LUg2LYg2Lcg2Lgg2Lkg2Log2YEg2YIg2YMg2YQg2YUg2YYg2KYg2KQg2KEg2KMg2KIg2KUg2YcAXyVkTSVkeABBcm1pAHRpbWUAbGFuZ3VhZ2UAQAAkYWx0MwBJU08tODg1OS0xMADYtSDYtiDYtyDYuABnZW5kZXIAQXJtbgB4bWw6YmFzZQBfJWRNJWQAJGFsdDQASVNPLTg4NTktMTEAQC0AfHwAJXgAQXZzdAB2YXJpYW50cwBfMG9mACRhbHQ1AElTTy04ODU5LTEzACDZkSAAZm9ybWFudABfJXMlZG8AQmFsaQAlZAAkYWx0NgBJU08tODg1OS0xNAAxAEJhbXUAc3BlYWsAcGl0Y2gAXyVzJWRlACRhbHQ3AElTTy04ODU5LTE1ACNYMQBfJXMlZHgAQmFzcwBwaG9uZW1lcwAkY29tYmluZQB2b2ljZQA/AElTTy04ODU5LTE2AGRpY3Rpb25hcnkAcHJvc29keQAkZG90AEJhdGsAXyVzJWQAS09JOC1SAC0AJGhhc2RvdABzYXktYXMAQmVuZwByZXBsYWNlAF9eXwBMYXRpbi05AF8wTTIAQmhrcwBlY2hvAG1hcmsAJG1heDMAX1gxAF8lZE0xAFRJUy02MjAAX3wAQmxpcwBmbHV0dGVyACRicmsAVVMtQVNDSUkAXzBNMQAkdGV4dAByb3VnaG5lc3MAJXMlcwBwAEJvcG8AXzo6AFVURi04AGNsYXJpdHkAQnJhaAAkdmVyYmYAcGhvbmVtZQAxTUEAY3AzNjcAdCMAQnJhaQAkdmVyYnNmAHRvbmUAc3ViADBNQQBjcDgxOQAnIQBCdWdpAHZvaWNpbmcAJG5vdW5mAHR0czpzdHlsZQBfO18AY3NBU0NJSQAwTUIAYXVkaW8AYnJlYXRoACRwYXN0ZgBCdWhkADFNACNAAGNzSVNPODg1OTEzAGJyZWF0aHcAZW1waGFzaXMAQ2FrbQAkdmVyYgAjYQAwTQBjc0lTTzg4NTkxNABDYW5zAF8wQ28AJG5vdW4AYnJlYWsAI2UAbWJyb2xhAGNzSVNPODg1OTE1ACRwYXN0AGNvbnNvbmFudHMAQ2FyaQAjaQBtZXRhZGF0YQBjc0lTTzg4NTkxNgBfMEMwAGtsYXR0AGJyACNvAENoYW0AJHZlcmJleHRlbmQAXzBDAGNzSVNPTGF0aW4xACN1AENoZXIAJGNhcGl0YWwAbGkAJXMlYyVzJWMAZmFzdF90ZXN0MgBjc0lTT0xhdGluMgBDaXJ0ACRhbGxjYXBzAE1pc3NpbmcgZmlsZTogJXMAXzBhbmQAc3BlZWQAZGQAY3NJU09MYXRpbjMAQ29wdAAkYWNjZW50AG1haW50YWluZXIAXyVkQ28AcGhvbmVtZXRhYmxlIGlzIG1pc3NpbmcAaW1nAGNzSVNPTGF0aW40AENwcnQAc3RhdHVzACRzZW50ZW5jZQB0ZABLZXl3b3JkICdwaG9uZW1lJyBleHBlY3RlZABjc0lTT0xhdGluNQBfJWRDMAAkb25seQBUb28gbWFueSBwcm9jZWR1cmVzAEN5cmwAbWFsZQBfJWRDAGNzSVNPTGF0aW42AGgxACRvbmx5cwBDeXJzACVzJXMlcyVzAGZlbWFsZQBjc0lTT0xhdGluQXJhYmljACUuM2RQAGgyACVzJXMlYyVzACRzdGVtAE1pc3NpbmcgJ2VuZHBob25lbWUnIGJlZm9yZSBlbmQtb2YtZmlsZQAlZCAlZCAlZCAlZCAlZABjc0lTT0xhdGluQ3lyaWxsaWMARGV2YQBoMwBfJWRmeABNb3JlIHRoYW4gb25lIHBob25lbWUgdHlwZTogJXMARG9ncgBjc0lTT0xhdGluR3JlZWsAJGF0ZW5kAE5VTEwAaDQAY3NJU09MYXRpbkhlYnJldwBEc3J0ACRhdHN0YXJ0ACVkICVzICVzAGhyAF8lZGYATlVMTABfJWQlY3gAc2NyaXB0AER1cGwAJG5hdGl2ZQAhdiVjAGNzS09JOFIAJXgAc3R5bGUARWd5ZAAlc20lZABfJWQlYwAkPwBjc1RJUzYyMABmb250AEVneWgAYSBwaG9uZW1lIHR5cGUgb3IgbWFubmVyIG9mIGFydGljdWxhdGlvbiBtdXN0IGJlIHNwZWNpZmllZCBiZWZvcmUgc3RhcnR0eXBlACR0ZXh0bW9kZQBfJWRlACVzZiVkAGNzVVRGOAAlcy92b2ljZXMvJXMARWd5cABfJWRvAGEgcGhvbmVtZSB0eXBlIG9yIG1hbm5lciBvZiBhcnRpY3VsYXRpb24gbXVzdCBiZSBzcGVjaWZpZWQgYmVmb3JlIGVuZHR5cGUAJHBob25lbWVtb2RlAGNzVW5pY29kZQBiAGVuZHR5cGUgbXVzdCBlcXVhbCBzdGFydHR5cGUgZm9yIGNvbnNvbmFudHMAdW5wcgBhbGwAaQBhcmFiaWMAXyVkYQBFbGJhAG5vcHJlZml4AHZvaWNpbmdzd2l0Y2ggY2Fubm90IGJlIHVzZWQgb24gdm93ZWxzAGVtAEV0aGkAXyVkAGN5cmlsbGljAHN0cmVzcyBwaG9uZW1lcyBjYW4ndCBjb250YWluIHByb2dyYW0gaW5zdHJ1Y3Rpb25zAEdlb2sAZ3JlZWsAY29kZQBfJWRYJWMAd19hbHQxAFdhcm5pbmc6IG1heGltdW0gbnVtYmVyICVkIG9mIChOX1ZPSUNFU19MSVNUID0gJWQgLSAxKSByZWFjaGVkCgAlcyVjJXMAR2VvcgBfJWRYZgAlYyVkJWMAZ3JlZWs4AHdfYWx0MgBNaXNzaW5nICdlbmRwaG9uZW1lJyBiZWZvcmUgJyVzJwBoZWJyZXcAZGVmYXVsdABHbGFnAF8lZFgATWlzc2luZyBFTkRJRgB3X2FsdDMARXJyb3IgKCVzKTogZ2VuZGVyIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb24gYSBsYW5ndWFnZSBmaWxlCgBzaWxlbnQAR29uZwAnZW5kcGhvbmVtZScgbm90IGV4cGVjdGVkIGhlcmUAaXNvLWNlbHRpYwB3X2FsdDQAX29yZDIwAHgtc29mdAB
2896Hb25tAFBob25lbWUgdHlwZSBpcyBtaXNzaW5nAF9vcmQAaXNvLWlyLTYAd19hbHQ1AHNvZnQAR290aAB3X2FsdDYAaXNvLWlyLTEwMABCYWQgcGhvbmVtZSBuYW1lICclcycAd19hbHQAJXMlcyVzAEdyYW4AbG91ZABpc28taXItMTAxACVzOiAnJXMnLgBHcmVrAHgtbG91ZABpc28taXItMTA5AHBfYWx0MQB4LXNsb3cAR3VqcgBwX2FsdDIAaXNvLWlyLTExMABFeHBlY3RlZCAnKCcAc2xvdwBHdXJ1AGlzby1pci0xMjYAcF9hbHQzAEV4cGVjdGVkICcpJwBmYXN0AEhhbmcAVmFsdWUgJWQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gJWQAaXNvLWlyLTEyNwBwX2FsdDQAeC1mYXN0AEhhbmkAaXNvLWlyLTEzOABwX2FsdDUAQ2Fubm90IGZpbmQgcGhvbmVtZSAnJXMnIHRvIGltcG9ydC4AeC1sb3cASGFubwBwX2FsdDYAaXNvLWlyLTE0NABQaG9uZW1lIGltcG9ydCB3aWxsIG92ZXJyaWRlIHNldCBwcm9wZXJ0aWVzLgBsb3cAcF9hbHQASGFucwBpc28taXItMTQ4AFBob25lbWUgcmVmZXJlbmNlIG5vdCBmb3VuZDogJyVzJwAlcyVzLnR4dABIYW50AGhpZ2gAaXNvLWlyLTE1NwBjb21waWxlOiB1bmtub3duIHBob25lbWUgdGFibGU6ICclcycAJXMlcwBIYXRyAHgtaGlnaABQaG9uZW1lIHByb2dyYW0gdG9vIGxhcmdlAGlzby1pci0xOTkASGVicgBpc28taXItMjI2AEV4cGVjdGVkIGEgY29uZGl0aW9uLCBub3QgJyVzJwBzcGFjZSAAQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5CgBFeHBlY3RlZCBsaXN0IG9mIHN0cmVzcyBsZXZlbHMASGlyYQBsYXRpbjEAdGFiIAAJJWQgZW50cmllcwoASGx1dwBsYXRpbjIAVW5leHBlY3RlZCBrZXl3b3JkICclcycAdW5kZXJzY29yZSAAJTVkOiBVbmtub3duIGtleXdvcmQ6ICVzCgBIbW5nAHBob25lbWUAbGF0aW4zAGRvdWJsZS1xdW90ZSAAJTVkOiBNaXNzaW5nICcoJwoASHJrdABlbmRwaG9uZW1lAG1hbGUAbGF0aW40AEh1bmcAZmVtYWxlAEV4cGVjdGVkIEFORCwgT1IsIFRIRU4AbGF0aW41ACU1ZDogTmVlZCB0byBjb21waWxlIGRpY3Rpb25hcnkgYWdhaW4KAEluZHMAbmV1dHJhbABFTFNFIG5vdCBleHBlY3RlZABsYXRpbjYAJTVkOiBCYWQgcGhvbmVtZSBbJXNdIChVKyV4KSBpbjogJXMgICVzCgBVKyV4AEl0YWwASUYgYmxvY2sgaXMgdG9vIGxvbmcAeG1sOmxhbmcAbGF0aW44AHZhcmlhbnQARUxJRiBub3QgZXhwZWN0ZWQASmF2YQBsYXRpbjEwACU1ZDogRGljdGlvbmFyeSBsaW5lIGxlbmd0aCB3b3VsZCBvdmVyZmxvdyB0aGUgZGF0YSBidWZmZXI6ICVkCgBKcGFuAGFnZQBFTkRJRiBub3QgZXhwZWN0ZWQAbDEAJTVkOiBUd28gbWFueSBwYXJ0cyBpbiBhIG11bHRpLXdvcmQgZW50cnk6ICVkCgBnZW5kZXIASnVyYwBQYXJhbWV0ZXIgPiAxMjcAbDIALy8AJXMrJXMAS2FsaQAuTABQYXJhbWV0ZXIgPCAtMTI4AGwzAGd0AC5yZXBsYWNlAEthbmEAUGFyYW1ldGVyID4gMjU1AGw0AGx0AEtoYXIALmdyb3VwAERGVABsNQAweCV4ACVzLyVzLndhdgBLaG1yAGFtcABsNgBxdW90AENhbid0IHJlYWQgZmlsZTogJXMAS2hvagBsOAAlNWQ6IEdyb3VwIG5hbWUgbG9uZ2VyIHRoYW4gMiBieXRlcyAoVVRGOCkARmlsZSBub3QgU1BFQyBvciBSSUZGOiAlcwBuYnNwAEtuZGEAbDEwAApFeGNlZWRlZCBsaW1pdCBvZiBydWxlcyAoJWQpIGluIGdyb3VwICclcycKAHVzAGFwb3MAS29yZQAlYyAgMHglLjV4ICAlcwoAAMDg8P8fDwdwCnEKAAAoACkAWwBdAHsAfQA8AD4AIgAnAGAAqwC7AAowCzA84A=="),C(g,93904,"ICAgICAgICAgICYlKyNTRFpBTCEgQD9KTktWP1RYP1dBQkNIRkdZPT0sLCcqICAAIAAhACIAsAIkACUA5gDIAigAKQB+AisAzAItAC4ALwBSAjEAMgBcAjQANQA2ADcAdQI5ANACsgI8AD0APgCUAlkCUQKyA+cA8ABbAkYAYgInAWoCXwJLAGsCcQJLAVQCpgNjAoACgwK4A4oCjAJTAccD+ACSAioDXABdAF4AXwBgAGEAYgBjAGQAZQBmAGECaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQADA38APT0sLCcnAAMCBAUGBxoAAAAAAQECAwMEBQYHBwgJCgsAAAEBAgIDAwQFBgcHCAkKAAABAgMDAwQFBgcHBwgJClNldFdvcmRTdHJlc3MA5ADrAO8A9gD8AP8AAAAAAAAAYWFhYWFhYWNlZWVlaWlpaWRub29vb28Ab3V1dXV5dHNhYWFhYWFhY2VlZWVpaWlpZG5vb29vbwBvdXV1dXl0eWFhYWFhYWNjY2NjY2NjZGRkZGVlZWVlZWVlZWVnZ2dnZ2dnZ2hoaGhpaWlpaWlpaWlpaWlqamtra2xsbGxsbGxsbGxubm5ubm5ubm5vb29vb29vb3JycnJycnNzc3Nzc3NzdHR0dHR0dXV1dXV1dXV1dXV1d3d5eXl6enp6enpzYmJiYgAAb2NjZGRkZGRlZWVmZmdnaGlpa2tsbG1ubm9vb29vcHB5AABzc3R0dHR1dXV2eXl6enp6enp6AAAAd3R0dGtkZGRsbGxubm5hYWlpb291dXV1dXV1dXV1ZWFhYWFhYWdnZ2dra29vb296empkZGRnZ3d3bm5hYWFhb29hYWFhZWVlZWlpaWlvb29vcnJycnV1dXVzc3R0eXloaG5kb296emFhZWVvb29vb29vb3l5bG50amRxYWNjbHRzegAAYnV2ZWVqanFxcnJ5eWFhYWJvY2RkZWVlZWVl"),C(g,94846,"TG9va3VwRGljdDIAAAAAAAAAgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgCrAKwArQCuAK8AsACxALIAswC0ALUAtgC3ALgAuQC6ALsAvAC9AL4AvwDAAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPANAA0QDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAQB2AJBAaQAPQFaAacAqABgAV4BZAF5Aa0AfQF7AbAABQHbAkIBtAA+AVsBxwK4AGEBXwFlAXoB3QJ+AXwBVAHBAMIAAgHEADkBBgHHAAwByQAYAcsAGgHNAM4ADgEQAUMBRwHTANQAUAHWANcAWAFuAdoAcAHcAN0AYgHfAFUB4QDiAAMB5AA6AQcB5wANAekAGQHrABsB7QDuAA8BEQFEAUgB8wD0AFEB9gD3AFkBbwH6AHEB/AD9AGMB2QKAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAmAdg
2896CowCkAP3/JAGnAKgAMAFeAR4BNAGtAP3/ewGwACcBsgCzALQAtQAlAbcAuAAxAV8BHwE1Ab0A/f98AcAAwQDCAP3/xAAKAQgBxwDIAMkAygDLAMwAzQDOAM8A/f/RANIA0wDUACAB1gDXABwB2QDaANsA3ABsAVwB3wDgAOEA4gD9/+QACwEJAecA6ADpAOoA6wDsAO0A7gDvAP3/8QDyAPMA9AAhAfYA9wAdAfkA+gD7APwAbQFdAdkCgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAE4AVYBpAAoATsBpwCoAGABEgEiAWYBrQB9Aa8AsAAFAdsCVwG0ACkBPAHHArgAYQETASMBZwFKAX4BSwEAAcEAwgDDAMQAxQDGAC4BDAHJABgBywAWAc0AzgAqARABRQFMATYB1ADVANYA1wDYAHIB2gDbANwAaAFqAd8AAQHhAOIA4wDkAOUA5gAvAQ0B6QAZAesAFwHtAO4AKwERAUYBTQE3AfQA9QD2APcA+ABzAfoA+wD8AGkBawHZAoAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBK0ADgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhBCIEIwQkBCUEJgQnBCgEKQQqBCsELAQtBC4ELwQwBDEEMgQzBDQENQQ2BDcEOAQ5BDoEOwQ8BD0EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROBE8EFiFRBFIEUwRUBFUEVgRXBFgEWQRaBFsEXASnAF4EXwSAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAD9//3//f+kAP3//f/9//3//f/9//3/DAatAP3//f/9//3//f/9//3//f/9//3//f/9//3/Gwb9//3//f8fBv3/IQYiBiMGJAYlBiYGJwYoBikGKgYrBiwGLQYuBi8GMAYxBjIGMwY0BjUGNgY3BjgGOQY6Bv3//f/9//3//f9ABkEGQgZDBkQGRQZGBkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZSBv3//f/9//3//f/9//3//f/9//3//f/9//3/gACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAGCAZIKMArCCvIKYApwCoAKkAegOrAKwArQD9/xUgsACxALIAswCEA4UDhgO3AIgDiQOKA7sAjAO9AI4DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQP9/6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgP9/4AAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAP3/ogCjAKQApQCmAKcAqACpANcAqwCsAK0ArgCvALAAsQCyALMAtAC1ALYAtwC4ALkA9wC7ALwAvQC+AP3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f8XINAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gXnBegF6QXqBf3//f8OIA8g/f+AAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8AHgHRANIA0wDUANUA1gDXANgA2QDaANsA3AAwAV4B3wDgAOEA4gDjAOQA5QDmAOcA6ADpAOoA6wDsAO0A7gDvAB8B8QDyAPMA9AD1APYA9wD4APkA+gD7APwAMQFfAf8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAESASIBKgEoATYBpwA7ARABYAFmAX0BrQBqAUoBsAAFARMBIwErASkBNwG3ADwBEQFhAWcBfgEVIGsBSwEAAcEAwgDDAMQAxQDGAC4BDAHJABgBywAWAc0AzgDPANAARQFMAdMA1ADVANYAaAHYAHIB2gDbANwA3QDeAN8AAQHhAOIA4wDkAOUA5gAvAQ0B6QAZAesAFwHtAO4A7wDwAEYBTQHzAPQA9QD2AGkB+ABzAfoA+wD8AP0A/gA4AYAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAEOAg4DDgQOBQ4GDgcOCA4JDgoOCw4MDg0ODg4PDhAOEQ4SDhMOFA4VDhYOFw4YDhkOGg4bDhwOHQ4eDh8OIA4hDiIOIw4kDiUOJg4nDigOKQ4qDisOLA4tDi4OLw4wDjEOMg4zDjQONQ42DjcOOA45DjoO/f/9//3//f8/DkAOQQ5CDkMORA5FDkYORw5IDkkOSg5LDkwOTQ5ODk8OUA5RDlIOUw5UDlUOVg5XDlgOWQ5aDlsO/f/9//3//f+AAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAdIKIAowCkAB4gpgCnANgAqQBWAasArACtAK4AxgCwALEAsgCzABwgtQC2ALcA+AC5AFcBuwC8AL0AvgDmAAQBLgEAAQYBxADFABgBEgEMAckAeQEWASIBNgEqATsBYAFDAUUB0wBMAdUA1gDXAHIBQQFaAWoB3AB7AX0B3wAFAS8BAQEHAeQA5QAZARMBDQHpAHoBFwEjATcBKwE8AWEBRAFGAfMATQH1APYA9wBzAUIBWwFrAfwAfAF+ARkggACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAAh4DHqMACgELAQoepwCAHqkAgh4LHvIerQCuAHgBHh4fHiABIQFAHkEetgBWHoEeVx6DHmAe8x6EHoUeYR7AAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPAHQB0QDSANMA1ADVANYAah7YANkA2gDbANwA3QB2Ad8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wB1AfEA8gDzAPQA9QD2AGse+AD5APoA+wD8AP0AdwH/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAKEAogCjAKwgpQBgAacAYQGpAKoAqwCsAK0ArgCvALAAsQCyALMAfQG1ALYAtwB+AbkAugC7AFIBUwF4Ab8AwADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4AzwDQANEA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAEAQUBQQGsIB4gYAGnAGEBqQAYAqsAeQGtAHoBewGwALEADAFCAX0BHSC2ALcAfgENARkCuwBSAVMBeAF8AcAAwQDCAAIBxAAGAcYAxwDIAMkAygDLAMwAzQDOAM8AEAFDAdIA0wDUAFAB1gBaAXAB2QDaANsA3AAYARoC3wDgAOEA4gADAeQABwHmAOcA6ADpAOoA6wDsAO0A7gDvABEBRAHyAPMA9ABRAfYAWwFxAfkA+gD7APwAGQEbAv8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAEFAUEBrCAeIGABpwBhAakAGAKrAHkBrQB6AXsBsACxAAwBQgF9AR0gtgC3AH4BDQEZArsAUgFTAXgBfAHAAMEAwgACAcQABgHGAMcAyADJAMoAywDMAM0AzgDPABABQwHSANMA1ABQAdYAWgFwAdkA2gDbANwAGAEaAt8A4ADhAOIAAwHkAAcB5gDnAOgA6QDqAOsA7ADtAO4A7wARAUQB8gDzAPQAUQH2AFsBcQH5APoA+wD8ABkBGwL/AP3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/wEJAgkDCQUJBgkHCQgJCQkKCQsJDgkPCRAJDQkSCRMJFAkRCRUJFgkXCRgJGQkaCRsJHAkdCR4JHwkgCSEJIgkjCSQJJQkmCScJKAkpCSoJKwksCS0JLgkvCV8JMAkxCTIJMwk0CTUJNgk3CTgJOQkgAD4JPwlACUEJQglDCUYJRwlICUUJSglLCUwJSQlNCTwJZAn9//3//f/9//3/IAAwADEAMgAzADQANQA2ADcAOAA5AP3//f/9//3//f8CAAAAAAAAAAEAAAADAAAA//36+Pb08vDu7Oro5uTi4N7c2tjW1NLQzszKyMbEwsC+vLq4trSysK6sqqimpKKgnpyamJaUkpCOjIqIhoSCgH58enh2dHJwbmxqaGZkYmBeXFpYVlRSUE5MSkhGREJAPjw6ODY0MjAuLCooJiQiIB4cGhgWFBIQDgwKCAYEAgAAAgQGCAoMDhASFBYYGhweICIkJigqLC4wMjQ2ODo8PkBCREZISkxOUFJ
2896UVlhaXF5gYmRmaGpsbnBydHZ4enx+gIKEhoiKjI6QkpSWmJqcnqCipKaoqqyusLK0tri6vL7AwsTGyMrMztDS1NbY2tze4OLk5ujq7O7w8vT2+Pr9///06uDWzMO6saifl4+Hf3hxamNcVlBKRD85NC8rJiIeGhcTEA0LCAYEAgEAAAAAAAAAAQIDBAUHCAoMDhATFRcaHR8iJSgsLjAyNDY5Oz1AQkVHSkxPUVRXWl1fYmVoa25xdHh7foGFiIuPkpaZnaCkqKyvs7e7v8PHy8/T19vgz8zJxsPAvbm0sKunopyXkoyGgXt1b2ljXVdQSkQ+ODMtJyIcFxINCAQCAgEAAAAAAAEBAgMEBQcICgwNDxIUFhkbHiEkJyotMDQ2ODo8P0FDRkhLTVBSVVhaXWBjZmlsb3J1eHt+gYWIi4+SlpmdoKSorK+zt7u/w8fLz9PX2+D/+fTu6eTf2tXQy8bBvbizr6qmoZ2ZlZCMiISAfXl1cW5qZ2NgXVlWU1BNSkdEQT48OTc0Mi8tKygmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),C(g,99845,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4g0M7NzMrIx8XDwcC9u7i1s7CtqqejoJ2ZlpKPi4eEgHx4dHBtaWVhXVlVUU1KRkI+Ozc0MS8tKigmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),C(g,99973,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4gmJmZmpydn6Gkp6mssLO2ur7BxcnN0dTY3N/j5urt8PL19/n7/P3+/v////////79+/r49vPx7uzp5uTg3drX09DMyMTAvLi0sKyno5+alpGNiIR/e3ZybWllYFxYVFBMSERAPDk1Mi8rKCYjIB0aFxUSDw0KCAcFAwIBAAAAAAD+///////+/fz6+Pb08e7r6OXh3trW0s3JxL+6trCrpqGclpGLhoB7dW9qZF9ZVE9JRD86NTArJiIdGRURDQoHBAMBAAAAAAAAAAABAQIEBQcJCw0QEhUYGx4iJSktMTU6PkNITFFXW15iZWhrbnF0dnh7fH6AgYKDg4SEg4OCgXJycXFwb21samhmZGFfXFpXVFFOS0hFQj87ODUyLywpJiMgHRsYFhQSEA4MCwoJCAcHBwcHBgUFBQUFBQUFBQYHBwgJCgwNDxASFBYYGx0gIyYpLC8zNzs/Q0dMUVZbYGVqb3R5f4SJj5Wboaets7rAx87V3OPq8fX3+vz9/v///v79/fz7+/r6+fj49/f29vX09PPz8vLx8PDv7u7t7Ovq6uno5+bl5OPi4eDe3dzb2djW1dPS0M7My8nHxcPAvry5t7Wyr62qp6ShnpqXlJCNiYWBfXl1cW1oZGFeW1dUUU1KRkNAPDk1Mi4qJyMfHBgUEQ0LCQcFBAMCAQAAAAAAAAAAAQEBAgIDAwQEBQYGBwgICQoLDAwNDg8QERITFBYXGBkbHB0fICIjJSYoKSstLzAyNDY4Ojw+QEJER0lLTlBSVVdaXV9iZWdqbXBzdnl8f4KGiYyQk5aanaCjpqmsr7K1uLu+wcTHys3Q09bZ3N/i5Ofp7O7w8vT2+Pr7/X9/f4CBg4SHiYyPkpaZnaGlqq6yt7vAxcnN0tba3uLm6u3w8/X4+vv8/f7+/fz7+ff08Ozn4tzVzsa9tKmekoiCfXdybGZgWlROSUI8NzItKCQfGxgUEQ4MCQcGBQQEBAQFBggKDRAUGB0jKS83PkdQWmRwfIOFiIqMjo+RkpOTAEAIAEYSAAAAAAAAGAwAAARQEgZOFgAAAAAAACI0AAAEWBYGUhYAAAAAAAAiQAAAAFwIAFxQAAAAAAAATAgBAABWBABeQgAAAAAAACIKAAAAPgoAPhQAAAAAAAAcEAAABEQSBkQWAAAAAAAAHiwAAAZAEABCIAAAAAAAACASAAACRC4AKiAAAAAAAAAuOgAABE4YBkgWAAAAAAAAKjQAAARYIgBAIAAAAAAAAC5SAAAAOAwAOBQAAAAAAAAYDAAAAEYSAEYYAAAAAAAAIBQAAAkAAAAJAAAAEAAAABAAAAAQAAAAFwAAADcAAAAgAAAAACgYCAAKNCAUCgYmGA4EAAYAAAAHAAAACQAAAAkAAAAUAAAAFAAAABQAAAAZAAAA5iAUCA=="),C(g,101072,"ZgNmAWYCpgSmAiYEpoooAmoDagFqAqoCbgNuAW4CrgIpALMEdAN0AXQCtAS0AgAAdAR6A3oBegK6An4BOQC+AgAApgMAAKYBAADmAwAAaAEAAGgCAAAoAwAA6AEAAOkBAABpBAAAqgMAAKoBAAAqAwAA6gMAAOoBAABsAgAArAEAACwDAAAsAgAAbQIAAG0EAACuBAAArgMAAK4BAADuAwAALgAAAO6LAABvAgAAMAIwAAAAcQEAADECAADxAQAAMQMAAHEEAABzAQAAMwIAAPMBMwAAADMAAAC0AwAAtAEAAPQCAAC0igAAdwEAADcCAAD3AQAAeAEAAHgCAAA4AgAA+AEAADkCAAD5AQAAeQQAALoEAAC6AwAAugEAADoEAAD6AgAA+gMAAHwCAAB+AgAAAAB/AQAAPwMAAP8BOACmAAEAgQBnBQAAKAEpBWkF6gAAAEIFAADDAEMdAADvBGwFLABsAAQAAACtAG0FAADuBAUAbgCxBPEEMQXxj7IAAAByBQAAMwVzAPQEtJoAAAgAtwCOADcVAAA3BQAAzQB3ALcIOAUAAG8FyQAJAbkAOQX6BAoAewW7ALwAvgB+AD8FPwEAAAsBAADMAIwAAAAAAGcAAABsDW0ALwGwAHEAdgVMBEwc6Y8AAOnPOY4AADnO"),C(g,101586,"sQNZAlsCswO5A1MByQPGA4MCxQOSApQCfgJ8AgAAqgBhgLIAMoCzADOAuQAxgLoAb4CwAmiAsQJmgrICaoCzAnKAtAJ5grUCe4K2AoGCtwJ3gLgCeYDAApSCwQKVguACY4LhAmyA4gJzgOMCeIBwIDCAcSBpgHQgNIB1IDWAdiA2gHcgN4B4IDiAeSA5gHogK4B7IC2AfCA9gH0gKIB+ICmAfyBugIAgMECBIDFAgiAyQIMgM0CEIDRAhSA1QIYgNkCHIDdAiCA4QIkgOUCKICtAiyAtQIwgPUCNIChAjiApQJAgYUCRIGVAkiBvQJMgeECUIFlClSBoQJYga0CXIGxAmCBtQJkgbkCaIHBAmyBzQJwgdEAAAAAAaXhjbXZsZA=="),C(g,101888,"AQAAAAoAAABkAAAA6AMAAAUAAAAyAAAA9AEAAAAXCgkYExgY"),C(g,101936,"///////9+fXy7uvo5OHe2tjV0s/MycbEwb+8ure1s7CurKmopaOhn56bmZiWlJKRj42LiYiHhYOCgX9+fHt6eHd2dXNycXBvbm1ramloZ2ZlZGNiYWBfXl1cW1pZWVhXVlVUU1JSUVBQT05NTExLS0pJSEdHRkVFRENDQkJBQEA/Pj49PTw7Ozo6OTk4ODc2NjU1NDQ0MzIyMTEwMC8vLi4uLS0sLCwrKyopKCgoJycnJiYmJSUlJCQjIyMjIiIiISEhICAfHx8eHh4dHR0dHBwbGxsbGhoaGhkZGRgYGBgXFxcXFhYWFRUVFRQUFBQTExMSEhERERAQEBAQEA8PDw8ODg4NDQ0MDAwMCwsLCwoKCgkJCQgICAAAAAAAAAAAeHl4d3d2dnV0dHNycXBwb29ubWxrampoZ2dmZmZlZWNiYmFgYF9eXVtaW1pZWFZVVlVVVFJRUE9NTk5MTUtLSklHSEZFRUVDQUA/Pz89PTs7Ozo4OTo4NjU0NDU0NDIwLy8tLi0="),C(g,102336,"FhYWFhYWFhUVFRUUFBMTEhEQDw8PDw8PDwAAAAAAAABkeGRpZG5uZF9kaXhpbn2Ch3N9ZGl4S2RLaXhVS2RpeFVpX3N4ZF9kbnhfaWRzeGRkZGl4ZGlfc3huX2RpeGRpaXp9bmlkaXhkaWl6fW5pZGl4X2lkc3huZGRkeGRkZGRkZGRk"),C(g,102480,"ZJZkaW5zbm5uZGmWaW59h4xzh2RpllppWnqHZFpkaZZkaWR6h2RkZGmWZGlpc4duaWRplmRpaXqCeH1kaZZkaW56fXNuZGmWZGlpeod4aWRplmRpaXOHbmlkZGRkZGRkZGRkZA=="),C(g,102592,"bnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRuZG5ubmRubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubg=="),C(g,102708,"rwAAAGQAAAAyAAAAMg=="),C(g,102744,"ZA=="),C(g,102764,"MjIoRlpkZGRGboeWZGRLZHiWAAAAAAAABwAAAA4AAAAVAAAAKAAAAFAAAAAAAAAAAFNBUFIAQwAAAAAARgAAAAAAAAABAAAAAgAAAAQAAAAPAAAAAAEAAAEBAAEBAgQAAAAAAPMAEAEAAQABAAEAAQAB8ADwAPA="),C(g,102898,"QABaAG4AgACPAJwAqQC1AMAAygDUAN0A5gDvAPcAAAEHAQ8BFgEeASUBLAEyATkBQAFGAUwBUgFYAV4BZAFqAW8BdQF6AYABhQGKAY8BlAGZAZ4BowGoAa0BsgG2AbsBwAHEAckBzQHRAdYB2gHeAeMB5wHrAe8B8wH3AfsBAAIDAgcCCwIPAhMCFwIbAh8CIgImAioCLQIxAjUCOAI8AkACQwJHAkoCTgJRAlQCWAJbAl8CYgJlAmkCbAJvAn
2896MCdgJ5AnwCgAKDAoYCiQKMAo8CkgKWApkCnAKfAqICpQKoAqsCrgKxArQCtwK6Ar0CwALCAsUCyALLAs4C0QLUAtYC2QLcAt8C4gLkAucC6gLtAu8C8gL1AvcC+gL9AgADAgMFAwcDCgMNAw8DEgMVAxcDGgMcAx8DIQMkAycDKQMsAy4DMQMzAzYDOAM7Az0DQANCA0QDRwNJA0wDTgNRA1MDVQNYA1oDXQNfA2EDZANmA2gDawNtA28DcgN0A3YDeQN7A30DgAOCA4QDhgMAAAGqAqytAwQFsLGys7S0tgYHCLkJCrwMDQ4PEBESYWJjZGVmZ2hpamtsbW5vcHFyc3R1"),C(g,103360,"YAYAAPAGAABmCQAA5gkAAGYKAADmCgAAZgsAAOYLAABmDAAA5gwAAGYNAABQDgAA0A4AACAPAABAEAAAkBA="),C(g,103440,"5gDmAOYA5gAAAAAA5gDmAL4AqgC+AMgAAAAAAL4A8AC+AL4A0gDSAAAAAADSANIAyADIANIA0gAAAAAA5gDmAOYA5gDwAPAAAAAAAAQBBAGqAIwA3ADcAAAAAAD6AA4BoACMAMgAjAAAAAAA8ACgALQAtADSANIAAAAAAOYA8ACqANwAtAC0AAAAAAD6AA4BlgCCAMgAyAAAAAAADgEOAbYAjADcANwAAAAAAPgAEwGbALQA0gDSAAAAAAAOASwBwwMAAAAAAABsAAAAAAAAAKAAkQCbAJYAAAAAAMgA9QAnAAAAtwAAAAAAAADCugAAyADIAMgAyAAAAAAA0gDmAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGgAAAAAAABscHR4fICEiIyQlJicoKSorAAAs"),C(g,103790,"LQAAAAAAAAAu"),C(g,103816,"Lw=="),C(g,103833,"MAAAAAAAMQ=="),C(g,103856,"Mg=="),C(g,103868,"MwAAAK0AAQBABgEADCAtAAAAAAC+AL4A0gDSAAAAAADmAPoAoACWAMgAyAAAAAAA+gAEAbkAwwDDAL4AAAAAANIA3AD6AMgA+gD6AAAAAAD6APoAMjM0Njk6PD0+P0BBQkNERkdJSktMTU5PUFFSU1RWAACWAIwAtAC0AAAAAADIAMgAbA=="),C(g,104016,"oADIALQAtAAAAAAA3ADwALQAoADIAMgAAAAAAPAA+gBjAAAAZgAAAGgAAABrAAAAcAAAAHQAAAB4AAAA/g=="),C(g,104096,"oACMAJYApQAAAAAA2gAxAZEAkQCqAKAAAAAAAEoBXgEuAAAALAAAACcAAADIAg=="),C(g,104160,"MTIzNTY3OTo7PD4/QEFCREVGR0hJSktMTU5PUFFSU1RW"),C(g,104208,"vgC0AOYA5gAAAAAA+gD6ABESExQWFxkaGxwdHyAhIiQlJicoKSosc3uDmwAAAAAAtAC0AL4AtAAAAAAA5gDwALQAtAC0AKAAAAAAAOYAtABABAAAMAQAADUEAAA4BAAAOQQAAD4EAABDBAAASwQAAE0EAABOBAAATwQAAFAEAABRBAAAVgQAAFcEAABdBAAAXgQ="),C(g,104368,"tACgAMgAyAAAAAAA3ADmAKAAhwDSANIAAAAAAAQBGAGgAIwAyADIAAAAAADcAOYAyADIAMgAyAAAAAAAyADIAKAAvgCvAK8AAAAAAMgA0gCqAHMA0gDwAAAAAAAEARgBqgCqALQAtAAAAAAA8AAEAZYAtADIAMgAAAAAANIA+gCWAJYAtAC0AAAAAAAsASwBoACHANwA3AAAAAAA+gAYAaAAqgDIAMgAAAAAAEABVAG0AKAA8ADwAAAAAAAEAQQBvgC0AMgA5gAAAAAA8AD6AJYAlgC0ALQA0gDmAOYA8ABhAAAA4AAAAOEAAACjHgAA4wAAAKEeAAADAQAAsR4AAK8eAACzHgAAtR4AALceAADiAAAApx4AAKUeAACpHgAAqx4AAK0eAABlAAAA6AAAAOkAAAC7HgAAvR4AALkeAADqAAAAwR4AAL8eAADDHgAAxR4AAMceAABpAAAA7AAAAO0AAADJHgAAKQEAAMseAABvAAAA8gAAAPMAAADPHgAA9QAAAM0eAAD0AAAA0x4AANEeAADVHgAA1x4AANkeAAChAQAA3R4AANseAADfHgAA4R4AAOMeAAB1AAAA+QAAAPoAAADnHgAAaQEAAOUeAACwAQAA6x4AAOkeAADtHgAA7x4AAPEeAAB5AAAA8x4AAP0AAAD3HgAA+R4AAPUe"),C(g,104896,"5gCWAOYA5gDmAAAA8AD6AAAAAAAnAAAAAAAAAAABAgM="),C(g,104945,"AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRo="),C(g,105072,"GxwdAAAeHyAhIiMkACUmAAAAACcAACgAKQAqACsAAAAAAAAsAC0ALgAAAAAALwAAADAAAAAAAAAAMQ=="),C(g,105170,"MgAz"),C(g,105195,"NAAAAAAANQA2"),C(g,105226,"NwA4ADkArQABAAwgAQ=="),C(g,105249,"AQIDAAQAAQIDAAQFBgIDAAQFBwEDAAQICQoDAAAICAoDAAALCwsLAAAMDAwMAAAMAQ4BEwEBAw8DDgYRBgMJAQsPCwEMCQwBDgYOCQ4ODg8OHA4DDxEPEg8PEBEQAREGEQkRDxETEiAS/38AAAAAlgCMANwA3AAAAAAABAEYAYKAeHRkZICAgIyAgKCrq4CAgA=="),C(g,105412,"yAAAAMgAAACQAQAAkAEAAJABAABYAgAAWAIAAFgC"),C(g,105456,"8AAAAKoAAACqAAAAqgAAAKoAAACqAAAAqgAAAKoAAACqAAAAAQIMAw0EDgULAAAAAQIDBAUGAAAAAAAACwwNDg=="),C(g,105540,"MgAAAK8AAABkAAAAMg=="),C(g,105568,"rw=="),C(g,105596,"EBAKEBY="),C(g,105620,"/38AANAHAAAsAQAAYwAAAGMAAABjAAAAAAAAANAH"),C(g,105668,"BA=="),C(g,105680,"QEFCQ0RFRkdISUpLTE1OT1BRUlNUVldYWVtcXV5gYWJkZWdoaWtsbm9xc3R2d3l7fH6AgoSFh4mLjY+Rk5WXmZueoKKkp6mrrrCztbi6vb/CxcfKzdDT1tnc3+Ll6Ozv8vb5/P7/"),C(g,105792,"//7+/v7+/v7+/v39/f38/Pz7+/v6+vn5+Pj39/b19fTz8/Lx7+3r6efl4+Hf3drY1dPQzcvIxcK/u7i1sq6rp6OgnJiUkIyIhH97d3JuaWRgXltYVlNRTkxKR0VCQD48OTc1MzEvLCooJiQiIB4dGxkXFRMSEA4MCwkHBgQDAQ=="),C(g,106064,"//7+/v7+/f38+/v6+fj39vX08vHv7uzq6efl4+Hf3NrY1dPRz83LycfFw8G/vbu5t7SysK2rqaakoZ+cmpeUko+MioeEgX57eHZzcGxpZmNgX11bWlhWVVNSUE9NTEpJSEZFRENCQD8+PTw7Ojk4Nzc2NTQ0MzIyMTAwLy8uLi4tLS0sLCwsLCwsKysrKywrKiopKCgnJiYlJCQjIyIhISAgHx4eHR0cHBsaGhkZGBgXFxYWFRUUFBMTEhISEREQEA8PDw4ODQ0NDAwLCwsKCgoJCQkICAgHBwcHBgYGBQUFBQQEBAQEAwMDAwICAgICAgEBAQEBAQ=="),C(g
vendor: 6,118 bytes, line 2896
2896,106341,"RvIpAC8ALwBF8ikALwAuAEXyKAAuAC0ANPIoAC0tLAA08igAKysrADTyKAAqKioANPIoACkpKQA08igAAOf/zv+1/5z/g/9q/1H/N/8e/wX/7P7T/rr+of6I/m/+Vf48/iP+Cv7x/dj9v/2m/Y39dP1b/UL9Kf0Q/ff83vzF/Kz8k/x6/GH8SPwv/Bb8/fvk+8v7svuZ+4D7Z/tP+zb7HfsE++v60vq6+qH6iPpv+lf6Pvol+g369Pnb+cP5qvmR+Xn5YPlH+S/5Fvn++OX4zfi0+Jz4g/hr+FP4Ovgi+Ar48ffZ98H3qPeQ93j3YPdH9y/3F/f/9uf2z/a39p/2h/Zv9lf2P/Yn9g/29/Xf9cf1sPWY9YD1aPVR9Tn1IfUK9fL02/TD9Kz0lPR99GX0TvQ29B/0CPTw89nzwvOr85TzfPNl807zN/Mg8wnz8vLb8sTyrvKX8oDyafJS8jzyJfIO8vjx4fHL8bTxnvGH8XHxW/FE8S7xGPEB8evw1fC/8Knwk/B98GfwUfA78CXwEPD67+Tvzu+576Pvje9472LvTe847yLvDe/47uLuze647qPuju557mTuT+467iXuEO777eft0u297antlO2A7WvtV+1C7S7tGu0F7fHs3ezJ7LXsoeyN7HnsZexR7D3sKuwW7ALs7+vb68jrtOuh643reutn61TrQest6xrrB+v06uLqz+q86qnqluqE6nHqX+pM6jrqJ+oV6gPq8One6czpuumo6ZbphOly6WHpT+k96SzpGukI6ffo5ujU6MPosuig6I/ofuht6FzoS+g76CroGegI6Pjn5+fX58bntuel55Xnhed152XnVedF5zXnJecV5wXn9ubm5tfmx+a45qjmmeaK5nvma+Zc5k3mPuYw5iHmEuYD5vXl5uXY5cnlu+Wt5Z7lkOWC5XTlZuVY5UrlPOUv5SHlE+UG5fjk6+Te5NDkw+S25KnknOSP5ILkdeRo5FzkT+RD5DbkKuQd5BHkBeT54+3j4ePV48njveOx46XjmuOO44Pjd+Ns42HjVuNL4z/jNOMq4x/jFOMJ4//i9OLq4t/i1eLK4sDituKs4qLimOKO4oTie+Jx4mfiXuJU4kviQuI54i/iJuId4hTiDOID4vrh8eHp4eDh2OHQ4cfhv+G34a/hp+Gf4Zfhj+GI4YDheOFx4WrhYuFb4VThTeFG4T/hOOEx4SrhJOEd4RbhEOEK4QPh/eD34PHg6+Dl4N/g2eDU4M7gyeDD4L7guOCz4K7gqeCk4J/gmuCV4JHgjOCH4IPgfuB64HbgcuBu4GrgZuBi4F7gWuBX4FPgT+BM4EngReBC4D/gPOA54DbgM+Ax4C7gK+Ap4CfgJOAi4CDgHuAc4BrgGOAW4BTgEuAR4A/gDuAN4AvgCuAJ4AjgB+AG4AXgBeAE4APgA+AC4ALgAuAC4ALgAeAC4ALgAuAC4ALgA+AD4ATgBeAF4AbgB+AI4AngCuAL4A3gDuAP4BHgEuAU4BbgGOAa4BzgHuAg4CLgJOAn4CngK+Au4DHgM+A24DngPOA/4ELgReBJ4EzgT+BT4FfgWuBe4GLgZuBq4G7gcuB24HrgfuCD4IfgjOCR4JXgmuCf4KTgqeCu4LPguOC+4MPgyeDO4NTg2eDf4OXg6+Dx4Pfg/eAD4QrhEOEW4R3hJOEq4THhOOE/4UbhTeFU4VvhYuFq4XHheOGA4Yjhj+GX4Z/hp+Gv4bfhv+HH4dDh2OHg4enh8eH64QPiDOIU4h3iJuIv4jniQuJL4lTiXuJn4nHie+KE4o7imOKi4qzituLA4sri1eLf4uri9OL/4gnjFOMf4yrjNOM/40vjVuNh42zjd+OD447jmuOl47HjvePJ49Xj4ePt4/njBeQR5B3kKuQ25EPkT+Rc5GjkdeSC5I/knOSp5Lbkw+TQ5N7k6+T45AblE+Uh5S/lPOVK5VjlZuV05YLlkOWe5a3lu+XJ5djl5uX15QPmEuYh5jDmPuZN5lzma+Z75ormmeao5rjmx+bX5ubm9uYF5xXnJec150XnVedl53XnheeV56XntufG59fn5+f45wjoGegq6DvoS+hc6G3ofuiP6KDosujD6NTo5uj36AjpGuks6T3pT+lh6XLphOmW6ajpuunM6d7p8OkD6hXqJ+o66kzqX+px6oTqluqp6rzqz+ri6vTqB+sa6y3rQetU62freuuN66HrtOvI69vr7+sC7BbsKuw97FHsZex57I3soey17Mns3ezx7AXtGu0u7ULtV+1r7YDtlO2p7b3t0u3n7fvtEO4l7jruT+5k7nnuju6j7rjuze7i7vjuDe8i7zjvTe9i73jvje+j77nvzu/k7/rvEPAl8DvwUfBn8H3wk/Cp8L/w1fDr8AHxGPEu8UTxW/Fx8YfxnvG08cvx4fH48Q7yJfI88lLyafKA8pfyrvLE8tvy8vIJ8yDzN/NO82XzfPOU86vzwvPZ8/DzCPQf9Db0TvRl9H30lPSs9MP02/Ty9Ar1IfU59VH1aPWA9Zj1sPXH9d/19/UP9if2P/ZX9m/2h/af9rf2z/bn9v/2F/cv90f3YPd495D3qPfB99n38fcK+CL4OvhT+Gv4g/ic+LT4zfjl+P74Fvkv+Uf5YPl5+ZH5qvnD+dv59PkN+iX6PvpX+m/6iPqh+rr60vrr+gT7Hfs2+0/7Z/uA+5n7svvL++T7/fsW/C/8SPxh/Hr8k/ys/MX83vz3/BD9Kf1C/Vv9dP2N/ab9v/3Y/fH9Cv4j/jz+Vf5v/oj+of66/tP+7P4F/x7/N/9R/2r/g/+c/7X/zv/n/wAAGQAyAEsAZAB9AJYArwDJAOIA+wAUAS0BRgFfAXgBkQGrAcQB3QH2AQ8CKAJBAloCcwKMAqUCvgLXAvACCQMiAzsDVANtA4YDnwO4A9ED6gMDBBwENQROBGcEgASZBLEEygTjBPwEFQUuBUYFXwV4BZEFqQXCBdsF8wUMBiUGPQZWBm8GhwagBrkG0QbqBgIHGwczB0wHZAd9B5UHrQfGB94H9gcPCCcIPwhYCHAIiAigCLkI0QjpCAEJGQkxCUkJYQl5CZEJqQnBCdkJ8QkJCiEKOQpQCmgKgAqYCq8KxwrfCvYKDgslCz0LVAtsC4MLmwuyC8oL4Qv4CxAMJww+DFUMbAyEDJsMsgzJDOAM9wwODSUNPA1SDWkNgA2XDa4NxA3bDfINCA4fDjUOTA5iDnkOjw6lDrwO0g7oDv8OFQ8rD0EPVw9tD4MPmQ+vD8UP2w/wDwYQHBAyEEcQXRBzEIgQnhCzEMgQ3hDzEAgRHhEzEUgRXRFyEYcRnBGxEcYR2xHwEQUSGRIuEkMSVxJsEoASlRKpEr4S0hLmEvsSDxMjEzcTSxNfE3MThxObE68TwxPWE+oT/hMRFCUUOBRMFF8UcxSGFJkUrBS/FNMU5hT5FAwVHhUxFUQVVxVqFXwVjxWhFbQVxhXZFesV/RUQFiIWNBZGFlgWahZ8Fo4WnxaxFsMW1BbmFvgWCRcaFywXPRdOF2AXcReCF5MXpBe1F8UX1hfnF/gXCBgZGCkYOhhKGFsYaxh7GIsYmxirGLsYyxjbGOsY+xgKGRoZKRk5GUgZWBlnGXYZhRmVGaQZsxnCGdAZ3xnuGf0ZCxoaGigaNxpFGlMaYhpwGn4ajBqaGqgathrEGtEa3xrtGvoaCBsVGyIbMBs9G0obVxtkG3EbfhuLG5gbpBuxG70byhvWG+Mb7xv7GwccExwfHCscNxxDHE8cWxxmHHIcfRyJHJQcnxyqHLUcwRzMHNYc4RzsHPccAR0MHRYdIR0rHTYdQB1KHVQdXh1oHXIdfB2FHY8dmR2iHawdtR2+Hccd0R3aHeMd7B30Hf0dBh4PHhceIB4oHjAeOR5BHkkeUR5ZHmEeaR5xHngegB6IHo8elh6eHqUerB6zHroewR7IHs8e1h7cHuMe6h7wHvYe/R4DHwkfDx8VHxsfIR8nHywfMh83Hz0fQh9IH00fUh9XH1wfYR9mH2sfbx90H3kffR+CH4Yfih+OH5Iflh+aH54foh+mH6kfrR+xH7Qftx+7H74fwR/EH8cfyh/NH88f0h/VH9cf2R/cH94f4B/iH+Qf5h/oH+of7B/uH+8f8R/yH/Mf9R/2H/cf+B/5H/of+x/7H/wf/R/9H/4f/h/+H/4f/h//H/4f/h/+H/4f/h/9H/0f/B/7H/sf+h/5H/gf9x/2H/Uf8x/yH/Ef7x/uH+wf6h/oH+Yf5B/iH+Af3h/cH9kf1x/VH9Ifzx/NH8ofxx/EH8Efvh+7H7cftB+xH60fqR+mH6Ifnh+aH5Yfkh+OH4ofhh+CH30feR90H28fax9mH2EfXB9XH1IfTR9IH0IfPR83HzIfLB8nHyEfGx8VHw8fCR8DH/0e9h7wHuoe4x7cHtYezx7IHsEeuh6zHqwepR6eHpYejx6IHoAeeB5xHmkeYR5ZHlEeSR5BHjkeMB4oHiAeFx4PHgYe/R30Hewd4x3aHdEdxx2+HbUdrB2iHZkdjx2FHXwdch1oHV4dVB1KHUAdNh0rHSEdFh0MHQEd9xzsHOEc1hzMHMEctRyqHJ8clByJHH0cchxmHFscTxxDHDccKxwfHBMcBxz7G+8b4xvWG8obvRuxG6QbmBuLG34bcRtkG1cbShs9GzAbIhsVGwgb+hrtGt8a0RrEGrYaqBqaGowafhpwGmIaUxpFGjcaKBoaGgsa/RnuGd8Z0BnCGbMZpBmVGYUZdhlnGVgZSBk5GSkZGhkKGfsY6xjbGMsYuxirGJsYixh7GGsYWxhKGDoYKRgZGAgY+BfnF9YXxRe1F6QXkxeCF3EXYBdOFz0XLBcaFwkX+BbmFtQWwxaxFp8WjhZ8FmoWWBZGFjQWIhYQFv0V6xXZFcYVtBWhFY8VfBVqFVcVRBUxFR4VDBX5FOYU0xS/FKwUmRSGFHMUXxRMFDgUJRQRFP4T6hPWE8MTrxObE4cTcxNfE0sTNxMjEw8T+xLmEtISvhKpEpUSgBJsElcSQxIuEhkSBRLwEdsRxhGxEZwRhxFyEV0RSBEzER4RCBHzEN4QyBCzEJ4QiBBzEF0QRxAyEBwQBhDwD9sPxQ+vD5kPgw9tD1cPQQ8rDxUP/w7oDtIOvA6lDo8OeQ5iDkwONQ4fDggO8g3bDcQNrg2XDYANaQ1SDTwNJQ0ODfcM4AzJDLIMmwyEDGwMVQw+DCcMEAz4C+ELyguyC5sLgwtsC1QLPQslCw4L9grfCscKrwqYCoAKaApQCjkKIQoJCvEJ2QnBCakJkQl5CWEJSQkxCRkJAQnpCNEIuQigCIgIcAhYCD8IJwgPCPYH3gfGB60HlQd9B2QHTAczBxsHAgfqBtEGuQagBocGbwZWBj0GJQYMBvMF2wXCBakFkQV4BV8FRgUuBRUF/ATjBMoEsQSZBIAEZwROBDUEHAQDBOoD0QO4A58DhgNtA1QDOwMiAwkD8ALXAr4CpQKMAnMCWgJBAigCDwL2Ad0BxAGrAZEBeAFfAUYBLQEUAfsA4gDJAK8AlgB9AGQASwAyABkAMAAAADAAAABAAAAAUAAAAJAAAACgAAAAsAAAAMAAAACAm7XL3Ojt7Obczr+wo5iQjIuMj5KUlZKMg3hpWUk8MSopLTZEVml9j5+qsbKtpJaHeGlcU09PVV5reoiWoquwsa6ooJiRi4iJjZSdqLK7wMG9tKWSfGNKMh4OBQIFDx4wRFltf4yWnJ+fnZuZmZyhqbO/ytXc4N7YzLumj3dgSzouKCkvOkhZanqGkJSVkYmAdWtiXFpcYWl0gIqUmp6dmJCGfHFoYmBja3iIm6/C0t/m5+LXxrKchG9bS0A5Nzg9Q0pQVFZVUk1IQj8+QUlWZ3yTq8PZ6vb8+/Tn1cCqlIBxZF1aXGFocHd9f397dGthV05IRkhOWWZ1hJOfp6uqpJmLe2pbTkZDRU1aa3+SprjFz9PSzcS5raGWjomHh4qNkZKRjIR4aFVBLhwOBQEFDx80TWiBmrDBzdPT0Mi/taukn5ydoKWqrrGwq6OWh3ZjUUI2Ly0xOkhZa36OnKaqqaOYintsXVJKSEpQWmd1gi0AAAAmAAAALQAAAC0AAAA3AAAALQ=="),C(
2896g,110928,"yv5w/hICZAHgAFkAFwD2/8b/8P/NAVcCGAK9AgIDXQLxAc0BMAKUAW4A4ACDAGgAn/+bABYBZv9z+6r94QJ9ALD9KQALAAn/9v9BAFwAUADQ/kcApwD//3oA6QChANX/FgHfAeUBlwEKAYoChgBQAOwARAAEAQ0BswA1AIwAEwElASgBaAABAZgANwG2AAcB9QB9ADoBjAAsAMsA5gAV/+L+FwBrAFwApf8mANABuwGwAGIA8Pxv9p346/vA+Ur6mPoT+0v8Jv0="),C(g,111162,"BgAHAAgACQAKAAsADQAOABAAEgAUABYAGQAcACAAIwAoAC0AMwA5AEAARwBQAFoAZQByAIAAjgCfALMAygDjAAABHAE+AWcBlQHHAQACOAJ+As8CcQOPAwAEcQT8BJ4FVgYfBwAI4Qj4CTsLrAw9DgAQwxHwE3cWWBl7HAAghSPfJ+4ssDL2OABArkekUIVbZmYzc/9/"),C(g,111324,"qMtoQQAAAACoy2jBAAAAAAAAAAAXCtQJkglQCQ8JzgiPCE8IEwjVB5oHYgcoB/MGvgaLBloGKwb9BdMFqQWBBVwFOAUWBfcE1wS7BKAEhgRuBFcEQQQtBBkEBwT1A+QD1APFA7YDqAOZA40DfwNxA2UDVwNLAz4DMgMkAxgDCwP+AvIC5ALYAssCvgKxAqQClwKLAn0CcgJkAlkCTAJAAjQCKAIcAhICBQL7AfAB5QHbAdABxgG7AbIBqAGeAZQBigGBAXcBbgFjAVsBUAFIAT0BNAErASABGAENAQQB+gDwAOcA3ADUAMgAwAC1AKwAoQCYAI4AhQB7AHEAaQBeAFYATABDADkAMQAnAB4AFgALAAQA+//y/+n/4P/X/87/xP+7/7L/qf+g/5X/jf+C/3r/cP9m/1z/Uv9J/z//Nf8r/yL/F/8O/wT/+v7x/uf+3f7T/sr+wP62/q3+o/6b/pD+h/59/nP+av5f/lb+TP5C/jj+Lf4j/hn+Df4D/vf97P3h/dX9yf29/bH9pf2Y/Yz9f/1z/Wb9Wf1M/T/9M/0k/Rn9Cv3//PH85fzY/Mz8vvyz/KT8mPyL/H78cfxi/FX8Rfw4/Cb8GfwG/Pb74vvQ+7r7pfuO+3b7XPtB+yT7Bvvl+sT6n/p5+lP6KPr++dD5oflw+Tz5CfnR+Jr4YPgm+Oj3q/ds9yz36/aq9mj2Jvbj9bAEdgRABA4E3wO0A4sDZQNBAx8DAAPiAsYCqwKSAnoCZAJOAjoCJwIVAgMC8wHjAdQBxgG4AasBnwGTAYcBfAFyAWgBXgFVAUwBQwE7ATMBLAEkAR0BFgEQAQkBAwH9APcA8gDtAOcA4gDdANkA1ADQAMwAxwDDAMAAvAC4ALQAsQCuAKoApwCkAKEAngCbAJkAlgCTAJEAjgCMAIkAhwCFAIMAgAB+AHwAegB4AHcAdQBzAHEAbwBuAGwAagBpAGcAZgBkAGMAYQBgAF8AXQBcAFsAWgBYAFcAVgBVAFQAUwBSAFAATwBOAE0ATABLAEsASgBJAEgARwBGAEUARABEAEMAQgBBAEAAQAA/AD4APQA9ADwAOwA7ADoAOQA5ADgAOAA3ADcANgA2ADUANQA0ADQAMwAzADIAMgAxADEAMAAwAC8ALwAuAC4ALQAtACwALAArACsAKgAqACkAKQApACkAKAAoACcAJwAmACYAJgAmACUAJQAkACQAJAAkACMAIwAjACMAIgAiACEAIQAhACEAIAAgACAAIAAfAB8AHwAfAB4AHgAeAB4AHQAdAB0AHQAcABwAHAAcABsAGwAxNkZyYW1lTWFuYWdlckltcGwAMTJGcmFtZU1hbmFnZXIAMjNTcGVlY2hXYXZlR2VuZXJhdG9ySW1wbAAxOVNwZWVjaFdhdmVHZW5lcmF0b3IAMTNXYXZlR2VuZXJhdG9y"),C(g,112416,"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"),C(g,115203,"QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNf6CK2VHFWdAAAAAAAAAOEMAAPr+Qi52vzo7nrya9wy9vf3/////3z88VFVVVVXFP5ErF89VVaU/F9CkZxERgT8AAAAAAADIQu85+v5CLuY/JMSC/72/zj+19AzXCGusP8xQRtKrsoM/hDpOm+DXVT8="),C(g,115390,"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gryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPim
2896K6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/EhETFBUWFxgZGhscHR4fICERIiMkESUmJygpKissES0uLxAQMBAQEBAQEBAxMjMQNDUQEBERERERERERERERERERERERERERERERERE2ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERNxERERE4ETk6Ozw9PhERERERERERERERERERERERERERERERERERERERERERERERERERERERERE/EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEUBBEUJDREVGR0hJShFLTE1OT1BREFJTVFVWV1hZWltcXRBeX2AQERERYWJjEBAQEBAQEBAQEBERERFkEBAQEBAQEBAQEBAQEBAQERFlEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQERFmZxAQaGkREREREREREREREREREREREREREREREWoREWsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEWxtEBAQEBAQEBAQbhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQb3BxchAQEBAQEBAQc3R1EBAQEBB2dxAQEBB4EBB5EBAQEBAQEBAQEBAQEBA="),C(g,117968,"//////////////////////////////////////////8AAAAAAAAAAP7//wf+//8HAAAAAAAEIAT//3////9//////////////////////////////////8P/AwAfUA=="),C(g,118072,"IAAAAAAA37xA1///+////////////7///////////////////////wP8///////////////////////////+////fwL//////wEAAAAA/7+2AP///4cHAAAA/wf//////////v/D////////////////7x/+4f+fAAD///////8A4P///////////////wMA//////8HMAT////8/x8AAP///wH/BwAAAAAAAP//3z8AAPD/+AP////////////v/9/h/8///v/vn/n///3F459ZgLDP/wMQ7of5///9bcOHGQJewP8/AO6/+////e3jvxsBAM//AB7un/n///3t458ZwLDP/wIA7Mc91hjH/8PHHYEAwP8AAO/f/f///f/j3x1gB8//AADv3/3///3v498dYEDP/wYA79/9/////+ffXfCAz/8A/Oz/f/z///svf4Bf/8D/DAD+/////3//Bz8g/wMAAAAA1vf//6///ztfIP/zAAAAAAEAAAD/AwAA//7///8f/v8D///+////HwAAAAAAAAAA////////f/n/A////////////z//////vyD///////f///////////89fz3//////z3/////PX89/3//////////Pf//////////BwAAAAD//wAA/////////////z8//v//////////////////////////////////////////////////////////n////v//B////////////8f/Af/fDwD//w8A//8PAP/fDQD////////P//8BgBD/AwAAAAD/A///////////////Af//////B///////////PwD///9//w//AcD/////Px8A//////8P////A/8DAAAAAP///w//////////f/7/HwD/A/8DgA=="),C(g,118768,"////////7//vD/8DAAAAAP//////8////////7//AwD///////9/AP/j//////8//wH//////+cAAAAAAN5vBP///////////////////////////////wAAAACA/x8A//8/P/////8/P/+q////P////////99f3B/PD/8f3B8="),C(g,118910,"AoAAAP8f"),C(g,118928,"hPwvPlC9//PgQwAA//////8B"),C(g,118982,"wP///////wMAAP//////f///////f/////////////////////8feAwA/////78g/////////4AAAP//fwB/f39/f39/f/////8AAAAAAIA="),C(g,119088,"4AAAAP4DPh/+////////////f+D+//////////////fg///////+/////////////38AAP///wcAAAAAAAD///////////////////////////////8/"),C(g,119184,"////////////////////////////////////////AAD//////////////////////x8AAAAAAAAAAP//////P/8f////DwAA//////9/8I///////////////////wAAAACA//z////////////////5////////fAAAAAAAgP+//////wAAAP///////w8A//////////8vAP8DAAD86P//////B/////8HAP///x/////////3/wCA/wP///9/////////fwD/P/8D//9//P////////9/BQAAOP//PAB+fn4Af3////////f/AP///////////////////wf/A///////////////////////////DwD//3/4//////8P/////////////////z//////////////////AwAAAAB/APjg//1/X9v/////////////////AwAAAPj///////////////8/AAD///////////z///////8AAAAAAP8P"),C(g,119582,"3/////////////////////8fAAD/A/7//wf+//8HwP////////////9//Pz8HAAAAAD/7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////////Hw=="),C(g,119712,"////H////////wEAAAAAAP////8A4P///wf//////wf///8//////w//PgAAAAAA/////////////////////////z//A/////8P/////w///////wD///////8P"),C(g,119824,"////////fwD//z8A/w=="),C(g,119856,"P/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//Aw=="),C(g,119984,"////////////AQAAAAAAAP///////wcA////////BwD//////wD/Aw=="),C(g,120048,"////H4AA//8/"),C(g,120076,"//9/AP//////////PwAAAMD/AAD8////////AQAA////Af8D////////x/9wAP////9HAP//////////HgD/FwAAAAD///v///+fQAAAAAAAAAAAf73/v/8B/////////wH/A++f+f///e3jnxmB4A8="),C(g,120208,"//////////+7B/+DAAAAAP//////////swD/Aw=="),C(g,120256,"////////P38AAAA/AAAAAP////////9/EQD/AwAAAAD///////8/Af8DAAAAAAAA////5/8H/wM="),C(g,120336,"/////////wE="),C(g,120356,"////////////AwCA"),C(g,120388,"//z///////waAAAA////////538AAP///////////yAAAAAA/////////wH//f////9/fwEA/wMAAPz////8///+fw=="),C(g,120464,"f/v/////f7TLAP8Dv/3///9/ewH/Aw=="),C(g,120524,"//9/AP////////////////////////8D"),C(g,120560,"/////////////////38AAP///////////////////////////////w8="),C(g,120624,"//////9/"),C(g,120656,"//////////9/"),C(g,120688,"/////////wH///9//wM="),C(g,120714,"////PwAA////////AAAPAP8D+P//4P//"),C(g,120760,"//////////8="),C(g,120784,"////////////h/////////+A//8AAAAAAAAAAAsAAAD/////////////////////////////////////////AP///////////////////////////////////////wcA////fwAAAAAAAAcA8AD/////////////////////////////////////////////////////////////////D/////////////////8H/x//Af9D"),C(g,120976,"/////////////9///////////99k3v/r7/////////+/59/f////e1/8/f//////
2896////////////////////////////////////////////////P/////3///f////3///f////3///f////3/////9/////f//98////////9////52wc="),C(g,121136,"//////8fgD//Qw=="),C(g,121192,"//////8P/wP///////////////////////////////8fAAAAAAAAAP//////////jwj/Aw=="),C(g,121264,"7////5b+9wqE6paqlvf3Xv/7/w/u+/8P"),C(g,121302,"////A////wP///8D"),C(g,121328,"/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8="),C(g,121601,"ARcCHRgTAx4bGQsUCAQNHxYcEhoKBwwVEQkGEAUPDt4SBJUAAAAA////////////////INsBABQAAABDLlVURi04"),C(g,121696,"TENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVM="),C(g,121776,"Qy5VVEYtOA=="),C(g,121800,"MAUCAE5vIGVycm9yIGluZm9ybWF0aW9uAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE11bHRpaG9wIGF0dGVtcHRlZABSZXF1aXJlZCBrZXkgbm90IGF2YWlsYWJsZQBLZXkgaGFzIGV4cGlyZWQAS2V5IGhhcyBiZWVuIHJldm9rZWQAS2V5IHdhcyByZWplY3RlZCBieSBzZXJ2aWNl"),C(g,123730,"pQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMB"),C(g,123928,"IQQAAAAAAAAAAC8C"),C(g,123960,"NQRHBFYE"),C(g,123982,"oAQ="),C(g,124002,"RgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBw=="),C(g,124048,"GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk="),C(g,124129,"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO"),C(g,124187,"DA=="),C(g,124199,"EwAAAAATAAAAAAkMAAAAAAAMAAAM"),C(g,124245,"EA=="),C(g,124257,"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ"),C(g,124303,"Eg=="),C(g,124315,"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa"),C(g,124370,"GgAAABoaGgAAAAAAAAk="),C(g,124419,"FA=="),C(g,124431,"FwAAAAAXAAAAAAkUAAAAAAAUAAAU"),C(g,124477,"Fg=="),C(g,124489,"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG"),C(g,124564,"EQ=="),C(g,124604,"//////////8="),C(g,124672,"0XSeAFedvSqAcFIP//8+Jw
2896oAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAAIAAAAAkAAAAKAAAADQAAAAsAAAAMAAAAhQAAAAAgAAABIAAAAiAAAAMgAAAEIAAABSAAAAYgAAAIIAAACSAAAAogAAAoIAAAKSAAAF8gAAAAMAAAAAAAAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAGjpAQB46AEAZOoBAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAGjpAQCo6AEAnOgBAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAGjpAQDY6AEAnOgBAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAGjpAQAI6QEA/OgBAAAAAADM6AEAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAAAAAAsOkBABQAAAAcAAAAFgAAABcAAAAYAAAAHQAAAB4AAAAfAAAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAAGjpAQCI6QEAzOgBAAAAAAAg6gEACQAAACAAAAAhAAAAAAAAAEjqAQAJAAAAIgAAACMAAAAAAAAACOoBAAkAAAAkAAAAJQAAAFN0OWV4Y2VwdGlvbgAAAABA6QEA+OkBAFN0OWJhZF9hbGxvYwAAAABo6QEAEOoBAAjqAQBTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAAaOkBACzqAQAg6gEAU3Q5dHlwZV9pbmZvAAAAAEDpAQBU6gE="),C(g,125552,"wLEAAMCyAADAswAAwLQAAMC1AADAtgAAwLcAAMC4AADAuQAAwLoAAMC7AADAvAAAwL0AAMC+AADAvwAAwMAAAMDBAADAwgAAwMMAAMDEAADAxQAAwMIAAMDGAADAxwAAwMgAAMDJAADAygAAwMsAAMDMAADAzQAAwM4AAMDPAADA0AAAwNEAAMDSAADA0wAAwNQAAMDVAADA1gAAwNcAAMDYAADA2QAAwNIAAMDaAADA2wAAwNwAAMDdAADA3gAAwN8AAMDgAADA4QAAwNgAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA4gAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwOMAAMDkAADAwgAAwMIAAMDCAADA5QAAwMIAAMDmAADA5wAAwOgAAMDpAADA6gAAwOsAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA7AAAwO0AAMDCAADA7gAAwO8AAMDCAADA8AAAwPEAAMDyAADA8wAAwPQAAMD1AADA9gAAwPcAAMD4AADAwgAAwPkAAMD6AADA+wAAwPwAAMD9AADA/gAAwP8AAMAAAQDAAQEAwAIBAMADAQDABAEAwAUBAMAGAQDABwEAwAgBAMAJAQDACgEAwAsBAMAMAQDACwEAwA0BAMAOAQDADwEAwAsBAMDCAADAwgAAwMIAAMAQAQDAEQEAwBIBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMDCAADAwgAAwBMBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBQBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBUBAMAWAQDACwEAwAsBAMAXAQDAGAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAGQEAwMIAAMDCAADAGgEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAGwEAwBwBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMAdAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwB4BAMAfAQDAIAEAwCEBAMAiAQDAIwEAwCQBAMAlAQDA2AAAwNgAAMAmAQDACwEAwAsBAMALAQDACwEAwAsBAMAnAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwCgBAMApAQDACwEAwAsBAMAqAQDACwEAwCsBAMALAQDALAEAwC0BAMAuAQDALwEAwNgAAMDYAADAMAEAwDEBAMAyAQDAMwEAwDQBAMALAQDACwEAwAsBAMALAQDACwEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA1AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwDYBAMA3AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAOAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA5AQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMA6AQDAOwEAwDwB"),C(g,128496,"oVcBAEEAAADdVwEAQgAAACZYAQBDAAAAa1gBAEQAAADSWAEARQAAABNZAQBGAAAAfFkBAEcAAACEWQEASAAAADBaAQBJAAAAZ1oBAEoAAADuWgEASwAAAC5bAQBMAAAAcVsBAE0AAADZWwEATgAAAGtcAQBPAAAAh1wBAAgAAADcXAEACQAAAB9dAQAKAAAAZ10BAAsAAACVXQEADAAAAMpdAQANAAAAD14BAA4AAAAqXgEADwAAAIZeAQAPAAAAvV4BABAAAABDXwEA
2896EQAAAH1fAQASAAAAq18BABMAAADZXwEAFAAAAAVgAQAVAAAAMGABABcAAABgYAEAGAAAAHlgAQAZAAAAtWABABsAAADdYAEAHAAAAPBgAQAdAAAAI2EBACAAAABEYQEAIQAAAG9hAQAiAAAAnWEBACMAAADRYQEAJAAAAPNhAQAlAAAAFWIBACYAAABZYgEAKAAAAH1iAQApAAAArmIBACoAAADoYgEAKwAAADVjAQAtAAAAb2MBAC4AAACnYwEALwAAAOZjAQAwAAAAeGQBADEAAACdZAEAMgAAAM9kAQAzAAAA/mQBAGQAAABgZQEAyAAAAN1lAQDJAAAAAAAAAP////8iZgEAAQAAAD5mAQACAAAABVUBAAMAAADNZgEAEQAAADRnAQASAAAAg2cBABMAAAD7ZwEAFAAAADtoAQAVAAAATGgBABYAAAB0aAEAEQAAALdoAQAhAAAAymgBACIAAAD+aAEAIwAAAEtpAQAkAAAAaWkBACUAAACfaQEAJgAAAOJpAQAhAAAAAAAAAP////8AAAAAAAAAACYAAAAAAAAAAQAAAJByAQABAAAAkHMBAAEAAACQdAEAAQAAAJB1AQABAAAAkHYBAAEAAACQdwEAAQAAAJB4AQABAAAAkHkBAAEAAACQegEAAQAAAJB7AQABAAAAkHwBAAEAAACQfQEAAQAAAJB+AQABAAAAkH8BAAEAAACQgAEAAQAAAJCBAQABAAAAkIIBAAUAAAAAAAAABg=="),C(g,129280,"oIMBAKCDAQAghAEAIIQBAKCEAQAghQEAoIUBACCGAQCghgEAoIYBACCHAQAghwEAoIcBAKCHAQAgiAEAIIgBAKCIAQCgiAEAIIkBACCJAQAuOU4ycIoBAAMHBQCQigEALjlOLnCKAQADBwUAkIoBAC45Ti5wigEAAwcFAJCKAQAuOVoycIoBAAMJBQCVigEALjlOMnCKAQADBwUAkIoBAC45SjdwigEABAcFAJqKAQAuOUo3cIoBAAQHBQCaigEALjlKN3CKAQAEBwUAmooBAC45TjJwigEAAwcFAJCKAQAuOU4ucIoBAAMHBQCQigEALjlOMnCKAQADBwUAkIoBACIpKSBwigEAAwcFAJqKAQAuOTcycIoBAAMHBQCaigEAo1MBABABAAAAVAEADAEAANJUAQARAQAAClUBACMAAAB/VQEAGwAAADRWAQAVAAAAxVYBAAABAAABVwEAAgEAAE1XAQADAQAAvVcBAAQBAAD7VwEABQEAAE5YAQATAAAAkVgBAB4AAADVWAEAFwAAAF9ZAQAaAAAAkVkBABkAAAD0WQEAGAAAADhaAQAdAAAAzloBABwAAAAPWwEAFgAAADdbAQAU"),C(g,129744,"Q1gBABABAACIWAEADAEAAPNYAQARAQAAM1kBACMAAACHWQEAGwAAAOBZAQAVAAAAQloBAAABAACcWgEAAgEAAABbAQADAQAAT1sBAAQBAACnWwEABQEAAEhcAQATAAAAc1wBAB4AAADEXAEAFwAAABVdAQAaAAAAXV0BABkAAACIXQEAGAAAANJdAQAdAAAABF4BABwAAAAvXgEAFgAAAF9eAQAU"),C(g,129920,"u08BAAEAAABcUAEAAAAAAM9QAQAAAAAAOFIBAAAAAABBUwEAAAAAAIFTAQAAAAAA+1MBAAAAAADnVAEAAAAAACVVAQAAAAAAiVUBAAAAAABUVgEAAAAAAPxWAQAAAAAADlcBAAAAAABIVwEAAAAAAKdXAQAAAAAA9lcBAAAAAAA3WAEAAAAAAKNYAQAAAAAA6FgBAAAAAAAuWQEAAAAAAH9ZAQAAAAAA61kBAAAAAAD/////g00BAIIAAAB5AAAAdg=="),C(g,130128,"4I8BAOCPAQBQkAEAwJABAMCQAQDAkAEAAQAAANQKAwCMCgMAROcC"),C(g,130176,"I0sBAAEAAAAAAAAA/////1dMAQABAAAA+0wBAAIAAADGTQEAAwAAAAAAAAD/////Vk4BAAAAAADSTgEAAQAAALJPAQACAAAAGFABABQAAAAAAAAA/////wAAAAAAAAAAt1ABABIAAABNUgEAFAAAAN5SAQAkAAAAhlMBAEAAAAARVAEAwQAAAAAAAAD/////q1QBAAEAAAAAAAAA/////1dMAQAAAAAAGVUBAAEAAACRVQEAAgAAAENWAQADAAAA31YBAAQAAAAgVwEABQAAAAAAAAD/////AAAAAAAAAABXTAEAAQAAAIlXAQACAAAAr1cBAAMAAADfVgEABAAAACBXAQAFAAAAAAAAAP////8AAAAAClgBADxYAQAYUAEAqFgB"),C(g,130480,"8l8BAAEAAAA5YAEAAgAAAFhgAQADAAAAgWABAAQAAACwYAEABQAAANNgAQAGAAAABWEBAAcAAAAqYQEACAAAAFFhAQAJAAAAdmEBAAoAAACQYQEACwAAAMNhAQAMAAAA+WEBAA0AAAAuYgEADgAAAE5iAQAPAAAAhmIBAA8AAADUYgEADwAAABljAQAPAAAAP2MBAA8AAACkYwEABwAAANpjAQAHAAAAO2QBAAcAAACEZAEABwAAAK9kAQAHAAAAw2QBAA4AAADnZAEADgAAAAplAQAQAAAA9GUBABAAAAArZgEAEAAAAN9WAQAQAAAAbmYBABAAAADBZgEAEA=="),C(g,130752,"f20BAD4AAACjbQEAPOAAAM1tAQAmAAAA1G0BACIAAAA6bgEAIAAAAHhuAQAnAAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAxWcBAAAAAAAJaAEAHgAAAEJoAQBBAAAAQ1YBAGQAAACGaAEAlgAAAKVoAQDmAAAAAAAAAP////9jZwEAZAAAAL5oAQA8AAAA6WgBAFAAAABDVgEAZAAAABJpAQB9AAAAUmkBAKAAAAAAAAAA/////wAAAAAAAAAAY2cBAGQAAACUaQEARgAAAN5pAQBVAAAAQ1YBAGQAAAAoagEAbgAAAGdqAQB4AAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAlGkBABQAAADeaQEAMgAAAENWAQBkAAAAKGoBAIwAAABnagEAtAAAAAAAAAD/////"),C(g,131076,"QP8BAAD/AQCA/wEAwP8B"),C(g,131104,"wmoBACDgAAALawEACeAAAEFrAQBf4AAAe2sBACI="),C(g,131152,"q2sBAAEAAAC8awEAAgAAAA1sAQAD"),C(g,131184,"+EwBAMJNAQBTTgEACU8BAOVPAQBkUAEA2lABAGdSAQDyUgEA1FMBAGFUAQ=="),C(g,131236,"iFIBADlTAQAAAAAAnlMBAGRUAQDwVAEAL1UBAJpVAQBQVgE="),C(g,131280,"Y1IBAIADAACAA/8DbGUAAAcAAAA0UwEAIAQAAAAELwUAAAAAAAAAAHNTAQAwBQAAMAWPBXloAAAEAAAAG1QBAJAFAACQBf8FAAAAAAAAAAC3VAEAAAYAAAAG/wYAAAAAAAAAACpVAQAABwAAAAdPBwAAAAAAAAAAllUBAAAJAAAACX8JaWgAAAQAAAA/VgEAgAkAAIAJ/wluYgAABAAAANZWAQAACgAAAAp/CmFwAAAEAAAAClcBAIAKAACACv8KdWcAAAQAAABfVwEAAAsAAAALfwsAAAAAAAAAAM5XAQCACwAAgAv/C2F0AAAEAAAAD1gBAAAMAAAADH8MZXQAAAAAAAAsWAEAgAwAAIAM/wxuawAABAAAAJ9YAQAADQAAAA1/DWxtAAAEAAAA5FgBAIANAACADf8NaXMAAAQAAAA8WQEAAA4AAAAOfw4AAAAAAAAAAJtZAQCADgAAgA7/DgAAAAAAAAAA8FkBAAAPAAAAD/8PAAAAAAAAAAA0WgEAABAAAAAQnxAAAAAAAAAAANlaAQCgEAAAoBD/EGFrAAAEAAAAGFsBAAARAAAAEf8Rb2sAAAQAAABKWwEAABIAAAASnxMAAAAAAAAAALlbAQAAKAAAACj/KAAAAAAQAAAAWlwBAEAwAABAMP8wAAAAAAgAAACDXAEAADEAAAAx/58AAAAACAAAABhbAQAApwAAAKf/129rAAAM"),C(g,131840,"WAIAAKoAAACwBAAAhwAAANAHAABuAAAAuAsAAG4AAAD/////"),C(g,131888,"qAsD"),C(g,131904,"mF4BAAEAAAA4XwEAAgAAAGFfAQADAAAAnV8BAAYAAADCXwEACQAAAPhfAQAKAAAAJ2ABAAQAAABNYAEABQAAAI1gAQAkAAAAq2ABAAsAAADVYAEADAAAAPZgAQANAAAAFmEBAA4AAABMYQEADwAAAGdhAQAQAAAAlmEBABEAAAC7YQEAEgAAAAJiAQAfAAAAG2IBACUAAABIYgEAIAAAAJJiAQAhAAAAzmIBACIAAADwYgEABwAAAC5jAQAI"),C(g,132112,"jmMBAAEAAAC8YwEAAgAAAAAAAAABAAAAFJwBACCcAQAsnAEAPAAAABo="),C(g,132163,"AgMFCAsOEhYbICUrMTc+RUxTWmJpcXmAiJCYn6autbzCyc/V2uDk6e3w9Pb5+/z9/f39/Pv59vTw7enk4NrVz8nCvLWupp+Yk
2896IiAeXFpYlpTTEU+NzErJSAbFhIOCwgFAwI="),C(g,132288,"QAAAAAABAAAAAAAA7AQCACcAAAAoAAAAKQAAACoAAAArAAAAQOkBAMO2AQBo6QEAsLYBAOQEAgAAAAAAJAUCACwAAAAtAAAALgAAAC8AAABA6QEAArcBAGjpAQDstgEAEAUCAGjpAQDStgEAGAUCAAU="),C(g,132412,"DQ=="),C(g,132436,"CwAAAAoAAADoeAM="),C(g,132460,"Ag=="),C(g,132476,"//////////8="),C(g,132544,"MAUCAAAAAAAF"),C(g,132564,"MA=="),C(g,132588,"CwAAADEAAAD4eAMAAAQ="),C(g,132612,"AQ=="),C(g,132628,"/////wo="),C(g,132696,"yAUCAAB/BA==");var bn,At=(bn=[null,function(A){var t,r=0;return r=e[(A|=0)>>2],e[A>>2]=r+1,r=255&(t=d[0|r]),(0|t)<0&&(r=y[(e[A+12>>2]+(r<<1)|0)-256>>1]),0|r},Zi,function(A){var t,r;return t=e[(A|=0)>>2],r=e[t>>2],e[A>>2]=t+4,0|r},function(A){var t=0,r=0;return t=e[(A|=0)>>2],(0|(r=Wa(A)))==65533&&(e[A>>2]=t+1,e[A+8>>2]=1,r=255&(t=d[0|t]),(0|t)>=0||(r=y[(e[A+12>>2]+(r<<1)|0)-256>>1])),0|r},Wa,function(A){var t,r,s=0;return(s=e[4+(A|=0)>>2])>>>0<=(r=(t=e[A>>2])+1|0)>>>0?(e[A>>2]=s,65533):(e[A>>2]=r,s=u[0|t],e[A>>2]=t+2,s|u[t+1|0]<<8)},function(A,t){var r,s,o;return t|=0,A=e[(A|=0)>>2],r=e[A+4>>2],s=e[t>>2],(t=nr(r+1|0,(o=e[s+4>>2])+1|0))||(t=d[0|r]-d[0|o]|0)||(t=nr(e[A>>2],e[s>>2])),0|t},function(A,t){var r;return A|=0,t=e[(t|=0)>>2],r=e[A>>2],(A=e[t+16>>2]-e[r+16>>2]|0)||(A=nr(e[r>>2],e[t>>2])),0|A},Xi,function(A,t,r,s){var o;return t|=0,r|=0,s|=0,Y=o=Y-16|0,(A=0|sA(e[60+(A|=0)>>2],0|t,0|r,255&s,o+8|0))?(e[56798]=A,A=-1):A=0,Y=o+16|0,ce=A?-1:e[o+12>>2],0|(A?-1:e[o+8>>2])},function(A,t,r){t|=0,r|=0;var s,o=0,l=0,c=0,f=0,m=0,I=0;Y=s=Y-32|0,o=e[28+(A|=0)>>2],e[s+16>>2]=o,c=e[A+20>>2],e[s+28>>2]=r,e[s+24>>2]=t,t=c-o|0,e[s+20>>2]=t,c=t+r|0,m=2;e:{A:{t=s+16|0,(o=0|je(e[A+60>>2],0|t,2,s+12|0))?(e[56798]=o,o=-1):o=0;r:{if(o)o=t;else for(;;){if((0|(l=e[s+12>>2]))==(0|c))break r;if((0|l)<0){o=t;break A}if(f=l-((I=(f=e[t+4>>2])>>>0<l>>>0)?f:0)|0,e[(o=(I<<3)+t|0)>>2]=f+e[o>>2],e[(t=(I?12:4)+t|0)>>2]=e[t>>2]-f,c=c-l|0,t=o,m=m-I|0,(l=0|je(e[A+60>>2],0|t,0|m,s+12|0))?(e[56798]=l,l=-1):l=0,l)break}if((0|c)!=-1)break A}t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,e[A+16>>2]=t+e[A+48>>2],A=r;break e}e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A>>2]=32|e[A>>2],A=0,(0|m)!=2&&(A=r-e[o+4>>2]|0)}return Y=s+32|0,0|A},function(A,t,r){A|=0,t|=0,r|=0;var s,o=0,l=0,c=0;Y=s=Y-32|0,e[s+16>>2]=t,o=e[A+48>>2],e[s+20>>2]=r-!!(0|o),l=e[A+44>>2],e[s+28>>2]=o,e[s+24>>2]=l;e:{A:{if((o=0|rA(e[A+60>>2],s+16|0,2,s+12|0))?(e[56798]=o,o=-1):o=0,o)t=32;else{if((0|(o=e[s+12>>2]))>0)break A;t=o?32:16}e[A>>2]=t|e[A>>2];break e}c=o,(l=e[s+20>>2])>>>0>=o>>>0||(o=e[A+44>>2],e[A+4>>2]=o,e[A+8>>2]=o+(c-l|0),e[A+48>>2]&&(e[A+4>>2]=o+1,d[(t+r|0)-1|0]=u[0|o]),c=r)}return Y=s+32|0,0|c},function(A){return 0|De(e[60+(A|=0)>>2])},nn,function(A,t,r,s,o,l){A|=0,t=+t,r|=0,s|=0,o|=0,l|=0;var c,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0,AA=0;Y=c=Y-560|0,e[c+44>>2]=0,F(+t),f=0|B(1),B(0),(0|f)<0?(le=1,Ve=84997,F(+(t=-t)),f=0|B(1),B(0)):2048&o?(le=1,Ve=85e3):(Ve=(le=1&o)?85003:84998,AA=!le);e:if(2146435072&~f){Me=c+16|0;A:{r:{a:{if(t=_n(t,c+44|0),(t+=t)!=0){if(f=e[c+44>>2],e[c+44>>2]=f-1,(0|(Qe=32|l))!=97)break a;break A}if((0|(Qe=32|l))==97)break A;x=e[c+44>>2],P=(0|s)<0?6:s;break r}x=f-29|0,e[c+44>>2]=x,t*=268435456,P=(0|s)<0?6:s}for(m=Z=(c+48|0)+((0|x)>=0?288:0)|0;s=t<4294967296&t>=0?~~t>>>0:0,e[m>>2]=s,m=m+4|0,(t=1e9*(t-+(s>>>0)))!=0;);if((0|x)<=0)s=x,f=m,I=Z;else for(I=Z,s=x;;){if(W=(0|s)>=29?29:s,!(I>>>0>(f=m-4|0)>>>0)){for(s=0;b=e[f>>2],Oe=s,s=31&W,(63&W)>>>0>=32?(_=b<<s,s=0):(_=(1<<s)-1&b>>>32-s,s=b<<s),b=_+U|0,s=Ki(Oe=Oe+s|0,s>>>0>Oe>>>0?b+1|0:b,1e9),e[f>>2]=Oe-at(s,ce,1e9,0),I>>>0<=(f=f-4|0)>>>0;);s&&(e[(I=I-4|0)>>2]=s)}for(;I>>>0<(f=m)>>>0&&!e[(m=f-4|0)>>2];);if(s=e[c+44>>2]-W|0,e[c+44>>2]=s,m=f,!((0|s)>0))break}if((0|s)<0)for(Ce=1+((P+25>>>0)/9|0)|0,U=(0|Qe)==102;;){if(_=(0|(s=0-s|0))>=9?9:s,f>>>0<=I>>>0)m=e[I>>2];else{for(W=1e9>>>_|0,b=~(-1<<_),s=0,m=I;Oe=s,s=e[m>>2],e[m>>2]=Oe+(s>>>_|0),s=O(W,s&b),(m=m+4|0)>>>0<f>>>0;);m=e[I>>2],s&&(e[f>>2]=s,f=f+4|0)}if(s=_+e[c+44>>2]|0,e[c+44>>2]=s,I=(!m<<2)+I|0,f=f-(m=U?Z:I)>>2>(0|Ce)?m+(Ce<<2)|0:f,!((0|s)<0))break}if(s=0,!(f>>>0<=I>>>0||(s=O(Z-I>>2,9),m=10,(b=e[I>>2])>>>0<10)))for(;s=s+1|0,b>>>0>=(m=O(m,10))>>>0;);if((0|(m=(P-((0|Qe)!=102?s:0)|0)-((0|Qe)==103&!!(0|P))|0))<(O(f-Z>>
vendor: 4,697 bytes, line 2896
28962,9)-9|0)){if(x=((((0|x)<0?4:292)+c|0)+((b=(0|(W=m+9216|0))/9|0)<<2)|0)-4048|0,m=10,(0|(_=W-O(b,9)|0))<=7)for(;m=O(m,10),(0|(_=_+1|0))!=8;);if(!(!(U=(W=e[x>>2])-O(m,Ce=(W>>>0)/(m>>>0)|0)|0)&(0|(b=x+4|0))==(0|f))&&(!(1&Ce)&&(t=9007199254740992,!(1&d[x-4|0])|(0|m)!=1e9|I>>>0>=x>>>0)||(t=9007199254740994),re=(0|f)==(0|b)?1:1.5,re=(b=m>>>1|0)>>>0>U>>>0?.5:(0|b)==(0|U)?re:1.5,u[0|Ve]!=45|AA||(re=-re,t=-t),b=W-U|0,e[x>>2]=b,t+re!=t)){if(s=m+b|0,e[x>>2]=s,s>>>0>=1e9)for(;e[x>>2]=0,(x=x-4|0)>>>0<I>>>0&&(e[(I=I-4|0)>>2]=0),s=e[x>>2]+1|0,e[x>>2]=s,s>>>0>999999999;);if(s=O(Z-I>>2,9),m=10,!((b=e[I>>2])>>>0<10))for(;s=s+1|0,b>>>0>=(m=O(m,10))>>>0;);}f=f>>>0>(m=x+4|0)>>>0?m:f}for(;b=f,!(W=f>>>0<=I>>>0)&&!e[(f=b-4|0)>>2];);if((0|Qe)==103){if(P=((f=(0|(m=P||1))>(0|s)&(0|s)>-5)?~s:-1)+m|0,l=(f?-1:-2)+l|0,!(x=8&o)){if(f=-9,!W&&(x=e[b-4>>2])&&(_=10,f=0,!((x>>>0)%10|0))){for(;m=f,f=f+1|0,!((x>>>0)%((_=O(_,10))>>>0)|0););f=~m}m=O(b-Z>>2,9),(-33&l)!=70?(x=0,P=(0|(f=(0|(f=((s+m|0)+f|0)-9|0))>0?f:0))>(0|P)?P:f):(x=0,P=(0|(f=(0|(f=(f+m|0)-9|0))>0?f:0))>(0|P)?P:f)}}else x=8&o;if(_=-1,(0|((W=x|P)?2147483645:2147483646))<(0|P))break e;if(U=1+(!!(0|W)+P|0)|0,(0|(m=-33&l))!=70){if((Me-(f=Ea(((f=s>>31)^s)-f|0,0,Me))|0)<=1)for(;d[0|(f=f-1|0)]=48,(Me-f|0)<2;);if(d[0|(Ce=f-2|0)]=l,d[f-1|0]=(0|s)<0?45:43,(0|(f=Me-Ce|0))>(2147483647^U))break e}else{if((2147483647^U)<(0|s))break e;f=(0|s)>0?s:0}if((0|(s=f+U|0))>(2147483647^le))break e;Lr(A,32,r,U=s+le|0,o),Yr(A,Ve,le),Lr(A,48,r,U,65536^o);r:{a:{n:{if((0|m)==70){for(s=8|(l=c+16|0),x=9|l,I=m=I>>>0>Z>>>0?Z:I;;){f=Ea(e[I>>2],0,x);o:if((0|m)==(0|I))(0|f)==(0|x)&&(d[c+24|0]=48,f=s);else{if(c+16>>>0>=f>>>0)break o;for(;d[0|(f=f-1|0)]=48,c+16>>>0<f>>>0;);}if(Yr(A,f,x-f|0),!(Z>>>0>=(I=I+4|0)>>>0))break}if(W&&Yr(A,85998,1),(0|P)<=0|I>>>0>=b>>>0)break n;for(;;){if((f=Ea(e[I>>2],0,x))>>>0>c+16>>>0)for(;d[0|(f=f-1|0)]=48,c+16>>>0<f>>>0;);if(Yr(A,f,(0|P)>=9?9:P),f=P-9|0,b>>>0<=(I=I+4|0)>>>0)break a;if(s=(0|P)>9,P=f,!s)break}break a}o:if(!((0|P)<0))for(Z=I>>>0<b>>>0?b:I+4|0,s=8|(l=c+16|0),b=9|l,m=I;;){(0|b)==(0|(f=Ea(e[m>>2],0,b)))&&(d[c+24|0]=48,f=s);c:if((0|m)==(0|I))Yr(A,f,1),f=f+1|0,x|P&&Yr(A,85998,1);else{if(c+16>>>0>=f>>>0)break c;for(;d[0|(f=f-1|0)]=48,c+16>>>0<f>>>0;);}if(Yr(A,f,(0|(l=b-f|0))>(0|P)?P:l),P=P-l|0,Z>>>0<=(m=m+4|0)>>>0)break o;if(!((0|P)>=0))break}Lr(A,48,P+18|0,18,0),Yr(A,Ce,Me-Ce|0);break r}f=P}Lr(A,48,f+9|0,9,0)}Lr(A,32,r,U,8192^o),_=(0|r)<(0|U)?U:r;break e}if(x=(l<<26>>31&9)+Ve|0,!(s>>>0>11)){for(f=12-s|0,re=16;re*=16,f=f-1|0;);t=u[0|x]!=45?t+re-re:-(re+(-t-re))}for((0|Me)==(0|(f=Ea(((f=e[c+44>>2])^(m=f>>31))-m|0,0,Me)))&&(d[c+15|0]=48,f=c+15|0),Z=2|le,I=32&l,m=e[c+44>>2],d[0|(P=f-2|0)]=l+15,d[f-1|0]=(0|m)<0?45:43,f=8&o,m=c+16|0;l=m,b=se(t)<2147483648?~~t:-2147483648,d[0|m]=I|u[b+124512|0],!((0|s)>0|f)&(t=16*(t-+(0|b)))==0|((m=l+1|0)-(c+16|0)|0)!=1||(d[l+1|0]=46,m=l+2|0),t!=0;);_=-1,(2147483645-(l=(f=Me-P|0)+Z|0)|0)<(0|s)||(Lr(A,32,r,l=(s=!s||((I=m-(c+16|0)|0)-2|0)>=(0|s)?I=m-(c+16|0)|0:s+2|0)+l|0,o),Yr(A,x,Z),Lr(A,48,r,l,65536^o),Yr(A,c+16|0,I),Lr(A,48,s-I|0,0,0),Yr(A,P,f),Lr(A,32,r,l,8192^o),_=(0|r)<(0|l)?l:r)}else Lr(A,32,r,f=le+3|0,-65537&o),Yr(A,Ve,le),s=32&l,Yr(A,t!=t?s?85596:85774:s?85247:85460,3),Lr(A,32,r,f,8192^o),_=(0|r)<(0|f)?f:r;return Y=c+560|0,0|_},function(A,t){var r;A|=0,r=t|=0,t=e[t>>2]+7&-8,e[r>>2]=t+16,T[A>>3]=Ys(e[t>>2],e[t+4>>2],e[t+8>>2],e[t+12>>2])},function(A,t,r){t|=0,r|=0;var s,o,l=0,c=0;return s=e[84+(A|=0)>>2],c=e[s+4>>2],o=e[A+28>>2],(l=(l=e[A+20>>2]-o|0)>>>0>c>>>0?c:l)&&(LA(e[s>>2],o,l),e[s>>2]=l+e[s>>2],c=e[s+4>>2]-l|0,e[s+4>>2]=c),l=e[s>>2],(c=r>>>0>c>>>0?c:r)&&(LA(l,t,c),l=c+e[s>>2]|0,e[s>>2]=l,e[s+4>>2]=e[s+4>>2]-c),d[0|l]=0,t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,0|r},function(A,t,r){r|=0;var s,o,l=0;return LA(t|=0,s=e[84+(A|=0)>>2],r=r>>>0>(l=(o=Ia(s,0,l=r+256|0))?o-s|0:l)>>>0?l:r),t=s+l|0,e[A+84>>2]=t,e[A+8>>2]=t,e[A+4>>2]=r+s,0|r},function(A,t,r){t|=0,r|=0;var s,o=0,l=0,c=0;o=e[84+(A|=0)>>2],s=e[o>>2]?o:84412,o=0;e:if(e[A+48>>2])for(;;){if(!(l=e[(o<<2)+s>>2]))break e;if(d[e[A+44>>2]+o|0]=(0|l)>=128?64:l,!((o=o+1|0)>>>0<ee[A+48>>2]))break}return l=e[A+44>>2],e[A+4>>2]=l,e[A+84>>2]=(o<<2)+s,e[A+8>>2]=o+l,!r|!o||(e[A+4>>2]=l+1,d[0|t]=u[0|l],c=1),0|c},Xi,Cn,xo,xo,function(A,t,r){r|=0;var s,o=0;return Y=s=Y+-64|0,o=1,ca(A|=0,t|=0,0)||(o=0,t&&(o=0,(t=wA(t,125132))&&(Xe(4|(o=s+8|0),0,52),e[s+56>>2]=1,e[s+20>>2]=-1,e[s+16>>2]=A,e[s+8>>2]=t,At[e[e[t>>2]+28>>2]](t,o,e[r>>2],1),(0|(A=e[s+32>>2]))==1&&(e[r>>2]=e[s+24>>2]),o=(0|A)==1))),Y=s- -64|0,0|o},function(A,t,r,s,o,l){r|=0,s|=0,o|=0,l|=0,ca(A|=0,e[8+(t|=0)>>2],l)&&ln(t,r,s,o)},function(A,t,r,s,o){if(r|=0,s|=0,o|=0,ca(A|=0,e[8+(t|=0)>>2],o))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=s);else e:if(ca(A,e[t>>
vendor: 20,258 bytes, line 2896
28962],o)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|s)!=1)break e;return void(e[t+32>>2]=1)}e[t+20>>2]=r,e[t+32>>2]=s,e[t+40>>2]=e[t+40>>2]+1,e[t+36>>2]!=1|e[t+24>>2]!=2||(d[t+54|0]=1),e[t+44>>2]=4}},function(A,t,r,s){r|=0,s|=0,ca(A|=0,e[8+(t|=0)>>2],0)&&tn(t,r,s)},Cn,function(A,t,r,s,o,l){r|=0,s|=0,o|=0,l|=0,ca(A|=0,e[8+(t|=0)>>2],l)?ln(t,r,s,o):(A=e[A+8>>2],At[e[e[A>>2]+20>>2]](A,t,r,s,o,l))},function(A,t,r,s,o){if(r|=0,s|=0,o|=0,ca(A|=0,e[8+(t|=0)>>2],o))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=s);else e:{if(ca(A,e[t>>2],o)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|s)!=1)break e;return void(e[t+32>>2]=1)}e[t+32>>2]=s;A:if(e[t+44>>2]!=4){if(w[t+52>>1]=0,A=e[A+8>>2],At[e[e[A>>2]+20>>2]](A,t,r,r,1,o),u[t+53|0]){if(e[t+44>>2]=3,!u[t+52|0])break A;break e}e[t+44>>2]=4}if(e[t+20>>2]=r,e[t+40>>2]=e[t+40>>2]+1,e[t+36>>2]!=1|e[t+24>>2]!=2)break e;return void(d[t+54|0]=1)}A=e[A+8>>2],At[e[e[A>>2]+24>>2]](A,t,r,s,o)}},function(A,t,r,s){r|=0,s|=0,ca(A|=0,e[8+(t|=0)>>2],0)?tn(t,r,s):(A=e[A+8>>2],At[e[e[A>>2]+28>>2]](A,t,r,s))},Cn,function(A){return 84787},Cn,function(A){return 85058},Cn,function(A){return 84147},function(A){var t;return t=A|=0,A=e[A>>2],e[t>>2]=A+1,0|((0|(A=d[0|A]))<0?65533:255&A)},function(A,t,r,s,o,l){A|=0,t|=0,r|=0,s|=0,o|=0,l|=0;var c,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0;if(c=ys(408),e[c+4>>2]=s,e[c>>2]=r,t?(LA(c+16|0,t,376),T[c+392>>3]=(T[t+368>>3]-T[t>>3])/+(r>>>0),t=0):t=1,e[c+400>>2]=o,d[c+8|0]=t,l){if(r=e[A+24>>2])for(t=e[A+20>>2],s=e[A+8>>2];(o=e[e[(t>>>8&16777212)+s>>2]+((1023&t)<<2)>>2])&&(ue(o),r=e[A+24>>2],s=e[A+8>>2],t=e[A+20>>2]),t=t+1|0,e[A+20>>2]=t,r=r-1|0,e[A+24>>2]=r,t>>>0>=2048&&(ue(e[s>>2]),s=e[A+8>>2]+4|0,e[A+8>>2]=s,t=e[A+20>>2]-1024|0,e[A+20>>2]=t,r=e[A+24>>2]),r;);t=e[A+28>>2],e[A+420>>2]=e[t>>2],(r=e[A+32>>2])&&(d[t+8|0]=u[r+8|0],LA(t+16|0,A+40|0,376),(t=e[A+32>>2])&&ue(t),e[A+32>>2]=0)}if(r=(s=e[A+24>>2])+e[A+20>>2]|0,o=e[A+12>>2],(0|r)==(0|((0|(t=e[A+8>>2]))!=(0|o)?(o-t<<8)-1:0))){Y=f=Y-32|0;e:{A:{r:{a:{if((t=e[16+(l=A+4|0)>>2])>>>0>=1024){if(e[l+16>>2]=t-1024,t=e[l+4>>2],P=e[t>>2],o=t+4|0,e[l+4>>2]=o,(0|(t=e[l+8>>2]))==e[l+12>>2])if((m=e[l>>2])>>>0<o>>>0)r=Ge((s=(1+(o-m>>2)|0)/-2<<2)+o|0,o,t=t-o|0)+t|0,e[l+8>>2]=r,e[l+4>>2]=s+e[l+4>>2];else{if((r=(0|t)==(0|m)?1:t-m>>1)>>>0>=1073741824)break a;if(_=(s=r<<2)+(I=ys(s))|0,r=s=I+(-4&r)|0,(0|t)!=(0|o)){if(W=-4&(t=t-o|0),x=1+((b=t-4|0)>>>2|0)&7)for(r=0,t=s;e[t>>2]=e[o>>2],o=o+4|0,t=t+4|0,(0|x)!=(0|(r=r+1|0)););else t=s;if(r=s+W|0,!(b>>>0<28))for(;e[t>>2]=e[o>>2],e[t+4>>2]=e[o+4>>2],e[t+8>>2]=e[o+8>>2],e[t+12>>2]=e[o+12>>2],e[t+16>>2]=e[o+16>>2],e[t+20>>2]=e[o+20>>2],e[t+24>>2]=e[o+24>>2],e[t+28>>2]=e[o+28>>2],o=o+32|0,(0|r)!=(0|(t=t+32|0)););}e[l+12>>2]=_,e[l+8>>2]=r,e[l+4>>2]=s,e[l>>2]=I,m&&(ue(m),r=e[l+8>>2])}else r=t;e[r>>2]=P,e[l+8>>2]=e[l+8>>2]+4;break e}if((m=(o=e[l+8>>2])-e[l+4>>2]>>2)>>>0<(s=(t=e[l+12>>2])-(r=e[l>>2])|0)>>2>>>0){if((0|t)!=(0|o)){e[f+8>>2]=ys(4096),sa(l,f+8|0);break e}if(e[f+8>>2]=ys(4096),Rt(l,f+8|0),t=e[l+4>>2],P=e[t>>2],o=t+4|0,e[l+4>>2]=o,(0|(t=e[l+8>>2]))==e[l+12>>2])if((m=e[l>>2])>>>0<o>>>0)r=Ge((s=(1+(o-m>>2)|0)/-2<<2)+o|0,o,t=t-o|0)+t|0,e[l+8>>2]=r,e[l+4>>2]=s+e[l+4>>2];else{if((r=(0|t)==(0|m)?1:t-m>>1)>>>0>=1073741824)break a;if(_=(s=r<<2)+(I=ys(s))|0,r=s=I+(-4&r)|0,(0|t)!=(0|o)){if(W=-4&(t=t-o|0),x=1+((b=t-4|0)>>>2|0)&7)for(r=0,t=s;e[t>>2]=e[o>>2],o=o+4|0,t=t+4|0,(0|x)!=(0|(r=r+1|0)););else t=s;if(r=s+W|0,!(b>>>0<28))for(;e[t>>2]=e[o>>2],e[t+4>>2]=e[o+4>>2],e[t+8>>2]=e[o+8>>2],e[t+12>>2]=e[o+12>>2],e[t+16>>2]=e[o+16>>2],e[t+20>>2]=e[o+20>>2],e[t+24>>2]=e[o+24>>2],e[t+28>>2]=e[o+28>>2],o=o+32|0,(0|r)!=(0|(t=t+32|0)););}e[l+12>>2]=_,e[l+8>>2]=r,e[l+4>>2]=s,e[l>>2]=I,m&&(ue(m),r=e[l+8>>2])}else r=t;e[r>>2]=P,e[l+8>>2]=e[l+8>>2]+4;break e}if(e[f+24>>2]=l+12,!((t=(0|t)==(0|r)?1:s>>1)>>>0>=1073741824)){if(t=ys(r=t<<2),e[f+8>>2]=t,s=t+(m<<2)|0,e[f+16>>2]=s,e[f+20>>2]=t+r,e[f+12>>2]=s,e[f+4>>2]=ys(4096),sa(f+8|0,f+4|0),(0|(o=e[l+8>>2]))==e[l+4>>2]){t=o;break A}for(;Rt(f+8|0,o=o-4|0),e[l+4>>2]!=(0|o););break r}}fi(),R()}t=e[l+8>>2]}r=e[l>>2],e[l>>2]=e[f+8>>2],e[f+8>>2]=r,e[l+4>>2]=e[f+12>>2],e[f+12>>2]=o,e[l+8>>2]=e[f+16>>2],e[f+16>>2]=t,s=e[l+12>>2],e[l+12>>2]=e[f+20>>2],e[f+20>>2]=s,(0|t)!=(0|o)&&(e[f+16>>2]=t+(3+(o-t|0)&-4)),r&&ue(r)}Y=f+32|0,r=(s=e[A+24>>2])+e[A+20>>2]|0,t=e[A+8>>2]}e[e[t+(r>>>8&16777212)>>2]+((1023&r)<<2)>>2]=c,e[A+24>>2]=s+1},function(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0;r=e[420+(A|=0)>>2]+1|0,e[A+420>>2]=r;e:{if(t=e[A+32>>2]){if(r>>>0>(f=e[t+4>>2])>>>0){(r=e[A+28>>2])&&(ue(r),t=e[A+32>>2]),e[A+32>>2]=0,e[A+28>>2]=t;break e}for(l=A+40|0,c=t+16|0,m=e[A+28>>2]+16|0,I=+(r>>>0)/+(f>>>0),t=0;;){if(s=T[(r=t<<3)+c>>3],o=T[r+m>>3],T[r+l>>3]=s==s?(s-o)*I+o:o,(0|(r=1|t))==47)break e;s=T[(r<<=3)+c>>3],o=T[r+m>>3],T[r+l>>3]=s==s?(s-o)*I+o:o,t=t+2|0}}if(t=e[A+28>>2],r>>>0>ee[t>>2]){if(l=e[A+24>>2]){if(d[A+416|0]=0,c=e[A+8>>2],r=e[A+20>>2],t=e[e[c+(r>>>8&16777212)>>2]+((1023&r)<<2)>>2],e[A+32>>2]=t,e[A+24>>2]=l-1,r=r+1|0,e[A+20>>2]=r,r>>>0>=2048&&(ue(e[c>>2]),e[A+8>>2]=e[A+8>>2]+4,e[A+20>>2]=e[A+20>>2]-1024,t=e[A+32>>2]),u[t+8|0])LA(t+16|0,e[A+28>>2]+16|0,376),t=e[A+32>>2],e[t+368>>2]=0,e[t+372>>2]=0,s=T[A+40>>3],e[t+392>>2]=0,e[t+396>>2]=0,T[t+16>>3]=s;else if(r=e[A+28>>2],u[r+8|0]&&(LA(r+16|0,t+16|0,376),t=e[A+28>>2],e[t+368>>2]=0,e[t+372>>2]=0,!(t=e[A+32>>2])))break e;(0|(r=e[t+400>>2]))!=-1&&(e[A+424>>2]=r),e[A+420>>2]=0,T[t+16>>3]=T[t+392>>3]*+ee[t+4>>2]+T[t+16>>3];break e}d[A+416|0]=1}else s=T[t+392>>3]+T[A+40>>3],T[A+40>>3]=s,T[t+16>>3]=s}return 0|(u[A+416|0]?0:A+40)},function(A){return e[424+(A|=0)>>2]},function(A){var t=0;return e[(A|=0)>>2]=132304,(t=e[A+28>>2])&&ue(t),(t=e[A+32>>2])&&ue(t),ai(A+4|0),0|A},function(A){var t=0;e[(A|=0)>>2]=132304,(t=e[A+28>>2])&&ue(t),(t=e[A+32>>2])&&ue(t),ai(A+4|0),ue(A)},function(A,t,r){t|=0,r|=0;var s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0;if(!e[1088+(A|=0)>>2])return 0;e:if(t){for(I=A+648|0,m=A- -64|0;;){if(s=e[A+1088>>2],!(s=0|At[e[e[s>>2]+4>>2]](s)))break e;if(o=_s(T[A+32>>3]+T[s+16>>3]/+e[A+24>>2]),T[A+32>>3]=o,o=ia(6.283185307179586*o),o=_s(T[A+16>>3]+T[s>>3]*(.06*o*T[s+8>>3]+1)/+e[A+8>>2]),T[A+16>>3]=o,f=at(e[56848],e[56849],1284865837,1481765933),l=ce,l=(f=f+1|0)?l:l+1|0,e[56848]=f,e[56849]=l,c=.75*T[A+40>>3]+ +(l>>>1|0)/2147483647,T[A+40>>3]=c,b=T[s+24>>3],l=o>=T[s+32>>3],d[A+48|0]=l,c=(P=b)*(b=.2*c),c=mr(m+512|0,mr(m+440|0,o=T[s+352>>3]*(b*T[s+48>>3]+T[s+40>>3]*(o+o+-1+(l?c:.01*c)))*.5,T[s+104>>3],T[s+168>>3]),T[s+112>>3],T[s+176>>3]),c=mr(m+8|0,mr(m+80|0,mr(m+152|0,mr(m+224|0,mr(m+296|0,mr(m+368|0,c==c?(c-o)*T[s+184>>3]+o:o,T[s+96>>3],T[s+160>>3]),T[s+88>>3],T[s+152>>3]),T[s+80>>3],T[s+144>>3]),T[s+72>>3],T[s+136>>3]),T[s+64>>3],T[s+128>>3]),T[s+56>>3],T[s+120>>3]),f=at(e[56848],e[56849],1284865837,1481765933),l=ce,l=(f=f+1|0)?l:l+1|0,e[56848]=f,e[56849]=l,o=.75*T[A+56>>3]+ +(l>>>1|0)/2147483647,T[A+56>>3]=o,l=(x<<1)+r|0,b=mr(I+8|0,o=T[s+352>>3]*(T[s+192>>3]*(.3*o))*.5,T[s+200>>3],T[s+248>>3]),_=T[s+296>>3],W=mr(I+80|0,o,T[s+208>>3],T[s+256>>3]),U=T[s+304>>3],Z=mr(I+152|0,o,T[s+216>>3],T[s+264>>3]),re=T[s+312>>3],le=mr(I+224|0,o,T[s+224>>3],T[s+272>>3]),Ce=T[s+320>>3],Me=mr(I+296|0,o,T[s+232>>3],T[s+280>>3]),Qe=T[s+328>>3],P=c,c=(mr(I+368|0,o,T[s+240>>3],T[s+288>>3])-o)*T[s+336>>3]+(Qe*(Me-o)+(Ce*(le-o)+(re*(Z-o)+(U*(W-o)+(_*(b-o)+0))))),o=(P+(o==o?(o-c)*T[s+344>>3]+c:c))*T[s+360>>3]*4e3,s=(0|(s=se(o)<2147483648?~~o:-2147483648))>=32e3?32e3:s,w[l>>1]=(0|s)<=-32e3?-32e3:s,(0|(x=x+1|0))==(0|t))break}x=t}return 0|(t>>>0>x>>>0?x:t)},function(A,t){t|=0,e[1088+(A|=0)>>2]=t},Xi,Cn,Zi,function(A,t,r,s){return ce=0,0}],bn.grow=function(A){var t=this.length;return this.length=this.length+A,t},bn.set=function(A,t){this[A]=t},bn.get=function(A){return this[A]},bn);return{v:function(){var A,t=0;Y=A=Y-16|0,0|Ue(A+12|0,A+8|0)||(t=ZA(4+(e[A+12>>2]<<2)|0),e[56800]=t,t&&(!(t=ZA(e[A+8>>2]))||(e[e[56800]+(e[A+12>>2]<<2)>>2]=0,0|qe(e[56800],0|t)))&&(e[56800]=0)),Y=A+16|0,e[56841]=227236,e[56823]=42},w:Un,x:vo,y:function(A,t){t|=0,e[(A|=0)>>2]=t},z:function(A,t){return t|=0,d[e[(A|=0)+4>>2]+t|0]},A:Hi,B:Wi,C:function(A){return u[(A|=0)+12|0]},D:function(A,t){t|=0,d[(A|=0)+12|0]=t},E:function(A){return u[(A|=0)+13|0]},F:function(A,t){t|=0,d[(A|=0)+13|0]=t},G:function(A){return u[(A|=0)+14|0]},H:function(A,t){t|=0,d[(A|=0)+14|0]=t},I:function(A){return u[(A|=0)+15|0]},J:function(A,t){t|=0,d[(A|=0)+15|0]=t},K:Yi,L:function(A,t){t|=0,e[(A|=0)+16>>2]=t},M:Eo,N:function(A,t){t|=0,e[(A|=0)+20>>2]=t},O:Un,P:vo,Q:Ui,R:Hi,S:Mo,T:Yi,U:Eo,V:function(A){return e[(A|=0)+24>>2]},W:Un,X:function(){var A,t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,x=0,P=0,_=0,W=0,U=0,Z=0,re=0,le=0,Ce=0,Me=0,Qe=0,Oe=0,Ve=0;if(A=ys(20),e[A+16>>2]=0,e[A+8>>2]=175,e[A+12>>2]=50,!(t=e[33208])){Y=t=(Y=Ce=Y-16|0)-80|0;e:{if((r=Ua(84292))&&(e[t+32>>2]=r,zs(137584,160,85959,t+32|0),(0|Ns(137584))==-31||(e[t+16>>2]=r,zs(137584,160,86031,t+16|0),(0|Ns(137584))==-31)))break e;(r=Ua(84619))&&(e[t>>2]=r,zs(137584,160,85959,t),(0|Ns(137584))==-31)||(r=u[84826]|u[84827]<<8|u[84828]<<16|u[84829]<<24,e[34396]=u[84822]|u[84823]<<8|u[84824]<<16|u[84825]<<24,e[34397]=r,w[68804]=u[84846]|u[84847]<<8,r=u[84842]|u[84843]<<8|u[84844]<<16|u[84845]<<24,e[34400]=u[84838]|u[84839]<<8|u[84840]<<16|u[84841]<<24,e[34401]=r,r=u[84834]|u[84835]<<8|u[84836]<<16|u[84837]<<24,e[34398]=u[84830]|u[84831]<<8|u[84832]<<16|u[84833]<<24,e[34399]=r)}if(Y=t+80|0,e[Ce+12>>2]=0,o=Ce+12|0,Y=f=Y-16|0,e[f+12>>2]=22050,de(85144)||de(85315)||de(85473)||de(85698),x=f+12|0,Y=l=Y-16|0,e[l+12>>2]=0,!((t=Ir(137832,84262,0,o))||(t=Ir(137836,84420,0,o))||(t=Ir(137840,84813,0,o))||(t=Ir(137820,85016,l+12|0,o))))if(e[34454]=ee[l+12>>2]/68,r=e[34460],e[34456]=r,r&&(0|(I=u[0|r]|u[r+1|0]<<8|u[r+2|0]<<16|u[r+3|0]<<24))==83969){if(P=u[r+4|0]|u[r+5|0]<<8|u[r+6|0]<<16|u[r+7|0]<<24,r=e[34458],W=u[0|r],e[34461]=W,W)for(t=r+4|0,I=0;s=O(I,44)+137856|0,o=u[0|t],e[s+36>>2]=o,e[s+40>>2]=u[t+1|0],c=u[t+8|0]|u[t+9|0]<<8|u[t+10|0]<<16|u[t+11|0]<<24,r=u[t+4|0]|u[t+5|0]<<8|u[t+6|0]<<16|u[t+7|0]<<24,d[0|s]=r,d[s+1|0]=r>>>8,d[s+2|0]=r>>>16,d[s+3|0]=r>>>24,d[s+4|0]=c,d[s+5|0]=c>>>8,d[s+6|0]=c>>>16,d[s+7|0]=c>>>24,c=u[t+16|0]|u[t+17|0]<<8|u[t+18|0]<<16|u[t+19|0]<<24,r=u[t+12|0]|u[t+13|0]<<8|u[t+14|0]<<16|u[t+15|0]<<24,d[s+8|0]=r,d[s+9|0]=r>>>8,d[s+10|0]=r>>>16,d[s+11|0]=r>>>24,d[s+12|0]=c,d[s+13|0]=c>>>8,d[s+14|0]=c>>>16,d[s+15|0]=c>>>24,c=u[t+24|0]|u[t+25|0]<<8|u[t+26|0]<<16|u[t+27|0]<<24,r=u[t+20|0]|u[t+21|0]<<8|u[t+22|0]<<16|u[t+23|0]<<24,d[s+16|0]=r,d[s+17|0]=r>>>8,d[s+18|0]=r>>>16,d[s+19|0]=r>>>24,d[s+20|0]=c,d[s+21|0]=c>>>8,d[s+22|0]=c>>>16,d[s+23|0]=c>>>24,c=u[t+32|0]|u[t+33|0]<<8|u[t+34|0]<<16|u[t+35|0]<<24,r=u[t+28|0]|u[t+29|0]<<8|u[t+30|0]<<16|u[t+31|0]<<24,d[s+24|0]=r,d[s+25|0]=r>>>8,d[s+26|0]=r>>>16,d[s+27|0]=r>>>24,d[s+28|0]=c,d[s+29|0]=c>>>8,d[s+30|0]=c>>>16,d[s+31|0]=c>>>24,r=t+36|0,e[s+32>>2]=r,t=r+(o<<4)|0,(0|W)!=(0|(I=I+1|0)););(0|W)<=e[34457]&&(e[34457]=0),t=0,x&&(e[x>>2]=P)}else e:{A:{if(o){if(r=e[o>>2]){ue(e[r+4>>2]),t=e[o>>2];break A}if(t=ZA(16),e[o>>2]=t,t)break A;t=48}else t=268436223;break e}e[t>>2]=1,e[t+4>>2]=pi(137584),r=e[o>>2],e[r+12>>2]=83969,e[r+8>>2]=I,t=268436223}if(Y=l+16|0,r=t,!t){if(x=e[f+12>>2],e[50754]=x,e[50759]=0,e[50760]=134217728/(0|x),e[50762]=0,e[50763]=0,e[50765]=2147483647,e[50781]=100,e[50779]=32,e[50761]=(x<<6)/(0|x),t=e[26385],e[50784]=e[26384],e[50785]=t,t=e[26387],e[50786]=e[26386],e[50787]=t,t=e[26389],e[50788]=e[26388],e[50789]=t,t=e[26391],e[50790]=e[26390],e[50791]=t,t=e[26393],e[50792]=e[26392],e[50793]=t,t=e[26395],e[50794]=e[26394],e[50795]=t,t=e[26397],e[50796]=e[26396],e[50797]=t,e[50798]=e[26398],P=(0|(t=(0|(o=O(x,60)))/12800|0))>=128?128:t,e[50799]=P,e[50800]=(0|P)/2,!((0|x)==22050|(0|o)<12800)){if(x=1&(t=(0|P)<=1?1:P),re=+(0|P),I=0,(0|P)>=2)for(P=2147483646&t,t=0;U=I+132160|0,m=127*(1-gs(6.283185307179586*+(0|I)/re)),_=se(m)<2147483648?~~m:-2147483648,d[0|U]=_,U=(o=1|I)+132160|0,m=127*(1-gs(6.283185307179586*+(0|o)/re)),_=se(m)<2147483648?~~m:-2147483648,d[0|U]=_,I=I+2|0,(0|P)!=(0|(t=t+2|0)););x&&(t=I+132160|0,m=127*(1-gs(6.283185307179586*+(0|I)/re)),U=se(m)<2147483648?~~m:-2147483648,d[0|t]=U)}if(e[50801]=105792,e[56797]=Bt(),e[55964]=38,e[55921]=1,e[55918]=22050,e[56606]=0,e[55960]=110928,e[55958]=0,e[55959]=1074266112,e[55956]=100,e[55922]=20,e[55923]=220,e[55916]=1,e[55917]=0,fA(),e[56244]=0,e[56245]=0,e[55928]=0,e[55926]=0,e[55927]=0,e[55924]=0,e[56246]=0,e[56247]=0,e[56260]=0,e[56261]=0,e[56262]=0,e[56263]=0,e[56276]=0,e[56277]=0,e[56278]=0,e[56279]=0,e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,re=-3.141592653589793/+(0|(t=e[55918])),T[27967]=re,o=(0|O(t,630))/1e4|0,e[55920]=o,t=(0|O(t,950))/1e4|0,e[55919]=t,m=-2*re,T[27968]=m,re=(Oe=Vr(re*+(0|o)))*-Oe,T[28129]=re,m=Oe*gs(m*+(0|t)),m+=m,T[28128]=m,T[28127]=1-m-re,e[55990]=0,e[55991]=0,e[55988]=0,e[55989]=0,e[56006]=0,e[56007]=0,e[56004]=0,e[56005]=0,e[56022]=0,e[56023]=0,e[56020]=0,e[56021]=0,e[56038]=0,e[56039]=0,e[56036]=0,e[56037]=0,e[56054]=0,e[56055]=0,e[56052]=0,e[56053]=0,e[56070]=0,e[56071]=0,e[56068]=0,e[56069]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0,e[56639]=59,e[56640]=59,e[56629]=0,e[56630]=59,e[56619]=89,e[56620]=160,e[56609]=280,e[56610]=688,e[56611]=1064,e[56621]=70,e[56631]=59,e[56612]=2806,e[56613]=3260,e[56622]=160,e[56623]=200,e[56632]=59,e[56633]=59,e[56641]=89,e[56642]=149,e[56643]=200,e[56644]=200,e[56634]=59,e[56635]=59,e[56624]=200,e[56625]=500,e[56614]=3700,e[56615]=6500,e[56645]=500,e[56646]=0,e[56616]=7e3,e[56626]=500,e[56636]=0,e[56647]=0,e[56637]=0,e[56627]=500,e[56617]=8e3,e[56669]=89,e[56648]=0,e[56638]=0,e[56628]=89,e[56618]=280,e[56657]=62,e[56655]=0,e[56656]=0,e[56653]=50,e[56654]=0,e[56651]=0,e[56652]=0,e[56649]=0,e[56650]=40,e[56607]=1e3,e[56608]=59,Y=l=Y-416|0,e[l+16>>2]=137584,e[l+20>>2]=47,e[l+24>>2]=85952,dA(t=l+240|0,85699,l+16|0),c=fs(t,86034)){if(it(l+240|0,170,c))for(x=5|(t=l+240|0),P=10|t;u[l+240|0]!=47&&(e[l+240>>2]!=1701736308?Xr(l+240|0,86614,9)||(e[l+4>>2]=l+32,e[l>>2]=l+239,(0|RA(P,86829,l))==2&&(o=e[34064],e[(W=136272+(o<<4)|0)>>2]=d[l+239|0],t=pi(l+32|0),e[34064]=o+1,e[W+12>>2]=t,e[W+4>>2]=0)):(Y=t=Y-48|0,e[32960]=-1,e[32961]=-1,e[32970]=-1,e[32971]=-1,e[32968]=-1,e[32969]=-1,e[32966]=-1,e[32967]=-1,e[32964]=-1,e[32965]=-1,e[32962]=-1,e[32963]=-1,e[t+36>>2]=131876,e[t+32>>2]=131872,e[t+28>>2]=131868,e[t+24>>2]=131864,e[t+20>>2]=131860,e[t+16>>2]=131856,e[t+12>>2]=131852,e[t+8>>2]=131848,e[t+4>>2]=131844,e[t>>2]=131840,RA(x,84222,t),Y=t+48|0)),it(l+240|0,170,c););Or(c)}Y=l+416|0,e[50297]=0,e[50298]=0,e[50301]=0,e[50302]=0,e[50299]=0,e[50300]=0,Sn(0,85698),e[36425]=0,e[36424]=0,e[36426]=0,e[36427]=-1,bo(),eA(0),s=e[25690],e[34062]=s,b=e[25689],l=e[25688],e[34060]=l,e[34061]=b,Z=e[25687],c=e[25686],e[34058]=c,e[34059]=Z,le=e[25685],W=e[25684],e[34056]=W,e[34057]=le,Me=e[25683],x=e[25682],e[34054]=x,e[34055]=Me,Qe=e[25681],P=e[25680],e[34052]=P,e[34053]=Qe,_=e[25679],o=e[25678],e[34050]=o,e[34051]=_,U=e[25677],t=e[25676],e[34048]=t,e[34049]=U,e[33729]=t,e[33730]=U,e[33731]=o,e[33732]=_,e[33733]=P,e[33734]=Qe,e[33735]=x,e[33736]=Me,e[33737]=W,e[33738]=le,e[33739]=c,e[33740]=Z,e[33741]=l,e[33742]=b,e[33743]=s,br(1,175),br(2,100),br(6,e[47200]),br(5,e[47201]),br(7,0),e[47198]=0,e[47197]=0,m=+me()/1e3,o=at(t=se(m)<9223372036854776e3?~~m>>>0:0,0,1103515245,0),t=ce,t=(o=o+12345|0)>>>0<12345?t+1|0:t,e[33209]=ji(o,t)}if(Y=f+16|0,r){U=e[30450],Me=e[Ce+12>>2],f=(b=Y-560|0)+48|0,Y=s=(Y=b)-16|0;e:{A:switch(0|As(r-268435967|0,24)){case 0:Vt(f,84133,512);break e;case 1:Vt(f,84580,512);break e;case 2:Vt(f,84747,512);break e;case 3:Vt(f,85084,512);break e;case 4:Vt(f,85251,512);break e;case 5:Vt(f,85380,512);break e;case 6:Vt(f,85607,512);break e;case 7:Vt(f,85722,512);break e;case 8:Vt(f,85913,512);break e;case 9:Vt(f,86046,512);break e;case 10:Vt(f,86153,512);break e;case 11:Vt(f,86678,512);break e;case 12:Vt(f,86773,512);break e;case 14:Vt(f,86958,512);break e;case 15:Vt(f,87071,512);break e;default:break A}if(1879048192&r)e[s>>2]=r,zs(f,512,87182,s);else{if(I=0,l=y[123728+((r>>>0<=153?r:0)<<1)>>1]+121804|0,r=e[e[56841]+20>>2]){Qe=e[r+4>>2],Z=e[r>>2],le=e[Z>>2]+1794895138|0,_=sn(e[Z+8>>2],le),o=sn(e[Z+12>>2],le),t=sn(e[Z+16>>2],le);A:if(!(Qe>>>2>>>0<=_>>>0||3&(t|o)|(r=Qe-(_<<2)|0)>>>0<=o>>>0|t>>>0>=r>>>0))for(x=t>>>2|0,P=o>>>2|0;;){if(W=sn(e[(r=((t=(o=(c=_>>>1|0)+Ve|0)<<1)+P<<2)+Z|0)>>2],le),(r=sn(e[r+4>>2],le))>>>0>=Qe>>>0|W>>>0>=Qe-r>>>0|u[(r+W|0)+Z|0])break A;if(!(r=nr(l,r+Z|0))){if(t=sn(e[(r=(t+x<<2)+Z|0)>>2],le),(r=sn(e[r+4>>2],le))>>>0>=Qe>>>0|t>>>0>=Qe-r>>>0)break A;I=u[(t+r|0)+Z|0]?0:r+Z|0;break A}if((0|_)==1)break A;_=(r=(0|r)<0)?c:_-c|0,Ve=r?Ve:o}}if((r=EA(t=I||l))>>>0>=512){LA(f,t,511),d[f+511|0]=0;break e}LA(f,t,r+1|0)}}Y=s+16|0;e:if(Me){A:switch(e[Me>>2]){case 0:e[b+16>>2]=e[Me+4>>2],e[b+20>>2]=b+48,rr(U,87384,b+16|0);break e;case 1:break A;default:break e}t=e[Me+12>>2],r=e[Me+8>>2],e[b+36>>2]=e[Me+4>>2],ce=r,e[b+40>>2]=t,e[b+44>>2]=ce,e[b+32>>2]=b+48,rr(U,87521,b+32|0)}else e[b>>2]=b+48,rr(U,87700,b);Y=b+560|0,(0|Ce)!=-12&&(r=e[Ce+12>>2])&&(ue(e[r+4>>2]),ue(e[Ce+12>>2]),e[Ce+12>>2]=0)}r=e[24806],e[34389]=0,e[32538]=r,r=(1e3+((r=O(e[50754],100))-((0|r)%1e3|0)|0)|0)/500|0,e[34390]=r,r=OA(e[34391],r),e[34392]=r,r&&(e[34391]=r,e[34393]=40,(r=OA(e[34388],1440))&&(e[34388]=r)),e[47198]=0,Y=Ce+16|0,t=e[50754],e[33208]=t}return e[A+4>>2]=t,e[A>>2]=QA(),0|A},Y:function(A,t,r){A|=0,t|=0,r|=0,e[34440]=r,ne(3,e[A+12>>2]),ne(1,e[A+8>>2]),(A=e[A+16>>2])?Va(A):Ja(1024),IA(t),e[34440]=0},Z:function(A,t,r){return A|=0,t|=0,r|=0,e[34440]=0,(A=fs(r,1032))?(e[47195]=A,e[47197]=130,A||(e[47195]=e[30450]),IA(t),e[47195]=0,e[47197]=0,e[47195]=e[30450],Or(A),0):-1},_:function(A){return 36},$:function(A,t,r){var s;return A|=0,t|=0,Y=s=Y-32|0,(r|=0)?(e[s+24>>2]=0,e[s+28>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+12>>2]=r,e[s+8>>2]=t,d[s+21|0]=0,t=Va(s+8|0)):t=Ja(t),e[A+16>>2]=201188,Y=s+32|0,0|t},aa:function(A,t,r,s){var o;return A|=0,t|=0,Y=o=Y-32|0,(r|=0)|(s|=0)?(e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+12>>2]=r,e[o+8>>2]=t,d[o+22|0]=0,d[o+20|0]=s,t=Va(o+8|0)):t=Ja(t),e[A+16>>2]=201188,Y=o+32|0,0|t},ba:function(A,t,r,s,o){var l;return A|=0,t|=0,Y=l=Y-32|0,(s|=0)|(o|=0)|(r|=0)?(e[l+24>>2]=0,e[l+28>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+12>>2]=r,e[l+8>>2]=t,d[l+21|0]=o,d[l+20|0]=s,t=Va(l+8|0)):t=Ja(t),e[A+16>>2]=201188,Y=l+32|0,0|t},ca:function(A,t,r,s,o,l){var c;return A|=0,t|=0,Y=c=Y-32|0,(s|=0)|(o|=0)|(l|=0)|(r|=0)?(e[c+24>>2]=0,e[c+28>>2]=0,e[c+16>>2]=0,e[c+20>>2]=0,e[c+12>>2]=r,e[c+8>>2]=t,d[c+22|0]=l,d[c+21|0]=o,d[c+20|0]=s,t=Va(c+8|0)):t=Ja(t),e[A+16>>2]=201188,Y=c+32|0,0|t},da:function(A,t){return t|=0,e[e[(A|=0)>>2]+(t<<2)>>2]},ea:function(A,t,r){t|=0,r|=0,e[e[(A|=0)>>2]+(t<<2)>>2]=r},fa:Ui,ga:Hi,ha:Wi,ia:Mo,ja:function(A,t){t|=0,e[(A|=0)+12>>2]=t},ka:Un,la:function(){return 0},ma:function(){return 1},na:function(){return 2},oa:function(){return 3},pa:function(){return 4},qa:function(){return 5},ra:function(){return 6},sa:function(){return 7},ta:function(){return 8},ua:At,va:function(){return 227192},wa:ue,xa:ZA,ya:function(A){return(A|=0)?0|!!(0|wA(A,125228)):0}}}(n)}(i)},instantiate:function(a,i){return{then:function(n){var g=new go.Module(a);n({instance:new go.Instance(g,i)})}}},RuntimeError:Error};typeof go!="object"&&Dn("no native wasm support detected");var Yb=!1;function K2(a,i){a||Dn(i)}var Fs,io,X0,Xt,qr,Hb,Ub,qm=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function no(a,i,n){for(var g=i+n,p=i;a[p]&&!(p>=g);)++p;if(p-i>16&&a.buffer&&qm)return qm.decode(a.subarray(i,p));for(var h="";i<p;){var C=a[i++];if(128&C){var k=63&a[i++];if((224&C)!=192){var M=63&a[i++];if((C=(240&C)==224?(15&C)<<12|k<<6|M:(7&C)<<18|k<<12|M<<6|63&a[i++])<65536)h+=String.fromCharCode(C);else{var E=C-65536;h+=String.fromCharCode(55296|E>>10,56320|1023&E)}}else h+=String.fromCharCode((31&C)<<6|k)}else h+=String.fromCharCode(C)}return h}function oo(a,i){return a?no(io,a,i):""}function Xc(a,i,n,g){if(!(g>0))return 0;for(var p=n,h=n+g-1,C=0;C<a.length;
2896++C){var k=a.charCodeAt(C);if(k>=55296&&k<=57343&&(k=65536+((1023&k)<<10)|1023&a.charCodeAt(++C)),k<=127){if(n>=h)break;i[n++]=k}else if(k<=2047){if(n+1>=h)break;i[n++]=192|k>>6,i[n++]=128|63&k}else if(k<=65535){if(n+2>=h)break;i[n++]=224|k>>12,i[n++]=128|k>>6&63,i[n++]=128|63&k}else{if(n+3>=h)break;i[n++]=240|k>>18,i[n++]=128|k>>12&63,i[n++]=128|k>>6&63,i[n++]=128|63&k}}return i[n]=0,n-p}function Kb(a){for(var i=0,n=0;n<a.length;++n){var g=a.charCodeAt(n);g<=127?i++:g<=2047?i+=2:g>=55296&&g<=57343?(i+=4,++n):i+=3}return i}var xn,X2=oe.INITIAL_MEMORY||16777216;L0=oe.wasmMemory?oe.wasmMemory:new go.Memory({initial:X2/65536,maximum:X2/65536}),xn=L0.buffer,oe.HEAP8=Fs=new Int8Array(xn),oe.HEAP16=X0=new Int16Array(xn),oe.HEAP32=Xt=new Int32Array(xn),oe.HEAPU8=io=new Uint8Array(xn),oe.HEAPU16=new Uint16Array(xn),oe.HEAPU32=qr=new Uint32Array(xn),oe.HEAPF32=Hb=new Float32Array(xn),oe.HEAPF64=Ub=new Float64Array(xn),X2=L0.buffer.byteLength;var $m=[],Xb=[],eh=[],Zb=!1;function Jb(a){Xb.unshift(a)}var Ct,jr,Gi=0,Ko=null;function qb(a){Gi++,oe.monitorRunDependencies&&oe.monitorRunDependencies(Gi)}function $b(a){if(Gi--,oe.monitorRunDependencies&&oe.monitorRunDependencies(Gi),Gi==0&&Ko){var i=Ko;Ko=null,i()}}function Dn(a){throw oe.onAbort&&oe.onAbort(a),fo(a="Aborted("+a+")"),Yb=!0,a+=". Build with -sASSERTIONS for more info.",new go.RuntimeError(a)}function h5(a){this.name="ExitStatus",this.message="Program terminated with exit("+a+")",this.status=a}function Z2(a){for(;a.length>0;)a.shift()(oe)}function C5(a,i="i8"){switch(i.endsWith("*")&&(i="*"),i){case"i1":case"i8":return Fs[a|0];case"i16":return X0[a>>1];case"i32":case"i64":return Xt[a>>2];case"float":return Hb[a>>2];case"double":return Ub[a>>3];case"*":return qr[a>>2];default:Dn("invalid type for getValue: "+i)}return null}function b5(a){this.excPtr=a,this.ptr=a-24,this.set_type=function(i){qr[this.ptr+4>>2]=i},this.get_type=function(){return qr[this.ptr+4>>2]},this.set_destructor=function(i){qr[this.ptr+8>>2]=i},this.get_destructor=function(){return qr[this.ptr+8>>2]},this.set_refcount=function(i){Xt[this.ptr>>2]=i},this.set_caught=function(i){i=i?1:0,Fs[this.ptr+12|0]=i},this.get_caught=function(){return Fs[this.ptr+12|0]!=0},this.set_rethrown=function(i){i=i?1:0,Fs[this.ptr+13|0]=i},this.get_rethrown=function(){return Fs[this.ptr+13|0]!=0},this.init=function(i,n){this.set_adjusted_ptr(0),this.set_type(i),this.set_destructor(n),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var i=Xt[this.ptr>>2];Xt[this.ptr>>2]=i+1},this.release_ref=function(){var i=Xt[this.ptr>>2];return Xt[this.ptr>>2]=i-1,i===1},this.set_adjusted_ptr=function(i){qr[this.ptr+16>>2]=i},this.get_adjusted_ptr=function(){return qr[this.ptr+16>>2]},this.get_exception_ptr=function(){if(AI(this.get_type()))return qr[this.excPtr>>2];var i=this.get_adjusted_ptr();return i!==0?i:this.excPtr}}var dr={isAbs:a=>a.charAt(0)==="/",splitPath:a=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1),normalizeArray:(a,i)=>{for(var n=0,g=a.length-1;g>=0;g--){var p=a[g];p==="."?a.splice(g,1):p===".."?(a.splice(g,1),n++):n&&(a.splice(g,1),n--)}if(i)for(;n;n--)a.unshift("..");return a},normalize:a=>{var i=dr.isAbs(a),n=a.substr(-1)==="/";return(a=dr.normalizeArray(a.split("/").filter(g=>!!g),!i).join("/"))||i||(a="."),a&&n&&(a+="/"),(i?"/":"")+a},dirname:a=>{var i=dr.splitPath(a),n=i[0],g=i[1];return n||g?(g&&(g=g.substr(0,g.length-1)),n+g):"."},basename:a=>{if(a==="/")return"/";var i=(a=(a=dr.normalize(a)).replace(/\/$/,"")).lastIndexOf("/");return i===-1?a:a.substr(i+1)},join:function(){var a=Array.prototype.slice.call(arguments);return dr.normalize(a.join("/"))},join2:(a,i)=>dr.normalize(a+"/"+i)},Ai={resolve:function(){for(var a="",i=!1,n=arguments.length-1;n>=-1&&!i;n--){var g=n>=0?arguments[n]:$.cwd();if(typeof g!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!g)return"";a=g+"/"+a,i=dr.isAbs(g)}return(i?"/":"")+(a=dr.normalizeArray(a.split("/").filter(p=>!!p),!i).join("/"))||"."},relative:(a,i)=>{function n(E){for(var D=0;D<E.length&&E[D]==="";D++);for(var B=E.length-1;B>=0&&E[B]==="";B--);return D>B?[]:E.slice(D,B-D+1)}a=Ai.resolve(a).substr(1),i=Ai.resolve(i).substr(1);for(var g=n(a.split("/")),p=n(i.split("/")),h=Math.min(g.length,p.length),C=h,k=0;k<h;k++)if(g[k]!==p[k]){C=k;break}var M=[];for(k=C;k<g.length;k++)M.push("..");return(M=M.concat(p.slice(C))).join("/")}};function e8(a,i,n){var g=Kb(a)+1,p=new Array(g),h=Xc(a,p,0,p.length);return i&&(p.length=h),p}var Pi={ttys:[],init:function(){},shutdown:function(){},register:function(a,i){Pi.ttys[a]={input:[],output:[],ops:i},$.registerDevice(a,Pi.stream_ops)},stream_ops:{open:function(a){var i=Pi.ttys[a.node.rdev];if(!i)throw new $.ErrnoError(43);a.tty=i,a.seekable=!1}
2896,close:function(a){a.tty.ops.fsync(a.tty)},fsync:function(a){a.tty.ops.fsync(a.tty)},read:function(a,i,n,g,p){if(!a.tty||!a.tty.ops.get_char)throw new $.ErrnoError(60);for(var h=0,C=0;C<g;C++){var k;try{k=a.tty.ops.get_char(a.tty)}catch{throw new $.ErrnoError(29)}if(k===void 0&&h===0)throw new $.ErrnoError(6);if(k==null)break;h++,i[n+C]=k}return h&&(a.node.timestamp=Date.now()),h},write:function(a,i,n,g,p){if(!a.tty||!a.tty.ops.put_char)throw new $.ErrnoError(60);try{for(var h=0;h<g;h++)a.tty.ops.put_char(a.tty,i[n+h])}catch{throw new $.ErrnoError(29)}return g&&(a.node.timestamp=Date.now()),h}},default_tty_ops:{put_char:function(a,i){i===null||i===10?(K0(no(a.output,0)),a.output=[]):i!=0&&a.output.push(i)},fsync:function(a){a.output&&a.output.length>0&&(K0(no(a.output,0)),a.output=[])}},default_tty1_ops:{put_char:function(a,i){i===null||i===10?(fo(no(a.output,0)),a.output=[]):i!=0&&a.output.push(i)},fsync:function(a){a.output&&a.output.length>0&&(fo(no(a.output,0)),a.output=[])}}};function A8(a){Dn()}var Gt={ops_table:null,mount:function(a){return Gt.createNode(null,"/",16895,0)},createNode:function(a,i,n,g){if($.isBlkdev(n)||$.isFIFO(n))throw new $.ErrnoError(63);Gt.ops_table||(Gt.ops_table={dir:{node:{getattr:Gt.node_ops.getattr,setattr:Gt.node_ops.setattr,lookup:Gt.node_ops.lookup,mknod:Gt.node_ops.mknod,rename:Gt.node_ops.rename,unlink:Gt.node_ops.unlink,rmdir:Gt.node_ops.rmdir,readdir:Gt.node_ops.readdir,symlink:Gt.node_ops.symlink},stream:{llseek:Gt.stream_ops.llseek}},file:{node:{getattr:Gt.node_ops.getattr,setattr:Gt.node_ops.setattr},stream:{llseek:Gt.stream_ops.llseek,read:Gt.stream_ops.read,write:Gt.stream_ops.write,allocate:Gt.stream_ops.allocate,mmap:Gt.stream_ops.mmap,msync:Gt.stream_ops.msync}},link:{node:{getattr:Gt.node_ops.getattr,setattr:Gt.node_ops.setattr,readlink:Gt.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Gt.node_ops.getattr,setattr:Gt.node_ops.setattr},stream:$.chrdev_stream_ops}});var p=$.createNode(a,i,n,g);return $.isDir(p.mode)?(p.node_ops=Gt.ops_table.dir.node,p.stream_ops=Gt.ops_table.dir.stream,p.contents={}):$.isFile(p.mode)?(p.node_ops=Gt.ops_table.file.node,p.stream_ops=Gt.ops_table.file.stream,p.usedBytes=0,p.contents=null):$.isLink(p.mode)?(p.node_ops=Gt.ops_table.link.node,p.stream_ops=Gt.ops_table.link.stream):$.isChrdev(p.mode)&&(p.node_ops=Gt.ops_table.chrdev.node,p.stream_ops=Gt.ops_table.chrdev.stream),p.timestamp=Date.now(),a&&(a.contents[i]=p,a.timestamp=p.timestamp),p},getFileDataAsTypedArray:function(a){return a.contents?a.contents.subarray?a.contents.subarray(0,a.usedBytes):new Uint8Array(a.contents):new Uint8Array(0)},expandFileStorage:function(a,i){var n=a.contents?a.contents.length:0;if(!(n>=i)){i=Math.max(i,n*(n<1048576?2:1.125)>>>0),n!=0&&(i=Math.max(i,256));var g=a.contents;a.contents=new Uint8Array(i),a.usedBytes>0&&a.contents.set(g.subarray(0,a.usedBytes),0)}},resizeFileStorage:function(a,i){if(a.usedBytes!=i)if(i==0)a.contents=null,a.usedBytes=0;else{var n=a.contents;a.contents=new Uint8Array(i),n&&a.contents.set(n.subarray(0,Math.min(i,a.usedBytes))),a.usedBytes=i}},node_ops:{getattr:function(a){var i={};return i.dev=$.isChrdev(a.mode)?a.id:1,i.ino=a.id,i.mode=a.mode,i.nlink=1,i.uid=0,i.gid=0,i.rdev=a.rdev,$.isDir(a.mode)?i.size=4096:$.isFile(a.mode)?i.size=a.usedBytes:$.isLink(a.mode)?i.size=a.link.length:i.size=0,i.atime=new Date(a.timestamp),i.mtime=new Date(a.timestamp),i.ctime=new Date(a.timestamp),i.blksize=4096,i.blocks=Math.ceil(i.size/i.blksize),i},setattr:function(a,i){i.mode!==void 0&&(a.mode=i.mode),i.timestamp!==void 0&&(a.timestamp=i.timestamp),i.size!==void 0&&Gt.resizeFileStorage(a,i.size)},lookup:function(a,i){throw $.genericErrors[44]},mknod:function(a,i,n,g){return Gt.createNode(a,i,n,g)},rename:function(a,i,n){if($.isDir(a.mode)){var g;try{g=$.lookupNode(i,n)}catch{}if(g)for(var p in g.contents)throw new $.ErrnoError(55)}delete a.parent.contents[a.name],a.parent.timestamp=Date.now(),a.name=n,i.contents[n]=a,i.timestamp=a.parent.timestamp,a.parent=i},unlink:function(a,i){delete a.contents[i],a.timestamp=Date.now()},rmdir:function(a,i){var n=$.lookupNode(a,i);for(var g in n.contents)throw new $.ErrnoError(55);delete a.contents[i],a.timestamp=Date.now()},readdir:function(a){var i=[".",".."];for(var n in a.contents)a.contents.hasOwnProperty(n)&&i.push(n);return i},symlink:function(a,i,n){var g=Gt.createNode(a,i,41471,0);return g.link=n,g}
2896,readlink:function(a){if(!$.isLink(a.mode))throw new $.ErrnoError(28);return a.link}},stream_ops:{read:function(a,i,n,g,p){var h=a.node.contents;if(p>=a.node.usedBytes)return 0;var C=Math.min(a.node.usedBytes-p,g);if(C>8&&h.subarray)i.set(h.subarray(p,p+C),n);else for(var k=0;k<C;k++)i[n+k]=h[p+k];return C},write:function(a,i,n,g,p,h){if(!g)return 0;var C=a.node;if(C.timestamp=Date.now(),i.subarray&&(!C.contents||C.contents.subarray)){if(h)return C.contents=i.subarray(n,n+g),C.usedBytes=g,g;if(C.usedBytes===0&&p===0)return C.contents=i.slice(n,n+g),C.usedBytes=g,g;if(p+g<=C.usedBytes)return C.contents.set(i.subarray(n,n+g),p),g}if(Gt.expandFileStorage(C,p+g),C.contents.subarray&&i.subarray)C.contents.set(i.subarray(n,n+g),p);else for(var k=0;k<g;k++)C.contents[p+k]=i[n+k];return C.usedBytes=Math.max(C.usedBytes,p+g),g},llseek:function(a,i,n){var g=i;if(n===1?g+=a.position:n===2&&$.isFile(a.node.mode)&&(g+=a.node.usedBytes),g<0)throw new $.ErrnoError(28);return g},allocate:function(a,i,n){Gt.expandFileStorage(a.node,i+n),a.node.usedBytes=Math.max(a.node.usedBytes,i+n)},mmap:function(a,i,n,g,p){if(!$.isFile(a.node.mode))throw new $.ErrnoError(43);var h,C,k=a.node.contents;if(2&p||k.buffer!==Fs.buffer){if((n>0||n+i<k.length)&&(k=k.subarray?k.subarray(n,n+i):Array.prototype.slice.call(k,n,n+i)),C=!0,!(h=A8()))throw new $.ErrnoError(48);Fs.set(k,h)}else C=!1,h=k.byteOffset;return{ptr:h,allocated:C}},msync:function(a,i,n,g,p){return Gt.stream_ops.write(a,i,0,g,n,!1),0}}},$={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(a,i={})=>{if(!(a=Ai.resolve(a)))return{path:"",node:null};if((i=Object.assign({follow_mount:!0,recurse_count:0},i)).recurse_count>8)throw new $.ErrnoError(32);for(var n=a.split("/").filter(E=>!!E),g=$.root,p="/",h=0;h<n.length;h++){var C=h===n.length-1;if(C&&i.parent)break;if(g=$.lookupNode(g,n[h]),p=dr.join2(p,n[h]),$.isMountpoint(g)&&(!C||C&&i.follow_mount)&&(g=g.mounted.root),!C||i.follow)for(var k=0;$.isLink(g.mode);){var M=$.readlink(p);if(p=Ai.resolve(dr.dirname(p),M),g=$.lookupPath(p,{recurse_count:i.recurse_count+1}).node,k++>40)throw new $.ErrnoError(32)}}return{path:p,node:g}},getPath:a=>{for(var i;;){if($.isRoot(a)){var n=a.mount.mountpoint;return i?n[n.length-1]!=="/"?n+"/"+i:n+i:n}i=i?a.name+"/"+i:a.name,a=a.parent}},hashName:(a,i)=>{for(var n=0,g=0;g<i.length;g++)n=(n<<5)-n+i.charCodeAt(g)|0;return(a+n>>>0)%$.nameTable.length},hashAddNode:a=>{var i=$.hashName(a.parent.id,a.name);a.name_next=$.nameTable[i],$.nameTable[i]=a},hashRemoveNode:a=>{var i=$.hashName(a.parent.id,a.name);if($.nameTable[i]===a)$.nameTable[i]=a.name_next;else for(var n=$.nameTable[i];n;){if(n.name_next===a){n.name_next=a.name_next;break}n=n.name_next}},lookupNode:(a,i)=>{var n=$.mayLookup(a);if(n)throw new $.ErrnoError(n,a);for(var g=$.hashName(a.id,i),p=$.nameTable[g];p;p=p.name_next){var h=p.name;if(p.parent.id===a.id&&h===i)return p}return $.lookup(a,i)},createNode:(a,i,n,g)=>{var p=new $.FSNode(a,i,n,g);return $.hashAddNode(p),p},destroyNode:a=>{$.hashRemoveNode(a)},isRoot:a=>a===a.parent,isMountpoint:a=>!!a.mounted,isFile:a=>(61440&a)==32768,isDir:a=>(61440&a)==16384,isLink:a=>(61440&a)==40960,isChrdev:a=>(61440&a)==8192,isBlkdev:a=>(61440&a)==24576,isFIFO:a=>(61440&a)==4096,isSocket:a=>!(49152&~a),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:a=>{var i=$.flagModes[a];if(i===void 0)throw new Error("Unknown file open mode: "+a);return i},flagsToPermissionString:a=>{var i=["r","w","rw"][3&a];return 512&a&&(i+="w"),i},nodePermissions:(a,i)=>$.ignorePermissions||(!i.includes("r")||292&a.mode)&&(!i.includes("w")||146&a.mode)&&(!i.includes("x")||73&a.mode)?0:2,mayLookup:a=>{var i=$.nodePermissions(a,"x");return i||(a.node_ops.lookup?0:2)},mayCreate:(a,i)=>{try{return $.lookupNode(a,i),20}catch{}return $.nodePermissions(a,"wx")},mayDelete:(a,i,n)=>{var g;try{g=$.lookupNode(a,i)}catch(h){return h.errno}var p=$.nodePermissions(a,"wx");if(p)return p;if(n){if(!$.isDir(g.mode))return 54;if($.isRoot(g)||$.getPath(g)===$.cwd())return 10}else if($.isDir(g.mode))return 31;return 0},mayOpen:(a,i)=>a?$.isLink(a.mode)?32:$.isDir(a.mode)&&($.flagsToPermissionString(i)!=="r"||512&i)?31:$.nodePermissions(a,$.flagsToPermissionString(i)):44,MAX_OPEN_FDS:4096,nextfd:(a=0,i=$.MAX_OPEN_FDS)=>{for(var n=a;n<=i;n++)if(!$.streams[n])return n;throw new $.ErrnoError(33)}
2896,getStream:a=>$.streams[a],createStream:(a,i,n)=>{$.FSStream||($.FSStream=function(){this.shared={}},$.FSStream.prototype={},Object.defineProperties($.FSStream.prototype,{object:{get:function(){return this.node},set:function(p){this.node=p}},isRead:{get:function(){return(2097155&this.flags)!=1}},isWrite:{get:function(){return!!(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(p){this.shared.flags=p}},position:{get:function(){return this.shared.position},set:function(p){this.shared.position=p}}})),a=Object.assign(new $.FSStream,a);var g=$.nextfd(i,n);return a.fd=g,$.streams[g]=a,a},closeStream:a=>{$.streams[a]=null},chrdev_stream_ops:{open:a=>{var i=$.getDevice(a.node.rdev);a.stream_ops=i.stream_ops,a.stream_ops.open&&a.stream_ops.open(a)},llseek:()=>{throw new $.ErrnoError(70)}},major:a=>a>>8,minor:a=>255&a,makedev:(a,i)=>a<<8|i,registerDevice:(a,i)=>{$.devices[a]={stream_ops:i}},getDevice:a=>$.devices[a],getMounts:a=>{for(var i=[],n=[a];n.length;){var g=n.pop();i.push(g),n.push.apply(n,g.mounts)}return i},syncfs:(a,i)=>{typeof a=="function"&&(i=a,a=!1),$.syncFSRequests++,$.syncFSRequests>1&&fo("warning: "+$.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var n=$.getMounts($.root.mount),g=0;function p(C){return $.syncFSRequests--,i(C)}function h(C){if(C)return h.errored?void 0:(h.errored=!0,p(C));++g>=n.length&&p(null)}n.forEach(C=>{if(!C.type.syncfs)return h(null);C.type.syncfs(C,a,h)})},mount:(a,i,n)=>{var g,p=n==="/",h=!n;if(p&&$.root)throw new $.ErrnoError(10);if(!p&&!h){var C=$.lookupPath(n,{follow_mount:!1});if(n=C.path,g=C.node,$.isMountpoint(g))throw new $.ErrnoError(10);if(!$.isDir(g.mode))throw new $.ErrnoError(54)}var k={type:a,opts:i,mountpoint:n,mounts:[]},M=a.mount(k);return M.mount=k,k.root=M,p?$.root=M:g&&(g.mounted=k,g.mount&&g.mount.mounts.push(k)),M},unmount:a=>{var i=$.lookupPath(a,{follow_mount:!1});if(!$.isMountpoint(i.node))throw new $.ErrnoError(28);var n=i.node,g=n.mounted,p=$.getMounts(g);Object.keys($.nameTable).forEach(C=>{for(var k=$.nameTable[C];k;){var M=k.name_next;p.includes(k.mount)&&$.destroyNode(k),k=M}}),n.mounted=null;var h=n.mount.mounts.indexOf(g);n.mount.mounts.splice(h,1)},lookup:(a,i)=>a.node_ops.lookup(a,i),mknod:(a,i,n)=>{var g=$.lookupPath(a,{parent:!0}).node,p=dr.basename(a);if(!p||p==="."||p==="..")throw new $.ErrnoError(28);var h=$.mayCreate(g,p);if(h)throw new $.ErrnoError(h);if(!g.node_ops.mknod)throw new $.ErrnoError(63);return g.node_ops.mknod(g,p,i,n)},create:(a,i)=>(i=i!==void 0?i:438,i&=4095,i|=32768,$.mknod(a,i,0)),mkdir:(a,i)=>(i=i!==void 0?i:511,i&=1023,i|=16384,$.mknod(a,i,0)),mkdirTree:(a,i)=>{for(var n=a.split("/"),g="",p=0;p<n.length;++p)if(n[p]){g+="/"+n[p];try{$.mkdir(g,i)}catch(h){if(h.errno!=20)throw h}}},mkdev:(a,i,n)=>(n===void 0&&(n=i,i=438),i|=8192,$.mknod(a,i,n)),symlink:(a,i)=>{if(!Ai.resolve(a))throw new $.ErrnoError(44);var n=$.lookupPath(i,{parent:!0}).node;if(!n)throw new $.ErrnoError(44);var g=dr.basename(i),p=$.mayCreate(n,g);if(p)throw new $.ErrnoError(p);if(!n.node_ops.symlink)throw new $.ErrnoError(63);return n.node_ops.symlink(n,g,a)},rename:(a,i)=>{var n,g,p=dr.dirname(a),h=dr.dirname(i),C=dr.basename(a),k=dr.basename(i);if(n=$.lookupPath(a,{parent:!0}).node,g=$.lookupPath(i,{parent:!0}).node,!n||!g)throw new $.ErrnoError(44);if(n.mount!==g.mount)throw new $.ErrnoError(75);var M,E=$.lookupNode(n,C),D=Ai.relative(a,h);if(D.charAt(0)!==".")throw new $.ErrnoError(28);if((D=Ai.relative(i,p)).charAt(0)!==".")throw new $.ErrnoError(55);try{M=$.lookupNode(g,k)}catch{}if(E!==M){var B=$.isDir(E.mode),v=$.mayDelete(n,C,B);if(v)throw new $.ErrnoError(v);if(v=M?$.mayDelete(g,k,B):$.mayCreate(g,k))throw new $.ErrnoError(v);if(!n.node_ops.rename)throw new $.ErrnoError(63);if($.isMountpoint(E)||M&&$.isMountpoint(M))throw new $.ErrnoError(10);if(g!==n&&(v=$.nodePermissions(n,"w")))throw new $.ErrnoError(v);$.hashRemoveNode(E);try{n.node_ops.rename(E,g,k)}catch(S){throw S}finally{$.hashAddNode(E)}}},rmdir:a=>{var i=$.lookupPath(a,{parent:!0}).node,n=dr.basename(a),g=$.lookupNode(i,n),p=$.mayDelete(i,n,!0);if(p)throw new $.ErrnoError(p);if(!i.node_ops.rmdir)throw new $.ErrnoError(63);if($.isMountpoint(g))throw new $.ErrnoError(10);i.node_ops.rmdir(i,n),$.destroyNode(g)},readdir:a=>{var i=$.lookupPath(a,{follow:!0}).node;if(!i.node_ops.readdir)throw new $.ErrnoError(54);return i.node_ops.readdir(i)},unlink:a=>{var i=$.lookupPath(a,{parent:!0}).node;if(!i)throw new $.ErrnoError(44);var n=dr.basename(a),g=$.lookupNode(i,n),p=$.mayDelete(i,n,!1);if(p)throw new $.ErrnoError(p);if(!i.node_ops.unlink)throw new $.ErrnoError(63);if($.isMountpoint(g))throw new $.ErrnoError(10);i.node_ops.unlink(i,n),$.destroyNode(g)},readlink:a=>{var i=$.lookupPath(a).node;if(!i)throw new $.ErrnoError(44);if(!i.node_ops.readlink)throw new $.ErrnoError(28);return Ai.resolve($.getPath(i.parent),i.node_ops.readlink(i))},stat:(a,i)=>{var n=$.lookupPath(a,{follow:!i}).node;if(!n)throw new $.ErrnoError(44);if(!n.node_ops.getattr)throw new $.ErrnoError(63);return n.node_ops.getattr(n)},lstat:a=>$.stat(a,!0),chmod:(a,i,n)=>{var g;
2896if(typeof a=="string"?g=$.lookupPath(a,{follow:!n}).node:g=a,!g.node_ops.setattr)throw new $.ErrnoError(63);g.node_ops.setattr(g,{mode:4095&i|-4096&g.mode,timestamp:Date.now()})},lchmod:(a,i)=>{$.chmod(a,i,!0)},fchmod:(a,i)=>{var n=$.getStream(a);if(!n)throw new $.ErrnoError(8);$.chmod(n.node,i)},chown:(a,i,n,g)=>{var p;if(typeof a=="string"?p=$.lookupPath(a,{follow:!g}).node:p=a,!p.node_ops.setattr)throw new $.ErrnoError(63);p.node_ops.setattr(p,{timestamp:Date.now()})},lchown:(a,i,n)=>{$.chown(a,i,n,!0)},fchown:(a,i,n)=>{var g=$.getStream(a);if(!g)throw new $.ErrnoError(8);$.chown(g.node,i,n)},truncate:(a,i)=>{if(i<0)throw new $.ErrnoError(28);var n;if(typeof a=="string"?n=$.lookupPath(a,{follow:!0}).node:n=a,!n.node_ops.setattr)throw new $.ErrnoError(63);if($.isDir(n.mode))throw new $.ErrnoError(31);if(!$.isFile(n.mode))throw new $.ErrnoError(28);var g=$.nodePermissions(n,"w");if(g)throw new $.ErrnoError(g);n.node_ops.setattr(n,{size:i,timestamp:Date.now()})},ftruncate:(a,i)=>{var n=$.getStream(a);if(!n)throw new $.ErrnoError(8);if(!(2097155&n.flags))throw new $.ErrnoError(28);$.truncate(n.node,i)},utime:(a,i,n)=>{var g=$.lookupPath(a,{follow:!0}).node;g.node_ops.setattr(g,{timestamp:Math.max(i,n)})},open:(a,i,n)=>{if(a==="")throw new $.ErrnoError(44);var g;if(n=n===void 0?438:n,n=64&(i=typeof i=="string"?$.modeStringToFlags(i):i)?4095&n|32768:0,typeof a=="object")g=a;else{a=dr.normalize(a);try{g=$.lookupPath(a,{follow:!(131072&i)}).node}catch{}}var p=!1;if(64&i)if(g){if(128&i)throw new $.ErrnoError(20)}else g=$.mknod(a,n,0),p=!0;if(!g)throw new $.ErrnoError(44);if($.isChrdev(g.mode)&&(i&=-513),65536&i&&!$.isDir(g.mode))throw new $.ErrnoError(54);if(!p){var h=$.mayOpen(g,i);if(h)throw new $.ErrnoError(h)}512&i&&!p&&$.truncate(g,0),i&=-131713;var C=$.createStream({node:g,path:$.getPath(g),flags:i,seekable:!0,position:0,stream_ops:g.stream_ops,ungotten:[],error:!1});return C.stream_ops.open&&C.stream_ops.open(C),!oe.logReadFiles||1&i||($.readFiles||($.readFiles={}),a in $.readFiles||($.readFiles[a]=1)),C},close:a=>{if($.isClosed(a))throw new $.ErrnoError(8);a.getdents&&(a.getdents=null);try{a.stream_ops.close&&a.stream_ops.close(a)}catch(i){throw i}finally{$.closeStream(a.fd)}a.fd=null},isClosed:a=>a.fd===null,llseek:(a,i,n)=>{if($.isClosed(a))throw new $.ErrnoError(8);if(!a.seekable||!a.stream_ops.llseek)throw new $.ErrnoError(70);if(n!=0&&n!=1&&n!=2)throw new $.ErrnoError(28);return a.position=a.stream_ops.llseek(a,i,n),a.ungotten=[],a.position},read:(a,i,n,g,p)=>{if(g<0||p<0)throw new $.ErrnoError(28);if($.isClosed(a))throw new $.ErrnoError(8);if((2097155&a.flags)==1)throw new $.ErrnoError(8);if($.isDir(a.node.mode))throw new $.ErrnoError(31);if(!a.stream_ops.read)throw new $.ErrnoError(28);var h=p!==void 0;if(h){if(!a.seekable)throw new $.ErrnoError(70)}else p=a.position;var C=a.stream_ops.read(a,i,n,g,p);return h||(a.position+=C),C},write:(a,i,n,g,p,h)=>{if(g<0||p<0)throw new $.ErrnoError(28);if($.isClosed(a))throw new $.ErrnoError(8);if(!(2097155&a.flags))throw new $.ErrnoError(8);if($.isDir(a.node.mode))throw new $.ErrnoError(31);if(!a.stream_ops.write)throw new $.ErrnoError(28);a.seekable&&1024&a.flags&&$.llseek(a,0,2);var C=p!==void 0;if(C){if(!a.seekable)throw new $.ErrnoError(70)}else p=a.position;var k=a.stream_ops.write(a,i,n,g,p,h);return C||(a.position+=k),k},allocate:(a,i,n)=>{if($.isClosed(a))throw new $.ErrnoError(8);if(i<0||n<=0)throw new $.ErrnoError(28);if(!(2097155&a.flags))throw new $.ErrnoError(8);if(!$.isFile(a.node.mode)&&!$.isDir(a.node.mode))throw new $.ErrnoError(43);if(!a.stream_ops.allocate)throw new $.ErrnoError(138);a.stream_ops.allocate(a,i,n)},mmap:(a,i,n,g,p)=>{if(2&g&&!(2&p)&&(2097155&a.flags)!=2)throw new $.ErrnoError(2);if((2097155&a.flags)==1)throw new $.ErrnoError(2);if(!a.stream_ops.mmap)throw new $.ErrnoError(43);return a.stream_ops.mmap(a,i,n,g,p)},msync:(a,i,n,g,p)=>a.stream_ops.msync?a.stream_ops.msync(a,i,n,g,p):0,munmap:a=>0,ioctl:(a,i,n)=>{if(!a.stream_ops.ioctl)throw new $.ErrnoError(59);return a.stream_ops.ioctl(a,i,n)},readFile:(a,i={})=>{if(i.flags=i.flags||0,i.encoding=i.encoding||"binary",i.encoding!=="utf8"&&i.encoding!=="binary")throw new Error('Invalid encoding type "'+i.encoding+'"');var n,g=$.open(a,i.flags),p=$.stat(a).size,h=new Uint8Array(p);return $.read(g,h,0,p,0),i.encoding==="utf8"?n=no(h,0):i.encoding==="binary"&&(n=h),$.close(g),n},writeFile:(a,i,n={})=>{n.flags=n.flags||577;var g=$.open(a,n.flags,n.mode);if(typeof i=="string"){var p=new Uint8Array(Kb(i)+1),h=Xc(i,p,0,p.length);
2896$.write(g,p,0,h,void 0,n.canOwn)}else{if(!ArrayBuffer.isView(i))throw new Error("Unsupported data type");$.write(g,i,0,i.byteLength,void 0,n.canOwn)}$.close(g)},cwd:()=>$.currentPath,chdir:a=>{var i=$.lookupPath(a,{follow:!0});if(i.node===null)throw new $.ErrnoError(44);if(!$.isDir(i.node.mode))throw new $.ErrnoError(54);var n=$.nodePermissions(i.node,"x");if(n)throw new $.ErrnoError(n);$.currentPath=i.path},createDefaultDirectories:()=>{$.mkdir("/tmp"),$.mkdir("/home"),$.mkdir("/home/web_user")},createDefaultDevices:()=>{$.mkdir("/dev"),$.registerDevice($.makedev(1,3),{read:()=>0,write:(a,i,n,g,p)=>g}),$.mkdev("/dev/null",$.makedev(1,3)),Pi.register($.makedev(5,0),Pi.default_tty_ops),Pi.register($.makedev(6,0),Pi.default_tty1_ops),$.mkdev("/dev/tty",$.makedev(5,0)),$.mkdev("/dev/tty1",$.makedev(6,0)),$.mkdir("/dev/shm"),$.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{$.mkdir("/proc");var a=$.mkdir("/proc/self");$.mkdir("/proc/self/fd"),$.mount({mount:()=>{var i=$.createNode(a,"fd",16895,73);return i.node_ops={lookup:(n,g)=>{var p=+g,h=$.getStream(p);if(!h)throw new $.ErrnoError(8);var C={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>h.path}};return C.parent=C,C}},i}},{},"/proc/self/fd")},createStandardStreams:()=>{oe.stdin?$.createDevice("/dev","stdin",oe.stdin):$.symlink("/dev/tty","/dev/stdin"),oe.stdout?$.createDevice("/dev","stdout",null,oe.stdout):$.symlink("/dev/tty","/dev/stdout"),oe.stderr?$.createDevice("/dev","stderr",null,oe.stderr):$.symlink("/dev/tty1","/dev/stderr"),$.open("/dev/stdin",0),$.open("/dev/stdout",1),$.open("/dev/stderr",1)},ensureErrnoError:()=>{$.ErrnoError||($.ErrnoError=function(a,i){this.node=i,this.setErrno=function(n){this.errno=n},this.setErrno(a),this.message="FS error"},$.ErrnoError.prototype=new Error,$.ErrnoError.prototype.constructor=$.ErrnoError,[44].forEach(a=>{$.genericErrors[a]=new $.ErrnoError(a),$.genericErrors[a].stack="<generic error, no stack>"}))},staticInit:()=>{$.ensureErrnoError(),$.nameTable=new Array(4096),$.mount(Gt,{},"/"),$.createDefaultDirectories(),$.createDefaultDevices(),$.createSpecialDirectories(),$.filesystems={MEMFS:Gt}},init:(a,i,n)=>{$.init.initialized=!0,$.ensureErrnoError(),oe.stdin=a||oe.stdin,oe.stdout=i||oe.stdout,oe.stderr=n||oe.stderr,$.createStandardStreams()},quit:()=>{$.init.initialized=!1;for(var a=0;a<$.streams.length;a++){var i=$.streams[a];i&&$.close(i)}},getMode:(a,i)=>{var n=0;return a&&(n|=365),i&&(n|=146),n},findObject:(a,i)=>{var n=$.analyzePath(a,i);return n.exists?n.object:null},analyzePath:(a,i)=>{try{a=(g=$.lookupPath(a,{follow:!i})).path}catch{}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var g=$.lookupPath(a,{parent:!0});n.parentExists=!0,n.parentPath=g.path,n.parentObject=g.node,n.name=dr.basename(a),g=$.lookupPath(a,{follow:!i}),n.exists=!0,n.path=g.path,n.object=g.node,n.name=g.node.name,n.isRoot=g.path==="/"}catch(p){n.error=p.errno}return n},createPath:(a,i,n,g)=>{a=typeof a=="string"?a:$.getPath(a);for(var p=i.split("/").reverse();p.length;){var h=p.pop();if(h){var C=dr.join2(a,h);try{$.mkdir(C)}catch{}a=C}}return C},createFile:(a,i,n,g,p)=>{var h=dr.join2(typeof a=="string"?a:$.getPath(a),i),C=$.getMode(g,p);return $.create(h,C)},createDataFile:(a,i,n,g,p,h)=>{var C=i;a&&(a=typeof a=="string"?a:$.getPath(a),C=i?dr.join2(a,i):a);var k=$.getMode(g,p),M=$.create(C,k);if(n){if(typeof n=="string"){for(var E=new Array(n.length),D=0,B=n.length;D<B;++D)E[D]=n.charCodeAt(D);n=E}$.chmod(M,146|k);var v=$.open(M,577);$.write(v,n,0,n.length,0,h),$.close(v),$.chmod(M,k)}return M},createDevice:(a,i,n,g)=>{var p=dr.join2(typeof a=="string"?a:$.getPath(a),i),h=$.getMode(!!n,!!g);$.createDevice.major||($.createDevice.major=64);var C=$.makedev($.createDevice.major++,0);return $.registerDevice(C,{open:k=>{k.seekable=!1},close:k=>{g&&g.buffer&&g.buffer.length&&g(10)},read:(k,M,E,D,B)=>{for(var v=0,S=0;S<D;S++){var F;try{F=n()}catch{throw new $.ErrnoError(29)}if(F===void 0&&v===0)throw new $.ErrnoError(6);if(F==null)break;v++,M[E+S]=F}return v&&(k.node.timestamp=Date.now()),v},write:(k,M,E,D,B)=>{for(var v=0;v<D;v++)try{g(M[E+v])}catch{throw new $.ErrnoError(29)}return D&&(k.node.timestamp=Date.now()),v}}
2896),$.mkdev(p,h,C)},forceLoadFile:a=>{if(a.isDevice||a.isFolder||a.link||a.contents)return!0;throw typeof XMLHttpRequest<"u"?new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."):new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:(a,i,n,g,p)=>{function h(){this.lengthKnown=!1,this.chunks=[]}if(h.prototype.get=function(B){if(!(B>this.length-1||B<0)){var v=B%this.chunkSize,S=B/this.chunkSize|0;return this.getter(S)[v]}},h.prototype.setDataGetter=function(B){this.getter=B},h.prototype.cacheLength=function(){var B=new XMLHttpRequest;if(B.open("HEAD",n,!1),B.send(null),!(B.status>=200&&B.status<300||B.status===304))throw new Error("Couldn't load "+n+". Status: "+B.status);var v,S=Number(B.getResponseHeader("Content-length")),F=(v=B.getResponseHeader("Accept-Ranges"))&&v==="bytes",R=(v=B.getResponseHeader("Content-Encoding"))&&v==="gzip",X=1048576;F||(X=S);var z=this;z.setDataGetter(L=>{var K=L*X,d=(L+1)*X-1;if(d=Math.min(d,S-1),z.chunks[L]===void 0&&(z.chunks[L]=((w,e)=>{if(w>e)throw new Error("invalid range ("+w+", "+e+") or no bytes requested!");if(e>S-1)throw new Error("only "+S+" bytes available! programmer error!");var u=new XMLHttpRequest;if(u.open("GET",n,!1),S!==X&&u.setRequestHeader("Range","bytes="+w+"-"+e),u.responseType="arraybuffer",u.overrideMimeType&&u.overrideMimeType("text/plain; charset=x-user-defined"),u.send(null),!(u.status>=200&&u.status<300||u.status===304))throw new Error("Couldn't load "+n+". Status: "+u.status);return u.response!==void 0?new Uint8Array(u.response||[]):e8(u.responseText||"",!0)})(K,d)),z.chunks[L]===void 0)throw new Error("doXHR failed!");return z.chunks[L]}),!R&&S||(X=S=1,S=this.getter(0).length,X=S,K0("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=S,this._chunkSize=X,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!m5)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var C=new h;Object.defineProperties(C,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var k={isDevice:!1,contents:C}}else k={isDevice:!1,url:n};var M=$.createFile(a,i,k,g,p);k.contents?M.contents=k.contents:k.url&&(M.contents=null,M.url=k.url),Object.defineProperties(M,{usedBytes:{get:function(){return this.contents.length}}});var E={};function D(B,v,S,F,R){var X=B.node.contents;if(R>=X.length)return 0;var z=Math.min(X.length-R,F);if(X.slice)for(var L=0;L<z;L++)v[S+L]=X[R+L];else for(L=0;L<z;L++)v[S+L]=X.get(R+L);return z}return Object.keys(M.stream_ops).forEach(B=>{var v=M.stream_ops[B];E[B]=function(){return $.forceLoadFile(M),v.apply(null,arguments)}}),E.read=(B,v,S,F,R)=>($.forceLoadFile(M),D(B,v,S,F,R)),E.mmap=(B,v,S,F,R)=>{$.forceLoadFile(M);var X=A8();if(!X)throw new $.ErrnoError(48);return D(B,Fs,X,v,S),{ptr:X,allocated:!0}},M.stream_ops=E,M},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(a,i,n)=>{i=i||(()=>{}),n=n||(()=>{});var g=$.indexedDB();try{var p=g.open($.DB_NAME(),$.DB_VERSION)}catch(h){return n(h)}p.onupgradeneeded=()=>{K0("creating db"),p.result.createObjectStore($.DB_STORE_NAME)},p.onsuccess=()=>{var h=p.result.transaction([$.DB_STORE_NAME],"readwrite"),C=h.objectStore($.DB_STORE_NAME),k=0,M=0,E=a.length;function D(){M==0?i():n()}a.forEach(B=>{var v=C.put($.analyzePath(B).object.contents,B);v.onsuccess=()=>{++k+M==E&&D()},v.onerror=()=>{M++,k+M==E&&D()}}),h.onerror=n},p.onerror=n},loadFilesFromDB:(a,i,n)=>{i=i||(()=>{}),n=n||(()=>{});var g=$.indexedDB();try{var p=g.open($.DB_NAME(),$.DB_VERSION)}catch(h){return n(h)}p.onupgradeneeded=n,p.onsuccess=()=>{var h=p.result;try{var C=h.transaction([$.DB_STORE_NAME],"readonly")}catch(v){return void n(v)}var k=C.objectStore($.DB_STORE_NAME),M=0,E=0,D=a.length;function B(){E==0?i():n()}
2896a.forEach(v=>{var S=k.get(v);S.onsuccess=()=>{$.analyzePath(v).exists&&$.unlink(v),$.createDataFile(dr.dirname(v),dr.basename(v),S.result,!0,!0,!0),++M+E==D&&B()},S.onerror=()=>{E++,M+E==D&&B()}}),C.onerror=n},p.onerror=n}},Fr={DEFAULT_POLLMASK:5,calculateAt:function(a,i,n){if(dr.isAbs(i))return i;var g;if(a===-100?g=$.cwd():g=Fr.getStreamFromFD(a).path,i.length==0){if(!n)throw new $.ErrnoError(44);return g}return dr.join2(g,i)},doStat:function(a,i,n){try{var g=a(i)}catch(k){if(k&&k.node&&dr.normalize(i)!==dr.normalize($.getPath(k.node)))return-54;throw k}Xt[n>>2]=g.dev,Xt[n+8>>2]=g.ino,Xt[n+12>>2]=g.mode,qr[n+16>>2]=g.nlink,Xt[n+20>>2]=g.uid,Xt[n+24>>2]=g.gid,Xt[n+28>>2]=g.rdev,jr=[g.size>>>0,(Ct=g.size,+Math.abs(Ct)>=1?Ct>0?(0|Math.min(+Math.floor(Ct/4294967296),4294967295))>>>0:~~+Math.ceil((Ct-+(~~Ct>>>0))/4294967296)>>>0:0)],Xt[n+40>>2]=jr[0],Xt[n+44>>2]=jr[1],Xt[n+48>>2]=4096,Xt[n+52>>2]=g.blocks;var p=g.atime.getTime(),h=g.mtime.getTime(),C=g.ctime.getTime();return jr=[Math.floor(p/1e3)>>>0,(Ct=Math.floor(p/1e3),+Math.abs(Ct)>=1?Ct>0?(0|Math.min(+Math.floor(Ct/4294967296),4294967295))>>>0:~~+Math.ceil((Ct-+(~~Ct>>>0))/4294967296)>>>0:0)],Xt[n+56>>2]=jr[0],Xt[n+60>>2]=jr[1],qr[n+64>>2]=p%1e3*1e3,jr=[Math.floor(h/1e3)>>>0,(Ct=Math.floor(h/1e3),+Math.abs(Ct)>=1?Ct>0?(0|Math.min(+Math.floor(Ct/4294967296),4294967295))>>>0:~~+Math.ceil((Ct-+(~~Ct>>>0))/4294967296)>>>0:0)],Xt[n+72>>2]=jr[0],Xt[n+76>>2]=jr[1],qr[n+80>>2]=h%1e3*1e3,jr=[Math.floor(C/1e3)>>>0,(Ct=Math.floor(C/1e3),+Math.abs(Ct)>=1?Ct>0?(0|Math.min(+Math.floor(Ct/4294967296),4294967295))>>>0:~~+Math.ceil((Ct-+(~~Ct>>>0))/4294967296)>>>0:0)],Xt[n+88>>2]=jr[0],Xt[n+92>>2]=jr[1],qr[n+96>>2]=C%1e3*1e3,jr=[g.ino>>>0,(Ct=g.ino,+Math.abs(Ct)>=1?Ct>0?(0|Math.min(+Math.floor(Ct/4294967296),4294967295))>>>0:~~+Math.ceil((Ct-+(~~Ct>>>0))/4294967296)>>>0:0)],Xt[n+104>>2]=jr[0],Xt[n+108>>2]=jr[1],0},doMsync:function(a,i,n,g,p){if(!$.isFile(i.node.mode))throw new $.ErrnoError(43);if(2&g)return 0;var h=io.slice(a,a+n);$.msync(i,h,p,n,g)},varargs:void 0,get:function(){return Fr.varargs+=4,Xt[Fr.varargs-4>>2]},getStr:function(a){return oo(a)},getStreamFromFD:function(a){var i=$.getStream(a);if(!i)throw new $.ErrnoError(8);return i}},J2={};function Xo(){if(!Xo.strings){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:Kc||"./this.program"};for(var i in J2)J2[i]===void 0?delete a[i]:a[i]=J2[i];var n=[];for(var i in a)n.push(i+"="+a[i]);Xo.strings=n}return Xo.strings}var Ah=function(a,i,n,g){a||(a=this),this.parent=a,this.mount=a.mount,this.mounted=null,this.id=$.nextInode++,this.name=i,this.mode=n,this.node_ops={},this.stream_ops={},this.rdev=g};Object.defineProperties(Ah.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(a){a?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return $.isDir(this.mode)}},isDevice:{get:function(){return $.isChrdev(this.mode)}}}),$.FSNode=Ah,$.staticInit(),oe.FS_createPath=$.createPath,oe.FS_createDataFile=$.createDataFile,oe.FS_unlink=$.unlink,oe.FS_createLazyFile=$.createLazyFile,oe.FS_createDevice=$.createDevice;var I5={g:function(a,i,n,g){Dn("Assertion failed: "+oo(a)+", at: "+[i?oo(i):"unknown filename",n,g?oo(g):"unknown function"])},u:function(a,i,n){throw new b5(a).init(i,n),a},d:function(a,i,n){Fr.varargs=n;try{var g=Fr.getStreamFromFD(a);switch(i){case 0:return(p=Fr.get())<0?-28:$.createStream(g,p).fd;case 1:case 2:case 6:case 7:return 0;case 3:return g.flags;case 4:var p=Fr.get();return g.flags|=p,0;case 5:return p=Fr.get(),X0[p+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return h=28,Xt[eI()>>2]=h,-1}}catch(C){if($===void 0||!(C instanceof $.ErrnoError))throw C;return-C.errno}var h},q:function(a,i,n){try{var g=Fr.getStreamFromFD(a);g.getdents||(g.getdents=$.readdir(g.path));for(var p=280,h=0,C=$.llseek(g,0,1),k=Math.floor(C/p);k<g.getdents.length&&h+p<=n;){var M,E,D=g.getdents[k];if(D===".")M=g.node.id,E=4;else if(D==="..")M=$.lookupPath(g.path,{parent:!0}).node.id,E=4;
2896else{var B=$.lookupNode(g.node,D);M=B.id,E=$.isChrdev(B.mode)?2:$.isDir(B.mode)?4:$.isLink(B.mode)?10:8}jr=[M>>>0,(Ct=M,+Math.abs(Ct)>=1?Ct>0?(0|Math.min(+Math.floor(Ct/4294967296),4294967295))>>>0:~~+Math.ceil((Ct-+(~~Ct>>>0))/4294967296)>>>0:0)],Xt[i+h>>2]=jr[0],Xt[i+h+4>>2]=jr[1],jr=[(k+1)*p>>>0,(Ct=(k+1)*p,+Math.abs(Ct)>=1?Ct>0?(0|Math.min(+Math.floor(Ct/4294967296),4294967295))>>>0:~~+Math.ceil((Ct-+(~~Ct>>>0))/4294967296)>>>0:0)],Xt[i+h+8>>2]=jr[0],Xt[i+h+12>>2]=jr[1],X0[i+h+16>>1]=280,Fs[i+h+18|0]=E,Xc(D,io,i+h+19,256),h+=p,k+=1}return $.llseek(g,k*p,0),h}catch(v){if($===void 0||!(v instanceof $.ErrnoError))throw v;return-v.errno}},h:function(a,i,n){Fr.varargs=n;try{var g=Fr.getStreamFromFD(a);switch(i){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return g.tty?0:-59;case 21519:if(!g.tty)return-59;var p=Fr.get();return Xt[p>>2]=0,0;case 21520:return g.tty?-28:-59;case 21531:return p=Fr.get(),$.ioctl(g,i,p);default:return-28}}catch(h){if($===void 0||!(h instanceof $.ErrnoError))throw h;return-h.errno}},e:function(a,i,n,g){Fr.varargs=g;try{i=Fr.getStr(i),i=Fr.calculateAt(a,i);var p=g?Fr.get():0;return $.open(i,n,p).fd}catch(h){if($===void 0||!(h instanceof $.ErrnoError))throw h;return-h.errno}},o:function(a){try{return a=Fr.getStr(a),$.rmdir(a),0}catch(i){if($===void 0||!(i instanceof $.ErrnoError))throw i;return-i.errno}},n:function(a,i){try{return a=Fr.getStr(a),Fr.doStat($.stat,a,i)}catch(n){if($===void 0||!(n instanceof $.ErrnoError))throw n;return-n.errno}},p:function(a,i,n){try{return i=Fr.getStr(i),i=Fr.calculateAt(a,i),n===0?$.unlink(i):n===512?$.rmdir(i):Dn("Invalid flags passed to unlinkat"),0}catch(g){if($===void 0||!(g instanceof $.ErrnoError))throw g;return-g.errno}},i:function(){return!0},l:function(){Dn("")},f:function(){return Date.now()},j:function(a,i,n){io.copyWithin(a,i,i+n)},m:function(a){io.length,Dn("OOM")},r:function(a,i){var n=0;return Xo().forEach(function(g,p){var h=i+n;qr[a+4*p>>2]=h,function(C,k){for(var M=0;M<C.length;++M)Fs[0|k++]=C.charCodeAt(M);Fs[0|k]=0}(g,h),n+=g.length+1}),0},s:function(a,i){var n=Xo();qr[a>>2]=n.length;var g=0;return n.forEach(function(p){g+=p.length+1}),qr[i>>2]=g,0},b:function(a){try{var i=Fr.getStreamFromFD(a);return $.close(i),0}catch(n){if($===void 0||!(n instanceof $.ErrnoError))throw n;return n.errno}},t:function(a,i,n,g){try{var p=function(h,C,k,M){for(var E=0,D=0;D<k;D++){var B=qr[C>>2],v=qr[C+4>>2];C+=8;var S=$.read(h,Fs,B,v,M);if(S<0)return-1;if(E+=S,S<v)break}return E}(Fr.getStreamFromFD(a),i,n);return qr[g>>2]=p,0}catch(h){if($===void 0||!(h instanceof $.ErrnoError))throw h;return h.errno}},k:function(a,i,n,g,p){try{var h=(M=n)+2097152>>>0<4194305-!!(k=i)?(k>>>0)+4294967296*M:NaN;if(isNaN(h))return 61;var C=Fr.getStreamFromFD(a);return $.llseek(C,h,g),jr=[C.position>>>0,(Ct=C.position,+Math.abs(Ct)>=1?Ct>0?(0|Math.min(+Math.floor(Ct/4294967296),4294967295))>>>0:~~+Math.ceil((Ct-+(~~Ct>>>0))/4294967296)>>>0:0)],Xt[p>>2]=jr[0],Xt[p+4>>2]=jr[1],C.getdents&&h===0&&g===0&&(C.getdents=null),0}catch(E){if($===void 0||!(E instanceof $.ErrnoError))throw E;return E.errno}var k,M},c:function(a,i,n,g){try{var p=function(h,C,k,M){for(var E=0,D=0;D<k;D++){var B=qr[C>>2],v=qr[C+4>>2];C+=8;var S=$.write(h,Fs,B,v,M);if(S<0)return-1;E+=S}return E}(Fr.getStreamFromFD(a),i,n);return qr[g>>2]=p,0}catch(h){if($===void 0||!(h instanceof $.ErrnoError))throw h;return h.errno}},a:L0};(function(){var a,i={a:I5};function n(p,h){var C=p.exports;oe.asm=C,oe.asm.ua,Jb(oe.asm.v),$b()}function g(p){n(p.instance)}if(qb(),oe.instantiateWasm)try{return oe.instantiateWasm(i,n)}catch(p){return fo("Module.instantiateWasm callback failed with error: "+p),!1}a=g,async function(){return[]}().then(function(p){return go.instantiate(p,i)}).then(function(p){return p}).then(a,function(p){fo("failed to asynchronously prepare wasm: "+p),Dn(p)})})(),oe.___wasm_call_ctors=function(){return(oe.___wasm_call_ctors=oe.asm.v).apply(null,arguments)};var t8=oe._emscripten_bind_VoidPtr___destroy___0=function(){return(t8=oe._emscripten_bind_VoidPtr___destroy___0=oe.asm.w).apply(null,arguments)},r8=oe._emscripten_bind_espeak_VOICE_get_name_0=function(){return(r8=oe._emscripten_bind_espeak_VOICE_get_name_0=oe.asm.x).apply(null,arguments)},s8=oe._emscripten_bind_espeak_VOICE_set_name_1=function(){return(s8=oe._emscripten_bind_espeak_VOICE_set_name_1=oe.asm.y).apply(null,arguments)},a8=oe._emscripten_bind_espeak_VOICE_get_languages_1=function(){return(a8=oe._emscripten_bind_espeak_VOICE_get_languages_1=oe.asm.z).apply(null,arguments)},n8=oe._emscripten_bind_espeak_VOICE_get_identifier_0=function(){return(n8=oe._emscripten_bind_espeak_VOICE_get_identifier_0=oe.asm.A).apply(null,arguments)},i8=oe._emscripten_bind_espeak_VOICE_set_identifier_1=function(){return(i8=oe._emscripten_bind_espeak_VOICE_set_identifier_1=oe.asm.B).apply(null,arguments)},o8=oe._emscripten_bind_espeak_VOICE_get_gender_0=function(){return(o8=oe._emscripten_bind_espeak_VOICE_get_gender_0=oe.asm.C).apply(null,arguments)},l8=oe._emscripten_bind_espeak_VOICE_set_gender_1=function(){return(l8=oe._emscripten_bind_espeak_VOICE_set_gender_1=oe.asm.D).apply(null,arguments)},c8=oe._emscripten_bind_espeak_VOICE_get_age_0=function(){return(c8=oe._emscripten_bind_espeak_VOICE_get_age_0=oe.asm.E).apply(null,arguments)},u8=oe._emscripten_bind_espeak_VOICE_set_age_1=function(){return(u8=oe._emscripten_bind_espeak_VOICE_set_age_1=oe.asm.F).apply(null,arguments)},d8=oe._emscripten_bind_espeak_VOICE_get_variant_0=function(){return(d8=oe._emscripten_bind_espeak_VOICE_get_variant_0=oe.asm.G).apply(null,arguments)},f8=oe._emscripten_bind_espeak_VOICE_set_variant_1=function(){return(f8=oe._emscripten_bind_espeak_VOICE_set_variant_1=oe.asm.H).apply(null,arguments)},g8=oe._emscripten_bind_espeak_VOICE_get_xx1_0=function(){return(g8=oe._emscripten_bind_espeak_VOICE_get_xx1_0=oe.asm.I).apply(null,arguments)},p8=oe._emscripten_bind_espeak_VOICE_set_xx1_1=function(){return(p8=oe._emscripten_bind_espeak_VOICE_set_xx1_1=oe.asm.J).apply(null,arguments)},m8=oe._emscripten_bind_espeak_VOICE_get_score_0=function(){return(m8=oe._emscripten_bind_espeak_VOICE_get_score_0=oe.asm.K).apply(null,arguments)},h8=oe._emscripten_bind_espeak_VOICE_set_score_1=function(){return(
2896h8=oe._emscripten_bind_espeak_VOICE_set_score_1=oe.asm.L).apply(null,arguments)},C8=oe._emscripten_bind_espeak_VOICE_get_spare_0=function(){return(C8=oe._emscripten_bind_espeak_VOICE_get_spare_0=oe.asm.M).apply(null,arguments)},b8=oe._emscripten_bind_espeak_VOICE_set_spare_1=function(){return(b8=oe._emscripten_bind_espeak_VOICE_set_spare_1=oe.asm.N).apply(null,arguments)},I8=oe._emscripten_bind_espeak_VOICE___destroy___0=function(){return(I8=oe._emscripten_bind_espeak_VOICE___destroy___0=oe.asm.O).apply(null,arguments)},w8=oe._emscripten_bind_espeak_EVENT_get_type_0=function(){return(w8=oe._emscripten_bind_espeak_EVENT_get_type_0=oe.asm.P).apply(null,arguments)},k8=oe._emscripten_bind_espeak_EVENT_get_unique_identifier_0=function(){return(k8=oe._emscripten_bind_espeak_EVENT_get_unique_identifier_0=oe.asm.Q).apply(null,arguments)},M8=oe._emscripten_bind_espeak_EVENT_get_text_position_0=function(){return(M8=oe._emscripten_bind_espeak_EVENT_get_text_position_0=oe.asm.R).apply(null,arguments)},E8=oe._emscripten_bind_espeak_EVENT_get_length_0=function(){return(E8=oe._emscripten_bind_espeak_EVENT_get_length_0=oe.asm.S).apply(null,arguments)},v8=oe._emscripten_bind_espeak_EVENT_get_audio_position_0=function(){return(v8=oe._emscripten_bind_espeak_EVENT_get_audio_position_0=oe.asm.T).apply(null,arguments)},x8=oe._emscripten_bind_espeak_EVENT_get_sample_0=function(){return(x8=oe._emscripten_bind_espeak_EVENT_get_sample_0=oe.asm.U).apply(null,arguments)},B8=oe._emscripten_bind_espeak_EVENT_get_user_data_0=function(){return(B8=oe._emscripten_bind_espeak_EVENT_get_user_data_0=oe.asm.V).apply(null,arguments)},y8=oe._emscripten_bind_espeak_EVENT___destroy___0=function(){return(y8=oe._emscripten_bind_espeak_EVENT___destroy___0=oe.asm.W).apply(null,arguments)},D8=oe._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=function(){return(D8=oe._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=oe.asm.X).apply(null,arguments)},T8=oe._emscripten_bind_eSpeakNGWorker_synth__2=function(){return(T8=oe._emscripten_bind_eSpeakNGWorker_synth__2=oe.asm.Y).apply(null,arguments)},P8=oe._emscripten_bind_eSpeakNGWorker_synth_ipa__2=function(){return(P8=oe._emscripten_bind_eSpeakNGWorker_synth_ipa__2=oe.asm.Z).apply(null,arguments)},G8=oe._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=function(){return(G8=oe._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=oe.asm._).apply(null,arguments)},Q8=oe._emscripten_bind_eSpeakNGWorker_set_voice_2=function(){return(Q8=oe._emscripten_bind_eSpeakNGWorker_set_voice_2=oe.asm.$).apply(null,arguments)},F8=oe._emscripten_bind_eSpeakNGWorker_set_voice_3=function(){return(F8=oe._emscripten_bind_eSpeakNGWorker_set_voice_3=oe.asm.aa).apply(null,arguments)},S8=oe._emscripten_bind_eSpeakNGWorker_set_voice_4=function(){return(S8=oe._emscripten_bind_eSpeakNGWorker_set_voice_4=oe.asm.ba).apply(null,arguments)},O8=oe._emscripten_bind_eSpeakNGWorker_set_voice_5=function(){return(O8=oe._emscripten_bind_eSpeakNGWorker_set_voice_5=oe.asm.ca).apply(null,arguments)},_8=oe._emscripten_bind_eSpeakNGWorker_get_voices_1=function(){return(_8=oe._emscripten_bind_eSpeakNGWorker_get_voices_1=oe.asm.da).apply(null,arguments)},z8=oe._emscripten_bind_eSpeakNGWorker_set_voices_2=function(){return(z8=oe._emscripten_bind_eSpeakNGWorker_set_voices_2=oe.asm.ea).apply(null,arguments)},N8=oe._emscripten_bind_eSpeakNGWorker_get_samplerate_0=function(){return(N8=oe._emscripten_bind_eSpeakNGWorker_get_samplerate_0=oe.asm.fa).apply(null,arguments)},L8=oe._emscripten_bind_eSpeakNGWorker_get_rate_0=function(){return(L8=oe._emscripten_bind_eSpeakNGWorker_get_rate_0=oe.asm.ga).apply(null,arguments)},R8=oe._emscripten_bind_eSpeakNGWorker_set_rate_1=function(){return(R8=oe._emscripten_bind_eSpeakNGWorker_set_rate_1=oe.asm.ha).apply(null,arguments)},j8=oe._emscripten_bind_eSpeakNGWorker_get_pitch_0=function(){return(j8=oe._emscripten_bind_eSpeakNGWorker_get_pitch_0=oe.asm.ia).apply(null,arguments)},W8=oe._emscripten_bind_eSpeakNGWorker_set_pitch_1=function(){return(W8=oe._emscripten_bind_eSpeakNGWorker_set_pitch_1=oe.asm.ja).apply(null,arguments)},V8=oe._emscripten_bind_eSpeakNGWorker___destroy___0=function(){return(V8=oe._emscripten_bind_eSpeakNGWorker___destroy___0=oe.asm.ka).apply(null,arguments)},Y8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=function(){return(Y8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=oe.asm.la).apply(null,arguments)},H8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=function(){return(H8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=oe.asm.ma).apply(null,arguments)},U8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=function(){return(U8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=oe.asm.na).apply(null,arguments)},K8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=function(){return(K8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=oe.asm.oa).apply(null,arguments)},X8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=function(){return(X8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=oe.asm.pa).apply(null,arguments)},Z8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=function(){return(Z8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=oe.asm.qa).apply(null,arguments)},J8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=function(){return(J8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=oe.asm.ra).apply(null,arguments)},q8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=function(){return(q8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=oe.asm.sa).apply(null,arguments)},$8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=function(){return($8=oe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=oe.asm.ta).apply(null,arguments)},eI=oe.___errno_location=function(){return(eI=oe.___errno_location=oe.asm.va).apply(null,arguments)};oe._free=function(){return(oe._free=oe.asm.wa).apply(null,arguments)},oe._malloc=function(){return(oe._malloc=oe.asm.xa).apply(null,arguments)};var Z0,AI=oe.___cxa_is_pointer_type=function(){return(AI=oe.___cxa_is_pointer_type=oe.asm.ya).apply(null,arguments)};function tI(a){function i(){Z0||(Z0=!0,oe.calledRun=!0,Yb||(Zb=!0,oe.noFSInit||$.init.initialized||$.init(),$.ignorePermissions=!1,Z2(Xb),oe.onRuntimeInitialized&&oe.onRuntimeInitialized(),function(){if(oe.postRun)for(typeof oe.postRun=="function"&&(oe.postRun=[oe.postRun]);oe.postRun.length;)n=oe.postRun.shift(),eh.unshift(n);var n;Z2(eh)}()))}Gi>0||(function(){if(oe.preRun)for(typeof oe.preRun=="function"&&(oe.preRun=[oe.preRun]);oe.preRun.length;)n=oe.preRun.shift(),$m.unshift(n);var n;Z2($m)}(),Gi>0||(oe.setStatus?(oe.setStatus("Running..."),setTimeout(function(){setTimeout(function(){oe.setStatus("")},1),i()},1)):i()))}if(oe.___start_em_js=132724,oe.___stop_em_js=132822,oe.addRunDependency=qb,oe.removeRunDependency=$b,oe.FS_createPath=$.createPath,oe.FS_createDataFile=$.createDataFile,oe.FS_createLazyFile=$.createLazyFile,oe.FS_createDevice=$.createDevice,oe.FS_unlink=$.unlink,Ko=function a(){Z0||tI(),Z0||(Ko=a)},oe.preInit)for(typeof oe.preInit=="function"&&(oe.preInit=[oe.preInit]);oe.preInit.length>0;)oe.preInit.pop()();function $s(){}
vendor: 4,770 bytes, line 2896
2896function J0(a){return(a||$s).__cache__}function lo(a,i){var n=J0(i),g=n[a];return g||((g=Object.create((i||$s).prototype)).ptr=a,n[a]=g)}tI(),$s.prototype=Object.create($s.prototype),$s.prototype.constructor=$s,$s.prototype.__class__=$s,$s.__cache__={},oe.WrapperObject=$s,oe.getCache=J0,oe.wrapPointer=lo,oe.castObject=function(a,i){return lo(a.ptr,i)},oe.NULL=lo(0),oe.destroy=function(a){if(!a.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";a.__destroy__(),delete J0(a.__class__)[a.ptr]},oe.compare=function(a,i){return a.ptr===i.ptr},oe.getPointer=function(a){return a.ptr},oe.getClass=function(a){return a.__class__};var cr={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(cr.needed){for(var a=0;a<cr.temps.length;a++)oe._free(cr.temps[a]);cr.temps.length=0,oe._free(cr.buffer),cr.buffer=0,cr.size+=cr.needed,cr.needed=0}cr.buffer||(cr.size+=128,cr.buffer=oe._malloc(cr.size),K2(cr.buffer)),cr.pos=0},alloc:function(a,i){K2(cr.buffer);var n,g=i.BYTES_PER_ELEMENT,p=a.length*g;return p=p+7&-8,cr.pos+p>=cr.size?(K2(p>0),cr.needed+=p,n=oe._malloc(p),cr.temps.push(n)):(n=cr.buffer+cr.pos,cr.pos+=p),n},copy:function(a,i,n){switch(n>>>=0,i.BYTES_PER_ELEMENT){case 2:n>>>=1;break;case 4:n>>>=2;break;case 8:n>>>=3}for(var g=0;g<a.length;g++)i[n+g]=a[g]}};function xi(a){if(typeof a=="string"){var i=e8(a),n=cr.alloc(i,Fs);return cr.copy(i,Fs,n),n}return a}function Bn(){throw"cannot construct a VoidPtr, no constructor in IDL"}function HA(){throw"cannot construct a espeak_VOICE, no constructor in IDL"}function _t(){throw"cannot construct a espeak_EVENT, no constructor in IDL"}function wt(){this.ptr=D8(),J0(wt)[this.ptr]=this}Bn.prototype=Object.create($s.prototype),Bn.prototype.constructor=Bn,Bn.prototype.__class__=Bn,Bn.__cache__={},oe.VoidPtr=Bn,Bn.prototype.__destroy__=Bn.prototype.__destroy__=function(){var a=this.ptr;t8(a)},HA.prototype=Object.create($s.prototype),HA.prototype.constructor=HA,HA.prototype.__class__=HA,HA.__cache__={},oe.espeak_VOICE=HA,HA.prototype.get_name=HA.prototype.get_name=function(){var a=this.ptr;return oo(r8(a))},HA.prototype.set_name=HA.prototype.set_name=function(a){var i=this.ptr;cr.prepare(),a=a&&typeof a=="object"?a.ptr:xi(a),s8(i,a)},Object.defineProperty(HA.prototype,"name",{get:HA.prototype.get_name,set:HA.prototype.set_name}),HA.prototype.get_languages=HA.prototype.get_languages=function(a){var i=this.ptr;return a&&typeof a=="object"&&(a=a.ptr),a8(i,a)},Object.defineProperty(HA.prototype,"languages",{get:HA.prototype.get_languages}),HA.prototype.get_identifier=HA.prototype.get_identifier=function(){var a=this.ptr;return oo(n8(a))},HA.prototype.set_identifier=HA.prototype.set_identifier=function(a){var i=this.ptr;cr.prepare(),a=a&&typeof a=="object"?a.ptr:xi(a),i8(i,a)},Object.defineProperty(HA.prototype,"identifier",{get:HA.prototype.get_identifier,set:HA.prototype.set_identifier}),HA.prototype.get_gender=HA.prototype.get_gender=function(){var a=this.ptr;return o8(a)},HA.prototype.set_gender=HA.prototype.set_gender=function(a){var i=this.ptr;a&&typeof a=="object"&&(a=a.ptr),l8(i,a)},Object.defineProperty(HA.prototype,"gender",{get:HA.prototype.get_gender,set:HA.prototype.set_gender}),HA.prototype.get_age=HA.prototype.get_age=function(){var a=this.ptr;return c8(a)},HA.prototype.set_age=HA.prototype.set_age=function(a){var i=this.ptr;a&&typeof a=="object"&&(a=a.ptr),u8(i,a)},Object.defineProperty(HA.prototype,"age",{get:HA.prototype.get_age,set:HA.prototype.set_age}),HA.prototype.get_variant=HA.prototype.get_variant=function(){var a=this.ptr;return d8(a)},HA.prototype.set_variant=HA.prototype.set_variant=function(a){var i=this.ptr;a&&typeof a=="object"&&(a=a.ptr),f8(i,a)},Object.defineProperty(HA.prototype,"variant",{get:HA.prototype.get_variant,set:HA.prototype.set_variant}),HA.prototype.get_xx1=HA.prototype.get_xx1=function(){var a=this.ptr;return g8(a)},HA.prototype.set_xx1=HA.prototype.set_xx1=function(a){var i=this.ptr;a&&typeof a=="object"&&(a=a.ptr),p8(i,a)},Object.defineProperty(HA.prototype,"xx1",{get:HA.prototype.get_xx1,set:HA.prototype.set_xx1}),HA.prototype.get_score=HA.prototype.get_score=function(){var a=this.ptr;return m8(a)},HA.prototype.set_score=HA.prototype.set_score=function(a){var i=this.ptr;a&&typeof a=="object"&&(a=a.ptr),h8(i,a)},Object.defineProperty(HA.prototype,"score",{get:HA.prototype.get_score,set:HA.prototype.set_score}),HA.prototype.get_spare=HA.prototype.get_spare=function(){var a=this.ptr;return C8(a)},HA.prototype.set_spare=HA.prototype.set_spare=function(a){var i=this.ptr;a&&typeof a=="object"&&(a=a.ptr),b8(i,a)},Object.defineProperty(HA.prototype,"spare",{get:HA.prototype.get_spare,set:HA.prototype.set_spare}),HA.prototype.__destroy__=HA.prototype.__destroy__=function(){var a=this.ptr;
2896I8(a)},_t.prototype=Object.create($s.prototype),_t.prototype.constructor=_t,_t.prototype.__class__=_t,_t.__cache__={},oe.espeak_EVENT=_t,_t.prototype.get_type=_t.prototype.get_type=function(){var a=this.ptr;return w8(a)},Object.defineProperty(_t.prototype,"type",{get:_t.prototype.get_type}),_t.prototype.get_unique_identifier=_t.prototype.get_unique_identifier=function(){var a=this.ptr;return k8(a)},Object.defineProperty(_t.prototype,"unique_identifier",{get:_t.prototype.get_unique_identifier}),_t.prototype.get_text_position=_t.prototype.get_text_position=function(){var a=this.ptr;return M8(a)},Object.defineProperty(_t.prototype,"text_position",{get:_t.prototype.get_text_position}),_t.prototype.get_length=_t.prototype.get_length=function(){var a=this.ptr;return E8(a)},Object.defineProperty(_t.prototype,"length",{get:_t.prototype.get_length}),_t.prototype.get_audio_position=_t.prototype.get_audio_position=function(){var a=this.ptr;return v8(a)},Object.defineProperty(_t.prototype,"audio_position",{get:_t.prototype.get_audio_position}),_t.prototype.get_sample=_t.prototype.get_sample=function(){var a=this.ptr;return x8(a)},Object.defineProperty(_t.prototype,"sample",{get:_t.prototype.get_sample}),_t.prototype.get_user_data=_t.prototype.get_user_data=function(){var a=this.ptr;return B8(a)},Object.defineProperty(_t.prototype,"user_data",{get:_t.prototype.get_user_data}),_t.prototype.__destroy__=_t.prototype.__destroy__=function(){var a=this.ptr;y8(a)},wt.prototype=Object.create($s.prototype),wt.prototype.constructor=wt,wt.prototype.__class__=wt,wt.__cache__={},oe.eSpeakNGWorker=wt,wt.prototype.synth_=wt.prototype.synth_=function(a,i){var n=this.ptr;cr.prepare(),a=a&&typeof a=="object"?a.ptr:xi(a),i&&typeof i=="object"&&(i=i.ptr),T8(n,a,i)},wt.prototype.synth_ipa_=wt.prototype.synth_ipa_=function(a,i){var n=this.ptr;return cr.prepare(),a=a&&typeof a=="object"?a.ptr:xi(a),i=i&&typeof i=="object"?i.ptr:xi(i),P8(n,a,i)},wt.prototype.getSizeOfEventStruct_=wt.prototype.getSizeOfEventStruct_=function(){var a=this.ptr;return G8(a)},wt.prototype.set_voice=wt.prototype.set_voice=function(a,i,n,g,p){var h=this.ptr;return cr.prepare(),a=a&&typeof a=="object"?a.ptr:xi(a),i=i&&typeof i=="object"?i.ptr:xi(i),n&&typeof n=="object"&&(n=n.ptr),g&&typeof g=="object"&&(g=g.ptr),p&&typeof p=="object"&&(p=p.ptr),n===void 0?Q8(h,a,i):g===void 0?F8(h,a,i,n):p===void 0?S8(h,a,i,n,g):O8(h,a,i,n,g,p)},wt.prototype.get_voices=wt.prototype.get_voices=function(a){var i=this.ptr;return a&&typeof a=="object"&&(a=a.ptr),lo(_8(i,a),HA)},wt.prototype.set_voices=wt.prototype.set_voices=function(a,i){var n=this.ptr;cr.prepare(),a&&typeof a=="object"&&(a=a.ptr),i&&typeof i=="object"&&(i=i.ptr),z8(n,a,i)},Object.defineProperty(wt.prototype,"voices",{get:wt.prototype.get_voices,set:wt.prototype.set_voices}),wt.prototype.get_samplerate=wt.prototype.get_samplerate=function(){var a=this.ptr;return N8(a)},Object.defineProperty(wt.prototype,"samplerate",{get:wt.prototype.get_samplerate}),wt.prototype.get_rate=wt.prototype.get_rate=function(){var a=this.ptr;return L8(a)},wt.prototype.set_rate=wt.prototype.set_rate=function(a){var i=this.ptr;a&&typeof a=="object"&&(a=a.ptr),R8(i,a)},Object.defineProperty(wt.prototype,"rate",{get:wt.prototype.get_rate,set:wt.prototype.set_rate}),wt.prototype.get_pitch=wt.prototype.get_pitch=function(){var a=this.ptr;return j8(a)},wt.prototype.set_pitch=wt.prototype.set_pitch=function(a){var i=this.ptr;a&&typeof a=="object"&&(a=a.ptr),W8(i,a)},Object.defineProperty(wt.prototype,"pitch",{get:wt.prototype.get_pitch,set:wt.prototype.set_pitch}),wt.prototype.__destroy__=wt.prototype.__destroy__=function(){var a=this.ptr;V8(a)},function(){function a(){oe.espeakEVENT_LIST_TERMINATED=Y8(),oe.espeakEVENT_WORD=H8(),oe.espeakEVENT_SENTENCE=U8(),oe.espeakEVENT_MARK=K8(),oe.espeakEVENT_PLAY=X8(),oe.espeakEVENT_END=Z8(),oe.espeakEVENT_MSG_TERMINATED=J8(),oe.espeakEVENT_PHONEME=q8(),oe.espeakEVENT_SAMPLERATE=$8()}Zb?a():Jb(a)}(),wt.prototype.list_voices=function(){for(var a,i=[],n=this.get_voices(a=0);n.ptr!=0;n=this.get_voices(++a)){let k=function(M){for(var E="",D=M,B=n.get_languages(D++);B!=0;)E+=String.fromCharCode(B),B=n.get_languages(D++);return E};for(var g={name:n.get_name(),identifier:n.get_identifier(),languages:[]},p=0,h=n.get_languages(p);h!=0;
2896){var C={priority:h,name:k(++p)};g.languages.push(C),p+=C.name.length+1,h=n.get_languages(p)}i.push(g)}return i};var w5=["list_terminated","word","sentence","mark","play","end","msg_terminated","phoneme","samplerate"];wt.prototype.synthesize=function(a,i){var n=this.getSizeOfEventStruct_(),g=addFunction(function(p,h,C){for(var k=new Float32Array(2*h),M=0;M<h;M++)k[2*M]=Math.max(-1,Math.min(1,C5(p+2*M,"i16")/32768)),k[2*M+1]=k[2*M];var E=[];for(p=C,ev=lo(p,_t);ev.get_type()!=oe.espeakEVENT_LIST_TERMINATED;ev=lo(p+=n,_t))E.push({type:w5[ev.get_type()],text_position:ev.get_text_position(),word_length:ev.get_length(),audio_position:ev.get_audio_position()});return i(k,E)?1:0});this.synth_(a,g),removeFunction(g)},wt.prototype.synthesize_ipa=function(a,i){var n="espeak-ng-ipa-tmp-"+Math.random().toString().substring(2),g="",p=this.synth_ipa_(a,n);return p==0&&(g=$.readFile(n,{encoding:"utf8"})),$.unlink(n),{code:p,ipa:g}};const rI=new Promise(a=>{oe.calledRun?a(new oe.eSpeakNGWorker):oe.onRuntimeInitialized=()=>a(new oe.eSpeakNGWorker)}),k5=["en"],M5=rI.then(a=>{const i=a.list_voices().map(({name:g,identifier:p,languages:h})=>({name:g,identifier:p,languages:h.filter(C=>k5.includes(C.name.split("-")[0]))})).filter(g=>g.languages.length>0),n=new Set;for(const g of i){n.add(g.identifier);for(const p of g.languages)n.add(p.name)}return{voices:i,identifiers:n}}),E5=async(a,i="en-us")=>{var p;const n=await rI,{identifiers:g}=await M5;if(!g.has(i))throw new Error(`Invalid language identifier: "${i}". Should be one of: ${Array.from(g).toSorted().join(", ")}.`);return n.set_voice(i),((p=n.synthesize_ipa(a).ipa)==null?void 0:p.split(` 2897`).filter(h=>h.length>0))??[]};function v5(a){if(a.includes("."))return a;if(a.includes(":")){let[h,C]=a.split(":").map(Number);return C===0?`${h} o'clock`:C<10?`${h} oh ${C}`:`${h} ${C}`}let i=parseInt(a.slice(0,4),10);if(i<1100||i%1e3<10)return a;let n=a.slice(0,2),g=parseInt(a.slice(2,4),10),p=a.endsWith("s")?"s":"";if(i%1e3>=100&&i%1e3<=999){if(g===0)return`${n} hundred${p}`;if(g<10)return`${n} oh ${g}${p}`}return`${n} ${g}${p}`}function x5(a){const i=a[0]==="$"?"dollar":"pound";if(isNaN(Number(a.slice(1))))return`${a.slice(1)} ${i}s`;if(!a.includes(".")){let h=a.slice(1)==="1"?"":"s";return`${a.slice(1)} ${i}${h}`}const[n,g]=a.slice(1).split("."),p=parseInt(g.padEnd(2,"0"),10);return`${n} ${i}${n==="1"?"":"s"} and ${p} ${a[0]==="$"?p===1?"cent":"cents":p===1?"penny":"pence"}`}function B5(a){let[i,n]=a.split(".");return`${i} point ${n.split("").join(" ")}`}const y5=new RegExp(`(\\s*[${th=';:,.!?¡¿ââ¦"«»ââ(){}[]',th.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}]+\\s*)+`,"g");var th;async function rh(a,i="a",n=!0){n&&(a=function(k){return k.replace(/[ââ]/g,"'").replace(/«/g,"â").replace(/»/g,"â").replace(/[ââ]/g,'"').replace(/\(/g,"«").replace(/\)/g,"»").replace(/ã/g,", ").replace(/ã/g,". ").replace(/ï¼/g,"! ").replace(/ï¼/g,", ").replace(/ï¼/g,": ").replace(/ï¼/g,"; ").replace(/ï¼/g,"? ").replace(/[^\S \n]/g," ").replace(/ +/," ").replace(new RegExp("(?<=\\n) +(?=\\n)","g"),"").replace(/\bD[Rr]\.(?= [A-Z])/g,"Doctor").replace(/\b(?:Mr\.|MR\.(?= [A-Z]))/g,"Mister").replace(/\b(?:Ms\.|MS\.(?= [A-Z]))/g,"Miss").replace(/\b(?:Mrs\.|MRS\.(?= [A-Z]))/g,"Mrs").replace(/\betc\.(?! [A-Z])/gi,"etc").replace(/\b(y)eah?\b/gi,"$1e'a").replace(new RegExp("\\d*\\.\\d+|\\b\\d{4}s?\\b|(?<!:)\\b(?:[1-9]|1[0-2]):[0-5]\\d\\b(?!:)","g"),v5).replace(new RegExp("(?<=\\d),(?=\\d)","g"),"").replace(/[$£]\d+(?:\.\d+)?(?: hundred| thousand| (?:[bm]|tr)illion)*\b|[$£]\d+\.\d\d?\b/gi,x5).replace(/\d*\.\d+/g,B5).replace(new RegExp("(?<=\\d)-(?=\\d)","g")," to ").replace(new RegExp("(?<=\\d)S","g")," S").replace(new RegExp("(?<=[BCDFGHJ-NP-TV-Z])'?s\\b","g"),"'S").replace(new RegExp("(?<=X')S\\b","g"),"s").replace(/(?:[A-Za-z]\.){2,} [a-z]/g,M=>M.replace(/\./g,"-")).replace(new RegExp("(?<=[A-Z])\\.(?=[A-Z])","gi"),"-").trim()}(a));const g=function(k,M){const E=[];let D=0;for(const B of k.matchAll(M)){const v=B[0];D<B.index&&E.push({match:!1,text:k.slice(D,B.index)}),v.length>0&&E.push({match:!0,text:v}),D=B.index+v.length}return D<k.length&&E.push({match:!1,text:k.slice(D)}),E}(a,y5),p=i==="a"?"en-us":"en";let C=(await Promise.all(g.map(async({match:k,text:M})=>k?M:(await E5(M,p)).join(" ")))).join("").replace(/kÉkËoËɹoÊ/g,"kËoÊkÉɹoÊ").replace(/kÉkËÉËɹÉÊ/g,"kËÉÊkÉɹÉÊ").replace(/ʲ/g,"j").replace(/r/g,"ɹ").replace(/x/g,"k").replace(/ɬ/g,"l").replace(new RegExp("(?<=[a-zɹË])(?=hËÊndɹɪd)","g")," ").replace(/ z(?=[;:,.!?¡¿ââ¦"«»ââ ]|$)/g,"z");return i==="a"&&(C=C.replace(new RegExp("(?<=nËaɪn)ti(?!Ë)","g"),"di")),C.trim()}function q2(a,i=!0){return".!?â¦ãï¼ï¼".includes(a)||i&&a===` 2898`}function D5(a,i){let n=i;for(;n<a.length&&!/\s/.test(a[n]);)++n;return a.substring(i,n)}const T5=new Set(["mr","mrs","ms","dr","prof","sr","jr","sgt","col","gen","rep","sen","gov","lt","maj","capt","st","mt","etc","co","inc","ltd","dept","vs","p","pg","jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec","sun","mon","tu","tue","tues","wed","th","thu","thur","thurs","fri","sat"]);function P5(a){return a=a.replace(/['â]s$/i,"").replace(/\.+$/,""),T5.has(a.toLowerCase())}const sI=new Map([[")","("],["]","["],["}","{"],["ã","ã"],["ã","ã"],["âº","â¹"],["»","«"],["âª","â©"],["ã","ã"],["ã","ã"],["ã","ã"],["ã","ã"]]),G5=new Set(sI.values());function Q5(a,i,n,g){if(a==='"'||a==="'")return a==="'"&&n>0&&n<g.length-1&&/[A-Za-z]/.test(g[n-1])&&/[A-Za-z]/.test(g[n+1])?void 0:void(i.length&&i.at(-1)===a?i.pop():i.push(a));if(G5.has(a))return void i.push(a);const p=sI.get(a);p&&i.length&&i.at(-1)===p&&i.pop()}class sh{constructor(){this._buffer="",this._sentences=[],this._resolver=null,this._closed=!1}
vendor: 5,681 bytes, lines 2898-2899
2898push(...i){for(const n of i)this._buffer+=n,this._process()}close(){if(this._closed)throw new Error("Stream is already closed.");this._closed=!0,this.flush()}flush(){const i=this._buffer.trim();i.length>0&&this._sentences.push(i),this._buffer="",this._resolve()}_resolve(){this._resolver&&(this._resolver(),this._resolver=null)}_process(){let i=0;const n=this._buffer,g=n.length;let p=0,h=[];const C=k=>{let M=k;for(;M+1<g&&q2(n[M+1],!1);)++M;for(;M+1<g&&(E=n[M+1],`"')]}ãã`.includes(E));)++M;var E;let D=M+1;for(;D<g&&/\s/.test(n[D]);)++D;return{end:M,nextNonSpace:D}};for(;p<g;){const k=n[p];if(Q5(k,h,p,n),h.length===0&&q2(k)){const M=n.slice(i,p);if(/(^|\n)\d+$/.test(M)){++p;continue}const{end:E,nextNonSpace:D}=C(p);if(p===D-1&&k!==` 2899`){++p;continue}if(D===g)break;let B=p-1;for(;B>=0&&/\S/.test(n[B]);)B--;B=Math.max(i,B+1);const v=D5(n,B);if(!v){++p;continue}if((/https?[,:]\/\//.test(v)||v.includes("@"))&&!q2(v.at(-1))){p=B+v.length;continue}if(P5(v)){++p;continue}if(/^([A-Za-z]\.)+$/.test(v)&&D<g&&/[A-Z]/.test(n[D])){++p;continue}if(k==="."&&D<g&&/[a-z]/.test(n[D])){++p;continue}const S=n.substring(i,E+1).trim();if(S==="..."||S==="â¦"){++p;continue}S&&this._sentences.push(S),p=i=E+1}else++p}this._buffer=n.substring(i),this._sentences.length>0&&this._resolve()}async*[Symbol.asyncIterator](){if(this._resolver)throw new Error("Another iterator is already active.");for(;;)if(this._sentences.length>0)yield this._sentences.shift();else{if(this._closed)break;await new Promise(i=>{this._resolver=i})}}[Symbol.iterator](){this.flush();const i=this._sentences[Symbol.iterator]();return this._sentences=[],i}get sentences(){return this._sentences}}const jo=Object.freeze({af_heart:{name:"Heart",language:"en-us",gender:"Female",traits:"â¤ï¸",targetQuality:"A",overallGrade:"A"},af_alloy:{name:"Alloy",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_aoede:{name:"Aoede",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_bella:{name:"Bella",language:"en-us",gender:"Female",traits:"ð¥",targetQuality:"A",overallGrade:"A-"},af_jessica:{name:"Jessica",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_kore:{name:"Kore",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_nicole:{name:"Nicole",language:"en-us",gender:"Female",traits:"ð§",targetQuality:"B",overallGrade:"B-"},af_nova:{name:"Nova",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_river:{name:"River",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_sarah:{name:"Sarah",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_sky:{name:"Sky",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C-"},am_adam:{name:"Adam",language:"en-us",gender:"Male",targetQuality:"D",overallGrade:"F+"},am_echo:{name:"Echo",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_eric:{name:"Eric",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_fenrir:{name:"Fenrir",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_liam:{name:"Liam",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_michael:{name:"Michael",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_onyx:{name:"Onyx",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_puck:{name:"Puck",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_santa:{name:"Santa",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D-"},bf_emma:{name:"Emma",language:"en-gb",gender:"Female",traits:"ðº",targetQuality:"B",overallGrade:"B-"},bf_isabella:{name:"Isabella",language:"en-gb",gender:"Female",targetQuality:"B",overallGrade:"C"},bm_george:{name:"George",language:"en-gb",gender:"Male",targetQuality:"B",overallGrade:"C"},bm_lewis:{name:"Lewis",language:"en-gb",gender:"Male",targetQuality:"C",overallGrade:"D+"},bf_alice:{name:"Alice",language:"en-gb",gender:"Female",traits:"ðº",targetQuality:"C",overallGrade:"D"},bf_lily:{name:"Lily",language:"en-gb",gender:"Female",traits:"ðº",targetQuality:"C",overallGrade:"D"},bm_daniel:{name:"Daniel",language:"en-gb",gender:"Male",traits:"ð¹",targetQuality:"C",overallGrade:"D"},bm_fable:{name:"Fable",language:"en-gb",gender:"Male",traits:"ð¹",targetQuality:"B",overallGrade:"C"}}),$2=new Map;async function F5(a){if($2.has(a))return $2.get(a);const i=new Float32Array(await async function(n){if(w0&&Object.hasOwn(w0,"readFile")){const k=typeof __dirname<"u"?__dirname:import.meta.dirname,M=w0.resolve(k,`../voices/${n}.bin`),{buffer:E}=await w0.readFile(M);return E}const g=`https://huggingface.co/onnx-community/Kokoro-82M-v1.0-ONNX/resolve/main/voices/${n}.bin`;let p;try{p=await caches.open("kokoro-voices");const k=await p.match(g);if(k)return await k.arrayBuffer()}catch(k){console.warn("Unable to open cache",k)}const h=await fetch(g),C=await h.arrayBuffer();if(p)try{await p.put(g,new Response(C,{headers:h.headers}))}catch(k){console.warn("Unable to cache file",k)}return C}(a));return $2.set(a,i),i}class aI{constructor(i,n){this.model=i,this.tokenizer=n}static async from_pretrained(i,{dtype:n="fp32",device:g=null,progress_callback:p=null}={}){const h=p5.from_pretrained(i,{progress_callback:p,dtype:n,device:g}),C=f5.from_pretrained(i,{progress_callback:p}),k=await Promise.all([h,C]);return new aI(...k)}get voices(){return jo}list_voices(){console.table(jo)}_validate_voice(i){if(!jo.hasOwnProperty(i))throw`${i}`,console.table(jo),new Error(`Voice "${i}" not found. Should be one of: ${Object.keys(jo).join(", ")}.`);return i.at(0)}async generate(i,{voice:n="af_heart",speed:g=1}={}
2899){const p=this._validate_voice(n),h=await rh(i,p),{input_ids:C}=this.tokenizer(h,{truncation:!0});return this.generate_from_ids(C,{voice:n,speed:g})}async generate_from_ids(i,{voice:n="af_heart",speed:g=1}={}){const p=256*Math.min(Math.max(i.dims.at(-1)-2,0),509),h=(await F5(n)).slice(p,p+256),C={input_ids:i,style:new Xm("float32",h,[1,256]),speed:new Xm("float32",[g],[1])},{waveform:k}=await this.model(C);return new g5(k.data,24e3)}async*stream(i,{voice:n="af_heart",speed:g=1,split_pattern:p=null}={}){const h=this._validate_voice(n);let C;if(i instanceof sh)C=i;else{if(typeof i!="string")throw new Error("Invalid input type. Expected string or TextSplitterStream.");{C=new sh;const k=p?i.split(p).map(M=>M.trim()).filter(M=>M.length>0):[i];C.push(...k)}}for await(const k of C){const M=await rh(k,h),{input_ids:E}=this.tokenizer(M,{truncation:!0}),D=await this.generate_from_ids(E,{voice:n,speed:g});yield{text:k,phonemes:M,audio:D}}}}export{aI as KokoroTTS,sh as TextSplitterStream}; 2900//# sourceMappingURL=C8J3qVlo.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.